Microsoft ka përgatitur një zbatim eBPF për Windows

Microsoft ka publikuar një implementim të nënsistemit eBPF për Windows, i cili ju lejon të lëshoni mbajtës arbitrar që funksionojnë në nivelin e kernelit të sistemit operativ. eBPF ofron një përkthyes të bytekodit të integruar në kernel, i cili bën të mundur krijimin e mbajtësve të funksionimit të rrjetit të ngarkuar nga hapësira e përdoruesit, kontrollin e aksesit dhe monitorimin e funksionimit të sistemeve. eBPF është përfshirë në kernelin Linux që nga lëshimi 3.18 dhe ju lejon të trajtoni paketat hyrëse/dalëse të rrjetit, përcjelljen e paketave, menaxhimin e gjerësisë së brezit, përgjimin e thirrjeve të sistemit, kontrollin e aksesit dhe gjurmimin. Falë përdorimit të përpilimit JIT, bytekodi përkthehet menjëherë në instruksionet e makinës dhe ekzekutohet me performancën e kodit të përpiluar. eBPF për Windows është me burim të hapur nën licencën MIT.

eBPF për Windows mund të përdoret me mjetet ekzistuese eBPF dhe ofron një API gjenerike të përdorur për aplikacionet eBPF në Linux. Ndër të tjera, projekti ju lejon të përpiloni kodin e shkruar në C në bitekodin eBPF duke përdorur përpiluesin standard eBPF të bazuar në Clang dhe të ekzekutoni mbajtësit eBPF të krijuar tashmë për Linux në krye të kernelit të Windows, duke siguruar një shtresë të veçantë përputhshmërie dhe duke mbështetur standardin Libbpf. API për pajtueshmërinë me aplikacionet që ndërveprojnë me programet eBPF. Kjo përfshin shtresa që ofrojnë grepa të ngjashme me Linux-in për XDP (EXpress Data Path) dhe lidhjen e prizës, duke abstraktuar aksesin në grupin e rrjetit dhe drejtuesit e rrjetit Windows. Planet përfshijnë ofrimin e përputhshmërisë së plotë të nivelit të kodit burimor me procesorët standard Linux eBPF.

Microsoft ka përgatitur një zbatim eBPF për Windows

Dallimi kryesor midis zbatimit të eBPF për Windows është përdorimi i një verifikuesi alternativ të bytecode, i propozuar fillimisht nga punonjësit dhe studiuesit e VMware nga universitetet kanadeze dhe izraelite. Verifikuesi funksionon në një proces të veçantë, të izoluar në hapësirën e përdoruesit dhe përdoret përpara ekzekutimit të programeve BPF për të identifikuar gabimet dhe për të bllokuar aktivitetin e mundshëm keqdashës.

Për verifikim, eBPF për Windows përdor një metodë analize statike të bazuar në Interpretimin Abstrakt, i cili, krahasuar me verifikuesin eBPF për Linux, demonstron një shkallë më të ulët false pozitive, mbështet analizën e ciklit dhe ofron shkallëzim të mirë. Metoda merr parasysh shumë modele tipike ekzekutimi të marra nga analiza e programeve ekzistuese eBPF.

Pas verifikimit, bytekodi transferohet në një përkthyes që funksionon në nivelin e kernelit, ose kalon përmes një përpiluesi JIT, i ndjekur nga ekzekutimi i kodit të makinës që rezulton me të drejtat e kernelit. Për të izoluar mbajtësit eBPF në nivelin e kernelit, përdoret mekanizmi HVCI (HyperVisor-enforced Code Integrity), i cili përdor mjete virtualizimi për të mbrojtur proceset në kernel dhe siguron konfirmimin e integritetit të kodit ekzekutues duke përdorur një nënshkrim dixhital. Kufizimi i HVCI është se ai mund të verifikojë vetëm programet e interpretuara eBPF dhe nuk mund të përdoret në lidhje me JIT (ju keni një zgjedhje ose të performancës ose të sigurisë shtesë).

Burimi: opennet.ru

Shto një koment