🔎 Informatica forense

Analisi forense della memoria RAM: cosa rivela e quando serve

Perché acquisire la RAM prima di spegnere un sistema, quali informazioni contiene, come si analizza e quali precauzioni richiede l'acquisizione live.

Per anni la regola d'oro dell'informatica forense è stata "staccare la spina" e acquisire il disco. Oggi questa regola va ripensata. La memoria RAM di un sistema acceso contiene informazioni che non si trovano da nessun'altra parte e che spariscono nel momento in cui il computer viene spento. L'analisi della memoria, o memory forensics, è diventata una componente essenziale delle indagini, soprattutto in caso di attacchi informatici.

Cosa contiene la memoria

La RAM è lo spazio di lavoro del sistema operativo e dei programmi. In ogni istante contiene:

  • i processi in esecuzione, con il loro albero di parentela, cioè quale programma ha avviato quale;
  • le connessioni di rete attive, con indirizzi e porte;
  • i file e le chiavi di registro aperti da ciascun processo;
  • le librerie caricate dai programmi;
  • i comandi digitati nelle finestre del terminale;
  • frammenti di documenti, messaggi e pagine web in uso;
  • chiavi di cifratura di volumi e applicazioni, in alcuni casi;
  • codice malevolo che vive solo in memoria e non scrive nulla sul disco.

Quest'ultimo punto è decisivo. Una parte crescente degli attacchi usa tecniche cosiddette "fileless", che eseguono codice direttamente in memoria o sfruttano strumenti legittimi del sistema. Su disco possono lasciare pochissime tracce; in memoria, finché il sistema è acceso, sono visibili.

Quando ha senso acquisire la memoria

  • incidenti di sicurezza in corso, per individuare il programma malevolo e le sue connessioni;
  • dischi cifrati sbloccati, quando spegnere renderebbe i dati inaccessibili;
  • sospetto uso di strumenti di comunicazione cifrata, i cui contenuti possono essere presenti in chiaro in memoria;
  • sistemi che non si possono spegnere, come server in produzione.

Se il sistema è già spento, la memoria è persa e non ha senso cercare di recuperarla. Alcune informazioni residue possono trovarsi nel file di paging o nel file di ibernazione, che sono copie parziali della memoria scritte sul disco.

Come si acquisisce

L'acquisizione della memoria è necessariamente un'operazione "live": avviene a sistema acceso e richiede di eseguire un programma sul computer stesso. Questo introduce un'alterazione inevitabile, perché lo strumento occupa a sua volta un po' di memoria. L'obiettivo è ridurre al minimo questo impatto e documentarlo.

Buone pratiche:

  1. usa uno strumento affidabile e collaudato, eseguito da un supporto esterno e non installato sul sistema;
  2. salva il risultato su un supporto esterno, mai sul disco del sistema analizzato;
  3. annota ora di inizio e fine, versione dello strumento e dimensione del file prodotto;
  4. calcola l'hash del file di memoria acquisito;
  5. acquisisci prima la memoria e poi il disco, seguendo l'ordine di volatilità: si raccolgono prima i dati che spariscono più in fretta.

A differenza di un disco, la memoria cambia continuamente mentre viene copiata. Due acquisizioni successive non saranno mai identiche, e non esiste un originale con cui confrontare l'hash. L'hash serve qui a garantire che il file acquisito non cambi da quel momento in poi.

Come si analizza

Il file di memoria è una sequenza grezza di dati. Per interpretarlo servono strumenti che conoscono le strutture interne del sistema operativo e sanno ricostruire processi, connessioni e oggetti. Uno dei più noti nel mondo open source è Volatility, che offre moduli per elencare processi, individuare codice iniettato, estrarre comandi e molto altro.

Un'analisi tipica procede così:

  • si elencano i processi e si cercano quelli con nomi insoliti, percorsi anomali o genitori inattesi;
  • si esaminano le connessioni di rete, cercando collegamenti verso indirizzi sconosciuti;
  • si controllano le aree di memoria con permessi di esecuzione insoliti, segnale di possibile codice iniettato;
  • si estraggono i comandi e le stringhe interessanti;
  • si confrontano i risultati con i dati del disco e dei registri di rete.

Un esempio

Un server mostra traffico verso un indirizzo estero sconosciuto, ma l'antivirus non rileva nulla. L'analisi della memoria rivela un processo di sistema legittimo che ha avviato una finestra di comando nascosta, la quale esegue uno script direttamente in memoria. Sul disco non c'è alcun file malevolo, ma in memoria si trovano lo script, l'indirizzo di comando e controllo e le credenziali usate. Senza l'acquisizione della RAM, l'incidente sarebbe rimasto in gran parte inspiegato.

Limiti

L'analisi della memoria richiede competenze specifiche, e i risultati dipendono dalla versione esatta del sistema operativo. Alcuni programmi malevoli cercano di nascondersi anche in memoria. Inoltre, la memoria fotografa un istante: ciò che è accaduto prima e non è più attivo può non comparire. Va quindi sempre integrata con l'analisi del disco, dei registri e della rete.

In sintesi

  • La RAM contiene processi, connessioni, comandi e talvolta chiavi che spariscono allo spegnimento.
  • Molti attacchi moderni sono visibili soprattutto in memoria.
  • L'acquisizione è live, si esegue da supporto esterno e va documentata con cura.
  • Si segue l'ordine di volatilità: prima la memoria, poi il disco.
  • L'analisi della memoria va sempre integrata con disco, registri e rete.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche