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