Microsoft ha preparato un'implementazione di eBPF per Windows

Microsoft ha svelato recentemente tramite un post l'implementazione del sottosistema eBPF per Windows che consente di eseguire driver arbitrari eseguiti a livello di kernel del sistema operativo.

eGMP fornisce un interprete bytecode integrato nel kernel per creare driver di rete carichi di spazio utente, controllo degli accessi e monitoraggio del sistema. eBPF è stato incluso nel kernel Linux dalla versione 3.18 e consente di elaborare pacchetti di rete in entrata / in uscita, inoltrare pacchetti, controllare la larghezza di banda, intercettare le chiamate di sistema, controllare l'accesso e tenere traccia.

Attraverso la compilazione JIT, il codice byte viene tradotto in istruzioni della macchina al volo e viene eseguito con le prestazioni del codice compilato. EBPF per Windows è open source con licenza MIT.

Oggi siamo lieti di annunciare un nuovo progetto open source di Microsoft per far funzionare eBPF su Windows 10 e Windows Server 2016 e versioni successive. Il progetto ebpf-for-windows mira a consentire agli sviluppatori di utilizzare le familiari toolchain eBPF e le API (application programming interface) in aggiunta alle versioni esistenti di Windows. Basato sul lavoro di altri, questo progetto prende diversi progetti eBPF open source esistenti e aggiunge la "colla" per farli funzionare su Windows.

eBPF per Windows può essere utilizzato con gli strumenti eBPF esistenti e fornisce un'API generica che viene utilizzata per le applicazioni eBPF su Linux.

In particolare, il progetto ti permette di compilare codice scritto in C in bytecode eBPF utilizzando il compilatore eBPF standard basato su Clang ed eseguire i driver eBPF già compilati per Linux sul kernel di Windows, che fornisce uno speciale livello di compatibilità e supporta l'API Libbpf standard per la compatibilità con le applicazioni che interagiscono con i programmi eBPF.

Ciò include i livelli intermedi che forniscono collegamenti simili a Linux per XDP (eXpress Data Path) e collegamenti socket che riepilogano l'accesso allo stack di rete di Windows e ai driver di rete. I piani mirano a fornire il supporto completo a livello di sorgente per i driver eBPF Linux generici.

La differenza fondamentale nell'implementazione di eBPF per Windows è l'uso di un bytecode checker alternativo, originariamente proposto dai dipendenti VMware e dai ricercatori delle università canadesi e israeliane.

Il verificatore viene avviato in un processo isolato separato nello spazio utente e viene utilizzato prima dell'esecuzione dei programmi BPF per rilevare errori e bloccare potenziali attività dannose.

Per la convalida, eBPF per Windows utilizza il metodo di analisi statica dell'interpretazione astratta, che cosa, Rispetto a eBPF Checker per Linux, mostra un tasso di falsi positivi inferiore, supporta l'analisi del loop e fornisce una buona scalabilità. Il metodo tiene conto di molti modelli di prestazioni tipici ottenuti dall'analisi dei programmi eBPF esistenti.

eBPF è una tecnologia ben nota ma rivoluzionaria che fornisce programmabilità, estensibilità e agilità. L'eBPF è stato applicato a casi d'uso come la protezione dalla negazione del servizio e l'osservabilità.

Nel tempo attorno a eBPF è stato costruito un ecosistema significativo di strumenti, prodotti e competenze. Sebbene il supporto per eBPF sia stato implementato per la prima volta nel kernel Linux, c'è stato un crescente interesse nel consentire l'utilizzo di eBPF in altri sistemi operativi e anche per estendere daemon e servizi in modalità utente oltre al kernel.

Dopo la verifica, il bytecode viene passato all'interprete a livello di kernel, oppure viene passato attraverso il compilatore JIT, seguito dall'esecuzione del codice macchina risultante con i diritti del kernel. Per isolare i driver eBPF a livello di kernel, viene utilizzato il meccanismo HVCI (HyperVisor Enhanced Code Integrity), che utilizza strumenti di virtualizzazione per proteggere i processi nel kernel e garantisce che l'integrità del codice eseguito sia firmato digitalmente.

Una limitazione di HVCI è la capacità di controllare solo i programmi eBPF interpretati e l'impossibilità di usarli insieme a JIT (puoi scegliere: prestazioni aggiuntive o protezione).

Infine se sei interessato a saperne di più, puoi consultare il seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.