DLL hijacking: cos'è e come facilita l'esecuzione di codice dannoso in Windows

Scoperta una nuova campagna malware che induce gli utenti a eseguire codice dannoso in Windows sfruttando la tecnica DLL hijacking. Cos'è e perché può rivelarsi molto pericolosa.

Quando si lavora con Windows è sempre bene controllare quali elementi sono presenti nella cartella aperta con Esplora file.
I ricercatori di K7 Security Labs hanno scoperto un nuovo malware che sfrutta una delle caratteristiche di base del sistema operativo Microsoft.

Immaginate un file ISO inviato come allegato di un’email: cliccandoci due volte, Windows provvede ad assegnare una lettera identificativa di unità al suo contenuto.
K7 Security Labs ha scoperto una campagna malware che si basa proprio sull’invio di file ISO tramite posta elettronica. Il file contiene l’eseguibile WerFault.exe, una libreria DLL (faultrep.dll), un documento Excel (XLS) e un collegamento (file .lnk).

Il file WerFault.exe (“Segnalazione problemi di Windows“) è una copia dell’omonimo componente software contenuto nella cartella %systemroot%\system32 e utilizzato per la segnalazione degli errori del sistema operativo e delle applicazioni a Microsoft. Poiché si tratta di un file dotato della firma digitale di Microsoft, nessun antimalware evidenzia alcun potenziale problema.

Segnalazione problemi di Windows” necessita di una libreria DLL chiamata faultrep.dll: anch’essa è memorizzata nella cartella di sistema %systemroot%\system32.
Sfruttando la tecnica DLL hijacking, gli aggressori hanno inserito nella stessa cartella ospitata nel file ISO un file con nome uguale (faultrep.dll) contenente codice arbitrario che provoca il successivo caricamento del malware.

Il codice non può eseguirsi automaticamente (non fa leva su vulnerabilità drive-by e non prende di mira, per esempio, bug di sicurezza della shell di Windows) ma è rilevante l’utilizzo della tecnica DLL hijacking per sottrarsi al controllo degli antimalware presenti sulla macchina. Approfondiamo proprio questo aspetto.

Cos’è il DLL hijacking e come funziona

Quando viene avviato un file eseguibile in Windows, il sistema operativo va alla ricerca dei componenti necessari per il suo funzionamento (librerie DLL) seguendo un ordine ben preciso: se ne parla nell’articolo Hijacking DLLs in Windows. È possibile rendersi conto di questo comportamento usando un programma gratuito come Process Monitor.

L’aspetto cruciale da tenere a mente, tuttavia, è che la ricerca di una DLL necessaria per il funzionamento di un eseguibile inizia proprio dalla cartella corrente, quella correntemente aperta con Esplora file.

Come abbiamo visto, gli aggressori hanno salvato la DLL malevola nella stessa cartella contenente una copia del file WerFault.exe originale di Microsoft. Così facendo Windows carica prima la DLL malevola memorizzata nella cartella e non quella legittima contenuta nel percorso %systemroot%\system32.
In un altro articolo abbiamo visto che 300 eseguibili Windows sono vulnerabili ad attacchi DLL hijacking.

Cliccando sul collegamento .lnk, viene attivato il caricamento dell’eseguibile Scriptrunner.exe, componente di Windows, a sua volta utilizzato per avviare WerFault.exe.

Nel caso di specie gli aggressori dispongono l’esecuzione di Pupy RAT, un malware open source, pubblicato su GitHub, che supporta varie tecniche per sottrarsi al rilevamento da parte delle soluzioni per la sicurezza oltre a una serie di moduli successivamente scaricati.

Ti consigliamo anche

Link copiato negli appunti