GnuPG-integratiehandleiding
Overzicht
De CBOM Secure Discover_PGP-sensor voert een alleen-lezen ontdekking uit van OpenPGP-sleutelmateriaal in GnuPG-sleutelringbestanden op een host, waarbij alleen metadata worden geïnventariseerd:
- Metadata van de publieke sleutel: sleutel-ID, vingerafdruk, algoritme, sleutelgrootte, aanmaak-/vervaldatum en UID's.
- Geheime sleutelresten: aanwezigheid van geheim materiaal, sleutelgreep en subtoetsen
- Relaties tussen subsleutels: vingerafdrukken, algoritmen, gebruiksvlaggen en geldigheidsperioden.
Privé-sleutels, wachtzinnen en onbewerkte sleutelbytes worden nooit gelezen, verzonden of opgeslagen.
Voorwaarden
- GnuPG geïnstalleerd (versie 2.1 of hoger aanbevolen; 1.x ondersteunt alleen-lezen voor .gpg-sleutelringen).
- De CBOM-agent is geïnstalleerd op de host (of via een gekoppeld pad naar de GPG-home).
- De agentgebruiker van het besturingssysteem heeft leesrechten voor ~/.gnupg/ of $GNUPGHOME.
- Python 3.8 of hoger is vereist voor de CBOM-agentruntime.
Stapsgewijze handleiding
Stap 1: Identificeer de GnuPG-thuisdirectory
gpg --version echo "GNUPGHOME=${GNUPGHOME:-~/.gnupg}" ls -lh "${GNUPGHOME:-$HOME/.gnupg}/"
Moderne GnuPG 2.1+ gebruikt pubring.kbx (plus private-keys-v1.d/); oudere versies gebruiken pubring.gpg / secring.gpg.
Stap 2: Controleer leesrechten en toon de sleutels.
Controleer als gebruiker van het CBOM-agentbesturingssysteem of de sleutelringmetadata leesbaar is (de sensor gebruikt –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
Opmerking: Een # achter sec/ssb (bijv. sec#) betekent dat de privésleutel een stub is (niet lokaal aanwezig). De sensor registreert alleen metadata.
Stap 3: Geef leesrechten (indien nodig)
sudo usermod -aG cbom-agent chmod 750 /home/appuser/.gnupg chmod 640 /home/appuser/.gnupg/pubring.kbx
Maak het .gnupg-bestand niet wereldwijd leesbaar, want dat stelt vertrouwensgegevens bloot aan alle lokale gebruikers.
Stap 4: Configureer de CBOM Secure Sensor
Sensoren: - naam: Discover_PGP ingeschakeld: true schema: "0 2 * * *" configuratie: 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 herstart cbom-agent
Stap 5: Valideren
sudo journalctl -u cbom-agent -n 100 --no-pager | grep -i "Discover_PGP" cbom-agent run-sensor --name Discover_PGP --once
Controleer of de openbare sleutels en de geheime-sleutelfragmenten worden weergegeven en of het aantal sleutels overeenkomt met een handmatige gpg –list-keys-controle. Controleer de vingerafdrukken, algoritmen, groottes en datums onder Assets → PGP Keys, en of er geen privé-materiaal aanwezig is.
Veel voorkomende fouten
Toegang geweigerd bij het openen van het sleutelbosbestand.
Oorzaak: De agentgebruiker kan het sleutelringbestand niet lezen.
Oplossing: geef de sleutelring de rechten 640 met chmod, stel het groepseigendom in op een gedeelde groep en voeg cbom-agent eraan toe.
Onveilige machtigingen voor homedir (gpg stopt)
Oorzaak: GnuPG weigert een thuismap met schrijfrechten voor de groep/iedereen (bijv. 777/775).
Oplossing: geef de map .gnupg de rechten 700 en pubring.kbx / trustdb.gpg de rechten 600.
CBOM-platform weigert rapport (HTTP 401)
Oorzaak: Het API-token ontbreekt/is verlopen of de variabele is niet geïnjecteerd.
Oplossing: Stel CBOM_API_TOKEN in de systemd-unit in, herlaad/herstart het systeem en vervang het token indien het is verlopen.
Beveiligingsaanbevelingen
- Geef de agent-OS-gebruiker alleen-leestoegang tot de GPG-thuisdirectory; voer deze nooit uit als de eigenaar van de sleutelring of als root.
- Maak de extensie .gnupg nooit breder dan 750.
- Injecteer het API-token via een systemd EnvironmentFile (chmod 600), niet via het YAML-bestand.
- Waarschuwing voor sleutels die bijna verlopen via stale_key_threshold_days.
- Gebruik auditd op de .gnupg-directory om toegang buiten de scanvensters te detecteren.
Conclusie
De Discover_PGP-sensor biedt geautomatiseerde, alleen-lezen ontdekking van OpenPGP-sleutelmetadata uit GnuPG-sleutelringen, waardoor continu inzicht wordt verkregen in de levenscyclus, algoritmen en vervaldatum van PGP-sleutels zonder ooit privé-materiaal te hoeven lezen.
