Nella Parte Prima abbiamo approfondito il discorso dell’analisi statica di un Malware introducendo l’astrazione di un dispositivo, i principali operatori assembly e, per ultimo, i software più utilizzati per questo tipo di operazioni.
Nella Parte Seconda abbiamo imparato ad utilizzare il software IDA, che, con i suoi menu, funzioni ed opzioni, è il software principale utilizzato per effettuare un’analisi statica.
In questo terzo e ultimo articolo della serie introdurrò alcune funzioni di Windows che utilizzano i Malware per infettare i nostri dispositivi.
Uno dei comportamenti più comuni nei Malware è quello di creare o modificare file, cercando di non essere rilevato rinominandoli come file sicuri. Osservando queste modifiche si può iniziare a categorizzarlo, ad esempio se inizia a creare dei file e salva il comportamento del nostro browser predefinito, il programma sarà probabilmente uno spyware.
Le funzioni utilizzate da Windows per queste modifiche sono:
Il registro di Sistema contiene informazioni a cui il sistema operativo fa riferimento mentre viene utilizzato, come i profili degli utenti, le applicazioni installate nel computer e le impostazioni dello stesso. I Malware utilizzano il registro per avere persistenza nel sistema, inserendo stringhe che gli permettono di avviarsi in modo automatico all’avvio del sistema. Il registro è composto da un gruppo di chiavi, sottochiavi e valori. Le chiavi/cartella predefinite sono:
Le funzioni principali del registro sono:
Se volessi cercare quando il mio programma apre il registro, basta che su IDA mi posiziono sulla scheda del disassemblatore (consiglio di provare sia con IDA-ViewA che con IDA-ViewB), clicco sul menù Search->text. Da li cerco la stringa che mi interessa
Se lo trova, comparirà una nuova scheda con tutte le ripetizioni della stringa ricercata. Facendo doppio click su una delle voci, ci porterà al disassemblatore e potremo vedere cosa sta per fare.
Scoperto il nome della funzione, possiamo ora cercare le istruzioni che andrà ad eseguire con il registro aperto. Per trovarle, basta fare tasto Destro->Jump to operand. Trovata la struttura ad albero che ci interessa, con un pò di pazienza bisogna cercare di capire cosa sta facendo il programma studiando il codice Assembly.
Se vogliamo controllare se il Malware si connette alla rete per inviare informazioni che riesce a sottrarre dal nostro dispositivo, le stringhe che si possono cercare sono:
I file DLL sono utilizzati per fornire librerie e moduli ai programmi. L’utilizzo di esse consente di migliorare la modularità del codice, il riutilizzo dello stesso ed utilizzare in maniera più efficiente la memoria. Una DLL è quindi una libreria che contiene codice e dati che possono essere utilizzati da più programmi contemporaneamente. i Malware utilizzano i DLL in tre modi:
Disassemblati, i file DLL appaiono uguali ad un file .exe, per cui non abbiate paura di analizzarli. Se utilizzano le DLL predefinite di Windows possono darci anche più informazioni rispetto al file eseguibile.
Spero con questi tre articoli di essere riuscito ad introdurre e spiegare, anche per chi è alle prime armi, come funziona un’analisi statica. Se a qualcuno vuole approfondire ulteriormente, suggerisco di leggere Pratical Malware Analysis e Reverse Engineering Code with IDA Pro. Sempre inerente ai Malware i prossimi articoli saranno incentrati sull’analisi dinamica. Se avete notato errori o vi è talmente piaciuto l’argomento e volete scrivere articoli tutti vostri, basta un messaggio!