Представлена техника атаки на микроконтроллеры, встроенные в MicroSD-карты
30 декабря 2013 года
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/27/Wikinews-logo-ru.svg/300px-Wikinews-logo-ru.svg.png)
На проходящей в эти дни тридцатой конференции Chaos Communication Congress (30C3) представлен отчёт ( PDF) об эксперименте по модификации прошивок микроконтроллеров, встроенных в карты памяти MicroSD. Замена прошивки на карте памяти интересна потенциальной возможностью встраивания бэкдора, который может контролировать потоки данных и при необходимости влиять на них.
Современные MicroSD-карты выносят логику работы с накопителем на встроенный в карту микроконтроллер, который как правило базируется на CPU 8051 или ARM7. Необходимость использования дополнительной прослойки обусловлена технологией производства и особенностями Flash-памяти, связанными с изначальным наличием в чипе большого числа bad-блоков и высокой вероятностью выхода ячеек из строя (например, изначально продаваемая 2GiB карта может содержать до 80% bad-блоков и фактически являться чипом на 16GiB). В связи с этим возникает необходимость применения расширенных механизмов пометки bad-блоков, адаптации к обновляемой раз в 12-18 месяцев геометрии накопителей (метод маппинга блоков, размер страниц), отслеживания появления ошибок и их корректировки при помощи специальных избыточных кодов восстановления (ECC).
Все эти механизмы слишком специфичны для каждого чипа, чтобы быть реализованными на уровне ОС, поэтому производители снабжают каждую карту памяти собственным микроконтроллером, на котором выполняется свой набор алгоритмов. При этом логика работы микроконтроллера скрыта за внешним унифицированным интерфейсом, что значительно затрудняет обнаружение MITM-атак (man-in-the-middle), проводимых на стороне микроконтроллера карты. Проблему усугубляет отсутствие стандартных методов или протокола для верификации кода, выполняемого на микроконтроллере MicroSD-карты.
Например, нельзя гарантировать, что "безопасное" стирание данных с карты приведёт действительно к очистке конфиденциальной информации, без возможности её дальнейшего восстановления. Примечательно, что изучение устройств, встречающихся в продаже на китайском рынке, выявило наличие подделок, создатели которых активно пользуются модификацией прошивки контроллера для искусственного завышения размера карты. Наличие подобных устройств и подтолкнуло исследователей к изучению вопроса защищённости прошивок контроллеров от модификации.
Несмотря на отсутствие публичной документации по контроллерам и трудность подключения к чипам на MicroSD-карте, исследователям безопасности удалось подготовить аппаратуру для изучения и перепрошивки контроллеров карт памяти. Наиболее неприятным выводом стало то, что программное обеспечение некоторых контроллеров может быть изменено через специальные зарезервированные производителем команды, отправленные с host-системы. Никакой защиты от выполнения данных команд злоумышленниками не предусмотрено. Например, чипы Appotech AX211 и AX215 могут быть переведены в режим загрузки прошивки через команду CMD63 следующую за последовательностью ‘A’,'P’,'P’,'O’, после чего карта воспринимает следующие 512 байт как код для выполнения на стороне контроллера.
В качестве мер противодействия возможным атакам, в процессе исследования разработано специализированное ПО и инструменты статического анализа для разбора структуры контроллера и выявления возможных бэкдоров. Указанные инструменты позволили проконтролировать поток данных между микроконтроллером и чипом памяти, оценить корреляцию команд через внешний интерфейс карты с фактическими действиями с данными на чипе. Несмотря на то, что исследование проводилось для карт MicroSD, по данным разработчиков выявленные проблемы проявляются и для других управляемых устройств хранения, как внешних, так и встраиваемых, в том числе SD, MMC, eMMC и iNAND, а также некоторых видов накопителей USB Flash и SSD.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.