ХАКЕР 04 /171/ 2013 Header15Proof-of-ConceptЗАПИСЬ ИНФОРМАЦИИ В СЕРВИСНЫЕ РАЗДЕЛЫ HDDЧТО ЭТО ТАКОЕВо всех жестких дисках есть так называемыесервисные разделы. Производительзаписывает туда программы для обслуживаниядиска: модули SMART, модулираннего обнаружения ошибок, модули самодиагностикии так далее. Туда же дублируетсяинформация с потенциальносбойных секторов на диске. Сервисныеразделы не следует путать с другими скрытымиобластями диска, такими как DCO(Device configuration overlay) и HPA (HostProtected Area), поскольку те предназначеныдля других целей.Информация в сервисных разделахнаходится вне адресного пространстваLBA и недоступна с помощью стандартныхATA-команд. Запись и чтение осуществляютсяспецифичными для каждого производителякомандами и специальнымпрограммным обеспечением. В большинствеслучаев специфичные для вендоракоманды держатся в секрете, но зачастуюпроизводитель выпускает утилиты для работыс сервисными разделами. Одиниз примеров — программа wdidle3.exe(bit.ly/d7Vg7Q) от компании Western Digitalи ее опенсорсный аналог idle3-tools (bit.ly/REsXhH). Еще один пример — программаHDDHackr (bit.ly/XOPF8c) для модификациизаписей в системных разделах HDD техже самых Western Digital.На жестких дисках существуют и другиерезервные области, в которые можнозаписать информацию. Это флеш-память(обычно около одного мегабайта), неиспользуемыесекторы за пределами LBA,а также дорожки, доступ к которым теоретическиможно получить с помощью неиспользуемыхголовок, имеющихся в HDD.ЗАЧЕМ ЭТО НУЖНОВо-первых, иногда требуется простоскрыть информацию от беглого осмотра.Например, при въезде в США на таможнепроверяют содержимое всех электронныхносителей. Правоохранительные органымогут затеять такую проверку для своихнужд, но обычно она не идет дальшесканирования общедоступных секторовна диске. Никто не пытается проникнутьв сервисные разделы — криминалистыдо сих пор не сообразили, что их можноприспособить для хранения информации.Во-вторых, запись информации в сервисныеразделы — это использование бонусногодискового пространства. Объемдискового пространства, которое выделяетсяпод сервисные разделы, может бытьразным. Например, в диске WD2500KS-00MJB0 семейства Hawk объемом 250 Гб(прошивка 02AEC) в сервисные разделызаписывается две копии файлов, по 6 Мбкаждая. Под разделы выделяется примерно23 Мб (64 трека по 720 секторов на каждом)на каждой стороне пластины. В этоймодели HDD шесть поверхностей пластин(головки с 0 по 5), но копия сервисных файловзаписывается только на двух из них (головки0 и 1), а остальные четыре областирезервируемого пространства остаютсянеиспользуемыми. Таким образом, общийобъем резервируемого места составляетоколо 141 Мб, из них занято 12 Мб.Для сравнения: в модели WD10EACS-00ZJB0 на 1 Тб с восемью поверхностями(головки с 0 по 7) общий объем резервируемогоместа составляет около 450 Мб,из них занято всего лишь 52 Мб, по 26 Мбна каждой из двух поверхностей (головки0 и 1). То есть мы на «халяву» получаем почти400 Мб дискового пространства. Почемубы не использовать этот бонус?КАК ЭТО РАБОТАЕТИнформация в сервисных разделах важнадля работы устройства, так что производительобычно записывает ее в несколькихкопиях для сохранности. Повреждениеэтой информации ведет к потере работоспособностидиска. Кстати, некоторыепрофессиональные программы для восстановленияHDD, такие как Ace LaboratoryPC3000, способны вернуть неработающиедиски к жизни, восстановив информациюв сервисных разделах.Запись информации в сервисные разделывозможна только с помощью специальногопрограммного обеспечения,которое использует фирменные командыдля доступа к этим разделам.Израильский специалист Ариэль Беркман(Ariel Berkman) из компании RecoverInformation Technologies написал статью(bit.ly/ZBGD2v) о работе с сервисными отделамиHDD, а также выложил PoC-кодпрограммы (bit.ly/UXpBcC) для записи94 Мб информации в сервисный отделдиска Western Digital 250GB Hawk. На этомдиске примерно 141 – 12 = 129 Мб свободногодискового пространства в сервисныхразделах. Чтобы гарантировать неприкосновенностьсистемной информации, PoCпрограммазаписывает случайно сгенерированныйнабор данных (с рассчитаннымMD5-хешем для проверки надежности записи)только в те области, которые должныбыть свободными на каждой поверхности:4 × 64 × 720 × 512 байт.Автор предупреждает, что его концептуальныйкод может привести к потереданных и порче HDD, так что использоватьпрограмму можно исключительно на свойстрах и риск.ЗАПИСЬ ИНФОРМАЦИИВ СЕРВИСНЫЙ РАЗДЕЛroot@Shafan1:~/SA# dd if=/dev/urandom count=184320 > random-file ; md5sum random-file184320+0 records in 184320+0 records out94371840 bytes (94MB) copied, 12.8187s, 7.4MB/s0baca7245e1efa160512a6217c13a7b0 random-fileroot@Shafan1:~/SA# ./SA-cover-poc -p 0x0170-w ./random-fileusing port address: 0x0170Model: WDC WD2500KS-00MJB0S/N: WD-WCANK5391702F/W Ver: 02.01C03LBA24:268435455 LBA48:488397168Service area sectors-per-track (720)Service area tracks (64)Num of heads(6)Unused reversed space (94371840 bytes)writing head(2) track(-1)....writing head(5) track(-64)root@Shafan1:~# dd if=/dev/zero of=/dev/sdbbs=1Mdd: writing '/dev/sdb': No space left on device238476+0 records in 238475+0 records out250059350016 bytes (250GB) copied, 4732.86s,52.8MB/sroot@Shafan1:~/SA# ./SA-cover-poc -p 0x0170-r after-dding-dev-zerousing port address: 0x0170Model: WDC WD2500KS-00MJB0S/N: WD-WCANK5391702F/W Ver: 02.01C03LBA24:26843 5455 LBA48:488397168Service area sectors-per-track (720)Service area tracks (64)Num of heads(6)Unused reversed space (94371840 bytes)reading head(2) track(-1)....reading head(5) track(-64)root@Shafan1:~/SA# md5sum after-dding-dev-zero0baca7245e1efa160512a6217c13a7b0after-dding-dev-zero
16COVERSTORYХАКЕР 04 /171/ 2013Илья Илембитовilembitov@real.xakep.ruПОЧЕМУ РЕВОЛЮЦИЯ3D-ПРИНТЕРОВ ЕЩЕНЕ НАСТАЛА, НО УЖЕПОРА ПОДКЛЮЧАТЬСЯНОВАЯЭПОХАDIYПланируя материал о 3D-печати, мы столкнулись сосвоего рода дежавю. Представь себе, что потребовалосьбы, чтобы написать в 1992–1993 году специальныйвыпуск «Все о Linux», и помножь этот кошмар на страхподвигнуть читателя на пустую трату денег (линукс-тохотя бы бесплатный был), и ты поймешь проблему. Мыне можем сказать тебе сейчас: пойди и купи вот этотпринтер. Слишком рано. Но мы расскажем тебе, почемуэто интересно и с чего можно начать уже сейчас.