"DGA: Il Codice Invisibile" (come i malware sfuggono al rilevamento)

(di Bruno Riccio)
26/09/24

Il Domain Generation Algorithm (DGA) è una tecnica utilizzata dai criminali informatici per creare automaticamente una serie di nomi di dominio (gli indirizzi che usiamo per accedere ai siti web). Questa tecnica serve a facilitare la comunicazione tra il malware e il server da cui riceve istruzioni, chiamato server di comando e controllo (C2).

Per farla semplice: è come se il malware cambiasse porta d'ingresso ogni giorno, rendendo più complicato per gli antivirus o i difensori fermarlo.

Perché è così rilevante?

Questa strategia rappresenta un punto di svolta nel campo della cybersecurity, poiché consente agli aggressori di evitare il rilevamento e la mitigazione da parte delle misure di sicurezza tradizionali. Mentre in passato i malware si basavano su domini statici (un nome di dominio fisso e predeterminato che viene inserito all'interno del codice del malware), o indirizzi IP hardcoded (simile a un dominio statico, ma invece di un nome di dominio, il malware contiene un indirizzo IP specifico codificato nel suo codice, sempre fisso e predeterminato) per comunicare con i propri server C2, l’adozione dei DGA ha introdotto un jolly di imprevedibilità che rende molto più difficile l'intervento da parte del blue team. I domini generati dinamicamente sono sempre nuovi, il che permette agli attaccanti di sostituire rapidamente domini compromessi o bloccati, mantenendo attive le comunicazioni con il malware. Gli attacchi basati su DGA sono definiti un’evoluzione delle tecniche di “evasione”. Questi algoritmi possono generare migliaia di nomi di dominio ogni giorno, ciascuno dei quali può essere utilizzato per stabilire una connessione con il server C2, assicurando così una continua attività anche in presenza di blocchi o sequestri di domini malevoli noti. Tale approccio fornisce ai criminali informatici un vantaggio strategico, poiché diventa molto più complicato per le difese tradizionali, come i firewall o i sistemi di filtering DNS, bloccare i tentativi di comunicazione. Uno degli aspetti più critici di questa tecnica è la sua capacità di mantenere la persistenza su reti compromesse. I DGA non solo permettono ai cybercriminali di adattarsi rapidamente alle contromisure adottate dalle vittime (che siano esse società oppure persone fisiche), ma rendono anche difficile per le autorità interrompere completamente le comunicazioni tra il malware e i server C2: gli aggressori possono mantenere il controllo delle loro reti di bot anche dopo che alcune delle loro infrastrutture sono state smantellate. In un contesto in cui le minacce informatiche diventano sempre più sofisticate e difficili da rilevare, i DGA rappresentano una delle sfide più significative per i professionisti della sicurezza informatica.

In cosa consiste?

Il funzionamento del DGA si basa sull’utilizzo di algoritmi predeterminati che generano nuovi nomi di dominio secondo una logica interna1. I domini possono essere generati utilizzando una serie di parametri, come ad esempio la data e l’ora corrente, stringhe casuali o seed predefiniti. In questo modo, i malitenzionati (ma non le vittime) possono anticipare i domini che verranno generati dal malware in una determinata finestra temporale, registrandoli in anticipo. Una volta registrato il dominio, il server di comando e controllo può stabilire la comunicazione con le macchine infette e inviare nuovi comandi, aggiornamenti o payloads.

I domini generati possono sembrare innocui o completamente casuali. Ad esempio, un malware può generare domini come abc123.net, xyz789.it, o italia.it ogni giorno, creando migliaia di varianti possibili. Questo approccio consente al malware di eludere i tradizionali metodi di filtraggio DNS, poiché la varietà e il volume dei domini rende impossibile per i team di sicurezza bloccarli tutti preventivamente. In molti casi, i cybercriminali utilizzano solo una piccola porzione dei domini generati, rendendo difficile per le soluzioni di sicurezza prevedere quale di questi domini sarà effettivamente utilizzato per la comunicazione.

Un aspetto interessante dei DGA è che la loro implementazione può variare in modo significativo. Alcuni malware utilizzano algoritmi semplici, che generano domini a partire da un piccolo set di parametri, mentre altri adottano approcci più complessi, che incorporano variabili come il fuso orario, l'hardware della macchina infetta o persino condizioni meteorologiche attuali. Questi fattori rendono i DGA una tecnologia estremamente flessibile, che può essere adattata a una varietà di contesti operativi.

Schema esemplificativo del processo di generazione dei domini malevoli.

Schema procedurale di un attacco DGA

Nell’attacco DGA il malware esegue l'algoritmo ogni volta che deve stabilire una connessione con il server di comando e controllo (C2). Questo processo avviene in tre fasi principali:

  1. Input dei parametri: Definizione dei criteri “matematici” grazie ai quali avviene la costante generazione dei domini.

  2. Generazione della lista di domini: Una volta elaborati i parametri, l'algoritmo crea una lista di nomi di dominio. La lunghezza della lista varia, ma in molti casi può contenere centinaia o migliaia di domini.

  3. Tentativo di connessione: Il malware prova a connettersi a uno dei domini generati. Se la connessione viene stabilita con successo, il malware può ricevere nuovi comandi o scaricare aggiornamenti dal server C2. Se invece il dominio è stato bloccato o non è ancora stato registrato dai criminali, il malware ripeterà il processo con un altro dominio generato fino a stabilire la connessione.

Anche se i DGA si basano su domini generati “pseudo”casualmente, l’AI (intelligenza artificiale) sta permettendo di generare domini basati su parole reali, creando nomi di dominio che sembrano legittimi, aumentando così le possibilità che i domini vengano ignorati dai sistemi di filtraggio.

Scopo e obiettivi dei DGA attacks

Uno degli obiettivi principali degli attacchi basati su DGA è garantire la persistenza nelle reti compromesse. Anche se alcune infrastrutture degli attaccanti vengono disattivate, il malware continua a operare generando nuovi domini. Questo permette ai criminali di mantenere il controllo della rete compromessa, inviando comandi o ricevendo dati rubati.

Un altro scopo è eludere i sistemi di sicurezza. I metodi tradizionali di rilevamento si basano su pattern statici, come domini o IP conosciuti, che vengono bloccati una volta individuati. Grazie al DGA, però, vengono generati così tanti nuovi domini che diventa impossibile bloccarli tutti in tempo. Anche se uno viene scoperto, molti altri lo sostituiscono.

I DGA sono utilizzati anche per distribuire malware. Consentono a botnet e ransomware di mantenere una comunicazione costante con i server C2, attraverso cui gli attaccanti inviano nuovi payload, aggiornamenti o comandi. Ad esempio, una botnet può ricevere istruzioni su quali obiettivi colpire o quali dati rubare.

Esempio di attacco con DGA: “Conficker”

Uno dei malware più pericolosi che utilizza il DGA è stato senza dubbio Conficker2. Rilasciato per la prima volta nel 2008, Conficker è stato uno dei worm, malware autoreplicante attraverso le reti interconnesse,(al pari dei virus biologici) più diffusi e difficili da debellare nella storia della sicurezza informatica.

Ecco le caratteristiche che lo rendono uno dei più insidiosi:

Uso sofisticato del DGA: Conficker è noto per l'utilizzo di un DGA altamente efficace. Ogni giorno generava un gran numero di domini (fino a 50.000) che il malware poteva utilizzare per connettersi ai server di comando e controllo. Questo rendeva difficile bloccare o disabilitare l'infrastruttura di comando del malware, poiché i domini cambiavano continuamente e non era possibile anticiparli tutti.

Persistenza e resilienza: Conficker utilizzava tecniche di crittografia e rootkit per nascondersi dai software di sicurezza e impedire la rimozione. Inoltre, poteva disabilitare aggiornamenti di sicurezza e bloccare l'accesso ai siti di sicurezza, rendendo difficile per gli utenti infetti proteggere i loro sistemi.

Modularità: Una volta stabilita la connessione con il server C2, Conficker poteva scaricare ed eseguire aggiornamenti del malware o installare nuovi payload, rendendolo una piattaforma di attacco altamente versatile.

Parte della difficoltà nel rimuovere un'infezione da Conficker risiede nella sua capacità di bloccare l'accesso ai siti web relativi alla sicurezza e agli antivirus. Inoltre, la funzionalità autorun sui sistemi Windows, abilitata di default, ha permesso una facile propagazione e esecuzione quando una chiavetta USB infetta da CONFICKER veniva collegata a un computer non infetto. A complicare ulteriormente le cose, un numero significativo di macchine non era stato aggiornato per vari motivi: in alcuni casi si trattava di pirateria, in altri di sistemi legacy che eseguivano vecchi programmi supportati solo da versioni precedenti di Windows. L'infezione da Conficker ha messo in evidenza molte problematiche di sicurezza che sono state successivamente affrontate attivamente con aggiornamenti nei nuovi sistemi operativi Windows. Ha anche sottolineato la necessità di applicare patch regolarmente e di migliorare la gestione dei sistemi legacy, specialmente quelli collegati alla rete aziendale.

Malware come Necurs3 hanno sfruttato il DGA per distribuire ransomware, trojan bancari e lanciare campagne di spam massivo, dimostrando quanto possa essere versatile e pericoloso questo tipo di attacco. Per proteggere i sistemi da tali minacce, è fondamentale implementare soluzioni di sicurezza avanzate, come l'analisi del traffico di rete, il blocco proattivo dei domini sospetti e l'uso di tecniche di machine learning per identificare i pattern comportamentali tipici del DGA. L'evoluzione delle botnet e delle tecniche come il DGA richiede un continuo aggiornamento delle difese e una cooperazione tra le forze di polizia e i ricercatori di sicurezza per mitigare efficacemente queste minacce.

In conclusione, gli attacchi basati su Domain Generation Algorithm (DGA) rappresentano una minaccia complessa e sofisticata nel panorama della sicurezza informatica. Il DGA consente ai malware di generare dinamicamente nomi di dominio per comunicare con i server di comando e controllo (C2), rendendo estremamente difficile per i difensori bloccare tali connessioni. Questo meccanismo rende i malware dotati di DGA più resilienti, poiché anche se i domini vengono rilevati e bloccati, l'algoritmo ne crea continuamente di nuovi, garantendo la persistenza dell'infezione.