Files
2026-11-10 21:44:49 +01:00

2.4 KiB

vuln-bsi — BSI WID CSAF WHITE Mirror

Spiegelt die öffentlich zugänglichen CSAF-Dokumente des BSI WID / CERT-Bund ab 2017 in das eigene Gitea-Repository.

Quelle: https://wid.cert-bund.de/.well-known/csaf/white/index.txt

Einrichtung

  1. Leeres Repository VULN/vuln-bsi in Gitea erstellen; Inhalt dieses Ordners auf main pushen.
  2. Auf der Gitea-VM den Cache anlegen:
sudo install -d -o act_runner -g act_runner -m 700 /var/lib/act_runner/cache/vuln-bsi
sudo apt update && sudo apt install -y git python3 util-linux ca-certificates
  1. Actions aktivieren, Runner-Label vuln-runner bereitstellen und Workflow manuell starten.
  2. Der Gitea-Job-Token wird über secrets.GITEA_TOKEN verwendet. permissions: contents: write muss auf der Instanz unterstützt und erlaubt sein.

Automatisch: 23 */4 * * * (UTC). Ein vollständiger Erstlauf kann eine längere Zeit und einige GB Git-Speicher benötigen.

Datenstruktur

  • data/index.txt: unveränderter offizieller Index
  • data/csaf/YYYY/*.json: vollständige CSAF-Rohdateien
  • state/sync.json: Verzeichnisliste, Prüf-Cursor, letzter erfolgreicher Lauf

Synchronisationslogik

  • Bei Erstlauf alle Einträge ab 2017 herunterladen.
  • Später neue und fehlende Dateien sowie 300 rotierende Altdateien abrufen; Änderungen werden an den Datei-Inhalten erkannt.
  • Dateien, die aus dem Index verschwinden, erst nach vollständigem erfolgreichem Abruf entfernen.
  • Index, Dateiinhalte und Synchronisationsstatus validieren, dann Commit und Push.
  • Kein komplett neuer Git-Checkout bei jedem Lauf: permanenter Checkout unter /var/lib/act_runner/cache/vuln-bsi/repo.

Einschränkungen

  • Geänderte ältere Dokumente werden erst beim rotierenden Prüflauf erkannt. changes.csv wird aktuell nicht interpretiert; für schnellere Updates kann diese Quelle später ergänzt werden.
  • Nach einem abgebrochenen Lauf bleibt das Arbeitsverzeichnis bewusst unverändert und muss geprüft werden, bevor ein weiterer Lauf startet. Das verhindert versehentliche Datenverluste.
  • Ein Git-Index mit vielen Rohdaten kann erhebliche Größe erreichen.
  • Der Runner arbeitet direkt auf der Gitea-VM. Nur vertrauenswürdige Workflows verwenden.
  • Ein vollständiger Live-Abruf ist noch nicht verifiziert.

Manuell lokal synchronisieren

python3 scripts/sync.py --since-year 2017 --full
python3 scripts/validate.py