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