Ir al contenido

Deriva de configuración: OSConfig, DSC e informes

Detecta y corrige la deriva de configuración en Windows: OSConfig en Server 2025, autocorrección con DSC, reprocesamiento de GPO, eventos de cambio e informes.

Florian Amette9 min de lectura

Aplicar una línea base es un momento puntual. Después, los instaladores de software relajan las configuraciones que no les gustan, los administradores hacen cambios "temporales" durante un incidente, los scripts de un fabricante cambian un valor del registro y una GPO se desvincula durante una reorganización. Seis meses después, la máquina ya no coincide con la línea base que le enseñaste al auditor. Esa brecha es la deriva de configuración.

La guía principal de líneas base de seguridad presentó OSConfig como una forma de mantener una línea base. Esta guía trata la deriva en su conjunto: los motores de corrección disponibles en Windows (OSConfig, directiva de grupo, PowerShell DSC, Intune), cómo detectar los cambios en el momento en que se producen y cómo informar del cumplimiento en todo el parque.

De dónde viene la deriva y qué la corrige

MotorÁmbitoCorrige la derivaInforma del cumplimiento
Directiva de grupoClientes y servidores unidos a un dominioConfiguración de seguridad cada 16 horas; directiva del registro solo cuando cambian las GPO, salvo que se configureNo (usa Policy Analyzer o RSoP)
Intune (Policy CSP)Dispositivos inscritos en MDMVuelve a aplicar en cada sincronización del dispositivoSí, por configuración
OSConfigWindows Server 2025Sí, control de deriva programadoSí, por configuración
PowerShell DSC (LCM)Cualquier Windows con Windows PowerShell 5.1Sí, con ApplyAndAutoCorrectSí, Test-DscConfiguration

Cada tipo de dispositivo debería tener exactamente un motor responsable de su configuración de seguridad, más informes independientes para detectar los casos en que el propio motor falla o se elude.

Paso 1: haz que la directiva de grupo vuelva a aplicar lo que le corresponde

Si la directiva de grupo es la responsable de la configuración, cierra la brecha de reprocesamiento. En Computer Configuration > Policies > Administrative Templates > System > Group Policy:

  • Configure registry policy processing: Enabled, marca Process even if the Group Policy objects have not changed.
  • Configure security policy processing: Enabled, con la misma opción.

Con esto, un cambio local en una configuración de plantilla administrativa se sobrescribe en la siguiente actualización en segundo plano (90 minutos más un desfase aleatorio de forma predeterminada), en lugar de sobrevivir hasta que alguien edite la GPO. La línea base de Microsoft ya habilita el reprocesamiento de la directiva del registro; confirma que no se ha eliminado.

Esto no ayuda con las configuraciones que ninguna GPO define, con las máquinas fuera del dominio ni con las GPO que dejan de aplicarse. Para eso están los informes.

Paso 2: OSConfig en Windows Server 2025

OSConfig aplica las líneas base de seguridad de Microsoft para Windows Server 2025 como escenarios con nombre, y después las impone e informa sobre ellas. Instala el módulo desde PowerShell Gallery y aplica el escenario que corresponda al rol del servidor:

PowerShell
Install-Module -Name Microsoft.OSConfig -Scope AllUsers -Repository PSGallery -Force

# Uno de: SecurityBaseline/WindowsServer/2025/MemberServer, /DomainController, /WorkgroupMember
Set-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer -Default
Restart-Computer

Los escenarios complementarios se aplican del mismo modo: SecuredCore, Defender/Antivirus/WindowsServer/2025 y, solo en servidores miembro, LAPS/WindowsServer/2025/MemberServer. OSConfig tiene además un escenario para App Control for Business. Aplicar o quitar una línea base requiere un reinicio. La versión de la línea base va dentro del módulo, así que Update-Module Microsoft.OSConfig seguido de volver a aplicar el escenario pasa un servidor a la nueva línea base.

Para cambiar una configuración respecto al valor predeterminado, por ejemplo para reflejar una entrada de tu registro de desviaciones, establécela por nombre en lugar de editar el registro, para que el control de deriva imponga tu valor en lugar de combatirlo:

PowerShell
Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer |
  Where-Object Name -like '*Audit*' | Select-Object Name, Value

