GnuPG-Integrationsleitfaden

Übersicht

Der CBOM Secure Discover_PGP-Sensor führt eine schreibgeschützte Ermittlung von OpenPGP-Schlüsselmaterial in GnuPG-Schlüsselringdateien auf einem Host durch und erfasst dabei nur Metadaten:

  • Metadaten des öffentlichen Schlüssels: Schlüssel-ID, Fingerabdruck, Algorithmus, Schlüssellänge, Erstellungs-/Ablaufdatum und UIDs
  • Geheime Tastenstümpfe: Vorhandensein von geheimem Material, Tastengriff und Untertasten
  • Unterschlüsselbeziehungen: Fingerabdrücke, Algorithmen, Nutzungskennzeichen und Gültigkeitszeiträume

Private Schlüsseldaten, Passphrasen und Rohdaten des Schlüssels werden niemals gelesen, übertragen oder gespeichert.

Voraussetzungen:

  • GnuPG installiert (Version 2.1+ empfohlen; Version 1.x unterstützte nur Lesezugriff für .gpg-Schlüsselringe).
  • Der CBOM-Agent ist auf dem Host installiert (oder es wird ein eingebundener Pfad zum GPG-Home-Verzeichnis angegeben).
  • Der Agent-OS-Benutzer hat Leseberechtigung für ~/.gnupg/ oder $GNUPGHOME.
  • Python 3.8+ für die CBOM-Agent-Laufzeitumgebung.

Schritt-für-Schritt-Anleitung

Schritt 1: GnuPG-Basisverzeichnis ermitteln

gpg --version echo "GNUPGHOME=${GNUPGHOME:-~/.gnupg}" ls -lh "${GNUPGHOME:-$HOME/.gnupg}/"

Modernes GnuPG 2.1+ verwendet pubring.kbx (plus private-keys-v1.d/); ältere Versionen verwenden pubring.gpg / secring.gpg.

Schritt 2: Lesezugriff überprüfen und Schlüssel auflisten

Als Benutzer des CBOM-Agenten-Betriebssystems bestätigen Sie, dass die Metadaten des Schlüsselrings lesbar sind (der Sensor verwendet –batch –no-tty):

gpg --homedir "${GNUPGHOME:-$HOME/.gnupg}" \ --list-keys --with-fingerprint --with-keygrip --batch --no-tty gpg --homedir "${GNUPGHOME:-$HOME/.gnupg}" \ --list-secret-keys --with-fingerprint --with-keygrip --batch --no-tty

Hinweis: Ein # nach sec/ssb (z. B. sec#) bedeutet, dass der private Schlüssel ein Stub ist (nicht lokal vorhanden). Der Sensor zeichnet nur Metadaten auf.

Schritt 3: Leseberechtigung erteilen (falls erforderlich)

sudo usermod -aG cbom-agent chmod 750 /home/appuser/.gnupg chmod 640 /home/appuser/.gnupg/pubring.kbx

Machen Sie die Datei .gnupg nicht für alle Benutzer lesbar – dadurch werden Vertrauensdaten für alle lokalen Benutzer offengelegt.

Schritt 4: Konfigurieren Sie den CBOM-Sicherheitssensor

Sensoren: - Name: Discover_PGP aktiviert: true Zeitplan: "0 2 * * *" Konfiguration: gpg_home: "/home/appuser/.gnupg" gpg_binary: "gpg" discover_secret_key_stubs: true discover_subkeys: true stale_key_threshold_days: 365 Tags: ["gnupg", "pgp", "env:production"] cbom_api_endpoint: "https://cbom.example.com/api/v1" cbom_api_token: "${CBOM_API_TOKEN}"
sudo systemctl cbom-agent neu starten

Schritt 5: Validieren

sudo journalctl -u cbom-agent -n 100 --no-pager | grep -i "Discover_PGP" cbom-agent run-sensor --name Discover_PGP --once

Prüfen Sie, ob öffentliche Schlüssel und zugehörige geheime Schlüssel aufgelistet sind und die Schlüsselanzahl mit der manuellen Liste der gpg --list-keys übereinstimmt. Überprüfen Sie Fingerabdrücke, Algorithmen, Größen und Datumsangaben unter „Assets → PGP Keys“. Achten Sie darauf, dass keine privaten Daten vorhanden sind.

Häufige Fehler

Zugriff verweigert beim Öffnen der Schlüsselbunddatei

Ursache: Der Agenten-Betriebssystembenutzer kann die Schlüsselringdatei nicht lesen.

Lösung: chmod 640 für den Schlüsselring, Gruppenbesitz auf eine gemeinsame Gruppe festlegen und cbom-agent hinzufügen.

Unsichere Berechtigungen für das Homeverzeichnis (GPG bricht ab)

Ursache: GnuPG lehnt ein für die Gruppe/alle Benutzer beschreibbares Home-Verzeichnis ab (z. B. 777/775).

Lösung: chmod 700 für das Verzeichnis .gnupg und 600 für pubring.kbx / trustdb.gpg.

CBOM-Plattform lehnt Bericht ab (HTTP 401)

Ursache: Das API-Token fehlt/ist abgelaufen oder die Variable wurde nicht eingefügt.

Lösung: CBOM_API_TOKEN in der systemd-Unit setzen, neu laden/starten und das Token gegebenenfalls rotieren.

Sicherheitsempfehlungen

  • Gewähren Sie dem Agenten-Betriebssystembenutzer Lesezugriff auf das GPG-Verzeichnis; führen Sie es niemals als Besitzer des Schlüsselbundes oder als Root aus.
  • Die Datei .gnupg darf niemals breiter als 750 Zeichen sein.
  • Das API-Token wird über eine systemd EnvironmentFile (chmod 600) und nicht über die YAML-Datei eingefügt.
  • Warnung bei Schlüsseln, deren Ablaufdatum sich nähert, über stale_key_threshold_days.
  • Verwenden Sie auditd im Verzeichnis .gnupg, um Zugriffe außerhalb der Scanfenster zu erkennen.

Fazit

Der Discover_PGP-Sensor ermöglicht die automatisierte, schreibgeschützte Ermittlung von OpenPGP-Schlüsselmetadaten aus GnuPG-Schlüsselringen – und bietet so kontinuierliche Einblicke in den Lebenszyklus, die Algorithmen und das Ablaufdatum von PGP-Schlüsseln, ohne jemals private Daten lesen zu müssen.