out-of-tree v1.0.0 - instrumente pentru dezvoltarea și testarea exploit-urilor și modulelor kernel-ului Linux


out-of-tree v1.0.0 - instrumente pentru dezvoltarea și testarea exploit-urilor și modulelor kernel-ului Linux

Prima versiune (v1.0.0) a out-of-tree, un set de instrumente pentru dezvoltarea și testarea exploit-urilor și modulelor kernel-ului Linux, a fost lansată.

out-of-tree vă permite să automatizați unele acțiuni de rutină pentru a crea medii pentru depanarea modulelor și exploit-urilor kernelului, generând statistici de fiabilitate a exploatării și oferă, de asemenea, posibilitatea de a integra cu ușurință în CI (integrare continuă).

Fiecare modul kernel sau exploit este descris de un fișier .out-of-tree.toml, care specifică informații despre mediul necesar și (dacă este un exploit) restricții de funcționare în prezența anumitor atenuări de securitate.

Setul de instrumente vă permite, de asemenea, să identificați versiuni specifice de kernel afectate de o vulnerabilitate (folosind comanda --guess) și poate fi, de asemenea, utilizat pentru a simplifica căutările binare pentru un anumit commit.

Mai jos este o listă de modificări de la versiunea v0.2.

adăugat

  • S-a implementat capacitatea de a limita numărul de nuclee generate (în afara arborelui kernel autogen) (pe baza descrierii din .out-of-tree.toml) și de a verifica rulări (în afara arborelui pew) folosind —max= parametrul X.

  • Noua comandă genall, care vă permite să generați toate nucleele pentru o anumită distribuție și versiune.

  • Toate jurnalele sunt acum stocate în baza de date sqlite3. S-au implementat comenzi pentru interogări simple necesare frecvent, precum și pentru exportul datelor în json și markdown.

  • Calculul implementat al probabilității de funcționare cu succes (pe baza lansărilor anterioare).

  • Abilitatea de a salva rezultatele construcției (noul parametru --dist pentru comanda pew out-of-tree)

  • Suport pentru generarea de metadate pentru nucleele instalate pe sistemul gazdă, precum și construirea direct pe gazdă.

  • Suport pentru nuclee terțe.

  • Mediul de depanare în afara arborelui caută acum automat simboluri de depanare pe sistemul gazdă.

  • S-a adăugat capacitatea de a gestiona atenuările de securitate cu semnalizatoarele de activare/dezactivare KASLR, SMEP, SMAP și KPTI în timpul depanării.

  • S-a adăugat parametrul --threads=N la comanda de testare pew out-of-tree, care poate fi folosită pentru a specifica numărul de fire în care să construiți/rulați și să testați exploit-urile și modulele kernelului.

  • Posibilitatea de a seta o etichetă care va fi înregistrată în jurnal și poate fi apoi utilizată pentru a calcula statistici.

  • S-a adăugat posibilitatea de a specifica versiunea kernelului fără a utiliza expresii regulate.

  • Noua comandă pachet, utilizată pentru testarea în masă a exploit-urilor și a modulelor kernelului din subdirectoare.

  • În configurația (.out-of-tree.toml) pentru modulul exploit și kernel, a fost adăugată capacitatea de a dezactiva KASLR, SMEP, SMAP și KPTI, precum și de a specifica numărul necesar de nuclee și memorie.

  • Acum imaginile (rootfs) sunt încărcate automat în timp ce kernel autogen rulează. bootstrap nu mai este necesar.

  • Suport pentru nucleele CentOS.

schimbări

  • Acum, dacă nu există nicio imagine (rootfs) pentru versiunea necesară a distribuției, out-of-tree va încerca să folosească imaginea celei mai apropiate versiuni. De exemplu, imaginea Ubuntu 18.04 pentru Ubuntu 18.10.

  • Acum testele pentru modulele kernel nu vor fi considerate eșecuri dacă lipsesc (fără teste - fără erori!).

  • Acum out-of-tree va returna un cod de eroare negativ dacă cel puțin o etapă (construire, lansare sau testare) pe oricare dintre nuclee a eșuat.

  • Proiectul a trecut la utilizarea modulelor Go, construirea cu GO111MODULE=on este acum preferată.

  • Au fost adăugate teste implicite.

  • Test.sh va fi folosit acum implicit dacă ansamblul din ${TARGET}_test nu este implementat în Makefile.

  • Jurnalul de kernel nu mai este șters înainte de a rula un modul de kernel sau de exploit. Unele dintre exploit-uri folosesc o scurgere de bază a nucleului în dmesg pentru a ocoli KASLR, astfel încât curățarea poate rupe logica implementată a exploit-ului.

  • qemu/kvm folosește acum toate capacitățile procesorului gazdă.

Îndepărtat

  • Fabrica de Kernel eliminat complet datorită implementării generării nucleului bazată pe fișierele Dockerfile actualizate progresiv.

  • bootstrap nu face altceva. Comanda va fi eliminată în următoarea ediție.

Corectat

  • Pe macOS, GNU coreutils nu mai este necesar pentru a rula.

  • Fișierele temporare au fost mutate în ~/.out-of-tree/tmp/ din cauza erorilor de montare în interiorul docker pe unele sisteme.

Sursa: linux.org.ru

Adauga un comentariu