out-of-tree v1.0.0 - nástroje pro vývoj a testování exploitů a modulů jádra Linuxu


out-of-tree v1.0.0 - nástroje pro vývoj a testování exploitů a modulů jádra Linuxu

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

Přidat komentář