out-of-tree v1.0.0 - orodja za razvoj in testiranje podvigov in modulov jedra Linuxa


out-of-tree v1.0.0 - orodja za razvoj in testiranje podvigov in modulov jedra Linuxa

Izdana je bila prva (v1.0.0) različica orodja out-of-tree, kompleta orodij za razvoj in testiranje izkoriščanj in modulov jedra Linuxa.

out-of-tree vam omogoča avtomatizacijo nekaterih rutinskih dejanj za ustvarjanje okolij za razhroščevanje modulov jedra in izkoriščanja, ustvarjanje statističnih podatkov o zanesljivosti izkoriščanja, poleg tega pa nudi možnost enostavne integracije v CI (Continuous Integration).

Vsak modul jedra ali izkoriščanje je opisano z datoteko .out-of-tree.toml, ki podaja informacije o zahtevanem okolju in (če gre za izkoriščanje) omejitvah delovanja ob prisotnosti določenih varnostnih ublažitev.

Zbirka orodij omogoča tudi prepoznavanje določenih različic jedra, na katere vpliva ranljivost (z uporabo ukaza --guess), in se lahko uporablja tudi za poenostavitev binarnih iskanj za določeno objavo.

Spodaj je seznam sprememb od različice v0.2.

Dodana

  • Implementirana zmožnost omejitve števila ustvarjenih (avtogeneracija jedra zunaj drevesa) jeder (na podlagi opisa v .out-of-tree.toml) in preverjanja izvajanj (izvendrevesna klop) z uporabo —max= parameter X.

  • Nov ukaz genall, ki vam omogoča ustvarjanje vseh jeder za določeno distribucijo in različico.

  • Vsi dnevniki so zdaj shranjeni v bazi podatkov sqlite3. Implementirani ukazi za preproste pogosto potrebne poizvedbe, kot tudi izvoz podatkov v json in markdown.

  • Implementiran izračun verjetnosti uspešnega delovanja (na podlagi prejšnjih izstrelitev).

  • Zmožnost shranjevanja rezultatov gradnje (nov parameter --dist za ukaz out-of-tree pew)

  • Podpora za ustvarjanje metapodatkov za jedra, nameščena v gostiteljskem sistemu, kot tudi za gradnjo neposredno na gostitelju.

  • Podpora za jedra tretjih oseb.

  • Okolje za razhroščevanje zunaj drevesa zdaj samodejno išče simbole za odpravljanje napak v gostiteljskem sistemu.

  • Dodana možnost upravljanja varnostnih ublažitev z zastavicami za omogočanje/onemogočanje KASLR, SMEP, SMAP in KPTI med odpravljanjem napak.

  • Dodan je parameter --threads=N v ukaz za preizkušanje zunaj drevesne mize, ki ga je mogoče uporabiti za določitev števila niti, v katerih je treba graditi/zagnati in preizkusiti izkoriščanja in module jedra.

  • Možnost nastavitve oznake, ki bo zabeležena v dnevniku in se nato lahko uporabi za izračun statistike.

  • Dodana možnost določanja različice jedra brez uporabe regularnih izrazov.

  • Nov ukaz za pakiranje, ki se uporablja za množično testiranje izkoriščanj in modulov jedra v podimenikih.

  • V konfiguraciji (.out-of-tree.toml) za modul exploit in kernel je bila dodana možnost onemogočanja KASLR, SMEP, SMAP in KPTI ter določitev zahtevanega števila jeder in pomnilnika.

  • Zdaj se slike (rootfs) nalagajo samodejno, medtem ko se izvaja samodejno ustvarjanje jedra. bootstrap ni več potreben.

  • Podpora za jedra CentOS.

Spremembe

  • Zdaj, če ni slike (rootfs) za zahtevano različico distribucije, bo zunaj drevesa poskusila uporabiti sliko najbližje različice. Na primer, slika Ubuntu 18.04 za Ubuntu 18.10.

  • Zdaj testi za module jedra ne bodo obravnavani kot napake, če manjkajo (ni testov - ni napak!).

  • Zdaj bo out-of-tree vrnil negativno kodo napake, če vsaj ena stopnja (gradnja, zagon ali preizkus) na katerem koli od jeder ne uspe.

  • Projekt je prešel na uporabo modulov Go, zdaj je prednostna gradnja z GO111MODULE=on.

  • Dodani privzeti testi.

  • Test.sh bo zdaj privzeto uporabljen, če sestav v ${TARGET}_test ni implementiran v Makefile.

  • Dnevnik jedra se ne izbriše več pred zagonom modula jedra ali izkoriščanja. Nekatera izkoriščanja uporabljajo puščanje osnove jedra v dmesg, da zaobidejo KASLR, zato lahko čiščenje prekine implementirano logiko izkoriščanja.

  • qemu/kvm zdaj uporablja vse zmožnosti gostiteljskega procesorja.

izbrisan

  • Tovarna jedra v celoti odstranjen zaradi implementacije generiranja jedra na podlagi postopoma posodobljenih datotek Docker.

  • bootstrap ne naredi ničesar drugega. Ukaz bo odstranjen v naslednji izdaji.

Popravljeno

  • V macOS GNU coreutils ni več potreben za delovanje.

  • Začasne datoteke so bile premaknjene v ~/.out-of-tree/tmp/ zaradi napak pri namestitvi znotraj dockerja v nekaterih sistemih.

Vir: linux.org.ru

Dodaj komentar