Microsoft arbeitet daran, erweiterte Berkeley Packet Filter (eBPF)-Unterstützung für Windows bereitzustellen

Symbol für die Lesezeit 2 Minute. lesen


Leser unterstützen MSpoweruser. Wir erhalten möglicherweise eine Provision, wenn Sie über unsere Links kaufen. Tooltip-Symbol

Lesen Sie unsere Offenlegungsseite, um herauszufinden, wie Sie MSPoweruser dabei helfen können, das Redaktionsteam zu unterstützen Lesen Sie weiter

ZDNet-Berichte dass Microsoft daran arbeitet, das Linux-Sicherheitstool Extended Berkeley Packet Filter (eBPF) auf Windows 10 zu bringen.

Das Tool kann derzeit auf Windows SubSystem für Linux ausgeführt werden, aber Microsoft arbeitet an nativer Unterstützung, wobei das Problem darin besteht, dass das Tool Code im Kernelkontext ausführt, was alle Arten von Sicherheitskomplikationen aufwirft.

Die Arbeit kann sich jedoch lohnen, da eBPF in großem Umfang für die Netzwerkfilterung, -analyse und -verwaltung sowie für die Systemaufruffilterung und Prozesskontextverfolgung verwendet wird und die Grundlage mehrerer Sicherheitsanwendungen wie Cilium, Falco und Tracee bildet; Kubernetes-Beobachtungsprogramme wie Hubble und Pixie und Toolchains wie Clang.

Das ebpf-for-windows-Projekt zielt darauf ab, mehrere bestehende eBPF-Open-Source-Projekte zu nehmen und den „Kleber“ hinzuzufügen, damit sie unter Windows laufen.

Wie im Diagramm gezeigt, können vorhandene eBPF-Toolchains (Clang usw.) verwendet werden, um eBPF-Bytecode aus Quellcode in verschiedenen Sprachen zu generieren. Bytecode kann von jeder Anwendung oder über das Netsh-Befehlszeilentool verwendet werden, das eine gemeinsam genutzte Bibliothek verwendet, die Libbpf-APIs verfügbar macht, obwohl dies noch im Gange ist.

Der eBPF-Bytecode wird an einen statischen Verifizierer (den PREVAIL-Verifizierer) gesendet, der in einem im Benutzermodus geschützten Prozess gehostet wird (einer Windows-Sicherheitsumgebung, die es einer Kernelkomponente ermöglicht, einem Benutzermodus-Daemon zu vertrauen, der von einem vertrauenswürdigen Schlüssel signiert wurde). Wenn der Bytecode alle Überprüfungsprüfungen besteht, kann er entweder in einen Interpreter geladen werden (von uBPF im Kernelmodus-Ausführungskontext) oder JIT-kompiliert werden (über den uBPF-JIT-Compiler) und nativen Code in die Kernelmodus-Ausführung laden Kontext (siehe aber die FAQ unten zu HVCI).

eBPF-Programme, die im Kernelmodus-Ausführungskontext installiert sind, können an verschiedene Hooks angehängt werden (bisher zwei Hooks: XDP und ein Socket-Bind-Hook) und verschiedene Hilfs-APIs aufrufen, die vom eBPF-Shim bereitgestellt werden, das intern öffentliche Windows-Kernel-APIs umschließt, wodurch die Verwendung von eBPF auf bestehenden Windows-Versionen. Weitere Haken und Helfer werden im Laufe der Zeit hinzugefügt.

Das Endergebnis wird eine Windows-spezifische Hosting-Umgebung für eBPF sein, die es Windows-Entwicklern ermöglichen würde, Open-Source-eBPF-Programme zu verwenden, ohne sie neu codieren zu müssen.

Probieren Sie auch die ebpf-for-windows-Projekt auf GitHub hier.

Mehr zu den Themen: eGMP, Microsoft, 10 Fenster

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *