Gegevens verwijderen van computers, op harde schijf en ssd

Marco den Teuling
0

Inhoudsopgave

Vroeg of laat bereiken gegevens hun ‘end of life’, en dan verwijder je ze. Maar ‘dat kan nu weg’ betekent zeker niet hetzelfde als ‘als dit nog een keer opduikt, ben ik de klos’. Daarom betekent verwijderen niet altijd hetzelfde. We gaan in op de basis van datahygiëne en hoe je correct gegevens verwijderen kunt. 

Beveiligingsdeskundigen, en ook degenen die zichzelf zo noemen, beweren nogal eens dat je voor een echt ‘goed verwijderen’ de gebruikte gegevensdrager compleet dient te overschrijven en dan het liefst nog in kleine stukjes moet hakken. Dat is onzin. Er zijn vele verschillende manieren om bestanden te verwijderen, en die hebben allemaal hun functie. Het belangrijkste is dat je begrijpt wat de gebruikte ‘verwijdering’ precies doet en vooral: wat het betekent voor de gegevens waarop je dit toepast. Dan kun je ook de wettelijke voorschriften over gegevensbescherming in een bedrijfsomgeving naar de geest en niet alleen naar de letter van de wet volgen.

Het gewone verwijderen in Verkenner is slechts een intentieverklaring. Het verwijdert de geselecteerde mappen en bestanden niet, maar verplaatst ze alleen naar de prullenbak. Van daaruit kunnen ze met slechts een paar muisklikken teruggezet worden omdat de bestanden en alle bijbehorende informatie op het systeem beschikbaar blijven.

Dit is geen nalatigheid van Microsoft, maar een echt pré. Vaak zul je per ongeluk gegevens verwijderen en dan wil je ze ook weer terughalen. Daarom hebben zelfs de gangbare Linux-desktops het verwijderen naar de prullenbak met een eenvoudige herstelfunctie ingevoerd als de standaardmethode. MacOS had dat zelfs nog eerder dan Windows.

Gegevens verwijderen?

De vraag ‘Weet u zeker dat u dit bestand definitief wilt verwijderen?’, die verschijnt als je bij het klikken op ‘Verwijderen’ de Shift-toets ingedrukt houdt, is wel misleidend. Daarbij wordt dezelfde functie van het besturingssysteem gebruikt waarmee je de prullenbak leegt, via de opdrachtregel iets verwijdert met de opdracht ‘del’, of die een programma in zijn (C-)code aanroept met remove().

gegevens verwijderen Windows Verkenner prullenbak

Ondanks de waarschuwing van Verkenner is de verwijdering helemaal niet ­definitief: de verwijderde gegevens blijven bestaan.

Bij al deze verwijderingen worden de eigenlijke gegevens namelijk niet vernietigd. In plaats daarvan verwijdert het besturingssysteem de verwijzing naar het bestand in het bestandssysteem en markeert het de opslagruimte die het bestand in beslag nam als ‘vrij’. Dit betekent dat de gegevens door het systeem ooit een keer zullen worden overschreven. Bij de inmiddels gebruikelijke terabyteschijven in desktop-pc’s kan dat wel even duren. Tot die tijd slingeren de gegevens gewoon nog steeds rond op de schijf en kunnen ze met de geschikte data­herstelsoftware vaak eenvoudig gevonden worden. En een forensisch expert die weet waarnaar hij op zoek is, kan nog veel meer gegevens aan het licht brengen. Dit is bij Linux en macOS niet veel anders dan bij Windows.

We testen diverse programma's voor dataherstel in c't nov/2018

Wat wel een wezenlijk verschil maakt is het type schijf, of liever: de gebruikte opslagtechnologie. Op een magnetische harde schijf zonder ruimtegebrek blijven de vrijgegeven blokken en de gegevens daarin vaak weken en maanden onaangetast. Zij vormen voor elke onderzoeker een ware schat aan gegevens.

Bij een ssd ligt dat anders. Daar kan elke flashgeheugencel slechts een beperkt aantal schrijfacties aan voordat hij kapotgaat. Om de levensduur te maximaliseren, verdeelt de ssd-controller schrijfacties zoveel mogelijk gelijkmatig over alle cellen. Als een bestand wordt gewist, geven de huidige versies van Windows, macOS en Linux meteen via een TRIM-opdracht aan de ssd door, dat de bijbehorende blokken per direct vrij zijn. Vervolgens worden die benut bij het verdelen van schrijfacties. Dat proces wordt Wear Leveling genoemd.

gegevens verwijderen van harde schijf hard disk data veilig wissen

Traditionele magnetische schijven (links) gebruiken een totaal andere geheugentechnologie dan ssd’s (rechts). Dit heeft ook gevolgen voor het verwijderen van gegevens.

