Betriebskonzept Schwachstellen-Überwachung (Trivy)
Kunde | [Kunde] |
Stand | [Datum] · Trivy 0.76.1 · Skript security-scan.sh v6 |
Verantwortlich | [Name, Rolle] |
Geltungsbereich | [Liste der Server oder Verweis auf Inventar] |
1. Zweck
Jeder Server wird jede Nacht auf bekannte Sicherheitslücken in seinen Anwendungen geprüft. Gemeldet wird nur, wo gehandelt werden kann: wenn der Hersteller eine korrigierte Fassung bereitstellt, oder wenn eine Lücke so lange offen ist, dass über die Anwendung selbst entschieden werden muss.
2. Was geprüft wird
Bereich | Geprüft durch |
|---|---|
Laufende Container (Docker) | Trivy, inklusive Prüfung beim Hersteller |
Anwendungen in
und
| Trivy (installierte Bibliotheken, z. B. PHP, Node, Java) |
Pakete des Betriebssystems | Automatische Sicherheitsupdates und Wazuh |
Nicht geprüft | Verzeichnisse mit „backup“ im Namen, Nextcloud-Benutzerdaten (werden automatisch erkannt) |
3. Ablauf
- Jede Nacht um 2:30 Uhr lädt Trivy die aktuelle Schwachstellen-Datenbank.
- Container und Verzeichnisse werden ohne Netzverbindung und nur lesend geprüft.
- Bei Containern mit kritischen Lücken prüft Trivy, ob das aktuelle Image des Herstellers unter derselben Bezeichnung die Lücken behebt.
- Die Zahlen gehen an Zabbix (Alarme), die Einzelheiten an Wazuh (jede Lücke einzeln).
4. Alarmregel und Reaktion
Meldung | Bedeutung | Reaktion |
|---|---|---|
HIGH | Der Hersteller hat ein neueres Image, das kritische Lücken schließt. | Image neu laden, nur diesen Dienst neu starten, Funktion prüfen. Frist: [Frist] |
WARNING | Eine kritische Lücke ist seit 30 Tagen offen, ohne Fix vom Hersteller. | Entscheiden: Risiko tragen, Zugang einschränken oder Anwendung ersetzen. Entscheidung dokumentieren. |
Information | Alle übrigen Funde, z. B. Lücken ohne Fix vom Hersteller. | Keine. Sichtbar in Wazuh und in der Liste auf dem Server. |
WARNING | Scan mit Fehlern, oder seit 26 Stunden kein Scan. | Ursache im Journal des Servers prüfen (
bzw. Cron-Lauf). |
Infrastruktur-Container (z. B. Datenbanken, Reverse Proxy), die nachts automatisch aktualisiert werden, lösen keine Alarme aus.
5. Absicherung des Scanners selbst
- Trivy läuft in einer festen Version: als Container per Digest, ohne Docker per Programm mit kontrollierter Prüfsumme. Ein Update von Trivy gibt es nur über eine Freigabe.
- Prüfungen laufen ohne Netz und nur lesend, der Scanner erhält keinen Zugriff auf Docker selbst.
- Keine Nutzungsdaten an den Hersteller (Telemetrie abgeschaltet), kein Durchsuchen nach Passwörtern oder Schlüsseln.
6. Änderungen und Freigabe
- Verteilt wird ausschließlich per Ansible (
playbooks/setup_security_monitoring.yml), nie von Hand auf einzelnen Servern. - Jede Änderung wird zuerst in einem Testzweig auf zwei Servern geprüft.
- Erst nach bestandener Prüfung kommt sie in den freigegebenen Stand und wird gruppenweise verteilt.
- Das Playbook bricht ab, wenn Voraussetzungen fehlen, und läuft nur mit gezielter Server-Auswahl.
7. Voraussetzungen je Server
- Wazuh-Agent installiert (auf dem Wazuh-Server: Manager)
- Docker oder Internetzugang zu GitHub für die Installation des Programms
- Mindestens 3 GB frei für die Datenbanken von Trivy
- Template „Template Security Trivy“ in Zabbix verknüpft
8. Grenzen
- Für Anwendungen ohne Docker, für selbst gebaute Images und für Images mit fest eingetragenem Digest kann Trivy nicht prüfen, ob der Hersteller einen Fix hat. Dort gibt es keinen HIGH-Alarm, nur die Warnung nach 30 Tagen.
- Anwendungen außerhalb von
/optund/var/wwwwerden nicht geprüft. [Hier abweichende Installationsorte des Kunden eintragen] - Öffentliche Registries begrenzen Abrufe ohne Anmeldung. Ist die Grenze erreicht, meldet der Scan einen Fehler, die Herstellerprüfung fehlt dann für diese Nacht.
9. Kurzreferenz auf dem Server
Datei | Inhalt |
|---|---|
| Lücken mit Fix vom Hersteller (HIGH) |
| Lücken seit 30 Tagen ohne Fix (WARNING) |
| Stand der Herstellerprüfung je Container |
| Rohdaten für Wazuh |
| Scan-Skript (nur über Ansible ändern) |
Scan von Hand starten, unabhängig von der SSH-Verbindung: systemd-run --unit=trivy-manual --collect /usr/local/bin/security-scan.sh
No comments to display
No comments to display