Восстановить файл после команды уничтожения

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

      > shred -n 120 -u my_file.txt

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

Предварительное условие

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

Исследовать

Я также попробовал:

      dd if=/dev/zero of=my_file.txt bs=16M status=progress

Чтобы заменить содержимое моего файла на 0. Но я не знаю, лучше ли этот метод, чемshred.

1 ответ

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

Это само по себе требование, которое никогда не может быть удовлетворено. Если мы предположим, что это обычный магнитный диск, то все исследования и литература, которые я когда-либо читал, говорят, что невозможно восстановить значимые данные даже после одного прохода нулей.

Пример: https://www.researchgate.net/publication/221160815_Overwriting_Hard_Drive_Data_The_Great_Wiping_Controversy .

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

Восстановить уже нельзя !

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

Перезаписать/уничтожить на месте?

Поскольку OP обсуждает один файл, чтобы перезаписать содержимое файла (или уничтожить его, или как вы хотите его назвать), мы должны предположить, что файл перезаписывается на месте на уровне файловой системы. Таким образом, файл находится в кластерах 10–20, теперь измельчитель фактически сохраняет измельченный файл в кластерах 10–20. Однако если файловая система по какой-либо причине решит сохранить исходное содержимое файла в кластерах 100–110, то файловая система просто больше не будет указывать на него. В таком случае самое простое пользовательское программное обеспечение для восстановления файлов потенциально может восстановить данные, которые вы намеревались перезаписать/уничтожить.

Современные приводы могут не все делать то, что вы от них ожидаете.

Даже ЕСЛИ мы предположим, что файловая система взаимодействует, современный диск, такой как SSD или SMR, почти по определению будет записывать измельченные данные в другое физическое место. Вдобавок к этому, современные приводы могут перед записью блоков в «конечный пункт назначения» кэшировать «файл» или, что еще лучше, данные файла. Например, многие диски SMR резервируют область CMR для быстрой записи (Media Cache), куда данные записываются, а затем записываются в более медленные области SMR. Пока данные в области CMR не будут перезаписаны, существуют 2 копии ваших данных.

Процесс для гибридных дисков (SSHD) аналогичен.

На SSD может существовать даже несколько копий вашего файла..

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

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

См.: https://www.usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf .

Рисунок 1: Множественные копии На этом графике показано, что FTL дублирует файлы до 16 раз.

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

Итак, нет, ваш метод небезопасен.

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

После прочтения предыдущего это должно быть очевидно.

Все, что нам нужно, — это способ получить доступ к этому пространству, в котором все еще существуют «устаревшие» копии данных.

Такие современные накопители обычно работают с «транслятором» или «уровнем трансляции» (FTL), который сопоставляет адреса LBA с физическими адресами, отслеживает состояние страниц, износ и т. д.

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

На уровне NAND теперь у нас есть две копии вашего файла: оригинал в месте, которое больше не сопоставлено с каким-либо адресом LBA (мы называем это устаревшими данными), и новый файл (измельченный вариант).

Итак, все, что нам нужно, — это инструмент, который позволит нам получить доступ к данным, находящимся за пределами «домена LBA».

Опция 1:

Твердотельный накопитель PC3000 от Acelab. Этот инструмент есть почти в каждой лаборатории восстановления данных. Однако для доступа к вашим «устаревшим данным» необходимо, чтобы инструмент «знал» модель SSD. Даже если конкретная модель на данный момент не поддерживается, она может появиться в будущем. Новые модели добавляются постоянно.

См.: https://blog.elcomsoft.com/2019/01/life-after-trim-using-factory-access-mode-for-imaging-ssd-drives/ .

Вариант 2:

Полностью сбросьте NAND и обойдите контроллер.

Пример: http://www.flash-extractor.com/library/SSD/IDX110M00/IDX100M01-LC%20v2__2c_68_04_46__16x1

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

Пример: http://www.flash-extractor.com/library/SSD/SandForce/SF-2281VB1-SDC-S03__2c_88_04_4b__4x4

Что касается накопителей SMR, самое последнее обновление (на момент написания статьи) PC3000 еще больше расширяет поддержку таких накопителей: https://youtu.be/PylbEVGWo3M

Другие вопросы по тегам