Daardoor overschrijven de ssd’s vrijgegeven blokken relatief snel. En ook als de gegevens nog niet zijn overschreven, retourneert de controller alleen nullen als het systeem een dergelijk vrij blok wil lezen. In principe kan een forensisch expert de controller passeren en toch de inhoud van het niet-overschreven flashgeheugen lezen. Maar dat grenst aan tovenarij en wordt alleen in extreme gevallen gebruikt. In de dagelijkse praktijk vervloeken forensische wetenschappers ssd’s, omdat zij daarvan meestal weinig gegevens kunnen herstellen.

De mythe van veilig verwijderen

Als je gegevens werkelijk wilt vernietigen, moet je ze overschrijven. Daar circuleren een aantal mythes uit het computersteentijdperk over, toen je harde schijven nog mechanisch kon openen en de afzonderlijke platen blok voor blok kon onderzoeken op restmagnetisering. Alleen het beschrijven met willekeurige gegevens en dan liefst vaker, het beste 10 tot 15 keer, gaf daarbij werkelijk de garantie dat de gegevens onleesbaar waren.

Het is echter een feit dat één keer met nullen overschrijven genoeg is voor een normale bescherming. Zeker bij harde schijven die in dit decennium zijn gemaakt. Al het andere kost je alleen maar waardevolle tijd.

Voor elk besturingssysteem zijn er hulpprogramma’s waarmee je de inhoud van een bestand vóór het verwijderen kunt overschrijven. Voor Windows is  SDelete uit de SysInternals-tools het meest gerenommeerd. Voor macOS en Linux is er bijvoorbeeld ‘Secure Remove’, dat deel uitmaakt van de toolkit Secure Deletion. Je start het vanaf de opdrachtregel met srm.

Dat van dat overschrijven klinkt eenvoudig, maar heeft ook zijn problemen. Eigenlijk wil je de gegevens verwijderen, maar je overschrijft in de praktijk daarbij bestanden.

En gegevens hebben nu eenmaal de onhebbelijkheid om zich te verspreiden. Het begint er al mee dat je misschien nog ergens een oudere versie van een bestand hebt rondslingeren, met daarin bijna dezelfde gegevens. Sommige versies van Windows maken automatisch zogenaamde schaduw­kopieën van bestanden. Onder bepaalde omstandigheden probeert ook je antivirussoftware om de gegevens die je wilt overschrijven tegen een mogelijke aanval van ransomware in veiligheid te brengen. Dit alles zorgt ervoor dat zelfs nadat je een bestand schijnbaar veilig hebt verwijderd, er op zijn minst nog delen van de gegevens op de harde schijf kunnen worden teruggevonden.

gegevens verwijderen harde schijf editor bewaard

Gevonden! Gegevens waarvan je dacht dat ze veilig verwijderd waren staan nog steeds op de harde schijf.

Als je nu op het idee komt om je gevoelige gegevens in Windows te zoeken met de zoekfunctie, bijvoorbeeld om naar bestanden met je wachtwoord zoeken: doe dat niet! Daardoor belanden je gevoelige gegevens in de zoekgeschiedenis en dus in elk geval in het register; in Windows 10 misschien zelfs meteen in de cloud bij Microsoft.

En dat niet alleen. Op een heel laag niveau, namelijk dat van het bestands­systeem, probeert Windows zich in te dekken tegen een plotselinge stroom­storing, die een schrijfactie mogelijk kan onderbreken. Daarom houden moderne bestandssystemen zoals NTFS een logboek bij van alle transacties, waarmee het ook bij een onverwachte herstart kan terug­keren naar een consistente toestand. Ook in dit logboek vonden we bij onze test gevoelige gegevens. Sommige opslaglocaties voor kopieën van de gegevens zijn van zeer korte duur, zoals het NTFS-Journal. Die zijn vrij snel verdwenen na de volgende start van Windows. Andere blijven echter weken of zelfs permanent bestaan.

Gegevens verwijderen op ssd's

Bij ssd’s geldt ook niet langer dat je een specifiek bestand op de schijf kunt overschrijven. Als het besturingssysteem bij een gewone harde schijf blok 423 overschrijft, dat behoort tot het bestand ‘passwords.txt’, dan zijn de wachtwoorden in dat bestand weg. Als je echter een geheugenpagina van een ssd wilt beschrijven, moet je eerst het gehele blok (meestal 128 pagina’s van 4 kB elk) op 0 zetten. Omdat dat niet mogelijk is, omdat de rest van het blok nog gegevens bevat, leidt de Flash Translation Layer (FTL) van de controller de schrijfactie om naar een pagina die al met nullen gevuld is.

