Den første (v1.0.0) versjonen av out-of-tree, et verktøysett for utvikling og testing av utnyttelser og Linux-kjernemoduler, ble utgitt.
Out-of-tree lar deg automatisere noen rutinemessige handlinger for å lage miljøer for feilsøking av kjernemoduler og utnyttelser, generere utnyttelsespålitelighetsstatistikk, og gir også muligheten til enkelt å integrere i CI (Continuous Integration).
Hver kjernemodul eller utnyttelse er beskrevet av en fil .out-of-tree.toml, som spesifiserer informasjon om det nødvendige miljøet og (hvis det er en utnyttelse) restriksjoner på drift i nærvær av visse sikkerhetsbegrensninger.
Verktøysettet lar deg også identifisere spesifikke kjerneversjoner som er påvirket av en sårbarhet (ved å bruke --guess-kommandoen), og kan også brukes til å forenkle binære søk etter en spesifikk commit.
Nedenfor er en liste over endringer siden versjon 0.2.
Lagt
-
Implementerte muligheten til å begrense antall genererte (out-of-tree kjerne autogen) kjerner (basert på beskrivelsen i .out-of-tree.toml) og sjekke kjøringer (out-of-tree pew) ved å bruke —max= X-parameter.
-
Ny genall-kommando, som lar deg generere alle kjerner for en spesifikk distribusjon og versjon.
-
Alle logger er nå lagret i sqlite3-databasen. Implementerte kommandoer for enkle ofte nødvendige spørringer, samt eksport av data til json og markdown.
-
Implementert beregning av sannsynligheten for vellykket drift (basert på tidligere lanseringer).
-
Evne til å lagre byggeresultater (ny --dist-parameter for pew-kommando utenfor treet)
-
Støtte for å generere metadata for kjerner installert på vertssystemet, samt bygge direkte på verten.
-
Støtte for tredjepartskjerner.
-
Feilsøkingsmiljøet utenfor treet søker nå automatisk etter feilsøkingssymboler på vertssystemet.
-
Lagt til muligheten til å administrere sikkerhetsreduksjoner med aktiver/deaktiver flagg KASLR, SMEP, SMAP og KPTI under feilsøking.
-
Lagt til --threads=N-parameteren til pew-testkommandoen utenfor treet, som kan brukes til å spesifisere antall tråder for å bygge/kjøre og teste utnyttelser og kjernemoduler.
-
Muligheten til å sette en tagg som vil bli registrert i loggen og kan deretter brukes til å beregne statistikk.
-
Lagt til muligheten til å spesifisere kjerneversjonen uten å bruke regulære uttrykk.
-
Ny pakkekommando, brukt til massetesting av utnyttelser og kjernemoduler i underkataloger.
-
I konfigurasjonen (.out-of-tree.toml) for utnyttelses- og kjernemodulen er muligheten til å deaktivere KASLR, SMEP, SMAP og KPTI lagt til, samt spesifisere nødvendig antall kjerner og minne.
-
Nå lastes bilder (rootfs) automatisk mens kjerneautogen kjører. bootstrap er ikke lenger nødvendig.
-
Støtte for CentOS-kjerner.
endringer
-
Nå, hvis det ikke er noe bilde (rootfs) for den nødvendige versjonen av distribusjonen, vil out-of-tree prøve å bruke bildet av den nærmeste versjonen. For eksempel, Ubuntu 18.04-bilde for Ubuntu 18.10.
-
Nå vil ikke tester for kjernemoduler betraktes som feil hvis de mangler (ingen tester - ingen feil!).
-
Nå vil out-of-tree returnere en negativ feilkode hvis minst ett trinn (bygg, lansering eller test) på noen av kjernene mislyktes.
-
Prosjektet har gått over til å bruke Go-moduler, bygging med GO111MODULE=on er nå foretrukket.
-
Lagt til standardtester.
-
Test.sh vil nå bli brukt som standard hvis sammenstillingen i ${TARGET}_test ikke er implementert i Makefilen.
-
Kjerneloggen tømmes ikke lenger før en kjernemodul kjøres eller utnyttes. Noen av utnyttelsene bruker en kjernebaselekkasje i dmesg for å omgå KASLR, så opprydding kan bryte utnyttelsens implementerte logikk.
-
qemu/kvm bruker nå alle egenskapene til vertsprosessoren.
slettet
-
Kjernefabrikk fullstendig fjernet på grunn av implementeringen av kjernegenerering basert på trinnvis oppdaterte Dockerfiler.
-
bootstrap gjør ikke noe annet. Kommandoen vil bli fjernet i neste utgivelse.
Rettet opp
-
På macOS er det ikke lenger nødvendig å kjøre GNU-coreutils.
-
Midlertidige filer har blitt flyttet til ~/.out-of-tree/tmp/ på grunn av monteringsfeil inne i docker på enkelte systemer.
Kilde: linux.org.ru