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

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

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

Сейчас флешки принято восстанавливать по более совершенной методике. Микросхемы памяти выпаиваются, информация считывается с помощью программатора, и далее процесс восстановления изначальной файловой системы ведется лишь с помощью программных средств. Слить информацию с неисправной флешки -- лишь полбеды. Как уже было сказано, накопитель -- вещь в себе. При его нормальной работе мы общаемся с ним по одному интерфейсу и не знаем, что происходит внутри. А  ведь  там контроллер, точнее микропрограмма, запущенная на нем, живет своей жизнью, распоряжается доверенной ей памятью, «как умеет»: соотносит физические адреса секторов с логическими по одному ей известному алгоритму, создает коды коррекции ошибок, использует свободное пространство с учетом обеспечения равномерности износа,  возможно,  даже выполняет  шифрование  и  пр.  Поэтому файловая система, которую мы видим, когда подключаемся к исправному накопителю привычным способом, не совпадает с тем, что реально записано на микросхемах  флеш  или поверхности жесткого диска. Моделей флешек существует бесконечное множество, и в каждой из них своя микропрограмма. То, что делается в процессе восстановления данных, можно назвать своего рода реверс-инжинирингом. При успешном исходе из дампа получается образ первоначальной файловой системы.

Кремниевая хирургия
Программатор для считывания дампа из микросхем памяти NAND flash

Московская компания «Софт-Центр»(www.soft-center.ru) -- пионер в этой сфере. Начиная с 2005 г., она продает свою программу Flash Extractor, которая используется в лабораториях восстановления данных по всему миру. Flash Extractor содержит в себе базу данных моделей накопителей, регулярно  пополняемую  специалистами  технической  поддержки.

Кремниевая хирургия
 

На наши вопросы о накопителях отвечают специалисты «Софт-Центра» -- Алексей Николко, разработчик Flash Extractor, Сергей Николко, главный взломщик, Владислав Бархаев, инженер  технической  поддержки и Артур Фатеев, специалист по тонкой пайке, а по  совместительству и  менеджер по продажам ПО.

Сергей, как давно вы занимаетесь восстановлением данных с флеш-памяти? Как все начиналось?
С.Н.: В 2004 г. я работал в НИИ, а мой папа занимался восстановлением данных с жестких дисков. Как-то он прислал мне неисправную флешку --попробовать восстановить. Тогда этого еще никто не делал. Чуть позже я начал работать в «Софт-Центре». Первое время  занимался жесткими дисками. Постепенно к нам все чаще обращались с неисправными флешками. Люди из разных городов писали письма с просьбами научить восстанавливать с  них данные.  Я писал для них  маленькие смешные программки и пытался научить, как мог. С каждым годом флешки становились  все  более сложными, комплексными,  и  поэтому обучить нового пользователя с нуля взламывать самому -- стало почти невозможно.

Так мы пришли к концепции, которая используется в настоящее время в Flash Extractor. Наша программа позволяет человеку, обладающему базовыми знаниями в ИТ, самостоятельно начать восстанавливать данные из дампов микросхем памяти флеш-дисков. Конечно, сначала придется много дергать техподдержку, разбираться в терминах и специфических трюках.

В чем сейчас заключается ваша основная деятельность в рамках  техподдержки  пользователей Flash Extractor?
С.Н.: Новые модели накопителей появляются  ежедневно.  Если пользователь сталкивается с моделью, которой еще нет в библиотеке, он обращается к нам.

В программе есть два основных понятия: Model(модель) и Layout(разметка). Layout содержит знания о том, как устроено семейство контроллеров, структуру служебной области и области данных. Его построение -- самая сложная часть реверс-инжиниринга. С каждым годом  все сложнее делать  анализ дампов.  Производители микросхем гонятся за  объемом  и увеличивают плотность записи, но вместе с тем память становится менее надежной. Разработчикам накопителей приходится идти на уловки, чтобы работать с такой памятью.

