Guía de integración de Microsoft AD FS

Resumen

Esta guía configura el sensor CBOM Secure Discover_WinCerts para detectar certificados criptográficos de AD FS:

  • Certificados de firma de tokens: firman los tokens de seguridad emitidos a las partes que confían en ellos.
  • Certificados de descifrado de tokens: descifran las aserciones cifradas entrantes.
  • Certificados de comunicaciones de servicio: comunicación segura entre componentes de AD FS

AD FS no expone esta información a través de LDAP. El sensor se ejecuta con scan_adfs: true, invocando Get-AdfsCertificate mediante acceso remoto de PowerShell o localmente en el host de AD FS.

Requisitos previos

  1. Acceso a un controlador de dominio (ADUC o el módulo ActiveDirectory de PowerShell).
  2. Acceso al servidor AD FS (administrador local o remoto mediante WinRM/RDP). Verifique el servicio con Get-Service adfssrv.
  3. El host del sensor es el propio servidor AD FS, o un host Windows con RSAT-AD-Tools y acceso a la red.
  4. PowerShell 5.1 o superior en el host del sensor.
  5. WinRM está habilitado en el servidor AD FS para ejecuciones remotas.
  6. Se ha descargado el paquete de sensores Discover_WinCerts.

Guía paso por paso

Paso 1: Crear una cuenta de servicio

Import-Module ActiveDirectory $SecurePassword = ConvertTo-SecureString "P@ssw0rd!Str0ng#2024" -AsPlainText -Force New-ADUser ` -Name "CBOM ADFS Sensor" ` -SamAccountName "cbom-adfs-sensor" ` -UserPrincipalName "[email protected]" ` -Path "OU=Service Accounts,DC=corp,DC=example,DC=com" ` -AccountPassword $SecurePassword ` -PasswordNeverExpires $true -CannotChangePassword $true -Enabled $true  

Paso 2: Otorgar acceso de lectura a los certificados de AD FS

Get-AdfsCertificate requiere pertenecer al grupo local AD FS Readers en el servidor AD FS. En el servidor AD FS como administrador local:

Add-LocalGroupMember -Group "AD FS Readers" -Member "CORP\cbom-adfs-sensor" Get-LocalGroupMember -Group "AD FS Readers"  

Paso 3: Instale RSAT en el host del sensor (solo para ejecuciones remotas).

Add-WindowsFeature RSAT-AD-Tools # En el servidor AD FS, habilite el acceso remoto: Enable-PSRemoting -Force # Desde el host del sensor, verifique: Test-WSMan -ComputerName adfs-server.corp.example.com -Credential (Get-Credential)  

Paso 4: Verificar el acceso a los certificados de AD FS

$Credential = Get-Credential -UserName "CORP\cbom-adfs-sensor" -Message "contraseña de la cuenta de servicio" Invoke-Command -ComputerName adfs-server.corp.example.com -Credential $Credential -ScriptBlock { Import-Module ADFS Get-AdfsCertificate }  

Confirme que se devuelvan al menos tres tipos de certificados: firma de tokens, descifrado de tokens y comunicaciones de servicio.

Paso 5: Configurar el sensor de seguridad CBOM

sensores: - nombre: Discover_WinCerts habilitado: verdadero programación: "0 2 * * *" # diario a las 02:00 UTC escanear_adfs: verdadero adfs: host: adfs-server.corp.example.com puerto: 5985 # WinRM HTTP; 5986 para HTTPS usar_ssl: falso # verdadero si WinRM HTTPS está configurado método_autenticación: negociar # negociar | kerberos | ntlm | básico dominio: corp.example.com nombre_de_usuario: cbom-adfs-sensor entorno_contraseña: CBOM_ADFS_PASSWORD tipos_certificado: [Firma-de-token, Descifrado-de-token, Comunicaciones-de-servicio] salida: formato: cbom-json destino: /var/cbom/output/adfs etiquetas: { entorno: producción, plataforma: adfs, equipo: identidad }  

Nota: Configure CBOM_ADFS_PASSWORD a través de un administrador de secretos en tiempo de ejecución, en lugar de hacerlo en los perfiles de shell.

Paso 6: Validar

cbom-sensor run --sensor Discover_WinCerts --config /etc/cbom/sensors/adfs.yaml --dry-run grep -i "CertificateType" /var/cbom/output/adfs/adfs-server_certificates_ .json 

Confirme que la salida contiene entradas de Firma de tokens, Desencriptación de tokens y Comunicaciones de servicio.

Errores comunes

Se deniega el acceso al llamar a Get-AdfsCertificate (0x80070005)

Causa: La cuenta de servicio no pertenece al grupo local de lectores de AD FS o el token no se ha actualizado.

Solución: Confirme la membresía con Get-LocalGroupMember; inicie una nueva sesión para actualizar el token; vuelva a agregar la cuenta si falta.

Error de conexión WinRM (host remoto)

Causa: WinRM no está habilitado en el servidor AD FS o un firewall bloquea los puertos TCP 5985/5986.

Solución: Ejecute Enable-PSRemoting -Force, permita la regla de firewall WinRM y verifique con Test-NetConnection -Port 5985.

No se encontró el cmdlet Get-AdfsCertificate.

Causa: El módulo PowerShell ADFS no está presente en el host del sensor.

Solución: Ejecute el sensor en el servidor AD FS o instale RSAT-AD-Tools y confirme con Get-Module -ListAvailable -Name ADFS.

Recomendaciones de seguridad

  • Utilice la autenticación Kerberos para WinRM para garantizar la autenticación mutua y prevenir ataques de retransmisión.
  • Habilite WinRM a través de HTTPS (puerto 5986) con un certificado válido.
  • Almacene la contraseña de la cuenta de servicio en un gestor de secretos e inyéctela como una variable de corta duración.
  • Denegar el inicio de sesión interactivo y de Escritorio remoto para la cuenta de servicio mediante GPO.
  • Audite los eventos de inicio de sesión (4624/4625) para cbom-adfs-sensor y envíelos a su SIEM.

Conclusión

El sensor Discover_WinCerts con scan_adfs: true proporciona un descubrimiento de solo lectura de todos los certificados de firma de tokens, descifrado de tokens y comunicaciones de servicio de AD FS, material no accesible a través de LDAP, lo que mantiene actualizado el inventario de CBOM Secure con las rotaciones de certificados de AD FS para garantizar el cumplimiento y la agilidad criptográfica.