giovedì 11 ottobre 2018

La protezione Ransomware di Windows 10 è bypassabile con una DLL injection


In Windows 10 Microsoft ha aggiunto una nuova funzione di protezione anti ransomware chiamata "Accesso Controllato Cartelle", che può essere usata per impedire modifiche da parte di programmi sconosciuti su file contenuti in cartelle protette. La scorsa settimana però, nell'ambito della conferenza sulla sicurezza informatica DerbyCON, un ricercatore di sicurezza ha mostrato come in realtà questo livello di protezione possa (abbastanza facilmente) essere bypassato da un ransomware grazie ad una DLL injection. 

Come funziona?
La funzione di Accesso Controllato Cartelle consente agli utenti di usufruire di una cartella protetta nella quale è possibile modificare i file contenuti solo ed esclusivamente da parte di programmi specificati chiaramente in una whitelist di software e applicativi: alcuni software consentiti sono previsti di default da Windows, ma l'utente ha la possibilità di aggiungere, eliminare, modificare i software contenuti in questa lista. 

Sapendo che il programma explorer.exe è previsto di default nella whitelist della funzione Anti Ransomware di Windows, il ricercatore di sicurezza Soya Aoyama di Fujitsu System Integration Laboratories, ha mostrato ai partecipanti alla conferenza come iniettare una DLL dannosa in Explorer, quando viene avviato. Dato che Explorer è inserito in whitelist, il DLL dannoso iniettato verrà avviato assieme a Explorer riuscendo quindi a bypassare la funzione di protezione. 

Per fare ciò Aoyama si è basato sul fatto che, all'avvio, Explorer.exe carica le DLL che trova sotto la chiave di registro HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers, come mostrato sotto.

Fonte: bleepingcomputer.com
L'albero HKEY_CLASSES_ROOT altro non è che l'unione delle informazioni di registro trovate in HKEY_LOCAL_MACHINE (HKLM) e HKEY_CURRENT_USER (HKCU): quando viene compiuta questa operazione di unione, Windows assegna ai dati nel HKEY_CURRENT_USER la priorità.

Questo significa che se una chiave esiste in HKCU, avrà la precedenza sulla stessa chiave in HKLM. Per spiegare meglio:

- di default, quando explorer si avvia, carica shell.dll da HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{90AA3A4E-1CBA-4233-B8BB-535773D48449}\InProcServer32 key.

- Ayoma, per caricare in explorer.exe la DLL dannosa, ha semplicemente creato 
HKCU\Software\Classes\CLSID\{90AA3A4E-1CBA-4233-B8BB-535773D48449}\InProcServer32 key e impostato il suo valore di default sulla DLL dannosa. 

Ora, quando explorer.exe viene arrestata e riavviata, la DLL dannosa viene lanciata in explorer.exe invece che in Shell.dll. Sotto è possibile vedere un esempio

Fonte: bleepingcomputer.com
Come se non bastasse...
Il problema però non si limita al bypass della misura di sicurezza anti ransomware, perché tutto ciò non viene neppure individuato da Windows Defender e neppure da gran parte degli antivirus più diffusi (comunque recanti, nella magior parte dei casi, una protezione antiransomware). 

Microsoft risponde...
Aoyama ha affermato di aver segnalato la vulnerabilità al Microsoft Security Response Center e di aver incluso un proof-of-concept che può essere usato per il bypass della funzione di Accesso controllato. Microsoft ha però fatto sapere di non ritenere questa vulnerabilità così grave da richiedere una patch. Nel dettaglio, spiegano da Microsoft, l'attacco descritto da Ayoama è possibile solo se l'attaccante ha l'accesso login all'account bersaglio. Ayoama ha tenuto a ribadire invece che un ransomware non necessita di alcuna "escalation of privileges" per criptare i file delle vittime (lo necessita solo nel caso in cui l'attaccante voglia eliminare le copie shadow di volume, ma uno sviluppatore di malware può usare altri metodi ed exploit per eseguire vssadmin). Ciò che questo consente è proprio il fatto che un malware possa essere installato senza privilegi amministrativi e sia comunque in grado di aggirare la protezione ransomware di Windows. E tutto ciò non suona affatto bene. 

Nessun commento:

Posta un commento