Paolo Reale: ICT & Digital Forensics Consulting

ICT & Digital Forensics Consulting

Restore points

L’Analisi forense dei ‘Punti di Ripristino’ (Restore Points)

Cosa sono i “Punti di Ripristino”

Il “Ripristino Configurazione di Sistema” apparve inizialmente in Windows ME, e fu successivamente affinato in Microsoft Windows XP Home e Professional. Il processo è pensato per fornire all’utilizzatore, successivamente ad un crash o un blocco del sistema, la possibilità di ripristinare il sistema stesso ad una configurazione precedentemente funzionante.

L’idea su cui si basa il servizio è che se un computer sino a ‘ieri’ ha funzionato correttamente e oggi non funziona più, riportandolo nella situazione di ‘ieri’ dovrebbe tornare a funzionare (escludendo naturalmente problemi hardware).

Il servizio di “Ripristino di Sistema” o System Restore, pertanto, tiene traccia costantemente delle modifiche apportate al sistema e a vari file applicativi, memorizzando, in maniera invisibile all’utente, una sequenza di “Punti di Ripristino” (Restore Point), ciascuno dei quali contiene la fotografia di un certo numero di file del sistema operativo e dell’utente (idealmente2) all’istante in cui il Punto di Ripristino è stato creato. Tali “fotografie” possono poi essere eventualmente utilizzate per ripristinare il sistema alla situazione immediatamente antecedente la creazione del punto di ripristino stesso.

Per quanto il servizio sia in qualche modo configurabile dall’utente esperto, le competenze necessarie per farlo esulano da quelle della maggioranza degli utenti che pertanto lasciano inalterato il suo funzionamento come predisposto in fabbrica dal produttore del software (Microsoft). Nel seguito ci si riferirà a tale modalità di funzionamento con termini quali “normalmente” o “tipicamente”.

Nella pratica, quando il servizio è attivo su un computer, ad ogni istante è presente su ciascun disco fisso collegato alla macchina un Punto di Ripristino “corrente” nel quale vengono progressivamente salvate copie di alcuni file (selezionate secondo opportuni criteri) prima di una loro eventuale cancellazione/modifica. Al momento della creazione del Punto di Ripristino successivo, il Punto di Ripristino corrente viene “congelato” nella situazione in cui si trova e rimane a disposizione dell’utente (per un certo periodo).

Il processo di creazione dei Punti di Ripristino è normalmente avviato automaticamente, e viene attivato dagli eventi seguenti:

  • Avvio iniziale di Windows XP
  • Ogni 24 ore di tempo di accensione
  • Prima dell’installazione di un programma
  • Prima di un aggiornamento automatico
  • Prima di un ripristino di un “Punto di Ripristino”
  • Prima dell’installazione di un driver senza firma digitale
  • Prima del ripristino dei dati di backup mediante il “Backup tool”
  • Creazione Manuale

Esiste un’interfaccia utente grafica per la creazione e la gestione dei punti di ripristino. Su Windows XP in Italiano, si può trovare nel menu “Avvio/Programmi/Accessori/Utilità di Sistema/Ripristino configurazione di sistema”.

Contenuto dei Restore Points

I file di registro (hives) sono copiati in ciascun Punto di Ripristino al momento della sua creazione. Altri file specifici vengono copiati nel Punto di Ripristino “corrente” prima di una loro modifica/cancellazione. Tuttavia, non tutti i file sono copiati dopo una modifica nei Punti di Ripristino. La selezione dei file è governata da istruzioni di inclusione ed esclusione nel file “filelist.xml”, situato normalmente nella directory “C:WINDOWSsystem32Restore” e pressoché sconosciuto agli utenti comuni. Questo file XML guida il processo di creazione dei punti di ripristino e definisce quali estensioni saranno monitorate. In questa lista sono anche definite le directory incluse ed escluse dal monitoraggio. Nell’ambito di un’investigazione, gli elementi che possono essere utili sono:

  • Copie dei Registri: l’analisi delle copie dei registri nel corso del tempo può mostrare modifiche al sistema, quali (a titolo esemplificativo e non esaustivo) l’installazione di hardware o software, cambi nella configurazione dei programmi, cambi di password e storia di rete. Per la vastità di informazioni contenute nei registri, la lista può essere molto più lunga.
  • Copie dei file: Un esempio dei file che possono essere trovati nei punti di ripristino includono i file .exe, .dll, .ini, .lnk e altri meno comuni. File che tipicamente non si potranno trovare nei punti di ripristino sono quelli più specifici dell’utilizzatore, come i file .doc, .pdf e .pst. Vari log file, tra i quali i log degli eventi di windows non sono normalmente inclusi nei punti di ripristino.

L’importanza di questa ulteriore fonte di informazioni è elevata quando altri elementi utili all’indagine sono persi o compromessi (o manomessi). Sicuramente sono degni di rilievo i file di tipo ‘link’: dal momento che diversi applicativi di Windows creano questa tipologia di file in per tracciare i ‘file recenti’ utilizzati dall’utente, le variazioni di questi rimangono anche nelle directory dei punti di ripristino, consentendo quindi di avere elementi aggiuntivi di supporto per l’analisi forense. In mancanza di specifici software sul mercato (tra le poche eccezioni, il tool prodotto da Mandiant), per la lettura puntuale degli elementi presenti nel file ‘change.log’, che contiene tutti gli eventi associati ai punti di ripristino, abbiamo realizzato un parser ad hoc per l’ estrazione e rappresentazione in excel (csv) di detta tipologia di file.

ANALISI DEI LINK NEI PUNTI DI RIPRISTINO

Dopo aver descritto nei precedenti articoli il funzionamento e le modalità di analisi dei Restore Points, si ritiene utile approfondire nello specifico come analizzare la tipologia di file ‘.lnk’.

La creazione di ogni file di tipo A00* (all’interno delle cartelle dei Punti di Ripristino) fa riferimento ad un evento di cancellazione all’interno del filesystem, e non il contrario. Ovvero, quando un file viene cancellato e la sua estensione è compresa nella lista delle estensioni tracciate dai punti di ripristino, viene tenuta copia dello stesso in un file ditipo A00* all’interno delle cartelle dei punti di ripristino.

Questa operazione viene anche tracciata all’interno del log file del relativo punto di ripristino (file di tipo rp.log). All’interno di questi log vengono anche riportate le altre operazioni effettuate sui file con estensione presente nella lista dei punti di ripristino, per esempio le operazioni di creazione di unnuovo file. In questo caso però non avviene la corrispondente creazione del file di tipo A00*.

E’ quindi importante la corretta lettura dei dati presenti sia nei punti di ripristino che nei relativi file di log. A tal fine, il programma di parsing che abbiamo realizzato (vedi articolo precedente) quale supporto all’analisi dei file di log, consente di analizzare in formato comprensibile i contenuti di tali log. L’output di tale programma consente di comprendere le operazioni tracciate nel file di log, tra cui:

  • tipo di operazione (creazione, cancellazione, etc);
  • nome file;
  • eventuale file di tipo A00* creato.

Poiché nella lista dei file tracciati è presente l’estensione dei file di tipo link (.lnk), è anche utile focalizzare il meccanismo di creazione di tali file: quando viene aperta una foto, o un documento,viene creato, all’interno della directory ‘Recent’ o ‘Documenti Recenti’ un link al file appena aperto, e un altro link alla cartella in cui si trova lo stesso file. Non vengono però creati indefinitamente nuovi link nella cartella, ma un numero predefinito in base ai settaggi del sistema operativo.

Quando viene creato un nuovo link, viene tipicamente cancellato un link più vecchio della stessa tipologia (documento, immagine, etc).Il meccanismo descritto sopra conduce a questi eventi, praticamente contestuali, all’apertura di unfile documento (ovvero non di tipo programma):

  • viene creato un link nella directory dei documenti recenti;
  • viene tracciata l’operazione di ‘creazione file ‘ nel log dei punti di ripristino;
  • viene contestualmente cancellato il link più vecchio (se superato il numero massimo dioccorrenze previste) della stessa tipologia (estensione del file);
  • viene creato un file di tipo A00* all’interno della cartella dei Punti di Ripristino attiva;
  • viene tracciata l’operazione di ‘cancellazione file’ nel log dei punti di ripristino.

L’insieme di tutti questi artefatti consente di poter risalire alle operazioni effettuate, incrociando fraloro dette informazioni, anche per poter disporre di un riferimento temporale, non presente all’interno del file rp.log.