Чума на ваши USB

:

По давней хакерской традиции на месяц август приходится один из главных ежегодных форумов этого сообщества — конференция Black Hat / Def Con в Лас-Вегасе, США. Среди множества докладов, как это повелось, непременно находятся и такие, о которых СМИ шумят особенно сильно — причем в данном случае практически всегда шум идет по делу, а не ради дешевой сенсационности. В этом году еще за неделю до начала Black Hat USA особый резонанс в Интернете и компьютерной прессе получил анонс доклада под названием «BadUSB — об аксессуарах, обратившихся во зло». Авторами исследования являются германские хакеры Карстен Ноль и Якоб Лелль (Karsten Nohl, Jakob Lell) из берлинской фирмы инфобезопасности Security Research Labs.

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

#Предыстория вопроса

Ровно год тому назад, на Black Hat USA 2013, Карстен Ноль и его компания SR Labs сделали мощно прозвучавший доклад о серьезнейших слабостях инфозащиты, которые были выявлены в чипах-микрокомпьютерах SIM-карт, обеспечивающих безопасность в системах сотовой связи GSM (подробности см. в «Сим-сим открылся»).

Спустя несколько месяцев, осенью 2013-го, коллега Ноля, известный канадский хакер Драгош Руйу (Dragos Ruiu), опубликовал в Сети материалы о выявленном им комплексе новых компьютерных угроз, получивших от исследователя обобщенное название BadBIOS. Главной особенностью этих угроз было то, что неискоренимая основа вредоносных программ скрывается в микрокодах аппаратной части компьютера: в прошивках микросхем BIOS, в видео- и сетевых платах расширения PCI, в контроллерах жестких дисков, в USB-флешках памяти и так далее (подробности см. в «BadBIOS, или Большие проблемы»).

Сразу следует отметить, что невероятно звучавшие открытия Драгоша Руйу опирались исключительно на многолетние аналитические наблюдения исследователя и не подкреплялись какими-либо убедительными демонстрациями, которые могли бы подтвердить концепцию. Иначе говоря, изначально скептически настроенная (и мало сведущая в подобных делах) компьютерная общественность в массе своей хакеру не поверила. Ну а компетентные коллеги Руйу, напротив, теперь уже всерьез занялись исследованием давно известной проблемы, с которой антивирусная индустрия не только не борется, но даже и не пытается бороться.

В конце декабря 2013-го, в рамках юбилейного, тридцатого форума германских хакеров 30C3, или Chaos Computer Congress, сообществу был представлен неясно откуда просочившийся топ-секретеный документ АНБ США в стиле компромата от Эдварда Сноудена. Подобно каталогам коммерческой электроники, этот (вне всяких сомнений подлинный, но не свежий, за 2008 год) документ методично перечисляет и описывает великое множество аппаратных и программных закладок, имеющихся в арсенале шпионов и заточенных под разнообразные условия «компьютерной среды». Среди прочего немало там закладок для внедрения и в BIOS, и в микрокоды других цифровых устройств...

Весной года нынешнего, в марте, хакерская конференция CanSecWest в канадском городе Ванкувере с подачи Руйу уделила особое внимание проблемам BadBIOS. Точнее, в рамках этого форума уже не эпизодические доклады, а целая сессия плюс практическая школа-семинар были целиком посвящены компьютерным угрозам, исходящим от BIOS и UEFI, новой и куда более опасной для злоупотреблений кросс-платформенной версии этой же системы. Авторами ключевых докладов и ведущими школы по вредоносам в прошивках BIOS/UEFI были аналитики-хакеры корпорации Intel и весьма известной исследовательской фирмы MITRE. Ну вот, а теперь, в августе 2014-го, очередь дошла и до угроз от вредоносных программ в микрокодах контроллеров USB, о чем и будет основной рассказ.

#Ахиллесова пята USB

Нынче на редкость разнообразные устройства с коннекторами USB подсоединяются практически ко всем современным компьютерам. За два последних десятилетия этот стандарт интерфейса успешно завоевал мир именно благодаря своей гибкости. Почти любую, без преувеличения, компьютерную периферию — начиная с устройств хранения информации и всяческих гаджетов ввода и заканчивая сложными медицинскими устройствами — можно подсоединять через повсеместно распространенную технологию (не говоря уже о том, что гигантское количество самых разных классов устройств ныне имеют в себе USB-коннектор просто для подзарядки своих батарей).

