Perché e come recuperare i file eliminati

Con i numerosi prodotti per il recupero dati che consentono di recuperare i file eliminati in pochi minuti, vi siete mai chiesti come funzioni esattamente questa procedura e perché sia possibile? In questo articolo analizzeremo cosa accade in Windows quando si elimina un file e come gli strumenti di recupero dati riescano a invertire il processo.

Perché e come recuperare i file eliminati

Contenuti

  1. Come Windows elimina i file
  2. La nascita degli strumenti per recuperare i file eliminati
  3. Recupero basato sul contenuto
  4. Il recupero dati è impossibile: le unità SSD

Come Windows elimina i file

Quando un file viene eliminato, dall’utente tramite Esplora file di Windows, da un’altra applicazione o direttamente dal sistema operativo, Windows non ne sovrascrive immediatamente il contenuto con zeri e non lo distrugge in altro modo. Se procedesse in questo modo, l’operazione richiederebbe molto tempo. Provate a eliminare un file di grandi dimensioni che non vi serve più, ad esempio un film già visto. Provate quindi a eliminare un collegamento di pochi kilobyte. Noterete che il tempo necessario per eliminare entrambi i file è esattamente lo stesso. Se Windows cancellasse fisicamente tutti i file eliminati, impiegherebbe molto tempo per eliminare quel film di grandi dimensioni. In altre parole, la cancellazione del contenuto di ogni file eliminato rallenterebbe enormemente il computer. (Questa considerazione non vale più per le unità SSD; torneremo sull’argomento più avanti).

Se Windows non cancella realmente il file, cosa fa quando lo elimina? In realtà esegue un’unica operazione: contrassegna come “eliminato” il record del file system che fa riferimento a quel file. Il file viene considerato non più esistente, come se non fosse presente e non puntasse più ad alcuna posizione. Di conseguenza, il CONTENUTO del file si trova ancora da qualche parte sul disco (se non si tratta di un’unità SSD), mentre il RECORD DEL FILE SYSTEM che lo identifica non esiste più (FAT32) oppure è contrassegnato come vuoto (NTFS). Naturalmente si tratta di una notevole semplificazione, ma a questo punto non sono necessari ulteriori dettagli tecnici. Passiamo quindi al recupero dei dati.

La nascita degli strumenti per recuperare i file eliminati

Abbiamo quindi stabilito che il file esiste ancora da qualche parte sul disco, ma che il record corrispondente nel file system lo contrassegna come “eliminato”. Non sarebbe sufficiente rimuovere questo contrassegno?

