Cuenta Servicio de red (Network Service) en Windows: análisis técnico completo
La cuenta Servicio de red (Network Service) es una de las identidades de seguridad integradas en Windows utilizadas para la ejecución de servicios. Forma parte del modelo de cuentas predefinidas junto con LocalSystem y LocalService, y está diseñada específicamente para proporcionar un equilibrio entre capacidad de acceso a red y restricción de privilegios locales.
A nivel arquitectónico, esta cuenta permite que los servicios interactúen con recursos remotos utilizando la identidad del equipo, sin otorgarles control total sobre el sistema local.
Definición y propósito
La cuenta Network Service es una cuenta administrada por el sistema que:
- Ejecuta servicios con privilegios limitados en el sistema local
- Permite autenticación en red utilizando las credenciales del equipo
- Reduce el riesgo de compromisos críticos frente a cuentas con mayor privilegio
Su objetivo principal es proporcionar un contexto de ejecución seguro para servicios que requieren comunicación en red, evitando el uso innecesario de cuentas con privilegios elevados como LocalSystem.
Información técnica
| Campo | Valor |
|---|---|
| Nombre interno | NT AUTHORITY\NetworkService |
| SID (Security Identifier) | S-1-5-20 |
| Tipo de cuenta | Integrada (no interactiva) |
| Privilegios locales | Limitados (usuario autenticado con restricciones) |
| Capacidad de red | Autenticación como cuenta del equipo (EQUIPO$) |
| Gestión | Completamente controlada por el sistema operativo |
| Inicio de sesión interactivo | No permitido |
Modelo de seguridad
El comportamiento de la cuenta se divide en dos contextos claramente diferenciados:
Contexto local
En el sistema local, la cuenta dispone de privilegios reducidos:
- Acceso limitado al sistema de archivos
- Sin permisos administrativos
- Acceso restringido al registro
Token de seguridad:
El token de seguridad de Network Service incluye:
- Grupos integrados:
BUILTIN\Users,BUILTIN\Authenticated Users - Privilegios específicos:
SeImpersonatePrivilege,SeChangeNotifyPrivilege,SeIncreaseQuotaPrivilege,SeAuditPrivilege
SeImpersonatePrivilege es especialmente relevante porque permite que un servicio asuma la identidad de un cliente durante una llamada RPC o COM, lo que es fundamental para servicios que actúan como intermediarios (como servidores COM+ o aplicaciones web en IIS).
Esto minimiza el impacto potencial en caso de explotación de un servicio.
Contexto de red
Cuando el servicio accede a recursos remotos:
- Se autentica como la cuenta del equipo
- Utiliza credenciales del tipo
NOMBRE_EQUIPO$ - Puede integrarse con entornos de dominio Active Directory
Este comportamiento permite que los servicios interactúen con servidores remotos manteniendo un modelo de autenticación controlado.
Funcionamiento interno
Cuando un servicio se ejecuta bajo Network Service:
- El Service Control Manager (SCM) inicia el servicio bajo esta identidad
- El servicio hereda un token de seguridad con privilegios limitados
- Las operaciones locales se ejecutan bajo restricciones
- Las operaciones de red utilizan autenticación basada en la cuenta del equipo
Este diseño separa claramente el acceso local del acceso remoto, lo que refuerza la seguridad global del sistema.
Comparación con otras cuentas integradas
Network Service se posiciona como una solución intermedia:
- Más segura que LocalSystem en el contexto local
- Más funcional que LocalService en el contexto de red
LocalSystem posee privilegios completos en el sistema, mientras que LocalService no dispone de identidad en red (se autentica como sesión nula). Network Service combina ambas características de forma controlada.
| Cuenta | SID | Privilegios locales | Capacidad de red |
|---|---|---|---|
| LocalSystem | S-1-5-18 | Completos | Autenticación como equipo |
| Network Service | S-1-5-20 | Limitados | Autenticación como equipo |
| Local Service | S-1-5-19 | Muy limitados | Autenticación anónima (sesión nula) |
Casos de uso habituales
Esta cuenta se utiliza en servicios que requieren:
- Comunicación con otros sistemas
- Acceso a recursos compartidos
- Interacción con servicios en red
Ejemplos típicos incluyen:
- Servicios que consumen APIs remotas
- Componentes de sincronización
- Servicios que operan en entornos de dominio
- Aplicaciones web en IIS (grupo de aplicaciones por defecto en versiones antiguas)
- Servidores COM+ que requieren impersonación de clientes
Configuración en servicios
La cuenta puede asignarse desde la consola de servicios:
- Ejecutar
services.msc - Seleccionar el servicio deseado
- Acceder a propiedades
- Pestaña «Iniciar sesión»
- Seleccionar «Servicio de red»
Internamente, Windows gestiona automáticamente las credenciales, por lo que no requiere contraseña.
Configuración en registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[NombreServicio]| Valor | Datos |
|---|---|
| ObjectName | NT AUTHORITY\NetworkService (Tipo: REG_SZ) |
| ImagePath | Ruta del ejecutable del servicio (Tipo: REG_EXPAND_SZ) |
Interacción con Active Directory
En entornos de dominio, Network Service utiliza la cuenta del equipo para autenticarse:
- Permite aplicar políticas de grupo (GPO)
- Facilita control de acceso basado en equipos
- Integra servicios dentro de infraestructuras corporativas
Sin embargo, es necesario que el equipo tenga permisos adecuados en los recursos remotos.
Riesgos y consideraciones de seguridad
Aunque es una cuenta restringida, existen consideraciones importantes:
- Un servicio comprometido puede acceder a recursos de red como el equipo
- Puede ser utilizado como vector lateral en entornos mal configurados
- Requiere control de permisos en recursos compartidos
- En controladores de dominio, la cuenta
EQUIPO$tiene privilegios elevados en Active Directory, por lo que se recomienda usar cuentas de servicio gestionadas (gMSA) en estos entornos
Por tanto, es fundamental aplicar principios de mínimo privilegio también en el ámbito de red.
Diagnóstico técnico
Para analizar problemas relacionados con Network Service:
1. Visor de eventos
Ejecutar:
eventvwr.mscRevisar:
- Security
- System
- Service Control Manager
2. Verificar cuenta de ejecución de un servicio
sc query [nombre_servicio] | findstr SERVICE_NAME
sc qc [nombre_servicio] | findstr SERVICE_START_NAMEGet-WmiObject Win32_Service | Where-Object {$_.StartName -eq "NT AUTHORITY\NetworkService"} | Select-Object Name, StartName, State3. Verificar identidad actual
whoami /user4. Verificar privilegios asignados
whoami /priv(Para obtener el contexto de Network Service, puede utilizarse PsExec o ejecutar el comando desde un servicio específico)
5. Comprobar permisos en recursos remotos
Validar que el equipo (EQUIPO$) tenga los permisos necesarios en el recurso compartido o servidor destino.
Buenas prácticas
- Utilizar Network Service cuando el servicio requiera red pero no privilegios elevados
- Evitar el uso de LocalSystem salvo necesidad explícita
- Limitar permisos en recursos remotos
- Monitorizar actividad de servicios críticos
- Revisar periódicamente los servicios que ejecutan con privilegios elevados
- En controladores de dominio, preferir cuentas de servicio gestionadas (gMSA) frente a Network Service
Relación con otros servicios del sistema
Servicios como SENS, COM+ o componentes de red pueden ejecutarse bajo distintas cuentas dependiendo de sus necesidades:
- LocalService para operaciones locales seguras
- NetworkService para interacción en red
- LocalSystem para operaciones críticas del sistema
La elección de la cuenta impacta directamente en la seguridad y funcionalidad.
Conclusión técnica
La cuenta Servicio de red (Network Service) es un elemento clave en el modelo de seguridad de Windows, diseñada para proporcionar un entorno de ejecución controlado para servicios que requieren acceso a red sin comprometer la integridad del sistema local.
Su correcta utilización permite mantener un equilibrio entre funcionalidad y seguridad, especialmente en entornos donde la comunicación entre sistemas es esencial. La selección adecuada de esta cuenta frente a otras identidades integradas es una decisión crítica en la arquitectura de servicios y en la protección del sistema operativo.
FAQ: Problemas comunes con Network Service y sus soluciones
1. ¿Qué significa el error «Access Denied» cuando un servicio bajo Network Service intenta acceder a un recurso remoto?
Síntoma:
Un servicio que se ejecuta como Network Service no puede acceder a una carpeta compartida, un recurso de red o un servidor remoto, devolviendo errores de permisos.
Causas más frecuentes:
- El equipo no tiene permisos asignados en el recurso remoto
- En entornos de dominio, la cuenta del equipo no está autorizada
- El recurso remoto no acepta autenticación de cuentas de equipo
- Políticas de restricción de acceso en el servidor destino
Soluciones:
| Paso | Acción |
|---|---|
| 1 | Identificar el nombre del equipo: hostname |
| 2 | En el servidor remoto, conceder permisos a DOMINIO\NOMBRE_EQUIPO$ (equipo) o NOMBRE_EQUIPO$ (grupo de trabajo) |
| 3 | Verificar que el recurso compartido tiene permisos NTFS adecuados para la cuenta del equipo |
| 4 | Comprobar políticas de seguridad en el servidor remoto que puedan restringir cuentas de equipo |
2. ¿Cuál es la diferencia entre Network Service y Local Service?
Respuesta:
La diferencia fundamental está en cómo se autentican en red:
| Característica | Network Service | Local Service |
|---|---|---|
| Autenticación en red | Como cuenta del equipo (EQUIPO$) | Como sesión anónima (sin credenciales) |
| Privilegios locales | Limitados (usuario autenticado) | Muy limitados (menos privilegios que Network Service) |
| Capacidad de acceso a recursos remotos | Sí, con identidad del equipo | No, solo recursos que aceptan acceso anónimo |
Ejemplo práctico:
- Un servicio de copia de seguridad que necesita acceder a un recurso compartido debe usar Network Service (o una cuenta gestionada)
- Un servicio que solo necesita escribir en un archivo local puede usar Local Service
3. ¿Por qué un servicio no inicia cuando se configura como Network Service?
Síntoma:
El servicio falla al iniciar con el error «Error 5: Access Denied» o no arranca sin mensaje claro.
Causas más frecuentes:
- El servicio requiere privilegios que Network Service no posee
- El servicio intenta acceder a recursos del sistema protegidos
- Dependencias del servicio esperan una cuenta con privilegios superiores
Soluciones:
| Paso | Acción |
|---|---|
| 1 | Revisar el Visor de eventos → Sistema, filtrar por origen «Service Control Manager» |
| 2 | Verificar si el servicio puede ejecutarse como LocalService o requiere LocalSystem |
| 3 | Consultar la documentación del servicio para conocer los requisitos de cuenta |
| 4 | Si es necesario, utilizar una cuenta de servicio gestionada (gMSA) para mayor control |
4. ¿Cómo dar permisos a Network Service en una carpeta local?
Contexto:
Aunque Network Service tiene privilegios limitados, puede necesitar acceso a carpetas específicas en el sistema local.
Solución:
Asignar permisos a la cuenta NT AUTHORITY\NetworkService en la carpeta deseada:
- Botón derecho sobre la carpeta → Propiedades
- Pestaña «Seguridad» → Editar
- Agregar → ubicaciones → seleccionar el equipo local
- Escribir
Network ServiceoNT AUTHORITY\NetworkService - Asignar los permisos necesarios (Lectura, Escritura, etc.)
Desde línea de comandos:
icacls "C:\Ruta\Carpeta" /grant "NT AUTHORITY\NetworkService:(OI)(CI)M"5. ¿Puede Network Service ser utilizado para iniciar sesión interactivamente?
Respuesta:
No. Network Service es una cuenta no interactiva diseñada exclusivamente para ejecutar servicios. No puede utilizarse para:
- Iniciar sesión en el escritorio
- Ejecutar aplicaciones interactivas
- Autenticarse en aplicaciones que requieren inicio de sesión interactivo
Si se intenta, el sistema lo rechazará por diseño.
6. ¿Cómo comprobar qué servicios se están ejecutando como Network Service?
Diagnóstico rápido:
Desde línea de comandos:
sc query | findstr /i "SERVICE_NAME"
sc qc [nombre_servicio] | findstr SERVICE_START_NAMEDesde PowerShell:
Get-WmiObject Win32_Service | Where-Object {$_.StartName -eq "NT AUTHORITY\NetworkService"} | Select-Object Name, StartName, StateDesde services.msc:
- Abrir
services.msc - Agregar columna «Iniciar sesión como»
- Ver → Seleccionar columnas → Marcar «Iniciar sesión como»
7. ¿Es seguro ejecutar servicios como Network Service en un controlador de dominio?
Consideración especial:
En controladores de dominio, la cuenta EQUIPO$ (utilizada por Network Service) tiene privilegios elevados por defecto en Active Directory.
Riesgos:
- Un servicio comprometido podría manipular objetos de Active Directory
- Puede ser utilizado como vector para movimientos laterales
Buenas prácticas en DC:
- Utilizar cuentas de servicio gestionadas (gMSA) en lugar de Network Service
- Limitar los servicios que se ejecutan como Network Service en DC
- Monitorizar intensivamente la actividad de estos servicios
8. ¿Qué registros debo revisar ante problemas con Network Service?
| Ubicación | Qué buscar |
|---|---|
| Visor de eventos → Sistema | Eventos ID 7000, 7009, 7024 (fallos de inicio de servicios) |
| Visor de eventos → Seguridad | Eventos ID 4624 (inicios de sesión exitosos), 4625 (fallos) filtrando por cuenta NT AUTHORITY\NetworkService |
| Visor de eventos → Aplicación | Errores específicos de la aplicación que consume el servicio |
9. ¿Cómo auditar el uso de Network Service en un entorno empresarial?
Para inventariar servicios que usan Network Service en múltiples equipos:
$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name
foreach ($computer in $computers) {
Get-WmiObject -ComputerName $computer -Class Win32_Service |
Where-Object {$_.StartName -eq "NT AUTHORITY\NetworkService"} |
Select-Object PSComputerName, Name, StartName
}Para monitorizar cambios:
- Configurar auditoría de cambios en servicios mediante GPO
- Revisar eventos ID 4697 (instalación de servicios) en controladores de dominio
10. Resumen rápido: acciones ante fallos con Network Service
| Nivel | Acción |
|---|---|
| Local | Verificar que el servicio está configurado con NT AUTHORITY\NetworkService. Comprobar permisos en carpetas locales. Revisar eventos de Service Control Manager. |
| Red | Validar que el equipo (EQUIPO$) tiene permisos en el recurso remoto. Probar acceso con net use \\servidor\recurso /user:DOMINIO\EQUIPO$. |
| Dominio | Verificar que la cuenta del equipo no está deshabilitada o bloqueada. Revisar GPO que puedan restringir acceso de cuentas de equipo. |
| Diagnóstico | Usar sc qc [servicio] para ver la cuenta. Usar whoami /user desde el contexto del servicio si es posible. Verificar privilegios con whoami /priv. |
