A prima versione (v1.0.0) di out-of-tree, un toolkit per u sviluppu è a prova di sfruttamenti è moduli di kernel Linux, hè stata liberata.
Out-of-tree permette di automatizà alcune azzioni di rutina per creà ambienti per debugging moduli di kernel è sfruttamenti, generendu statistiche di affidabilità di sfruttamentu, è furnisce ancu a capacità di integrà facilmente in CI (Integrazione Continua).
Ogni modulu di kernel o sfruttamentu hè descrittu da un schedariu .out-of-tree.toml, chì specifica l'infurmazioni nantu à l'ambiente necessariu è (s'ellu hè un sfruttamentu) restrizioni à l'operazione in presenza di certi mitigazioni di sicurezza.
U toolkit permette ancu di identificà e versioni di u kernel specifichi affettati da una vulnerabilità (usendu u cumandamentu --guess), è pò ancu esse usatu per simplificà e ricerche binari per un impegnu specificu.
Quì sottu hè una lista di cambiamenti da a versione v0.2.
Aggiuntu
-
Implementatu a capacità di limità u nùmeru di kernel generati (autogenu di u kernel fora di l'arburu) (basatu nantu à a descrizzione in .out-of-tree.toml) è verificate e corse (fora di l'arbre pew) utilizendu u —max= X paràmetru.
-
Novu cumandamentu genall, chì permette di generà tutti i kernels per una distribuzione è versione specifica.
-
Tutti i logs sò avà guardati in a basa di dati sqlite3. Cumandamenti implementati per e dumande simplici chì sò spessu necessarie, è ancu esportà dati in json è markdown.
-
Càlculu implementatu di a probabilità di operazione riescita (basatu nantu à i lanci precedenti).
-
Capacità di salvà i risultati di custruzzione (novu paràmetru --dist per u cumandamentu pew fora di l'arburu)
-
Supportu per a generazione di metadati per i kernel installati in u sistema di l'ospite, è ancu di custruisce direttamente nantu à l'ospite.
-
Supportu per i kernels di terzu partitu.
-
L'ambiente di debug fora di l'arburu cerca avà automaticamente i simboli di debugging in u sistema host.
-
Aggiunta l'abilità di gestisce e mitigazioni di sicurezza cù l'attivazione / disattivazione di bandiere KASLR, SMEP, SMAP è KPTI durante a debugging.
-
Aggiuntu u paràmetru --threads=N à u cumandamentu di teste di pew fora di l'arburu, chì pò esse usatu per specificà u nùmeru di fili in quale custruisce / eseguisce è pruvà sfruttamenti è moduli di kernel.
-
A capacità di stabilisce un tag chì serà arregistratu in u logu è pò esse usatu per calculà statistiche.
-
Aggiunta a capacità di specificà a versione di u kernel senza aduprà espressioni regulari.
-
Novu cumandamentu di pacchettu, utilizatu per a prova di massa di sfruttamenti è moduli di kernel in subdirectorii.
-
In a cunfigurazione (.out-of-tree.toml) per u sfruttamentu è u modulu di u kernel, a capacità di disattivà KASLR, SMEP, SMAP è KPTI hè stata aghjunta, è ancu di specificà u numeru necessariu di core è memoria.
-
Avà l'imaghjini (rootfs) sò caricate automaticamente mentre l'autogenu di u kernel hè in esecuzione. bootstrap ùn hè più necessariu.
-
Supportu per i kernels CentOS.
Cambiamenti
-
Avà, s'ellu ùn ci hè micca una maghjina (rootfs) per a versione necessaria di a distribuzione, fora di l'arbulu pruvate d'utilizà l'imaghjini di a versione più vicina. Per esempiu, Ubuntu 18.04 image per Ubuntu 18.10.
-
Avà i testi per i moduli di u kernel ùn saranu micca cunsiderati fallimenti si mancanu (senza teste - senza errore!).
-
Avà fora di l'arbulu restituverà un codice d'errore negativu se almenu una tappa (custruisce, lanciata o teste) in qualcunu di i nuclei falliu.
-
U prugettu hà cambiatu à utilizà i moduli Go, a custruzzione cù GO111MODULE=on hè avà preferita.
-
Testi predeterminati aghjuntu.
-
Test.sh serà avà usatu per difettu se l'assemblea in ${TARGET}_test ùn hè micca implementatu in u Makefile.
-
U logu di u kernel ùn hè più sguassatu prima di eseguisce un modulu di kernel o sfruttà. Alcune di i sfruttamenti utilizanu una fuga di basa di kernel in dmesg per aggira KASLR, cusì a pulizia pò rompe a logica implementata di l'exploit.
-
qemu/kvm usa avà tutte e capacità di u processatore host.
Sguassatu
-
Fabbrica di kernel sguassatu cumplettamente per via di l'implementazione di a generazione di kernel basatu annantu à i Dockerfiles aghjurnati gradualmente.
-
bootstrap ùn face nunda di più. U cumandamentu serà eliminatu in a prossima versione.
Currettu
-
In macOS, GNU coreutils ùn hè più necessariu per eseguisce.
-
I fugliali temporanei sò stati spustati in ~/.out-of-tree/tmp/ per via di errori di muntazione in docker in certi sistemi.
Source: linux.org.ru