Microsoft lucrează pentru a aduce suport extins pentru Filtrul de pachete Berkeley (eBPF) în Windows

Pictograma timp de citire 2 min. citit


Cititorii ajută la sprijinirea MSpoweruser. Este posibil să primim un comision dacă cumpărați prin link-urile noastre. Pictograma Tooltip

Citiți pagina noastră de dezvăluire pentru a afla cum puteți ajuta MSPoweruser să susțină echipa editorială Află mai multe

Rapoarte ZDNet că Microsoft lucrează pentru a aduce instrumentul de securitate Linux extins Berkeley Packet Filter (eBPF) la Windows 10.

Instrumentul poate fi rulat în prezent pe Windows SubSystem pentru Linux, dar Microsoft lucrează la suport nativ, problema fiind că instrumentul rulează cod în contextul kernelului, ceea ce ridică tot felul de complicații de securitate.

Lucrul poate merita, totuși, deoarece eBPF este utilizat pe scară largă în filtrarea, analiza și managementul rețelei și, de asemenea, pentru filtrarea apelurilor de sistem și urmărirea contextului procesului și formează fundamentul mai multor aplicații de securitate, cum ar fi Cilium, Falco și Tracee; Programele de observare Kubernetes precum Hubble și Pixie și lanțuri de instrumente precum Clang.

Proiectul ebpf-for-windows își propune să preia mai multe proiecte open-source eBPF existente și adaugă „clei” pentru a le face să ruleze pe Windows.

După cum se arată în diagramă, lanțurile de instrumente eBPF existente (clang, etc.) pot fi utilizate pentru a genera bytecode eBPF din codul sursă în diferite limbi. Bytecode poate fi consumat de orice aplicație sau prin instrumentul de linie de comandă Netsh, care utilizează o bibliotecă partajată care expune API-urile Libbpf, deși acest lucru este încă în curs.

Codul octet eBPF este trimis la un verificator static (verificatorul PREVAIL) care este găzduit într-un proces protejat în modul utilizator (un mediu de securitate Windows care permite unei componente de nucleu să aibă încredere într-un demon în modul utilizator semnat de o cheie în care are încredere). Dacă bytecode trece toate verificările verificatorului, acesta poate fi fie încărcat într-un interpret (de la uBPF în contextul de execuție în modul kernel), fie compilat JIT (prin compilatorul uBPF JIT) și poate avea codul nativ încărcat în execuția în modul kernel context (dar consultați întrebările frecvente din partea de jos despre HVCI).

Programele eBPF instalate în contextul de execuție în modul kernel se pot atașa la diferite cârlige (în prezent, două cârlige până acum: XDP și un cârlig de legare la socket) și pot apela diverse API-uri de ajutor expuse de shim-ul eBPF, care împachetează intern API-uri publice de kernel Windows, permițând utilizarea eBPF pe versiunile existente de Windows. Mai multe cârlige și ajutoare vor fi adăugate în timp.

Rezultatul final va fi un mediu de găzduire specific Windows pentru eBPF, care le-ar permite dezvoltatorilor Windows să folosească programe eBPF cu sursă deschisă, fără a fi nevoie să recodeze.

Check out Proiectul ebpf-for-windows la GitHub aici.

Mai multe despre subiecte: eGMP, microsoft, ferestre 10

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *