Летом на конференции 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, скрипты для загрузки прошивки на устройство, программа для извлечения адресов из прошивки и встраивания кода в прошивку, пример собственной прошивки и коллекция патчей для прошивок. На wiki-странице проекта доступна подробная документация по внесению изменений в прошивку. Разработчики надеются, что публикация инструментария для совершения атаки станет стимулом для внедрения производителями технологий верификации прошивок по цифровым подписям.

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



Источник: http://www.opennet.ru/opennews/art.shtml?num=40744