Jak bezpečně smazat soubory v systému Linux

Skartujte staré datové soubory ze stejného důvodu jako staré papírové dokumenty. Řekneme vám, co potřebujete vědět o bezpečném mazání souborů Linux. Tento výukový program pokrývá příkaz shred a sadu nástrojů pro bezpečné smazání.

Smazané soubory jsou normálně obnovitelné

Odstraněním souboru se ve skutečnosti neodstraní z pevného disku. Vše závisí na způsobu, jakým váš souborový systém používá inody. Toto jsou datové struktury v systému souborů, které obsahují metadata týkající se souborů. Název souboru, jeho pozice na pevném disku, jaké atributy a oprávnění má a tak dále jsou uloženy v inode. Adresář není víc než samotný soubor. Takový, který obsahuje názvy a čísla inodů souborů, které adresář obsahuje.

Když smažete soubor pomocí rm, souborový systém uvolní příslušný inode a upraví soubor adresáře. Tím se označí místo na pevném disku, které soubor zabíral, jako nevyužité. Představte si, že vejdete do knihovny a projdete kartotéku, najdete katalogovou kartu knihy a roztrhnete ji. Kniha je stále na poličce. Jen je těžší najít.

Jinými slovy, prostor, který byl použit souborem, je nyní volný pro použití jinými soubory. Ale obsah starého souboru stále leží v tomto prostoru. Dokud nebude tento prostor přepsán, existuje velká šance, že bude možné soubor získat.

Úplné odstranění souboru však není tak jednoduché, jako jeho prosté přepsání. Jak uvidíme.

Nedělejte to s SSD

Tyto techniky jsou pro tradiční elektromechanické pevné disky (HDD) a neměly by se používat s jednotkami SSD (Solid State Drive). Nebude to fungovat a způsobí to další zápisy a zbytečné opotřebení vašeho SSD. Chcete-li bezpečně vymazat data z disku SSD, měli byste použít nástroj od výrobce vašeho SSD.

Příkaz shred

skartovat je určeno provést přepsání za vás takže smazaný soubor nelze obnovit. Je součástí všech linuxových distribucí, které byly testovány během výzkumu pro tento článek, včetně Ubuntu, Fedory a Manjaro.

V tomto příkladu budeme pracovat v adresáři ~/research, který obsahuje mnoho textových souborů. Obsahuje také některé další adresáře, které zase obsahují další soubory. Budeme předpokládat, že tyto soubory jsou citlivé a musí být zcela vymazány z pevného disku.

Stromovou strukturu adresářů můžeme vidět pomocí příkazu tree následovně. Volba -d (adresář) způsobí, že strom zobrazí pouze adresáře, a nikoli všechny soubory. Stromová struktura adresářů vypadá takto:

tree -d

Skartování jednoho souboru

Ke skartování jednoho souboru můžeme použít následující příkaz. Možnosti, které používáme, jsou:

u: Udělte přidělení a odeberte soubor po přepsání.
v: Možnost verbose, takže shred nám říká, co dělá.
z: Provede konečné přepsání nulami.

shred -uvz Preliminary_Notes.txt_01.txt

shred ve výchozím nastavení přepíše soubor čtyřikrát. První tři průchody používají náhodná data a poslední průchod používá nuly, jak jsme požadovali. Poté soubor odstraní a přepíše některá metadata v inode

Nastavení počtu přepisovacích průchodů

Můžeme požádat shred, aby použil více nebo méně přepisovacích průchodů pomocí volby -n (číslo). shred vždy použije alespoň jeden průchod. Číslo, které zde uvádíme, je počet dalších průchodů, které vyžadujeme skartovat. Shred tedy vždy provede o jeden průchod více, než kolik požadujeme. Chcete-li získat celkem tři průchody, požadujeme dva navíc:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

Jak se očekávalo, shred provede tři průchody.

Méně průchodů – méně skartování, chcete-li – je samozřejmě rychlejší. Ale je to méně bezpečné? Zajímavé je, že tři přihrávky jsou pravděpodobně více než dost.

Skartování více souborů

Zástupné znaky lze použít se skartováním k výběru skupin souborů, které mají být vymazány. Znak * představuje více znaků a znak ? představuje jeden znak. Tento příkaz by smazal všechny zbývající soubory „Preliminary_Notes“ v aktuálním pracovním adresáři.

shred -uvz -n 2 Preliminary_Notes_*.*

Zbývající soubory jsou postupně zpracovány skartováním.

shred nemá žádnou rekurzivní volbu, takže jej nelze použít k vymazání adresářových stromů vnořených adresářů.

Potíže s bezpečným mazáním souborů

Jakkoliv je shred dobrý, je tu problém. Moderní žurnálovací souborové systémy, jako jsou ext3 a ext4, vynakládají obrovské úsilí, aby zajistily, že se nerozbijí, nepoškodí nebo neztratí data. A u žurnálovacích souborových systémů neexistuje žádná záruka, že k přepisování skutečně dochází na místě na pevném disku použitém smazaným souborem.

Pokud chcete mít trochu klidu, že soubory byly smazány o něco důkladněji, než by to udělal rm, pak je skartování pravděpodobně v pořádku. Nedělejte však tu chybu, že byste si mysleli, že data jsou definitivně pryč a jsou zcela neobnovitelná. Dost možná tomu tak není.

Sada pro bezpečné smazání

Příkazy secure-delete se snaží překonat nejlepší úsilí žurnálování souborových systémů a uspět v bezpečném přepsání souboru. Platí ale úplně stejná upozornění. Stále neexistuje žádná záruka, že k přepisování skutečně dochází v oblasti pevného disku, kterou potřebujete k vymazání souboru, který vás zajímá. Je tam větší šance, ale žádná záruka.

Příkazy zabezpečeného odstranění používají následující sekvenci přepsání a akcí:

1 přepsání bajty hodnoty 0xFF.
5 přepíše náhodnými daty.
27 přepíše speciálními hodnotami definovanými Peterem Gutmannem.
5 dalších přepsání náhodnými daty.
Přejmenujte soubor na náhodnou hodnotu.
Zkrátit soubor.

Pokud se vám to všechno zdá přehnané, jste v dobré společnosti. Přehnané se to zdá i Peteru Gutmannovi, profesorovi na University of Aukland. Publikoval článek v roce 1996 diskutovat o těchto technikách, ze kterého vzešel městský mýtus, že je třeba použít všechny techniky diskutované v tomto článku najednou.

Peter Gutmann se od té doby pokusil dostat džina zpět do láhve a řekl: „Dobré čištění náhodnými daty bude fungovat tak dobře, jak lze očekávat.“

Ale jsme tam, kde jsme, a toto je řada technik používaných příkazy secure-delete. Nejprve je však musíme nainstalovat.

Instalace secure-delete

Pokud používáte Ubuntu nebo jinou distribuci založenou na Debianu, použijte apt-get k instalaci tohoto balíčku do vašeho systému. V jiných distribucích Linuxu použijte místo toho nástroj pro správu balíčků vaší distribuce Linuxu.

sudo apt-get install secure-delete

Balíček bezpečného odstranění obsahuje čtyři příkazy.

srm je bezpečný rm, který se používá k vymazání souborů jejich odstraněním a přepsáním místa na jejich pevném disku.
sfill je nástroj pro přepsání veškerého volného místa na vašem pevném disku.
sswap se používá k přepsání a vyčištění vašeho odkládacího prostoru.
sdmem se používá k čištění paměti RAM.

Příkaz srm

Příkaz srm používáte stejně jako příkaz rm. Chcete-li odebrat jeden soubor, použijte následující příkaz. Volba -z (nuly) způsobí, že smr použije nuly pro konečné vymazání místo náhodných dat. Volba -v (verbózní) způsobí, že nás srm informuje o svém průběhu.

srm -vz Chapter_One_01.txt

První věc, které si všimnete, je, že srm je pomalý. Poskytuje určitou vizuální zpětnou vazbu, když pracuje, ale je to úleva, když znovu uvidíte příkazový řádek.

Můžete použít volbu -l (snížit zabezpečení) ke snížení počtu průchodů na dva, což vše dramaticky urychlí.

srm -lvz Chapter_One_02.txt

srm nás informuje, že je to – podle jejího názoru – méně bezpečné, ale přesto za nás soubor smaže a přepíše.

Volbu -l (snížit zabezpečení) můžete použít dvakrát, abyste snížili počet průchodů na jeden.

srm -llvz Chapter_One_03.txt

Použití srm s více soubory

Můžeme také použít zástupné znaky s srm. Tento příkaz vymaže a vymaže zbývající části první kapitoly:

srm -vc Chapter_One_0?.txt

Soubory postupně zpracovává srm.

Mazání adresářů a jejich obsahu pomocí srm

Volba -r (rekurzivní) způsobí, že srm odstraní všechny podadresáře a jejich obsah. Cestu k prvnímu adresáři můžete předat srm.

V tomto příkladu smažeme vše z aktuálního adresáře ~/research. To znamená, že všechny soubory v ~/research a všechny podadresáře jsou bezpečně odstraněny.

srm -vz *

srm začne zpracovávat adresáře a soubory.

