Punti chiave
- Usa percorsi completi, convalida le DLL tramite firme digitali e limita i permessi di scrittura nelle directory critiche.
- Applica criteri di controllo delle applicazioni come Microsoft AppLocker o WDAC per bloccare l’esecuzione di DLL non autorizzate.
- Usa strumenti RMM, i registri eventi di Windows, Sysmon o script PowerShell per monitorare l’attività sospetta delle DLL e intervenire.
- Un approccio ibrido, che unisce rilevamento e avvisi automatizzati a verifiche manuali, rafforza il rilevamento e la risposta negli ambienti complessi.
Le Dynamic Link Libraries (DLL), molte delle quali sono preinstallate, sono indispensabili per il funzionamento delle applicazioni Windows. Gli aggressori, però, possono sfruttare questo comportamento predefinito per iniettare codice dannoso e operare senza essere rilevati. Questa guida illustra le strategie più efficaci per prevenire il DLL hijacking negli ambienti enterprise.
Come funziona il DLL hijacking
Quando un’applicazione Windows viene avviata, cerca le DLL necessarie seguendo una sequenza predefinita. Un hacker può abusare di questo processo collocando un file DLL dannoso nella directory, che viene poi caricato al posto del file legittimo.
Ecco alcune delle minacce di DLL hijacking note negli ultimi anni:
- APT41: gruppo di minaccia che abusa abitualmente di varianti del DLL hijacking.
- RTM: usa l’iniezione di DLL per costringere applicazioni come TeamViewer a caricare librerie dannose.
- Astaroth: manipola l’ordine di ricerca per scaricare ed eseguire payload dannosi.
- BOOSTWRITE: codice dannoso che altera l’ordine di ricerca del file Dwrite.dll.
Poiché questo exploit prende di mira il comportamento dell’OS, può aggirare i normali software antivirus e altri controlli di sicurezza. Se non viene individuato, un file DLL malevolo può fungere da backdoor per eseguire codice dannoso con gli stessi privilegi dell’applicazione compromessa.
Come mitigare il DLL hijacking negli ambienti IT gestiti
Per ridurre il rischio di DLL hijacking, le organizzazioni dovrebbero combinare una configurazione sicura, l’hardening degli endpoint e un monitoraggio proattivo. Ecco alcune strategie concrete:
1. Applica pratiche sicure per il caricamento delle librerie
Dato che gli attacchi alle DLL avvengono di solito mentre il sistema si prepara a caricare un’applicazione, la cosa più sensata è rafforzare i criteri relativi a questo comportamento e alle directory di sistema. Ecco alcuni punti di partenza da valutare:
- Usa percorsi completi nel codice dell’applicazione per specificare l’esatta posizione delle DLL.
- Convalida le DLL tramite firme digitali, così da caricare solo librerie attendibili.
- Abilita la modalità di ricerca sicura delle DLL per dare priorità alle directory di sistema rispetto ai percorsi con accesso in scrittura per l’utente.
- Limita i permessi di scrittura sulle directory incluse nell’ordine di ricerca delle DLL, in particolare C:\Windows\System32 e le cartelle delle applicazioni.
Inoltre, il caricamento di DLL remote dovrebbe essere in genere vietato o riservato agli utenti autorizzati. Abilita la modalità di ricerca sicura delle DLL, se non è già impostata come predefinita, per costringere il sistema a seguire la gerarchia durante la ricerca automatica dei file DLL.
2. Adotta misure di hardening degli endpoint
I passaggi successivi riguardano il controllo delle applicazioni. Per garantire coerenza, puoi ricorrere a soluzioni di terze parti per individuare e bloccare i software potenzialmente dannosi che cercano di manipolare la sequenza dell’ordine di ricerca delle DLL.
Puoi ad esempio usare criteri di controllo delle applicazioni (come Microsoft AppLocker o Windows Defender Application Control) per limitare l’esecuzione di DLL non autorizzate. Integrando questi controlli nella tua postura di sicurezza, riduci sensibilmente l’esposizione al DLL hijacking e migliori la resilienza complessiva degli endpoint.
3. Monitora e rileva le attività sospette
Una soluzione centralizzata di gestione IT, come uno strumento di monitoraggio e gestione da remoto (RMM), può tenere traccia su larga scala delle modifiche alle directory critiche (ad esempio cartelle di sistema e percorsi dei dati applicativi) e avvisare i team IT di potenziali manomissioni. Alcune soluzioni possono persino bloccare automaticamente l’esecuzione dei file malevoli.
Le organizzazioni che non dispongono di un RMM possono monitorare l’attività delle DLL con gli strumenti nativi di Windows, come i registri eventi di Windows, Sysmon e gli script PowerShell, mentre le soluzioni EDR (Endpoint Detection and Response) offrono funzionalità avanzate di rilevamento delle minacce.
Negli ambienti IT complessi è diffuso anche un approccio ibrido, in cui le modifiche sospette alle directory di sistema e delle applicazioni vengono segnalate automaticamente e poi esaminate manualmente o gestite secondo criteri personalizzati. Questa strategia a più livelli garantisce un rilevamento e una risposta tempestivi ai possibili tentativi di DLL hijacking.
Rafforzare rilevamento e risposta contro il DLL hijacking
La prevenzione è la prima linea di protezione, ma il monitoraggio continuo è indispensabile per rilevare i tentativi di DLL hijacking e reagire. I team di sicurezza, ad esempio, dovrebbero monitorare con costanza i percorsi di caricamento anomali delle DLL, verificare la creazione di file nelle directory eseguibili ed esaminare il comportamento dei processi alla ricerca di attività insolite.
Inoltre, occorre definire con chiarezza le soluzioni EDR (Endpoint Detection and Response) dedicate all’esecuzione sospetta di librerie, per individuare gli attacchi che aggirano i controlli preventivi. Unendo una gestione IT proattiva a una configurazione sicura, le organizzazioni possono aumentare la propria resilienza al DLL hijacking e ridurre il rischio di exploit riusciti.
Argomenti correlati:
