← Torna agli articoli

News · 02 February 2026

Analisi Malware: come capire cosa hai trovato senza fartelo scappare

Analisi Malware: come capire cosa hai trovato senza fartelo scappare

Hai trovato un file sospetto. Forse durante un’attività di Threat Hunting, forse te lo ha segnalato l’EDR, forse l’hai recuperato da un endpoint compromesso. La domanda che ti fai immediatamente è sempre la stessa:

“Cosa diavolo è questo?”

Aprirlo e cliccare due volte sarebbe la risposta sbagliata. Mandarlo subito su VirusTotal senza pensarci potrebbe bruciare un indicatore prezioso. Analizzarlo male ti farebbe perdere informazioni critiche.

In questo articolo ti mostro come approcciare l’analisi malware in modo metodico, partendo da zero.


Il principio base: non eseguire MAI su un sistema reale

Prima di tutto: isola tutto. L’analisi malware si fa sempre in un ambiente controllato e sacrificabile — una VM senza connessione alla rete reale, o una sandbox dedicata.

Il malware moderno ha spesso meccanismi anti-analisi: controlla se è in una VM, verifica la presenza di tool di debugging, guarda il numero di processi in esecuzione. Ma questo è un problema di livello avanzato — per ora l’importante è non analizzare mai su un sistema di produzione.


Fase 1: Analisi Statica

L’analisi statica consiste nell’esaminare il file senza eseguirlo. È il punto di partenza: veloce, sicuro, e spesso sufficiente per farsi un’idea.

Calcola gli hash

Il primo passo è identificare il file univocamente tramite i suoi hash:

# Su Linux/Mac
sha256sum suspicious_file.exe
md5sum suspicious_file.exe

# Su Windows (PowerShell)
Get-FileHash suspicious_file.exe -Algorithm SHA256
Get-FileHash suspicious_file.exe -Algorithm MD5

Con l’hash SHA256 puoi cercarlo su VirusTotal, MalwareBazaar o any.run per vedere se è già noto.

Analizza le stringhe

Le stringhe leggibili all’interno di un binario sono una miniera d’oro: URL, IP, messaggi di errore, nomi di chiavi di registro, percorsi di file:

# Estrai stringhe leggibili (minimo 6 caratteri)
strings -n 6 suspicious_file.exe

# Filtra solo URL
strings suspicious_file.exe | grep -E "https?://"

# Filtra IP
strings suspicious_file.exe | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"

Su Windows puoi usare Strings di Sysinternals:

strings.exe suspicious_file.exe | findstr "http"

Esamina le intestazioni PE

I file eseguibili Windows hanno una struttura chiamata PE (Portable Executable). Strumenti come PE-bear o pestudio ti mostrano:

  • Le DLL importate (se importa VirtualAlloc, WriteProcessMemory, CreateRemoteThread → campanello d’allarme)
  • Le sezioni del file e la loro entropia (alta entropia = possibile packing/cifratura)
  • I metadati del compilatore

Con Python e la libreria pefile:

import pefile

pe = pefile.PE("suspicious_file.exe")

print("[*] Import delle DLL:")
for entry in pe.DIRECTORY_ENTRY_IMPORT:
    print(f"  {entry.dll.decode()}")
    for imp in entry.imports:
        if imp.name:
            print(f"    -> {imp.name.decode()}")

Fase 2: Analisi Dinamica

L’analisi dinamica significa eseguire il malware in un ambiente controllato e osservare cosa fa. Qui vedi il comportamento reale: file creati, chiavi di registro modificate, connessioni di rete effettuate.

Preparazione dell’ambiente

Prima di eseguire il sample:

  1. Snapshot della VM — così puoi tornare allo stato iniziale
  2. Strumenti di monitoring attivi — Process Monitor, Wireshark, Regshot
  3. Connessione di rete simulata — usa INetSim o FakeNet-NG per simulare DNS e HTTP senza traffico reale
# Installa FakeNet-NG su Linux
pip install flare-fakenet-ng
fakenet

Cosa monitorare

Processi:

# Su Linux, monitora i processi creati in tempo reale
watch -n 1 "ps aux | grep -v grep"

# Oppure con auditd
auditctl -a always,exit -F arch=b64 -S execve -k process_exec
ausearch -k process_exec | tail -50

File system:

# Monitora modifiche ai file in tempo reale (Linux)
inotifywait -m -r /tmp /var /home --format '%T %w%f %e' --timefmt '%H:%M:%S'

Rete:

# Cattura tutto il traffico durante l'esecuzione
tcpdump -i eth0 -w malware_traffic.pcap

Fase 3: Sandbox automatizzate

Se non hai ancora l’esperienza o il tempo per fare analisi manuale, le sandbox online sono il tuo migliore amico:

Sandbox URL Note
Any.run any.run Interattiva, gratuita con limiti
Joe Sandbox joesandbox.com Report dettagliati
Triage tria.ge Veloce, buon supporto Linux
Cuckoo Self-hosted Open source, il più flessibile

Attenzione: non caricare mai su sandbox pubbliche file che contengono dati sensibili o credenziali. Il sample viene reso disponibile a tutti.


Indicatori da cercare

Durante l’analisi, documentate tutto ciò che trovate. Questi diventano i vostri IoC (Indicators of Compromise):

# Esempio di report IoC in formato YAML
sample:
  sha256: "a1b2c3d4e5f6..."
  nome: "update_installer.exe"
  tipo: "PE32 executable"

network:
  ip_contattati:
    - "185.220.101.47"
  domini:
    - "cdn-update.evil-domain.com"
  protocolli: ["HTTP", "DNS"]

filesystem:
  file_creati:
    - "C:\\Users\\Public\\svchost32.exe"
    - "C:\\Windows\\Temp\\data.bin"
  chiavi_registro:
    - "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\Updater"

comportamento:
  - "Injetta codice in explorer.exe"
  - "Modifica il file hosts"
  - "Disabilita Windows Defender tramite chiave registro"

Un caso reale semplificato

Qualche tempo fa mi è capitato di analizzare un file chiamato fattura_marzo.pdf.exe (sì, doppia estensione — classico). L’analisi statica ha rivelato:

  • Importava URLDownloadToFile → scaricava qualcosa da internet
  • Una stringa in chiaro: http://185.x.x.x/stage2.bin
  • Entropia della sezione .text altissima → packed

Nell’analisi dinamica: si è connesso all’IP, ha scaricato un secondo file, lo ha iniettato in notepad.exe tramite process hollowing, poi ha iniziato a contattare un C2.

Tutto questo senza mai aprire il file su un sistema reale.


Conclusione

L’analisi malware è una disciplina che si impara sul campo. Ogni sample è diverso, ogni attaccante ha il suo stile. Ma il metodo è sempre lo stesso: statica prima, dinamica dopo, documenta tutto.

Non devi diventare un reverse engineer da zero — anche solo le fasi base che ti ho mostrato ti permettono di capire con buona approssimazione cosa hai davanti, e di produrre IoC utili per il resto del team.

Nel prossimo articolo cambieremo prospettiva e parleremo di phishing: come riconoscerlo e come risponderci — perché la maggior parte del malware che analizzerai è arrivato proprio via mail. 📧