I cybercriminali riescono a eludere le soluzioni di sicurezza con diverse tecniche, pensate per mascherare le attività dannose. Uno dei metodi sempre più diffusi negli ultimi anni è il DLL hijacking dei sistemi Windows, che consiste nella sostituzione di una libreria dinamica legittima (DLL, Dynamic-Link Libraries) con un’altra dannosa. Il problema è che gli strumenti di sicurezza tradizionali spesso non rilevano questo tipo di tecnica. Per risolvere il problema, i colleghi del Kaspersky AI Technology Research Center hanno messo a punto un modello basato sul machine learning in grado di individuare gli attacchi DLL hijacking con estrema precisione. Il modello è già stato integrato nella versione più recente del sistema SIEM, Kaspersky Unified Monitoring and Analysis Platform. In questo post scopriremo perché è difficile individuare gli attacchi di tipo DLL hijacking e in che modo vengono gestiti dalla nostra soluzione.
Come funziona il DLL hijacking e perché non è semplice rilevarlo
L’avvio improvviso di un file sconosciuto in un ambiente Windows attira inevitabilmente l’attenzione degli strumenti di sicurezza (sempre che non venga semplicemente bloccato). In sostanza, un attacco di tipo DLL hijacking cerca di far passare un file dannoso come attendibile e conosciuto. Il DLL hijacking assume diverse forme. In alcuni casi, gli autori degli attacchi distribuiscono una libreria dannosa insieme a un software legittimo (sideloading della DLL), in modo che venga eseguita dal programma. In altri casi, la sostituiscono alle DLL standard richiamate dai programmi già installati nel computer. Infine, possono manipolare il meccanismo in grado di individuare la posizione della libreria caricata ed eseguita da un processo. Il file DLL dannoso viene quindi avviato da un processo legittimo nel relativo spazio di indirizzi e con i relativi privilegi. I sistemi tradizionali per la protezione degli endpoint ritengono quindi legittima questa attività. Ecco perché i nostri esperti hanno deciso di sfruttare l’intelligenza artificiale per contrastare questa minaccia.
Come rilevare gli attacchi di tipo DLL hijacking con il machine learning
Gli esperti dell’AI Technology Research Center hanno addestrato un modello ML che consente di rilevare il DLL hijacking in base a informazioni indirette sulla libreria e sul processo che l’ha richiamata. Il primo passo è stato quello di identificare i principali elementi che indicano un tentativo di manipolazione della libreria, ad esempio se il file eseguibile e la libreria si trovano in un percorso standard, se il file è stato rinominato, se sono cambiate le dimensioni e la struttura della libreria, se la firma digitale è integra e così via. Inizialmente, il modello è stato addestrato utilizzando i dati delle DLL caricate, provenienti da sistemi interni di analisi automatica e dalle informazioni di telemetria di Kaspersky Security Network (KSN) fornite volontariamente dagli utenti e in seguito rese anonime. Per l’assegnazione delle etichette, gli esperti si sono avvalsi dei dati contenuti nei nostri database di reputazione dei file.
Dato che il primo modello era piuttosto impreciso, i nostri esperti non l’hanno integrato subito nella soluzione e hanno deciso di eseguire diverse iterazioni di prova, in modo da perfezionare il sistema di assegnazione delle etichette del dataset di addestramento e le funzionalità per il rilevamento degli attacchi di tipo DLL hijacking. Il risultato è un modello che consente di individuare con estrema precisione questo tipo di tecnica. Securelist ha pubblicato un articolo approfondito in cui i nostri specialisti spiegano come hanno sviluppato questa tecnologia, dall’ipotesi iniziale all’esecuzione di test in Kaspersky Managed Detection and Response e infine all’integrazione effettiva nella piattaforma SIEM.
Rilevamento degli attacchi di tipo DLL hijacking in Kaspersky SIEM
Nel sistema SIEM, il modello analizza i metadati delle DLL caricate e dei processi che le hanno richiamate in base ai dati di telemetria, contrassegna i casi sospetti ed esegue controlli incrociati del risultato finale a fronte delle informazioni nel cloud di KSN. Questa procedura consente non soltanto di migliorare il rilevamento degli attacchi DLL hijacking, ma riduce anche il numero di falsi positivi. Il modello funziona sia nel sottosistema di correlazione che in quello di raccolta degli eventi.
Nel primo caso, si controllano solo gli eventi che hanno già attivato le regole di correlazione, per una valutazione più precisa delle minacce e una generazione più rapida degli avvisi all’occorrenza. Dato che la verifica non interessa tutti gli eventi, il volume delle query nel cloud non influenza la velocità di risposta del modello.
Nel secondo caso, il modello elabora tutti gli eventi di caricamento della libreria che rispettano determinate condizioni. Anche se richiede un maggior impiego di risorse, questo metodo è indispensabile per la ricerca retroattiva delle minacce.
In un altro post del blog di Securelist, i colleghi del gruppo di ricerca anti-malware hanno spiegato in modo approfondito come il modello di rilevamento degli attacchi di DLL hijacking consente a Kaspersky SIEM di individuare gli attacchi mirati e hanno fornito esempi concreti sull’individuazione precoce degli incidenti.
L’aspetto più importante è il fatto che la precisione del modello continuerà a migliorare, di pari passo con l’evoluzione degli algoritmi di KSN e la raccolta di altri dati sulle minacce e sui processi legittimi.