Редкостная универсальность и гибкость технологии USB закладывалась в конструкцию интерфейса изначально. Стандарт USB может быть использован для подсоединения практически любого периферийного устройства к хост-машине благодаря тому, что в спецификациях заданы и реализованы так называемые классы USB и драйверы для этих классов. Соответственно, каждое появляющееся в индустрии USB-устройство относится к некоторому заранее определенному классу — согласно классификации, определяющей функциональность устройств. Наиболее известными и распространенными среди этих классов являются, к примеру, HID, или «устройства человеческого интерфейса» (клавиатуры, мышки, джойстики), контроллеры беспроводной связи (типа Bluetooth- или Wi-Fi-модулей), внешние устройства памяти (флешки, цифровые фотоаппараты), ну и так далее.

На хост-машине (настольный ПК, ноутбук, смартфон) в составе ОС имеются драйверы классов, каждый из которых управляет функциями своего конкретного класса устройств. Именно по этой причине и оказывается возможным вставлять, скажем, произвольную USB-клавиатуру чуть ли не в любой компьютер с USB-коннектором, и она сразу начинает там работать без каких-либо проблем.

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

Строго говоря, взлом USB-устройств с модификацией их функциональности (типа превращения USB-клавиатуры в шпионскую закладку-кейлоггер для похищения всех нажатий кнопок жертвой) давно уже новостью не является. Однако ныне исследователями SR Labs впервые столь разносторонне продемонстрировано, что для атак через USB на самом деле вовсе не требуется навешивания на схему никаких дополнительных чипов и печатных плат.

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

Масштабы этой, и без того серьезной, угрозы дополнительно возрастают во много крат еще и по той причине, что очень широко распространенные на рынке чипы контроллеров USB — включая и те, что положены в основу флешек памяти, — в массе своей не имеют никакой встроенной защиты от подобного перепрограммирования. То есть единственной защитой тут предполагается, как это часто принято, то, что об этом не пишут в общей документации и технической литературе. Иначе говоря, перед нами очередной образец общеизвестного и давно скомпрометированного принципа «безопасность через неясность».

Для тех же специалистов, которые обладают знаниями и умением самостоятельно разбираться в подобных мутных вопросах, общая картина так или иначе все равно становится ясной. И ясность эта, как правило, открывает не только никудышную или вообще никакую защиту, но и широчайшее поле для злоупотреблений.

#Многоликая угроза

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

Затратив несколько месяцев на обратную инженерную разработку (реверс-инжиниринг) USB-микроконтроллеров одной из наиболее широко представленных на рынке фирм, исследователи SR Labs установили, что вполне нормальное изначально USB-устройство может быть быстро превращено во вредоносное и очень опасное — BadUSB. Причем опасное множеством разнообразных способов. В качестве наиболее типичных примеров Ноль и Лелль в своем докладе на конференции Black Hat USA анонсировали три следующие демонстрации.

  1. Подсоединенное к компьютеру BadUSB-устройство (в типичной ситуации — модуль флеш-памяти) может эмулировать клавиатуру и отдавать команды от лица человека, управляющего в данный момент операционной системой. Например, могут подаваться команды на отправку файлов в Интернет или, наоборот, на установку вредоносного ПО в компьютер. Такая подсаженная вредоносная программа, в свою очередь, уже сама может заражать чипы контроллеров других USB-устройств, подсоединяемых к тому же компьютеру впоследствии.
  2. Иначе перепрограммированное BadUSB-устройство также может выдавать себя за сетевую карту и подменять прописанные в компьютере настройки сетевых адресов DNS, из-за чего интернет-трафик жертвы перенаправляется по нужному злоумышленникам маршруту. Предоставляя, к примеру, широкие возможности для известных атак типа «человек посередине».
  3. Модифицированная методами BadUSB флешка или внешний жесткий диск, используемые для внешней загрузки или установки «чистой» операционной системы на компьютер, могут в определенный момент — когда определяют, что компьютер начинает работу, — загружать в систему небольшой вирус, который заражает память компьютера еще до начала загрузки ОС.

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

#«Ужасный тип паранойи»

Едва только весть о новой напасти под названием BadUSB начала распространяться в Сети, компьютерная пресса тут же стала осаждать USB Implementers Forum, то есть соответствующий орган стандартизации USB, требуя там разъяснений и комментариев. Хотя, казалось бы, что содержательного может поведать подобный орган, когда главная его цель — это вовсе не безопасность коммуникаций, а обеспечение максимальной гибкости и универсальности технологии? Благодаря которым, собственно и удалось добиться триумфально успешного, фактически тотального распространения стандарта в мире.

По этой причине и комментарии от USB IF оказались не то чтобы совсем бесполезными, а так, в общем-то, ни о чем. Во-первых, в органе стандартизации не решились — и на том спасибо — отрицать серьезность собственно угрозы. Но во-вторых, ничего содержательного относительно защиты от подобной напасти, увы, не сказали. Ну нельзя же всерьез относиться к их заявлению о том, что единственной защитой против BadUSB-атак является использование только тех USB-устройств, которым пользователи доверяют на 100 процентов... Как можно доверять или не доверять устройству в условиях, когда в природе вообще не существует средств, позволяющих осуществлять проверку?

Куда более компетентные в подобных вопросах исследователи фирмы SR Labs вполне ответственно сообщают, что на данный момент не известно ни о каких эффективных средствах защиты от атак через контроллер USB — ни в индустрии, ни в сообществе инфобезопасности. Антивирусные сканеры вредоносного ПО в принципе не способны получать доступ к кодам прошивок, работающих на USB-устройствах (так же как, впрочем, и к прошивкам всех прочих плат и микросхем). USB-фаерволы, которые могли бы блокировать определенные классы устройств, пока что тоже не существуют (хотя концептуально такие вещи уже задуманы). Что же касается поведенческого выявления подобных вредоносов, то это дело крайне сложное, поскольку поведение устройства типа BadUSB — когда оно меняет свою «компьютерную личность» — внешне выглядит так, как если бы пользователь просто вставил в машину новое устройство.

Наконец, чтобы сделать ситуацию еще хуже, даже зачистка системы после выявления подобного заражения — тоже дело чрезвычайно сложное. Манипуляции вроде сноса и переустановки операционной системы — являющиеся стандартным ответом на невыводимое иными путями вредоносное ПО — не способны воздействовать на инфекции типа BadUSB в самой их основе.

Во-первых, сама USB-флешка, с которой переустанавливается ОС, может быть давно уже заражена. Во-вторых, в том же компьютере вполне может быть заражена аппаратно встроенная веб-камера (подключенная через внутренний порт USB). В-третьих, через такой же порт могут быть подключены какие-то еще USB-компоненты внутри компьютера. В-четвертых, как показывают исследования, при умелом подходе устройство BadUSB может даже подменять собой систему BIOS — опять-таки через эмулирование клавиатуры и извлечение спрятанных в укромном месте файлов...

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

#Надежда остается всегда

Хотя ситуация с BadUSB сегодня и выглядит довольно мрачно (примерно столь же беспросветно, как и с отсутствием защиты от шпионов-бэкдоров в микрокодах BIOS/UEFI), никто не утверждает, что дело тут совсем уж безнадежное.

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

Другая возможность — делать в компьютере специально предназначенные и несовместимые по разъемам USB-порты для тех или иных классов периферии. Чтобы имелась возможность использовать, скажем, для носителей памяти такой порт, который совершенно неспособен работать с другими классами USB-устройств.

Третья возможность, о которой вскользь уже упоминалось, — применять специальную программу-фаервол, позволяющую контролировать классы устройств, подсоединяемых к тем или иным портам, и соответствие их функций заявленным.

Конкретные меры противодействия BadUSB-атакам предлагаются и исследователями фирмы SR Labs, но подробности на данный счет станут известны, скорее всего, уже после их доклада на Black Hat. Следить за развитием ситуации вокруг данной темы предлагается непосредственно на сайте компании.

* * *

Дополнительные материалы:

  • «Ясно, что небезопасно»: подробности о другом исследовании Карстена Ноля и его коллег — вскрытии слабостей в секретной схеме RFID-чипов Mifare, лежащих в основе пропусков, социальных карт, транспортных проездных и тучи прочих приложений.
  • «Сим-сим открылся»: подробности о вскрытии SIM-карт в системе мобильной связи GSM.
  • «BadBIOS, или Большие проблемы»: о том, как реально выглядит тотальное и неизлечимое заражение компьютеров через прошивки микрокодов.
  • «Трындец, приехали, или Йожик здох»: о том, что бороться с проблемой надо, но пока никто не знает как.

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.