Microsoft je pripremio implementaciju eBPF za Windows

Tvrtka Microsoft objavila je implementaciju eBPF podsustava za Windows, koja omogućuje pokretanje proizvoljnih obrtnika koji djeluju na razini jezgre operativnog sustava. eBPF pruža ugrađeni interpretator bajtkoda u jezgru, što omogućuje stvaranje opterećenja iz korisničkog prostora za mrežne operacije, kontrolu pristupa i praćenje rada sustava. eBPF je uključen u jezgru Linuxa od izdanja 3.18 i omogućuje obradu dolaznih/odlaznih mrežnih paketa, preusmjeravanje paketa, upravljanje propusnošću, presretanje sistemskih poziva, kontrolu pristupa i provođenje praćenja. Zahvaljujući korištenju JIT-kompilacije, bajtkod se u hodu transkriptira u strojne instrukcije i izvršava s performansama kompajliranog koda. Izvorni kod eBPF-a za Windows otvoren je pod MIT licencom.

eBPF za Windows može se koristiti s već postojećim alatima za rad s eBPF-om i pruža standardni API, koji se koristi za eBPF aplikacije u Linuxu. Projekt također omogućuje kompaktiranje koda napisanog u jeziku C u eBPF bajtkod pomoću ugrađenog eBPF kompajlera temeljenog na Clang-u i pokretanje već stvorenih eBPF obrtnika iz Linux-a na jezgru Windowsa, pružajući posebni sloj kompatibilnosti i podržavajući standardni Libbpf API za kompatibilnost s aplikacijama koje komuniciraju s programima eBPF. Također su ponuđeni slojevi koji pružaju slične Linux hook-ove za XDP (eXpress Data Path) i socket bind, apstrahirajući pristup mrežnom steku i mrežnim drajverima u Windowsima. Od planova se ističe pružanje potpunog usklađivanja na razini izvornog koda s tipičnim eBPF obrtnicima Linuxa.

Microsoft je pripremio implementaciju eBPF za Windows

Ključna razlika implementacije eBPF-a za Windows je korištenje alternativnog verifikatora bajtkoda, koji su prvotno predložili zaposlenici kompanije VMware i istraživači iz kanadskih i izraelskih sveučilišta. Verifikator se pokreće u zasebnom izoliranom procesu u korisničkom prostoru i koristi se prije izvršavanja BPF programa s ciljem otkrivanja grešaka i blokiranja mogućih zlonamjernih aktivnosti.

Za provjeru u eBPF-u za Windows koristi se metoda statičke analize temeljena na apstraktnoj interpretaciji (Abstract Interpretation), koja u usporedbi s verifikatorom eBPF-a za Linux pokazuje nižu razinu lažnih uzbuna, podržava analizu petlji i osigurava dobru skalabilnost. Metoda uzima u obzir brojne tipične obrasce izvršenja, dobivene na temelju analize postojećih eBPF programa.

Nakon verifikacije, bajtkod se šalje interpretatoru koji radi na razini jezgre ili se propušta kroz JIT kompajler, uz naknadno izvršavanje rezultantnog strojno kodeksnog s pravima jezgre. Za izolaciju eBPF handlera na razini jezgre koristi se mehanizam HVCI (HyperVisor-enforced Code Integrity), koji koristi sredstva virtualizacije za zaštitu procesa u jezgi i osigurava potvrdu cjelovitosti izvođenog koda putem digitalnog potpisa. Ograničenje HVCI-a je mogućnost verifikacije samo interpretiranih eBPF programa i nemogućnost korištenja zajedno s JIT-om (daje pravo izbora - ili performanse ili dodatne zaštite).

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster