Как стать автором
Обновить

Реверс USB-SATA-адаптера (история одного стажера)

Время на прочтение16 мин
Количество просмотров28K
Всего голосов 100: ↑100 и ↓0+100
Комментарии34

Комментарии 34

Можно (просто?) ли из этого сделать аппаратное шифрование HDD только изменением прошивки?
Можно, но будет работать крайне медленно — контроллер не имеет блока аппаратного шифрования, DMA придётся отключить (при обычной работе микроконтроллер не видит и не обрабатывает данные).
А так — давно существуют USB-SATA адаптеры (на других контроллерах) с возможностью шифрования данных на лету.
Подружить с FPGA возможно?

Кажется, что проще будет всё сделать, чем скрещивать.

Да не вопрос, берёте FPGA с трансиверами, которые по скорости шустрее, чем желаемый стандарт SATA, ставите её в разрыв между контроллером и самим диском. Далее пишете IP ядра(купить готовые совсем дорого будет) для SATA-Host и SATA-Device. Между ними включаете нужные вам алгоритмы. Правда на это уйдет год(или больше) и, возможно, потребуется какой-никакой анализатор SATA протокола (тоже стоит некисло).
Что именно вы хотите сделать? У этого микроконтроллера всего 4 GPIO и UART. Можно реализовать простые вещи, например, управление питанием или отображение информации на дисплее.
И все же какая была цель — взломать прошивку или разработать устройство?
В первую очередь — получить навыки реверса, а разработка аналогичного устройства для дальнейших исследований — вторичная цель
Воздействием на 45-ю ножку ASM1051 можно включать и выключать защиту от записи на HDD.


Я правильно понимаю, что меняется только бит WP, а в самом «свитче» обработки команд все остается как было?

Потому что некоторые операционные системы (например, на базе Linux) могут игнорировать бит WP при отправке команд записи в некоторых случаях. Попробуйте, например, смонтировать вот этот образ: github.com/msuhanov/articles/blob/master/misc/ext4.raw
Аналогичный вопрос, кстати, про ATA PASS-THROUGH. Команда «hdparm --write-sector <...>» вполне может и заработать, если бит WP установлен (характерный пример: переходник AgeStar 3FBCP, который, кстати, в МВД используется как блокиратор записи в составе чемодана эксперта).
Да, всё верно, изменяется только бит в дескрипторе, команды записи выполняются безусловно.
Было интересно почитать, побольше бы таких статей.
Хабр всё больше торт ))

А как бы проходил реверс, если бы не внешней SPI?
У меня именно такой переходник.
Также вопрос: а "короткий срок" — это какой, в днях?

Например, сниффинг протокола обновления прошивки с помощью утилиты обновления. Бывает, бинарники прошивок лежат в ресурсах подобных утилит.
Если SPI флеш-память не установлена, это не означает, что её туда нельзя поставить. Практически всегда производитель контроллера предусматривает обновление микропрограммы. Часто бывает, что ПЗУ нет, но место для него имеется. Исследование можно начать с поиска прошивок и утилит для вашего контроллера на usbdev.ru

По сроку исследования — месяц реверса и месяц на разработку первой ревизии платы.
Интересно, есть ли возможность атаки на драйверы файловой системы путем динамической подмены данных на диске?
Ведь когда разрабатывают драйвер, то поидее делают некоторые допущения о корректном поведении носителя информации, что позволяет оптимизировать алгоритмы.
Скорее всего кеширование на уровне драйверов ОС будет мешать этой атаке
А при чем тут кэширование? я так понимаю атак будет происходить через посылки SATA-протокола. Другой вопрос на сколько это удобно…
Кстати — ОС разве не проверяет целостность драйвера после считывания с диска?
Скорее всего атака предполагается на загруженный в память драйвер в процессе его работы, через какую-нить CVE.
А вы похоже имеете ввиду что бы подменять файлы в файловой системе. Но это устройство подключает внешние диски через USB, на которую обычно систему не ставят. И даже если подменять файлы на лету, ТО это не тривиальная задача на таком МК, к примеру работа с Ext4 на нем превратится в то еще испытание
Вы совершенно верно меня поняли, а есть и хардварные уязвимости открытые для Frameware? Как то не думал про них
Ну почему же. Есть и вот такие дыры. Правда, там «умный» носитель врядли нужен.
nvd.nist.gov/vuln/detail/CVE-2018-12930
Автор что-то писал о том, что там стоит Direct Memory Access для ускорения работы, и что для включения шифрования придётся его отключить; контроллер в обычном режиме работы не видит потока файлов, проносящегося мимо него. Полагаю, то же самое и с подменой данных: можно, но будет заметно тормозить. :)
А мы никуда и не спешим.
МУХАХАХАХА.
Всё ждал шпионской развязки. Что вот сейчас автор найдёт в коде китайский троян, который встрачая определённую последовательность символов на диске, начинает свои деструктивные действия, уничтожает данные, или подменяет данные, или вставляет в систему бэкдор.

тем более, когда в тексте такие замечательные названия заголовков «Находка № 1», зато побуждает вчитываться в текст:) эмбеддед-кликбейт, практически:) хотя сама тема очень достойная.

Хорошая мотивирующая статья для начинающих, таких побольше нужно.

А почему упоминаются SCSI команды, разве SATA работает с ними?

UPD:
А, понял, это по USB общение проходит, там калька со скази, да.
МК на паяных лапках заставляет содрогнуться.
Автор весьма терпелив.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий