Difuzați fișierele de date vechi din același motiv pentru care distrugeți documentele vechi de hârtie. Vă spunem ce trebuie să știți despre ștergerea în siguranță a fișierelor Linux. Acest tutorial acoperă comanda shred și suita de utilitare de ștergere securizată.
Cuprins
Fișierele șterse sunt în mod normal recuperabile
Ștergerea unui fișier nu îl elimină de fapt de pe hard disk. Totul se datorează modului în care sistemul dvs. de fișiere utilizează inodurile. Acestea sunt structurile de date din sistemul de fișiere care dețin metadatele referitoare la fișiere. Numele fișierului, poziția sa pe hard disk, ce atribute și permisiuni are și așa mai departe sunt toate stocate într-un inod. Un director nu este mai mult decât un fișier în sine. Unul care conține numele și numerele de inoduri ale fișierelor pe care le conține directorul.
Când ștergeți un fișier cu rm, sistemul de fișiere eliberează inodul corespunzător și ajustează fișierul director. Aceasta marchează spațiul de pe hard disk pe care îl ocupa fișierul ca neutilizat. Imaginați-vă că intri într-o bibliotecă și treci prin indexul cardurilor, găsești cartea de catalog a unei cărți și o rup. Cartea este încă pe raft. Doar că este mai greu de găsit.
Cu alte cuvinte, spațiul care a fost folosit de fișier este acum liber pentru a fi folosit de alte fișiere. Dar conținutul fișierului vechi încă se află în acel spațiu. Până când acel spațiu este suprascris, există șanse mari ca fișierul să poată fi preluat.
Dar a scăpa complet de un fișier nu este la fel de simplă ca pur și simplu să le suprascrii. După cum vom vedea.
Nu faceți asta cu SSD-uri
Aceste tehnici sunt pentru hard disk-uri electro-mecanice tradiționale (HDD) și nu trebuie utilizate cu unități cu stare solidă (SSD). Nu va funcționa și va cauza scrieri suplimentare și uzură inutilă a SSD-ului dvs. Pentru a șterge în siguranță datele de pe un SSD, ar trebui să utilizați utilitarul furnizat de producătorul SSD-ului dvs.
Comanda shred
shred este conceput pentru efectuați suprascrierea pentru dvs deci un fișier șters nu poate fi recuperat. Este inclus în toate distribuțiile Linux care au fost testate în timpul cercetării pentru acest articol, inclusiv Ubuntu, Fedora și Manjaro.
În acest exemplu, vom lucra într-un director numit ~/research, care conține multe fișiere text. Conține și alte directoare care, la rândul lor, conțin și alte fișiere. Vom presupune că aceste fișiere sunt sensibile și trebuie șterse în întregime de pe hard disk.
Putem vedea structura arborelui directorului utilizând comanda arborescentă, după cum urmează. Opțiunea -d (director) face ca arborele să listeze numai directoarele și nu să listeze toate fișierele. Structura arborescentă a directoarelor arată astfel:
tree -d
Distrugerea unui singur fișier
Pentru a distruge un singur fișier, putem folosi următoarea comandă. Opțiunile pe care le folosim sunt:
u: Dealocați și eliminați fișierul după suprascriere.
v: Opțiune verbală, astfel încât acel shred să ne spună ce face.
z: Efectuează o suprascriere finală cu zerouri.
shred -uvz Preliminary_Notes.txt_01.txt
shred suprascrie fișierul de patru ori în mod implicit. Primele trei treceri folosesc date aleatorii, iar trecerea finală utilizează zerouri, așa cum am cerut. Apoi șterge fișierul și suprascrie unele dintre metadate din inode
Setarea numărului de treceri de suprascriere
Îi putem cere lui Shred să folosească mai multe sau mai puține treceri de suprascriere folosind opțiunea -n (număr). shred va folosi întotdeauna cel puțin o trecere. Numărul pe care îl oferim aici este numărul de treceri suplimentare pe care avem nevoie de distrugere pentru a le efectua. Deci shred va face întotdeauna o trecere în plus decât numărul pe care îl cerem. Pentru a obține trei permise în total, solicităm două abonamente suplimentare:
shred -uvz -n 2 Preliminary_Notes.txt_02.txt
După cum era de așteptat, shred face trei treceri.
Mai puține treceri – mai puține mărunțiri dacă doriți – este evident mai rapidă. Dar este mai puțin sigur? Trei treceri, în mod interesant, sunt probabil mai mult decât suficiente.
Distrugerea mai multor fișiere
Wildcard-urile pot fi folosite cu shred pentru a selecta grupuri de fișiere care urmează să fie șterse. * reprezintă mai multe caractere, iar ? reprezintă un singur caracter. Această comandă ar șterge toate fișierele „Preliminary_Notes” rămase din directorul de lucru curent.
shred -uvz -n 2 Preliminary_Notes_*.*
Fișierele rămase sunt procesate fiecare prin shred pe rând.
shred nu are nicio opțiune recursivă, așa că nu poate fi folosit pentru a șterge arborele de directoare ale directoarelor imbricate.
Problema cu ștergerea în siguranță a fișierelor
Oricât de bun este shred, există o problemă. Sistemele moderne de fișiere de jurnal, cum ar fi ext3 și ext4, depun eforturi extraordinare pentru a se asigura că nu se sparg, nu devin corupte sau nu pierd date. Și cu sistemele de fișiere de jurnalizare, nu există nicio garanție că suprascrierea are loc de fapt peste spațiul de pe hard disk folosit de fișierul șters.
Dacă tot sunteți după o oarecare liniște sufletească că fișierele au fost șterse puțin mai bine decât ar fi făcut-o rm, atunci shred este probabil în regulă. Dar nu face greșeala de a crede că datele au dispărut cu siguranță și sunt total irecuperabile. Este foarte posibil să nu fie cazul.
Suita cu ștergere securizată
Comenzile de ștergere securizată încearcă să depășească cele mai bune eforturi ale sistemelor de fișiere în jurnal și să reușească să suprascrie fișierul în siguranță. Dar se aplică exact aceleași avertismente. Încă nu există nicio garanție că suprascrierea are loc de fapt în regiunea hard disk-ului de care aveți nevoie pentru a șterge fișierul de interes. Există mai multe șanse, dar nicio garanție.
Comenzile de ștergere securizată folosesc următoarea secvență de suprascrieri și acțiuni:
1 suprascriere cu octeți de valoare 0xFF.
5 suprascrieri cu date aleatorii.
27 suprascrieri cu valori speciale definite de Peter Gutmann.
Încă 5 suprascrieri cu date aleatorii.
Redenumiți fișierul la o valoare aleatorie.
Trunchiază fișierul.
Dacă toate acestea ți se par excesive, ești într-o companie bună. De asemenea, i se pare excesiv lui Peter Gutmann, profesor la Universitatea din Aukland. A publicat o lucrare în 1996 discutând aceste tehnici, de la care a apărut mitul urban conform căruia trebuie să utilizați toate tehnicile discutate în lucrarea respectivă simultan.
Peter Gutmann a încercat de atunci să-l aducă pe geniul înapoi în sticlă spunând „O spălare bună cu date aleatorii va face la fel de bine pe cât se poate de așteptat”.
Dar suntem acolo unde suntem și acestea sunt gama de tehnici folosite de comenzile de ștergere securizată. Dar mai întâi trebuie să le instalăm.
Instalarea secure-delete
Utilizați apt-get pentru a instala acest pachet pe sistemul dvs. dacă utilizați Ubuntu sau o altă distribuție bazată pe Debian. Pe alte distribuții Linux, utilizați instrumentul de gestionare a pachetelor din distribuția dvs. Linux.
sudo apt-get install secure-delete
Există patru comenzi incluse în pachetul de ștergere securizată.
srm este un rm securizat, folosit pentru a șterge fișierele ștergându-le și suprascriind spațiul pe hard disk.
sfill este un instrument pentru a suprascrie tot spațiul liber de pe hard disk.
sswap este folosit pentru a suprascrie și curăța spațiul dvs. de swap.
sdmem este folosit pentru a vă curăța memoria RAM.
Comandamentul srm
Utilizați comanda srm la fel cum ați folosi comanda rm. Pentru a elimina un singur fișier, utilizați următoarea comandă. Opțiunea -z (zerouri) face ca smr să folosească zerouri pentru ștergerea finală în loc de date aleatorii. Opțiunea -v (verboză) face ca srm să ne informeze despre progresul său.
srm -vz Chapter_One_01.txt
Primul lucru pe care îl veți observa este că srm este lent. Oferă un feedback vizual pe măsură ce funcționează, dar este o ușurare când vedeți din nou promptul de comandă.
Puteți utiliza opțiunea -l (scăderea securității) pentru a reduce numărul de treceri la două, ceea ce accelerează dramatic lucrurile.
srm -lvz Chapter_One_02.txt
srm ne informează că acest lucru — în opinia sa — este mai puțin sigur, dar tot șterge și suprascrie fișierul pentru noi.
Puteți utiliza opțiunea -l (scăderea securității) de două ori, pentru a reduce numărul de treceri la una.
srm -llvz Chapter_One_03.txt
Utilizarea srm cu mai multe fișiere
Putem folosi și wildcard-uri cu srm. Această comandă va șterge și șterge părțile rămase din capitolul unu:
srm -vc Chapter_One_0?.txt
Fișierele sunt procesate de srm pe rând.
Ștergerea directoarelor și a conținutului acestora cu srm
Opțiunea -r (recursivă) va face ca srm să șteargă toate subdirectoarele și conținutul acestora. Puteți trece calea către primul director către srm.
În acest exemplu, ștergem tot ce este directorul curent, ~/research. Aceasta înseamnă că toate fișierele din ~/research și toate subdirectoarele sunt eliminate în siguranță.
srm -vz *
srm începe procesarea directoarelor și fișierelor.
În cele din urmă, vă întoarce la promptul de comandă. Pe mașina de testare pe care a fost cercetat acest articol, a durat aproximativ o oră pentru a elimina aproximativ 200 de fișiere distribuite între directorul curent și trei directoare imbricate.
Toate fișierele și subdirectoarele au fost eliminate conform așteptărilor.
Comandamentul sfill
Ce se întâmplă dacă sunteți îngrijorat de un fișier pe care l-ați șters folosind rm, cum puteți trece peste acel vechi teren și să vă asigurați că este suprascris? Comanda sfill va suprascrie tot spațiul liber de pe hard disk.
Pe măsură ce face acest lucru, veți observa că aveți din ce în ce mai puțin spațiu liber pe hard disk, până în punctul în care nu există deloc spațiu liber. Când se termină completarea, vă eliberează tot spațiul liber înapoi. Dacă administrați un sistem multi-utilizator, acest lucru ar fi foarte perturbator, deci aceasta este o sarcină de întreținere care ar trebui efectuată în afara orelor de program.
Chiar și pe un computer cu un singur utilizator, pierderea spațiului pe hard disk înseamnă că acesta este inutilizabil odată ce încă a folosit cea mai mare parte a spațiului. Acesta este ceva de care ați începe și apoi ați pleca.
Pentru a încerca să accelerezi puțin lucrurile, poți folosi opțiunea -l (scăderea securității). Celelalte opțiuni sunt opțiunile -v (verbose) și -z (zerouri) pe care le-am văzut anterior. Aici, solicităm să suprascriem în siguranță tot spațiul liber din directorul /home.
sudo sfill -lvz /home
Simte-te ca acasa. Pe computerul de testare, care are doar un hard disk de 10 GB, acesta a fost pornit la mijlocul după-amiezii și s-a finalizat cândva peste noapte.
Va dispărea ore întregi. Și asta cu opțiunea -l (scăderea securității). Dar, în cele din urmă, veți reveni la promptul de comandă.
Comanda sswap
Comanda sswap suprascrie spațiul de stocare din partiția dvs. de swap. Primul lucru pe care trebuie să-l facem este să vă identificăm partiția de swap. Putem face acest lucru cu comanda blkid, care listează dispozitivele blocate.
sudo blkid
Trebuie să găsiți cuvântul „swap” și să notați dispozitivul de bloc la care este atașat.
Putem vedea că partiția de swap este conectată la /dev/sda5.
Trebuie să dezactivăm scrierea pe disc pe partiția de swap pe durata suprascrierii. Vom folosi comanda swapoff:
sudo swapoff /dev/sda5
Acum putem folosi comanda sswap.
Vom folosi /dev/sda5 ca parte a liniei de comandă pentru comanda sswap. Vom folosi, de asemenea, opțiunea -v (verbosă) și opțiunile -ll (scăderea securității), pe care le-am folosit mai devreme.
sudo sswap -llv /dev/sda5
sswap începe să lucreze prin partiția dvs. de swap, suprascriind tot ceea ce este în ea. Nu durează atât de mult. Pur și simplu se simte așa.
Odată ce s-a terminat, trebuie să reinstalăm partiția de swap ca spațiu de schimb activ. Facem asta cu comanda swapon:
sudo swapon /dev/sda5
Comanda sdmem
Pachetul de ștergere securizată conține chiar și un instrument pentru a șterge cipurile de memorie cu acces aleatoriu (RAM) din computer.
A atac de încărcare rece necesită acces fizic la computer la scurt timp după ce acesta este oprit. Acest tip de atac poate permite, potențial, recuperarea datelor de pe cipurile RAM.
Dacă credeți că trebuie să vă protejați împotriva acestui tip de atac – și ar fi o exagerare pentru majoritatea oamenilor să creadă că au nevoie – vă puteți șterge memoria RAM înainte de a opri computerul. Vom folosi din nou opțiunile -v (verbos) și -ll (scăderea securității).
sudo sdmem -vll
Fereastra terminalului se va umple cu asteriscuri ca o indicație că sdmem își trece prin memoria RAM.
Opțiunea ușoară: doar criptați unitatea
În loc să ștergeți fișierele în siguranță, de ce să nu vă asigurați hard diskul sau folderul de acasă folosind criptarea?
Dacă faci asta, nimeni nu poate accesa nimic, fie că este un fișier live sau un fișier șters. Și nu trebuie să fiți în gardă și să vă amintiți să ștergeți în siguranță fișierele sensibile, deoarece toate fișierele dvs. sunt deja protejate.
Majoritatea distribuțiilor Linux vă întreabă dacă doriți să utilizați criptarea în momentul instalării. A spune „da” va economisi o mulțime de agravări viitoare. Este posibil să nu vă ocupați de informații secrete sau sensibile. Dar dacă credeți că puteți da sau vinde computerul altcuiva când ați terminat cu el, criptarea va simplifica și asta.