Guide för integration av Microsoft AD FS
Översikt
Den här guiden konfigurerar CBOM Secure Discover_WinCerts-sensorn för att upptäcka AD FS-kryptografiska certifikat:
- Tokensigneringscertifikat — signera säkerhetstokens utfärdade till förlitande parter
- Token-dekrypteringscertifikat — dekryptera inkommande krypterade påståenden
- Tjänstkommunikationscertifikat – säker kommunikation mellan AD FS-komponenter
AD FS exponerar inte dessa via LDAP. Sensorn körs med scan_adfs: true, och anropar Get-AdfsCertificate via PowerShell-fjärrstyrning eller lokalt på AD FS-värden.
Förutsättningar
- Åtkomst till en domänkontrollant (ADUC eller ActiveDirectory PowerShell-modulen).
- Åtkomst till AD FS-servern (lokal administratör eller fjärradministratör via WinRM/RDP). Verifiera tjänsten med Get-Service adfssrv.
- Sensorvärden är själva AD FS-servern, eller en Windows-värd med RSAT-AD-Tools och nätverksåtkomst.
- PowerShell 5.1+ på sensorvärden.
- WinRM aktiverat på AD FS-servern för fjärrkörningar.
- Sensorpaketet Discover_WinCerts har laddats ner.
Steg-för-steg-guide
Steg 1: Skapa ett servicekonto
Import-Module ActiveDirectory $SecurePassword = ConvertTo-SecureString "P@ssw0rd!Str0ng#2024" -AsPlainText -Force New-ADUser ` -Name "CBOM ADFS-sensor" ` -SamAccountName "cbom-adfs-sensor" ` -UserPrincipalName "[e-postskyddad]"` -Sökväg "OU=Service Accounts,DC=corp,DC=example,DC=com" ` -AccountPassword $SecurePassword ` -PasswordNeverExpires $true -CannotChangePassword $true -Enabled $true
Steg 2: Bevilja läsåtkomst till AD FS-certifikat
Get-AdfsCertificate kräver medlemskap i den lokala AD FS Readers-gruppen på AD FS-servern. På AD FS-servern som lokal administratör:
Lägg till lokalgruppmedlem - gruppen "AD FS-läsare" - medlem "CORP\cbom-adfs-sensor" Get-lokalgruppmedlem - gruppen "AD FS-läsare"
Steg 3: Installera RSAT på sensorvärden (endast fjärrkörningar)
Add-WindowsFeature RSAT-AD-Tools # Aktivera fjärrstyrning på AD FS-servern: Enable-PSRemoting -Force # Verifiera följande från sensorvärden: Test-WSMan -ComputerName adfs-server.corp.example.com -Credential (Get-Credential)
Steg 4: Verifiera åtkomst till AD FS-certifikat
$Credential = Get-Credential -UserName "CORP\cbom-adfs-sensor" -Message "service account password" Invoke-Command -ComputerName adfs-server.corp.example.com -Credential $Credential -ScriptBlock { Import-Module ADFS Get-AdfsCertificate }
Bekräfta att minst tre certifikattyper returneras: Token-signering, Token-dekryptering och Service-kommunikation.
Steg 5: Konfigurera CBOM Secure Sensor
sensorer: - namn: Discover_WinCerts aktiverat: sant schema: "0 2 * * *" # dagligen kl. 02:00 UTC scan_adfs: sant adfs: värd: adfs-server.corp.example.com port: 5985 # WinRM HTTP; 5986 för HTTPS use_ssl: falskt # sant om WinRM HTTPS är konfigurerat auth_method: negotiate # negotiate | kerberos | ntlm | basic domain: corp.example.com användarnamn: cbom-adfs-sensor password_env: CBOM_ADFS_PASSWORD certifikattyper: [Token-signering, Token-dekryptering, Service-kommunikation] output: format: cbom-json destination: /var/cbom/output/adfs taggar: { miljö: produktion, plattform: adfs, team: identitet }
Obs: Ställ in CBOM_ADFS_PASSWORD via en hemlighetshanterare vid körning snarare än i skalprofiler.
Steg 6: Validera
cbom-sensor run --sensor Discover_WinCerts --config /etc/cbom/sensors/adfs.yaml --dry-run grep -i "Certifikattyp" /var/cbom/output/adfs/adfs-server_certificates_ .json
Bekräfta att utdata innehåller poster för tokensignering, tokendekryptering och servicekommunikation.
Vanliga fel
Åtkomst nekas vid anrop av Get-AdfsCertificate (0x80070005)
Orsak: Tjänstkontot finns inte i den lokala AD FS-läsargruppen, eller så har token inte uppdaterats.
Lösning: Bekräfta medlemskap med Get-LocalGroupMember; starta en ny session för att uppdatera token; lägg till kontot igen om det saknas.
WinRM-anslutningsfel (fjärrvärd)
Orsak: WinRM är inte aktiverat på AD FS-servern, eller så blockerar en brandvägg TCP 5985/5986.
Lösning: Kör Enable-PSRemoting-Force, tillåt WinRM-brandväggsregeln och verifiera med Test-NetConnection-Port 5985.
Get-AdfsCertificate-cmdlet hittades inte
Orsak: PowerShell ADFS-modulen finns inte på sensorvärden.
Lösning: Kör sensorn på AD FS-servern eller installera RSAT-AD-Tools och bekräfta med Get-Module -ListAvailable -Name ADFS.
Säkerhetsrekommendationer
- Använd Kerberos-autentisering för WinRM för att framtvinga ömsesidig autentisering och förhindra reläattacker.
- Aktivera WinRM över HTTPS (port 5986) med ett giltigt certifikat.
- Lagra lösenordet för tjänstkontot i en hemlighetshanterare och injicera det som en kortlivad variabel.
- Neka interaktiv inloggning och inloggning på fjärrskrivbord för tjänstkontot via grupprincipobjektet.
- Granska inloggningshändelser (4624/4625) för cbom-adfs-sensor och vidarebefordra till din SIEM.
Slutsats
Discover_WinCerts-sensorn med scan_adfs: true tillhandahåller skrivskyddad identifiering av alla AD FS-tokensignerings-, tokendekrypterings- och servicekommunikationscertifikat, material som inte är tillgängligt via LDAP, vilket håller CBOM Secure-inventeringen aktuell med AD FS-certifikatrotationer för efterlevnad och kryptoagilitet.