Например, память типа TLC(Tripple-Level Cell) почему-то чувствительна к однотипным данным,  а значит,  если в нее записать длинную последовательность единиц или нулей, то заряд из ячеек начинает  стекать  и происходит потеря данных. Чтобы избежать  этого,  производители контроллеров начали накладывать на данные шум. Генераторы шума каждый делает, как захочет, а не по стандарту.  Поэтому,  прежде чем  приступать  к анализу служебной зоны, мне необходимо убрать шум с данных. Это сравнимо со взломом шифрования, нужно найти алгоритм, по которому генерируется шум. Бывают простые арифметические алгоритмы, и  бывают  более сложные, основанные на циклических кодах. У меня в голове сотня вариантов реализации шума и служебной зоны, так что взлом в основном происходит,  опираясь на мой опыт.  Благо,  производители не особо  фантазируют  и используют проверенные схемы, подсмотренные друг у друга.

Модель -- это алгоритм, по которому программа строит из дампа образ файловой системы, опираясь на Layout. Составляет модели  Влад Бархаев.

Кремниевая хирургия

Кремниевая хирургия

Какие флешки сейчас самые надежные? Зависит ли надежность от производителя?
С.Н.: Здесь нет  прослеживающейся  закономерности. К нам попадают устройства разных  изготовителей.  Большинство из них сами не производят комплектующие для своих накопителей, поэтому  нельзя  сказать, что флешки какого-то бренда стабильно  надежнее, чем у конкурентов.

Гораздо важнее, по какой технологии изготовлена память. Когда мы начинали работать, все флешки были сделаны по технологии  SLC (Single-level  Cell). Каждая ячейка такой памяти хранит 1 бит  информации и, следовательно,  имеет лишь два состояния: либо она заряжена, либо нет. Но рынок требует от производителей постоянного увеличения емкости накопителей и их удешевления. Бесконечно увеличивать количество транзисторов на микросхеме, даже с учетом того, что техпроцесс их производства совершенствуется, оказалось недостаточно. После  того  как плотность записи достигла 4 Гбайт на микросхему, память стали изготавливать по технологии MLC(Multi-level Cell). В такой памяти ячейка может содержать 2 бита информации или более. Каждой возможной комбинации битов соответствует свой уровень напряжения. Это позволяет увеличить плотность записи в разы, но плохо сказывается на надежности,  так как  повышается вероятность ошибки. Кроме того, ресурс перезаписи у флеш-памяти ограничен, он составляет примерно 100 000 операций. Разумеется, на MLC-памяти он будет выработан быстрее.

Имея дамп, полученный напрямую с микросхемы памяти, несложно понять, по какой технологии она изготовлена. В 2005--2006 гг.  нормальным показателем были четырехбитовые ошибки на 4 Гбайт. В первых MLC-микросхемах можно было увидеть по 60 ошибок на те же 4 Гбайт. У современной памяти число ошибок измеряется тысячами. Впрочем, это не мешает накопителям нормально работать до какого-то момента, поскольку их производители соответствующим образом увеличивают длину кода коррекции ошибок.

Бытует мнение, что для того, чтобы продлить жизнь флешке, стоит купить накопитель избыточной  емкости  и избегать его полного заполнения, поскольку тогда износ ячеек памяти будет более равномерным. Насколько это верно?
С.Н.: Как правило контроллер разделяет всю доступную память на  зоны  и равномерно распределяет нагрузку внутри них.  Поэтому  чаще всего ресурс вырабатывается в начале памяти. Существует обратный поток неисправных микросхем на производство. У такой флешки могут отключить, например, первые 10% емкости, собрать на  ее  основе накопитель и отправить его в продажу.

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

По личному опыту могу судить, что надежность  у  флеш-накопителей ниже, чем у жестких дисков. С чем это связано  и распространяется ли это на SSD?
С.Н.: Флешки обычно имеют большую вероятность сгореть,  чем жесткие диски, из-за  частого включения/выключения. Нередко они выходят из строя из-за неправильного отключения от ПК. Если выключить питание в тот момент, когда контроллер производит запись в служебную зону, то микропрограмма, хранящаяся там, скорее всего,  повредится,  и накопитель перестанет работать. Режим работы SSD такой же, как и у жесткого диска, поэтому единственное, что ему по-настоящему  страшно, -- это выработка ресурса по числу перезаписей.

