out-of-tree v1.0.0 – tööriistad exploitide ja Linuxi kerneli moodulite arendamiseks ja testimiseks


out-of-tree v1.0.0 – tööriistad exploitide ja Linuxi kerneli moodulite arendamiseks ja testimiseks

Välja lasti esimene (v1.0.0) versioon out-of-tree'st, tööriistakomplektist exploitide ja Linuxi kerneli moodulite arendamiseks ja testimiseks.

out-of-tree võimaldab automatiseerida mõningaid rutiinseid toiminguid, et luua keskkondi kerneli moodulite ja ärakasutamiste silumiseks, ekspluatatsiooni usaldusväärsuse statistika genereerimiseks ning võimaldab hõlpsasti integreeruda CI-sse (Continuous Integration).

Iga kerneli moodulit või ärakasutamist kirjeldab fail .out-of-tree.toml, mis määrab teabe nõutava keskkonna ja (kui see on ärakasutamine) piirangud teatud turvameetmete olemasolul.

Tööriistakomplekt võimaldab teil tuvastada ka konkreetseid haavatavusest mõjutatud kerneli versioone (kasutades käsku --guess) ja seda saab kasutada ka konkreetse sissekande binaarsete otsingute lihtsustamiseks.

Allpool on alates versioonist v0.2 tehtud muudatuste loend.

Lisatud

  • Rakendatud on võimalus piirata genereeritud (puuväliste kerneli autogeenide) tuumade arvu (põhineb failis .out-of-tree.toml kirjeldusel) ja kontrollkäibeid (puust väljas) kasutades —max= X parameeter.

  • Uus genall käsk, mis võimaldab luua kõik tuumad konkreetse distributsiooni ja versiooni jaoks.

  • Kõik logid on nüüd salvestatud sqlite3 andmebaasi. Rakendatud käsud lihtsate sageli vajalike päringute jaoks, samuti andmete eksportimiseks json-i ja markdowni.

  • Rakendatud eduka toimimise tõenäosuse arvutus (eelmiste käivitamiste põhjal).

  • Võimalus salvestada ehitustulemusi (uus parameeter --dist puuvälise pew käsu jaoks)

  • Tugi nii hostsüsteemi installitud tuumade metaandmete genereerimiseks kui ka otse hostile ehitamiseks.

  • Kolmanda osapoole tuumade tugi.

  • Puuväline silumiskeskkond otsib nüüd automaatselt hostsüsteemist silumissümboleid.

  • Lisati võimalus silumise ajal hallata turvalisuse leevendusi lubamis-/keelamislippudega KASLR, SMEP, SMAP ja KPTI.

  • Lisati puuvälise pew testimise käsule parameeter --threads=N, mille abil saab määrata lõimede arvu, milles ehitada/käivitada ja testida plokke ja kerneli mooduleid.

  • Võimalus määrata silt, mis salvestatakse logisse ja mida saab seejärel kasutada statistika arvutamiseks.

  • Lisati võimalus määrata kerneli versioon ilma regulaaravaldisi kasutamata.

  • Uus paketikäsk, mida kasutatakse alamkataloogides olevate exploitide ja kerneli moodulite masstestimiseks.

  • Exploit- ja kerneli mooduli konfiguratsioonis (.out-of-tree.toml) on lisatud võimalus keelata KASLR, SMEP, SMAP ja KPTI, samuti määrata vajalik arv südamikke ja mälu.

  • Nüüd laaditakse pildid (rootf) automaatselt, kui kerneli autogen töötab. bootstrapi pole enam vaja.

  • CentOS-i tuumade tugi.

Muutused

  • Nüüd, kui distributsiooni vajaliku versiooni jaoks pole pilti (rootfs), proovib out-of-tree kasutada lähima versiooni pilti. Näiteks Ubuntu 18.04 pilt Ubuntu 18.10 jaoks.

  • Nüüd ei peeta kerneli moodulite teste ebaõnnestunuks, kui need puuduvad (pole teste – pole vigu!).

  • Nüüd tagastab puust väljas negatiivse veakoodi, kui vähemalt üks etapp (ehitamine, käivitamine või testimine) mõnes tuumas ebaõnnestus.

  • Projekt on üle läinud Go moodulite kasutamisele, nüüd on eelistatud GO111MODULE=on ehitamine.

  • Lisatud vaiketestid.

  • Kui failis ${TARGET}_test ei ole Makefile'is juurutatud, kasutatakse nüüd vaikimisi faili Test.sh.

  • Kerneli logi ei tühjendata enam enne tuumamooduli või exploiti käivitamist. Mõned äkilised toimingud kasutavad KASLR-ist mööda hiilimiseks dmesg-is kerneli baasi leket, nii et puhastamine võib rikkuda ärakasutatud loogika.

  • qemu/kvm kasutab nüüd kõiki hostprotsessori võimalusi.

Eemaldatud

  • Kerneli tehas täielikult eemaldatud järk-järgult värskendatud Docker-failidel põhineva kerneli genereerimise rakendamise tõttu.

  • bootstrap ei tee midagi muud. Käsk eemaldatakse järgmises versioonis.

Parandatud

  • MacOS-is ei ole GNU coreutils enam töötamiseks vajalik.

  • Ajutised failid on teisaldatud kausta ~/.out-of-tree/tmp/, kuna mõnede süsteemide dokkeri sees on paigaldusvigu.

Allikas: linux.org.ru

Lisa kommentaar