De oorspronkelijke geheugenpagina belandt in de pool van pagina’s die bij de volgende gelegenheid met nullen gevuld gaan worden, en is daarna weer klaar voor schrijftoegang. De wachtwoorden blijven er al die tijd staan. Deze flashgeheugen-cellen zijn via de traditionele ATA-interface echter niet bereikbaar. Je zou de controller moeten passeren en ze direct uitlezen.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Vrije ruimte overschrijven

Als je vermoedt dat er nog vrije opslag­gebieden zijn die nog resten van gegevens bevatten, wis je gewoon het hele vrije geheugen en ben je klaar. Dat is in elk geval het principe achter een vaak aangehaald concept voor het veilig gegevens verwijderen. Daarvoor maak je met een verwijdertool net zolang nieuwe bestanden vol met nullen aan tot de vrije ruimte volledig is uitgeput. Aansluitend worden de nep­bestanden natuurlijk weer verwijderd.

Bij Windows kan dat bijvoorbeeld met sdelete -c C: of met cipher /w:c:. Cipher is een weinig bekende opdrachtregeltool voor het bekijken en instellen van versleutelingsopties, die bij alle versies van Windows aanwezig is. Bij Linux kan het met sfill uit de Secure Deletion Toolkit, bij macOS heeft Apple de functie uit het zichtbare gedeelte van de schijfhulpprogramma’s verwijderd, maar het werkt vanaf de opdrachtregel gewoon nog steeds:

diskutil secureErase freespace 0 ‘/Volumes/Macintosh HD’

Deze handeling draagt wel bij aan de datahygiëne, want er worden dan over­bodige gegevens gewist, maar het is niet waterdicht. Het werkt natuurlijk niet bij kopieën van gegevens die nog steeds in ongewiste bestanden zoals back-ups aanwezig zijn.

NTFS en Over Provisioning

En er is nog een valkuil. Het Windows-bestandssysteem NTFS slaat administratieve gegevens voor alle bestanden op in de zogenaamde master file table (MFT). Voor gegevens in de orde van grootte van 512 bytes reserveert NTFS daarbij geen eigen blok, maar bewaart het de inhoud van het bestand rechtstreeks in de MFT. Dit bespaart tijd en ruimte. Maar deze bestanden in de MFT die als verwijderd zijn gemarkeerd, worden niet overschreven door grote bestanden.

Bij zulke kleine gegevenssnippers gaan zelfs de Microsoft-tools de mist in. SDelete en cipher beweren overigens wel dat ze ook de MFT-gegevens wissen. Toch hebben we na dergelijke wisacties nog steeds testgegevens in de MFT ontdekt, die dus ontsnapt waren aan zowel SDelete als cipher, zowel op harde schijven als op ssd’s. Vermoedelijk had het besturingssysteem deze gebieden van de MFT tijdelijk gereserveerd. Pas toen we het bestandssysteem ‘van buitenaf’ schoonmaakten met de Linux-tool ntfswipe, waren de laatste sporen inderdaad verdwenen. Voor het schoonmaken van Windows-systemen bleek ntfswipe toch al een nuttig hulpmiddel.

Ook bij het overschrijven van het geheugen nemen ssd’s een aparte plaats in. Ze reserveren namelijk altijd een gebied dat je van buitenaf niet kunt aanspreken. Dat gebruiken ze om de omslachtige schrijf­acties te versnellen. De fabrikanten formuleren dit positief en hebben het over Over Provisioning, oftewel ‘marge vrijhouden’. Alle ssd’s reserveren hiervoor ten minste 7 procent van hun capaciteit. Maakt een fabrikant reclame voor een ssd met versnelde schrijftoegang door Over Provisioning, dan betekent dat gewoon dat er grotere gebieden gereserveerd worden. Dit gereserveerde geheugen kan in bepaalde omstandigheden nog niet gewiste gegevens bevatten. Het goede nieuws is wel dat dit van buiten niet benaderd kan worden, alleen rechtstreeks vanuit het flashgeheugen.

Veilig gegevens verwijderen

Voor de perfectionisten blijft er uiteindelijk maar één manier om ongewenste gegevens veilig te verwijderen. Je moet dan alle gegevens op de schijf, dus alle geheugen­plaatsen, minstens één keer de waarde nul geven. Dat kan niet met de harde schijf die door Windows wordt gebruikt, maar dan kun je altijd nog van een dvd of van een usb-stick opstarten, of je verwijdert de schijf en stopt hem in een andere computer.

