# 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: ```bash 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 ``` 3. Actions aktivieren, Runner-Label `vuln-runner` bereitstellen und Workflow manuell starten. 4. 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 ```bash python3 scripts/sync.py --since-year 2017 --full python3 scripts/validate.py ```