Un dump della memoria è un file contenente un’istantanea della memoria di sistema o di un’applicazione in un preciso momento. Viene utilizzato principalmente per il debug e la risoluzione dei problemi, fornendo a sviluppatori e tecnici informazioni preziose sull’esatto stato del sistema o del processo quando si è verificato un crash o un errore.
In informatica forense, un dump di memoria è l’estrazione e la copia completa del contenuto volatile della memoria RAM (o memoria di sistema) di un dispositivo in un momento specifico, tipicamente in risposta a un malfunzionamento o durante un’indagine. Questo file dump contiene dati preziosi per l’analisi, come processi attivi, connessioni di rete, informazioni sulla memoria del sistema e artefatti di sistema, che possono essere analizzati con strumenti forensi come Volatility per identificare attività dannose o cause di errori.
In DFIR la sequenza tipica è dump della RAM → triage veloce → imaging del disco:
- lancia gli strumenti da supporto esterno (USB forense) e registra ogni comando;
- scrivi su un disco esterno dedicato (
/mnt/usb/CASE123/memory/); - calcola SUBITO l’hash del dump e salvalo accanto al file;
- se puoi, spegni servizi rumorosi (sync cloud, AV invadenti) ma non disconnettere bruscamente la macchina se ti serve il contesto live (processi, rete).
Windows (consigliato: WinPMem o DumpIt)
WinPMem (open-source, RAW)
Esegui come amministratore dalla tua chiavetta:
# crea cartella caso
mkdir E:\CASE123\memory
# dump in RAW
E:\tools\winpmem\winpmem_mini_x64.exe E:\CASE123\memory\CASE123_mem.raw
# hash
CertUtil -hashfile E:\CASE123\memory\CASE123_mem.raw SHA256 > E:\CASE123\memory\CASE123_mem.sha256.txt
Note: winpmem_mini_x64.exe produce RAW ed auto-scarica il driver a fine acquisizione:
- il programma winpmem_mini_x64.exe è la versione “minimal” del tool WinPmem, un’utility open source per l’acquisizione della memoria fisica (RAM) su sistemi Windows a 64 bit. La denominazione “mini” indica che questa versione genera esclusivamente immagini di memoria in formato RAW e non in formati più complessi come AFF4, che erano supportati da versioni precedenti;
- per accedere alla memoria fisica, WinPmem richiede un driver in modalità kernel, necessario per leggere direttamente dallo spazio di memoria a basso livello. L’eseguibile winpmem_mini_x64.exe è autosufficiente: contiene internamente sia il codice dell’applicazione utente sia i driver sia a 32 che a 64 bit. Durante l’esecuzione, carica automaticamente il driver appropriato nel sistema. Al termine dell’acquisizione, il driver viene automaticamente scaricato (unloaded), liberando le risorse kernel e riducendo le tracce residue dell’operazione, come confermato nella documentazione ufficiale del progetto Velocidex e nelle guide tecniche di RedPacket Security.
DumpIt (Magnet Forensics, GUI/CLI rapidissima)
Esegui DumpIt.exe (x64/ARM64 disponibili) → produce un crash dump della RAM, velocissimo per incident response, è considerato uno dei tool di riferimento per la live acquisition forense della memoria RAM su Windows per la facilità d’uso, rapidità e compatibilità con i principali strumenti di analisi.
Caratteristiche principali
- Semplicità d’uso: basta avviare il programma (ad esempio da una chiavetta USB); una finestra chiede conferma e acquisisce in automatico un’immagine (dump) della memoria fisica, salvandola nella stessa cartella dell’eseguibile oppure dove indicato tramite parametro CLI (
/O percorso). - Rapidità: può acquisire dump completi anche da macchine con molta RAM (una memoria da 32GB viene acquisita in circa 6 minuti, dati di test).
- Portabilità: non necessita di installazione né di software aggiuntivo; è eseguibile direttamente da dispositivi rimovibili—utile in scenari incident response e analisi su macchine compromesse.
- Compatibilità: genera dump compatibili con framework di analisi come Volatility, Rekall, Comae Platform e WinDbg.
- Affidabilità: evita di causare Blue Screen (BSOD) durante la cattura, conservando lo stato della macchina.
- Output: oltre al file
.dmpdella memoria, può generare un file di testo con dettagli come nome macchina, timestamp UTC e SHA256 del dump.
Linux (consigliato: AVML oppure LiME)
AVML (Microsoft) – zero build sul target
AVML (Azure Virtual Machine Local) è uno strumento open source sviluppato da Microsoft per l’acquisizione forense della memoria volatile (RAM) su sistemi Linux, con capacità di operare anche su macchine virtuali Azure e ambienti fisici o cloud. La memoria catturata include informazioni su processi, connessioni di rete, credenziali temporanee, chiavi di cifratura e codice eseguibile in RAM, rendendo AVML fondamentale per la memory forensics moderna.
sudo mkdir -p /mnt/usb/CASE123/memory
cd /mnt/usb/CASE123/memory
# dump completo
sudo /media/usb/tools/avml CASE123_mem.lime
# immagine compressa (snappy) – comoda se spazio limitato
sudo /media/usb/tools/avml --compress CASE123_mem.lime.compressed
# opzionale: converti a LiME non compresso per alcuni workflow
sudo /media/usb/tools/avml-convert CASE123_mem.lime.compressed CASE123_mem.lime
# hash
sha256sum CASE123_mem.lime* | tee CASE123_mem.sha256.txt
Caratteristiche principali
- Open Source: distribuito pubblicamente da Microsoft su GitHub, accessibile e verificabile in ambiente forense.
- Compatibilità: funziona su distribuzioni Linux a 64 bit, incluse macchine virtuali in Azure, server fisici e container.
- Acquisizione sicura: utilizza API di basso livello del kernel per leggere la memoria fisica in maniera controllata, riducendo il rischio di crash del sistema o di modifiche alle evidenze.
- Formato output: genera file di dump in formato LiME-compatible (Linux Memory Extractor) o RAW, permettendo l’analisi successiva in strumenti come Volatility o Rekall.
- Uso flessibile: può essere eseguito localmente o da remoto nel contesto di investigazioni cloud attraverso script automatizzati o orchestrazioni Azure Monitor.
Note: AVML usa /dev/crash / /dev/mem / /proc/kcore automaticamente; supporta LiME come formato e fornisce avml-convert. Se è attivo kernel_lockdown l’acquisizione può fallire.
LiME (kernel module) – massima compatibilità
LiME (Linux Memory Extractor) è un modulo kernel caricabile (Loadable Kernel Module, LKM) progettato per l’acquisizione forense della memoria volatile su sistemi Linux e dispositivi basati su Linux, come Android.
sudo mkdir -p /mnt/usb/CASE123/memory
cd /path/to/LiME # dove hai il lime.ko compilato per quel kernel
# dump completo
sudo insmod ./lime.ko "path=/mnt/usb/CASE123/memory/CASE123_mem.lime format=lime"
# hash
sha256sum /mnt/usb/CASE123/memory/CASE123_mem.lime | tee /mnt/usb/CASE123/memory/CASE123_mem.sha256.txt
# In alternativa, per il trasferimento remoto:
sudo insmod ./lime.ko "path=tcp:192.168.1.10:4444 format=lime"
Note:
- installare i pacchetti
kernel-headersebuild-essential; - clonare il repository ufficiale:
git clone https://github.com/504ensicsLabs/LiME.git
cd LiME/src && make
- parametri chiave:
path=...eformat=<raw|padded|lime>sono obbligatori; su alcune distro servono le virgolette.
macOS (attenzione a SIP/Apple Silicon)
Su Intel mac con impostazioni di sicurezza “allentate” si può usare OSXPMem/osxpmem (suite pmem) da supporto esterno.
Contesto tecnico
- Intel Mac: ovvero Mac con processori Intel (non Apple Silicon), offrono una compatibilità più ampia con strumenti software tradizionali sviluppati per sistemi Unix-like o Windows, soprattutto per operazioni di forensics.
- Impostazioni di sicurezza “allentate”: per eseguire tool come OSXPMem che devono accedere a risorse kernel o hardware, è necessario disabilitare alcune protezioni di sicurezza native di macOS (ad esempio: disattivazione di System Integrity Protection (SIP), permessi di accesso ai driver di basso livello, possibile disabilitazione protezioni come FileVault o protezioni firmware. Queste modifiche sono spesso necessarie per permettere la scrittura o il caricamento di driver esterni da supporto esterno – ad esempio una chiavetta USB – e l’accesso a memoria fisica in modo non standard.
- Uso da supporto esterno: OSXPMem può essere eseguito da dispositivo esterno (es. USB/CD bootabile o recovery environment) senza obbligo di installarlo sul sistema host, riducendo l’impatto e possibilità di alterare dati.
Esempio (Intel, dove supportato):
sudo /Volumes/TOOLS/osxpmem --format raw /Volumes/CASE/CASE123/memory/CASE123_mem.raw
shasum -a 256 /Volumes/CASE/CASE123/memory/CASE123_mem.raw > /Volumes/CASE/CASE123/memory/CASE123_mem.sha256.txt
Su Mac con chip Apple T2 e Apple Silicon (M1, M2 e successivi), l’acquisizione diretta della memoria RAM è generalmente impossibile senza modifiche alle protezioni di sicurezza come SIP (System Integrity Protection) e AVB (Apple Verified Boot):
- i chip T2 e Apple Silicon integrano un secure enclave e un sistema di avvio sicuro (AVB) che criptano e proteggono molte aree critiche della memoria e gestiscono il controllo dell’integrità del sistema operativo;
- SIP è progettato per impedire il caricamento di driver non firmati o modifiche al kernel, bloccando tool forensi che tentano di accedere direttamente alla RAM;
- AVB verifica la catena di avvio e blocca sistemi con firmware modificato, essendo un ulteriore livello che impedisce alterazioni e accessi non autorizzati alla memoria fisica.
Dopo il dump: triage espresso (Volatility 3)
Usa la working machine (non il target) per una verifica rapida.
Windows
vol -f CASE123_mem.raw windows.info
vol -f CASE123_mem.raw windows.pslist
vol -f CASE123_mem.raw windows.netscan
vol -f CASE123_mem.raw windows.malfind
Linux (LiME/AVML)
vol -f CASE123_mem.lime linux.pslist
vol -f CASE123_mem.lime linux.bash
vol -f CASE123_mem.lime linux.netstat
Volatility 3 legge AVML (anche compresso, via layer dedicato), oltre a LiME/RAW.
Nota: Pagefile/hiberfil? Se poi fai il full disk image, li avrai comunque. In attività live senza imaging completo puoi copiarli (con tool forense) e calcolarne l’hash a parte.