Nag-andam ang Microsoft og pagpatuman sa eBPF para sa Windows

Gipatik sa Microsoft ang usa ka pagpatuman sa eBPF subsystem para sa Windows, nga nagtugot kanimo sa paglansad sa mga arbitraryong handler nga nagdagan sa lebel sa kernel sa operating system. Ang eBPF naghatag usa ka bytecode interpreter nga gitukod sa kernel, nga nagpaposible sa paghimo sa mga tigdumala sa operasyon sa network nga gikarga gikan sa wanang sa gumagamit, pagkontrol sa pag-access ug pagmonitor sa operasyon sa mga sistema. Ang eBPF gilakip sa Linux kernel sukad sa pagpagawas sa 3.18 ug nagtugot kanimo sa pagdumala sa umaabot nga mga packet sa network, packet forwarding, bandwidth management, system call interception, access control ug pagsubay. Salamat sa paggamit sa JIT compilation, ang bytecode gihubad sa langaw ngadto sa mga instruksyon sa makina ug gipatuman uban ang paghimo sa gihugpong nga code. Ang eBPF para sa Windows bukas nga tinubdan ubos sa lisensya sa MIT.

Ang eBPF para sa Windows mahimong magamit uban sa kasamtangan nga eBPF nga mga himan ug naghatag og usa ka generic nga API nga gigamit alang sa eBPF nga mga aplikasyon sa Linux. Lakip sa ubang mga butang, ang proyekto nagtugot kanimo sa pag-compile sa code nga gisulat sa C ngadto sa eBPF bytecode gamit ang standard Clang-based eBPF compiler ug pagpadagan sa eBPF handler nga gihimo na para sa Linux sa ibabaw sa Windows kernel, nga naghatag og espesyal nga compatibility layer ug pagsuporta sa standard Libbpf API alang sa pagkaangay sa mga aplikasyon nga nakig-uban sa mga programa sa eBPF. Naglakip kini sa mga lut-od nga naghatag ug mga kaw-it nga sama sa Linux alang sa XDP (eXpress Data Path) ug socket bind, pagkuha sa access sa network stack ug mga driver sa Windows network. Ang mga plano naglakip sa paghatag og bug-os nga source code level compatibility sa standard nga Linux eBPF processors.

Nag-andam ang Microsoft og pagpatuman sa eBPF para sa Windows

Ang yawe nga kalainan tali sa pagpatuman sa eBPF alang sa Windows mao ang paggamit sa usa ka alternatibong bytecode verifier, nga orihinal nga gisugyot sa mga empleyado sa VMware ug mga tigdukiduki gikan sa mga unibersidad sa Canada ug Israel. Ang verifier nagdagan sa usa ka bulag, bulag nga proseso sa wanang sa gumagamit ug gigamit sa wala pa ipatuman ang mga programa sa BPF aron mahibal-an ang mga sayup ug babagan ang posible nga makadaot nga kalihokan.

Para sa verification, ang eBPF para sa Windows naggamit ug static analysis method base sa Abstract Interpretation, nga, kung itandi sa eBPF verifier para sa Linux, nagpakita og mas ubos nga false positive rate, nagsuporta sa loop analysis, ug naghatag og maayong scalability. Giisip sa pamaagi ang daghang kasagarang mga sumbanan sa pagpatuman nga nakuha gikan sa pag-analisar sa mga naglungtad nga programa sa eBPF.

Human sa pag-verify, ang bytecode ibalhin ngadto sa usa ka tighubad nga nagdagan sa lebel sa kernel, o gipaagi sa usa ka JIT compiler, gisundan sa pagpatuman sa resulta nga machine code nga adunay mga katungod sa kernel. Aron ihimulag ang mga tigdumala sa eBPF sa lebel sa kernel, ang mekanismo sa HVCI (HyperVisor-enforced Code Integrity) gigamit, nga naggamit sa mga himan sa virtualization aron mapanalipdan ang mga proseso sa kernel ug naghatag og kumpirmasyon sa integridad sa nagpatuman nga code gamit ang digital signature. Ang limitasyon sa HVCI mao nga mahimo ra nga mapamatud-an ang gihubad nga mga programa sa eBPF ug dili magamit kauban ang JIT (adunay ka kapilian sa bisan unsang pasundayag o dugang nga seguridad).

Source: opennet.ru

Idugang sa usa ka comment