Sviluppato un metodo per bypassare la nuova tecnologia di protezione della memoria implementata da Microsoft

La tecnologia Control Flow Guard, introdotta in Windows 8.1 Update 3 e Windows 10, era stata presentata come il nuovo antidoto contro gli attacchi volti a corrompere la memoria. Essa doveva resistere agli attacchi informatici attraverso i quali, ormai da tempo, i cybercriminali eludono le tecnologie di protezione della precedente generazione, quali la tecnologia ASLR (Address Space Layout Randomization; casualizzazione dello spazio degli indirizzi ) e la protezione DEP (Data Execution Protection; prevenzione esecuzione dati).

Tuttavia, non appena viene innalzato un nuovo “muro di sicurezza”, i ricercatori e gli hacker cercano subito di individuare i possibili metodi per scavalcare o aggirare lo stesso.

Nella circostanza, la tecnologia Control Flow Guard non ha rappresentato un’eccezione alla “regola”.

Questo venerdì, nel corso della conferenza DerbyCon, in programma a Louisville (Kentucky, USA), il ricercatore Jared DeMott, della società Bromium, terrà un discorso riguardo alle modalità di bypass della protezione CFG. DeMott ha segnalato a Threatpost che Bromium aveva già svelato a Microsoft tale tecnica, prima dello svolgimento della conferenza Black Hat, ma la società di Redmond aveva deciso di non eliminare il problema, stimando, tra l’altro, che per tale informazione non occorreva alcuna ricompensa.

Microsoft, da parte sua, si è astenuta da ogni commento a tal proposito. Jared DeMott ha poi dichiarato che Microsoft aveva ad ogni caso risposto a Bromium, affermando che il metodo di bypass evidenziato non era in grado di funzionare su tutti i sistemi, e che sarebbe stato difficile utilizzare lo stesso in qualità di vettore di attacco.

“Microsoft ci ha detto che il metodo funziona esclusivamente con le applicazioni a 32 bit eseguite su macchine a 64 bit, e non su tutti i sistemi, – ha riferito DeMott. – Ho risposto loro che Internet Explorer, per impostazione predefinita, funziona come un’applicazione a 32 bit sull’OS Windows a 64 bit, e che nei confronti di tale browser il metodo da noi segnalato funziona pienamente”.

Secondo il ricercatore di Bromium, il metodo in grado di aggirare la protezione CFG si basa proprio sul fatto che Microsoft ha deciso di non utilizzare la tecnologia Control Flow Integrity, in aggiunta alla tecnologia Control Flow Guard.

“La protezione Control Flow Integrity, una volta implementata, provvede ad introdurre ulteriori controlli prima della chiamata del puntatore della funzione, e prima della restituzione dell’indirizzo di ritorno; questo rende l’indirizzo corretto l’unico luogo valido per il ritorno, – ha asserito Jared DeMott. – Microsoft non ha ritenuto necessaria una piena implementazione di Control Flow Integrity; Control Flow Guard protegge esclusivamente i puntatori delle funzioni, non gli indirizzi di ritorno”.

Control Flow Guard – una tecnologia Visual Studio – è stata ugualmente integrata nel nuovo browser Microsoft Edge, che ha fatto il suo debutto all’inizio della scorsa estate. Un ulteriore metodo per bypassare la tecnologia CFG era stato individuato nel mese di marzo dell’anno corrente dai ricercatori di Core Security.

“[CFG] esegue apposite verifiche sul codice adibito ai salti indiretti sulla base dei puntatori, limitando tali salti esclusivamente ai salti relativi agli entry point della funzione il cui indirizzo è stato utilizzato, – si specifica in un report stilato da Microsoft, nel quale vengono descritte le funzioni del sistema di sicurezza implementato nel browser Edge. – Questo rende molto più difficile, per un malintenzionato, “impadronirsi” del programma, limitando fortemente la possibilità che si manifesti un attacco di corruzione della memoria”.

La caratteristica chiave della tecnica di bypass, secondo DeMott, è costituita dalla capacità di corrompere un indirizzo di ritorno ed avviare una serie di eventi che conducono ad una catena ROP (Return-Oriented Programming, programmazione orientata al ritorno), elemento fondamentale nella maggior parte degli attacchi che mirano alla corruzione della memoria. La tecnica messa a punto da Bromium è denominata Stack Desync e si basa sull’utilizzo di varie convenzioni di chiamata delle funzioni.

“Se le mescolate e le abbinate, quando poi si richiama il puntatore della funzione, e il sistema si attende una convenzione standard, ricevendone tuttavia un’altra, si verifica una desincronizzazione dello stack, il quale restituisce un indirizzo arbitrario, – ha affermato DeMott. – Se non si proteggono gli indirizzi di ritorno, il modello si rompe. In pratica, se non si protegge l’indirizzo di ritorno, si lascia la porta del tutto aperta al tipo di metodo da noi utilizzato. È possibile mescolare tutto quanto, a livello di stack, e fare quindi in modo che la chiamata ritorni non ad un indirizzo valido, bensì all’inizio del codice di un attacco”.

Si tratta di una tecnica di bypass di non semplice attuazione, la quale, con ogni probabilità, ha senso solo nel quadro di operazioni sostenute da agenzie di intelligence, a livello di stati nazionali. Questo genere di attacco garantisce un punto di accesso alla rete, spianando così la strada ad eventuali attacchi secondari, in grado di generare fughe di dati o l’innalzamento dei privilegi.
Siamo di fronte ad una tappa davvero significativa nell’evoluzione del classico gioco del gatto e del topo riguardo alle problematiche di corruzione della memoria, – ha precisato Jared DeMott. – Tutte queste ricerche, anche se detto così suona un po’ male, non fanno altro che spingere la palla in avanti, ed alzare decisamente l’asticella nei confronti di eventuali attacker. [Microsoft] ha scelto di non procedere alla correzione del problema, ritenendo che si tratti dell’opzione migliore. Esiste qualche lieve rischio, nella circostanza, ma la tecnica da noi utilizzata non è disponibile ovunque”.

Fonte: Threatpost

Post correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *