В августе этого года известные хакеры Карстен Нол (Karsten Nohl) и Якоб Лелл (Jakob Lell) из консалтинговой компании SR Labs сообщили о «фундаментальной уязвимости устройств USB». В октябре они опубликовали код программы для взлома компьютера по USB и с тех пор проверили сотни различных устройств разных производителей на наличие бага. Полный список проверенных устройств см. здесь.

Были проверены все USB-контроллеры от 8 крупнейших мировых производителей: Phison, Alcor, Renesas, ASmedia, Genesys Logic, FTDI, Cypress и Microchip.. Результаты проверки неоднозначные. Хорошая новость в том, что около половины устройств не подвержена уязвимости. Плохая новость: вы не можете сказать, какая конкретно половина.

Буквально каждая модель флешки, веб-камеры, концентратора или адаптера для флеш-карт поставляется с разной начинкой, в зависимости от партии. В одной партии может быть уязвимый контроллер, а в другой — уже нет. Модель контроллера не обозначена на упаковке. Узнать её можно только после вскрытия прибора. Приходится использовать устройство вслепую.

О результатах исследования авторы рассказали на конференции по безопасности PacSec, которая прошла на прошлой неделе в Токио (слайды, pdf).

Есть несколько интересных фактов, достойных отдельного упоминания. Например, уязвимости подвержены абсолютно все USB-флешки с контроллерами производства тайваньской фирмы Phison. Все чипы ASmedia, напротив, защищены от бага. У другой тайваньской компании Genesys уязвимы контроллеры USB 3.0, но безопасны контроллеры USB 2.0. В общем ситуация совершенно непредсказуемая.

Программа BadUSB устанавливается в прошивку периферийного устройства и полностью берёт под контроль компьютер при подключении к нему по USB. На компьютере жертвы BadUSB творит что угодно, в том числе видоизменяет файлы, которые устанавливаются в системе, и перенаправляет интернет-трафик на произвольные адреса, изменив DNS-записи. Зловред всегда может выдать себя за клавиатуру и ввести произвольные команды.

Установленная на компьютере программа может изменить прошивку по USB, а та, в свою очередь, может установить зловреда в системе. Из-за такого двустороннего взаимодействия ни одному устройству и компьютеру больше нельзя доверять. Вы не только должны ограничить свой ПК от посторонней периферии, но и сами не можете безопасно вставить чистую флэшку в посторонний ПК.

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



8 комментариев

  1. 18.11.2014 at 11:33

    «Самая действенная защита — вообще запретить подключение к компьютеру новых USB» — может, тогда вообще USB-порты запаять? «Белый список» HID-устройств должен полностью решать проблему.

    • 18.11.2014 at 14:13

      Эти устройства точно не втыкались в чужие компы, где их могли перепрошить?

    • 19.11.2014 at 14:19

      «Белый список» ? O_o
      Ну ведь контроллер USB можно перепрошить под устройство из белого устройства.
      Белый список однозначно не решение. Есть большое количество устройств которые не должны быть подключены глобальной сети — например в оборонных технологиях. Так они же не буду обновлять «Белый список». Предлагаете это делать вручную ? Это же однозначно не эффективно. Необходимо другое решение.

  2. 19.11.2014 at 18:03

    А я тут подумал: (случай, когда комп — десктоп, не ноутбук) А нельзя вот между портом и материнкой воткнуть что-нибудь, что будет экранировать комп от этого?

    Ну в смысле кабель от передней панели вставляется в хреньку, хренька вставляется в матплату и защищает? С задними портами такое ессна не прокатит

    • 21.11.2014 at 19:45

      Хм, что значит «хреньку»? И что эта, с позволения сказать, «гренка»будет делать? Экранировать что? D+ и D-? Или при подключении к ней нужно будет выбрать, что именно я подключаю? Нужно будет постоянно говорить ей: «Я вставляю флешку. Я вставляю клавиатуру. И т.д.»?

Оставить мнение