Disponibile Kasper, scanner per problemi di esecuzione speculativa del codice nel kernel di Linux

Un gruppo di ricercatori dell'Università libera di Amsterdam ha pubblicato lo strumento Kasper, progettato per identificare nel kernel di Linux frammenti di codice che possono essere utilizzati per sfruttare vulnerabilità della classe Spectre, causate dall'esecuzione speculativa del codice da parte della CPU. I codici sorgente dello strumento sono distribuiti con licenza Apache 2.0.

Ricordiamo che per effettuare attacchi come Spectre v1, che consentono di determinare il contenuto della memoria, è necessaria la presenza in codice privilegiato di una specifica sequenza di istruzioni (gadget) che porta all'esecuzione speculativa delle istruzioni. Al fine di ottimizzare, la CPU inizia ad eseguire gadget simili in modalità speculativa, poi determina che la previsione del ramo non è stata corretta e riporta le operazioni allo stato originale, ma i dati elaborati durante l'esecuzione speculativa rimangono nella cache e nei buffer microarchitetturali e sono disponibili per l'estrazione con diversi metodi di identificazione dei dati residui attraverso canali laterali.

In passato, gli strumenti di scansione per dispositivi a rischio di vulnerabilità Spectre, basati sulla ricerca di modelli specifici, mostravano un elevato numero di falsi positivi, trascurando molti dispositivi reali (esperimenti hanno dimostrato che il 99% dei dispositivi identificati da questi strumenti non potevano essere utilizzati per attacchi, mentre il 33% dei dispositivi funzionanti in grado di causare attacchi non veniva rilevato).

Per migliorare la qualità dell'individuazione dei dispositivi problematici, Kasper modella le vulnerabilità che un attaccante può sfruttare in ogni fase del processo di attacco di tipo Spectre: vengono modellati problemi che consentono il controllo dei dati (ad esempio, l'inserimento di dati dell'attaccante in strutture microarchitettoniche per influenzare l'esecuzione speculativa successiva tramite attacchi di tipo LVI), l'accesso a informazioni riservate (ad esempio, superando i limiti del buffer o utilizzando la memoria dopo il suo rilascio) e l'organizzazione della fuga di informazioni riservate (ad esempio, analizzando lo stato della cache del processore o utilizzando il metodo MDS).

Disponibile Kasper, scanner per problemi di esecuzione speculativa del codice nel kernel di Linux

Durante i test, il kernel si interfaccia con le librerie runtime di Kasper e con i controlli che operano a livello di LLVM. Nel corso della verifica, viene emulata l'esecuzione speculativa del codice, implementata tramite il meccanismo di checkpoint-restore, che esegue specificamente il ramo di codice erratamente previsto e poi torna allo stato originale prima della biforcazione. Kasper tenta anche di modellare diverse vulnerabilità software e hardware, analizzando l'impatto degli effetti architettonici e microarchitettonici e conducendo test di fuzzing sulle possibili azioni di un aggressore. Per analizzare i flussi di esecuzione viene utilizzato il port DataFlowSanitizer per il kernel Linux, mentre per i test di fuzzing è utilizzata una versione modificata del pacchetto syzkaller.

Disponibile Kasper, scanner per problemi di esecuzione speculativa del codice nel kernel di Linux

Durante la scansione del kernel Linux con Kasper sono stati identificati 1379 gadget precedentemente sconosciuti, potenzialmente in grado di causare perdite di dati durante l'esecuzione speculativa delle istruzioni. Si segnala che solo una parte di essi potrebbe realmente rappresentare problematiche, ma per dimostrare che esiste un pericolo reale, e non solo teorico, è stato sviluppato un prototipo funzionante di exploit collegato a uno dei frammenti di codice problematico, capace di estrarre informazioni dalla memoria del kernel.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster