Ministero dello Sviluppo Economico

CERT Nazionale Italia - Computer Emergency Response Team

Minacce

Scoperta debolezza nell’implementazione di ASLR in Windows

ASLR  EMET  microsoft  Windows Defender Exploit Guard   mercoledì, 22 novembre 2017

È stata resa nota l’esistenza di una debolezza nell’implementazione della misura di protezione nota come ASLR (Address Space Layout Randomization) nei sistemi operativi Microsoft Windows 8, 8.1 e 10. La problematica evidenziata potrebbe essere sfruttata per facilitare determinati tipi di attacchi condotti mediante programmi eseguibili malevoli (DLL, malware).

ASLR protegge il sistema da buffer overflow ed altri exploit basati sulla corruzione della memoria rendendo casuale, entro certi limiti, nello spazio di indirizzamento dei processi le posizioni corrispondenti all’indirizzo base degli eseguibili, delle funzioni di libreria e delle aree di memoria più importanti (stack e heap). Con questa protezione attiva un attaccante che tenti di eseguire codice malevolo su un sistema bersaglio avrà maggiori difficoltà a trovare gli indirizzi di memoria del codice e dei dati da utilizzare. Un tentativo di esecuzione di codice da un indirizzo di memoria errato provoca di norma il crash del programma vettore, vanificando l’attacco.

La funzionalità ASLR, introdotta da Microsoft con Windows Vista, non è attiva automaticamente per tutti i programmi, ma richiede che il codice venga linkato con l’opzione /DYNAMICBASE. È quindi una scelta dello sviluppatore se rendere o meno i propri programmi compatibili con ASLR. Questa apparente debolezza di ASLR è in effetti una scelta progettuale di Microsoft che, allo scopo di rendere i propri sistemi più robusti agli attacchi, ha introdotto la possibilità, prima con EMET (Enhanced Mitigation Experience Toolkit), poi con Windows Defender Exploit Guard in Windows 10, di abilitare ASLR anche per il codice che non lo supporta esplicitamente, forzandolo sia a livello di singola applicazione, sia per l’intero sistema.

Il problema riscontrato sia in EMET, sia in Windows Defender Exploit Guard, è che entrambi i tool abilitano la forzatura di ASLR a livello di sistema senza abilitare anche la modalità di randomizzazione “bottom-up” di ASLR che aggiunge entropia all’indirizzo di base di allocazione del codice ricercando un’area di memoria libera a partire dal fondo dello spazio di indirizzamento. In conseguenza di ciò, i programmi compilati senza il flag /DYNAMICBASE vengono riallocati senza alcuna entropia, vale a dire sempre allo stesso indirizzo di memoria e in maniera consistente ad ogni riavvio del sistema e perfino tra sistemi diversi.

Ciò rende di fatto inutile l’applicazione forzata di ASLR ai programmi che non la supportano direttamente, indebolendo la capacità del sistema di resistere alle classi di attacchi precedentemente descritte.

Inoltre, nonostante Microsoft abbia introdotto nella versione più recente di Windows Defender Exploit Guard per Windows 10 (versione 1709 Fall Creators Update) un’opzione specifica per abilitare a livello di sistema la funzionalità ASLR bottom-up, il valore di default impostato per questa opzione nell’interfaccia grafica (“Abilitato per impostazione predefinita”) non riflette lo stato del corrispondente valore nel Registro di sistema (non impostato).

Anche se Microsoft è al corrente della problematica, al momento non sono disponibili aggiornamenti o altre soluzioni. Come soluzione di mitigazione, è possibile intervenire direttamente nel Registro di sistema importando il valore seguente:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"MitigationOptions"=hex:00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00

Si noti che questa operazione deve essere effettuata da un utente amministratore, va a sovrascrivere completamente tutte le opzioni di mitigazione a livello di sistema e può potenzialmente avere effetti collaterali negativi sul sistema e su alcune applicazioni. Se ne sconsiglia pertanto l’utilizzo da parte di utenti non esperti.

Per maggiori informazioni su questa problematica è possibile consultare le seguenti fonti esterne (in Inglese):

Notizie correlate

Aggiornamenti di sicurezza per prodotti Microsoft (febbraio 2020)

12 febbraio 2020

Nella giornata dell'11 febbraio 2020 Microsoft ha emesso diversi aggiornamenti di sicurezza che risolvono vulnerabilità multiple in svariati prodotti.Leggi tutto

Avviso di sicurezza di Microsoft per falla critica 0-day in Internet Explorer

20 gennaio 2020

Microsoft ha rilasciato un avviso di sicurezza relativo ad una vulnerabilità critica zero-day in Internet Explorer che può causare l’esecuzione di codice arbitrario da remoto.Leggi tutto

Aggiornamenti di sicurezza per prodotti Microsoft (gennaio 2020)

15 gennaio 2020

Nella giornata del 14 gennaio 2020 Microsoft ha emesso diversi aggiornamenti di sicurezza che risolvono vulnerabilità multiple in svariati prodotti.Leggi tutto