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