Microsoft pyrkii tuomaan laajennetun Berkeley Packet Filter (eBPF) -tuen Windowsiin
2 min. lukea
Julkaistu
Lue ilmoitussivumme saadaksesi selville, kuinka voit auttaa MSPoweruseria ylläpitämään toimitustiimiä Lue lisää
ZDNet raportoi että Microsoft pyrkii tuomaan Linuxin suojaustyökalun laajennetun Berkeley Packet Filterin (eBPF) Windows 10:een.
Työkalua voidaan tällä hetkellä käyttää Windows SubSystem for Linuxissa, mutta Microsoft työskentelee natiivituen parissa. Ongelmana on, että työkalu suorittaa koodia ytimen kontekstissa, mikä aiheuttaa kaikenlaisia tietoturvaongelmia.
Työ voi kuitenkin olla sen arvoista, koska eBPF:ää käytetään laajasti verkon suodatuksessa, analysoinnissa ja hallinnassa sekä järjestelmäkutsujen suodatuksessa ja prosessikontekstin jäljittämisessä ja se muodostaa perustan useille tietoturvasovelluksille, kuten Cilium, Falco ja Tracee; Kubernetes-havaintoohjelmat, kuten Hubble ja Pixie, ja työkaluketjut, kuten Clang.
ebpf-for-windows-projekti pyrkii ottamaan useita olemassa olevia avoimen lähdekoodin eBPF-projekteja ja lisää "liimaa" saadakseen ne toimimaan Windowsissa.
Kuten kaaviosta näkyy, olemassa olevia eBPF-työkaluketjuja (clang jne.) voidaan käyttää luomaan eBPF-tavukoodia lähdekoodista eri kielillä. Tavukoodia voi käyttää mikä tahansa sovellus tai Netsh-komentorivityökalu, joka käyttää jaettua kirjastoa, joka paljastaa Libbpf-sovellusliittymät, vaikka tämä on vielä kesken.
eBPF-tavukoodi lähetetään staattiselle todentajalle (PREVAIL-todentaja), jota isännöi käyttäjätilassa suojattu prosessi (Windows-suojausympäristö, jonka avulla ytimen komponentti voi luottaa käyttäjätilan demoniin, joka on allekirjoitettu sen luottavalla avaimella). Jos tavukoodi läpäisee kaikki todentajatarkistukset, se voidaan joko ladata tulkkiin (uBPF:stä ydintilan suorituskontekstissa) tai JIT-käännöksenä (uBPF JIT-kääntäjän kautta) ja natiivikoodilataus ydintilan suoritukseen. kontekstissa (mutta katso HVCI:stä alla oleva UKK).
Ydintilan suorituskontekstiin asennetut eBPF-ohjelmat voivat liittyä erilaisiin koukkuihin (tällä hetkellä kaksi koukkua: XDP ja socket bind hook) ja kutsua erilaisia apusovellusliittymiä, jotka paljastetaan eBPF-levyllä, joka kääri sisäisesti julkiset Windows-ytimen API:t. eBPF:n käyttö olemassa olevissa Windows-versioissa. Lisää koukkuja ja apureita lisätään ajan myötä.
Lopputuloksena on Windows-spesifinen isännöintiympäristö eBPF:lle, jonka avulla Windows-kehittäjät voivat käyttää avoimen lähdekoodin eBPF-ohjelmia ilman uudelleenkoodausta.