Microsoft har forberedt en implementering af eBPF til Windows

Microsoft afsløret for nylig gennem et indlæg implementeringen af ​​eBPF-undersystemet til Windows som giver dig mulighed for at køre vilkårlige drivere, der kører på operativsystemets kerneniveau.

eGMP giver en indbygget bytecode-tolk i kernen for at oprette brugerdefinerede netværksdrivere, adgangskontrol og systemovervågning. eBPF har været inkluderet i Linux-kernen siden version 3.18 og giver dig mulighed for at behandle indgående / udgående netværkspakker, videresende pakker, styre båndbredde, opfange systemopkald, kontrollere adgang og spore.

Gennem JIT-kompilering oversættes bytekode til maskininstruktioner i farten og kører med udførelsen af ​​den kompilerede kode. EBPF til Windows er open source under MIT-licensen.

I dag er vi glade for at kunne annoncere et nyt open source-projekt fra Microsoft for at få eBPF til at fungere på Windows 10 og Windows Server 2016 og nyere. Projektet ebpf-for-windows sigter mod at give udviklere mulighed for at bruge kendte eBPF-værktøjskæder og applikationsprogrammeringsgrænseflader (API'er) oven på eksisterende versioner af Windows. Baseret på andres arbejde tager dette projekt flere eksisterende open source eBPF-projekter og tilføjer "limen" for at få dem til at køre på Windows.

eBPF til Windows kan bruges med eksisterende eBPF-værktøjer og giver en generisk API, der bruges til eBPF-applikationer på Linux.

Især projektet giver dig mulighed for at kompilere kode skrevet i C til bytekode eBPF ved hjælp af den standard Clang-baserede eBPF-compiler og kør eBPF-drivere, der allerede er bygget til Linux oven på Windows-kernen, som giver et specielt kompatibilitetslag og understøtter standard Libbpf API til kompatibilitet med applikationer, der interagerer med eBPF-programmer.

Dette inkluderer mellemlag, der giver Linux-lignende bindinger til XDP (eXpress Data Path) og socketbindinger, der opsummerer adgang til Windows-netværksstakken og netværksdrivere. Planerne sigter mod at yde fuld kildestøtte til generiske Linux eBPF-drivere.

Hovedforskellen ved implementering af eBPF til Windows er brugen af ​​en alternativ bytecode-kontrol, oprindeligt foreslået af VMware-medarbejdere og forskere fra canadiske og israelske universiteter.

Verifikatoren startes i en separat isoleret proces i brugerrummet og bruges inden udførelsen af ​​BPF-programmer til at opdage fejl og blokere mulig ondsindet aktivitet.

For validering, eBPF til Windows bruger den abstrakte fortolkningsmetode for statisk analyse, hvad, Sammenlignet med eBPF Checker til Linux viser det en lavere falsk positiv sats, understøtter loop-analyse og giver god skalerbarhed. Metoden tager højde for mange typiske præstationsmønstre opnået ved analysen af ​​eksisterende eBPF-programmer.

eBPF er en velkendt, men revolutionerende teknologi, der giver programmerbarhed, udvidelse og smidighed. eBPF er blevet anvendt til brug af sager som nægtelse af beskyttelse af tjenester og observerbarhed.

Over tid er der bygget et betydeligt økosystem af værktøjer, produkter og ekspertise omkring eBPF. Selvom support til eBPF først blev implementeret i Linux-kernen, har der været en voksende interesse i at tillade eBPF at blive brugt i andre operativsystemer og også at udvide dæmoner og brugertilstandstjenester ud over kernen.

Efter verifikation, bytecoden sendes til kerneniveau tolken, eller den sendes gennem JIT-kompilatoren, efterfulgt af at køre den resulterende maskinkode med kernerettigheder. For at isolere eBPF-drivere på kerneniveau anvendes HVCI-mekanismen (HyperVisor Enhanced Code Integrity), der bruger virtualiseringsværktøjer til at beskytte processer i kernen og sikrer, at integriteten af ​​den udførte kode er signeret digitalt.

En begrænsning af HVCI er evnen til kun at kontrollere fortolkede eBPF-programmer og manglende evne til at bruge dem i forbindelse med JIT (du har et valg: yderligere ydelse eller beskyttelse).

Endelig hvis du er interesseret i at vide mere om det, du kan konsultere følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.