Microsoft arbejder på at bringe udvidet Berkeley Packet Filter (eBPF)-understøttelse til Windows

Ikon for læsetid 2 min. Læs


Læsere hjælper med at understøtte MSpoweruser. Vi får muligvis en kommission, hvis du køber via vores links. Værktøjstip-ikon

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.

Mere om emnerne: eGMP, microsoft, Windows 10

Giv en kommentar

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *