GnuPG-integrationsguide

Översikt

CBOM Secure Discover_PGP-sensorn utför skrivskyddad upptäckt av OpenPGP-nyckelmaterial i GnuPG-nyckelringsfiler på en värd och inventerar endast metadata:

  • Metadata för offentliga nyckelringar: nyckel-ID, fingeravtryck, algoritm, nyckelstorlek, skapande-/utgÃ¥ngsdatum och UID:er
  • Hemliga nyckelstubbar: förekomst av hemligt material, nyckelgrepp och undernycklar
  • Delnyckelrelationer: fingeravtryck, algoritmer, användningsflaggor och giltighetsperioder

Privat nyckelmaterial, lösenfraser och råa nyckelbyte läses, överförs eller lagras aldrig.

Förutsättningar

  • GnuPG installerat (2.1+ rekommenderas; 1.x stöds skrivskyddat för .gpg-nyckelringar).
  • CBOM-agenten som är installerad pÃ¥ värden (eller en monterad sökväg till GPG-hemsidan).
  • Agentens operativsystemanvändare har läsbehörighet pÃ¥ ~/.gnupg/ eller $GNUPGHOME.
  • Python 3.8+ för CBOM-agentkörningen.

Steg-för-steg-guide

Steg 1: Identifiera GnuPG-hemkatalogen

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

Modern GnuPG 2.1+ använder pubring.kbx (plus private-keys-v1.d/); äldre versioner använder pubring.gpg / secring.gpg.

Steg 2: Verifiera läsåtkomst och lista nycklar

Som användare av CBOM-agentens operativsystem, bekräfta att nyckelringsmetadata är läsbara (sensorn använder –batch –no-tty):

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

Obs: Ett # efter sec/ssb (t.ex. sec#) betyder att den privata nyckeln är en stub (finns inte lokalt). Sensorn registrerar endast metadata.

Steg 3: Bevilja läsbehörighet (om det behövs)

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

Gör inte .gnupg läsbar för alla användare — det exponerar förtroendedata för alla lokala användare.

Steg 4: Konfigurera CBOM Secure Sensor

sensorer: - namn: Discover_PGP aktiverad: sant schema: "0 2 * * *" konfiguration: gpg_home: "/home/appuser/.gnupg" gpg_binary: "gpg" discover_secret_key_stubs: sant discover_subkeys: sant stale_key_threshold_days: 365 taggar: ["gnupg", "pgp", "env:production"] cbom_api_endpoint: "https://cbom.example.com/api/v1" cbom_api_token: "${CBOM_API_TOKEN}"
sudo systemctl starta om cbom-agent

Steg 5: Validera

sudo journalctl -u cbom-agent -n 100 --no-pager | grep -i "Discover_PGP" cbom-agent körsensor --namn Discover_PGP --once

Bekräfta att publika nycklar och stubbar för hemliga nycklar listas och att nyckelantalet matchar en manuell gpg –list-keys. Verifiera fingeravtryck, algoritmer, storlekar och datum under Tillgångar → PGP-nycklar, utan att något privat material finns närvarande.

Vanliga fel

Åtkomst nekad att öppna nyckelringsfil

Orsak: Agentens operativsystemanvändare kan inte läsa nyckelringsfilen.

Lösning: chmod 640 nyckelringen, ange gruppägarskap till en delad grupp och lägg till cbom-agent till den.

Osäkra behörigheter på hemkatalogen (gpg avbryts)

Orsak: GnuPG vägrar en grupp-/världsskrivbar hemkatalog (t.ex. 777/775).

Upplösning: chmod 700 i .gnupg-katalogen och 600 på pubring.kbx / trustdb.gpg.

CBOM-plattformen avvisar rapport (HTTP 401)

Orsak: API-token saknas/har löpt ut eller så injicerades inte variabeln.

Lösning: Ställ in CBOM_API_TOKEN i systemd-enheten, ladda om/starta om och rotera token om den har löpt ut.

Säkerhetsrekommendationer

  • Ge agentens OS-användare skrivskyddad Ã¥tkomst till GPG-hemsidan; kör den aldrig som nyckelringsägare eller root.
  • Gör aldrig .gnupg bredare än 750.
  • Injicera API-token via en systemd EnvironmentFile (chmod 600), inte YAML.
  • Avisering om nycklar som närmar sig utgÃ¥ngsdatum via stale_key_threshold_days.
  • Använd audittd i .gnupg-katalogen för att upptäcka Ã¥tkomst utanför skanningsfönster.

Slutsats

Discover_PGP-sensorn levererar automatiserad, skrivskyddad identifiering av OpenPGP-nyckelmetadata från GnuPG-nyckelringar – vilket ger kontinuerlig insyn i PGP-nyckelns livscykel, algoritmer och utgångsdatum utan att någonsin läsa privat material.