out-of-tree v1.0.0 - verktyg för att utveckla och testa exploits och Linux-kärnmoduler


out-of-tree v1.0.0 - verktyg för att utveckla och testa exploits och Linux-kärnmoduler

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

Lägg en kommentar