Megjelent az out-of-tree első (v1.0.0) verziója, amely egy exploit és Linux kernelmodulok fejlesztésére és tesztelésére szolgáló eszköztár.
Az out-of-tree lehetővé teszi néhány rutinművelet automatizálását a kernelmodulok és exploitok hibakeresésére szolgáló környezetek létrehozásához, a kizsákmányolás megbízhatósági statisztikáinak generálásához, valamint lehetővé teszi a CI-be (folyamatos integráció) való egyszerű integrációt.
Minden kernelmodult vagy exploitot egy .out-of-tree.toml fájl ír le, amely információkat ad meg a szükséges környezetről és (ha kizsákmányolásról van szó) a működés korlátozásáról bizonyos biztonsági csökkentések esetén.
Az eszközkészlet lehetővé teszi a biztonsági rés által érintett adott kernelverziók azonosítását is (a --guess paranccsal), és egy adott véglegesítés bináris keresésének egyszerűsítésére is használható.
Az alábbiakban a 0.2-es verzió óta végrehajtott változások listája látható.
Hozzáadta
-
Megvalósította a generált (out-of-tree kernel autogen) kernelek számának korlátozását (az .out-of-tree.toml leírása alapján) és az ellenőrzési futtatásokat (out-of-tree pew) a —max= használatával X paraméter.
-
Új genall parancs, amely lehetővé teszi az összes kernel létrehozását egy adott terjesztéshez és verzióhoz.
-
Az összes napló most az sqlite3 adatbázisban van tárolva. Megvalósított parancsok egyszerű, gyakran szükséges lekérdezésekhez, valamint adatok exportálásához json-ba és markdown-ba.
-
Megvalósított számítás a sikeres működés valószínűségére (korábbi indítások alapján).
-
Lehetőség az összeállítási eredmények mentésére (új --dist paraméter a fán kívüli pew parancshoz)
-
Támogatás a gazdagépre telepített kernelek metaadatainak generálásához, valamint közvetlenül a gazdagépre való építéshez.
-
Harmadik fél kerneleinek támogatása.
-
A fán kívüli hibakeresési környezet mostantól automatikusan megkeresi a hibakeresési szimbólumokat a gazdagépen.
-
Hozzáadtuk a biztonsági csökkentések kezelésének lehetőségét a KASLR, SMEP, SMAP és KPTI engedélyezési/letiltási jelzőkkel a hibakeresés során.
-
Hozzáadtuk a --threads=N paramétert az out-of-tree pew testing parancshoz, amellyel megadható a szálak száma, amelyekben exploitokat és kernelmodulokat kell felépíteni/futtatni és tesztelni.
-
Lehetőség van olyan címke beállítására, amely rögzítésre kerül a naplóban, majd statisztikák kiszámításához használható.
-
Hozzáadtuk a kernelverzió megadásának lehetőségét reguláris kifejezések használata nélkül.
-
Új csomag parancs, amely az alkönyvtárak exploitjainak és kernelmoduljainak tömeges tesztelésére szolgál.
-
Az exploit és a kernel modul konfigurációjában (.out-of-tree.toml) hozzáadták a KASLR, SMEP, SMAP és KPTI letiltásának lehetőségét, valamint megadták a szükséges magok és memóriaszámot.
-
Most a képek (rootf) automatikusan betöltődnek, miközben a kernel autogen fut. bootstrap már nincs szükség.
-
CentOS kernelek támogatása.
változások
-
Most, ha nincs kép (rootf) a terjesztés szükséges verziójához, az out-of-tree megpróbálja a legközelebbi verzió képét használni. Például az Ubuntu 18.04 kép az Ubuntu 18.10-hez.
-
Mostantól a kernelmodulok tesztjei nem számítanak hibának, ha hiányoznak (nincs teszt – nincs hiba!).
-
Most az out-of-tree negatív hibakódot ad vissza, ha valamelyik magon legalább az egyik szakasz (a felépítés, az indítás vagy a tesztelés) meghiúsult.
-
A projekt áttért a Go modulok használatára, most a GO111MODULE=on építést részesítjük előnyben.
-
Hozzáadott alapértelmezett tesztek.
-
A Test.sh mostantól alapértelmezés szerint használatos, ha a ${TARGET}_test összeállítás nincs implementálva a Makefile-ban.
-
A kernelnapló többé nem törlődik egy kernelmodul vagy exploit futtatása előtt. Egyes exploitok a dmesg rendszermag-alapszivárgását használják a KASLR megkerülésére, így a tisztítás megtörheti a kizsákmányolt logikát.
-
A qemu/kvm mostantól a gazdagép processzor összes képességét használja.
Eltávolítva
-
Kernel Factory teljesen eltávolítva a fokozatosan frissített Docker-fájlokon alapuló kernelgenerálás megvalósítása miatt.
-
A bootstrap nem csinál mást. A parancs a következő kiadásban törlődik.
Javítva
-
MacOS rendszeren a GNU coreutils futtatásához már nincs szükség.
-
Az ideiglenes fájlok átkerültek a ~/.out-of-tree/tmp/ mappába, mert egyes rendszereken a docker belsejében történt csatolási hiba.
Forrás: linux.org.ru