Den första (v1.0.0) versionen av out-of-tree, en verktygslåda för att utveckla och testa exploits och Linux-kärnmoduler, släpptes.
Out-of-tree låter dig automatisera vissa rutinåtgärder för att skapa miljöer för felsökning av kärnmoduler och exploateringar, generering av exploateringstillförlitlighetsstatistik och ger även möjligheten att enkelt integrera i CI (Continuous Integration).
Varje kärnmodul eller exploatering beskrivs av filen .out-of-tree.toml, som specificerar information om den nödvändiga miljön och (om det är en exploatering) begränsningar för driften i närvaro av vissa säkerhetsbegränsningar.
Verktygslådan låter dig också identifiera specifika kärnversioner som påverkas av en sårbarhet (med kommandot --guess), och kan också användas för att förenkla binära sökningar för en specifik commit.
Nedan är en lista över ändringar sedan version v0.2.
Inkom
-
Implementerade möjligheten att begränsa antalet genererade (out-of-tree kernel autogen) kärnor (baserat på beskrivningen i .out-of-tree.toml) och kontrollera körningar (out-of-tree pew) med hjälp av —max= X-parameter.
-
Nytt genall-kommando, som låter dig generera alla kärnor för en specifik distribution och version.
-
Alla loggar lagras nu i sqlite3-databasen. Implementerade kommandon för enkla frågor som ofta behövs, samt export av data till json och markdown.
-
Implementerad beräkning av sannolikheten för framgångsrik drift (baserat på tidigare lanseringar).
-
Möjlighet att spara byggresultat (ny --dist-parameter för out-of-tree pew-kommando)
-
Stöd för att generera metadata för kärnor installerade på värdsystemet, samt att bygga direkt på värden.
-
Stöd för tredjepartskärnor.
-
Felsökningsmiljön utanför trädet söker nu automatiskt efter felsökningssymboler på värdsystemet.
-
Lade till möjligheten att hantera säkerhetsbegränsningar med aktivera/inaktivera flaggor KASLR, SMEP, SMAP och KPTI under felsökning.
-
Lade till parametern --threads=N till kommandot out-of-tree pew testing, som kan användas för att specificera antalet trådar i vilka man ska bygga/köra och testa exploits och kärnmoduler.
-
Möjligheten att ställa in en tagg som kommer att registreras i loggen och sedan kan användas för att beräkna statistik.
-
Lade till möjligheten att specificera kärnversionen utan att använda reguljära uttryck.
-
Nytt pack-kommando, används för masstestning av exploateringar och kärnmoduler i underkataloger.
-
I konfigurationen (.out-of-tree.toml) för exploaterings- och kärnmodulen har möjligheten att inaktivera KASLR, SMEP, SMAP och KPTI lagts till, samt specificera det antal kärnor och minne som krävs.
-
Nu laddas bilder (rootfs) automatiskt medan kernel autogen körs. bootstrap behövs inte längre.
-
Stöd för CentOS-kärnor.
Förändringar
-
Nu, om det inte finns någon bild (rootfs) för den version som krävs av distributionen, kommer out-of-tree att försöka använda bilden av den närmaste versionen. Till exempel, Ubuntu 18.04-bild för Ubuntu 18.10.
-
Nu kommer tester för kärnmoduler inte att betraktas som misslyckanden om de saknas (inga tester - inga fel!).
-
Nu kommer out-of-tree att returnera en negativ felkod om minst ett steg (bygg, lansering eller test) på någon av kärnorna misslyckades.
-
Projektet har gått över till att använda Go-moduler, att bygga med GO111MODULE=on är nu att föredra.
-
Lade till standardtester.
-
Test.sh kommer nu att användas som standard om sammansättningen i ${TARGET}_test inte är implementerad i Makefilen.
-
Kärnloggen rensas inte längre innan en kärnmodul eller exploatering körs. Vissa av utnyttjandena använder en kärnbasläcka i dmesg för att kringgå KASLR, så rensning kan bryta utnyttjandets implementerade logik.
-
qemu/kvm använder nu alla funktioner hos värdprocessorn.
Tog bort
-
Kärnfabrik helt borttagen på grund av implementeringen av kärngenerering baserad på stegvis uppdaterade Dockerfiler.
-
bootstrap gör inget annat. Kommandot kommer att tas bort i nästa version.
Rättad
-
På macOS krävs inte längre GNU-coreutils för att köras.
-
Tillfälliga filer har flyttats till ~/.out-of-tree/tmp/ på grund av monteringsfel i docker på vissa system.
Källa: linux.org.ru