Microsoft a pregătit o implementare a eBPF pentru Windows

Microsoft a dezvăluit recent printr-o postare implementarea subsistemului eBPF pentru Windows care vă permite să rulați drivere arbitrare care rulează la nivelul nucleului sistemului de operare.

eGMP oferă un interpretor de bytecode încorporat în nucleu pentru a crea drivere de rețea încărcate de spațiu pentru utilizator, control acces și monitorizare sistem. eBPF a fost inclus în kernel-ul Linux de la versiunea 3.18 și vă permite să procesați pachete de rețea de intrare / ieșire, pachete de redirecționare, controlul lățimii de bandă, interceptarea apelurilor de sistem, controlul accesului și urmărirea.

Prin compilarea JIT, bytecode este tradus în instrucțiuni ale mașinii din mers și rulează cu performanța codului compilat. EBPF pentru Windows este open source sub licența MIT.

Astăzi suntem încântați să anunțăm un nou proiect open source de la Microsoft pentru ca eBPF să funcționeze pe Windows 10 și Windows Server 2016 și ulterior. Proiectul ebpf-for-windows își propune să le permită dezvoltatorilor să folosească lanțuri de instrumente eBPF familiare și interfețe de programare a aplicațiilor (API-uri) pe lângă versiunile existente de Windows. Bazat pe munca altora, acest proiect ia mai multe proiecte eBPF open source existente și adaugă „lipiciul” pentru a le face să ruleze pe Windows.

eBPF pentru Windows poate fi utilizat cu instrumentele eBPF existente și oferă un API generic care este utilizat pentru aplicațiile eBPF pe Linux.

În special proiectul vă permite să compilați codul scris în C în bytecode eBPF utilizând compilatorul eBPF standard bazat pe Clang și rulați driverele eBPF deja construite pentru Linux deasupra nucleului Windows, care oferă un strat de compatibilitate special și acceptă API-ul standard Libbpf pentru compatibilitatea cu aplicațiile care interacționează cu programele eBPF.

Aceasta include straturi de mijloc care oferă legături de tip Linux pentru XDP (eXpress Data Path) și legături de socket care rezumă accesul la stiva de rețea Windows și la driverele de rețea. Planurile urmăresc să ofere suport complet la nivel de sursă pentru driverele generice Linux eBPF.

Diferența esențială în implementarea eBPF pentru Windows este utilizarea unui verificator de bytecode alternativ, propus inițial de angajații VMware și cercetătorii din universitățile canadiene și israeliene.

Verificatorul este pornit într-un proces separat separat în spațiul utilizatorului și este utilizat înainte de executarea programelor BPF pentru a detecta erori și a bloca potențiale activități dăunătoare.

Pentru validare, eBPF pentru Windows utilizează metoda de analiză statică de interpretare abstractă, ce, Comparativ cu verificatorul eBPF pentru Linux, acesta demonstrează o rată fals pozitivă mai mică, acceptă analiza buclei și oferă o scalabilitate bună. Metoda ia în considerare numeroase tipare tipice de performanță obținute din analiza programelor eBPF existente.

eBPF este o tehnologie bine-cunoscută, dar revoluționară, care oferă programabilitate, extensibilitate și agilitate. eBPF a fost aplicat pentru cazuri de utilizare precum protecția refuzului de serviciu și observabilitate.

În timp, în jurul eBPF s-a construit un ecosistem semnificativ de instrumente, produse și expertiză. Deși suportul pentru eBPF a fost implementat pentru prima dată în kernel-ul Linux, a existat un interes tot mai mare în a permite eBPF să fie utilizat în alte sisteme de operare și, de asemenea, să extindă demonii și serviciile în modul utilizator în plus față de kernel.

După verificare, bytecode-ul este trecut la interpretul de nivel de nucleu, sau este trecut prin compilatorul JIT, urmat de rularea codului de mașină rezultat cu drepturi de kernel. Pentru a izola driverele eBPF la nivel de nucleu, se utilizează mecanismul HVCI (HyperVisor Enhanced Code Integrity), care folosește instrumente de virtualizare pentru a proteja procesele din nucleu și se asigură că integritatea codului executat este semnată digital.

O limitare a HVCI este abilitatea de a verifica doar programele eBPF interpretate și incapacitatea de a le folosi împreună cu JIT (aveți de ales: performanță sau protecție suplimentară).

În cele din urmă dacă sunteți interesat să aflați mai multe despre asta, puteți consulta următorul link.


Lasă comentariul tău

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

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.