Cosa accade quando un malware si accorge di trovarsi in un ambiente virtuale e ne elude i controlli di sicurezza?

  1. Cos’è la Sandbox Evasion?
  2. Tecniche di Sandbox Evasion
  3. Come si può contrastare la Sandbox Evasion?
sandbox evasion

Negli ultimi decenni l’evoluzione tecnologica ha mutato radicalmente il nostro modo di vivere e di lavorare.
Grazie alle connessioni globali, l’espansione dell’Internet of Things e la digitalizzazione dei servizi sempre più marcata, il volume dei dati gestiti giornalmente è aumentato esponenzialmente. Se da un lato tutto ciò ha costituito un beneficio in termini di efficienza e innovazione per utenti e imprese, dall’altro ha ampliato il raggio di azione per attori malevoli e collettivi cybercriminali. Minacce un tempo considerate impossibili, oggi sono una realtà concreta.
Di sicuro il malware è l’elemento che maggiormente le rappresenta, in quanto evolutosi in maniera tale da essere divenuto un pericolo critico per la sicurezza informatica.

L’innovazione più preoccupante è legata all’elusione delle tecniche di rilevamento, poiché permette al malware di infettare il sistema preso di mira, passando inosservato. Ciò ha dato origine alla sandbox evasion.
Ma come sempre, andiamo con ordine e affrontiamo per gradi l’argomento.

Cos’è la Sandbox Evasion?

Si potrebbe pensare che si tratti di una tecnica univoca o di una singola metodologia per sfuggire ai controlli.
Tale affermazione non potrebbe essere più errata di così.

Questo perché la sandbox evasion è un insieme di varie tecniche messe a punto dai cybercriminali per evitare che il loro malware venga rilevato dai sistemi di sicurezza e isolato all’interno di una sandbox.
Queste altro non sono che ambienti virtualizzati progettati per eseguire i software malevoli in uno spazio sicuro, separato dai sistemi operativi e dalle reti reali. Grazie ad esse è possibile monitorare il comportamento di un malware senza il rischio di compromettere l’infrastruttura dell’organizzazione.

Se in passato questa strategia ha permesso l’isolamento e lo studio approfondito del software malevolo, oggigiorno questa sicurezza è venuta meno.
Questo perché i moderni malware sono dotati di moduli specifici in grado di distinguere l’ambiente in cui si trovano. Sia esso il sistema operativo vero e proprio, o una macchina virtuale. Nel momento in cui il malware rileva di essere in una sandbox, adotta tutta una serie di comportamenti imprevedibili al fine di risultare innocuo ed essere portato fuori dall’ambiente virtuale. In tal modo, questi riesce letteralmente a “evadere”, bypassando i controlli di sicurezza e potendo così attaccare il sistema reale senza alcun problema.

Tra i comportamenti maggiormente osservati nel malware dagli esperti di sicurezza, si citano:

  • ritardo della sua esecuzione;
  • evitare volutamente di mettere in atto le sue azioni dannose;
  • modifica repentina del proprio codice.

Tecniche di Sandbox Evasion

Come spiegato nel paragrafo precedente, i malware sfruttano svariate tecniche per sfuggire ai controlli della sandbox.
Queste sono messe a punto in modo da identificare sin dal principio le caratteristiche tipiche di un ambiente virtuale e sfruttarne le limitazioni.
Vediamone insieme qualcuna.

Rilevamento di artefatti di virtualizzazione

VMware, VirtualBox e Hyper-V sono solo alcune delle sandbox maggiormente impiegate oggigiorno.
Molto spesso queste lasciano alcune tracce riconoscibili all’interno del sistema su cui sono eseguite, che prendono il nome di artefatti. Il malware va proprio alla loro ricerca, in modo da identificare sin dal principio la presenza di una macchina virtuale. Tra gli artefatti più comuni si indicano:

  • file;
  • servizi;
  • processi;
  • driver specifici della sandbox;

