Microsoft imetayarisha utekelezaji wa eBPF kwa Windows

Microsoft imechapisha utekelezaji wa mfumo mdogo wa eBPF wa Windows unaokuruhusu kuendesha vishikilizi kiholela vinavyofanya kazi katika kiwango cha kernel ya mfumo wa uendeshaji. eBPF hutoa mkalimani wa bytecode iliyojengwa ndani ya kernel ambayo inakuruhusu kuunda vidhibiti vya shughuli za mtandao zinazoweza kupakiwa na nafasi ya mtumiaji, kudhibiti ufikiaji, na mifumo ya kufuatilia. eBPF imejumuishwa kwenye kinu cha Linux tangu kutolewa kwa 3.18 na hukuruhusu kuchakata pakiti za mtandao zinazoingia/zinazotoka, pakiti za mbele, kipimo data cha kudhibiti, kukata simu za mfumo, udhibiti wa ufikiaji na kufuatilia. Shukrani kwa utumiaji wa mkusanyiko wa JIT, bytecode inatafsiriwa kuwa maagizo ya mashine kwenye nzi na kutekelezwa kwa utendakazi wa nambari iliyokusanywa. Nambari ya chanzo ya eBPF ya Windows ni chanzo wazi chini ya leseni ya MIT.

eBPF ya Windows inaweza kutumika pamoja na zana zilizopo za eBPF na hutoa API ya jumla ambayo inatumika kwa programu za Linux eBPF. Miongoni mwa mambo mengine, mradi unaruhusu kuunda nambari iliyoandikwa kwa C ndani ya eBPF bytecode kwa kutumia mkusanyaji wa kawaida wa eBPF wa Clang na kuendesha vidhibiti vya eBPF vilivyoundwa tayari kwa Linux juu ya kernel ya Windows, kutoa safu maalum ya utangamano na kuunga mkono API ya kawaida ya Libbpf kwa. utangamano na programu zinazoingiliana na programu za eBPF. Hii inajumuisha safu zinazotoa ndoano zinazofanana na Linux za XDP (Njia ya Data ya eXpress) na kuunganisha soketi, kutoa ufikiaji wa stack ya mtandao na viendesha mtandao vya Windows. Kati ya mipango, inabainishwa utoaji wa utangamano kamili katika kiwango cha msimbo wa chanzo na vidhibiti vya kawaida vya Linux eBPF.

Microsoft imetayarisha utekelezaji wa eBPF kwa Windows

Tofauti kuu katika utekelezaji wa eBPF kwa Windows ni matumizi ya kithibitishaji mbadala cha bytecode, kilichopendekezwa awali na wafanyakazi wa VMware na watafiti kutoka vyuo vikuu vya Kanada na Israeli. Kithibitishaji huendesha mchakato tofauti katika nafasi ya mtumiaji na hutumiwa kabla ya utekelezaji wa programu za BPF ili kugundua makosa na kuzuia shughuli mbaya zinazowezekana.

eBPF ya Windows hutumia mbinu ya uchambuzi tuli kulingana na Ufafanuzi wa Kikemikali kwa uthibitishaji, ambayo, ikilinganishwa na eBPF ya kithibitishaji cha Linux, ina kiwango cha chini cha chanya cha uwongo, inasaidia uchanganuzi wa kitanzi, na hutoa uboreshaji mzuri. Mbinu hiyo inazingatia mifumo mingi ya kawaida ya utekelezaji iliyopatikana kutokana na uchanganuzi wa programu zilizopo za eBPF.

Baada ya uthibitishaji, bytecode hupitishwa kwa mkalimani wa kiwango cha kernel au hupitishwa kupitia mkusanyaji wa JIT, ikifuatiwa na utekelezaji wa msimbo wa mashine ulio na haki za kernel. Ili kutenga vidhibiti vya eBPF katika kiwango cha kernel, utaratibu wa HVCI (HyperVisor-enforced Code Integrity) hutumiwa, ambao hutumia zana za uboreshaji kulinda michakato kwenye kernel na hutoa uthibitishaji wa uadilifu wa msimbo unaoweza kutekelezwa kwa sahihi ya dijiti. Kizuizi cha HVCI ni uwezo wa kuthibitisha mipango ya eBPF iliyotafsiriwa pekee na kutowezekana kuitumia kwa kushirikiana na JIT (chaguo limetolewa - ama utendaji au ulinzi wa ziada).

Chanzo: opennet.ru

Kuongeza maoni