Cuenta Servicio de Red

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

CampoValor
Nombre internoNT AUTHORITY\NetworkService
SID (Security Identifier)S-1-5-20
Tipo de cuentaIntegrada (no interactiva)
Privilegios localesLimitados (usuario autenticado con restricciones)
Capacidad de redAutenticación como cuenta del equipo (EQUIPO$)
GestiónCompletamente controlada por el sistema operativo
Inicio de sesión interactivoNo 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:

  1. El Service Control Manager (SCM) inicia el servicio bajo esta identidad
  2. El servicio hereda un token de seguridad con privilegios limitados
  3. Las operaciones locales se ejecutan bajo restricciones
  4. 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.

CuentaSIDPrivilegios localesCapacidad de red
LocalSystemS-1-5-18CompletosAutenticación como equipo
Network ServiceS-1-5-20LimitadosAutenticación como equipo
Local ServiceS-1-5-19Muy limitadosAutenticació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:

  1. Ejecutar services.msc
  2. Seleccionar el servicio deseado
  3. Acceder a propiedades
  4. Pestaña «Iniciar sesión»
  5. 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]
ValorDatos
ObjectNameNT AUTHORITY\NetworkService (Tipo: REG_SZ)
ImagePathRuta 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.msc

Revisar:

  • 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_NAME
Get-WmiObject Win32_Service | Where-Object {$_.StartName -eq "NT AUTHORITY\NetworkService"} | Select-Object Name, StartName, State

3. Verificar identidad actual

whoami /user

4. 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:

PasoAcción
1Identificar el nombre del equipo: hostname
2En el servidor remoto, conceder permisos a DOMINIO\NOMBRE_EQUIPO$ (equipo) o NOMBRE_EQUIPO$ (grupo de trabajo)
3Verificar que el recurso compartido tiene permisos NTFS adecuados para la cuenta del equipo
4Comprobar 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ísticaNetwork ServiceLocal Service
Autenticación en redComo cuenta del equipo (EQUIPO$)Como sesión anónima (sin credenciales)
Privilegios localesLimitados (usuario autenticado)Muy limitados (menos privilegios que Network Service)
Capacidad de acceso a recursos remotosSí, con identidad del equipoNo, 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:

PasoAcción
1Revisar el Visor de eventos → Sistema, filtrar por origen «Service Control Manager»
2Verificar si el servicio puede ejecutarse como LocalService o requiere LocalSystem
3Consultar la documentación del servicio para conocer los requisitos de cuenta
4Si 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:

  1. Botón derecho sobre la carpeta → Propiedades
  2. Pestaña «Seguridad» → Editar
  3. Agregar → ubicaciones → seleccionar el equipo local
  4. Escribir Network Service o NT AUTHORITY\NetworkService
  5. 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_NAME

Desde PowerShell:

Get-WmiObject Win32_Service | Where-Object {$_.StartName -eq "NT AUTHORITY\NetworkService"} | Select-Object Name, StartName, State

Desde services.msc:

  1. Abrir services.msc
  2. 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ónQué buscar
Visor de eventos → SistemaEventos ID 7000, 7009, 7024 (fallos de inicio de servicios)
Visor de eventos → SeguridadEventos ID 4624 (inicios de sesión exitosos), 4625 (fallos) filtrando por cuenta NT AUTHORITY\NetworkService
Visor de eventos → AplicaciónErrores 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

NivelAcción
LocalVerificar que el servicio está configurado con NT AUTHORITY\NetworkService. Comprobar permisos en carpetas locales. Revisar eventos de Service Control Manager.
RedValidar que el equipo (EQUIPO$) tiene permisos en el recurso remoto. Probar acceso con net use \\servidor\recurso /user:DOMINIO\EQUIPO$.
DominioVerificar que la cuenta del equipo no está deshabilitada o bloqueada. Revisar GPO que puedan restringir acceso de cuentas de equipo.
DiagnósticoUsar sc qc [servicio] para ver la cuenta. Usar whoami /user desde el contexto del servicio si es posible. Verificar privilegios con whoami /priv.