BadUSB - что это такое и с чем его едят

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

Начну, как водится, с объяснения о чём, собственно, сыр-бор. Дело в том, что USB это последовательная шина. Она исходно была рассчитана на то, что в один порт может быть натолкана целая прорва устройств. Я сегодня очень ленив, поэтому соответствующую картинку чёрно-белого содержания, пожалуйста, представьте себе сами. Такой подход в общем и целом правильный: никто кроме вас не знает, сколько вам потребуется подключить устройств, и вы этого тоже часто не знаете. Суть атаки BadUSB состоит в том, что устройство может оказаться не совсем тем, за что оно себя выдаёт. И действительно - иногда оказывается. Если вы ломали голову, мол, почему современные Android-телефоны требуют руками указать, что нам требуется подключение к компьютеру, а не просто зарядка, то ответ как раз BadUSB. Нехорошие личности повадились встраивать всякую гадость в публичные розетки и даже в кабеля. Атака прекрасно описана в википедии, и состоит в тривиальном факте - до недавних пор производители никак не защищали контроллеры USB от перепрошивки чем попало, включая устройства, которые к нему подключены. В результате к полезным для вас функциям устройство возможно добавить функции полезные кому-то другому. Поэтому, кстати, ваша любимая флешка тоже может превратиться в рассадник заразы.

Однако так ли всё страшно? Во-первых - нет. Контроллеров USB чёртова прорва. Их действительно очень много и КАЖДЫЙ требует индивидуального подхода для заражения вредоносным кодом. Так что панику - отставить, а валидол выбросить. Сейчас есть конфетки повкуснее. Во-вторых любому взаимодействующему с компьютером или смартфоном (иначе говоря с хостом) USB устройству требуется некоторая поддержка от хоста. Что толку представляться сетевым адаптером устройству, которое попросту знать не знает что такое сеть? Это в качестве примера. То есть по факту заражённое устройство может представиться чем угодно, что только бывает по USB. Если "постороннее" устройство в ходе нормальной деятельности составляет угрозу информационной безопасности, то подобная атака действительно представляет вектор угрозы. А посторонним устройством может оказаться абсолютно всё что угодно: виртуальный принтер, который перехватывает документы на печать и по встроенному в устройству мобильному модему шлёт данные врагу. Вроде бы всё правильно, да? Для защиты от вредоносных устройств вполне нормально требовать носитель данных неуязвимый для подобных атак, ведь так?

Нет и вот почему. Как я уже сказал выше - для того, чтобы подобные атаки имели хоть какой-то шанс на успех им требуется взаимодействие с операционной системой хоста. Более того, ущерб целиком и полностью ограничен правами пользователя, под которым подключено устройство. Не сиди под рутом! Сколько можно говорить? Если пользователь работает с критическими данными под административной учётной записью, то никакой информационной безопасности в конторе нет и, в принципе, от размещения прямо за спиной пользователя агентуры Mossad, NIO и Syrbar в этом плане сильно хуже не станет. Правда первые будут требовать прекратить трескать бутерброды с салом, вторые прикидывать можно ли вас самих съесть, а третьи возмущаться фильмом "Борат", но давайте это спишем на неизбежные последствия игнорирования правил, которые старше большинства из нас. А вот ограниченная учётная запись называется ограниченной не просто так. Например, можно запретить изменения в конфигурации устройства, что перекроет кислород к подключению чего бы то ни было вообще, а можно запретить устанавливать вполне конкретные классы устройств. То есть можно запретить устанавливать к чёртовой бабушке всё, что не USB Mass Storage. Это требует некоторой компетенции, но вполне выполнимо. Вкупе с грамотным планированием сети (мы же не будем кого попало пускать во внутреннюю сеть организации, правда? Мы же не дураки какие-то чтобы так делать) эти две меры перекрывают этот вектор риска почти целиком.

В комментариях к заметке, которая вызвала к жизни данный пост, уважаемый автор говорит, что, дескать, так как заражённое устройство представляется оборудованием совершенно стандартным, то воспрепятствовать его установке никак нельзя. Он, естественно, заблуждается, если у вас нет прав на установку новых устройств, то системе абсолютно безразлично есть драйвер или нет. Это, знаете, как с автомобилем. Вы можете проникнуть в гараж, в сам автомобиль, но всё равно никуда не уехать, т.к. из автомобиля слили всё топливо и сняли аккумулятор. Я предлагаю всем желающим провести эксперимент: запретить какое-либо устройство на своей машине и удалить его. Драйвер, смею вас заверить в системе останется, однако до того как вы разрешите устройство обратно хоть обпереподключайтесь - оно не заработает.

Всё та же википедия нам любезно сообщает несколько векторов атаки. Имитация клавиатуры и сетевой карты? Мы перекрыли это, они не установятся и работать не будут. Выход из виртуального окружения? Гм, простите, а вы уверены, что надо подключать что попало к гипервизору? Я уверен, что НЕ надо и любой человек, ответственный за информационную безопасность скажет ровно то же самое. Это тоже мимо, с неизвестно чем при наличии реальной тайны, хоть коммерческой, хоть государственной, мы работаем на отдельных выделенных специально физических машинах. Ах да, загрузка с вредоносной флешки. Мне, право, несколько неловко, но я об этом уже писал. Даже дважды. Secure Boot. Рабочий компьютер, который грузится с бог знает чего? Перечитайте первую половину предыдущего абзаца.

В принципе, нормальные потребительские материнские платы уже умеют даже защищаться от флешек - убийц, просто обрубая питание при превышении тока или напряжения. Однако, защитится от подобных устройств ещё проще - продаются готовые "кондомы", причём чуть ли не на развес. Проверить их работоспособность можно собрав киллера собственноручно, это уровень студента политеха курса эдак второго. Он же сможет, кстати, спаять и сам "кондом". Что мешает фасовать готовые аппаратные комплексы для защищённых станций, если позарез необходима работа именно с чужими устройствами? Я не знаю, стоимость сборки из готовых компонентов да сами готовые компоненты для любой конторы национального масштаба это семечки. Стоимость E-mail рассылки по филиалам с инструкциями как всё оборудовать на месте может себе позволить даже Силенд.

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

P.S. Вы, конечно, можете меня спросить, мол, @ahovdryk,  а как же домашний пользователь? А никак, он в заднице. Особенно если сидит под рутом и суёт в свой компьютер что попало.

Лига Сисадминов

1.8K поста18K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.