Microsoft on valmistanud eBPF rakenduse Windowsile

Microsoft on avaldanud eBPF alamsüsteemi Windowsile, mis võimaldab käitada erinevaid tuumikutasandi töötlusi. eBPF sisaldab tuuma sisseehitatud bytecode'i tõlkijat, mis võimaldab luua kasutajaruumi laaditavaid võrguoperatsioonide töötlejaid, kontrollida juurdepääsu ja jälgida süsteemide tööd. eBPF on kaasatud Linuxi tuumasse alates versioonist 3.18 ja võimaldab töötleda sisenevaid/väljuvaid võrgupakette, suunata pakette ümber, hallata läbilaskevõimet, peata süsteemi kutsumisi, kontrollida juurdepääsu ja teostada jälgimist. JIT-kompileerimise tõttu tõlgitakse bytecode jooksvalt masinajuhenditeks ja seda täidetakse kompileeritud koodi jõudlusega. eBPF kood Windowsile on avatud MIT litsentsi all.

eBPF Windowsile saab kasutada koos olemasolevate eBPF tööriistadega ning see pakub tüüpilist API-d, mis on rakendatav eBPF rakendustes Linuxis. Projekti raames on võimalik kompileerida C-keeles kirjutatud kood eBPF bytecode'iks via Clang-põhine eBPF kompilaator ning käitada Windowsi tuuma kohal juba loodud Linuxi eBPF töötlejat, pakkudes spetsiaalset ühilduvust ja toetades Libbpf API-d, et tagada ühilduvus eBPF rakendustega. Samuti pakutakse kihi, mis pakkus Linuxi sarnaseid hook-e XDP (eXpress Data Path) ja socket bind, mis abstraheerib juurdepääsu Windowsi võrgu virnastusele ja võrgu draiveritele. Plaanide hulgas on täieliku ühilduvuse pakkumine algkoode tasemel tüüpiliste Linuxi eBPF töötlejatega.

Microsoft on valmistanud eBPF rakenduse Windowsile

eBPF rakenduse Windowsile peamine erinevus on alternatiivse bytecode’i kontrollija kasutamine, mille esitasid VMware töötajad ning Kanada ja Iisraeli ülikoolide teadlased. Kontrollija käivitatakse eraldi isoleeritud protsessis kasutajaruumis ning seda kasutatakse enne BPF-programmide käivitamist vigade tuvastamiseks ja võimaliku kahjuliku tegevuse blokeerimiseks.

Windowsi eBPF-i kontrollimiseks kasutatakse staatilise analüüsi meetodit, mis põhineb abstraktsel tõlgendamisel (Abstract Interpretation). See toode näitab võrreldes Linuxi eBPF-i valideerijaga madalamat valehäirete taset, toetab tsüklite analüüsi ja tagab hea skaleeritavuse. Meetod arvestab paljusid tüüpilisi täitmismustreid, mis on saadud olemasolevate eBPF-programmide analüüsi põhjal.

Pärast valideerimist edastatakse baitkood tõlgendajale, mis töötab tuuma tasemel, või lastakse läbi JIT-kompilaatori, mille järel käivitatakse tulemuseks saadud masinkood tuuma õigustega. eBPF-i töötlemise isoleerimiseks tuuma tasemel kasutatakse HVCI (HyperVisor-enforced Code Integrity) mehhanismi, mis kasutab virtualiseerimist protsesside kaitsmiseks tuumas ja tagab käivitatava koodi terviklikkuse kinnitamise digitaalallkirjaga. HVCI piiranguks on võimalus valideerida ainult tõlgendatavaid eBPF programme ja võimetus kasutada seda koos JIT-iga (valikuvõimalus – kas jõudlus või täiendav kaitse).

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster