Antiforense · Lezione 1 di 3
Sovrascrittura, eliminazione e strumenti di pulizia
12 min di lettura
Gli strumenti di sovrascrittura e pulizia rimuovono contenuti, ma sono programmi: vengono scaricati ed eseguiti, rinominano, sovrascrivono ed eliminano file, e ogni azione viene registrata da qualche parte. Questa lezione distingue l'eliminazione dalla sovrascrittura e dall'eliminazione sicura, descrive le tracce tipicamente lasciate dai comuni strumenti di sovrascrittura e pulizia e mostra come recuperare ciò che rimane e formulare una conclusione senza andare oltre quanto dimostrato.
L'obiettivo dell'esaminatore
Quando un contenuto è stato cancellato mediante sovrascrittura, la domanda passa da "che cosa conteneva il file?" a "è stato cancellato mediante sovrascrittura, quando, da quale account e qual era l'oggetto dell'operazione?" La cancellazione mediante sovrascrittura è essa stessa un evento, registrato dagli stessi artefatti di qualsiasi altra attività (Moduli 1 e 2). Una conclusione corroborata di cancellazione mediante sovrascrittura è importante anche quando non sopravvive alcun contenuto, e la stessa analisi indica dove cercare copie sfuggite allo strumento.
Eliminazione, sovrascrittura ed eliminazione sicura
- L'eliminazione contrassegna metadati e cluster come liberi; il contenuto rimane fino al loro riutilizzo (Lezione 1.8).
- La sovrascrittura scrive nuovi byte sui cluster che contenevano il contenuto. Su NTFS, quando un programma sovrascrive l'intervallo esistente di un file ordinario, i dati vengono normalmente riscritti negli stessi cluster. I file compressi, sparsi e crittografati con EFS sono diversi: NTFS li gestisce in unità di 16 cluster e scrive i nuovi dati in cluster di nuova allocazione, lasciando i vecchi dati nello spazio libero. Anche un programma che "salva" scrivendo un nuovo file e sostituendo quello vecchio lascia i vecchi cluster non allocati, non sovrascritti.
- L'eliminazione sicura combina la sovrascrittura del contenuto, l'occultamento del nome e l'eliminazione. La sovrascrittura dello spazio libero riempie lo spazio non allocato con file temporanei e li sovrascrive, distruggendo contenuti eliminati in precedenza.
NIST SP 800-88 Rev. 1 osserva che sui supporti magnetici un singolo passaggio di sovrascrittura impedisce in genere il recupero; pertanto, non ci si deve aspettare di trovare residui dopo un passaggio completo.
TRIM è la principale causa di falsi positivi. Su un SSD, una normale eliminazione seguita da TRIM fa solitamente sì che i blocchi liberati restituiscano zeri in lettura (o un altro valore fisso, a seconda dell'unità). I soli cluster azzerati non costituiscono quindi una prova dell'uso di uno strumento di sovrascrittura. Una conclusione di cancellazione mediante sovrascrittura richiede le tracce proprie dello strumento: esecuzione, ridenominazioni, file di riempimento.
Strumenti di sovrascrittura e tracce che lasciano
Esempi comuni sono SDelete (Sysinternals, a riga di comando), Eraser (grafico, con una voce nel menu contestuale di Explorer), BleachBit (Windows e Linux), Drive Wiper di CCleaner, il comando integrato cipher /w e GNU shred.
Esecuzione e installazione
Uno strumento di sovrascrittura produce gli artefatti di esecuzione della Lezione 2.3: Prefetch (numero di esecuzioni, orari di esecuzione e file referenziati, che per uno strumento di sovrascrittura possono includere i file oggetto dell'operazione), Amcache (percorso e SHA-1, che identifica il binario esatto dopo la sua eliminazione), BAM (ultima esecuzione per SID utente) e Shimcache (presenza). UserAssist registra solo gli avvii tramite Explorer, quindi un'esecuzione da riga di comando di SDelete o cipher non vi comparirà. Gli strumenti installati aggiungono una sottochiave Uninstall sotto SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall (o il suo equivalente in WOW6432Node), una cartella in Program Files e, per i pacchetti MSI, eventi di MsiInstaller nel registro Application, come 11707 e 1033. I record di download mostrano da dove proviene uno strumento portatile. cipher.exe è incluso in Windows, quindi contano solo le sue tracce di esecuzione.
Gli strumenti conservano anche le proprie impostazioni:
- Gli strumenti Sysinternals registrano normalmente l'accettazione della licenza come DWORD
EulaAccepted= 1 sottoSoftware\Sysinternals\<tool>nel file NTUSER.DAT dell'utente, ad esempioSoftware\Sysinternals\SDelete. Questo collega lo strumento a un account e il valore LastWrite della chiave è solitamente vicino alla prima esecuzione. - Le versioni installate di CCleaner conservano le impostazioni nella chiave
Software\Piriform\CCleanerdell'utente (le versioni portatili utilizzano un fileccleaner.iniaccanto al programma). I valori mostrano quali opzioni di pulizia sono state selezionate; i loro nomi variano in base alla versione, quindi occorre confermarne il significato mediante test sulla stessa versione. - BleachBit memorizza le preferenze in
bleachbit.ini: sotto~/.config/bleachbit/su Linux e, su Windows, nella cartella%APPDATA%\BleachBit\dell'utente oppure, per l'edizione portatile, accanto al programma.
Schemi nel file system
Microsoft documenta che SDelete, dopo aver sovrascritto un file, lo rinomina 26 volte, sostituendo ogni volta ciascun carattere del nome con la lettera successiva (foo.txt diventa inizialmente AAA.AAA), quindi lo elimina. Su NTFS è noto che questa operazione lascia, per un unico numero di riferimento MFT e nell'arco di circa un secondo, DATA_OVERWRITE (0x00000001), poi coppie di ridenominazione RENAME_OLD_NAME (0x00001000) e RENAME_NEW_NAME (0x00002000) che vanno da AAAAAAAA.AAA a ZZZZZZZZ.ZZZ, e infine FILE_DELETE (0x00000200) con CLOSE (0x80000000). Ventisei ridenominazioni producono almeno 52 record di ridenominazione, perciò una simile sequenza ravvicinata risalta in $UsnJrnl, mentre $LogFile può conservare le stesse operazioni per un periodo più breve (Lezione 1.4). Test pubblicati mostrano che il nome originale può talvolta essere recuperato da record più vecchi con lo stesso riferimento MFT, come FILE_CREATE o DATA_EXTEND, se sono ancora presenti nel journal.
La sovrascrittura dello spazio libero lascia schemi diversi: uno o più file molto grandi che crescono fino a riempire il volume e vengono poi eliminati e, su NTFS (SDelete lo documenta), molti piccoli file che riempiono i record MFT liberi. Questo riutilizza i record MFT eliminati con nuovi nomi, distruggendo i vecchi metadati eliminati. Microsoft documenta che cipher /w esegue tre passaggi di scrittura (0x00, 0xFF, poi dati casuali); utilizza file temporanei in una cartella denominata EFSTMPWP nella radice del volume, e il nome della cartella può persistere nella MFT, in $UsnJrnl o nello slack della directory.
GNU shred sovrascrive sul posto (tre passaggi per impostazione predefinita nelle versioni attuali di coreutils). Con -u, è noto che rinomina il file con nomi composti da zeri, di lunghezza decrescente, prima di rimuoverne il collegamento al file system. La sua documentazione avverte che è meno efficace sui file system che registrano i dati nel journal, utilizzano il copy-on-write o conservano snapshot, nonché sugli SSD; occorre cercarlo nella cronologia della shell.
Strumenti di pulizia e lacune che lasciano
Gli strumenti di pulizia come CCleaner, BleachBit e Pulizia disco di Windows per lo più eliminano, anziché sovrascrivere: cronologia e cache del browser, elementi recenti, Jump List, file temporanei, cache delle anteprime, Prefetch e talvolta registri eventi. La copertura non è mai completa, quindi occorre cercare incongruenze:
- Prefetch contiene solo file creati dopo un determinato momento, mentre Amcache, BAM, Shimcache e SRUM registrano ancora programmi precedenti.
- RecentDocs e i file LNK degli elementi recenti sono vuoti, ma le Shellbag (Lezione 2.5), che molti strumenti di pulizia non includono per impostazione predefinita, elencano ancora le cartelle.
- Una cronologia del browser la cui visita più vecchia risale a pochi minuti prima, in un profilo creato mesi prima.
- L'evento Security 1102 o l'evento System 104 registra lo svuotamento di un registro (Lezione 7.2).
- Il file Prefetch dello stesso strumento di pulizia viene scritto circa 10 secondi dopo l'avvio, quindi spesso sopravvive alla pulizia e consente di datarla.
La voce più antica sopravvissuta tra gli artefatti sottoposti a pulizia permette di stimare quando questa sia avvenuta. I file sottoposti a pulizia vengono solitamente soltanto eliminati, quindi $UsnJrnl mostra sequenze ravvicinate di record FILE_DELETE e il contenuto potrebbe essere recuperabile.
Azioni e tracce in sintesi
| Azione anti-forense | Tracce che lascia | Dove cercare |
|---|---|---|
| Eliminazione sicura di un file (stile SDelete) | Esecuzione, file oggetto dell'operazione tra i file referenziati, ridenominazioni con nomi composti da lettere, sovrascrittura seguita da eliminazione | Prefetch, Amcache, BAM; $UsnJrnl, $LogFile; voci di directory FAT |
Sovrascrittura dello spazio libero (cipher /w, SDelete -c/-z, Drive Wiper) | Enormi file di riempimento, EFSTMPWP, molti piccoli file che riempiono la MFT | $MFT, $UsnJrnl, slack della directory; Prefetch dello strumento |
| Installazione di uno strumento di sovrascrittura o pulizia | Chiave Uninstall, cartella del programma, eventi del programma di installazione, record di download | Hive SOFTWARE, Program Files, registro Application, cronologia del browser |
| Impostazioni e licenza dello strumento | EulaAccepted, chiave di CCleaner, bleachbit.ini | NTUSER.DAT, %APPDATA%, ~/.config |
| Pulizia della cronologia e degli elementi recenti | Artefatti vuoti accanto ad altri intatti; eliminazioni in massa | Shellbag rispetto a RecentDocs; Prefetch rispetto ad Amcache/BAM/SRUM; $UsnJrnl |
| Svuotamento dei registri eventi | Eventi 1102 e 104 | Registri Security e System (Lezione 7.2) |
Limiti interpretativi
"È stato eseguito uno strumento di pulizia" è un fatto; "l'utente intendeva distruggere le prove" è un'inferenza sull'intento. Gli strumenti di pulizia possono essere eseguiti secondo una pianificazione, il personale IT può eseguirli e le opzioni predefinite puliscono artefatti che nessuno ha selezionato individualmente. Occorre riportare lo strumento, l'orario, l'account, gli oggetti dell'operazione e le impostazioni, insieme al contesto rilevante per l'interpretazione: un singolo oggetto nominato rispetto a una pulizia generale, una prima esecuzione in assoluto, un download poco prima dell'uso, l'eliminazione successiva dello strumento e la collocazione temporale rispetto ad altri eventi del caso. La valutazione dell'intento va lasciata a chi deve decidere.
Recuperare ciò che rimane
- Le copie shadow del volume (Lezione 2.9) possono contenere versioni precedenti, a meno che non siano state eliminate anch'esse.
- Altre copie: cartelle di sincronizzazione cloud, allegati email, altri supporti rimovibili, backup e la fonte originale.
- La memoria, il file di paging e il file di ibernazione (Lezione 5.4) possono contenere frammenti o nomi.
- Il carving (Lezione 1.8) funziona ancora quando la sovrascrittura è stata interrotta, è incompleta o è stata applicata solo ad alcuni file.
- I journal NTFS e lo slack delle directory spesso conservano i nomi.
Esempio svolto: sdelete64 e q3-files.7z
In questa variante del caso condiviso, il volume FAT32 nell'immagine USB (VSN 1A2B-3C4D) non elenca più q3-files.7z. FAT32 non dispone di un journal e $UsnJrnl su C: registra solo C:, quindi gli elementi probatori provengono dall'host e dalla directory.
- Prefetch.
SDELETE64.EXE-<hash>.pfmostra un numero di esecuzioni pari a 1 e l'ultima esecuzione con FILETIME0x01DCB3BFC40639A0= 134.179.725.123.140.000. Diviso per 10.000.000: 13.417.972.512,314 s; sottraendo 11.644.473.600 si ottiene Unix 1.773.498.912,314; sottraendo 1.773.446.400 (2026-03-14T00:00:00Z) rimangono 52.512,314 s = 14 h 35 min 12,314 s, quindi 2026-03-14T14:35:12Z. I file referenziati includono\VOLUME{…}\USERS\ANA\DOWNLOADS\SDELETE\SDELETE64.EXEe\VOLUME{…}\CLIENTS\Q3-FILES.7Z, con informazioni sul volume che riportano il numero di serie 1A2B3C4D: il volume USB. - Amcache.
c:\users\ana\downloads\sdelete\sdelete64.execonFileId0000e1b4c2d9a07f3b65c8d1e2f40a9b7c3d5e6f1a28(a titolo illustrativo): SHA-1e1b4c2d9a07f3b65c8d1e2f40a9b7c3d5e6f1a28, da confrontare con il binario pubblicato dal fornitore. - BAM e NTUSER.DAT. Sotto
S-1-5-21-…-1001, i dati90 CB 61 C8 BF B3 DC 01= 0x01DCB3BFC861CB90 = 2026-03-14T14:35:19.625Z, 7 secondi dopo l'orario di Prefetch. La chiaveSoftware\Sysinternals\SDeletedi Ana haEulaAccepted= 1 con LastWrite 2026-03-14T14:35:12Z. Non è presente alcuna voce UserAssist, coerentemente con un avvio da riga di comando. - Directory FAT. La directory
\Clientscontiene una voce eliminata il cui campo del nome di 11 byte èE5 5A 5A 5A 5A 5A 5A 5A 5A 5A 20: 0xE5 ha sostituito il primo carattere, lasciando?ZZZZZZZ.ZZ(gli strumenti possono mostrare_). Conserva la lunghezza diq3-files.7z(8 + 2 caratteri), come previsto dalle ridenominazioni con lettere documentate. L'ora di scrittura69 5C= 0x5C69: 0x5C69 >> 11 = 11, (0x5C69 >> 5) & 0x3F = 35, (0x5C69 & 0x1F) × 2 = 18, quindi 11:35:18 locali; data6E 5C= 2026-03-14; aggiungendo 3 h si ottiene 14:35:18Z. Il campo della dimensioneC9 36 D2 03= 64.108.233 byte, la dimensione dell'archivio. Con 64 settori per cluster (32.768 byte), si ottiene ceil(64.108.233 / 32.768) = 1.957 cluster; il primo non inizia più con la firma 7z37 7A BC AF 27 1C. Alcuni strumenti di sovrascrittura troncano prima i file, quindi non è garantito che la dimensione sopravviva. - Che cosa è scomparso e che cosa rimane. Il contenuto su
E:e il nome originale nella directory sono scomparsi. Il nome sopravvive in Prefetch e in eventuali voci LNK o Jump List relative all'archivio (Lezione 2.4); il contenuto sopravvive nella copia OneDrive creata alle 14:01:03Z (Lezione 4.6), con la stessa dimensione e un hash calcolabile. SRUM può anche attribuire ad ana le scritture su disco effettuate da sdelete64.exe nel proprio intervallo 14:31:09Z–15:31:09Z.
Conclusione formulata. "SDelete (sdelete64.exe, SHA-1 come sopra) è stato eseguito una volta, alle 2026-03-14T14:35:12Z, con l'account ana (S-1-5-21-…-1001), e ha referenziato Q3-FILES.7Z sul volume 1A2B-3C4D. Quel volume contiene una voce eliminata con un nome composto esclusivamente da lettere della stessa lunghezza, la cui ultima scrittura risale alle 14:35:18Z, con la dimensione dell'archivio e senza contenuto 7z. Ciò è coerente con l'eliminazione sicura di E:\Clients\q3-files.7z mediante tale strumento. Una copia caricata alle 14:01:41Z rimane in OneDrive."
Focus sull'esame: Occorre saper ricavare l'orario di esecuzione, il SID utente o lo SHA-1 di uno strumento di sovrascrittura dagli artefatti di esecuzione e riconoscere lo schema di ridenominazione con lettere in $UsnJrnl o in una directory FAT. Le domande possono verificare che gli zeri su un SSD siano coerenti con TRIM anziché costituire una prova di sovrascrittura, quali artefatti uno strumento di pulizia lasci intatti e la differenza tra dimostrare l'esecuzione di uno strumento e dimostrare l'intento.
Punti chiave
- La cancellazione mediante sovrascrittura è un evento: occorre dimostrare lo strumento, l'orario, l'account e l'oggetto dell'operazione anche quando il contenuto è scomparso.
- Gli artefatti di esecuzione (file referenziati di Prefetch, SHA-1 di Amcache, BAM per SID) e le impostazioni degli strumenti (
EulaAccepted, chiave di CCleaner,bleachbit.ini) identificano lo strumento di sovrascrittura e l'utente. - È documentato che SDelete rinomina un file 26 volte con lettere ripetute prima di eliminarlo; su NTFS questo lascia una sequenza ravvicinata di record di ridenominazione in
$UsnJrnl;cipher /wutilizza una cartellaEFSTMPWP. - Gli zeri da soli non dimostrano una sovrascrittura: TRIM sugli SSD li produce dopo una normale eliminazione.
- Gli strumenti di pulizia lasciano lacune accanto a fonti intatte; occorre confrontare Prefetch con Amcache, BAM e SRUM, e RecentDocs con le Shellbag.
- Occorre cercare copie sopravvissute nelle copie shadow, nelle cartelle cloud, su altri supporti e nei file di memoria, e riferire in merito all'intento solo nei limiti consentiti dagli elementi probatori.