Sdílet prostřednictvím


SDelete v2.05

Od Mark Russinovich

Publikováno: 29. září 2023

StáhnoutStáhnout SDelete (304 KB)

Úvod

Jednou z funkcí dodržování předpisů C2 systém Windows NT/2000 (Win2K) je, že implementuje ochranu proti opakovanému použití objektů. To znamená, že když aplikace přidělí místo souboru nebo virtuální paměť, nemůže zobrazit data, která byla dříve uložena v prostředcích systém Windows NT/2K, alokuje pro ni. systém Windows NT nulami vyplní paměť a vynuluje sektory na disku, kde je soubor umístěn před tím, než prezentuje některý typ prostředku do aplikace. Opakované použití objektu však diktuje, že místo, které soubor zabírá před odstraněním, bude nula. Důvodem je to, že systém Windows NT/2K je navržen s předpokladem, že operační systém řídí přístup k systémovým prostředkům. Pokud ale operační systém není aktivní, je možné použít editory nezpracovaných disků a nástroje pro obnovení k zobrazení a obnovení dat, která operační systém zrušil. I když šifrujete soubory pomocí systému souborů EFS (Encrypting File System) win2K, původní nešifrovaná data souboru zůstanou na disku po vytvoření nové zašifrované verze souboru.

Jediným způsobem, jak zajistit, aby odstraněné soubory i soubory, které šifrujete pomocí systému souborů EFS, byly bezpečné před obnovením, je použít zabezpečenou aplikaci pro odstranění. Zabezpečené odstranění aplikací přepíše data odstraněného souboru na disku pomocí technik, které se zobrazují, aby disková data byla nedostupná, a to i pomocí technologie obnovení, která dokáže číst vzory v magnetických médiích, která odhalí slabě odstraněné soubory. SDelete (Secure Delete) je taková aplikace. SDelete můžete použít k bezpečnému odstranění existujících souborů i k bezpečnému vymazání všech dat souborů, která existují v nepřidělených částech disku (včetně souborů, které jste už odstranili nebo zašifrovali). SDelete implementuje ministerstvo obrany vymazání a sanitizaci standardu DOD 5220.22-M, abyste získali jistotu, že po odstranění pomocí SDelete jsou vaše data souboru navždy pryč. Mějte na paměti, že SDelete bezpečně odstraní data souboru, ale ne názvy souborů umístěné v volného místa na disku.

Použití SDelete

SDelete je nástroj příkazového řádku, který přebírá řadu možností. V jakémkoli daném použití vám umožní odstranit jeden nebo více souborů nebo adresářů nebo vyčistit volné místo na logickém disku. SDelete přijímá zástupné znaky jako součást specifikátoru adresáře nebo souboru.

Zvyk:

sdelete [-p passes] [-r] [-s] [-q] [-f] <file or directory [...]>
sdelete [-p passes] [-q] [-z|-c] <drive letter [...]>
sdelete [-p passes] [-q] [-z|-c] <physical disk number [...]>
Parametr Popis
-c Vyčistěte volné místo.
-f Vynuťte, aby argumenty obsahující pouze písmena, které se mají považovat za soubor nebo adresář, a ne jako disk.
Nevyžaduje se, pokud argument obsahuje jiné znaky (například oddělovače cest nebo přípony souborů).
-p Určuje počet předplatných přepsání (výchozí hodnota je 1).
-q Tichý režim.
-r Odeberte atribut jen pro čtení.
-s Podadresáře se zařadí.
-z Nulové volné místo (vhodné pro optimalizaci virtuálního disku).
-nobanner Nezobrazovat úvodní banner a zprávu o autorských právech.
  • Disky nesmí mít žádné svazky, aby bylo možné vyčistit.
  • Pro písmena jednotky uveďte :například D:.

Jak funguje SDelete

Bezpečné odstranění souboru, který nemá žádné speciální atributy, je relativně jednoduché: zabezpečený program odstranění jednoduše přepíše soubor vzorem bezpečného odstranění. Co je složitější, je bezpečné odstranění systém Windows NT/2K komprimovaných, šifrovaných a řídkých souborů a bezpečné čištění volného místa na disku.

Komprimované, šifrované a řídké se spravují systémem souborů NTFS v 16 blocích clusteru. Pokud program zapíše do existující části takového souboru NTFS nové místo na disku pro uložení nových dat a po napsání nových dat uvolní clustery, které soubor dříve zabíral. Systém SOUBORŮ NTFS používá tento konzervativní přístup z důvodů souvisejících s integritou dat a v případě komprimovaných a zhuštěných souborů v případě, že je nové přidělení větší než to, co existuje (nová komprimovaná data jsou větší než stará komprimovaná data). Přepsání takového souboru proto nebude úspěšné při odstranění obsahu souboru z disku.

Pro zpracování těchto typů souborů SDelete spoléhá na defragmentační rozhraní API. Pomocí rozhraní API defragmentace může SDelete přesně určit, které clustery na disku jsou obsazeny daty patřícími ke komprimovaným, řídkým a šifrovaným souborům. Jakmile SDelete ví, které clustery obsahují data souboru, může otevřít disk pro nezpracovaný přístup a přepsat tyto clustery.

Čištění volného místa představuje další výzvu. Vzhledem k tomu, že FAT a NTFS neposkytují aplikaci žádné prostředky pro přímou adresu volného místa, má SDelete jednu ze dvou možností. První je, že může, stejně jako u komprimovaných, řídkých a šifrovaných souborů, otevřít disk pro nezpracovaný přístup a přepsat volné místo. Tento přístup trpí velkým problémem: i když byl SDelete naprogramovaný tak, aby byl plně schopný vypočítat volné místo částí jednotek NTFS a FAT (něco, co není triviální), mohlo by dojít ke kolizi s aktivními operacemi se soubory, které probíhají v systému. Řekněme například, že SDelete určuje, že cluster je volný, a právě v tuto chvíli se ovladač systému souborů (FAT, NTFS) rozhodne přidělit cluster pro soubor, který upravuje jiná aplikace. Ovladač systému souborů zapíše nová data do clusteru a potom se SDelete objeví a přepíše nově zapsaná data: nová data souboru jsou pryč. Problém je ještě horší, pokud je cluster přidělen pro metadata systému souborů, protože SDelete poškodí struktury systému souborů na disku.

Druhý přístup a jeden SDelete trvá, je nepřímo přepsat volné místo. Nejprve SDelete přidělí největší soubor, který může. SDelete to provede pomocí vstupně-výstupních operací souboru, který není uložený v mezipaměti, takže obsah mezipaměti systému souborů NT nebude vyvolán a nahrazena nepoužitými daty přidruženými k souboru SDelete s mezerami. Vzhledem k tomu, že vstupně-výstupní operace souboru, který není uložený v mezipaměti, musí být zarovnaný sektor (512 bajtů), může existovat zbývající prostor, který není přidělen pro soubor SDelete, i když SDelete nemůže soubor dále zvětšit. Pokud chcete přichytit zbývající prostor , přidělí se mu největší soubor uložený v mezipaměti. U obou těchto souborů SDelete provádí bezpečné přepsání, čímž se zajistí, že veškeré místo na disku, které bylo dříve volné, bude bezpečně vyčištěno.

Na jednotkách NTFS není úloha SDelete nutně po přidělení a přepsání těchto dvou souborů. SDelete musí také vyplnit všechny existující volné části NTFS MFT (Master File Table) soubory, které se vejdou do záznamu MFT. Záznam MFT má obvykle velikost 1 kB a každý soubor nebo adresář na disku vyžaduje alespoň jeden záznam MFT. Malé soubory se ukládají zcela v rámci svého záznamu MFT, zatímco soubory, které se nevejdou do záznamu, se přidělují clustery mimo MFT. Všechny SDelete se musí postarat o volné místo MFT je přidělení největšího souboru, který může - když soubor zabírá veškeré dostupné místo v MFT Record NTFS, zabrání tomu, aby se soubor zvětšil, protože na disku nejsou žádné volné clustery (jsou uchovány dvěma soubory SDelete dříve přiděleny). SDelete pak tento proces zopakuje. Když SDelete už nemůže ani vytvořit nový soubor, ví, že všechny dříve bezplatné záznamy v MFT byly zcela vyplněny bezpečně přepsánými soubory.

Chcete-li přepsat názvy souborů odstraněného souboru, přejmenuje SDelete soubor 26krát, pokaždé, když nahradí každý znak názvu souboru následným abecedním znakem. Například první přejmenování foo.txt bude na AAA. AAA".

Důvodem, proč SDelete při čištění volného místa na disku bezpečně neodstraní názvy souborů, je, že jejich odstranění by vyžadovalo přímou manipulaci s adresářovými strukturami. Adresářové struktury můžou obsahovat volné místo obsahující odstraněné názvy souborů, ale volné místo v adresáři není k dispozici pro přidělení jiným souborům. Proto SDelete nemá žádný způsob přidělování tohoto volného místa, aby ho mohl bezpečně přepsat.

StáhnoutStáhnout SDelete (304 KB)

Běží na:

  • Klient: Windows 10 a vyšší.
  • Server: Windows Server 2012 a novější.
  • Nano Server: 2016 a novější.