out-of-tree v1.0.0 - alati za razvoj i testiranje exploit-a i Linux kernel modula


out-of-tree v1.0.0 - alati za razvoj i testiranje exploit-a i Linux kernel modula

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

out-of-tree vam omogućava da automatizujete neke rutinske radnje za kreiranje okruženja za otklanjanje grešaka u modulima kernela i eksploatacije, generisanje statistike o pouzdanosti eksploatacije, a takođe pruža mogućnost lake integracije u CI (kontinuirana integracija).

Svaki modul kernela ili eksploatacija opisana je datotekom .out-of-tree.toml, koja specificira informacije o potrebnom okruženju i (ako je eksploat) ograničenja za rad u prisustvu određenih sigurnosnih ublažavanja.

Komplet alata vam takođe omogućava da identifikujete specifične verzije kernela na koje utiče ranjivost (koristeći naredbu --guess), a takođe se može koristiti za pojednostavljenje binarnih pretraga za određeno urezivanje.

Ispod je lista promjena od verzije v0.2.

Dodano

  • Implementirana je mogućnost ograničavanja broja generiranih (autogena kernela van stabla) kernela (na osnovu opisa u .out-of-tree.toml) i provjeravanja (out-of-tree pew) pomoću —max= X parametar.

  • Nova naredba genall, koja vam omogućava da generišete sve kernele za određenu distribuciju i verziju.

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

  • Implementirano izračunavanje vjerovatnoće uspješnog rada (na osnovu prethodnih lansiranja).

  • Mogućnost spremanja rezultata izgradnje (novi --dist parametar za komandu pew van stabla)

  • Podrška za generisanje metapodataka za kernele instalirane na host sistemu, kao i izgradnju direktno na hostu.

  • Podrška za kernele treće strane.

  • Okruženje za otklanjanje grešaka izvan stabla sada automatski traži simbole za otklanjanje grešaka na host sistemu.

  • Dodata je mogućnost upravljanja sigurnosnim ublažavanjima uz omogućavanje/onemogućavanje zastavica KASLR, SMEP, SMAP i KPTI tokom otklanjanja grešaka.

  • Dodan parametar --threads=N naredbi za testiranje pew-a van stabla, koja se može koristiti za specificiranje broja niti u kojima će se izgraditi/pokrenuti i testirati eksploatacije i moduli kernela.

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

  • Dodata mogućnost specificiranja verzije kernela bez korištenja regularnih izraza.

  • Nova naredba pack, koja se koristi za masovno testiranje exploit-a i modula kernela u poddirektorijumima.

  • U konfiguraciji (.out-of-tree.toml) za exploit i kernel modul, dodata je mogućnost onemogućavanja KASLR, SMEP, SMAP i KPTI, kao i specificiranje potrebnog broja jezgara i memorije.

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

  • Podrška za CentOS kernele.

Promjene

  • Sada, ako ne postoji slika (rootfs) za potrebnu verziju distribucije, out-of-tree će pokušati koristiti sliku najbliže verzije. Na primjer, slika Ubuntu 18.04 za Ubuntu 18.10.

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

  • Sada će izvan stabla vratiti negativan kod greške ako barem jedna faza (izrada, pokretanje ili testiranje) na bilo kojoj od jezgara nije uspjela.

  • Projekat je prešao na korištenje Go modula, sada se preferira izgradnja sa GO111MODULE=on.

  • Dodati zadani testovi.

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

  • Dnevnik kernela se više ne briše prije pokretanja modula kernela ili eksploatacije. Neki od eksploatacija koriste curenje baze kernela u dmesg-u da zaobiđu KASLR, tako da čišćenje može narušiti implementiranu logiku eksploatacije.

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

Uklonjeno

  • Kernel Factory potpuno uklonjeno zbog implementacije generisanja kernela na osnovu postepeno ažuriranih Dockerfiles-a.

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

Ispravljeno

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

  • Privremeni fajlovi su premešteni u ~/.out-of-tree/tmp/ zbog grešaka pri montiranju unutar docker-a na nekim sistemima.

izvor: linux.org.ru

Dodajte komentar