diff --git a/actionable-security/README.md b/actionable-security/README.md new file mode 100644 index 0000000..e0077a2 --- /dev/null +++ b/actionable-security/README.md @@ -0,0 +1,69 @@ +# Gezielte Sicherheitsmeldungen aus Wazuh + +`notify.py` läuft auf einem nativen Wazuh-All-in-one-Server mit Python 3.9+. +Es liest den lokalen Indexer mit TLS-Prüfung und dem vorhandenen lokalen +Admin-Zertifikat; private Schlüssel werden nicht kopiert oder ausgegeben. +Die Software verändert keine Indexer-Daten und führt keine Inhalte aus Logs aus. +`kev.py` ist die gemeinsame Kataloglogik aus `../docker-security/scan.py`. + +## Meldungsauswahl + +- Aktuelle High-/Critical-OS-Schwachstellen in CISA KEV, nur bei aktiven Agents. +- Andere High-/Critical-OS-Funde erst nach einer konkreten, versionierten und + befristeten Prüfung in `approved_findings` der privaten Konfiguration. +- Neue/geänderte Image-Befunde mit positiver KEV-Zuordnung. Das ist ein Hinweis + auf bekannte Ausnutzung andernorts, kein Nachweis eines Angriffs auf den Host. +- Positive ClamAV- und VirusTotal-Regeln sowie hoch eingestufte Meldungen mit + den Gruppen `malware`, `yara` oder `compromised`. Normale Logins, Paketupdates, + SCA-Ergebnisse und generische Rootcheck-Muster werden nicht weitergeleitet. +- Anhaltende unvollständige Image-Scans und Ausfälle der zentralen Prüfung. + +Schwachstellen müssen standardmäßig eine Stunde lang im aktuellen Inventar +bestehen bleiben, damit automatische Updates und Inventarsynchronisation eine +Chance haben. Positive Malware-Erkennungen werden bei der nächsten Prüfung +verarbeitet. Der Timer prüft alle fünf Minuten. Gleiche Befunde bleiben nach +Zustellung still; Versionsänderungen werden erneut beobachtet. Behebungen und +Erholungen sind still. Ein erneuter tatsächlicher Befund kann neu melden. +Vorübergehend getrennte Agents werden nicht als behoben behandelt. + +Bekannte Fehlzuordnungen werden ausgeschlossen: die Telnet-Server-Lücke im +reinen Client, Linux-Kernel-Lücken in Headerpaketen oder inaktiven Kerneln und +die Windows-spezifische Next.js-Lücke auf diesen Linux-Hosts. + +## Private Konfiguration auf dem Manager + +- `/opt/wazuh-actionable/notify.py` und `kev.py`: Code, root, Modus 700. +- `/etc/wazuh-actionable/config.json`: Dashboard-URL, Schonfrist und geprüfte + zusätzliche Befunde; root, Modus 600. +- `/etc/wazuh-actionable/discord-webhook`: Webhook als einzelne Zeile; root, 600. +- `/var/lib/wazuh-actionable/`: privater Katalog, Zustand, Deduplizierung und + Zustellungsstatus. Keine Rohlogs oder privaten Schlüssel in Discord. +- `wazuh-actionable.service` / `.timer`: zentrale Prüfung; ein fehlgeschlagener + Versand wird nicht als zugestellt markiert und später erneut versucht. + +Prüfen ohne Versand und ohne Aktualisierung des Benachrichtigungszustands: + +```bash +python3 /opt/wazuh-actionable/notify.py --dry-run +systemctl status wazuh-actionable.timer +journalctl -u wazuh-actionable.service -n 20 --no-pager +``` + +`--dry-run` darf den öffentlichen KEV-Cache aktualisieren und stellt nur +lesende Indexer-Abfragen. Der Webhook kommt nie ins Repository. Discord-Mentions +sind deaktiviert. Keine regelmäßigen Erfolgsmeldungen oder täglichen Zusammenfassungen. + +## Grenzen + +KEV ist keine vollständige Liste ausnutzbarer Lücken. Auch ein KEV-Treffer kann +weitere Bedingungen haben, die geprüft werden müssen. Neue High-/Critical-Lücken +außerhalb KEV werden nicht automatisch als konkrete Gefahr eingestuft; das +Wazuh-Inventar bleibt ihre vollständige Prüfliste. Die Auswahl ersetzt keine +Anwendungsanalyse. ClamAV, YARA oder zusätzliche Anwendungslogs werden hier nicht +installiert; ihre Meldungen können nur verarbeitet werden, wenn die entsprechenden +Erkennungen bereits eingerichtet sind. Ein fehlender Angriffstreffer beweist keine +Abwesenheit eines Angriffs. + +Für Image-Erholungen und aktuelle Scan-Gesundheit werden die aktuellen +Docker-Security-Regeln 110800–110806 und der entsprechende Scanner benötigt. +Ein Blick in die historische Alert-Liste allein beweist keine aktuelle Betroffenheit.