A Microsoft azon dolgozik, hogy a Berkeley Packet Filter (eBPF) kiterjesztett támogatást nyújtsa a Windows számára
2 perc olvas
Publikálva
Olvassa el közzétételi oldalunkat, hogy megtudja, hogyan segítheti az MSPowerusert a szerkesztői csapat fenntartásában Tovább
A ZDNet jelentése hogy a Microsoft azon dolgozik, hogy a Linux-biztonsági eszközt, a Berkeley Packet Filter (eBPF) kiterjesztését a Windows 10 rendszerbe hozza.
Az eszköz jelenleg futtatható Windows SubSystem for Linux alatt, de a Microsoft dolgozik a natív támogatáson, a probléma az, hogy az eszköz a kernel kontextusában futtatja a kódot, ami mindenféle biztonsági bonyodalmat felvet.
A munka azonban érdemes lehet, mivel az eBPF-et széles körben használják a hálózatszűrésben, -elemzésben és -kezelésben, valamint rendszerhívás-szűrésre és folyamatkörnyezet-követésre, és számos biztonsági alkalmazás alapját képezi, mint például a Cilium, a Falco és a Tracee; Kubernetes megfigyelőprogramok, mint például a Hubble és Pixie, és olyan eszközláncok, mint a Clang.
Az ebpf-for-windows projekt célja, hogy több létező eBPF nyílt forráskódú projektet is átvegyen, és hozzáadja a „ragasztót”, hogy azok Windowson futhassanak.
Amint az ábrán látható, a meglévő eBPF eszközláncok (csengés stb.) felhasználhatók eBPF bájtkód előállítására a forráskódból különböző nyelveken. A bájtkódot bármely alkalmazás vagy a Netsh parancssori eszköz felhasználhatja, amely egy megosztott könyvtárat használ, amely felfedi a Libbpf API-kat, bár ez még folyamatban van.
Az eBPF bájtkódot egy statikus ellenőrzőnek (a PREVAIL ellenőrzőnek) küldi el, amelyet egy felhasználói módú védett folyamat (olyan Windows biztonsági környezet, amely lehetővé teszi a kernelkomponens számára, hogy megbízzon egy olyan felhasználói módú démonban, amelyet egy általa megbízható kulccsal aláírt) tárol. Ha a bájtkód átmegy az összes ellenőrző ellenőrzésen, akkor betölthető egy értelmezőbe (uBPF-ből a kernel módú végrehajtási környezetben), vagy JIT fordítható (az uBPF JIT fordítón keresztül), és natív kódot tölthet be a kernel módú végrehajtásba. kontextusban (de lásd a GYIK alul a HVCI-ről).
A kernel módú végrehajtási kontextusba telepített eBPF programok különféle hookokhoz kapcsolódhatnak (jelenleg két hook: XDP és egy socket bind hook), és különféle segéd API-kat hívhatnak, amelyeket az eBPF alátét fed fel, amely belsőleg becsomagolja a nyilvános Windows kernel API-kat, lehetővé téve a eBPF használata a Windows meglévő verzióin. Idővel további horgok és segítők kerülnek hozzáadásra.
A végeredmény egy Windows-specifikus tárhelykörnyezet lesz az eBPF számára, amely lehetővé teszi a Windows fejlesztők számára, hogy nyílt forráskódú eBPF programokat használjanak újrakódolás nélkül.
Nézze meg a ebpf-for-windows projekt a GitHubon itt.