Как безвозвратно удалить информацию с жесткого диска ?

Регистрация
9 Мар 2021
Сообщения
8
Репутация
4
Реакции
4
Сегодня будем говорить, о том, как безвозвратно удалить информацию с жесткого диска в тех случаях, когда вы решите продать, подарить или попросту выбросить диск, телефон или компьютер.

Как безвозвратно удалить информацию с жесткого диска ?

В этом разделе под термином «жесткий диск» мы будем понимать классическое устройство с вращающимися пластинами и движущимися электромагнитными головками чтения-записи. Информация, записанная на пластину, так и остается на ней вплоть до момента, когда данные будут перезаписаны.

Традиционный способ удаления данных с магнитных дисков — форматирование. К сожалению, при использовании Windows даже полное форматирование диска может привести к разным — и временами неожиданным — результатам.

Так, если используется ОС на Windows XP (или еще более старая версия Windows), при полном форматировании диска система вовсе не запишет нули в каждый сектор. Вместо этого ОС всего лишь произведет поиск плохих секторов с помощью последовательного чтения данных.

Поэтому, если вы собираетесь выбросить старый компьютер, работающий под управлением Windows XP, форматируйте диск в командной строке, задав параметр /p:<число проходов>. В этом случае команда format перезапишет содержимое диска нулями столько раз, сколько задано параметром <число проходов>. Пример:

$ format в: /fs:NTFS /p:1

Начиная с Windows Vista разработчики Microsoft изменили логику работы команды полного форматирования. Теперь форматирование диска действительно перезаписывает данные нулями, и параметр /p становится избыточным.

Собственно, для обычного пользователя, не страдающего паранойей, на том все и заканчивается. Пользователи же, более обычного озабоченные вопросом надежного удаленных данных, могут вспомнить о существовавших пару десятилетий назад методах (кстати, очень дорогих), которыми на специальном оборудовании можно попробовать восстановить данные, анализируя остаточную намагниченность дорожек.

Теоретическая идея метода в том, чтобы обнаружить следы информации, которая была ранее записана на дорожке, анализируя слабую остаточную намагниченность (вариация метода — анализ краевой намагниченности, когда считывать пытаются данные из промежутков между дорожками). Метод прекрасно работал для накопителей размером со шкаф и электромагнитами, которые могли сорвать с военного кокарду.

Заметно худшие результаты метод показывал на дисках с объемом в десятки мегабайт и совсем плохо работал с накопителями, объем которых приближался к гигабайту (нет, это не ошибка, здесь речь именно о мегабайтах и гигабайтах).

xnd0HlFRcE0.jpg

В теории следы остаточной намагниченности можно попробовать восстановить из областей, показанных желтым (источник: www.anandteth.com)
Для современных накопителей с высокой плотностью записи, объем которых измеряется в терабайтах, подтвержденных случаев успешного применения данного метода нет, а для дисков, использующих «черепичную» запись SMR, подход невозможен в принципе.

MwRU5Nmdja8.jpg

В современных накопителях плотность записи данных слишком высока для того, чтобы метод сработал (источник: www.anandteth.com)
Впрочем, чтобы исключить даже теоретическую возможность его использования, достаточно перезаписать диск не нулями, а некоторой последовательностью данных — иногда не один раз.

Алгоритмы гарантированного удаления информации
Во многих организациях используются специальные процедуры для утилизации устройств хранения информации, подразумевающие их санацию (безвозвратное уничтожение информации). Для надежного уничтожения действительно важной информации применяют деструктивные методы, но для данных, не представляющих особой ценности, допустимо использовать и программные алгоритмы. Таких алгоритмов существует великое множество.

Начнем, пожалуй, с широко известного, но неверно интерпретируемого американского стандарта DoD 5220.22-M. Большинство бесплатных и коммерческих приложений, которые поддерживают этот стандарт, ссылаются на старую (действовавшую до 2006 года) его ревизию.

Действительно, с 1995-го по 2006-й «военный» стандарт уничтожения информации разрешал использовать метод перезаписи данных. Стандарт подразумевал трехкратную перезапись диска. Первым проходом выполнялась запись любого символа, затем — его XOR-комплимента и, наконец, в последнем проходе — случайной последовательности. Например, так:

01010101 > 10101010 > 11011010*
* случайные данные

