Microsoft har forberedt en implementering af eBPF til Windows

Microsoft har offentliggjort en implementering af eBPF-subsystemet til Windows, som muliggør udførelse af vilkårlige håndteringsprogrammer på kernel-niveau. eBPF tilbyder en indbygget bytecode-interpretator i kernen, der gør det muligt at skabe håndtere netværksoperationer, kontrollere adgang og overvåge systemets drift, som kan indlæses fra brugerrummet. eBPF er inkluderet i Linux-kernen siden version 3.18 og gør det muligt at behandle indgående/udgående netværkspakker, omdirigere pakker, styre båndbredde, intercept systemopkald, kontrollere adgang og udføre tracing. Takket være JIT-kompilering transponeres bytekoden til maskininstruktioner i realtid og udføres med ydeevnen af kompileret kode. Kildekoderne til eBPF for Windows er åbne under MIT-licensen.

eBPF til Windows kan anvendes med eksisterende værktøjer til eBPF og tilbyder et standard API, der bruges til eBPF-applikationer i Linux. Projektet tillader også kompilering af kode skrevet i C til eBPF-bytecode ved hjælp af det indbyggede eBPF-kompileringsværktøj baseret på Clang og udførelse af allerede eksisterende eBPF-håndteringsprogrammer designet til Linux ovenpå Windows-kernen, ved at tilbyde et specielt kompatibilitetslag og understøtte det indbyggede API Libbpf for kompatibilitet med applikationer, der interagerer med eBPF-programmer. Der tilbydes også lag, der giver Linux-lignende hooks til XDP (eXpress Data Path) og socket bind, som abstraherer adgangen til netværksstakken og netværksdrivere i Windows. Blandt planerne er der fokus på at tilbyde fuld kompatibilitet på kildekode-niveau med standard eBPF-håndteringsprogrammer i Linux.

Microsoft har forberedt en implementering af eBPF til Windows

Den væsentligste forskel i implementeringen af eBPF for Windows er anvendelsen af en alternativ bytecode-verifikator, som oprindeligt blev foreslået af medarbejdere fra VMware og forskere fra canadiske og israelske universiteter. Verifikatoren kører i en separat isoleret proces i brugerrummet og anvendes før udførelsen af BPF-programmer for at identificere fejl og blokere potentiel skadelig aktivitet.

For verification in eBPF for Windows, a static analysis method based on Abstract Interpretation is used, which demonstrates a lower level of false positives compared to the eBPF verifier for Linux, supports loop analysis, and provides good scalability. The method takes into account numerous typical execution patterns derived from the analysis of existing eBPF programs.

After verification, the bytecode is passed to an interpreter operating at the kernel level or is routed through a JIT compiler, followed by the execution of the resulting machine code with kernel rights. To isolate eBPF handlers at the kernel level, the HVCI (HyperVisor-enforced Code Integrity) mechanism is applied, utilizing virtualization tools to protect processes in the kernel and ensure the integrity of the executing code through digital signature verification. A limitation of HVCI is the ability to verify only interpreted eBPF programs, making it impossible to use it in conjunction with JIT (a choice is provided—either performance or additional security).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster