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:

  1. Administratorzugriff auf den Ziel-Windows-Rechner oder die Zieldomäne.
  2. Windows Server 2016+ oder Windows 10/11.
  3. ADUC (Domänenkonten) oder Lokale Benutzer und Gruppen (lokale Konten).
  4. Das CBOM-Sensorpaket wurde heruntergeladen und auf dem Zielsystem extrahiert.
  5. PowerShell 5.1+, certlm.msc und certutil.exe verfügbar.
  6. 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.