Ukratko, veoma malo ljudi je upoznato sa postupkom brisanja podataka, iako ga svakodnevno koristimo. Brisanjem određenog skupa podataka standardnim metodama, praktično samo označavamo prostor na disku koji su ti podaci zauzimali dostupnim za nova zapisivanja. Sam postupak zapravo uklanja samo "pokazivač" (npr. .png slika, .ods tabela ili .mp3 audio datoteka) na te podatke, fizički ostavljajući njihov sadržaj i dalje na disku. Stoga, postoji vjerovatnoća njihovog uspješnog povratka sve dok ne budu prepisani novim sadržajem.
Postoji više metoda za sigurno i konačno uklanjanje podataka, od ekstremnih (fizičko uništavanje diska, demagnetizacija itd.) do onog koji će biti objašnjen u ovom kratkom uputstvu - prepisivanje podataka. Ukratko, metodom "prepisivanja" podaci koji se žele obrisati, odnosno prostor koji zauzimaju na disku, se prepisuju upotrebom određenog šablona sa slučajnim sadržajem, potom se uklanja i njihov "pokazivač", mada većina alata nudi mogućnost i ostavljanja "pokazivača". Postoji mnoštvo šablona u praksi, koji se prvenstveno razlikuju u algoritmu i broju prelaza (broju zapisivanja), samim tim jačini i pouzdanosti. Najpouzdaniji šabloni su obično oni sa najviše prelaza, samim ti i najsporiji. Iako su šabloni sa jednim prelazom najbrži, obično se preporučuje upotreba šablona sa minimalno 3 prelaza.
Pojmovi:
Prepisivanje slobodnog prostora. Kompletan slobodan prostoru na particiji/disku se prepisuje nasumičnim podacima upotrebom određenog šablona. Moguće je vršiti i prepisivanje kompletne particije/diska zajedno sa svim postojećim podacima.
File slack. Da bi ste u potpunosti razumjeli pojam "file slack", potrebno je određeno razumijevanje postupka čuvanja podataka na disku, pojmova "klaster" i "sektor" itd., što u svakom slučaju prelazi okvire ovog uputstva. Ukratko i najednostavnije, file slack je slobodan prostora između kraja jedne datoteke i krajnje granice klastera (najmanja moguća logička jedinica fajlsistema kojoj može biti dodijeljeno čuvanje podataka) koji ta datoteka zauzima. Na primjer: ako snimite datoteku koja zauzima 75% klastera, potom je "obrišete" standardnom metodom, podaci i dalje ostaju dostupni u tih 75%. Naknadnim zapisivanje, ako se u taj isti klaster snimi datoteka koja zauzima njegovih 50% i dalje preostaje 25% stare datoteke dostupno.
U ovom uputstvu ću koristiti samo dvije alatke - srm i BCWipe. Obje alatke se koriste iz konzole. U slučaju da znate za programe sa sličnim/istim funkcijama, slobodno ih predstavite.
1. Alatka srm
Alatka srm je sigurnosno orijentisana varijanta standardne komande rm. Služi za sigurno brisanje podataka sa diska, odnosno njihovo uništavanje bez mogućnosti povratka. Ukratko, srm prepisuje podatke određenim šablonom, a potom vrši njihovo uklanjanje. Ne nudi mogućnost prepisivanja slobodnog prostora na disku. Za Slackware je dostupna SlackBuild skripta.
Alatka se koristi, kao i većina drugih komandi, na sledeći način:
Code: Select all
srm [OPCIJA] [DATOTEKA]
Code: Select all
$ srm --help
Usage: srm [OPTION]... [FILE]...
Overwrite and remove (unlink) the files.
-d, --directory ignored (for compatability with rm(1))
-f, --force ignore nonexistant files, never prompt
-i, --interactive prompt before any removal
-s, --simple overwrite with single pass using 0x00
-P, --openbsd overwrite with three passes like OpenBSD rm
-D, --dod overwrite with 7 US DoD compliant passes
-E, --doe overwrite with 3 US DoE compliant passes
-r, -R, --recursive remove the contents of directories
-v, --verbose explain what is being done
-h, --help display this help and exit
-V, --version display version information and exit
Primjeri:
U primjeru ću koristiti datoteku foobar.txt i folder foobar/.
Brisanje datoteke foobar.txt upotrebom US DoD algoritma sa 7 prelaza/zapisivanja:
Code: Select all
$ srm --dod foobar.txt
Code: Select all
$ srm -D foobar.txt
Code: Select all
$ srm --openbsd --recursive foobar/
Code: Select all
$ srm -PR foobar/
Code: Select all
$ srm --simple *.txt
2. Alatka BCWipe
Alatka BCWipe služi za sigurno brisanje podataka sa diska, odnosno njihovo uništavanje bez mogućnosti povratka. Ukratko, BCWipe prepisuje podatke određenim šablonom sa slučajnim podacima, a potom vrši njihovo uklanjanje (osim ako se eksplicitno ne navede da se podaci ne uklanjaju, iako su neupotrebljivi - opcija -d). Ono po čemu se izdvaja u odnosu na srm je mogućnost prepisivanja slobodnog prostora na disku, file slack-a, kao i kompletnih diskova i particija. Za Slackware je dostupna naša SlackBuild skripta.
Alatka se koristi, kao i većina drugih komandi, na sledeći način:
Code: Select all
bcwipe [OPCIJA] [DATOTEKA]
Code: Select all
$ bcwipe --help
bcwipe version 1.9-8 rev 319 2010-10-04 Copyright 1994-2010 Jetico, Inc.
Usage: bcwipe [OPTIONS]... FILE...
Remove FILE(s) with wiping.
OPTIONS:
-mb German BCI/VISTR 7-pass wiping
-md U.S. DoD 5220-22M 7-pass extended character rotation wiping
-me U.S. DoE 3-pass wiping
-mf<file> read wiping scheme from file. See *notes below
-mg (default) 35-pass wiping by Peter Gutmann
-ms 7-pass wiping by Bruce Schneier
-mt 1-pass test mode: fill the start of 512-byte block with block number
-mz 1-pass zero wiping
-m N U.S. DoD 5220-22M N-pass extended character rotation wiping
-w disable verification
-n sec NAS mode: wait sec seconds between wiping passes. See **notes below
-s use ISAAC random instead of SHA-1
-p use random pattern instead of full random
-r process the contents directories recursively
-f force wiping, never prompt (use with caution)
-d do not delete file(s) after wiping
-b wipe contents of block devices (use with caution)
-B disable direct IO access mode for block devices -t N use N threads to wipe block devices. Useful for multiple disk devices. -S wipe file slacks
-F wipe free space on mounted filesystem
-i prompt before any removal (y/[n]/a)
y - yes, n - no(default), a - yes for all
-I disable interactive prompt
-v verbose mode
-l[file] write log to file. Log to console if file name is omitted
-V output version information and exit
-h display this help and exit
* scheme file line format: pass_number. {random|complementary|hex[,hex[,hex[,hex]]][, verify]}
Example:
1. random, verify
2. AA,00,55
** modern enterprise level storage systems (NAS, disk arrays etc.)
employ powerful caches. To avoid undesirable caching effects
use this option to insert delay before file deleting.
Code: Select all
-mb German BCI/VISTR 7-pass wiping
-md U.S. DoD 5220-22M 7-pass extended character rotation wiping
-me U.S. DoE 3-pass wiping
-mf<file> read wiping scheme from file. See *notes below
-mg (default) 35-pass wiping by Peter Gutmann
-ms 7-pass wiping by Bruce Schneier
-mt 1-pass test mode: fill the start of 512-byte block with block number
-mz 1-pass zero wiping
-m N U.S. DoD 5220-22M N-pass extended character rotation wiping
U primjeru ću koristiti datoteku foobar.txt i folder foobar/.
Brisanje datoteke foobar.txt upotrebom US DoD algoritma sa 7 prelaza/zapisivanja:
Code: Select all
$ bcwipe -md foobar.txt
Wipe foobar.txt (y/[n]/a)?y
Code: Select all
$ bcwipe -md -I foobar.txt
$
Code: Select all
$ bcwipe -mb -r foobar/
Enter directory foobar (y/[n]/a)?y
Remove directory 'foobar' (y/[n]/a)?y
Code: Select all
$ bcwipe -mb -rI foobar/
$
Code: Select all
$ bcwipe -mg *.txt
Preporučuje pravljenje rezervne kopije podataka. Napomena: prepisivanje slobodnog prostora ne uključuje i brisanje file slack-a.
Prepisivanje slobodnog prostora najjednostavnijim šablonom (prepisivanje nulama u jednom prelazu) u vašem $HOME folderu možete izvršiti na sledeći način:
Code: Select all
$ bcwipe -mz -rFI /home/`whoami`
U slučaju da želite da prepišete sav slobodan prostor na sistemu, potrebna su vam root ovlaštenja i korištenje druge putanje - root (/). Na primjer, upotrebom U.S. DoE šablona sa 3 prelaza:
Code: Select all
$ su
Password:
# bcwipe -me -rFI /
Brisanje file slack-a (opcija -S) možete koristii samostalno ili u kombinaciji sa prepisivanjem slobodnog prostora.
Na primjer, brisanje file slack-a u okviru vašeg $HOME foldera:
Code: Select all
$ bcwipe -mz -rSI /home/`whoami`
Code: Select all
$ bcwipe -mz -rFSI /home/`whoami`
Code: Select all
$ su
Password:
# bcwipe -mg -rFSI /