out-of-tree v1.0.0 - alati za razvoj i testiranje exploita i modula Linux kernela


out-of-tree v1.0.0 - alati za razvoj i testiranje exploita i modula Linux kernela

Objavljena je prva (v1.0.0) verzija out-of-tree alata za razvoj i testiranje exploita i modula jezgre Linuxa.

out-of-tree vam omogućuje automatiziranje nekih rutinskih radnji za stvaranje okruženja za otklanjanje pogrešaka modula jezgre i eksploatacija, generiranje statistike pouzdanosti eksploatacije, a također pruža mogućnost jednostavne integracije u CI (Continuous Integration).

Svaki modul jezgre ili iskorištavanje opisano je datotekom .out-of-tree.toml, koja navodi informacije o potrebnom okruženju i (ako se radi o iskorištavanju) ograničenjima rada u prisutnosti određenih sigurnosnih mjera.

Skup alata također vam omogućuje da identificirate određene verzije kernela zahvaćene ranjivošću (koristeći naredbu --guess), a također se može koristiti za pojednostavljenje binarnih pretraga za određeni commit.

Ispod je popis promjena od verzije v0.2.

dodano

  • Implementirana je mogućnost ograničavanja broja generiranih (autogen kernela izvan stabla) kernela (na temelju opisa u .out-of-tree.toml) i provjera pokretanja (klupa izvan stabla) pomoću —max= X parametar.

  • Nova naredba genall, koja vam omogućuje generiranje svih kernela za određenu distribuciju i verziju.

  • Svi zapisnici sada su pohranjeni u sqlite3 bazi podataka. Implementirane naredbe za jednostavne često potrebne upite, kao i izvoz podataka u json i markdown.

  • Implementiran izračun vjerojatnosti uspješnog rada (na temelju prethodnih lansiranja).

  • Mogućnost spremanja rezultata izgradnje (novi --dist parametar za naredbu izvan stabla)

  • Podrška za generiranje metapodataka za kernele instalirane na glavnom sustavu, kao i za izgradnju izravno na glavnom računalu.

  • Podrška za kernele trećih strana.

  • Okruženje za otklanjanje pogrešaka izvan stabla sada automatski traži simbole za otklanjanje pogrešaka na glavnom sustavu.

  • Dodana je mogućnost upravljanja sigurnosnim ublažavanjima s oznakama za uključivanje/isključivanje KASLR, SMEP, SMAP i KPTI tijekom uklanjanja pogrešaka.

  • Dodan je parametar --threads=N naredbi za testiranje izvan stabla, koja se može koristiti za određivanje broja niti u kojima će se graditi/pokretati i testirati eksploatacije i moduli kernela.

  • Mogućnost postavljanja oznake koja će biti zabilježena u dnevniku i zatim se može koristiti za izračun statistike.

  • Dodana je mogućnost određivanja verzije kernela bez korištenja regularnih izraza.

  • Nova naredba za pakiranje, koja se koristi za masovno testiranje eksploatacija i modula kernela u poddirektorijima.

  • U konfiguraciji (.out-of-tree.toml) za exploit i kernel modul dodana je mogućnost onemogućavanja KASLR, SMEP, SMAP i KPTI, kao i određivanje potrebnog broja jezgri i memorije.

  • Sada se slike (rootfs) učitavaju automatski dok je kernel autogen pokrenut. bootstrap više nije potreban.

  • Podrška za CentOS kernele.

promjene

  • Sada, ako ne postoji slika (rootfs) za traženu verziju distribucije, izvan stabla će pokušati koristiti sliku najbliže verzije. Na primjer, slika Ubuntu 18.04 za Ubuntu 18.10.

  • Sada se testovi za module jezgre neće smatrati pogreškama ako nedostaju (bez testova - nema grešaka!).

  • Sada će out-of-tree vratiti negativni kod pogreške ako barem jedna faza (izgradnja, pokretanje ili testiranje) na bilo kojoj od jezgri nije uspjela.

  • Projekt je prešao na korištenje Go modula, sada se preferira izrada s GO111MODULE=on.

  • Dodani zadani testovi.

  • Test.sh sada će se koristiti prema zadanim postavkama ako sklop u ${TARGET}_test nije implementiran u Makefile.

  • Dnevnik kernela više se ne briše prije pokretanja modula kernela ili iskorištavanja. Neki od iskorištavanja koriste curenje baze kernela u dmesg-u za zaobilaženje KASLR-a, tako da čišćenje može pokvariti implementiranu logiku iskorištavanja.

  • qemu/kvm sada koristi sve mogućnosti glavnog procesora.

Uklonjeno

  • Tvornica kernela potpuno uklonjeno zbog implementacije generiranja kernela temeljenog na postupno ažuriranim Docker datotekama.

  • bootstrap ne radi ništa drugo. Naredba će biti uklonjena u sljedećem izdanju.

Ispravljeno

  • Na macOS-u GNU coreutils više nije potreban za rad.

  • Privremene datoteke premještene su u ~/.out-of-tree/tmp/ zbog grešaka u montiranju unutar dockera na nekim sustavima.

Izvor: linux.org.ru

Dodajte komentar