Открыт код инструментария для проведения атак через модификацию прошивок USB-накопителей

Летом на конференции Black Hat был представлен и продемонстрирован новый класс атак BadUSB, проводимых с USB-устройств со специально модифицированной прошивкой. Суть атаки сводится к эмуляции одним устройством совершенно другого типа USB-устройств или модификации передаваемых данных, например, USB-накопитель в определённый момент может притвориться USB-клавиатурой и осуществить подстановку ввода или подменить копируемые данные, но активировать подмену только при определённых условиях для того чтобы проверка по контрольной сумме не выявила расхождений. Атаку представил известный исследователь безопасности Карстен Нол (Karsten Nohl), который опубликовал только тестовый прототип эмуляции устройств для платформы Android. Наиболее интересные и опасные наработки, связанные с изменениями прошивок остались недоступны широкой публике. Позднее, разработчики проекта Kali Linux подготовили собственную реализацию метода и включили её в продукт Kali NetHunter, предназначенный для использования на смартфонах под управлением платформы Android. Метод позволяет при помощи смартфона эмулировать сетевой USB-адаптер, который может использоваться для MITM-атак, или USB-клавиатуру, выполняющую подстановку символов.

Два независимых исследователя, Brandon Wilson и Adam Caudill, сумели воспроизвести технику атаки для USB-накопителей и несколько дней назад опубликовали на GitHub исходные тексты компонентов, необходимых для модификации прошивок накопителей с чипами контроллеров компании Phison Electronics, а также примеры патчей для прошивок с реализацией метода подстановки клавиатурного ввода и создания полностью скрытых от внешнего мира разделов. Код опубликован под лицензией MIT.

В состав входит приложение для взаимодействия с накопителями Phison, программа для встраивания в прошивку дополнительной функциональности в формате Rubber Ducky, скрипты для загрузки прошивки на устройство, программа для извлечения адресов из прошивки и встраивания кода в прошивку, пример собственной прошивки и коллекция патчей для прошивок.

Производители USB-устройств оказались совершенно не готовы для данного класса атак, так как в настоящее время системы рассчитаны на то, что USB-устройства выполняют только штатные действия и пользуются слишком высоким уровнем доверия. USB-устройство выглядит для системы чёрным ящиком, в котором невозможно проверить корректность прошивки и наличие вредоносных модификаций прошивки невозможно зафиксировать до момента совершения атаки. Получить код прошивки с внешнего USB-устройства можно только при участии самой прошивки, которая может успешно скрывать все изменения. Таким образом, анализ прошивки возможен только через такие методы, как физическое дизасcемблирование и обратный инжиниринг устройства, проведение которых возможно только при наличии специализированного оборудования. При этом провести изначальную модификацию прошивки можно в обычном программном окружении без привлечения спецсредств.

©  OpenNet