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.