Что такое монолитный флеш-накопитель и почему восстановление данных с таких устройств стоит в несколько раз дороже, чем с обычных?
С.Н.: В традиционных накопителях используются корпусные микросхемы памяти и контроллеры, распаянные на обычной печатной плате. Для считывания дампа с такого  накопителя  микросхемы можно просто отпаять.
В монолитных накопителях применяются бескорпусные микросхемы, приклеенные к подложке и соединенные с дорожками на плате тонкими проводами. Вся эта конструкция залита единым компаундом, из которого выведены лишь контакты интерфейса. К монолитам относятся все  карты  типа microSD,  а также  некоторые модели SD- и USB-накопителей.

А.Ф.: Карточки microSD, SD и MemoryStick часто имеют служебные контакты, которые производители используют на заводе для тестирования и прошивки. Иногда их не видно под слоем лака, но они есть. Покупается одно-два устройства той же модели. С помощью логического анализатора  по форме сигналов устанавливается, на каких выводах располагается интерфейс микросхемы памяти. Затем флешка распаивается проводами к программатору и считывается дамп. Восстанавливать данные с USB-монолитов намного сложнее.

Кремниевая хирургия
Карта памяти MemoryStick с распаяными проводами

Какие флешки можно назвать «проблемными» с точки зрения восстановления данных?
А.Ф.: Есть несколько неприятных микросхем памяти фирмы Samsung, например K9ABG08U0A. То ли они быстро изнашиваются, то ли боятся перегрева при выпаивании, то ли Samsung использует отличный от стандартного набор команд. Но в итоге в дампе присутствует огромное количество битовых ошибок. Корректирующей способности кодов ECC недостаточно для их исправления. И данные восстановить не получается. У большинства флешек компании Sandisk  данные перед записью в память шифруются,  и потому  их  непросто восстановить  из  дампа.  Приходиться стараться отремонтировать саму флешку. Некоторые производители контроллеров SSD тоже вводят незаметное для пользователя шифрование, например, контроллеры SandForce. Перед покупкой SSD я бы рекомендовал проверить на сайте производителя, применяется шифрование или нет. 

В общем,  стоит обращать внимание на тип используемой флеш-памяти: MLC, к сожалению, сильно уступает SLC по надежности.

Восстановление данных с любой монолитной флешки -- процесс на порядок более трудоемкий, чем с обычной. У нас восстановление с монолита стоит 30 000  руб.,  а с обычной флешки -- 5000  руб.  К этому еще нужно добавить стоимость запасной флешки, которую придется уничтожить в  процессе работы. 

Кремниевая хирургия
 USB-накопитель на "той самой" микросхеме Samsung K9ABG08U0A

Как  лучше всего  защитить себя от потери данных? Нужен ли домашнему пользователю RAID?
А.Н.: Лучший способ защиты от потери данных -- это резервное копирование.  Причем  желательно, чтобы копий было несколько и находились они в разных  местах (например,  жесткий диск  --  в  шкафу, а  вторая копия  --  на файловом хостинге). RAID –  также  механизм резервного копирования, но предназначенный не для пользовательских ПК, а для серверов, работающих в режиме 24/7, где на обычный процесс создания резервной копии не остается времени. Кроме того, даже зеркальный массив RAID1 не всегда спасает от потери данных. Помимо самих накопителей, может выйти из строя контроллер, и тогда неправильные данные будут записаны на оба диска.

С.Н.: Вообще, с резервным копированием вот какая штука. Человек потеряет данные, потом неделю делает резервные копии, а потом забывает или ему надоедает. RAID-массив это еще хуже, чем отдельный диск. Сломается он так же быстро. Скопировать файлы вы сами не сможете. Понесете в сервис-центр. А там за него возьмут в 10 раз больше, чем за один диск. Так что купите себе лучше NAS и установите программу резервного копирования, которая раз в неделю будет сама копировать ваши файлы с рабочего компьютера.