Microsoft hà preparatu una implementazione di eBPF per Windows

Microsoft hà publicatu una implementazione di u subsistema eBPF per Windows, chì vi permette di lancià manipolatori arbitrarii in esecuzione à u livellu di u kernel di u sistema operatore. eBPF furnisce un interprete di bytecode integratu in u kernel, chì permette di creà gestori di operazione di rete caricati da u spaziu di l'utilizatori, cuntrullà l'accessu è monitorizà l'operazione di i sistemi. eBPF hè stata inclusa in u kernel Linux da a liberazione 3.18 è permette di gestisce i pacchetti di rete entranti / in uscita, l'inviu di pacchetti, a gestione di larghezza di banda, l'intercepzione di e chjama di u sistema, u cuntrollu di l'accessu è a traccia. Grazie à l'usu di a compilazione JIT, u bytecode hè traduttu nantu à a mosca in istruzzioni di a macchina è eseguitu cù a prestazione di codice compilatu. eBPF per Windows hè open source sottu a licenza MIT.

eBPF per Windows pò esse usatu cù l'arnesi eBPF esistenti è furnisce una API generica utilizata per l'applicazioni eBPF in Linux. Frà altre cose, u prughjettu permette di cumpilà u codice scrittu in C in eBPF bytecode utilizendu u compilatore standard di eBPF basatu in Clang è eseguite i gestori eBPF digià creati per Linux sopra à u kernel di Windows, chì furnisce una strata di cumpatibilità speciale è sustene u standard Libbpf. API per a compatibilità cù l'applicazioni chì interagiscenu cù i prugrammi eBPF. Questu include strati chì furniscenu ganci simili à Linux per XDP (eXpress Data Path) è socket bind, astrattendu l'accessu à a pila di rete è i driver di rete Windows. I piani includenu furnisce una cumpatibilità cumpleta di u codice fonte cù i processori standard Linux eBPF.

Microsoft hà preparatu una implementazione di eBPF per Windows

A diffarenza chjave trà l'implementazione eBPF per Windows hè l'usu di un verificatore bytecode alternativu, urigginariamente prupostu da l'impiegati di VMware è i circadori di l'università canadese è israeliana. U verificatore funziona in un prucessu separatu è isolatu in u spaziu di l'utilizatori è hè utilizatu prima di eseguisce i prugrammi BPF per identificà l'errori è bluccà pussibuli attività maliziusi.

Per a verificazione, eBPF per Windows usa un metudu di analisi staticu basatu annantu à l'Interpretazione Astratta, chì, cumparatu cù u verificatore eBPF per Linux, mostra una tarifa falsa positiva più bassa, sustene l'analisi di loop, è furnisce una bona scalabilità. U metudu piglia in contu parechji mudelli tipici di esecuzione ottenuti da l'analisi di i prugrammi eBPF esistenti.

Dopu a verificazione, u bytecode hè trasferitu à un interprete chì corre à u livellu di u kernel, o passatu per un compilatore JIT, seguitu da l'esekzione di u codice di a macchina resultanti cù diritti di kernel. Per isolà i gestori di eBPF à u livellu di u kernel, u mecanismu HVCI (HyperVisor-enforced Code Integrity) hè utilizatu, chì usa strumenti di virtualizazione per prutege i prucessi in u kernel è furnisce a cunferma di l'integrità di u codice esecutivu cù una firma digitale. A limitazione di HVCI hè chì pò verificà solu i prugrammi eBPF interpretati è ùn pò micca esse usatu in cunjunzione cù JIT (avete una scelta di prestazione o sicurezza supplementaria).

Source: opennet.ru

Add a comment