54c164197de14474f54ee34d1f0cb16713281275
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
- Leeres Repository
VULN/vuln-bsiin Gitea erstellen; Inhalt dieses Ordners aufmainpushen. - 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
- Actions aktivieren, Runner-Label
vuln-runnerbereitstellen und Workflow manuell starten. - Der Gitea-Job-Token wird über
secrets.GITEA_TOKENverwendet.permissions: contents: writemuss 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 Indexdata/csaf/YYYY/*.json: vollständige CSAF-Rohdateienstate/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.csvwird 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
Languages
Python
83%
Shell
17%