В настоящее время военными этот алгоритм не используется; для санации носители физически уничтожают или полностью размагничивают их, что называется, «в горниле ядерного взрыва». Однако для уничтожения несекретной информации этот алгоритм до сих пор применяется в различных государственных учреждениях США.

Канадская полиция уничтожает несекретную информацию при помощи утилиты DSX собственной разработки. Утилита перезаписывает данные нулями, затем — единицами, после чего записывает на диск последовательность данных, в которой закодирована информация о версии утилиты, дате и времени уничтожения данных. Секретная информация все так же уничтожается вместе с носителем.

Примерно так:

00000000 > 11111111 > 10110101*
* предопределенная кодированная последовательность

Похожим образом предлагает безвозвратно уничтожать информацию диска известный специалист в области криптографии Брюс Шнайер. Предложенный им алгоритм отличается от канадской разработки лишь тем, что третьим проходом записывается не предопределенная последовательность данных, а псевдослучайная.

В момент публикации этот алгоритм, использующий генератор случайных чисел для перезаписи, подвергался критике как более медленный в сравнении с алгоритмами, которые записывали предопределенную последовательность данных.

Примерно так:

00000000 > 11111111 > 10110101*
* псевдослучайные данные

В Германии для уничтожения несекретных данных принят несколько другой подход. Стандарт BSI Verschlusssachen-IT-Richtlinien (VSITR) позволяет использовать от двух до шести проходов (в зависимости от классификации информации), записывающих поочередно псевдослучайную последовательность и ее XOR-комплимент. Последним проходом записывается последовательность 01010101.

Примерно так:

01101101* > 10010010** > 01010101
* псевдослучайная последовательность 1
** XOR-комплимент псевдослучайной последовательности 1

Наконец, в качестве технического курьеза приведем алгоритм Питера Гутмана, предложившего перезапись в 35 проходов. Опубликованный в 1996 году алгоритм был основан на теоретическом предположении уровня остаточного магнетизма в 5% и уже на момент публикации выглядел всего лишь теоретическим изыском.

Тем не менее и этот алгоритм поддерживается многими приложениями для уничтожения информации. Фактически же его использование избыточно и совершенно бессмысленно; даже трехкратная перезапись информации по любому из описанных выше алгоритмов даст точно такой же результат.

Какой алгоритм для надежного удаления данных использовать? Для современных (не старше 10–15 лет) жестких дисков однократной перезаписи псевдослучайной последовательностью более чем достаточно для надежного уничтожения информации. Все, что делается сверх этого, способно лишь успокоить внутреннюю паранойю, но никак не уменьшить вероятность успешного восстановления информации.

Программы для безопасного удаления данных с жесткого диска
Как мы выяснили, для безвозвратного удаления данных с жесткого диска желательно перезаписать его содержимое случайной последовательностью битов, но можно и воспользоваться одним из существующих алгоритмов по уничтожению данных. Проще всего это сделать при помощи одной из доступных программ. Трудность представляет лишь выбор качественного и при этом бесплатного приложения, ведь утилитами класса Secure Erase под завязку забиты многочисленные файловые архивы и посвящены попсовые статьи псевдоэкспертов.

Хорошо себя зарекомендовала программа DBAN. Приложение работает исключительно в режиме загрузки (программа распространяется в качестве загрузочного образа, точнее — самораспаковывающегося архива, который при запуске предложит этот образ создать) и поддерживает большинство стандартов уничтожения данных.

Открытый исходный код позволяет убедиться не только что программа делает именно то, что обещает, но и что для генерации псевдослучайной последовательности использован правильный генератор случайных цифр.

HFc24kEzS1Y.jpg

Darik’s Boot and Nume (BDAN)
Альтернативный вариант — бесплатное, но проприетарное приложение CBL Data Shredder. Приложение разработано специалистами в области форензики и поддерживает большинство существующих стандартов уничтожения информации. CBL также позволяет создать загрузочную флешку, при помощи которой можно полностью очистить диск.

OimbP6gJzE8.jpg

Утилита CBL для уничтожения данных
Удаление информации с дисков с аппаратным шифрованием
Иногда информацию нужно удалить быстро, буквально мгновенно. Очевидно, что сделать это на логическом уровне для магнитного диска невозможно: требуется полностью перезаписать весь объем информации, что может занять многие часы работы. Однако решение существует, и довольно давно: это жесткие диски с шифрованием на аппаратном уровне.

