out-of-tree v1.0.0 - verktøy for utvikling og testing av utnyttelser og Linux-kjernemoduler


out-of-tree v1.0.0 - verktøy for utvikling og testing av utnyttelser og Linux-kjernemoduler

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

Legg til en kommentar