Содержание статьи
Спойлер: через пару часов у меня был дамп прошивки, структура файловой системы и хеш пароля, который ломается за секунды. Расскажу, как это устроено, потому что этот класс атак подходит для огромного количества устройств — IP-камер, промышленных контроллеров, умных замков и вообще любой железки, где внутри живет Linux.
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Почему физический доступ — это game over
В информационной безопасности есть аксиома: если атакующий получил физический доступ к устройству, все программные защиты сводятся к задержке, а не к гарантии. Звучит как теория, но для встроенных систем все так и работает.
Любой производитель встраиваемого железа в процессе разработки и заводского тестирования оставляет на плате отладочные интерфейсы. Это технологическая необходимость: нужно как‑то прошивать устройство на конвейере, диагностировать неисправности, обновлять загрузчик. В теории эти порты не должны быть доступны конечному пользователю — нет разъема, нет маркировки, нет удобных пинов. На практике медные площадки никуда не деваются и прекрасно принимают сигнал.
Основные интерфейсы, которые встречаются на большинстве потребительских устройств:
- UART — самый ценный. Последовательный порт, через который загрузчик и ядро выводят отладочные логи. Через него же чаще всего и заходят в первую очередь — если повезет (а везет почти всегда), можно получить интерактивную оболочку.
- SPI — шина, по которой процессор общается с флеш‑памятью. Подключившись к ней программатором, можно считать прошивку целиком, даже если основной процессор не работает.
- I2C — медленная шина для периферии и EEPROM. В EEPROM часто лежат настройки, MAC-адреса и иногда пароли в открытом виде.
- JTAG — отладочный интерфейс стандарта IEEE 1149.1, дающий прямой доступ к процессору: позволяет останавливать его, выполнять код пошагово, читать любую память и записывать в нее данные.
Я сосредоточусь на UART и SPI — этого хватает для большинства практических задач, а оборудование понадобится совсем недорогое.
Подопытные: что внутри у бюджетного роутера
Оба устройства я получил от провайдера. Внешне — обычные белые коробки. Внутри — типичная бюджетная архитектура, которую встретишь в половине домашних сетей по стране.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