Стандартов аппаратного шифрования существует несколько, самые распространенные — Opal и eDrive. Объединяет эти стандарты то, что при включении шифрования все данные на таком жестком диске будут автоматически зашифрованы при записи и расшифрованы при чтении.

Нас же сейчас интересует другая особенность таких дисков, а именно мгновенное и безвозвратное уничтожение данных. Реализовано это через стандартную команду ATA Secure Erase, которую можно выполнить с помощью стандартной утилиты hdparm. Для магнитных накопителей, использующих аппаратное шифрование, команда Secure Erase мгновенно уничтожит ключ шифрования, так что расшифровать записанную на диске информацию станет нельзя. При использовании диском стойкого шифрования с ключом длиной от 128 бит расшифровать данные будет совершенно невозможно.

Кстати, использовать hdparm можно и на обычных, незашифрованных дисках. Правда, время работы команды будет мало отличаться от обычной посекторной перезаписи содержимого диска — просто потому, что именно посекторную перезапись она и выполнит.

Впрочем, hdparm не панацея. Аппаратное шифрование используется в основном в жестких дисках, предназначенных для работы в специфических условиях (корпорациях, хостинговых и облачных компаниях). Даже если вы установите такой жесткий диск в свой домашний компьютер и включите аппаратное шифрование, есть вероятность, что команда Secure Erase не сработает как надо из-за особенностей BIOS. В домашних условиях использовать чисто аппаратное шифрование без поддержки со стороны операционной системы — не самое лучшее и далеко не самое надежное решение.

Пожалуй, стоит упомянуть, что существует целый класс жестких дисков, которые поставляются с уже активированным шифрованием всего накопителя. Любая информация, которую запишут на такой диск, будет автоматически зашифрована криптографическим ключом. Если пользователь не установит пароль, то криптографический ключ не будет зашифрован и все данные будут доступны сразу после инициализации накопителя.

iGWzk6VV2oA.jpg

Принцип работы жесткого диска с аппаратным шифрованием, если пароль не задан (источник: ibm.com)
Если же пользователь установит пароль на диск, то при инициализации диска (только выключение и включение, но не сон или гибернация — на этой особенности построен целый ряд атак на подобные диски) криптографический ключ будет зашифрован паролем и доступ к данным будет невозможен до тех пор, пока вы не введете правильный пароль.

c4bY05XkOLY.jpg

Принцип работы жесткого диска с аппаратным шифрованием с установленным паролем (источник: ibm.com)
Легко догадаться, что уничтожение криптографического ключа делает доступ к данным невозможным. Да, вы сможете считать информацию с диска, но расшифровать ее будет нельзя. На таких дисках команда ATA Secure Erase в первую очередь уничтожает именно криптографический ключ и лишь затем начинает затирать данные.

Такие диски используются практически во всех хостинговых и облачных компаниях. Очевидно, что такое шифрование никак не защитит от атак на уже загруженную систему. Его цель — предотвратить несанкционированный доступ к информации при физическом извлечении диска, например если сервер украдут.

Самые надежные способы удаления информации с жесткого диска
Рассмотренный выше способ с утилитой hdparm требует, чтобы диск поддерживал аппаратное шифрование, что далеко не факт для обычных потребительских накопителей. В домашних условиях быстрее и надежнее всего уничтожать информацию с зашифрованных разделов, для которых достаточно затереть криптографический ключ.

Так, если ваши данные хранятся на зашифрованном разделе BitLocker, то для их моментального уничтожения достаточно всего лишь отформатировать раздел «быстрым» форматированием. Команда format в Windows корректно распознает тома BitLocker как в версии для командной строки, так и в варианте с GUI. При форматировании томов BitLocker, даже «быстром», уничтожается криптографический ключ, что делает дальнейший доступ к информации невозможным.

Особенности BitLocker Знаете ли вы, что отключение шифрования на уже зашифрованном разделе BitLocker не приводит к расшифровке данных? Если вы отключите шифрование на разделе, который был защищен BitLocker, Windows всего лишь сохранит криптографический ключ для доступа к данным в открытом виде (а не в зашифрованном паролем или данными из модуля TPM). Новые операции записи будут вестись в открытом виде, но существующие данные будут сохранены как есть — просто будут автоматически расшифрованы при помощи открытого криптографического ключа. Если вы снова запустите шифрование этого раздела, то криптографический ключ будет немедленно зашифрован, а данные, ранее записанные в незашифрованном виде, будут постепенно зашифрованы в фоновом режиме.