Questa era proprio l’idea alla base di uno dei primi strumenti di recupero dati per Microsoft DOS, all’epoca. Lo strumento si chiamava “undelete” e faceva esattamente questo: analizzava il file system alla ricerca dei file contrassegnati come “eliminati” e reimpostava il flag corrispondente. (All’epoca, ai file eliminati veniva rimosso il primo carattere del nome; dopo il recupero si otteneva quindi “~ocument.txt” invece di “document.txt”.

Qual era il problema di questo approccio? I problemi erano numerosi. Innanzitutto, nei moderni sistemi operativi multitasking il file system cambia continuamente. Vengono creati nuovi file temporanei e le attività di sistema e le applicazioni in background scrivono costantemente nei file di registro e del Registro di sistema. Di conseguenza, i record originali del file system che facevano riferimento al file eliminato diventano rapidamente obsoleti; alcuni o tutti possono essere riutilizzati dal sistema operativo per memorizzare le informazioni relative ai nuovi file.

È importante notare che, a questo punto, il file originale eliminato potrebbe trovarsi ancora sul disco, con tutto lo spazio che gli apparteneva ancora non assegnato, mentre il record del file system che lo identificava potrebbe non esistere più.

Vedete il problema? È per questo che oggi utilizziamo la seconda generazione di strumenti per il recupero dati.

Recupero basato sul contenuto

La generazione successiva di strumenti per il recupero dati non si basa più esclusivamente sulle informazioni ottenute dal file system. Sebbene gli strumenti moderni analizzino ancora il file system e riescano a recuperare facilmente i file eliminati quando le relative informazioni sono ancora disponibili, possono utilizzare anche altre fonti per individuare i file eliminati. È il cosiddetto recupero basato sul contenuto.

Content-Aware Recovery

I moderni software per il recupero dati, come RS File Recovery o RS Partition Recovery, eseguono analisi approfondite per recuperare i dati eliminati. Analizzano l’intera superficie del disco alla ricerca di tracce dei dati cancellati. Che cosa cercano esattamente? Ecco come funziona.

Innanzitutto, uno strumento basato sul contenuto analizza il file system. Anche se non sono disponibili informazioni sul file eliminato, l’analisi consente di creare una mappa dei blocchi del disco appartenenti ad altri file esistenti e di escluderli dalle scansioni successive. Si tratta di un approccio efficiente: un tipico disco rigido per uso domestico è occupato per più della metà, quindi i pochi secondi necessari per analizzare il file system possono far risparmiare un’ora o più di scansione del disco vero e proprio.

Successivamente, lo strumento inizia a leggere il disco, analizzando uno dopo l’altro i settori non contrassegnati come occupati da altri file. Ogni blocco letto dal disco viene confrontato con un database contenente numerose firme caratteristiche, in grado di identificare il blocco come inizio di un determinato tipo di file. Ad esempio, le immagini JPEG iniziano sempre con “JFIF”, mentre i file PDF iniziano con “%PDF%”. (Naturalmente si tratta ancora una volta di una semplificazione, poiché le firme effettivamente utilizzate sono binarie).

Quando viene individuata una corrispondenza con una determinata firma, lo strumento esegue un controllo secondario per stabilire se si tratta di una semplice coincidenza o se la firma indica effettivamente l’inizio di un file. Questo controllo consiste essenzialmente nella verifica dell’intestazione di un file in un formato specifico. Se la verifica ha esito positivo, il software per il recupero dati analizza l’intestazione per determinarne la lunghezza. Dopo aver calcolato la dimensione del file, lo strumento legge dal disco il numero di blocchi necessario e li salva in un nuovo file su un altro disco.

Sembra una soluzione perfetta, ma… riuscite a vedere il problema? Questo metodo funziona molto bene se tutti i file presenti sul disco sono memorizzati in blocchi contigui e consecutivi. Ma cosa succede se sono distribuiti sul disco in numerosi frammenti di piccole dimensioni, cioè se sono frammentati? In questo caso, il recupero basato sul contenuto potrebbe non riuscire. Per ulteriori informazioni sul recupero dei file frammentati, consultate l’altro articolo: Recupero dei file frammentati.

Il recupero dati è impossibile: le unità SSD

Ricordate quando ho detto che Windows elimina i file senza azzerarne effettivamente il contenuto? Non era del tutto vero. Il contenuto dei file eliminati rimane effettivamente intatto, ma solo sui tradizionali dischi rigidi magnetici e su alcuni tipi di supporti a stato solido, come le schede di memoria e le unità flash USB. Ma cosa succede con le unità SSD ultraveloci? È tutta un’altra storia.

Quando si elimina un file da un’unità SSD, Windows non ne cancella comunque il contenuto, nonostante le unità SSD siano molto più veloci dei dischi rigidi magnetici. Il meccanismo è esattamente lo stesso, con un’aggiunta: Windows invia all’unità un comando “TRIM”, informando il controller che determinati blocchi di dati non sono più utilizzati. Da quel momento, l’unità SSD è libera di gestire questi blocchi come preferisce. Può cancellarli per velocizzare le scritture successive, scambiarli con altri blocchi logici per distribuire uniformemente l’usura (“wear leveling”) oppure spostarli in una speciale area non indirizzabile contenente blocchi di dati riservati, sempre con lo scopo di distribuire l’usura.

Di conseguenza, tutto il contenuto del file eliminato da un’unità SSD è praticamente irrecuperabile nell’istante stesso in cui viene cancellato. Il contenuto potrebbe certamente rimanere da qualche parte sull’unità SSD per un certo periodo di tempo. Tuttavia, il controller SSD restituirà sempre zeri quando si tenta di leggere quel blocco. Non esiste alcun modo per aggirare questo meccanismo, indipendentemente dal livello di analisi utilizzato. Persino le apparecchiature specializzate per l’acquisizione forense, impiegate in numerosi laboratori di informatica forense, non riescono a recuperare i dati sottoposti a TRIM.

È andato tutto perduto? Non proprio. Alcune unità SSD non supportano TRIM e, in alcuni casi, anche quando lo supportano, potrebbero non essere configurate correttamente per accettare il comando TRIM. Se l’unità SSD è formattata con FAT32 (o exFAT) anziché NTFS, Windows non invierà il comando TRIM. Inoltre, se il file system è danneggiato, gli eventuali dati persi non verranno sottoposti a TRIM. Vale quindi ancora la pena eseguire un buon software per il recupero dati sull’unità SSD, ad esempio Partition Recovery, per verificare quali dati siano ancora disponibili.

lascia un commento