out-of-tree v1.0.0: eines per desenvolupar i provar exploits i mòduls del nucli de Linux


out-of-tree v1.0.0: eines per desenvolupar i provar exploits i mòduls del nucli de Linux

Es va llançar la primera versió (v1.0.0) d'out-of-tree, un conjunt d'eines per desenvolupar i provar exploits i mòduls del nucli de Linux.

L'out-of-tree us permet automatitzar algunes accions rutinàries per crear entorns per depurar mòduls i exploits del nucli, generant estadístiques de fiabilitat d'explotacions i també ofereix la possibilitat d'integrar-vos fàcilment a CI (integració contínua).

Cada mòdul o explotació del nucli es descriu mitjançant un fitxer .out-of-tree.toml, que especifica informació sobre l'entorn requerit i (si és un exploit) restriccions d'operació en presència de certes mitigacions de seguretat.

El conjunt d'eines també us permet identificar versions específiques del nucli afectades per una vulnerabilitat (mitjançant l'ordre --guess) i també es pot utilitzar per simplificar les cerques binàries d'una confirmació específica.

A continuació es mostra una llista de canvis des de la versió v0.2.

Afegit

  • S'ha implementat la capacitat de limitar el nombre de nuclis generats (autògens fora de l'arbre) (segons la descripció a .out-of-tree.toml) i execucions de comprovació (fora de l'arbre) mitjançant el —max= paràmetre X.

  • Nova comanda genall, que us permet generar tots els nuclis per a una distribució i versió específiques.

  • Tots els registres s'emmagatzemen ara a la base de dades sqlite3. S'han implementat ordres per a consultes senzilles necessàries amb freqüència, així com per exportar dades a json i markdown.

  • Càlcul implementat de la probabilitat d'operació amb èxit (basat en llançaments anteriors).

  • Possibilitat de desar resultats de compilació (nou paràmetre --dist per a l'ordre pew fora de l'arbre)

  • Suport per a la generació de metadades per als nuclis instal·lats al sistema amfitrió, així com per construir directament a l'amfitrió.

  • Suport per a nuclis de tercers.

  • L'entorn de depuració fora de l'arbre ara cerca automàticament símbols de depuració al sistema amfitrió.

  • S'ha afegit la possibilitat de gestionar les mitigacions de seguretat amb les marques d'activació/desactivació KASLR, SMEP, SMAP i KPTI durant la depuració.

  • S'ha afegit el paràmetre --threads=N a l'ordre de prova de pew fora de l'arbre, que es pot utilitzar per especificar el nombre de fils en què construir/executar i provar exploits i mòduls del nucli.

  • La capacitat d'establir una etiqueta que s'enregistrarà al registre i que després es pot utilitzar per calcular estadístiques.

  • S'ha afegit la possibilitat d'especificar la versió del nucli sense utilitzar expressions regulars.

  • Nova comanda de paquet, utilitzada per a proves massives d'explotacions i mòduls del nucli als subdirectoris.

  • A la configuració (.out-of-tree.toml) per al mòdul d'explotació i nucli, s'ha afegit la possibilitat de desactivar KASLR, SMEP, SMAP i KPTI, així com especificar el nombre necessari de nuclis i memòria.

  • Ara les imatges (rootfs) es carreguen automàticament mentre s'executa l'autogen del nucli. El bootstrap ja no és necessari.

  • Suport per als nuclis CentOS.

Canvis

  • Ara, si no hi ha cap imatge (rootfs) per a la versió requerida de la distribució, out-of-tree intentarà utilitzar la imatge de la versió més propera. Per exemple, imatge d'Ubuntu 18.04 per a Ubuntu 18.10.

  • Ara les proves dels mòduls del nucli no es consideraran errors si falten (sense proves, no hi ha errors!).

  • Ara fora de l'arbre retornarà un codi d'error negatiu si almenys una etapa (construcció, llançament o prova) en qualsevol dels nuclis ha fallat.

  • El projecte ha passat a utilitzar mòduls Go, ara es prefereix construir amb GO111MODULE=on.

  • S'han afegit proves predeterminades.

  • Test.sh ara s'utilitzarà de manera predeterminada si el conjunt de ${TARGET}_test no està implementat al Makefile.

  • El registre del nucli ja no s'esborra abans d'executar un mòdul o explotació del nucli. Alguns dels exploits utilitzen una filtració de la base del nucli a dmesg per evitar KASLR, de manera que la neteja pot trencar la lògica implementada de l'explotació.

  • qemu/kvm ara utilitza totes les capacitats del processador amfitrió.

Eliminat

  • Fàbrica de nuclis es va eliminar completament a causa de la implementació de la generació del nucli basada en fitxers Dockerfiles actualitzats de manera incremental.

  • Bootstrap no fa res més. L'ordre s'eliminarà en la propera versió.

Corregit

  • A macOS, GNU coreutils ja no és necessari per executar-se.

  • Els fitxers temporals s'han mogut a ~/.out-of-tree/tmp/ a causa d'errors de muntatge dins del Docker en alguns sistemes.

Font: linux.org.ru

Afegeix comentari