out-of-tree v1.0.0: strumenti per lo sviluppo e il test di exploit e moduli del kernel Linux


out-of-tree v1.0.0: strumenti per lo sviluppo e il test di exploit e moduli del kernel Linux

È stata rilasciata la prima versione (v1.0.0) di out-of-tree, un toolkit per lo sviluppo e il test di exploit e moduli del kernel Linux.

out-of-tree consente di automatizzare alcune azioni di routine per creare ambienti per il debug di moduli ed exploit del kernel, generare statistiche sull'affidabilità degli exploit e fornisce anche la possibilità di integrarsi facilmente in CI (Continuous Integration).

Ogni modulo o exploit del kernel è descritto da un file .out-of-tree.toml, che specifica le informazioni sull'ambiente richiesto e (se si tratta di un exploit) le restrizioni sul funzionamento in presenza di determinate attenuazioni della sicurezza.

Il toolkit consente inoltre di identificare versioni specifiche del kernel interessate da una vulnerabilità (utilizzando il comando --guess) e può anche essere utilizzato per semplificare le ricerche binarie per un commit specifico.

Di seguito è riportato un elenco delle modifiche rispetto alla versione v0.2.

Aggiunto

  • Implementata la possibilità di limitare il numero di kernel generati (autogen del kernel fuori dall'albero) (in base alla descrizione in .out-of-tree.toml) e controllare le esecuzioni (pew fuori dall'albero) utilizzando —max= Parametro X.

  • Nuovo comando genall, che consente di generare tutti i kernel per una distribuzione e versione specifica.

  • Tutti i log sono ora archiviati nel database sqlite3. Comandi implementati per query semplici e frequenti, nonché esportazione di dati in json e markdown.

  • Calcolo implementato della probabilità di successo dell'operazione (basato sui lanci precedenti).

  • Possibilità di salvare i risultati della compilazione (nuovo parametro --dist per il comando pew out-of-tree)

  • Supporto per la generazione di metadati per i kernel installati sul sistema host, nonché per la creazione diretta sull'host.

  • Supporto per kernel di terze parti.

  • L'ambiente di debug fuori dall'albero ora ricerca automaticamente i simboli di debug sul sistema host.

  • Aggiunta la possibilità di gestire le mitigazioni della sicurezza con abilita/disabilita flag KASLR, SMEP, SMAP e KPTI durante il debug.

  • Aggiunto il parametro --threads=N al comando out-of-tree pew testing, che può essere utilizzato per specificare il numero di thread in cui creare/eseguire e testare exploit e moduli del kernel.

  • La possibilità di impostare un tag che verrà registrato nel registro e potrà quindi essere utilizzato per calcolare le statistiche.

  • Aggiunta la possibilità di specificare la versione del kernel senza utilizzare espressioni regolari.

  • Nuovo comando pack, utilizzato per test di massa di exploit e moduli del kernel nelle sottodirectory.

  • Nella configurazione (.out-of-tree.toml) per l'exploit e il modulo kernel è stata aggiunta la possibilità di disabilitare KASLR, SMEP, SMAP e KPTI, nonché di specificare il numero richiesto di core e memoria.

  • Ora le immagini (rootfs) vengono caricate automaticamente mentre è in esecuzione l'autogen del kernel. il bootstrap non è più necessario.

  • Supporto per kernel CentOS.

Cambiamenti

  • Ora, se non esiste alcuna immagine (rootfs) per la versione richiesta della distribuzione, out-of-tree proverà a utilizzare l'immagine della versione più vicina. Ad esempio, immagine Ubuntu 18.04 per Ubuntu 18.10.

  • Ora i test per i moduli del kernel non verranno considerati fallimenti se mancano (nessun test - nessun errore!).

  • Ora out-of-tree restituirà un codice di errore negativo se almeno una fase (costruzione, lancio o test) su uno qualsiasi dei core non è riuscita.

  • Il progetto è passato all'utilizzo dei moduli Go, ora si preferisce costruire con GO111MODULE=on.

  • Aggiunti test predefiniti.

  • Test.sh verrà ora utilizzato per impostazione predefinita se l'assembly in ${TARGET}_test non è implementato nel Makefile.

  • Il registro del kernel non viene più cancellato prima di eseguire un modulo o un exploit del kernel. Alcuni exploit utilizzano una perdita della base del kernel in dmesg per aggirare KASLR, quindi la pulizia potrebbe interrompere la logica implementata dell'exploit.

  • qemu/kvm ora utilizza tutte le capacità del processore host.

cancellato

  • Fabbrica di noccioli completamente rimosso a causa dell'implementazione della generazione del kernel basata su Dockerfile aggiornati in modo incrementale.

  • bootstrap non fa nient'altro. Il comando verrà rimosso nella prossima versione.

fisso

  • Su macOS, non è più necessario eseguire GNU coreutils.

  • I file temporanei sono stati spostati in ~/.out-of-tree/tmp/ a causa di errori di montaggio all'interno della finestra mobile su alcuni sistemi.

Fonte: linux.org.ru

Aggiungi un commento