out-of-tree v1.0.0 - työkalut hyväksikäytön ja Linux-ydinmoduulien kehittämiseen ja testaamiseen


out-of-tree v1.0.0 - työkalut hyväksikäytön ja Linux-ydinmoduulien kehittämiseen ja testaamiseen

Ensimmäinen (v1.0.0) versio out-of-treestä, joka on työkalupakki hyväksikäyttöjen ja Linux-ydinmoduulien kehittämiseen ja testaamiseen, julkaistiin.

out-of-tree mahdollistaa joidenkin rutiinitoimintojen automatisoinnin ympäristöjen luomiseksi ytimen moduulien ja hyväksikäyttöjen virheenkorjausta varten, hyödyntämisen luotettavuustilastojen luomiseksi, ja tarjoaa myös mahdollisuuden integroida helposti CI:hen (Continuous Integration).

Jokainen ydinmoduuli tai hyväksikäyttö kuvataan tiedostolla .out-of-tree.toml, joka määrittelee tiedot vaaditusta ympäristöstä ja (jos se on hyväksikäyttö) toiminnan rajoituksista tiettyjen suojauskevennysten yhteydessä.

Työkalupakin avulla voit myös tunnistaa haavoittuvuuden aiheuttamat tietyt ydinversiot (käyttäen --guess-komentoa), ja sitä voidaan myös käyttää yksinkertaistamaan tietyn toimituksen binaarihakuja.

Alla on luettelo muutoksista version 0.2 jälkeen.

Добавлено

  • Otettu käyttöön kyky rajoittaa luotujen (out-of-tree kernel autogen) ytimien määrää (perustuu kuvaukseen tiedostossa .out-of-tree.toml) ja tarkistusajoja (out-of-tree pew) käyttämällä —max= X-parametri.

  • Uusi genall-komento, jonka avulla voit luoda kaikki ytimet tietylle jakelulle ja versiolle.

  • Kaikki lokit on nyt tallennettu sqlite3-tietokantaan. Toteutetut komennot yksinkertaisiin usein tarvittaviin kyselyihin sekä tietojen viemiseen jsoniin ja markdowniin.

  • Toteutettu laskelma onnistuneen toiminnan todennäköisyydestä (perustuu aikaisempien laukaisujen perusteella).

  • Mahdollisuus tallentaa koontituloksia (uusi --dist-parametri puun ulkopuoliselle pew-komennolle)

  • Tuki isäntäjärjestelmään asennettujen ytimien metatietojen luomiseen sekä suoraan isäntäkoneelle rakentamiseen.

  • Tuki kolmannen osapuolen ytimille.

  • Puun ulkopuolinen virheenkorjausympäristö etsii nyt automaattisesti virheenkorjaussymboleja isäntäjärjestelmästä.

  • Lisätty kyky hallita suojauskevennyksiä KASLR-, SMEP-, SMAP- ja KPTI-aktivointi-/pois-lippujen avulla virheenkorjauksen aikana.

  • Lisättiin parametri --threads=N out-of-tree pew testing -komentoon, jota voidaan käyttää määrittämään säikeiden lukumäärän, joissa rakennetaan/ajetaan ja testataan exploitteja ja ydinmoduuleja.

  • Mahdollisuus asettaa tunniste, joka tallennetaan lokiin ja jota voidaan sitten käyttää tilastojen laskemiseen.

  • Lisätty mahdollisuus määrittää ytimen versio ilman säännöllisiä lausekkeita.

  • Uusi pakettikomento, jota käytetään hyväksikäytön ja ydinmoduulien massatestaukseen alihakemistoissa.

  • Exploit- ja ydinmoduulin kokoonpanoon (.out-of-tree.toml) on lisätty mahdollisuus poistaa käytöstä KASLR, SMEP, SMAP ja KPTI sekä määrittää tarvittava määrä ytimiä ja muistia.

  • Nyt kuvat (rootf) ladataan automaattisesti, kun kernel autogen on käynnissä. bootstrapia ei enää tarvita.

  • Tuki CentOS-ytimille.

muutokset

  • Jos nyt ei ole kuvaa (rootfs) vaaditulle jakeluversiolle, out-of-tree yrittää käyttää lähimmän version kuvaa. Esimerkiksi Ubuntu 18.04 -kuva Ubuntu 18.10:lle.

  • Nyt ytimen moduulien testejä ei pidetä epäonnistumisina, jos ne puuttuvat (ei testejä - ei virheitä!).

  • Nyt out-of-tree palauttaa negatiivisen virhekoodin, jos vähintään yksi vaihe (koonti, käynnistys tai testaus) jossakin ytimessä epäonnistui.

  • Projekti on siirtynyt käyttämään Go-moduuleja, joten rakentaminen GO111MODULE=on:lla on nyt parempi.

  • Lisätty oletustestit.

  • Test.sh:ta käytetään nyt oletuksena, jos ${TARGET}_testin kokoonpanoa ei ole toteutettu Makefile-tiedostossa.

  • Ytimen lokia ei enää tyhjennetä ennen ydinmoduulin suorittamista tai hyväksikäyttöä. Jotkut hyväksikäytöt käyttävät ytimen perusvuotoa dmesgissä ohittaakseen KASLR:n, joten puhdistus voi rikkoa hyväksikäytön toteutetun logiikan.

  • qemu/kvm käyttää nyt kaikkia isäntäprosessorin ominaisuuksia.

Poistettu

  • Ytimen tehdas poistettu kokonaan, koska ytimen sukupolvi on toteutettu asteittain päivitettyjen Docker-tiedostojen perusteella.

  • bootstrap ei tee mitään muuta. Komento poistetaan seuraavassa julkaisussa.

Korjattu

  • MacOS:ssa GNU coreutilsia ei enää vaadita toimimaan.

  • Väliaikaiset tiedostot on siirretty kansioon ~/.out-of-tree/tmp/ joidenkin järjestelmien telakointiaseman sisällä tapahtuneiden asennusvirheiden vuoksi.

Lähde: linux.org.ru

Lisää kommentti