Ultima modifica da un moderatore:
Malware Analysis - Reversing e Strumenti per Windows - Parte 3
Nella precedente parte del corso sono illustrate delle tecniche per rilevare comportamenti sospetti usando un approccio blackbox. In questa parte verranno trattati alcuni dei vari strumenti che il Malware Analyst ha a disposizione per il suo lavoro quando l'analisi passiva non è sufficiente.
1 Analisi su eseguibili nativi compilati
Per gli eseguibili compilati i nostri migliori alleati sono i debugger e strumenti di analisi del PE. Come debugger abbiamo ampia scelta, ecco una lista con alcuni dettagli e i loro maggiori pro:
IDA - The Interactive Disassembler
IDA è probabilmente il più famoso al momento, anche la versione free ha molte funzionalità utilissime, oltre al disassembler, l'hex editor, ricerca sulle stringhe, sulle tabelle di import ed export ha anche una modalità grafo per rappresentare le varie funzioni e i loro percorsi condizionali.
Ghidra
Ghidra, sviluppato dalla NSA e recentemente rilasciato al pubblico fornisce oltre al disassembler/debugger un decompilatore che tenta di rappresentare il sorgente in C partendo dall'assembler.
x64dbg
x64dbg ed ImmunityDebugger nonostante l'aspetto più "classico" (simile a ollydbg) hanno tutte le funzionalità necessarie al reversing oltre che moltissimi plugin per diversi scopi, ad esempio ScyllaHide per nascondere il debugger da tattiche di anti-debug.
WinDbg
WinDbg, debugger Microsoft avanzato, può risultare molto ostico per via dei suoi innumerevoli comandi difficili da memorizzare ma è molto potente, specialmente per quanto riguarda il Kernel Debugging.
Può tornare utile anche CFF Explorer che fornisce un'interfaccia grafica intuitiva per esplorare o modificare gli header del PE.
2 Analisi su eseguibili .NET
Il codice dei software dotNet (C# e VB principalmente) viene trasformato in codice IL (Intermediate Language) nell'eseguibile finale. Quando eseguito, il CLR (Common Language Runtime) trasforma il bytecode IL in codice macchina tramite JIT (Just-In-Time compilation) e a quel punto è direttamente eseguibile dalla CPU. Questo rende i comuni debugger per codice nativo molto complessi da usare, ma al contempo molto più semplice ricostruire un sorgente fedele all'originale partendo dal bytecode IL, per questo motivo ci servono dei software appositi:
- dnSpy, potente decompilatore .NET, contiene un debugger ed un'interfaccia simile a quella di Visual Studio
- .NET Reflector, a pagamento
- de4dot
- ILSpy
3 Analisi su script
Essendo gli script semplici file di testo è sufficiente aprirli con un editor per vederne il contenuto. Questo potrebbe essere offuscato, potete cercare un deoffuscatore automatico per lo specifico linguaggio oppure scrivere a vostra volta uno script per ripulirlo.
In certi casi gli script potrebbero essere inclusi in pacchetti di installazione eseguibili (es. pyinstaller per Python), in questi casi è sufficiente estrarre gli script staticamente o aspettare che vengano estratti su filesystem ed interrompere l'esecuzione.
4 Strumenti per altri linguaggi
Java - strumenti come jadx e jdgui cercano di tradurre il bytecode Java per JVM (Java Virtual Machine) nuovamente in codice sorgente.
AutoIt - myAutToExe e Exe2Aut estraggono gli script AutoIt contenuti nelle risorse dell'eseguibile stub scritto in Visual C++ in file sorgenti .au3 in modo automatico.
5 Strumenti generici
Sysinternals - Pacchetto Microsoft che include moltissimi software essenziali per un'ampia gamma delle internals del sistema operativo Windows.
DetectItEasy (DIE) è un progetto opensource che fornisce informazioni su file eseguibili. Grazie alle sue firme può identificare il linguaggio in cui è stato scritto il programma e, se presente, il nome del packer/offuscatore utilizzato per proteggerlo. Questo velocizzerà la vostra analisi, indirizzandovi subito sul prossimo strumento da usare per il reversing.
Nella quarta e ultima parte di questo corso ci sarà un laboratorio CTF nel quale potrete dare la caccia a dei malware relativamente inoffensivi in macchina virtuale.
6 Risorse aggiuntive
Di seguito sono elencati tutti i capitoli del corso ed ulteriori risorse utili per comprendere al meglio l'arte dell'analisi di malware e gli strumenti necessari:
- Primo articolo: Malware analysis cosa è, come funziona e perché è importante conoscerla
- Secondo articolo: Malware Analysis e analisi blackbox su Window
- Terzo articolo: Malware Analysis - Reversing e Strumenti per Windows
- Quarto articolo: Malware Analysis - Laboratorio di pratica con CTF
- Tutti gli strumenti necessari per il Reverse Engineering