Cómo realizar un seguimiento eficaz de los cambios en la membresía de grupos de Active Directory

Gestionar cambios en Active Directory, especialmente cuando hay varios administradores involucrados, puede ser un poco engorroso. Es posible que no siempre sepas quién realizó ese ajuste ni cuándo, lo cual es crucial si intentas controlar la seguridad o simplemente intentar solucionar problemas. Este artículo profundiza en la configuración de políticas de auditoría y un script de PowerShell que puede notificarte automáticamente (por correo electrónico o incluso Messenger) cuando alguien agrega un usuario a esos grupos con privilegios adicionales como Administradores de dominio, Administradores de empresa o Administradores de esquema. Básicamente, es una forma de supervisar esos cambios críticos sin tener que revisar manualmente los registros todo el día. Después de configurar esto, comenzarás a ver alertas emergentes cada vez que un nuevo usuario se una a un grupo protegido, lo que facilita detectar actividad sospechosa o simplemente confirmar cambios autorizados.

Cómo realizar un seguimiento de los cambios en la membresía de un grupo de Active Directory

Habilitar la política de auditoría para los cambios de membresía del grupo de AD

Esta parte trata sobre la configuración de Windows para registrar esos cambios de grupo en primer lugar. Porque si no se le indica a Windows que rastree estos eventos, no recibirá ninguna alerta más tarde. Básicamente, abra la Consola de administración de directivas de grupo ( gpmc.msc ) y edite la Directiva de controladores de dominio predeterminados. Debe navegar a Configuración del equipo > Directivas > Configuración de Windows > Configuración de seguridad > Configuración de auditoría avanzada > Administración de cuentas. Luego, habilite la directiva Administración de grupos de seguridad de auditoría con eventos de éxito. Esto hará que Windows registre cada adición, eliminación o cambio en las membresías del grupo de AD. En algunas máquinas, esto puede requerir un reinicio o un gpupdate /force para comenzar a registrar correctamente. Una vez hecho esto, cada vez que alguien se entromete en un grupo, se registra un evento con EventID 4732 (miembro agregado a un grupo global) o 4728 (miembro agregado a un grupo local).Estos registros le brindan detalles como qué grupo se cambió, quién realizó el cambio y quién se agregó, porque, por supuesto, Windows tiene que hacerlo confuso a veces.

Informe sobre cambios con PowerShell

Aquí es donde las cosas se vuelven más prácticas. Puedes ejecutar un script de PowerShell que analice los registros de seguridad de las últimas 24 horas y extraiga esos eventos de cambio. Aquí tienes un fragmento típico, un poco torpe, pero que funciona:

$time = (get-date) - (new-timespan -hour 24) $result = Get-WinEvent -FilterHashtable @{logname='Security';id=4732, 4728;StartTime=$Time} -ErrorAction SilentlyContinue | ForEach-Object { $eventXml = ([xml]$_. ToXml()).Event [PSCustomObject]@{ TimeCreated = $eventXml. System. TimeCreated. SystemTime -replace '\.\d+.*$' NewUser = $eventXml. EventData. Data[0]."#text" Group = $eventXml. EventData. Data[2]."#text" Admin = $eventXml. EventData. Data[6]."#text" Computer = $eventXml. System. Computer } } $result | Format-Table -AutoSize 

Este script recupera eventos recientes de cambio de grupo de AD. La información principal que obtiene es: qué grupo se modificó, qué usuario se agregó y quién realizó el cambio. Ideal para auditorías rápidas. Para que sea más específico (por ejemplo, solo para grupos con privilegios), agregue un filtro como:

$AdminGroups = @('Enterprise Admins', 'Domain Admins', 'DNSAdmins', 'Microsoft Exchange Servers') $filtered = $result | Where-Object { $_. Group -in $AdminGroups }

De esta manera, solo recibirás alertas sobre aquellos cambios grandes y jugosos.

Configurar alertas de correo electrónico o Messenger

Una vez identificado un cambio, se trata de recibir notificaciones. Una forma sencilla es usar Send-MailMessage en PowerShell:

if ($filtered) { $mailBody = $filtered | ConvertTo-Html -Fragment Send-MailMessage -SmtpServer "your.smtp.server" -From "[email protected]" -To "[email protected]" -Subject "AD Group Change Detected" -Body $mailBody -BodyAsHtml -Priority High } 

Esto te envía un correo electrónico HTML con un formato adecuado cada vez que cambia un grupo privilegiado. O, si prefieres Messenger o Teams, existen scripts (como webhooks o módulos de terceros) que pueden enviar alertas. Para Teams, normalmente crearías un conector de webhook entrante y apuntarías tu script a él, lo cual resulta bastante práctico.

Supervisar todos los controladores de dominio

Si su entorno es grande y tiene varios controladores de dominio, deberá ejecutar esto en cada uno.¿La forma más sencilla? Recorra todos sus controladores con PowerShell:

$DCs = Get-ADDomainController -Filter * foreach ($DC in $DCs) { Get-WinEvent -ComputerName $DC. Name -FilterHashtable @{logname='Security';id=4732, 4728;StartTime=$time} # And process the logs as needed } 

Como alternativa, configura tareas programadas en cada controlador de dominio (quizás mediante GPO) que ejecuten el script periódicamente. Así, no tendrás que estar revisando registros todo el día. Simplemente configúralo y olvídate. Si eres muy precavido, incluso podrías centralizar los registros con un SIEM como Splunk o Graylog, pero esa es otra historia.

Claro, configurar todo esto parece complicado, pero una vez que está en funcionamiento, es un alivio no tener que revisar los registros manualmente. Además, ayuda a detectar con antelación acciones administrativas poco fiables, especialmente en entornos grandes y concurridos con varios administradores. Sin duda, es una opción muy útil para configuraciones más grandes u organizaciones preocupadas por la seguridad.

Resumen

  • Habilitar la política de auditoría avanzada para las modificaciones del grupo de AD.
  • Utilice PowerShell para escanear eventos recientes en busca de cambios sospechosos.
  • Configure alertas por correo electrónico o mensajería para recibir notificaciones instantáneas.
  • Repita o centralice los registros en todos los controladores de dominio.

Resumen

Este proceso no es perfecto: a veces los registros se retrasan, las políticas pueden necesitar ajustes y no todo funciona a la perfección en todas las configuraciones. Pero, en general, es un paso importante para supervisar los cambios críticos de Active Directory sin tener que revisar los registros manualmente constantemente. Una vez implementado, es de gran ayuda para detectar adiciones de usuarios no autorizados o simplemente confirmar cambios en un entorno con mucha actividad.¡Ojalá esto ayude a mantener la seguridad de AD al día sin perder la cabeza!