Часто бывает так, что необходимо безвозвратно уничтожить некую информацию с носителя. Ни для кого не секрет, что файлы, удалённые из корзины, не удаляются с жёсткого диска.
Один из стандартных методов восстановления данных, перезаписываемых на жесткий диск, состоит в захвате и обработке аналогового сигнала, получаемого из привода головок чтения/записи, прежде, чем этот сигнал будет оцифрован. Этот аналоговый сигнал близок к цифровому, но различия раскрывают важную информацию. Рассчитав цифровой сигнал, а затем вычтя его из фактического аналогового, можно усилить сигнал, оставшийся после вычитания, и использовать его, чтобы определить, что ранее было написано на диске.
Даже при неоднократной перезаписи диска со случайными данными теоретически возможно восстановить предыдущий сигнал. Диэлектрическая проницаемость среды изменяется с частотой магнитного поля. Это означает, что низкая частота поля проникает глубже в магнитный материал на диске, чем высокая частота оного. Так низкочастотный сигнал теоретически может быть определен даже после того, как перезапись производилась сотни раз на высокой частоте сигнала. Википедия.
Отсюда возникает потребность в уничтожении остаточной информации, дабы она не попала не в те руки.
Остаточная информация — информация на запоминающем устройстве, оставшаяся от формально удалённых операционной системой данных. Информация может остаться из-за формального удаления файла или из-за физических свойств запоминающих устройств. Остаточная информация может привести к непреднамеренному распространению конфиденциальной информации, если хранилище данных окажется вне зоны контроля (например, будет выброшено с мусором или передано третьей стороне). Википедия.
Рассмотрим несколько программ, целью которых является полное безвозвратное уничтожение данных на Linux.
Nwipe — безопасное удаление с дисков
Nwipe — утилита для безопасного удаления данных с дисков, использующая несколько общепризнанных методов. Она является ответвлением от dwipe, используемой в Darik's Boot and Nuke (DBAN).
Связанные с программой сайты:
Установка nwipe:
apt-get install nwipe
Использование:
nwipe [опции] [устройство1] [устройство] ...
Опции nwipe:
—autonuke — если не были указаны устройства в командной строке, начинает немедленно стирать все устройства. Если устройства были заданы, то немедленно начинает стирать только эти специфичные устройства.
-m, —method=METHOD — метод стирания.
Методы стирания (по умолчанию: dodshort). dod522022m / dod - 7 проходов методом DOD 5220.22-M dodshort / dod3pass - 3 прохода методом DOD gutmann - Алгоритм Питера Гутмана ops2 - RCMP TSSIT OPS-II random / prng / stream - PRNG Stream zero / quick - Перезаписать нулями
Secure-Delete — инструменты для стирания файлов, освобождения дискового пространства, swap'а и памяти
Очень полезный в быту параноика набор консольных утилит. Предназначен для безвозвратного удаления данных и удаления остаточной информации. В своей работе использует Метод Гутмана.
В своём составе имеет набор из четырёх консольных утилит:
- srm
- sfill
- sswap
- sdmem
Найти программу можно в репозиториях своей Linux-системы. Страница проекта на GitHub: github.com/paolostivanin/Secure-Delete
Установка:
apt-get install secure-delete
Начнём с первой, и самой полезной утилиты — Srm. Удаляет файлы и каталоги с жёсткого диска.
Использование:
srm [-dflrvz] file1 file2 и т.д.
Опции:
-d игнорировать специальные файлы "." и "..". -f быстрый (и небезопасный режим): без режимов /dev/urandom и synchronize. -l снижение безопасности (двойное использование для полной небезопасности). -r рекурсинвый режим, удаляются все подкаталоги. -v вербальный режим. -z на последнем вайпе пишутся нули вместо случайных данных.
Srm выполняет безопасную перезапись/переименование/удаление целевого файла (ов). По умолчанию включён безопасный режим (38 записей).
Sfill. Аналогична предыдущей, только обрабатывает свободное место на диске, зачищая следы данных.
Использование:
sfill [-fiIlvz] каталог
Опции:
-f быстрый (и небезопасный режим): без режимов /dev/urandom и synchronize. -i удалять только иноды в указанной директории -I просто очистить пространство, иноды не трогать -l уменьшить безопасности (двойное использование для полной небезопасности). -v вербальный режим. -z на последнем вайпе пишутся нули вместо случайных данных.
sfill выполняет безопасную перезапись свободного места, занимаемого директорией, и всех свободных инодов заданной директории. По умолчанию безопасный режим (38 записей).
Sswap. То же самое, но зачищает раздел подкачки /swap, если он присутствует в системе. Перед использованием необходимо отключить swap.
Использование:
sswap [-flvz] [-j start] /dev/of_swap_device
Опции:
-f быстрый (и небезопасный режим): без режимов /dev/urandom и synchronize. -j число первых байтов перепрыгиваемое при стирании. (по умолчанию: 4096) -l уменьшить безопасности (двойное использование для полной небезопасности). -v вербальный режим. -z на последнем вайпе пишутся нули вместо случайных данных.
sswap выполняет безопасное стирание области swap. По умолчанию безопасный режим (38 записей).
ВНИМАНИЕ: Нужно отключить swap перед использованием этой программы!
И последняя утилита — sdmem. Уничтожает следы данных в оперативной памяти.
Использование:
sdmem [-flv]
Опции:
-f быстрый (и небезопасный режим): без /dev/urandom. -l уменьшить безопасности (двойное использование для полной небезопасности). -v вербальный режим.
smem выполняет безопасную перезапись оперативной памяти (RAM), поскольку содержимое памяти может быть восстановлено даже после отключения! По умолчанию безопасный режим (38 записей).
Пояснение по ключам:
- -r — обрабатывать все вложенные подкаталоги. Данный ключ необходим, если удаляемый файл является каталогом, пусть даже пустым. Если удаляемый файл не является каталогом, то ключ -r не влияет на команду srm.
- -v — подробный режим. По умолчанию в терминал не выводятся результаты работы программы. Этот ключ позволяет их просмотреть.
- -f — вместо /dev/random (ГСЧ) использует /dev/urandom (ГПСЧ) Суть отличия ниже. Если вкратце, то при использовании /dev/urandom повышается скорость перезаписи, но при этом числа не случайны. Поэтому использование ключа не рекомендуется.
/dev/random и /dev/urandom — специальные символьные псевдоустройства в некоторых UNIX-подобных системах, впервые появившиеся в ядре Linux версии 1.3.30. Они предоставляют интерфейс к системному генератору случайных чисел, который выводит шумы из драйверов устройств и других источников в «хаотичный» пул (англ. entropy pool). Генератор также сохраняет необходимое количество битов шума в этом пуле и формирует из него случайные числа.
При чтении данных в устройстве /dev/random создаются только случайные байты, состоящие из битов шума «хаотичного» пула. Устройство /dev/random может быть необходимо пользователям, которые требуют очень высокого коэффициента случайности, например, при создании ключа доступа и т. п. Если «хаотичный» пул опустел, чтение /dev/random блокируется, пока необходимое количество битов в пуле не будет создано.
Чтение данных устройства /dev/urandom возвратит столько байтов, сколько было запрошено. В результате, если в пуле было недостаточно битов, теоретически возможно будет найти уязвимость алгоритма, использующего это устройство. Если это важно, следует использовать /dev/random. Википедия.
- -l — вместо 38 циклов перезаписи проходит только первых два: затирание нулями и запись случайными числами. Крайне небезопасно, но сильно ускоряет работу программы. Если используете этот ключ, то после желательно ещё раз затереть свободное место на диске.
Если у вас есть информация которая при попадании в чужие руки может принести массу проблем, то просто держите её в криптоконтейнере. Так же шифруем полностью весь Linux, а если HDD необходимо будет продать, подключаем носитель к другому ПК или грузимся с LiveCD и шифруем весь носитель. Считаю такой метод более надёжен, нежели перезапись в несколько подходов, но опять же, всё зависит от важности информации. И последнее, все перечисленные способы в статье актуальны только для HDD, SSD лучше шифровать изначально.