Но и здесь не обошлось без засады. Даже если ключ шифрования от тома BitLocker будет уничтожен в первые секунды, где-то в другом месте может найтись его копия. За примерами далеко ходить не нужно: при автоматической активации шифрования при помощи BitLocker Device Protection ключ восстановления доступа автоматически же загружается в облако OneDrive. Таким образом, даже уничтожение ключа шифрования не поможет.

Используете BitLocker? Зайдите в учетную запись Microsoft и проверьте, нет ли там лишних ключей шифрования.

Удаление информации с твердотельных накопителей
Безвозвратно удалить данные с твердотельного накопителя SSD и проще, и сложнее, чем с магнитного жесткого диска. Давайте разберемся, что происходит внутри SSD-накопителя при удалении данных.

Вы наверняка слышали о том, что микросхемы памяти, использующиеся в SSD-накопителях, позволяют быстро считать информацию, не очень быстро записать данные в чистый блок и совсем медленно записать информацию в область, занятую другими данными. Нас сейчас интересует именно последнее свойство SSD-накопителей. Для того чтобы записать в ячейку данные, контроллер накопителя должен будет сперва очистить (стереть) данные в этой ячейке, и только после этого станет возможной операция записи. Поскольку процесс инициализации ячейки очень и очень небыстрый, производители разработали ряд алгоритмов, благодаря которым в распоряжении контроллера всегда есть достаточное количество пустых ячеек.

А что произойдет, если операционная система захочет записать данные в ячейку с определенным адресом, но по этому адресу уже хранятся какие-то данные? В этом случае контроллер SSD выполнит моментальную подмену адресов: нужный адрес будет назначен другой, пустой ячейке, а занятый блок получит другой адрес или вовсе уйдет в неадресуемый пул для последующей фоновой очистки.

6YQsmq2V5sA.jpg

Принцип работы «сборщика мусора» и Trim
При обычном использовании на диск записывается гораздо больше данных, чем он способен вместить. Пул свободных ячеек со временем сокращается, и в какой-то момент контроллеру становится доступным лишь пул из неадресуемого пространства «запасной» емкости. Эту проблему производители решают при помощи механизма Trim, работающего совместно с операционной системой. Если пользователь удаляет какой-то файл, форматирует диск или создает новый раздел, система передает контроллеру SSD информацию о том, что определенные ячейки не содержат полезных данных и могут быть очищены.

Обратите внимание: в результате работы Trim сама операционная система не перезаписывает эти блоки и не стирает информацию. Контроллеру всего лишь передается массив адресов ячеек, которые не содержат полезной информации. С этого момента контроллер может начать фоновый процесс удаления данных из ячеек.

Что произойдет, если на SSD-диске содержится большой объем информации, а контроллеру поступила команда Trim на все содержимое диска? Дальнейшее никак не зависит от действий пользователя или операционной системы: алгоритмы контроллера начнут очистку ненужных ячеек. А что случится, если пользователь (или злоумышленник) попытается считать данные из ячеек, на которые уже поступила команда Trim, но которые еще не были физически очищены?

Здесь начинается самое интересное. Современные SSD определяют три возможности:

  1. Non-deterministic Trim: неопределенное состояние. Контроллер может вернуть фактические данные, нули или что-то еще, причем результат может различаться между попытками (SATA Word 169 bit 0).
  2. Deterministic Trim (DRAT): контроллер гарантированно возвращает одно и то же значение (чаще всего, но не обязательно нули) для всех ячеек после команды Trim (SATA Word 69 bit 14).
  3. Deterministic Read Zero after Trim (DZAT): гарантированное возвращение нулей после Trim (SATA Word 69 bit 5).
Определить, к какому типу относится ваш SSD, можно при помощи все той же команды hdparm:

$ sudo hdparm -I /dev/sda | grep -i trim
* Data Set Management TRIM supported (limit 1 block)
* Deterministic read data after TRIM