Set-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer `
  -Setting AuditDetailedFileShare -Value 3

Comprueba un valor personalizado concreto con Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer -Setting AuditDetailedFileShare.

El control de deriva se ejecuta como una tarea programada de actualización que compara cada configuración con el valor deseado y la restablece si ha cambiado. La documentación actual de Microsoft no indica el intervalo (las versiones anteriores hablaban de cuatro horas), así que mídelo en tu piloto en lugar de suponerlo. Quitar un escenario con Remove-OSConfigDesiredConfiguration detiene la imposición, y Microsoft indica que no puede garantizar que las configuraciones vuelvan a sus valores anteriores a la línea base, así que haz primero una instantánea de la configuración original en los servidores en los que puedas necesitar revertir.

En los servidores unidos a un dominio, decide quién es el responsable de la línea base. Si tus GPO de dominio aplican la misma línea base de Microsoft, evita imponerla dos veces: o conservas las GPO y usas OSConfig solo para informar sobre una muestra, o pasas la línea base a OSConfig y eliminas esas configuraciones de las GPO de servidores. Los controladores de dominio merecen un cuidado especial, porque una asignación de derechos de usuario en conflicto puede romper la replicación o los inicios de sesión; haz primero un piloto en un solo DC.

Paso 3: PowerShell DSC para todo lo demás

Para las configuraciones que no cubre ninguna línea base, o para servidores más antiguos, Desired State Configuration de Windows PowerShell 5.1 puede imponer e informar. Configura el Local Configuration Manager (LCM) para que autocorrija:

PowerShell
[DSCLocalConfigurationManager()]
configuration LcmAutoCorrect {
  Node localhost {
    Settings {
      RefreshMode                    = 'Push'
      ConfigurationMode              = 'ApplyAndAutoCorrect'
      ConfigurationModeFrequencyMins = 30
    }
  }
}
LcmAutoCorrect -OutputPath C:\DSC\Lcm
Set-DscLocalConfigurationManager -Path C:\DSC\Lcm -Verbose

Después, una configuración con las opciones de las que eres responsable. El recurso integrado Registry basta para muchos valores de endurecimiento:

PowerShell
configuration HardeningExtras {
  Import-DscResource -ModuleName PSDesiredStateConfiguration
  Node localhost {
    Registry DisableLLMNR {
      Key       = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient'
      ValueName = 'EnableMulticast'
      ValueData = '0'
      ValueType = 'Dword'
      Ensure    = 'Present'
    }
  }
}
HardeningExtras -OutputPath C:\DSC\Hardening
Start-DscConfiguration -Path C:\DSC\Hardening -Wait -Verbose

Módulos de la comunidad como SecurityPolicyDsc y AuditPolicyDsc cubren los derechos de usuario, las opciones de seguridad y las subcategorías de auditoría, y el módulo BaselineManagement puede convertir una copia de seguridad de GPO en una configuración DSC. El DSC más reciente de Microsoft (versión 3) es una herramienta distinta y multiplataforma, con otro modelo; evalúala por separado en lugar de mezclarla con el LCM.

Los archivos de configuración DSC (.mof) pueden contener datos confidenciales y el LCM se ejecuta como SYSTEM, así que guárdalos en una ubicación protegida y restringe quién puede aplicar configuraciones, igual que restringirías la edición de GPO (consulta administración por niveles).

Paso 4: detecta los cambios cuando se producen

Los motores de corrección ocultan la deriva al corregirla. También quieres saber que ocurrió, porque una configuración que vuelve a cambiar una y otra vez suele significar que alguien o algo está trabajando en tu contra. Habilita las subcategorías de auditoría correspondientes (consulta directiva de auditoría y Sysmon) y reenvía estos eventos:

EventoRegistroSignificado
4719SecuritySe cambió la directiva de auditoría del sistema
4739Security (DC)Se cambió la directiva del dominio (contraseñas, bloqueo, Kerberos)
5136Security (DC)Objeto del directorio modificado, incluidos los objetos y vínculos de GPO (requiere Audit Directory Service Changes y SACL)
4657SecurityValor del registro modificado, en claves con una SACL de auditoría
4670SecuritySe cambiaron los permisos de un objeto

Para algunas claves del registro de alto valor (por ejemplo, la configuración de LSA en HKLM\SYSTEM\CurrentControlSet\Control\Lsa), añade una SACL de auditoría para que el 4657 se genere al cambiar. El evento 13 de Sysmon (valor del registro establecido) con una configuración dirigida es una alternativa. Reenvíalo todo a tu SIEM con Windows Event Forwarding y alerta sobre los cambios fuera de las ventanas de cambio.

Paso 5: informa del cumplimiento en todo el parque

La imposición le dice a cada máquina qué hacer; los informes te dicen si ha funcionado. Para Windows Server 2025 con OSConfig, recopila el cumplimiento por configuración de forma remota:

PowerShell
$servers = Get-Content C:\Reports\ws2025-servers.txt
Invoke-Command -ComputerName $servers -ScriptBlock {
  Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer |
    Select-Object Name,
      @{n='Status';e={$_.Compliance.Status}},
      @{n='Reason';e={$_.Compliance.Reason}}
} | Select-Object PSComputerName, Name, Status, Reason |
  Export-Csv "C:\Reports\osconfig-$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation

En los nodos administrados con DSC, Test-DscConfiguration -Detailed devuelve los recursos que están y no están en el estado deseado, y Get-DscConfigurationStatus muestra la última ejecución. Herramientas de auditoría local como secedit /analyze /db C:\Temp\bl.sdb /cfg C:\Baseline\GptTmpl.inf /log C:\Temp\analyze.log comparan la configuración de seguridad con una plantilla. La comparación con el estado efectivo de Policy Analyzer (consulta Policy Analyzer y LGPO) cubre una muestra de clientes. A escala, los informes por configuración de Intune, Azure Machine Configuration para los servidores conectados a Arc y la evaluación de líneas base de seguridad de Defender Vulnerability Management (según la licencia) dan una visión centralizada.

Haz un seguimiento de tres cifras por tipo de dispositivo: el porcentaje de configuraciones que cumplen, el número de dispositivos con alguna configuración de alto riesgo que no cumple y las configuraciones que derivan repetidamente.

Verificación

Demuestra que el ciclo de corrección funciona en un servidor piloto: cambia a mano una configuración impuesta, espera a la siguiente actualización y confirma que ha vuelto a su valor.

PowerShell
Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WindowsServer/2025/MemberServer |
  Where-Object { $_.Compliance.Status -ne 'Compliant' } |
  Format-Table Name, @{n='Reason';e={$_.Compliance.Reason}} -Wrap

Test-DscConfiguration -Detailed | Select-Object -ExpandProperty ResourcesNotInDesiredState
Get-WinEvent -LogName 'Microsoft-Windows-DSC/Operational' -MaxEvents 20

Confirma también que el evento de cambio llegó a tu SIEM. Una corrección de deriva que nadie vio sigue siendo una señal que se te escapó.

Qué se rompe

  • Dos motores, una configuración. GPO y OSConfig, o Intune y DSC, imponiendo valores distintos producen configuraciones que oscilan e informes confusos.
  • Cambios legítimos revertidos. Una corrección de emergencia hecha a mano se deshace en la siguiente actualización. Haz los cambios a través del motor, no esquivándolo.
  • Excepciones de la línea base perdidas. Las personalizaciones aplicadas fuera del motor desaparecen. Regístralas en la configuración del motor y en el registro de desviaciones.
  • Informes obsoletos. Un dispositivo que dejó de informar parece conforme en algunos paneles. Alerta sobre los informes que faltan, no solo sobre los errores.

Lista de comprobación

  • Un motor de imposición elegido por tipo de dispositivo
  • Procesamiento de la directiva del registro y de seguridad configurado para volver a aplicar las GPO sin cambios
  • Escenario de línea base de OSConfig aplicado en Windows Server 2025 según el rol
  • Desviaciones aplicadas mediante OSConfig o DSC, no a mano
  • LCM de DSC en ApplyAndAutoCorrect para las configuraciones fuera de la línea base
  • Eventos de cambio (4719, 4739, 5136, 4657) reenviados y con alertas
  • Informe de cumplimiento del parque generado y revisado cada mes
  • Ciclo de corrección probado cambiando deliberadamente una configuración

La gestión de la deriva es lo que mantiene fiel una línea base una vez terminado el proyecto. Consulta toda el área de líneas base de seguridad para elegir, probar y desplegar las líneas base desde el principio.

Preguntas frecuentes

¿Qué es OSConfig?

OSConfig es una pila de configuración de seguridad para Windows Server 2025 que se administra con el módulo de PowerShell Microsoft.OSConfig y que también usan Windows Admin Center y Azure Arc. Aplica las líneas base de seguridad de Microsoft como escenarios, informa del cumplimiento por configuración y ejecuta el control de deriva, que devuelve periódicamente al valor deseado las configuraciones que han cambiado.

¿Debo usar OSConfig en servidores unidos a un dominio que ya reciben GPO de línea base?

Elige una sola autoridad por configuración. Si las GPO del dominio aplican la línea base, usa OSConfig o Policy Analyzer solo para informar, o deja que OSConfig sea el responsable de la línea base y elimina las configuraciones de GPO que se solapen. Dos motores que imponen valores distintos para la misma configuración se sobrescribirán en cada actualización, y el resultado dependerá del momento.

¿Corrige la directiva de grupo la deriva por sí sola?

En parte. La configuración de seguridad se vuelve a aplicar cada 16 horas aunque las GPO no hayan cambiado, pero la configuración de plantillas administrativas basada en el registro solo se reprocesa cuando cambia una GPO, salvo que habilites Process even if the Group Policy objects have not changed. Los cambios locales en esas configuraciones pueden persistir hasta la siguiente modificación de la GPO.

Deriva de configuración: OSConfig, DSC e informes

Guías relacionadas

Líneas base de seguridad

Líneas base de Intune, catálogo y conflictos con GPO

Despliega las líneas base de Intune sin conflictos: versiones, capas en el catálogo de configuración, solapamiento con Endpoint security, MDMWinsOverGP y comprobaciones.

Intermedio
Líneas base de seguridad

Líneas base de Windows: Microsoft SCT, CIS y STIG

Compara el Security Compliance Toolkit, CIS y los STIG de DISA, aplica uno con Policy Analyzer y LGPO, añade tus configuraciones y registra cada desviación.

Básico