Per comprendere il comportamento di un malware si eseguono un’analisi statica e una dinamica; gli strumenti che si occupano di questo, di solito, vengono utilizzati in un ambiente emulato e virtualizzato.
Avviene però, a volte, che un malware cerchi di eludere queste analisi individuando l’ambiente di esecuzione e non permettendo di fatto a questi tool di identificarne il vero comportamento.
I malware più avanzati, dunque, implementano diversi controlli per individuare un’esecuzione in un ambiente emulato; in questo modo, il software può tentare di variare il proprio comportamento, nascondendo le azioni malevole e continuando così indisturbato il proprio lavoro.
In pratica, quando uno di questi controlli individua l’esecuzione in un possibile emulatore, il malware modifica il suo comportamento, risultando innocuo oppure semplicemente terminando l’esecuzione.
Nel mondo Android, dove l’analisi in un emulatore è quasi d’obbligo, questo comportamento è più accentuato.
L’emulatore di Android è basato sull’emulatore open source QEMU (Quick Emulator). QEMU emula un’architettura traducendo le istruzioni della CPU emulata in istruzioni della CPU reale, ovvero del processore che ospita l’emulatore. Essendo l’emulatore di Android un fork di QEMU, ha tutte le sue caratteristiche ma condivide anche gran parte dei metodi che i malware utilizzano per identificarlo.
Per analizzare un malware, si cerca di comprenderne il comportamento in modo da poter valutare i rischi concreti derivanti dalla sua esecuzione; per osservare l’impatto, sull’host e sulla rete, si effettuano diverse analisi sul codice incriminato. È preferibile svolgere l’analisi dinamica in un ambiente controllato e monitorato, dunque in un emulatore.
Per eseguire un’analisi dinamica, visto il numero e la complessità dei malware, si usano degli appositi strumenti che, in gran parte, sono basati sulla virtualizzazione o sull’emulazione di uno smartphone.
Molti malware includono delle tecniche di individuazione dell’emulatore, in modo da rendere difficoltosa, quando non impossibile, l’analisi attraverso tool e tecniche di reverse engineering specifiche.
Da una parte è conveniente svolgere le analisi in un ambiente virtualizzato, dall’altra parte, per un malware, non essendoci usi significativi dell’emulazione e della virtualizzazione su dispositivi mobili, è ragionevole sfruttare le differenze tra ambiente emulato e ambiente reale per modificare il proprio comportamento.
Sfruttando le differenze tra ambiente virtuale e reale, un malware può identificare la propria esecuzione in un emulatore e modificare di conseguenza il proprio comportamento. Differenze che riguardano ad esempio elementi hardware non perfettamente implementati, componenti hardware e software parzialmente o completamente non virtualizzati (presenza e gestione dei vari sensori), durata dell’esecuzione, informazioni sul dispositivo (codice IMEI, codice IMSI, versione della build del SO), etc.
Possiamo dividere le informazioni usate per individuare un emulatore essenzialmente in tre categorie:
Ad esempio, alcune tecniche di individuazione appartenenti alle categorie precedenti sono le seguenti:
Inoltre, possono essere analizzate anche le differenze dovute alla natura dei due sistemi (emulatore e dispositivo fisico), che, per quanto simili, nascono per esigenze diverse: ad esempio, si può vedere se ci sono, e quanti sono, i contatti, si può ispezionare il log delle chiamate, il numero di applicazioni installate oppure il numero e la lunghezza degli SMS.
Abbiamo detto che per poter analizzare un malware e scoprire eventuali tecniche anti-emulazione, abbiamo bisogno di eseguire un’analisi dinamica. Per carpirne il comportamento abbiamo attualmente poche strade:
Tra le possibili soluzioni, più onerose delle precedenti, e sicuramente più drastiche, c’è la possibilità di:
Gran parte degli attuali strumenti, che si occupano dell’analisi dei malware, non prevedono la personalizzazione dei propri parametri. In questo modo, rendono immediato il riconoscimento dell’ambiente di esecuzione da parte di un malware. Come abbiamo visto, però, ci sono delle soluzioni per rendere un’analisi, anche se non perfetta, più precisa e meno dispendiosa.
A cura di: Gianluigi Spagnuolo
Nel panorama odierno della sicurezza informatica, la protezione degli endpoint rappresenta un obiettivo imprescindibile per…
I numeri dell’evento Oltre 1000 ospiti, 42 relatori, 20 interventi tematici e 5 Tavole Rotonde:…
Group-IB è un fornitore, con sede a Singapore, di sistemi ad elevata attendibilità per il…
Le interazioni di natura digitale, su rete pubblica o all’interno di reti private, hanno assunto…
La Commissione Europea ha di recente ricordato come “Artificial intelligence (AI) is not science fiction;…
Di seguito il programma della Cyber Crime Conference 2024, che avrà luogo a Roma nei…