Kasper, uno scanner di dispositivi per codice speculativo nel kernel Linux

Un gruppo di hanno rivelato i ricercatori della Free University di Amsterdam tramite un post sul blog uno strumento chiamato "casper" che evidenziano che lo è progettato per identificare frammenti di codice nel kernel Linux che può essere utilizzato per sfruttare Vulnerabilità della classe Spettro causato dall'esecuzione di codice speculativo da parte del processore.

Per coloro che non sono a conoscenza di questo tipo di attacco, dovrebbero saperlo vulnerabilità di classe come Spectre v1 consentono di determinare il contenuto della memoria, nel codice privilegiato è richiesto un certo script (gadget), che porta all'esecuzione speculativa delle istruzioni.

Ottimizzare, il processore inizia a eseguire tali dispositivi in ​​modalità speculativaoppure, quindi determina che la previsione del ramo non è stata giustificata e riporta le operazioni al loro stato originale, ma i dati elaborati durante l'esecuzione speculativa si trovano nella cache e nei buffer della microarchitettura e sono disponibili per l'estrazione utilizzando vari metodi di determinazione dei dati residui tramite terzi canali di festa.

Strumenti di scansione gadget basato su modelli precedentemente disponibile per la vulnerabilità dello spettroe ha mostrato un tasso molto alto di falsi positivi, mentre molti gadget reali sono andati perduti (gli esperimenti hanno dimostrato che il 99% dei gadget rilevati da tali strumenti non poteva essere utilizzato per attacchi e il 33% di quelli funzionanti non erano dispositivi osservati in grado di portare ad un attacco).

Presentazione di Kasper, uno scanner per dispositivi di esecuzione transitori (o speculativi). Utilizza le politiche di analisi della corruzione per modellare un utente malintenzionato in grado di sfruttare vulnerabilità software/hardware arbitrarie in un percorso transitorio. 

A proposito di Casper

Per migliorare la qualità dell'identificazione dei dispositivi problematici, Kasper modella le vulnerabilità che un utente malintenzionato può utilizzare ad ogni fase degli attacchi di classe Spectre: i problemi sono modellati per consentire il controllo dei dati (ad esempio, la sostituzione dei dati degli aggressori in strutture microarchitettoniche per influenzare la successiva esecuzione speculativa) utilizzando gli attacchi di classe LVI, ottenere l'accesso a informazioni sensibili (ad esempio, quando il buffer è fuori limite o la memoria viene utilizzata dopo che è stata liberata) e perde informazioni riservate (ad esempio, analizzando lo stato della cache del processore o usando il metodo MDS).

Modella un utente malintenzionato in grado di controllare i dati (ad es. tramite massaggio della memoria o iniezione di valore LVI), accedere ai segreti (ad es. tramite accesso fuori limite o utilizzare dopo la libera ) e divulgare questi segreti (ad es. tramite MDS-basato sulla cache canali nascosti basati sulla contesa o sulla porta). 

Quando si esegue il test, librerie di runtime dei contatti del kernel di Kasper e verificare che funzionino a livello LLVM. Durante la verifica, l'esecuzione di codice speculativo viene emulata dal meccanismo di ripristino del checkpoint, che esegue specificamente un fork di codice previsto in modo errato, dopodiché torna al suo stato originale prima dell'inizio del fork.

Kasper cerca anche di modellare varie vulnerabilità software e hardware, analizza l'influenza degli effetti architettonici e di microarchitettura ed esegue test fuzzing di possibili azioni degli aggressori. Per l'analisi dei flussi di esecuzione viene utilizzata la porta DataFlowSanitizer per il kernel Linux e per i test fuzzing una versione modificata del pacchetto syzkaller.

Di conseguenza, Kasper ha scoperto 1.379 dispositivi precedentemente sconosciuti nel kernel Linux fortemente rinforzato. Abbiamo confermato i nostri risultati dimostrando un exploit proof-of-concept end-to-end per uno dei dispositivi trovati.

Durante la scansione del kernel Linux con Kasper, sono stati identificati 1379 dispositivi precedentemente sconosciuti, che potrebbero causare perdite di dati durante l'esecuzione speculativa di istruzioni.

Si noti che forse solo alcuni di essi possono presentare problemi reali, ma per dimostrare che esiste un pericolo reale, e non solo teorico, è stato sviluppato un prototipo funzionante di exploit per uno dei frammenti di codice problematici, che ha portato a una perdita di informazioni sulla memoria del kernel.

Infine se sei interessato a saperne di più su Kasper, dovresti saperlo il codice sorgente È distribuito con licenza Apache 2.0.

fonte: https://www.vusec.net


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.