Когда кульминация событий сошла на нет и стали ясны причины подобного поведения домашнего животного, хозяин обнаружил, что одним только перепуганным котом дело не ограничилось. На столе и вокруг него царил настоящий хаос: разлетевшиеся по комнате документы и безжизненно болтающийся на USB кабеле винчестер.
рис. 1
После устранения последствий забега несчастного животного было уделено пристальное внимание винчестеру. По спине владельца диска пробежал легкий холодок, когда он так и не дождался от накопителя запуска утилиты с предложением ввести пароль для доступа к скрытому от посторонних глаз разделу. После нескольких бесплодных попыток был срочно вызван системный администратор.
Администратор, убедившись в тщетности попыток работать с накопителем через USB, разобрал бокс, извлек него HDD Toshiba MK5059GSXP и подключил к SATA порту компьютера. Загрузив Windows, в оснастке управления дисками обнаружил, что с точки зрения ОС накопитель не содержит ни одного раздела. Была осуществлена попытка запуска программы автоматического восстановления, но сканирование, едва начавшись, подвесило компьютер, и из накопителя послышались щелчки. На этом этапе было принято решение, что пора остановиться.
С такой предысторией накопитель поступил в нашу лабораторию восстановления данных. Исходя из того, что накопитель был после удара и при попытке сканирования начал издавать стучащие звуки, то первой операцией будет его очистка от пыли и проведение обследования в условиях ламинарного бокса. Тщательному обследованию подлежат подвески и слайдеры БМГ, рециркуляционный воздушный фильтр, а также верхняя поверхность в пакете дисков.
рис. 2
Осмотр рециркуляционного воздушного фильтра и БМГ не выявил деформаций и наличия металлических частиц, на основании чего делаем вывод о допустимости старта накопителя с оригинальным БМГ. Осмотр верхней поверхности под микроскопом позволяет выявить наличие небольшой радиальной царапины у внешнего края.
Собрав накопитель, подключаем его к порту PC3000 и подаем питание. Слышен характерный шум воздуха при вращении вала и звук прохождения калибровочного теста. Далее возникает некоторая задержка, после которой накопитель наконец-то выдает по регистрам готовность принимать команды.
рис. 3
Выполняем резервирование микропрограммы, в процессе обнаруживаем нечитабельность G-list. Так как этот дефект лист необходим для работы системы трансляции, то накопитель не позволяет прочитать ни одного сектора из пользовательской зоны в обычном режиме.
Попытка записи на неиспользуемый трек служебной зоны приводит к тому, что жесткий диск начинает издавать стучащие звуки, что явно говорит о проблемах с записью. Так как возможности переписать нечитаемый модуль у нас нет, то не будем пытаться записать чистый модуль G-list.
Для накопителей Toshiba, у которых не работают или некорректно работают записывающие головки, либо имеются серьезные повреждения в служебной зоне, которые не позволяют корректно функционировать, можно использовать особенности технологического режима. После включения технологического режима, накопитель меняет логику работы: не осуществляется запись в SMART логи, отключено оффлайн сканирование, а также система трансляции работает без учета записей в P-list и G-list.
Перед вычитыванием в технологическом режиме необходимо проанализировать P-list жесткого диска, чтобы учесть все исключенные области из PBA диапазона и при вычитывании получить данные пользователя, которые записывались в рамках LBA диапазона (в котором учтены исключения из P-list), без сдвигов.
Следующим шагом будет построение карты зонного распределения, чтобы понимать каким образом сформировано логическое пространство. Для чтения построим карту из мини зон и отсортируем в порядке убывания, так как при обследовании повреждения обнаруживались у внешнего края пластины.
рис. 4
В данном случае без особых затруднений было прочитано до 15 998 ххх секторов. Потом обнаружились затруднения в чтении.
рис. 5
Попытка перестроить цепочки в порядке возрастания с дальнейшим чтением показало наличие дефектов от самого начала логического диапазона.
рис. 6
Исключаем чтение по головке №0 и пытаемся читать далее, следом обнаруживаются проблемы с 249 xxx сектора, также исключаем чтение по головке №2. Выполняем чтение зон головками №1 и №3 на интервале от 0 до 15 998 975 сектора.
Для дальнейшего вычитывания проблемных зон будем использовать PIO режим для более точного контроля состояния накопителя. Выполнив некоторое число попыток чтения с разным таймаутом ожидания готовности и разным размером прыжков при обнаружении нестабильностей, переходим к этапу многопроходного чтения дефектов. В результате всех попыток чтения непрочитанными остались менее 3000 секторов из всего множества 976 773 168 секторов.
Выполняем заполнение непрочитанных секторов на копии паттерном 0xDE 0xAD. Проводим анализ регулярных выражений для различных популярных типов файлов и обнаруживаем отсутствие пользовательских данных на диске, но в тоже время можно сказать, что диск заполнен некими данными более чем на 95% (согласно того, какое количество секторов заполнено ненулевыми значениями).
На этом этапе отложим посекторную копию и проведем анализ особенностей USB-SATA моста, используемого в боксе.
рис. 7
Данный USB-SATA адаптер основан на MCU J-Micron 20339. Возьмем накопитель, все сектора которого заполнены 0x00, присоединим к данному адаптеру и подключим к ПК.
рис. 8
ОС обнаружила 2 накопителя по 20Мб. При анализе выяснилось, что первый раздел доступен только для чтения. На втором запись доступна.
рис. 9
Исходя из названий устройств в паспортных данных, можно предположить, что роль первого предназначается для хранения приложения, конфигурирующего размер публичного и скрытого раздела, а также открывающего доступ к скрытому разделу. Второй раздел предназначен для хранения «публичных» данных и третий появится, только при вводе пароля в фирменной утилите.
При открытии в дисковом редакторе в каждом секторе любого из устройств видим заполнение неким паттерном.
рис. 10
Отключим диск от данного адаптера и проанализируем, располагает ли контроллер некие метаданные на самом накопителе, так как диск изначально был полностью заполнен нулями. В секторе 0x18FBF (102 335) и секторе 0x18FCF (102 351) обнаруживается заполнение неким хаотичным содержимым.
Начиная с сектора 102 352 выполним запись номера сектора в первые 4 байта на протяжении 40 960 секторов. Вновь подключив диск к адаптеру проанализируем заполнение первого двадцати мегабайтного раздела. Увидим, что на протяжении всего раздела остался прежний паттерн, как на рис. 10, но с изменениями в первых байтах. Выполнив XOR операции между и первоначальным паттерном и текущими значениями, получим сектора, содержимым которых будут нули с номером сектора в первых 4 байтах.
На основании этого, мы можем утверждать, что данный контроллер шифрует данные посредством XOR операции, размер ключа 512 байт. Недостаток данного «шифрования» в том, что в секторах, заполненных нулями, но прочитанных через данный USB-SATA адаптер, будут находиться все 512 байт ключа в оригинальном виде. Также обратим внимание, что в накопителях, где в секторах 102 335 и 102 351 содержится некорректное содержимое с точки зрения микропрограммы JM20339, то произойдет формирование новых ключей случайным образом.
Вернемся к копии проблемного накопителя и проанализируем карту прочитанного. Удостоверимся, что ключевые сектора 102 335 и 102 351 прочитаны и дополнительные методы анализа для нахождения ключа не потребуются. Перенесем содержимое ключевых секторов на чистый накопитель и подсмотрим, какой XOR паттерн сформирует микропрограмма контроллера JM20339.
Создадим резервную копию накопителя, на который была записана посекторная копия пациента, и выполним XOR операцию над каждым сектором, начиная с сектора 102352 с полученным ключом.
Начав анализ регулярных выражений, обратим внимание, что обнаруживается множество признаков наличия популярных типов файлов (jpg, doc, xls и т.п.). Это обстоятельство подтверждает корректность расшифровывания данных.
Для удобства анализа в 0 секторе напишем классическую таблицу разделов, в которой опишем 3 раздела, имеющихся на данном накопителе. В нашу первоначальную задачу подставим накопитель с расшифрованными данными.
Так как в задании клиентом было поставлено восстановление данных из скрытого раздела, то проведем оценку целостности файловой системы на нем посредством анализа расположения метаданных и проверим, нет ли непрочитанных участков. Анализ выявляет, что 16 секторов в MFT прочитать не удалось, что говорит о потере не более 8 файловых записей. Дальнейшее сопоставление файлов с картой прочитанного позволяет выявить еще 73 файла, пострадавших в результате контакта слайдеров с поверхностями пластин.
99, 9% восстановленных файлов – это конечный результат, который удовлетворил клиента.
В качестве заключения можно еще раз напомнить всем о необходимости резервного копирования и также отметить, что по сию пору на рынке существует немало решений, где опция шифрования данных — лишь маркетинговая уловка, которая не в состоянии надежно защитить пользовательские данные.
Следующая публикация: Неглубокое погружение или восстановление данных с жесткого диска после затопления офиса
Предыдущая публикация: Восстановление данных с внешнего жесткого диска Seagate FreeAgent Go
Комментарии (11)
nerudo
10.06.2017 14:22+1Реквестирую опыт с какой-нибудь «защищенной» флэшкой, того же кингстона, например.
hddmasters
10.06.2017 14:28+1А с USB flash будут несколько иные методы работы, которые как правило подразумевают выпаивание NAND памяти, чтение дампов и анализ алгоритмов контроллера.
1. В случаях, где вся защита крылась на управлении трансляцией, методика анализа алгоритмов NAND контроллера
2.В случаях, где осуществлялось честное шифрование данных (например с использованием AES) и управления трансляцией было лишь дополнительной мерой, методика будет бесполезна
Sergey_datex
10.06.2017 17:17+1Не будет такого опыта. У тех современных накопителей, где шифрование сделано по-взрослому, такие методы не подойдут. Нужен полноценный реверс кода, (чтоб разобраться где и как хранятся ключи, каким методом шифруются MEK и KEK), в единичных случаях это не оправдано. Этот USB кейс — первый звоночик нулевых годов, когда о полнодисковом шифровании только начинались разговоры, но здесь не шифрование, так — ксорка, баловство одно…
Lofer
10.06.2017 17:13Допустим иностранцы обратятся с поломанным HDD и Opal х.х? Есть какие-то шансы им помочь?
hddmasters
10.06.2017 17:46Допустим иностранцы обратятся с поломанным HDD и Opal х.х? Есть какие-то шансы им помочь?
В первую очередь все зависит от того в каком состоянии сам накопитель и что это за накопитель, только потом уже можно давать какие-либо комментарии на предмет возможности восстановления данных.
Bonio
10.06.2017 23:41+2Нужно TrueCrypt использовать для шифрования, а не сомнительные решения от производителя.
dmitry_dvm
11.06.2017 00:54TrueCrypt ныне рекомендует BitLocker…
hddmasters
11.06.2017 01:01+1Насколько помнится авторы Truecrypt весьма иронично отзывались о Bitlocker. Весьма странным было их решение прекратить разработку в 2014 году. Причины этого, увы доподлинно неизвестны.
dmitry_dvm
Немного «конторским» языком пишете, но читается как детектив. Очень круто.