Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-31431-mitigation-suite — Kernel-Runtime-Verteidigungsframework für AF_ALG-Schwachstellen, mit eBPF-Socket-Tracing, Ansible-Härtung und einem Krypto-Auditor zur Drift-Erkennung. | Kitploit
Tools/GitHubGitHub/mahdi13830510/cve-2026-31431-mitigation-suite
Cloud-Infrastruktur-SicherheitDefensivwerkzeugeKonfigurationsprüfungDevSecOpsEinbruchserkennungIncident ResponseAnomalieerkennung
GitHubmahdi13830510/cve-2026-31431-mitigation-suite

CVE-2026-31431-mitigation-suite

Kernel-Runtime-Verteidigungsframework für AF_ALG-Schwachstellen, mit eBPF-Socket-Tracing, Ansible-Härtung und einem Krypto-Auditor zur Drift-Erkennung.

Repository anzeigen
410vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

AF_ALG Defense Framework

CI License

Ein Kernel-Runtime-Verteidigungsframework für das Linux-AF_ALG-Subsystem (Address Family Algorithm, Familie 38). Entwickelt für Security Operations Centers, die Enterprise-Linux-Flotten betreiben, in denen Zero Trust in den Kernel hineinreichen muss und nicht an der Netzwerkgrenze endet.

Warum AF_ALG für ein SOC relevant ist

AF_ALG stellt die Kernel-Krypto-API über eine Socket-Schnittstelle (socket(AF_ALG, SOCK_SEQPACKET, 0)) für den Userspace bereit. Ursprünglich wurde es für eingebettete Systeme ohne /dev/crypto hinzugefügt und hat seitdem einen unverhältnismäßigen Anteil an Kernel-CVEs angehäuft, weil es Kernel-Mode-Krypto-Code für unprivilegierte Aufrufer bereitstellt – eine klassische Fehlanpassung der Angriffsfläche.

In einem typischen Enterprise-Build:

  • Fast kein Userspace benötigt es. OpenSSL, GnuTLS, libsodium und systemd-cryptsetup nutzen standardmäßig andere Pfade.
  • Angreifer sind daran interessiert. Es ist ein wiederkehrender Dreh- und Angelpunkt in Privilege-Escalation-Ketten (CVE-2019-8912, CVE-2017-13215 und andere), gerade weil es aus unprivilegierten Containern erreichbar ist, wenn User Namespaces verfügbar sind.
  • Es ist für die meisten EDRs unsichtbar. Endpoint-Tools, die connect(), bind() oder DNS hooken, sehen nichts – AF_ALG-Verkehr verlässt den Kernel nie.

Dieses Framework behandelt jede AF_ALG-Socket-Erstellung als Ereignis mit hoher Signalstärke und reduziert die Angriffsfläche, die solche Ereignisse ausnutzbar macht.

Bedrohungsmodell und Zero-Trust-Zuordnung

Zero-Trust-PrinzipKontrolle in diesem Framework
Niemals vertrauen, immer verifiziereneBPF-Tracer protokolliert jeden AF_ALG-Socket-Erstellungsversuch mit pid/uid/comm
Angriff annehmenKrypto-Auditor vergleicht den Kernel-Zustand mit einer signierten Baseline
Minimale Rechtesystemd RestrictAddressFamilies + Capability-Bounding auf verwalteten Units
Mikrosegmentierung (Kernel-Seite)unprivileged_userns_clone=0 entfernt den userns-Pivot, den Exploits nutzen
Kontinuierliche ValidierungCI validiert Audit-Berichte bei jeder Änderung gegen ein versioniertes Schema

Repository-Struktur

root@kitploit:~
.
├── ebpf/                  Laufzeit-Beobachtbarkeit (BCC-Tracer + Allowlist)
├── ansible/               Configuration-as-Code (sysctl + systemd-Drop-ins)
├── systemd/               Eigenständiges systemd-Drop-in für Nicht-Ansible-Hosts
├── auditor/               Kernel-Zustands-Auditor (Python)
├── schemas/               JSON-Schema für die Audit-Berichts-Erfassung
├── scripts/               Hilfsshell-Skripte (von CI gelintet)
├── tests/                 Unit-Tests + Berichts-Fixtures
└── .github/workflows/     CI: shellcheck + JSON-Schema-Validierung + Lint

Komponenten

1. Laufzeit-Beobachtbarkeit – eBPF-Tracer

ebpf/af_alg_tracer.py hängt einen kprobe an security_socket_create. Der Probe filtert auf family == 38 auf BPF-Programmebene, sodass der Verifier nicht zusammenhängende Socket-Erstellungen entfernt und der Overhead pro Ereignis im Nanosekundenbereich bleibt. Er gibt einen JSON-Datensatz pro Versuch aus:

root@kitploit:~
{
  "@timestamp": "2026-05-02T09:14:11.412041+00:00",
  "event": {"category": "kernel", "action": "af_alg_socket_create", "severity": "high"},
  "process": {"pid": 1394, "tgid": 1394, "comm": "suspicious_bin"},
  "user": {"uid": 1000, "gid": 1000},
  "socket": {"family": 38, "family_name": "AF_ALG", "type": 5, "protocol": 0},
  "host": {"name": "web-prod-04"}
}

Leiten Sie stdout an Vector, Fluent Bit oder journald (über systemd-cat) weiter. Eine Comm-Namen-Allowlist (/etc/af-alg-defense/allow.list) unterdrückt bekannte, legitime Konsumenten, ohne die Fähigkeit zu verlieren, Abweichungen zu erkennen.

Das kprobe-Ziel ist der LSM-Hook, sodass Ereignisse auf Absicht ausgelöst werden – selbst Versuche, die von seccomp oder RestrictAddressFamilies abgelehnt würden, erzeugen weiterhin einen Datensatz. Genau das möchte ein SOC für die Verhaltens-Baseline.

2. Configuration as Code – Ansible-Rolle + systemd-Drop-in

ansible/roles/af_alg_hardening/ wendet zwei Härtungsebenen an:

Sysctl-Drop-in (/etc/sysctl.d/90-af-alg-defense.conf):

  • kernel.unprivileged_userns_clone=0 – entfernt den userns-Pivot, den die meisten AF_ALG-Escalation-Ketten nutzen.
  • user.max_user_namespaces=0 – distro-portable Defence-in-Depth.

Systemd-Drop-in (/etc/systemd/system/<unit>.d/50-af-alg-restrict.conf): Verwendet RestrictAddressFamilies als Allowlist (nicht Denylist). Der Unit sind AF_UNIX AF_INET AF_INET6 AF_NETLINK erlaubt; jede andere Familie – einschließlich AF_ALG – schlägt mit EAFNOSUPPORT fehl, da systemd dies über cgroup-gebundenes BPF durchsetzt, das die Anwendung nicht deaktivieren kann. Das Drop-in entfernt außerdem CAP_SYS_ADMIN und wendet ProtectKernel* an, um die häufigsten Escalation-Pfade zu schließen.

Anwenden mit:

root@kitploit:~
ansible-playbook -i inventory ansible/site.yml --check --diff   # Vorschau
ansible-playbook -i inventory ansible/site.yml                  # durchsetzen

Für Hosts ohne Ansible die eigenständige Datei an Ort und Stelle ablegen:

root@kitploit:~
sudo ./scripts/deploy_dropin.sh nginx.service

3. Kernel-Zustands-Auditor

auditor/crypto_auditor.py erzeugt einen JSON-Sicherheitszustandsbericht durch Prüfung von:

  • /proc/crypto – jede registrierte Chiffre / Hash / aead, mit FIPS-Flags und Selbsttest-Status.
  • /sys/module/ – geladene Module im Krypto-Unterbaum, mit Taint-Flags und Parameter-Snapshots.
  • /proc/sys/kernel/, /proc/sys/user/ – Sysctls, die AF_ALG-Angriffspfade steuern.
  • /sys/kernel/security/lockdown – Kernel-Lockdown-Modus.

Der Bericht ist nach stabilen Finding-IDs (FND-001 bis FND-005 derzeit) schlüsselt, sodass SIEM-Regeln einzelne Findings unterdrücken können, ohne das gesamte Dokument zu verwerfen. Die Drift-Erkennung vergleicht den Zustand mit einer Baseline:

