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

Oct 26, 2012 17:02

Интервью с сотрудниками лаборатории по восстановлению данных компании «Софт-центр»

Виталий Пряхин

«Мир ПК» 3'2012



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

В наш век ин­фор­ма­ция -- боль­шая цен­ность, и по­то­му вполне ло­гич­но, что вме­сте с пер­вы­ми до­ступ­ны­ми флеш­ка­ми на рынке по­яви­лись и пред­ло­же­ния услуг по вос­ста­нов­ле­нию дан­ных с неис­прав­ных на­ко­пи­те­лей. Любой на­ко­пи­тель дан­ных -- вещь в себе. Он со­сто­ит из несколь­ких функ­ци­о­наль­ных бло­ков и об­ща­ет­ся с внеш­ним миром по ка­ко­му-ли­бо из ин­тер­фей­сов -- 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 и уста­но­ви­те про­грам­му ре­зерв­но­го ко­пи­ро­ва­ния, ко­то­рая раз в неде­лю будет сама ко­пи­ро­вать ваши файлы с ра­бо­че­го компьютера.

флешка, восстановление данных, usb-flash, flash

Next post
Up