Kompania Microsoft publikoi zbatimin e nën-sistemit eBPF për Windows, që lejon ekzekutimin e trajtuesve të rastit, që operojnë në nivelin e bërthamës së sistemit operativ. eBPF ofron një interpretues të bytecode i integruar në bërthamë, duke mundësuar krijimin e trajtuesve të ngarkueshëm nga hapësira e përdoruesit për operacionet rrjet, kontrollin e aksesit dhe monitorimin e funksionimit të sistemeve. eBPF është i përfshirë në bërthamën Linux që nga versioni 3.18 dhe lejon përpunimin e paketimeve rrjet të ardhshme/dhënëse, ridrejtimin e paketimeve, menaxhimin e bandwidth-it, kapjen e thirrjeve sistemore, kontrollin e aksesit dhe kryerjen e gjurmimit. Falë përdorimit të JIT-compilation, bytecode përkthhet në udhëzime makinerike në kohë reale dhe ekzekutohet me performancën e kodit të kompiluar. Burimet e eBPF për Windows janë të hapura nën licencën MIT.
eBPF për Windows mund të përdoret me mjetet ekzistuese për punën me eBPF dhe ofron një API standard që përdoret për aplikacionet eBPF në Linux. Projekti gjithashtu lejon kompilimin e kodit të shkruar në gjuhën C në bytecode eBPF përmes kompiluesit standard të eBPF të bazuar në Clang dhe ekzekutimin e trajtuesve eBPF të krijuar tashmë për Linux mbi bërthamën Windows, duke ofruar një shtresë të veçantë të pajtueshmërisë dhe duke mbështetur API-në standarde Libbpf për pajtueshmërinë me aplikacionet që bashkëpunojnë me programet eBPF. Po ashtu, ofrohen shtresa që ofrojnë hook-e të ngjashme me Linux për XDP (eXpress Data Path) dhe lidhjen e socket-eve, që abstrahojnë qasjen në grumbullin rrjet dhe drejtuesit e rrjeteve Windows. Në planet e ardhshme, parashikohet ofrimi i pajtueshmërisë së plotë në nivelin e burimeve me trajtuesit standard të eBPF në Linux.

Dallimi kryesor i zbatimit të eBPF për Windows është përdorimi i një verifikuesi alternativ të bytecode, fillimisht të propozuar nga punonjësit e kompanisë VMware dhe hulumtuesit nga universitetet kanadeze dhe izraelite. Verifikuesi ekzekutohet në një proces të veçuar të izoluar në hapësirën e përdoruesit dhe aplikohet para ekzekutimit të programeve BPF me qëllim identifikimin e gabimeve dhe bllokimin e aktivitetit të mundshëm të dëmshëm.
Për verifikimin në eBPF për Windows, përdoret metoda e analizës statike e bazuar në interpretimin abstrakt (Abstract Interpretation), e cila në krahasim me verifikuesin e eBPF për Linux tregon një nivel më të ulët të alarmeve të rreme, mbështet analizën e cikleve dhe siguron një shkallëzueshmëri të mirë. Metoda merr parasysh shumë shabllone tipikë të ekzekutimit, të marra nga analiza e programeve ekzistuese të eBPF.
Pas verifikimit, bytecode kalon nĂ« interpretuesin qĂ« punon nĂ« nivelin e bĂ«rthamĂ«s, ose kalon pĂ«rmes JIT-kompilatorit me ekzekutimin e mĂ«passhĂ«m tĂ« kodit makinerik tĂ« rezultuar me tĂ« drejtat e bĂ«rthamĂ«s. PĂ«r izolimin e trajtuesve eBPF nĂ« nivelin e bĂ«rthamĂ«s, pĂ«rdoret mekanizmi HVCI (HyperVisor-enforced Code Integrity), qĂ« shfrytĂ«zon mjetet e virtualizimit pĂ«r tĂ« mbrojtur proceset nĂ« bĂ«rthamĂ« dhe pĂ«r tĂ« siguruar konfirmimin e integritetit tĂ« kodit tĂ« ekzekutuar pĂ«rmes nĂ«nshkrimit digjital. Kufizimi i HVCI Ă«shtĂ« mundĂ«sia e verifikimit vetĂ«m pĂ«r programet eBPF qĂ« mund tĂ« interpretohen dhe pamundĂ«sia e pĂ«rdorimit sĂ« bashku me JIT (ofrohet njĂ« zgjedhje â ose performancĂ«, ose mbrojtje tĂ« shtuar).
Burimi: opennet.ru
