§ 5.1
Metodologia di Analisi Malware
L'analisi malware segue un processo strutturato che bilancia sicurezza dell'analista e profondità dell'analisi. Esistono due approcci principali: analisi statica (esame del codice senza esecuzione) e analisi dinamica (esecuzione controllata in sandbox per osservare il comportamento). Nella pratica professionale si usano entrambi in combinazione.
L'ambiente di analisi deve essere isolato e reversibile: VM con snapshot, rete isolata (host-only o simulata con INetSim), strumenti di monitoring pre-configurati (Process Monitor, Wireshark, Regshot). Mai analizzare malware su sistemi di produzione o connessi a reti aziendali reali.
§ 5.2
Analisi Statica con Ghidra e IDA Pro
Ghidra è il tool di reverse engineering sviluppato dalla NSA e rilasciato open source nel 2019. Supporta decine di architetture (x86, ARM, MIPS, PowerPC, RISC-V, Dalvik) e fornisce decompilatore integrato che trasforma l'Assembly in pseudo-C leggibile. È diventato lo standard de facto per la community grazie alla sua gratuità e all'ecosistema di plugin.
IDA Pro è lo standard industriale a pagamento: disassembler più maturo, supporto superiore per codice offuscato e packed, IDA Python per automazione, Hex-Rays Decompiler (F5) per x86/x64/ARM. Molti analisti usano entrambi in parallelo, sfruttando i punti di forza di ciascuno.
1. Importa il binario → analisi automatica (attendere completamento) → 2. Vai a entry point (symbol tree → entry) → 3. Usa F per decompilare ogni funzione → 4. Rinomina variabili e funzioni man mano che ne comprendi il ruolo → 5. Cerca WinAPI sospette: CreateRemoteThread, VirtualAllocEx, WriteProcessMemory (injection), RegSetValue (persistence), InternetOpen (C2).
Le principali aree da analizzare in un malware PE Windows:
§ 5.3
Analisi Dinamica con ANY.RUN
ANY.RUN è una sandbox interattiva cloud-based che permette di eseguire malware in un ambiente Windows virtuale e osservare in tempo reale le sue azioni: processi creati, file modificati, connessioni di rete, chiavi registry modificate. A differenza delle sandbox automatizzate (Cuckoo), ANY.RUN è interattiva: l'analista può cliccare, inserire input e guidare l'esecuzione.
Il report ANY.RUN include: behavior graph (albero dei processi), network indicators (IP, domini, HTTP requests), file IoC (file creati/modificati/eliminati), registry IoC, MITRE ATT&CK matrix con tecniche rilevate, e Suricata/Snort alerts sul traffico di rete.
§ 5.4
Reverse Engineering di APK Android
Un file APK è essenzialmente un archivio ZIP contenente: classes.dex (bytecode Dalvik/ART), AndroidManifest.xml (permessi, componenti, intent filters), resources.arsc (risorse), e librerie native .so (ARM/x86). L'analisi di malware Android inizia sempre dal manifest per capire i permessi richiesti e i componenti esposti.
I malware Android comuni includono: banking trojan (overlay attack, accessibility abuse), spyware (SMS exfil, GPS tracking, audio recording), RAT (Remote Access Trojan), adware aggressivo, e ransomware che cifra i file dell'utente.
Red flag nel manifest: BIND_ACCESSIBILITY_SERVICE (keylogging/overlay fraud), BIND_NOTIFICATION_LISTENER_SERVICE (intercettazione OTP), BIND_DEVICE_ADMIN (ransomware, blocco schermo), receiver per BOOT_COMPLETED (persistence al riavvio), permessi READ_SMS + SEND_SMS (banking trojan, intercettazione OTP).
§ 5.5
JADX e MobSF: Workflow Completo
JADX (Java Decompiler for Android) converte il bytecode DEX in codice Java leggibile. Il suo punto di forza è la qualità della decompilazione anche in presenza di offuscamento ProGuard. La GUI JADX permette di navigare il codice, cercare stringhe, cross-reference su metodi e field.
MobSF (Mobile Security Framework) è una piattaforma open source per l'analisi automatizzata di applicazioni mobile: statica (APK, IPA, APPX) e dinamica (richiede emulatore/device). Il report MobSF include: security score, liste di permessi, hardcoded secrets, API insicure, CVE nelle librerie incluse, e tracce di traffico di rete durante l'analisi dinamica.
§ 5.6
Analisi del Codice Assembly
La comprensione dell'Assembly x86/x64 è fondamentale per l'analisi di malware Windows in quanto i decompilatori (Ghidra, Hex-Rays) producono pseudo-C non sempre accurato, specialmente in presenza di offuscamento, code virtualization (VMProtect, Themida) o handcrafted assembly.
Le strutture ricorrenti da riconoscere in Assembly includono: prologhi/epiloghi di funzione, chiamate a funzione, loop (jmp/jne patterns), confronti condizionali (cmp + jz/jnz/jl/jg), e le calling convention (cdecl, stdcall, fastcall, System V AMD64 ABI).
Registri x86-64 fondamentali da memorizzare per l'analisi Assembly:
Strumenti consigliati per praticare l'analisi Assembly: GDB + pwndbg/peda (debug interattivo Linux), x64dbg / OllyDbg (debug Windows con GUI), Ghidra (disassembly + decompilazione), Cutter (frontend gratuito per radare2), piattaforme CTF come pwn.college e HackTheBox per esercitarsi su binari reali.