Leitfaden zur Integration von Windows-Zertifikatspeichern
Übersicht
Der CBOM Secure Discover_WinCerts-Sensor führt eine schreibgeschützte Ermittlung kryptografischer Materialien in den Zertifikatsspeichern des lokalen Windows-Computers durch – Zertifikate, öffentliche Schlüssel, Schlüsselketten und Metadaten (Betreff, Aussteller, Gültigkeit, Schlüsselalgorithmus und -länge). Er liest:
- MEINE – Persönliche Zertifikate (einschließlich solcher mit zugehörigen privaten Schlüsseln)
- ROOT – Vertrauenswürdige Root-Zertifizierungsstellen
- CA – Zertifizierungsbehörden für mittlere Ebenen
- TRUST – Enterprise Trust Store
- TrustedPeople – Zertifikate für vertrauenswürdige Personen
- TrustedPublisher – Zertifikate für vertrauenswürdige Softwarehersteller
Voraussetzungen:
- Administratorzugriff auf den Ziel-Windows-Rechner oder die Zieldomäne.
- Windows Server 2016+ oder Windows 10/11.
- ADUC (Domänenkonten) oder Lokale Benutzer und Gruppen (lokale Konten).
- Das CBOM-Sensorpaket wurde heruntergeladen und auf dem Zielsystem extrahiert.
- PowerShell 5.1+, certlm.msc und certutil.exe verfügbar.
- Netzwerkverbindung zur CBOM-Plattform, einschließlich ihrer URL und eines gültigen API-Tokens.
Schritt-für-Schritt-Anleitung
Schritt 1: Erstellen Sie ein dediziertes Servicekonto
Erstellen Sie ein Konto mit minimalen Berechtigungen (niemals Domänenadministrator). Domäne: ADUC > Neu > Benutzer svc-cbom-wincerts. Lokal: Computerverwaltung > Lokale Benutzer und Gruppen > Neuer Benutzer svc-cbom-wincerts. Vergeben Sie ein sicheres Kennwort mit den Einstellungen „Kennwort läuft nie ab“ und „Kennwort kann nicht geändert werden“.
Schritt 2: Lesezugriff auf die Zertifikatsspeicher gewähren
Öffnen Sie für die privaten Schlüssel Ihres Zertifikatspeichers certlm.msc und gehen Sie für jedes Zertifikat mit einem privaten Schlüssel wie folgt vor: Alle Aufgaben > Private Schlüssel verwalten > svc-cbom-wincerts hinzufügen > Nur-Lese-Berechtigung erteilen. Prüfen Sie, ob die anderen Zertifikatspeicher lesbar sind.
$stores = @("ROOT","CA","TRUST","TrustedPeople","TrustedPublisher") foreach ($s in $stores) { $st = New-Object System.Security.Cryptography.X509Certificates.X509Store($s,'LocalMachine') try { $st.Open('ReadOnly'); Write-Host "$s: Accessible"; $st.Close() } catch { Write-Host "$s: NOT accessible - $_" } }
Gewähren Sie die Berechtigung „Anmelden als Dienst“ über secpol.msc > Zuweisung von Benutzerrechten > Anmelden als Dienst > Konto hinzufügen.
Schritt 3: Sensordateien installieren und einschränken
mkdir „C:\Programme\CBOM\Logs“ icacls „C:\Programme\CBOM\Logs“ /grant „svc-cbom-wincerts:(OI)(CI)M“ icacls „C:\Programme\CBOM\Sensors\WinCerts“ /inheritance:r icacls „C:\Program Files\CBOM\Sensors\WinCerts" /grant "Administrators:(OI)(CI)F" icacls "C:\Program Files\CBOM\Sensors\WinCerts" /grant "svc-cbom-wincerts:(OI)(CI)RX"
Schritt 4: Konfigurieren Sie den CBOM-Sicherheitssensor
Sensor: Name: Discover_WinCerts Beschreibung: "Ermittlung des lokalen Windows-Zertifikatspeichers" Plattform: URL: "https://cbom.example.com" API-Token: "${CBOM_API_TOKEN}" Umgebung: "Produktion" Ziel: Hostname: "WIN-APPSERVER01.corp.example.com" Betriebssystem: "Windows" Scanintervall: 24 Zertifikatspeicher: Bereich: "Lokaler Computer" Speicher: - { Name: MY, aktiviert: true, private Schlüsselmetadaten einschließen: true } - { Name: ROOT, aktiviert: true } - { Name: CA, aktiviert: true } - { Name: TRUST, aktiviert: true } - { Name: TrustedPeople, aktiviert: true } - { Name: TrustedPublisher, aktiviert: true } Ermittlung: Subjekt erfassen: true; Aussteller erfassen: true; Gültigkeitsdaten erfassen: true Schlüsselalgorithmus erfassen: true; collect_key_length: true; collect_chain: true service_account: username: "CORP\\svc-cbom-wincerts"
Hinweis: Das api_token gewährt Zugriff auf CBOM – beziehen Sie es aus einem Geheimnismanager und beschränken Sie die Konfigurationsdatei auf Administratoren und das Dienstkonto.
Schritt 5: Als Windows-Dienst (oder geplante Aufgabe) bereitstellen
sc create "CBOM-WinCerts" ^ binPath= "\"C:\Programme\CBOM\Sensors\WinCerts\cbom-sensor-runner.exe\" --config \"C:\Programme\CBOM\Sensors\WinCerts\sensor-config.yaml\"" ^ DisplayName= "CBOM WinCerts Sensor" start= auto ^ obj= „CORP\svc-cbom-wincerts“ Passwort= „ " sc failure "CBOM-WinCerts" reset= 86400 actions= restart/60000/restart/120000/restart/300000 sc start "CBOM-WinCerts" && sc query "CBOM-WinCerts"
Alternativ können Sie eine täglich geplante Aufgabe (Register-ScheduledTask) registrieren, die als Dienstkonto auf RunLevel Highest ausgeführt wird.
Schritt 6: Validieren
certutil -store MY && certutil -store ROOT && certutil -store CA type "C:\Program Files\CBOM\Logs\wincerts-sensor.log" # Suche nach Scan complete + HTTP 200
Gehen Sie in der CBOM-Plattform zu Assets > Zertifikate und filtern Sie nach Quelle Discover_WinCerts und dem Zielhost, um zu bestätigen, dass die Metadaten korrekt befüllt sind.
Häufige Fehler
Zugriff verweigert beim Öffnen des MY Stores (Schlüsselsatz existiert nicht)
Ursache: Dem Konto fehlt die Leseberechtigung für eine private Schlüssel-ACL, oder die Anmeldung als Dienst wurde nicht gewährt.
Lösung: Fügen Sie das Konto mit Leseberechtigung über „Private Schlüssel verwalten“ für jedes MY-Zertifikat hinzu, bestätigen Sie „Als Dienst anmelden“ und starten Sie den Dienst neu.
Berichtsübermittlung – HTTP 401 Nicht autorisiert
Ursache: Das API-Token ist falsch, abgelaufen oder widerrufen.
Lösung: Generieren/bestätigen Sie das Token unter Einstellungen > API-Tokens, aktualisieren Sie die Konfiguration und starten Sie den Dienst neu.
Dienststart fehlgeschlagen – Fehler 1069 Anmeldefehler
Ursache: Das Passwort des Dienstkontos ist falsch, wurde geändert oder ist seit der Registrierung abgelaufen.
Lösung: Überprüfen Sie das Passwort, aktualisieren Sie es auf der Registerkarte "Anmelden" des Dienstes (oder mit sc config … password=) und starten Sie den Dienst.
Sicherheitsempfehlungen
- Prinzip der minimalen Berechtigungen: Gewähren Sie nur Lesezugriff auf den Speicher und die Zugriffskontrolllisten für den privaten Schlüssel; fügen Sie das Konto niemals zu den Administratoren oder Domänenadministratoren hinzu.
- Schützen Sie die Datei sensor-config.yaml (sie enthält das API-Token) – beschränken Sie den Zugriff auf Administratoren und das Dienstkonto, niemals auf alle Benutzer.
- Das API-Token sollte alle 90 Tage rotiert und der Dienst nach jeder Rotation neu gestartet werden.
- Überwachung der Anmeldungen des Dienstkontos (Ereignis-IDs 4624/4625) für das Konto.
- Unter „Private Schlüssel verwalten“ sollte nur die Leseberechtigung und niemals die Vollzugriffsberechtigung zugewiesen werden, damit das Konto keine Schlüssel exportieren oder löschen kann.
Fazit
Mit einem Dienstkonto mit minimalen Berechtigungen, einem bereichsbezogenen Speicher und privaten Schlüssel-ACLs sowie der Bereitstellung als verwalteter Dienst oder geplanter Task speist Discover_WinCerts Zertifikatsmetadaten – Algorithmen, Schlüssellängen, Gültigkeit, Subjekt/Aussteller und Ketten – aus jedem Windows Local Machine-Speicher in CBOM Secure ein, um eine zentrale kryptografische Asset-Verwaltung und Compliance-Berichterstattung zu ermöglichen.