Quando un malware infetta un sistema, analizza immediatamente il registro di sistema e la memoria, alla ricerca di processi noti associati agli ambienti di virtualizzazione appena citati, come ad esempio “vmtoolsd.exe“, o “vboxguest.sys“. Una tecnica di ricerca più avanzata prevede l’esecuzione di query sui registri di sistema. In tal modo il malware può andare a colpo sicuro nell’individuazione delle sandbox, in quanto rileva le chiavi di registro a queste associate. Nel momento in cui la sua query restituisce dei valori corrispondenti a quelli presenti nella sua lista, il software malevolo potrebbe interromperne l’esecuzione, oppure eseguire un payload alternativo innocuo. In tal modo realizza la sua sandbox evasion.

Un malware in possesso di questa capacità è Vawtrak. Noto anche come Neverquest, si tratta di un banking trojan che sfrutta la ricerca di artefatti per il rilevamento di ambienti virtuali.

Verifica delle risorse hardware

Pur di risparmiare al massimo le risorse di sistema, le sandbox operano con configurazioni hardware molto limitate.
Consci di ciò, gli attori malevoli hanno ben pensato di dotare i propri malware di un modulo capace di verificare i parametri del sistema su cui sono eseguiti. Ad esempio possono rilevare la quantità di RAM complessiva, il numero di processori in uso, o la capacità totale del disco rigido.

Basti pensare che solitamente una tipica configurazione da sanbox è la seguente:

  • CPU single-core;
  • 1 GB di RAM, o addirittura meno (128 MB di default su VirtualBox);
  • 20 GB di hard disk;

In uno scenario d’uso reale, il malware penetra nel sistema ed esegue questo controllo. Se rilveva questo tipo di configurazione hardware, deduce immediatamente di essere eseguito in una sandbox. Questo perché non si tratta di una configurazione reale, ma di una simulata, in quanto non corrispondente ai requisiti hardware degli standard odierni. Molto spesso queste informazioni sono reperite direttamente dal BIOS di sistema o dal firmware stesso, che ricordiamo essere presente anche nelle sandbox, in quanto riproducenti in toto una configurazione di sistema reale.

Tra i malware dotati di verificare le risorse hardware, si indica FinFisher. Noto principalmente come software snoopware, questo può accorgersi della natura del sistema su cui è eseguito, in base al numero di core presenti nella CPU e al quantitativo di RAM installata.

Ritardo dell’esecuzione (sleep/delay)

La tecnica prediletta dai malware per attuare la propria sandbox evasion, è il ritardo programmato della propria esecuzione.
Gli attori malevoli, consci che molte sandbox limitano la durata dell’esecuzione di codice in virtù del risparmio di risorse, hanno ben pensato di sfruttare questa limitazione a proprio vantaggio. Molti malware hanno così integrato al loro interno un microcontrollore che introduce lunghe pause temporali, ritardando di fatto l’esecuzione del payload malevolo sino a quando la sandbox non termina la propria analisi.

In un esempio di scenario reale, un malware usa un comando sleep per ritardare l’esecuzione di codice malevolo di 30 minuti. La sandbox viene così ingannata, in quanto le sue analisi di controllo non durano così a lungo e le impediscono di rilevare il codice dannoso prima che questo sia messo in atto. Una sua variante più avanzata prevede tecniche anti-debugging, o la manipolazione diretta delle API, al fine di modificare il tempo di azione della sandbox stessa.
In alcuni casi questi possono spingersi perfino oltre, adottando una tecnica che prevede il monitoraggio del ciclo di clock, per verificare se il sistema sta manipolando il tempo di esecuzione in modo anomalo. Questo perché, in fase di analisi, il ciclo di clock può venire alterato dalla sovrapposizione di più processi specifici.

Il banking trojan Ursnif adotta questa strategia per eludere i controlli della sandbox. Inserisce direttamente i comandi sleep nel proprio codice, al fine di attendere il termine dell’analisi, per poi eseguire immediatamente dopo il payload malevolo. C’è da aggiungere che alcune sue varianti possono prolungare il proprio stato di sleep anche per diverse ore.

