Analisi statica di base di un Malware

Tempo di lettura: 6 minuti
Data pubblicazione: April 2, 2016

L’analisi statica consiste nell’analizzare un Malware senza avviarlo, studiandone il codice e le funzioni per determinarne il comportamento. Questo articolo vuole essere un’introduzione alle tecniche di base per riconoscerne uno e iniziare ad analizzarlo.

I link sottolineati e in rosso potrebbero risultare dannosi, apriteli con le dovute precauzioni; anche se si scaricheranno malware già riconosciuti e non si avvieranno, consiglio di testare il tutto su una macchina virtuale (io userò Remnux) o su un dispositivo fisico da utilizzare solo per questo scopo. Il file che utilizzerò l’ho scaricato da questa lista ed è questo.

Scansione antivirus

Sembrerà strano, ma il primo utile passo da compiere è fare una scansione antivirus del file in questione in modo da capire subito quanto è considerato dannoso e identificare già cosa possa essere. Una scansione con VirusTotal, mostra che è considerato un Trojan da 22 antivirus su 57, il che fa pensare che del codice maligno sicuramente è presente.

Oltre a farlo analizzare online, potete ricavare l’MD5 con questo comando (in linux)

md5sum setup.exe

e poi cercare su un qualsiasi motore di ricerca la stringa risultante.

Trovare le stringhe

Questa funzione può essere utile per programmi piccoli, o per Malware con poche righe di codice. Digitando

strings setup.exe

mi escono migliaia di righe, quelle utili possono essere:

  1. Nomi con il punto davanti, come questi
    • La sezione .text contiene le istruzioni che eseguirà la CPU (il codice dell’eseguibile);
    • La sezione .rdata solitamente contiene le informazioni da importare ed esportare. Può inoltre salvare dai dati read-only (ossia che si può solo leggere) usati dal programma;
    • La sezione .data contiene i dati globali dell’eseguibile;
    • La sezione .rsrc include le risorse utilizzati dall’eseguibile che non vengono considerate parte di esso, come icone, immagini, menu e stringhe.
  2. Stringhe con la maiuscola, le quali identificano delle specifiche funzioni di Windows, come
  3. Indirizzi IP, che non ho trovato in questo file;
  4. File .DLL, i quali identificano le librerie dinamiche utilizzate da Windows.

Malware ofuscati

Molti malware sono ofuscati in modo da rendere più difficoltoso il riconoscimento. Per esserlo includono almeno le funzioni _LoadLibrary _e GetProcAddress.  Per vedere se è ofuscato o impacchettato potete usare [UPX](http:// upx.sourceforge.net/) con il comando

upx -d setup.exe

Analisi

Con il software peframe vado ad analizzare il file. Per prima cosa scopro che è impacchettato

e rileva anche una sezione sospetta, nella quale probabilmente si trovano le istruzioni maligne

Conclusioni

Come si può osservare, questo tipo di analisi fornisce poche informazioni rilevanti, ma ci permette di stabilire con che tipo di malware abbiamo a che fare e le funzioni che danneggiano il dispositivo.

I software principali per questa analisi sono: