Microsoft julkisti äskettäin postitse eBPF-alijärjestelmän käyttöönotto Windowsille jonka avulla voit suorittaa mielivaltaisia ohjaimia, jotka toimivat käyttöjärjestelmän ytimen tasolla.
eGMP tarjoaa sisäänrakennetun tavukooditulkin ytimessä luoda käyttäjän avaruuteen ladattuja verkkoajureita, kulunvalvontaa ja järjestelmän valvontaa. eBPF on sisällytetty Linux-ytimeen versiosta 3.18 ja voit käsitellä saapuvia / lähteviä verkkopaketteja, edelleenlähetyspaketteja, ohjata kaistanleveyttä, siepata järjestelmäpuheluja, hallita pääsyä ja seurata.
JIT-kääntämisen avulla tavukoodi muunnetaan koneohjeiksi lennossa ja se suoritetaan käännetyn koodin suorituskyvyn mukana. EBPF for Windows on avoimen lähdekoodin MIT-lisenssi.
Tänään meillä on ilo ilmoittaa uudesta avoimen lähdekoodin projektista Microsoftilta, joka saa eBPF: n toimimaan Windows 10: ssä ja Windows Server 2016: ssa ja uudemmissa. Ebpf-for-windows -projektin tarkoituksena on antaa kehittäjille mahdollisuus käyttää tuttuja eBPF-työkaluketjuja ja sovellusohjelmointirajapintoja (API) olemassa olevien Windows-versioiden lisäksi. Toisten työn pohjalta tämä projekti vie useita nykyisiä avoimen lähdekoodin eBPF-projekteja ja lisää "liiman" saadakseen ne toimimaan Windowsissa.
eBPF Windowsille voidaan käyttää olemassa olevien eBPF-työkalujen kanssa ja tarjoaa yleisen API: n, jota käytetään eBPF-sovelluksiin Linuxissa.
Erityisesti projektin avulla voit kääntää C: llä kirjoitetun koodin tavukoodiksi eBPF käyttämällä tavallista Clang-pohjaista eBPF-kääntäjää ja suorita eBPF-ohjaimet, jotka on jo rakennettu Linuxille Windows-ytimen päälle, joka tarjoaa erityisen yhteensopivuuskerroksen ja tukee tavallista Libbpf-sovellusliittymää yhteensopivuuteen eBPF-ohjelmien kanssa vuorovaikutuksessa olevien sovellusten kanssa.
Tämä sisältää keskikerrokset, jotka tarjoavat Linux-tyyppisiä sidoksia XDP: lle (eXpress Data Path), ja pistorasiasidokset, jotka tiivistävät pääsyn Windowsin verkkopinoon ja verkkoajureihin. Suunnitelmien tavoitteena on tarjota täysi lähdetason tuki yleisille Linux eBPF -ajureille.
Keskeisin ero eBPF for Windows -sovelluksen toteuttamisessa on vaihtoehtoisen tavukoodin tarkistimen käyttö, jonka alun perin ehdottivat VMwaren työntekijät ja tutkijat Kanadan ja Israelin yliopistoista.
Todentaja käynnistetään erillisessä prosessissa käyttäjäavaruudessa ja sitä käytetään ennen BPF-ohjelmien suorittamista virheiden havaitsemiseksi ja mahdollisen haitallisen toiminnan estämiseksi.
Vahvistamista varten eBPF for Windows käyttää abstraktin tulkinnan staattista analyysimenetelmää, mitä, Verrattuna Linuxin eBPF-todentajaan se osoittaa pienemmän väärän positiivisen määrän, tukee silmukka-analyysiä ja tarjoaa hyvän skaalautuvuuden. Menetelmässä otetaan huomioon monet tyypilliset suorituskykymallit, jotka on saatu analysoimalla olemassa olevia eBPF-ohjelmia.
eBPF on tunnettu, mutta vallankumouksellinen tekniikka, joka tarjoaa ohjelmoitavuuden, laajennettavuuden ja ketteryyden. eBPF: ää on käytetty sellaisissa käyttötapauksissa kuin palveluneston suojaaminen ja havaittavuus.
Ajan myötä eBPF: n ympärille on rakennettu merkittävä työkalujen, tuotteiden ja osaamisen ekosysteemi. Vaikka tuki eBPF: lle aloitettiin ensimmäisen kerran Linux-ytimessä, on ollut kasvava kiinnostus sallia eBPF: n käyttö muissa käyttöjärjestelmissä ja myös laajentaa daemoneja ja käyttäjätilapalveluja ytimen lisäksi.
Vahvistuksen jälkeen tavukoodi välitetään ytintulkille, tai se viedään JIT-kääntäjän läpi, minkä jälkeen suoritettu konekoodi suoritetaan ytimen oikeuksilla. EBPF-ohjainten eristämiseksi ytötasolla käytetään HVCI-mekanismia (HyperVisor Enhanced Code Integrity), joka käyttää virtualisointityökaluja ytimen prosessien suojaamiseen ja varmistaa, että suoritetun koodin eheys allekirjoitetaan digitaalisesti.
Yksi HVCI-rajoituksista on kyky tarkistaa vain tulkitut eBPF-ohjelmat ja kyvyttömyys käyttää niitä yhdessä JIT: n kanssa (sinulla on mahdollisuus valita: lisäsuoritus tai suojaus).
Vihdoin jos olet kiinnostunut tietämään siitä enemmän, voit kuulla seuraava linkki.