Microsoft arbejder på at bringe udvidet Berkeley Packet Filter (eBPF)-understøttelse til Windows
2 min. Læs
Udgivet den
Læs vores oplysningsside for at finde ud af, hvordan du kan hjælpe MSPoweruser med at opretholde redaktionen Læs mere
ZDNet rapporterer at Microsoft arbejder på at bringe Linux-sikkerhedsværktøjet udvidet Berkeley Packet Filter (eBPF) til Windows 10.
Værktøjet kan i øjeblikket køres på Windows SubSystem til Linux, men Microsoft arbejder på native support, hvor problemet er, at værktøjet kører kode i kernekonteksten, hvilket rejser alle former for sikkerhedskomplikationer.
Arbejdet kan dog være det værd, da eBPF i vid udstrækning bruges i netværksfiltrering, analyse og administration og også til systemopkaldsfiltrering og proceskontekstsporing og danner grundlaget for flere sikkerhedsapplikationer såsom Cilium, Falco og Tracee; Kubernetes observationsprogrammer som Hubble og Pixie og værktøjskæder som Clang.
ebpf-for-windows-projektet har til formål at tage flere eksisterende eBPF open source-projekter og tilføjer "limet" for at få dem til at køre på Windows.
Som vist i diagrammet kan eksisterende eBPF-værktøjskæder (clang, etc.) bruges til at generere eBPF-bytekode fra kildekode på forskellige sprog. Bytekode kan forbruges af enhver applikation eller via Netsh-kommandolinjeværktøjet, som bruger et delt bibliotek, der afslører Libbpf API'er, selvom dette stadig er i gang.
eBPF-bytekoden sendes til en statisk verifikator (PREVAIL-verifikatoren), der hostes i en brugertilstandsbeskyttet proces (et Windows-sikkerhedsmiljø, der tillader en kernekomponent at stole på en brugertilstandsdæmon, der er signeret af en nøgle, som den har tillid til). Hvis bytekoden består alle verifikatorkontrollerne, kan den enten indlæses i en fortolker (fra uBPF i kernetilstandsudførelseskonteksten) eller JIT-kompileres (via uBPF JIT-kompileren) og få indbygget kode indlæst i kernetilstandsudførelsen kontekst (men se FAQ nederst om HVCI).
eBPF-programmer, der er installeret i kernetilstands-udførelseskonteksten, kan knyttes til forskellige hooks (i øjeblikket to hooks indtil videre: XDP og en socket bind-hook) og kalder forskellige hjælper-API'er, der er eksponeret af eBPF-shim'et, som internt omslutter offentlige Windows-kerne-API'er, hvilket tillader brug af eBPF på eksisterende versioner af Windows. Flere kroge og hjælpere vil blive tilføjet med tiden.
Slutresultatet bliver et Windows-specifikt hostingmiljø for eBPF, som vil give Windows-udviklere mulighed for at bruge open source eBPF-programmer uden at skulle omkode.
Tjek den ebpf-for-windows-projekt på GitHub her.