root@kitploit:~
sudo ./auditor/crypto_auditor.py --output /var/log/af-alg-defense/today.json
sudo ./auditor/crypto_auditor.py \
     --baseline /var/log/af-alg-defense/baseline.json \
     --fail-on-drift

Das Schema liegt in schemas/audit_report.schema.json (Draft 2020-12) und wird bei jedem Push in der CI validiert.

4. Kontinuierliche Integration

.github/workflows/ci.yml führt bei jedem Push und PR vier Jobs aus:

  1. ShellCheck – jedes *.sh- und Shebang-tragende Skript.
  2. Schema-Validierung – Metaschema-Prüfung von audit_report.schema.json, dann Live-Ausführung des Auditors auf dem GH-Runner-Kernel und Validierung des resultierenden Berichts. Fixtures in tests/fixtures/ werden ebenfalls geprüft.
  3. Python-Lint (ruff check .).
  4. Ansible-Lint auf dem Rollenbaum.

Ein fehlgeschlagener Schema-Check blockiert Merges, was verhindert, dass nachgelagerte SIEM-Parser durch ein stillschweigend umbenanntes Feld brechen.

Betriebliche Anleitung für das SOC

Erkennungsregeln, die darübergelegt werden sollten

  • Jedes af_alg_socket_create-Ereignis von einem nicht-allowlisteten Comm – beim ersten Auftreten alarmieren, nicht aggregieren.
  • Neuer Eintrag in crypto_modules zwischen aufeinanderfolgenden Auditor-Läufen auf einem Host, auf dem das Laden von Modulen eingefroren sein sollte.
  • Jedes Sysctl mit hardened=false nach einem Härtungs-Playbook-Lauf – deutet auf manuelle Manipulation oder Drift von einem parallelen Konfigurationssystem hin.
  • lockdown-Feld wechselt von integrity/confidentiality zu none – starkes Indiz für Kernel-Zustands-Manipulation.

Rollout-Plan (empfohlen)

  1. Den eBPF-Tracer zwei Wochen lang im Monitor-only-Modus bereitstellen. Die resultierende Baseline verwenden, um allow.list für bekannte, legitime Konsumenten zu befüllen (cryptsetup beim Boot ist der übliche).
  2. Den Auditor gegen eine repräsentative Host-Flotte ausführen; den Zustand als signierte baseline.json erfassen.
  3. Die Ansible-Rolle auf eine Canary-Gruppe anwenden, wobei af_alg_systemd_services auf eine Unit mit geringem Risiko gesetzt ist. Auf EAFNOSUPPORT-Fehler in journald achten.
  4. Die Serviceliste iterativ erweitern. systemd-analyze security <unit> sollte zeigen, dass die Einschränkung durchgesetzt wird.
  5. Den Auditor in einen nächtlichen Cron mit --fail-on-drift einbinden und Nicht-Null-Exit-Codes in die Bereitschafts-Warteschlange leiten.

Was dieses Framework nicht tut

  • Es entlädt af_alg nicht, wenn es bereits in Verwendung ist. Das Entladen von Modulen ist außerhalb des Rahmens, da legitime Boot-Zeit-Konsumenten möglicherweise noch laufen. Verwenden Sie modprobe.blacklist=af_alg auf der Kernel-Befehlszeile, wenn Sie bestätigt haben, dass nichts auf dem Host es benötigt.
  • Es patcht keine CVEs. Hersteller-Kernel-Updates bleiben die primäre Kontrolle; dieses Framework reduziert die Kosten eines verpassten Patches.
  • Es schützt nicht vor Root. Ein lokaler Root kann jede dieser Kontrollen deaktivieren; das Framework erhöht die Hürde auf Root, nicht darüber hinaus.

Anforderungen

  • Linux ≥ 4.18 (für das security_socket_create-kprobe-Ziel).
  • BCC ≥ 0.25 oder libbpf ≥ 1.0, plus Kernel-Header passend zu uname -r.
  • Python 3.10+ auf verwalteten Hosts.
  • Ansible 2.14+ auf dem Kontrollknoten.
  • CAP_BPF (oder Root) zum Laden des Tracers; Lesezugriff auf /proc/crypto für den Auditor (keine Berechtigungen zum Lesen erforderlich).

Lizenz

Apache-2.0. Siehe LICENSE.

Tool herunterladen