
eBPF-basierter Runtime-Kernel-Sicherheitsmonitor zur Erkennung von Exploits und Rootkits mittels Kontrollflussintegrität (wCFI) und Berechtigungserhöhungserkennung (PSD) für Linux-Systeme.
VED (Vault Exploit Defense)-eBPF nutzt eBPF (Extended Berkeley Packet Filter), um Runtime-Kernel-Sicherheitsüberwachung und Exploit-Erkennung für Linux-Systeme zu implementieren.
eBPF ist eine In-Kernel-Virtuelle-Maschine, die die Codeausführung im Kernel ermöglicht, ohne die Kernel-Quelle selbst zu modifizieren. eBPF-Programme können an Tracepoints, Kprobes und andere Kernel-Ereignisse angehängt werden, um die Ausführung effizient zu analysieren und Daten zu sammeln.
VED-eBPF verwendet eBPF, um sicherheitskritische Kernel-Verhalten zu verfolgen und Anomalien zu erkennen, die auf einen Exploit oder Rootkit hinweisen könnten. Es bietet zwei Haupterkennungen:
wCFI (Control Flow Integrity) verfolgt den Kernel-Call-Stack, um Angriffe durch Kontrollflussentführung zu erkennen. Es funktioniert, indem es eine Bitmap gültiger Aufrufstellen generiert und validiert, ob jede Rücksprungadresse mit einer bekannten Aufrufstelle übereinstimmt.
PSD (Privilege Escalation Detection) verfolgt Änderungen an Credential-Strukturen im Kernel, um unbefugte Privilegieneskalationen zu erkennen.
VED-eBPF hängt eBPF-Programme an Kernel-Funktionen an, um Ausführungsflüsse zu verfolgen und Sicherheitsereignisse zu extrahieren. Die eBPF-Programme senden diese Ereignisse über perf-Puffer an den Userspace zur Analyse.
wCFI verfolgt den Call-Stack, indem es an die auf der Kommandozeile angegebenen Funktionen anhängt. Bei jedem Aufruf dumpt es den Stack, weist eine Stack-ID zu und validiert die Rücksprungadressen gegen eine vorberechnete Bitmap gültiger Aufrufstellen, die aus objdump und /proc/kallsyms generiert wurde.
Wenn eine ungültige Rücksprungadresse erkannt wird, was auf einen korrupten Stack hinweist, wird ein wcfi_stack_event generiert, das Folgendes enthält:
* Stack-Trace
* Stack-ID
* Ungültige Rücksprungadresse
Dieses Sicherheitsereignis wird über perf-Puffer an den Userspace gesendet.
Das wCFI eBPF-Programm überwacht auch Änderungen des Stack-Pointers und der Kernel-Textregion, um die Validierung aktuell zu halten.
PSD verfolgt Änderungen an Credential-Strukturen, indem es an Funktionen wie commit_creds und prepare_kernel_cred anhängt. Bei jedem Aufruf extrahiert es Informationen wie:
* Aktuelle Prozess-Credentials
* Hashes der Credentials und des User-Namespace
* Call-Stack
Es vergleicht die Credentials vor und nach dem Aufruf, um unbefugte Änderungen zu erkennen. Wenn eine illegale Privilegieneskalation erkannt wird, generiert es ein psd_event, das die Credential-Felder enthält, und sendet es über perf-Puffer.
VED-eBPF erfordert:
VED-eBPF ist derzeit ein Proof-of-Concept, das das Potenzial für eBPF-basierte Kernel-Exploit- und Rootkit-Erkennung demonstriert. Laufende Arbeiten umfassen:
VED-eBPF zeigt das Potenzial von eBPF für die Erstellung effizienter, ressourcenschonender Kernel-Sicherheitsüberwachung ohne Kernel-Modifikation. Durch die Nutzung von eBPF-Tracing und perf-Puffern können kritische Sicherheitsereignisse in Echtzeit extrahiert und analysiert werden, um aufkommende Kernel-Bedrohungen für Cloud-Native-Umgebungen zu identifizieren.