Den første (v1.0.0) version af out-of-tree, et værktøjssæt til at udvikle og teste exploits og Linux-kernemoduler, blev frigivet.
Out-of-tree giver dig mulighed for at automatisere nogle rutinehandlinger for at skabe miljøer til fejlfinding af kernemoduler og udnyttelser, generere udnyttelsespålidelighedsstatistikker og giver også mulighed for nemt at integrere i CI (Continuous Integration).
Hvert kernemodul eller udnyttelse er beskrevet af en fil .out-of-tree.toml, som specificerer information om det påkrævede miljø og (hvis det er en udnyttelse) restriktioner for drift i nærvær af visse sikkerhedsbegrænsninger.
Værktøjssættet giver dig også mulighed for at identificere specifikke kerneversioner, der er påvirket af en sårbarhed (ved hjælp af kommandoen --guess), og kan også bruges til at forenkle binære søgninger efter en specifik commit.
Nedenfor er en liste over ændringer siden version v0.2.
Добавлено
-
Implementeret muligheden for at begrænse antallet af genererede (out-of-tree kernel autogen) kerner (baseret på beskrivelsen i .out-of-tree.toml) og kontrollere kørsler (out-of-tree stolen) ved hjælp af —max= X parameter.
-
Ny genall kommando, som giver dig mulighed for at generere alle kerner til en specifik distribution og version.
-
Alle logfiler er nu gemt i sqlite3-databasen. Implementerede kommandoer til simple hyppigt nødvendige forespørgsler, samt eksport af data til json og markdown.
-
Implementeret beregning af sandsynligheden for vellykket drift (baseret på tidligere lanceringer).
-
Mulighed for at gemme byggeresultater (ny --dist parameter for out-of-tree pew kommando)
-
Understøttelse af generering af metadata til kerner installeret på værtssystemet, samt bygning direkte på værten.
-
Understøttelse af tredjepartskerner.
-
Debug-miljøet uden for træet søger nu automatisk efter fejlfindingssymboler på værtssystemet.
-
Tilføjet muligheden for at administrere sikkerhedsreduktioner med aktivere/deaktivere flag KASLR, SMEP, SMAP og KPTI under fejlretning.
-
Tilføjede --threads=N parameteren til out-of-tree pew-testkommandoen, som kan bruges til at specificere antallet af tråde, hvori der skal bygges/køres og teste exploits og kernemoduler.
-
Muligheden for at indstille et tag, der vil blive registreret i loggen og derefter kan bruges til at beregne statistik.
-
Tilføjet muligheden for at angive kerneversionen uden at bruge regulære udtryk.
-
Ny pack-kommando, brugt til massetest af exploits og kernemoduler i undermapper.
-
I konfigurationen (.out-of-tree.toml) for exploit- og kernemodulet er muligheden for at deaktivere KASLR, SMEP, SMAP og KPTI blevet tilføjet, samt angive det nødvendige antal kerner og hukommelse.
-
Nu indlæses billeder (rootfs) automatisk, mens kernel autogen kører. bootstrap er ikke længere nødvendig.
-
Understøttelse af CentOS-kerner.
ændringer
-
Nu, hvis der ikke er noget billede (rootfs) for den påkrævede version af distributionen, vil out-of-tree forsøge at bruge billedet af den nærmeste version. For eksempel Ubuntu 18.04-billede til Ubuntu 18.10.
-
Nu vil test for kernemoduler ikke blive betragtet som fejl, hvis de mangler (ingen test - ingen fejl!).
-
Nu vil out-of-tree returnere en negativ fejlkode, hvis mindst et trin (build, launch eller test) på en af kernerne mislykkedes.
-
Projektet er gået over til at bruge Go-moduler, bygning med GO111MODULE=on foretrækkes nu.
-
Tilføjet standardtests.
-
Test.sh vil nu blive brugt som standard, hvis samlingen i ${TARGET}_test ikke er implementeret i Makefilen.
-
Kerneloggen ryddes ikke længere, før et kernemodul køres eller udnyttes. Nogle af udnyttelserne bruger et kernebaselæk i dmesg til at omgå KASLR, så oprydning kan bryde udnyttelsens implementerede logik.
-
qemu/kvm bruger nu alle værtsprocessorens muligheder.
slettet
-
Kernelfabrik fuldstændig fjernet på grund af implementeringen af kernegenerering baseret på trinvist opdaterede Dockerfiler.
-
bootstrap gør ikke andet. Kommandoen vil blive fjernet i næste udgivelse.
Rettet
-
På macOS er GNU coreutils ikke længere påkrævet for at køre.
-
Midlertidige filer er blevet flyttet til ~/.out-of-tree/tmp/ på grund af monteringsfejl inde i docker på nogle systemer.
Kilde: linux.org.ru