duminică, 13 aprilie 2014

Ştergerea şi recuperarea datelor

Notă: autorul acestui text nu poartă niciun fel de simpatii pentru anumite persoane, partide sau mişcări politice. Exemplul următor este dat doar pentru creearea unui legături între acest articol şi un eveniment din viaţa cotidiană a României.

Pe data de 19 mai 2007 preşedintele statului de atunci, Traian Băsescu, fusese abordat (sau agasat) de o jurnalistă a postului de televiziune Antena 1 în legătură cu referendumul ce viza demiterea acestuia. Iritat de insistenţa jurnalistei, acesta îi confiscă telefonul şi îl predă ulterior unor specialişti pentru a şterge înregistrarea din memorie. Odată ce a primit telefonul înapoi, jurnalista (sau, mă rog, echipa la care a apelat) reuşeşte să recupereze înregistrarea. Cum a fost posibil acest lucru?

Conceptul de recuperare a datelor şterse nu este unul nou pentru utilizatorul obişnuit de calculatoare care măcar o dată a dat-o-n bară ştergând ceva fotografii sau alte date sensibile. Mană cerească pentru cazurile în care ştergi ceva important din greşeală, posibilitatea de recuperare a datelor se poate dovedi o adevărată problemă atunci când ai ceva de ascuns. Dar de ce datele şterse nu sunt de fapt şterse din calculator ci rămân în memoria acestuia?

Dacă ai copiat sau descărcat vreodată un fişier de dimensiuni mari (de exemplu, un film) ai văzut cât de repede dispare acesta atunci când e şters, deşi această operaţie ar trebui să ia ceva timp de vreme ce discutăm cu fişiere de dimensiunea sutelor de MB. E evident că ceva e putred aici, şi mare dreptate are cel care constată asta: la ştergerea unui fişier acesta nu este ras efectiv din memorie, ci este marcat ca şters iar spaţiul ocupat de acesta este marcat ca disponibil pentru o rescriere ulterioară. Constatăm astfel că odată şters un fişier, deşi nu mai este vizibil, datele acestuia încă rezidă în memorie. Dar dacă e aşa, de ce fişierul nu mai apare, totuşi, în Windows Explorer sau alt manager de fişiere pe care îl folosim?

Sistemele de fişiere au o secţiune în care se află denumirile fişierelor, structura acestora şi adresa de pe hard-disk unde se află conţinutul acestora. Această secţiune poate fi văzută ca o bază de date unde sunt stocate doar anumite metadate (informaţii descriptive) despre fişiere, dar nu şi conţinutul lor. Din motive de performanţă (şi poate şi prelungire a duratei de viaţă a memoriei) la ştergerea unui fişier acesta este doar eliminat din această bază de date, conţinutul său rămânând neatins până la o operaţiune ulterioară de scriere a unor noi date. În timp ce un manager de fişiere va citi această bază de date la navigarea prin structura de directoare a memoriei, un program specializat o va ignora şi va scana conţinutul memoriei pentru a localiza fişiere ce există efectiv pe hard-disk dar nu au referinţe în acea bază de date.

Recuperarea datelor


Procesul de recuperare a datelor implică, după cum spuneam, citirea progresivă a memoriei pentru detectarea fişierelor şterse şi eventual detectarea conţinutului fişierelor detectate. Nu tot timpul se pot recupera şi denumirile fişierelor şterse tocmai din cauza faptului că acestea lipsesc din acea secţiune în care se ţine evidenţa fişierelor. Odată ce ai observat că lipsesc date sau ai şters din greşeală fişiere de care ai nevoie, primul lucru pe care îl faci este să minimalizezi scrierea de date noi pe partiţia unde se aflau acestea. Acest lucru înseamnă oprirea tuturor proceselor ce lucrează cu partiţia respectivă, descărcarea de date noi pe alte partiţii sau, dacă partiţia în cauză e cea pe care se află sistemul de operare, închiderea forţată a sistemului prin scoaterea calculatorului din priză sau scoaterea bateriei din laptop. În acest ultim caz e indicat ca recuperarea datelor să se facă de pe un alt sistem şi - mare atenţie - refuzare oricărei oferte a sistemului de operare de a scana sistemul de fişiere după erori.

Există foarte multe aplicaţii pentru recuperarea datelor, însă majoritatea vor detecta acelaşi număr de fişiere lipsă, de vreme ce procesul de localizare a acestora este asemănător. Diferenţa va consta în detectarea tipului fişierelor (de vreme ce denumirea acestora lipseşte, detectarea se va face după conţinut) şi viteza cu care acestea vor fi localizate. Nu o să pornesc vreo comparaţie între aplicaţiile de acest tip ci o să spun doar că personal folosesc Recuva când cineva mă cheamă să îi recuperez fişierele lipsă, dar acest lucru e doar o chestiune de preferinţe (plus că nici nu m-am prea interesat de alte alternative). Pentru Linux există alternative precum Foremost sau Extundelete.

Fişierele şterse pot fi recuperate de pe orice tip de memorie, atâta vreme cât nu este folosit vreun sistem de fişiere care să aibă grijă să facă dispărute datele odată şterse. Iar majoritatea (sau toate, din câte ştiu eu, dar pot exista şi excepţii) nu o fac.

Ştergerea datelor


Ok, dar cum ştergem un fişier în aşa fel încât acesta să nu se mai poată recupera? După cum spuneam şi mai sus, odată şters un fişier ce se doreşte a fi recuperat primul lucru ce nu trebuie făcut este scrierea de date noi pe respectiva partiţie. Dacă vrem să facem pierdut un fişier şters atunci sfatul ar fi ca, din contra, să se scrie cât mai multe date pe acea partiţie. Dar asta nu ne garantează că datele respective vor fi scrie pe locul unde se aflau fişierele şterse. Apoi mai există o mică problemuţă, dar despre aceasta puţin mai încolo.

În cazul în care doriţi ştergerea unui fişier în aşa fel încât acesta să nu mai fie recuperat este indicată utilizarea unui program specializat pentru acest lucru. Iar "specializat" nu înseamnă că acesta nu e disponibil pentru utilizatorul de rând. Unul din aceste aplicaţii pentru Windows este Eraser. Pentru Linux există utilitarul shred, care vine preinstalat sau se află în repository-urile multor distribuţii. Aceste aplicaţii vor avea grijă ca, pe lângă ştergerea referinţei fişierului din secţiunea unde se ţine evidenţa acestora, să fie şters şi conţinutul acestuia. Ba mai mult, înainte să fie şters conţinutul acestuia va fi suprascris de mai multe ori... De ce?

Probabil ştiţi că hard-disk-urile stochează datele pe o suprafaţă magnetică, asemănător cu felul cum o face un magnetofon sau casetofon. Odată şters un fişier prin simpla rescriere (doar o singură dată) a conţinutului acestuia, datele vechi încă mai pot fi recuperate prin procedee speciale. Acest lucru se datorează fenomenului de magnetism rezidual, care permite recuperarea datelor prin analiza cu echipamente speciale (de data asta neaccesibile publicului de rând) a suprafeţei platanelor hard-disk-urilor. Fenomenul poate fi întâlnit chiar şi pe clasicele casete când, la suprascrierea conţinutul acesteia prin creearea unei noi înregistrări (de preferinţă una "silenţioasă", fără a se înregistra sunete), la volum maxim se va putea auzi (cu puţin noroc) înregistrarea precedentă. Prin suprascrierea multiplă a secţiunii unde se află fişierul şters şansele de recuperare scad semnificativ, inclusiv prin folosirea acestor procedee de care spuneam mai sus.

Acest fenomen nu se aplică în cazul memoriilor flash (ex. carduri de memorie, memorii USB) şi, ba mai mult, devine ineficient odată cu creşterea densităţii hard-disk-urilor, chiar şi banalele HDD-uri de câteva sute de GB făcând ca extragerea datelor pe baza acestui fenomen să fie mai mult o chestiune SF decât o realitate.

Drept urmare, e bine ca atunci când doriţi să faceţi pierdută o înregistrare să ştiţi să o faceţi ca la carte, altfel riscând să ajungeţi într-o situaţie asemănătoare precum preşedintele statului în 2007 când, datorită "specialiştilor" angajaţi probabil pe baza principiului de PCR (Pile, Cunoştinţe, Relaţii) şi care n-au ştiut aceste principii de bază ale funcţionării unui sistem de fişiere, a fost pus într-o situaţie jenantă ce s-a terminat cu un avertisment public dat de către Consiliul Naţional pentru Combaterea Discriminării.


2 comentarii :

Profu' Știe-Tot spunea...

Bun articolul. Bravo!
Personal folosesc testdisk-photorec pentru recuperat date - şi a fost nevoie de asta de vreo două ori... PE site are explicaţii şi-n română pentru cei care nu prea se pricep la engleză.

Ovidiu spunea...

Da, am uitat de testdisk, deşi l-am folosit şi eu. Foarte util mai ales când se întâmplă să fii neatent şi să ştergi o partiţie întreagă :D