SSD первого типа в настоящее время практически не встречаются (хотя до сих пор подобным поведением отличаются накопители стандарта eMMC). Как правило, для обычного использования производители предлагают диски второго типа, а SSD с поддержкой DZAT предназначены для использования в составе многодисковых массивов.

С практической точки зрения это означает только одно: сразу после удаления данных (хоть пофайлово, хоть форматированием, хоть переразбивкой разделов) информация станет недоступной для чтения как с компьютера, так и на специальном стенде.

Казалось бы, все просто? Нет, здесь есть крупный подвох, и даже не один.

Во-первых, уверены ли вы, что на вашей системе корректно функционирует Trim? Дело в том, что Trim поддерживается на уровне операционной системы начиная с Windows 7 и только при соблюдении ряда условий. Всех условий! Во-первых, диск должен быть подключен напрямую (SATA, NVME); для подавляющего большинства внешних (USB) накопителей Trim не поддерживается (бывают исключения). Во-вторых, Windows поддерживает Trim только для томов NTFS. Наконец, Trim должны поддерживать как драйверы, так и BIOS компьютера. Проверить работоспособность Trim в Windows можно командой

$ fsutil behavior query DisableDeleteNotify

Результат:

  • 0 — Trim включен и работает корректно;
  • 1 — Trim неактивен.
Обратите внимание: для USB-накопителей (внешних SSD) Trim с большой вероятностью не будет активен, хоть и может поддерживаться на уровне встроенного в накопитель контроллера.

Еще один момент. Да, остановить процесс фоновой сборки мусора невозможно: если на SSD-накопитель подается питание, то контроллер будет продолжать уничтожать данные после Trim независимо ни от чего. Однако достаточно извлечь из накопителя чипы памяти, и при помощи несложного стенда данные с них можно считать. Да, у исследователя будет сильнейшая головная боль, связанная с физической фрагментацией ячеек из-за переадресации блоков и сверх того — логической фрагментации данных. Тем не менее решить такую проблему все-таки можно.

Что приводит нас к последнему пункту. Заметная часть емкости накопителя (в некоторых моделях — до 10%) отводится под резервный неадресуемый пул. В теории ячейки в этом пуле должны очищаться; на практике из-за многочисленных особенностей реализации и ошибок в прошивках это работает далеко не всегда и данные могут физически оставаться на месте даже после завершения очистки.

Таким образом, ситуация с удалением данных с SSD выглядит следующим образом.

  1. Вы можете мгновенно удалить данные со встроенного SSD-накопителя, просто отформатировав раздел (используй NTFS в качестве новой файловой системы). Trim пометит блоки как неиспользуемые, а контроллер постепенно удалит информацию из этих ячеек.
  2. Если все прошло правильно, то никакими недеструктивными способами добраться до информации будет невозможно. Более того, если злоумышленник подключит диск к другому компьютеру или специализированному стенду, контроллер SSD продолжит методично затирать ячейки.
  3. Если же из SSD извлекут микросхемы, то оставшиеся в ячейках данные удастся считать. Более того, даже если процесс очистки, казалось бы, завершен, в неадресуемом резервном пуле могут остаться ячейки, в которых содержатся «удаленные» данные.
Как полностью и надежно уничтожить содержимое SSD-накопителя? К сожалению, это не один, а два разных вопроса. Полностью очистить содержимое SSD можно при помощи уже знакомой команды ATA Secure Erase, которую можно выдать через hdparm. А вот «надежно» — увы, остается лишь надеяться на правильную реализацию Secure Erase разработчиками контроллера.

Практика показывает, что в некоторых случаях Secure Erase не производит полной очистки ячеек из резервного пула (из-за простейших ошибок в прошивке). Таким образом, гарантию даст исключительно использование криптоконтейнера: если удаляется криптографический ключ, расшифровать остатки содержимого будет практически невозможно. Но и здесь есть свои но: о депонированных ключах мы уже говорили. Организации, работающие с секретной информацией, и вовсе не признают иных способов очистки SSD, кроме физического уничтожения носителя.

Заключение
Безвозвратно удалить информацию с жесткого диска непросто, а сделать это быстро — еще сложнее. И если магнитный жесткий диск при наличии свободного времени можно очистить целиком и полностью, то в случае с SSD дела обстоят куда более запутанно. Надеемся, что эта статья поможет вам найти оптимальную стратегию уничтожения информации.
 
Назад
Сверху Снизу