В августе этого года известные хакеры Карстен Нол (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-устройств: флешек, мышек, клавиатур, смартфонов и других приборов. А в будущем производители обязаны будут чётко указывать, какие конкретно микросхемы установлены в их устройствах. Как вариант, можно использовать криптографическую проверку обновлений прошивки.