Interazione umana simulata

Essendo ambienti virtuali, le sandbox non possono simulare interazioni umane dirette, come movimenti del cursore, digitazioni o apertura di finestre.
I malware più sofisticati sono capaci di rilevare questa assenza di interazioni, associandolo alla presenza di una sandbox effettiva.
Se ciò accade, il payload malevolo non viene eseguito. Nello scenario d’uso reale, il malware può attendere il movimento del mouse, o l’interazione umana con la tastiera. Molto spesso ciò si realizza con la verifica diretta dell’attività delle periferiche citate, confrontando la velocità e la traiettoria del cursore, in modo da determinare un’origine umana e non artificiale.

Due ransomware adottano questa tecnica: Locky e Cerber.

  1. Il primo esegue una scansione sui processi attivi, andando a ricercare gli indicatori tipici di Wireshark e Process Monitor. Appena uno dei due è rilevato, il ransomware interrompe la propria esecuzione.
  2. Il secondo, invece, verifica il tempo totale di esecuzione rispetto al tempo di sistema. Se rileva che l’esecuzione è stata troppo breve, allora sospende l’esecuzione del codice dannoso.

Come si può contrastare la Sandbox Evasion?

Per contrastare le sofisticate tecniche di sandbox evasion, organizzazioni ed esperti di sicurezza informatica adottano approcci multilivello e dinamici. Di seguito sono riportati alcuni consigli per sfruttare al meglio la sicurezza delle sandbox.

  • Impiegare una sandbox con analisi comportamentale
    Le soluzioni di sicurezza dovrebbero basarsi non solo sulle firme dei malware, ma anche sull’analisi dei comportamenti sospetti, come l’accesso anomalo ai file di sistema o alle risorse di rete.
  • Simulare configurazioni hardware realistiche
    È importante che le sandbox abbiano risorse come RAM e CPU configurate per assomigliare a sistemi reali, rendendo più difficile per il malware rilevare un ambiente simulato. Configurazioni troppo basse, o irrealistiche per gli standard odierni, sono facilmente rilevabili e contrassegnabili come finte.
  • Simulare interazioni umane
    Alcuni malware restano inattivi se non rilevano movimenti del mouse o input da tastiera. Utilizzare sandbox che simulano queste attività può aiutare a sbloccare il loro comportamento malevolo.
  • Manipolare i ritardi di esecuzione del malware
    Poiché i malware ritardano il ritardo dell’esecuzione del loro payload malevolo, bisognerebbe far sì che le sandbox accelerino questi ritardi. Questo per consentire l’esecuzione completa del malware durante l’analisi.
  • Nascondere i processi di sandboxing
    L’impiego di una sandbox in grado di nascondere i propri processi di monitoraggio, fa sì che i malware non possano rilevarli, comportandosi così come software dannoso e risultare rilevabili alle analisi.
  • Adottare ambienti ibridi di sandboxing
    Le sandbox che combinano virtualizzazione e ambienti reali sono più difficili da identificare per i malware, riducendo la loro capacità di evasione.
  • Integrare la sandbox con altre soluzioni di sicurezza
    Le sandbox dovrebbero far parte di un ecosistema più ampio che include sistemi di rilevamento delle intrusioni, monitoraggio della rete e intelligenza artificiale, per una protezione completa e multilivello.

In base a quanto si è discusso, si può dedurre come la sandbox evasion rappresenti una delle principali sfide nell’eterna lotta ai malware e agli altri software malevoli. Le tecniche avanzate di evasione e camuffamento, rendono sempre più difficile un loro rilevamento preventivo, costringendo gli esperti di sicurezza a sviluppare nuove strategie difensive. L’investimento in sandbox avanzate, capaci di simulare in toto un sistema reale, unito a tecniche basate su intelligenza artificiale, potrebbero rappresentare un netto passo in avanti nel contrasto delle minacce e la riduzione dei rischi che queste rappresentano.