Voor het wissen kun je bijvoorbeeld een versie van Windows voor systeemherstel starten en dan met diskpart vanaf de opdrachtregel de actieve schijf volledig resetten met de opdracht ‘clean all’. Daarnaast kun je ook gewoon de Linux-opdrachtregeltool dd of hdparm gebruiken.

Het gebruik van diskpart hebben we uitgebreid beschreven in c't mei/2018

Ook hier nemen de ssd’s een uitzonderingspositie in. Vanwege de Over Provisioning kun je een ssd namelijk niet aaneengesloten van voor naar achter overschrijven. Daarom kun je het beste een speciale instructie van de ATA-specificatie gebruiken. Met ATA Secure Erase draag je de controller op om alle geheugencellen te resetten. Dat heeft uitdrukkelijk ook betrekking op alle gereserveerde gebieden. Overigens ondersteunen zo goed als alle gewone harde schijven intussen ook ATA Secure Erase. Je kunt het starten met speciale tools van de fabrikant of de Linux-tool hdparm (zie voorgaande).

Het probleem is natuurlijk dat daarna alles weg is. Niet alleen de gegevens, maar ook het geïnstalleerde besturingssysteem, de software, de stuurprogramma’s, alles. Dat doe je niet zomaar even als je alleen een paar afbeeldingen wilt lozen.

Een uitweg voor het dilemma van gewiste, maar niet vernietigde gegevens is versleuteling. Als je je harde schijf volledig versleutelt met bijvoorbeeld Bitlocker, LUKS of Veracrypt, wordt het probleem een stuk beter beheersbaar. Een dief die de schijf heeft gestolen (maar ook een rechtmatige koper van een gebruikte schijf) kan zonder de gebruikte sleutel niet bij de opgeslagen gegevens, ongeacht of ze gewist zijn of niet. Versleuteling helpt echter niet als je je werkgever of een klant wilt verzekeren dat bepaalde gegevens niet meer op je computer staan. Na het invoeren van het wachtwoord is alles wat hier­boven gezegd is dan immers niet meer van toepassing.

Terzijde: er zijn opslagmedia die ATA Secure Erase om prestatieredenen implementeren met versleuteling. Omdat het verwijderen vele uren zou duren, worden alle gegevens intern versleuteld voordat ze op het medium belanden. Om het apparaat daarna veilig te wissen, gooit de controller gewoon de interne sleutel weg. Als de fabrikant een veilige versleutelingsmethode zoals AES goed geïmplementeerd heeft en de sleutels voldoende willekeurig zijn, komt ook dat tegemoet aan hoge veiligheidseisen. Onderzoekers hebben echter al fouten gevonden in sommige Secure Erase-implementaties. Omdat je die zelf niet kunt controleren, raden experts voor de allerhoogste veiligheid een combinatie aan van verwijderen door overschrijven en Secure Erase. En het medium daarna vernietigen.

Terug naar de vraag hoe je veilig bestanden verwijderen kunt. Na de bovenstaande gedetailleerde uitleg, kun je zelf het antwoord geven: ‘Dat hangt er vanaf …’ Voor normaal computergebruik is de prullenbak erg handig. Als de gegevens werkelijk weg moeten, is op zijn minst een combinatie van overschrijven en het wissen van de vrije ruimte aan de orde.

Wat en hoe we verwijderen testten en wat daaruit kwam, lees je in c't dec/2018

Bij een dergelijke manier van wissen moet je wel in je achterhoofd houden dat de gegevens nog op allerlei niet gewiste plaatsen kunnen opduiken. Daarom is de ultieme oplossing, als er echt veel op het spel staat als de gegevens opnieuw opduiken, echt alleen om het hele medium volledig te wissen. Als de situatie wat minder dramatisch is, is overschrijven en daarna ‘van buitenaf’ schoonmaken met ntfswipe een goede optie. Bij tests bleek dat grondiger te werken dan de tools van Microsoft.

(Jürgen Schmidt, c’t magazine)

Deel dit artikel

Marco den Teuling
Marco den TeulingHad als eerste eigen computer ooit een 16-bit systeem, waar van de 48 kilobyte toch echt niet ‘genoeg voor iedereen’ was. Sleutelt graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen. Vindt ‘Software as a Service’ een onbedoeld ironische naamgeving.

Lees ook

Verschil Windows 10 en 11: dit moet je weten over de twee versies

Wat is het verschil tussen Windows 10 en Windows 11? In dit artikel geven we je een overzicht van enkele functionele verschillen tussen de menu's, hoe...

Chat GPT gebruiken: dit kun je allemaal doen met de chatbot van OpenAI

OpenAI heeft de ChatGPT-bot ontwikkeld als een taalmodel dat is getraind op een enorme hoeveelheid tekst op het internet. Je kunt ChatGPT gebruiken om...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er