Byla vydána první (v1.0.0) verze out-of-tree, sady nástrojů pro vývoj a testování exploitů a modulů linuxového jádra.
out-of-tree vám umožňuje automatizovat některé rutinní akce k vytvoření prostředí pro ladění modulů jádra a exploitů, generování statistik spolehlivosti exploitů a také poskytuje možnost snadné integrace do CI (Continuous Integration).
Každý modul jádra nebo exploit je popsán souborem .out-of-tree.toml, který specifikuje informace o požadovaném prostředí a (pokud se jedná o exploit) omezení provozu za přítomnosti určitých bezpečnostních zmírnění.
Sada nástrojů vám také umožňuje identifikovat konkrétní verze jádra ovlivněné zranitelností (pomocí příkazu --guess) a lze ji také použít ke zjednodušení binárního vyhledávání konkrétního potvrzení.
Níže je uveden seznam změn od verze v0.2.
Přidáno
-
Implementována schopnost omezit počet generovaných (mimostromový kernel kernel) jader (na základě popisu v .out-of-tree.toml) a kontrolovat běhy (mimo strom pew) pomocí —max= Parametr X.
-
Nový příkaz genall, který umožňuje generovat všechna jádra pro konkrétní distribuci a verzi.
-
Všechny protokoly jsou nyní uloženy v databázi sqlite3. Implementované příkazy pro jednoduché často potřebné dotazy a také export dat do json a markdown.
-
Implementován výpočet pravděpodobnosti úspěšné operace (na základě předchozích startů).
-
Možnost uložit výsledky sestavení (nový parametr --dist pro příkaz mimo strom pew)
-
Podpora pro generování metadat pro jádra nainstalovaná na hostitelském systému, stejně jako vytváření přímo na hostiteli.
-
Podpora jader třetích stran.
-
Prostředí ladění mimo strom nyní automaticky vyhledává symboly ladění na hostitelském systému.
-
Přidána možnost spravovat bezpečnostní zmírnění pomocí povolit/zakázat příznaky KASLR, SMEP, SMAP a KPTI během ladění.
-
Do příkazu out-of-tree pew testing byl přidán parametr --threads=N, který lze použít k určení počtu vláken, ve kterých se mají sestavit/spustit a otestovat exploity a moduly jádra.
-
Možnost nastavení tagu, který se bude zaznamenávat do logu a následně jej lze použít pro výpočet statistik.
-
Přidána možnost určit verzi jádra bez použití regulárních výrazů.
-
Nový příkaz pack, používaný pro hromadné testování exploitů a modulů jádra v podadresářích.
-
V konfiguraci (.out-of-tree.toml) pro modul exploit a kernel přibyla možnost zakázat KASLR, SMEP, SMAP a KPTI a také zadat požadovaný počet jader a paměti.
-
Nyní se obrazy (rootfs) načítají automaticky, když běží kernel autogen. bootstrap již není potřeba.
-
Podpora pro jádra CentOS.
Změny
-
Pokud nyní neexistuje žádný obrázek (rootfs) pro požadovanou verzi distribuce, pokusí se out-of-tree použít obrázek nejbližší verze. Například obrázek Ubuntu 18.04 pro Ubuntu 18.10.
-
Nyní testy pro moduly jádra nebudou považovány za selhání, pokud chybí (žádné testy - žádné chyby!).
-
Nyní mimo strom vrátí negativní chybový kód, pokud alespoň jedna fáze (sestavení, spuštění nebo testování) na některém z jader selhala.
-
Projekt přešel na používání modulů Go, nyní je preferováno budování s GO111MODULE=on.
-
Přidány výchozí testy.
-
Test.sh se nyní použije jako výchozí, pokud sestavení v ${TARGET}_test není implementováno v Makefile.
-
Protokol jádra se před spuštěním modulu jádra nebo exploitu již nevymazává. Některé z exploitů používají k obejití KASLR únik báze jádra v dmesg, takže vyčištění může narušit implementovanou logiku exploitu.
-
qemu/kvm nyní využívá všechny možnosti hostitelského procesoru.
Odebráno
-
Továrna na jádro zcela odstraněna kvůli implementaci generování jádra na základě postupně aktualizovaných souborů Dockerfiles.
-
bootstrap nedělá nic jiného. Příkaz bude odstraněn v příštím vydání.
Opraveno
-
V systému macOS již není ke spuštění GNU coreutils potřeba.
-
Dočasné soubory byly přesunuty do ~/.out-of-tree/tmp/ kvůli chybám při montáži v dockeru na některých systémech.
Zdroj: linux.org.ru