Nakonec vás vrátí do příkazového řádku. Na testovacím počítači, na kterém byl tento článek zkoumán, trvalo odstranění asi 200 souborů distribuovaných mezi aktuálním adresářem a třemi vnořenými adresáři přibližně jednu hodinu.

Všechny soubory a podadresáře byly odstraněny podle očekávání.

Příkaz sfill

Co když vás znepokojuje soubor, který jste smazali pomocí rm, jak můžete přejít na starou půdu a ujistit se, že je přepsán? Příkaz sfill přepíše veškeré volné místo na vašem pevném disku.

Když to uděláte, všimnete si, že máte na pevném disku stále méně volného místa, až do bodu, kdy není žádné volné místo. Po dokončení plnění vám uvolní veškerý volný prostor. Pokud spravujete víceuživatelský systém, bylo by to velmi rušivé, takže toto je úkol údržby, který by měl být prováděn mimo pracovní dobu.

I na počítači jednoho uživatele ztráta místa na pevném disku znamená, že je nepoužitelný, jakmile sfill využije většinu místa. To je něco, co byste začali a pak od toho odešli.

Chcete-li se pokusit věci trochu urychlit, můžete použít volbu -l (snížit zabezpečení). Dalšími volbami jsou volby -v (podrobné) a -z (nuly), které jsme viděli dříve. Zde žádáme sfill, aby bezpečně přepsal veškerý volný prostor v adresáři /home.

sudo sfill -lvz /home

Udělejte si pohodlí. Na testovacím počítači – který má pouze 10GB pevný disk – to začalo uprostřed odpoledne a skončilo to někdy přes noc.

Vyprchá na hodiny. A to je s volbou -l (snížit zabezpečení). Nakonec se ale vrátíte do příkazového řádku.

Příkaz sswap

Příkaz sswap přepíše úložiště ve vašem odkládacím oddílu. První věc, kterou musíme udělat, je identifikovat váš odkládací oddíl. Můžeme to udělat pomocí příkazu blkid, který vypíše bloková zařízení.

sudo blkid

Musíte najít slovo „swap“ a poznamenat si blokové zařízení, ke kterému je připojeno.

Vidíme, že swapovací oddíl je připojen k /dev/sda5.

Po dobu přepisování musíme vypnout zápisy z disku do odkládacího oddílu. Použijeme příkaz swapoff:

sudo swapoff /dev/sda5

Nyní můžeme použít příkaz sswap.

Jako součást příkazového řádku pro příkaz sswap použijeme /dev/sda5. Použijeme také volby -v (podrobné) a -ll (snížení zabezpečení), které jsme používali dříve.

sudo sswap -llv /dev/sda5

sswap začne procházet vaším odkládacím oddílem a přepíše vše, co v něm je. Netrvá to tak dlouho jako naplnění. Prostě mi to tak připadá.

Jakmile bude dokončen, musíme obnovit odkládací oddíl jako aktivní odkládací prostor. To provedeme příkazem swapon:

sudo swapon /dev/sda5

Příkaz sdmem

Balíček pro bezpečné smazání dokonce obsahuje nástroj pro vymazání čipů paměti RAM (Random Access Memory) ve vašem počítači.

A útok studeným botem vyžaduje fyzický přístup k vašemu počítači velmi krátce po jeho vypnutí. Tento typ útoku může potenciálně umožnit získání dat z čipů RAM.

Pokud si myslíte, že se musíte před tímto typem útoku chránit – a pro většinu lidí by bylo těžké si myslet, že je to potřeba – můžete si vymazat paměť RAM, než vypnete počítač. Ještě jednou použijeme volby -v (podrobné) a -ll (snížení zabezpečení).

sudo sdmem -vll

Okno terminálu se vyplní hvězdičkami jako znamení, že sdmem prochází vaší RAM.

Snadná možnost: Stačí zašifrovat svůj disk

Proč místo bezpečného mazání souborů nezabezpečit svůj pevný disk nebo domovskou složku pomocí šifrování?

Pokud to uděláte, nikdo nebude mít přístup k ničemu, ať už se jedná o živý soubor nebo smazaný soubor. A nemusíte být ve střehu a nezapomeňte bezpečně vymazat citlivé soubory, protože všechny vaše soubory jsou již chráněny.

Většina distribucí Linuxu se při instalaci ptá, zda chcete použít šifrování. Když řeknete „ano“, ušetříte si spoustu budoucích rozhořčení. Nesmíte nakládat s tajnými nebo citlivými informacemi. Ale pokud si myslíte, že byste mohli dát nebo prodat počítač někomu jinému, až s ním skončíte, šifrování to také zjednoduší.