Sikker Sletting av Filer på Linux: En Detaljert Guide
Å fjerne gamle digitale filer bør være like gjennomført som å makulere sensitive papirdokumenter. Vi vil her forklare alt du trenger å vite for å slette filer sikkert på Linux-systemer. Denne guiden omfatter både «shred»-kommandoen og «secure-delete»-verktøysamlingen.
Hvorfor Vanlig Sletting Ikke Er Nok
Når du sletter en fil på datamaskinen din, blir den egentlig ikke fysisk fjernet fra harddisken. Det som skjer er at filsystemet endrer hvordan det håndterer såkalte inoder. En inode er en datastruktur som lagrer metadata om filer. Dette inkluderer filens navn, plassering på disken, attributter, og rettigheter. Selv en mappe er i realiteten en fil som lister opp navnene og inodenumrene til filene den inneholder.
Når du bruker kommandoen `rm` for å slette en fil, frigjør filsystemet den tilhørende inoden og justerer mappefilen. Dette markerer plasseringen på disken som filen okkuperte som ledig. Se for deg at du går inn i et bibliotek, finner et kartotekkort for en bok og river det i stykker. Boken er fortsatt i hyllen, men den er vanskeligere å finne.
Med andre ord, den fysiske plassen der filen lå er nå ledig for nye data. Men selve innholdet i den slettede filen er fortsatt lagret på disken, helt til den spesifikke plassen overskrives. Inntil det skjer, er det fullt mulig å gjenopprette filen.
Men å fjerne en fil permanent krever mer enn bare å overskrive den.
Viktig om SSD-er
Metodene vi skal diskutere er designet for tradisjonelle mekaniske harddisker (HDD). De bør ikke brukes på SSD-er (Solid State Drives). Disse teknikkene vil ikke fungere som forventet på SSD-er, og kan føre til unødvendig slitasje på enheten. For å slette data sikkert fra en SSD, anbefales det å bruke verktøyene som er levert av produsenten.
«shred»-Kommandoen
«shred» er en kommando designet for å overskrive filinnholdet slik at den blir vanskeligere å gjenopprette. Denne kommandoen er standard i de fleste Linux-distribusjoner, inkludert Ubuntu, Fedora og Manjaro.
I våre eksempler skal vi jobbe med en mappe kalt `~/research`, som inneholder tekstfiler og undermapper. Vi forutsetter at disse filene er sensitive og må slettes helt fra disken.
Vi kan visualisere mappestrukturen med `tree`-kommandoen med `-d` opsjonen for å bare vise mapper:
tree -d
Makulere Enkeltfiler
For å slette en enkelt fil sikkert, bruker vi følgende kommando med disse opsjonene:
- `u`: Fjern allokeringen og filen etter overskriving.
- `v`: Utførlig, viser hva «shred» gjør.
- `z`: Utfør en siste overskriving med nuller.
shred -uvz Preliminary_Notes.txt_01.txt
Som standard overskriver «shred» filen fire ganger. De tre første overskrivingene bruker tilfeldige data, og den siste bruker nuller, som vi ba om. Deretter fjernes filen og deler av metadataene i inoden overskrives.
Endre Antall Overskrivinger
Vi kan bruke `-n` (tall) opsjonen for å endre antall overskrivinger. «shred» utfører alltid minst én overskriving. Tallet vi oppgir er antall ekstra overskrivinger som skal utføres, så antall totalt overskrivinger er det angitte tallet pluss én. For å få tre totalt overskrivinger, legger vi til to ekstra:
shred -uvz -n 2 Preliminary_Notes.txt_02.txt
Som forventet utfører «shred» tre overskrivinger.
Færre overskrivinger er raskere, men er det mindre sikkert? Tre overskrivinger anses som mer enn tilstrekkelig i mange tilfeller.
Makulere Flere Filer
Vi kan bruke jokertegn for å velge grupper av filer. `*` representerer flere tegn, mens `?` representerer et enkelt tegn. Denne kommandoen vil slette alle de gjenværende `Preliminary_Notes` filene i den aktive mappen:
shred -uvz -n 2 Preliminary_Notes_*.*
«shred» behandler filene en etter en.
«shred» har ikke en rekursiv opsjon, så den kan ikke brukes til å slette mappe trær.
Problemet med Sikker Sletting
Til tross for at «shred» er en god kommando, er det et problem. Moderne filsystemer med journalføring, som ext3 og ext4, gjør sitt ytterste for å unngå at data går tapt. Med disse systemene finnes det ingen garanti for at overskrivingen faktisk treffer den spesifikke harddiskplassen som den slettede filen brukte.
Om du bare vil ha litt mer sikkerhet enn hva `rm` tilbyr, er «shred» sannsynligvis tilstrekkelig. Men du bør ikke ta for gitt at filene er 100% borte og uopprettelige. Sannheten er nok mer nyansert.
«secure-delete» Verktøyene
«secure-delete»-verktøyene prøver å omgå systemene for journalføring av filsystemet og lykkes med å overskrive filen sikkert. Men de samme forbeholdene gjelder. Det er fortsatt ingen garanti for at overskrivingen faktisk skjer på det riktige stedet. Det er større sjanse for at det skjer, men ingen garanti.
«secure-delete»-kommandoene bruker denne sekvensen av overskrivinger og handlinger:
- Overskriv med 0xFF-verdier.
- 5 overskrivinger med tilfeldige data.
- 27 overskrivinger med spesielle verdier definert av Peter Gutmann.
- 5 overskrivinger med tilfeldige data.
- Gi filen et nytt tilfeldig navn.
- Forkort filen.
Om dette virker overdrevent er du ikke alene. Det virket også overdrevent for Peter Gutmann, en professor ved Universitetet i Auckland, som publiserte en artikkel i 1996 som diskuterer disse teknikkene. Denne artikkelen var opphavet til myten om at man må bruke alle disse teknikkene samtidig.
Peter Gutmann har senere prøvd å forklare at «en god skrubbing med tilfeldige data er omtrent så bra som man kan forvente.»
Uansett, dette er utvalget av teknikker som brukes av «secure-delete»-kommandoene. Først må vi installere dem.
Installere «secure-delete»
På Ubuntu eller andre Debian-baserte systemer, bruk `apt-get` for å installere pakken. På andre Linux-distribusjoner, bruk ditt systems pakkebehandlingsverktøy:
sudo apt-get install secure-delete
Denne pakken inkluderer fire kommandoer:
- `srm`: En sikker `rm` som sletter og overskriver filenes plass på disken.
- `sfill`: Et verktøy for å overskrive all ledig plass på disken.
- `sswap`: Brukes til å overskrive og rense swap-partisjonen.
- `sdmem`: Brukes til å rense RAM.
«srm»-Kommandoen
Du bruker `srm` på samme måte som du bruker `rm`. For å fjerne en enkelt fil, bruk følgende kommando. Opsjonen `-z` (nuller) sørger for at srm bruker nuller ved siste overskriving, mens `-v` (verbose) viser fremgangen:
srm -vz Chapter_One_01.txt
Du vil legge merke til at `srm` er treg. Den gir litt visuell tilbakemelding, men det er en lettelse når den er ferdig.
Du kan bruke `-l` (redusere sikkerheten) for å redusere antallet overskrivinger til to, noe som øker hastigheten betydelig:
srm -lvz Chapter_One_02.txt
srm informerer oss om at dette, ifølge den selv, er mindre sikkert, men filen slettes og overskrives.
Du kan bruke `-l` to ganger for å redusere antall overskrivinger til én:
srm -llvz Chapter_One_03.txt
Bruke «srm» med Flere Filer
Jokertegn fungerer også med `srm`. Denne kommandoen sletter og makulerer de gjenværende delene av «kapittel en»:
srm -vc Chapter_One_0?.txt
Filene behandles etter tur.
Slette Mapper og Innhold med «srm»
Med opsjonen `-r` (rekursivt), vil `srm` slette alle undermapper og deres innhold. Du kan sende stien til den første mappen til `srm`.
I dette eksemplet sletter vi hele den gjeldende mappen `~/research`. Det vil si alle filer og undermapper i denne mappen:
srm -vz *
`srm` begynner å behandle mappen og filene.
Til slutt kommer du tilbake til ledeteksten. På testmaskinen som ble brukt i denne artikkelen, tok det rundt en time å fjerne omtrent 200 filer fordelt på den aktive mappen og tre undermapper.
Alle filene og undermappene er fjernet som forventet.
«sfill»-Kommandoen
Hva om du er bekymret for en fil du har slettet med `rm`, hvordan kan du sørge for at den gamle plasseringen overskrives? `sfill` vil overskrive all ledig plass på harddisken.
Når den gjør dette, vil du merke at du har mindre og mindre ledig plass på disken, til det ikke er mer plass igjen. Når fyllingen er fullført, frigjøres all plassen igjen. Dette kan være forstyrrende for et system med flere brukere, og bør gjøres utenom åpningstidene.
Selv for en enkeltbruker, betyr tap av diskplass at datamaskinen vil være vanskelig å bruke mens `sfill` fyller disken. Dette er noe du bør starte og så gå bort fra.
For å fremskynde prosessen, kan du bruke opsjonen `-l` (reduser sikkerheten). De andre opsjonene er `-v` (verbose) og `-z` (null). Her ber vi `sfill` overskrive ledig plass i `/home`-mappen:
sudo sfill -lvz /home
Bare så det er sagt, på testmaskinen med en 10GB harddisk tok dette hele ettermiddagen og ble ikke fullført før ut på natten.
Det vil fortsette i timesvis. Og dette er med `-l` opsjonen. Til slutt kommer du tilbake til ledeteksten.
«sswap»-Kommandoen
Kommandoen `sswap` overskriver swap-partisjonen din. Det første vi må gjøre er å identifisere swap-partisjonen med kommandoen `blkid`:
sudo blkid
Finn ordet «swap» og noter deg blokkenheten den er koblet til.
Vi ser at swap-partisjonen er koblet til `/dev/sda5`.
Vi må slå av diskskriving til swap-partisjonen mens overskrivingen pågår. Det gjør vi med `swapoff`:
sudo swapoff /dev/sda5
Nå kan vi bruke kommandoen `sswap`:
Vi vil bruke `/dev/sda5` i kommandolinjen for `sswap`. Vi vil også bruke opsjonene `-v` (verbose) og `-ll` (redusert sikkerhet) som vi har brukt tidligere:
sudo sswap -llv /dev/sda5
`sswap` begynner å jobbe seg gjennom swap-partisjonen og overskriver alt innholdet. Det tar ikke like lang tid som `sfill`, men det føles sånn.
Når den er ferdig, må vi gjeninnføre swap-partisjonen som en aktiv swap-plass med kommandoen `swapon`:
sudo swapon /dev/sda5
«sdmem»-Kommandoen
Pakken «secure-delete» har også et verktøy for å tørke RAM-brikkene (Random Access Memory) på datamaskinen.
Et kaldstart-angrep krever fysisk tilgang til datamaskinen kort tid etter den er slått av. Denne typen angrep kan potensielt hente data fra RAM-brikkene dine.
Hvis du tror du trenger beskyttelse mot denne typen angrep, kan du tørke av RAM-en din før du slår av maskinen. Vi bruker opsjonene `-v` (verbose) og `-ll` (redusert sikkerhet) enda en gang:
sudo sdmem -vll
Terminalvinduet vil fylles med stjerner som indikerer at `sdmem` jobber seg gjennom RAM-en.
Det Enkle Alternativet: Krypter Disken
Istedenfor å slette filer sikkert, hvorfor ikke sikre harddisken eller hjemmemappen med kryptering?
Hvis du gjør det, kan ingen få tilgang til noe, enten det er en aktiv fil eller en slettet fil. Og du slipper å huske å slette sensitive filer på en sikker måte, fordi alle filene dine allerede er beskyttet.
De fleste Linux-distribusjoner spør om du ønsker å kryptere disken under installasjonen. Å svare «ja» vil spare deg for mye fremtidig bry. Du kan ikke stole på at sikker sletting alene beskytter deg, men hvis du tenker å gi bort eller selge datamaskinen, vil kryptering gjøre det mye enklere.