Microsoft AD FS-Integrationsleitfaden
Übersicht
Diese Anleitung konfiguriert den CBOM Secure Discover_WinCerts-Sensor zur Erkennung kryptografischer Zertifikate von AD FS:
- Token-Signaturzertifikate – Signieren von Sicherheitstoken, die an vertrauende Parteien ausgegeben werden
- Token-Entschlüsselungszertifikate – Entschlüsselung eingehender verschlüsselter Zusicherungen
- Servicekommunikationszertifikate – sichere Kommunikation zwischen AD FS-Komponenten
AD FS stellt diese Zertifikate nicht über LDAP bereit. Der Sensor wird mit scan_adfs: true ausgeführt und ruft Get-AdfsCertificate entweder per PowerShell-Remoting oder lokal auf dem AD FS-Host auf.
Voraussetzungen:
- Zugriff auf einen Domänencontroller (ADUC oder das ActiveDirectory PowerShell-Modul).
- Zugriff auf den AD FS-Server (lokaler Administrator oder Remote-Zugriff über WinRM/RDP). Überprüfen Sie den Dienst mit Get-Service adfssrv.
- Der Sensorhost ist entweder der AD FS-Server selbst oder ein Windows-Host mit RSAT-AD-Tools und Netzwerkzugriff.
- PowerShell 5.1+ auf dem Sensorhost.
- WinRM ist auf dem AD FS-Server für Remote-Ausführungen aktiviert.
- Das Sensorpaket Discover_WinCerts wurde heruntergeladen.
Schritt-für-Schritt-Anleitung
Schritt 1: Erstellen Sie ein Dienstkonto
Import-Module ActiveDirectory $SecurePassword = ConvertTo-SecureString "P@ssw0rd!Str0ng#2024" -AsPlainText -Force New-ADUser ` -Name "CBOM ADFS Sensor" ` -SamAccountName "cbom-adfs-sensor" ` -UserPrincipalName "[E-Mail geschützt] " ` -Path "OU=Service Accounts,DC=corp,DC=example,DC=com" ` -AccountPassword $SecurePassword ` -PasswordNeverExpires $true -CannotChangePassword $true -Enabled $true
Schritt 2: Lesezugriff auf AD FS-Zertifikate gewähren
Get-AdfsCertificate erfordert die Mitgliedschaft in der lokalen AD FS-Lesergruppe auf dem AD FS-Server. Führen Sie die folgenden Schritte auf dem AD FS-Server als lokaler Administrator aus:
Add-LocalGroupMember -Group "AD FS Readers" -Member "CORP\cbom-adfs-sensor" Get-LocalGroupMember -Group "AD FS Readers"
Schritt 3: RSAT auf dem Sensorhost installieren (nur bei Remote-Ausführungen)
Add-WindowsFeature RSAT-AD-Tools # Auf dem AD FS-Server Remoting aktivieren: Enable-PSRemoting -Force # Vom Sensorhost aus überprüfen: Test-WSMan -ComputerName adfs-server.corp.example.com -Credential (Get-Credential)
Schritt 4: Zugriff auf AD FS-Zertifikate überprüfen
$Credential = Get-Credential -UserName "CORP\cbom-adfs-sensor" -Message "Dienstkontokennwort" Invoke-Command -ComputerName adfs-server.corp.example.com -Credential $Credential -ScriptBlock { Import-Module ADFS Get-AdfsCertificate }
Stellen Sie sicher, dass mindestens drei Zertifikatstypen zurückgegeben werden: Token-Signatur, Token-Entschlüsselung und Dienstkommunikation.
Schritt 5: Konfigurieren Sie den CBOM-Sicherheitssensor
Sensoren: - Name: Discover_WinCerts aktiviert: true Zeitplan: "0 2 * * *" # täglich um 02:00 UTC scan_adfs: true adfs: Host: adfs-server.corp.example.com Port: 5985 # WinRM HTTP; 5986 für HTTPS use_ssl: false # true, wenn WinRM HTTPS konfiguriert ist auth_method: negotiate # negotiate | kerberos | ntlm | basic Domäne: corp.example.com Benutzername: cbom-adfs-sensor password_env: CBOM_ADFS_PASSWORD Zertifikatstypen: [Token-Signierung, Token-Entschlüsselung, Dienstkommunikation] Ausgabe: Format: cbom-json Ziel: /var/cbom/output/adfs Tags: { environment: production, platform: adfs, team: identity }
Hinweis: CBOM_ADFS_PASSWORD sollte zur Laufzeit über einen Geheimnismanager und nicht in Shell-Profilen festgelegt werden.
Schritt 6: Validieren
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
Prüfen Sie, ob die Ausgabe Einträge für Token-Signierung, Token-Entschlüsselung und Service-Kommunikation enthält.
Häufige Fehler
Der Zugriff auf Get-AdfsCertificate wurde verweigert (0x80070005).
Ursache: Das Dienstkonto ist nicht Mitglied der lokalen AD FS-Lesergruppe oder das Token wurde nicht aktualisiert.
Lösung: Überprüfen Sie die Mitgliedschaft mit Get-LocalGroupMember; starten Sie eine neue Sitzung, um das Token zu aktualisieren; fügen Sie das Konto erneut hinzu, falls es fehlt.
WinRM-Verbindungsfehler (Remote-Host)
Ursache: WinRM ist auf dem AD FS-Server nicht aktiviert, oder eine Firewall blockiert TCP 5985/5986.
Lösung: Führen Sie Enable-PSRemoting -Force aus, erlauben Sie die WinRM-Firewallregel und überprüfen Sie die Verbindung mit Test-NetConnection -Port 5985.
Das Cmdlet „Get-AdfsCertificate“ wurde nicht gefunden.
Ursache: Das PowerShell ADFS-Modul ist auf dem Sensorhost nicht vorhanden.
Lösung: Führen Sie den Sensor auf dem AD FS-Server aus oder installieren Sie RSAT-AD-Tools und überprüfen Sie die Verfügbarkeit mit Get-Module -ListAvailable -Name ADFS.
Sicherheitsempfehlungen
- Verwenden Sie die Kerberos-Authentifizierung für WinRM, um die gegenseitige Authentifizierung zu erzwingen und Relay-Angriffe zu verhindern.
- Aktivieren Sie WinRM über HTTPS (Port 5986) mit einem gültigen Zertifikat.
- Speichern Sie das Dienstkontopasswort in einem Geheimnismanager und fügen Sie es als kurzlebige Variable ein.
- Interaktive und Remote-Desktop-Anmeldung für das Dienstkonto über Gruppenrichtlinienobjekte verweigern.
- Protokollieren Sie die Anmeldeereignisse (4624/4625) für cbom-adfs-sensor und leiten Sie diese an Ihr SIEM weiter.
Fazit
Der Discover_WinCerts-Sensor mit scan_adfs: true ermöglicht die schreibgeschützte Ermittlung aller AD FS-Tokensignatur-, Tokenentschlüsselungs- und Dienstkommunikationszertifikate, die nicht über LDAP zugänglich sind. Dadurch wird der CBOM Secure-Bestand im Hinblick auf Compliance und Krypto-Agilität durch die AD FS-Zertifikatrotationen auf dem neuesten Stand gehalten.
