docs: the README told the reader to maintain a file that no longer exists
Three passages still described cve/images.txt, and one of them instructed the next person to keep it in step with the stack on every change — the exact habit ADR-0026 abolished, and the one that had left coverage at 52 percent. The section now says there is nothing to keep in step, names the three sources the set is derived from, and carries the warning that matters: a failed derivation shrinks the desired set, which makes coverage look better rather than worse. Whoever edits this must not trim the freshness stamps away. The compose comment said the same thing and is corrected with it.
This commit is contained in:
+34
-4
@@ -62,7 +62,9 @@ Dashboard-JSONs innerhalb eines bestehenden Providers werden laufend nachgezogen
|
||||
| `alloy/config.alloy` | Docker-Log-Collection -> Loki, node-exporter -> Prometheus |
|
||||
| `grafana/provisioning/` | Datasources (feste UIDs!) und Dashboard-Provider |
|
||||
| `grafana/dashboards/<ordner>/*.json` | Dashboards, je Unterordner ein Grafana-Ordner |
|
||||
| `cve/images.txt` | Liste der real deployten Images, Inventur aus dem Cluster |
|
||||
| `cve/targets.py` | Bildet die Soll-Menge der Scan-Ziele aus Cluster, Betriebs-Host und Registry |
|
||||
| `cve/test_targets.py` | Zusicherungen dazu, je mit Gegenprobe (`python3 test_targets.py`) |
|
||||
| `cve/test_scan_loop.sh` | Zusicherungen fuer die Scan-Schleife (`sh cve/test_scan_loop.sh`) |
|
||||
| `cve/scan-loop.sh` | Trivy-Scan-Schleife (24h), schreibt JSON-Reports |
|
||||
| `cve/cve-exporter.py` | Reports -> Prometheus-Metriken, mit First-Seen-State |
|
||||
|
||||
@@ -90,7 +92,7 @@ Datei-Update verloren.
|
||||
|
||||
## CVE-Pipeline (gitops#47)
|
||||
|
||||
`cve-scan` scannt alle 24h die Images aus `cve/images.txt` mit Trivy und legt
|
||||
`cve-scan` scannt alle 24h die Ziele aus `/targets/targets.txt` mit Trivy und legt
|
||||
JSON-Reports in ein Volume; `cve-exporter` serviert sie als Metriken auf
|
||||
`:9101`, Prometheus scraped sie als Job `cve_exporter`. Dashboard:
|
||||
**Security / CVE-Uebersicht (Trivy)**.
|
||||
@@ -100,8 +102,36 @@ State (`cve_exporter_state`-Volume) -- daher kommt die Spalte
|
||||
"erstmals gesehen". Verschwindet ein Finding, faellt der Eintrag raus
|
||||
(= "geschlossen").
|
||||
|
||||
Bei Stack-Aenderungen `cve/images.txt` nachziehen, sonst scannt die Pipeline
|
||||
an der Realitaet vorbei.
|
||||
### Die Zielmenge wird abgeleitet, NICHT gepflegt (#0106, ADR-0026)
|
||||
|
||||
Bis zum 2026-08-21 stand die Zielliste in `cve/images.txt` und musste bei
|
||||
Stack-Aenderungen von Hand nachgezogen werden. Sie wurde es nicht: Gemessen an
|
||||
dem Tag deckte sie **27 von 51** laufenden Images ab (52 %). Ungescannt blieben
|
||||
unter anderem der Web-Client, den jeder Nutzer laedt, **beide** Traefik-Schichten
|
||||
und die Registry selbst; gleichzeitig lief ein Scan gegen ein Image, das
|
||||
nirgends mehr laeuft.
|
||||
|
||||
**Es gibt daher nichts mehr nachzuziehen.** Der `cve-exporter` bildet die
|
||||
Soll-Menge bei jeder Herleitung neu aus drei Quellen und schreibt sie nach
|
||||
`/targets/targets.txt` (Volume `cve_targets`, fuer den Scanner nur lesbar):
|
||||
|
||||
| Quelle | woher |
|
||||
|---|---|
|
||||
| Cluster | `kube_pod_container_info` aus dem eigenen Prometheus |
|
||||
| Betriebs-Host | `container_last_seen{job="operating_cadvisor"}` — schliesst `gameserver_cadvisor` aus |
|
||||
| Registry | rohana `/v2`, anonymer Token; die letzten drei Fassungen je Repo |
|
||||
|
||||
Ein Ziel, das aus der Menge faellt, verliert seinen Bericht — sonst meldete ein
|
||||
ausgemustertes Image weiter.
|
||||
|
||||
⚠️ **Faellt eine Quelle aus, wird die Soll-Menge kleiner — und die Deckung sieht
|
||||
dadurch BESSER aus, nicht schlechter.** Deshalb traegt jede Quelle einen
|
||||
Frische-Zeitstempel (`cve_target_source_stale`), auf dem eine Alarmregel steht.
|
||||
Wer hier etwas aendert, darf diese Absicherung nicht wegkuerzen; ohne sie ist
|
||||
ein Ausfall der Herleitung von Erfolg nicht zu unterscheiden.
|
||||
|
||||
Deckung im Blick: `cve_target_coverage_ratio`, `cve_targets_missing`,
|
||||
`cve_targets_orphaned` — im Dashboard *Security / CVE-Uebersicht*.
|
||||
|
||||
### Alarm-Zustellung (frueher stummgeschaltet — seit gitops#51 wieder scharf)
|
||||
|
||||
|
||||
@@ -88,7 +88,8 @@ services:
|
||||
- traefik
|
||||
|
||||
# CVE-Pipeline (gitops#47), Teil 1: Trivy scannt die real deployten Images
|
||||
# (cve/images.txt - Inventur aus dem Cluster, bei Stack-Aenderungen nachziehen)
|
||||
# (Ziele aus /targets/targets.txt - abgeleitet vom cve-exporter, NICHT von Hand
|
||||
# pflegen: #0106 / ADR-0026)
|
||||
cve-scan:
|
||||
image: aquasec/trivy:0.58.2
|
||||
container_name: cve-scan
|
||||
|
||||
Reference in New Issue
Block a user