Программа или «железо»? При работе над тем или иным проектом мы вряд ли задумываемся над этим вопросом. А ведь ответив на него, можно обезопасить себя, свою разработку, улучшить за счет особенностей реализации
Программа или «железо»? При работе над тем или иным проектом мы вряд ли задумываемся над этим вопросом. А ведь ответив на него, можно обезопасить себя, свою разработку, улучшитьза счет особенностей реализации. Многие работают с виртуальными машинами на своем компьютере. С помощью специальныхпрограмм можно виртуально установить операционную системуна компьютер и работать с полноценной операционной системой(ОС). К какому виду реализации можно ее отнести? Или, например, USB-накопитель. Все пользуются флеш-памятью, но кто задумывался о реализации? На самом деле тут мы сталкиваемся саппаратно-программной реализацией. А если есть возможностьпрограммной реализации, то есть возможность внедрить в данноеустройство вредоносный код.
Первая версия шины USB была представлена еще в 1995 году.Изначально в эту технологию закладывалась гибкость, универсальность, простота и удобство использования. Чтобы добитьсявсего этого, были использованы классы спецификации, которыеопределяют тип и функциональность нового устройства. В составе ОС находятся драйверы классов, каждый из которых позволяет функционировать соответствующему классу устройств.Таким образом, любое USB-устройство, при наличии USB-разъема, может взаимодействовать с компьютером. С одной стороны,это удобно для пользователей: нет необходимости искать, устанавливать самому драйвера на каждое USB-устройство, будь этоклавиатура, мышь или флеш-накопитель. С другой стороны, этоахиллесова пята USB, потому что одни и те же разъемы могут работать с разными классами устройств, а программно изменивэтот класс, можно выдать одно устройство за другое, и ОС ничего не заподозрит. Причем данную операцию владелец устройства,скорее всего, не заметит и также ничего не заподозрит. Необходимо всего лишь перепрограммировать прошивку контроллераUSB-устройства, изменив класс спецификации. После этого онобудет выдавать себя за другое устройство.
Проблема распознавания «опасного» или вредоносногоUSB-устройства очень актуальна. Сейчас, взяв флеш-накопительв руки, нельзя утверждать точно, является ли он опасным или жеподверженным угрозе BadUSB. Но рассматривать только флеш-накопители в рамках данной уязвимости – основная ошибка. Любоеустройство подвержено угрозе BadUSB, начиная от клавиатуры,заканчивая смартфонами с установленной ОС Android.
Яркий тому пример приведен в 2010 году канадскими компьютерными инженерами. Они сделали USB-клавиатуру с микросхемой, которая копирует файлы, находящиеся на жестком диске,и передает информацию азбукой Морзе встроенным светодиодом.Способ передачи был выбран ради эксперимента, возможно передавать файлы на прописанный злоумышленниками узел.
Опасность угрозы BadUSB высока, потому что все основныечипы контроллеров USB не обладают никакой собственной защитой от их перепрограммирования. По факту основная защита – отсутствие информации в технической литературе и общейдокументации. Перед нами образец известного принципа «безопасность через неясность».
Каждое USB-устройство имеет свой уникальный идентификатор – VID и PID. VID (vendor identificator) – идентификатор производителя, PID (product identificator) – идентификаторустройства. Они состоят из четырехзначного шестнадцатеричного числа. По их значениям можно определить тип контроллера вUSB-накопителе и его производителя, но не всегда это помогает,так как производитель может их указать по своему усмотрению.Для определения типа контроллера и флеш-памяти можно воспользоваться различными утилитами. Наиболее удобной и точной является программа ChipEasy. Она опрашивает контроллерUSB-накопителя и получает следующую информацию: идентификатор производителя, идентификатор устройства, серийный номер устройства, производитель флешки и модель, максимальное потребление тока устройством, файловая система, производительконтроллера устройства, модель контроллера, установленного вUSB-устройстве, производитель микросхемы памяти, тип памятии многое другое. Это позволяет выяснить контроллер, в отличиеот технологии «угадывания» модели контроллера по VID\PID.Данная технология была применима до середины 2000-х годов,когда существовало небольшое количество контроллеров и производителей накопителей. Очень часто для прошивки всех контроллеров подходила одна и та же утилита. Сейчас же данныйметод устарел, потому что зачастую производители присваивают«не родные» идентификаторы для контроллера. Или для работоспособности утилиты нужно учитывать тип флеш-памяти. Да инемногочисленные базы, в которых хранится информация о контроллерах, могут содержать неверные сведения, благодаря которым можно ошибиться при выборе утилиты.
Любое взаимодействие USB-устройства с компьютером осуществляется с помощью микроконтроллера. Для того чтобы онмог осуществить операции, в его собственной служебной памяти хранится управляющий код. Простой доступ к данной памятипользователь с помощью каких-либо программных продуктов неимеет, более того, некоторым моделям контроллеров необходимоиспользование аппаратного программатора. В связи с распространенностью технологии USB многие производители для упрощения выполняют операцию перепрограммирования напрямую через интерфейс. Обычная прошивка – это закрытый код, поэтомупринято считать, что его изменение доступно только разработчику. Однако каждое устройство USB включает в себя чип контроллера или, иными словами, собственный управляющий микрокомпьютер, который легко можно перепрограммировать с помощьюнебольшого физического и программного воздействия. В связи стем, что оригинальная прошивка чипа занимает меньший объем,чем доступный размер памяти для ее хранения, изменение микрокода прошивки не составит труда.
Компании SRLabs, специализирующейся на исследованииуязвимости информационных систем, аппаратных продуктов,удалось выявить уязвимые контроллеры для таких устройств,как адаптеры SATA, устройства ввода-вывода, веб-камеры,устройства для чтения карт памяти SD Card, USB-разветвители ифлеш-накопители. Полный список всех уязвимых устройств достаточно большой, отметим выявленные уязвимые контроллеры для USB-носителей:
1. ALCOR AU698X.
2. SMI SM325X/SM326X.
3. Skymedi SK62XX SK66XX.
4. Solid State System SSS6677, SSS6690 and SSS6691.
5. Innostor IS903-A2, IS903-A3.
Но данный список тяжело использовать непосредственно поназначению – ради защиты от угрозы BadUSB. До использованияUSB-накопителя нельзя утверждать со стопроцентной уверенностью, что на данном устройстве установлен тип контроллера,находящийся в этом списке. Можно найти лишь примерную информацию, составленную самими пользователями флеш-накопителей, на каком устройстве какой контроллер уже встречался. Этаинформация позволит с некоторой вероятностью избежать использования уязвимого контроллера, но не гарантирует полнуюбезопасность. Можно, конечно, воспользоваться утилитой дляопределения типа контроллера, но для этого нужно считать с неепрошивку, следовательно, подвергнуть компьютер угрозе.
Приведем три основных примера использования описаннойуязвимости.
1. Подключенное BadUSB-устройство (флеш-накопитель)может выдать себя за клавиатуру и начать отдавать команды отимени пользователя, под которым был выполнен вход в ОС. Еслибыл выполнен вход от имени администратора, устройство получает полный доступ ко всем возможностям ОС. Самый простой вариант команды – установка вредоносного ПО или отправка необходимых файлов злоумышленнику. Также существует опасностьзаражения всех USB-устройств, подключаемых после, потому чтонельзя исключить возможность заражения USB-контроллера, находящегося в компьютере.
2. Зараженное устройство способно эмулировать сетевуюкарту компьютера. Таким образом, диспетчер устройств обнаружит новое сетевое устройство. С помощью специальной прошивки злодей может осуществить подмену стандартных DNS-адресови перенаправить весь трафик через свой сервер, получив возможность совершать атаку типа «человек посередине».
3. USB-накопитель, который будет использован для переустановки ОС, может уже быть заражен BadUSB-инфекцией и сразу, при установке, прописать в памяти компьютера вредоносныефайлы и заразить «чистую» ОС. Администратор может и не узнать об этом, потому что вредоносные файлы будут находитьсяуже в самой ОС до установки антивирусной программы.
Помимо этого, можно отметить еще несколько сценариев возможных атак через USB-устройства: сокрытие файлов от ОС ифайловых менеджеров вместо удаления, изменение файлов при ихзаписывании на флеш-память устройства, таким образом, данныемодифицируются «на лету» и антивирусная программа проверяет «чистый» файл до его изменения, после на флеш-накопителенаходится уже зараженный файл, возможна эмуляция дисплея сцелью получить доступ к скрытой информации и др.
Поскольку данная угроза выполняется на программно-аппаратной реализации микрокодов, опасность и универсальностьугрозы BadUSB высока. Она совместима с ОС всех типов. Защитаот этой угрозы осложнена. Стандартные манипуляции с переустановкой операционной системы, которые являются универсальным решением на не выводимое другими вариантами вредоносноеПО, не способны «вылечить» компьютер, зараженный инфекциейBadUSB. Потому что USB-накопитель, с которого происходитустановка ОС, может содержать вирус благодаря злоумышленнику. Также на компьютере могут быть установлены встроенныеустройства, которые подключаются через внутренний USB-порт,например веб-камера, устройство для чтения карт памяти SDCard. Они также могли быть подвержены инфекции или к компьютеру могли быть подключены другие USB-устройства. Привозможности эмулирования клавиатуры и скрытого храненияфайлов нельзя исключать угрозу подмены системы BIOS. Такимобразом, компьютеры или подключенные USB-устройства, которые были заражены инфекцией BadUSB, невозможно вылечить ивернуть к первоначальному состоянию.
Что же необходимо осуществить для этого? Как оказалось,ничего трудного нет, кроме одного момента: получение исходников оригинальной прошивки. Благодаря этому угроза BadUSB ненабрала такой популярности, как многие вирусы USB-накопителей. Например, вирус в автозапуске или вирус, скрывающий вседанные на устройстве, отображая похожие файлы-вирусы, которые запускал ничего не подозревающий пользователь. Однако этовсего лишь вопрос времени…
Чтобы превратить «чистый» флеш-накопитель в BadUSB,нужно изменить стандартную прошивку микроконтроллера. Необходимо найти исходники оригинальной прошивки или с помощью реверс-инжиниринга получить исходный код. Затем определиться с типом атаки и написать исполняемый код, это может бытьреализовано с помощью Java-скриптов. Далее этот код внедряетсяв стандартную прошивку микроконтроллера и «зашивается» внего. В свободном доступе находятся программы, используемые,как правило, для восстановления прошивок распространенныхфлеш-накопителей. Их можно использовать для записи вредоносной прошивки микроконтроллера, для этого нужно перевести накопитель в boot режим. Информацию по данной операции можноизучить в документации к контроллеру, иногда достаточно запуска командной строки, с помощью которой флеш-накопитель переводится в boot-режим командой:
«Путь к скомпилированному приложению для связи с дискамина контроллере /drive= «Буква накопителя» /action=SetBootMode»
Иногда этого может не хватать или в связи с отсутствием приложения для связи с дисками самым надежным вариантом будетфизическое воздействие на контроллер, для этого нужно добраться до контроллера флеш-накопителя, разобрав корпус устройства,и замкнуть конкретные пины. Это позволяет осуществить режимперепрограммирования накопителя. В этом режиме необходимо«залить», с помощью стандартной программы восстановления,новую, измененную, прошивку.
После таких манипуляций в руках у нас флеш-накопитель, который при последующем использовании будет выполнять команды, указанные в прошивке. Антивирусам очень тяжело боротьсяс таким типом атак, потому что невозможно фильтровать USB-трафик и отличить – может устройство самостоятельно подаватьтакие команды или же это действие выполняет пользователь. Например, в случае подмены USB-клавиатуры, антивирус не в состоянии отличить настоящую клавиатуру от «поддельной» или понять,какое поведение поддельной клавиатуры является вредоносным.
Небольшие методы защиты все-таки существуют. Они неспасут компьютер от заражения, однако могут обезопасить отнекоторых разновидностей данной угрозы. Во многих ОС можно ограничить подключение по USB, оставив только доступ дляопределенного круга устройств. А можно полностью запретить использование USB-портов. Запрет устанавливается как встроенными средствами операционной системы, так и с помощью дополнительных программ. Рассмотрим каждый вариант.
Среди встроенных средств самым действенным способомявляется полное отключение USB-портов. В операционной системе Windows для этого необходимо выполнить: «Пуск => Панельуправления => Диспетчер устройств => Корневой USB-концентратор => Отключить».
Существенным недостатком данного метода является тотфакт, что любой пользователь, имеющий доступ к правам администратора, может включить порты, подвергнув компьютер возможной опасности. Также можно выключить USB-порты в BIOS.И хотя это самый действенный метод защиты, он не применим вбольшинстве случаев, потому что тогда необходимо будет подключать устройства ввода-вывода через альтернативные порты,например OS/2. Однако далеко не все компьютеры сегодня имеют данный разъем. А отказаться от использования клавиатуры и«мышки» невозможно.
Существует множество простейших программ для управления доступом к USB-портам. Большинство из них бесплатны,некоторые позволяют устанавливать пароли. К сожалению, этипрограммы запрещают только указанные устройства, тем самымпредоставляя неполноценную защиту. Другая часть программпозволяет блокировать только неразрешенные USB-устройства.В белом списке, как правило, находятся клавиатуры, принтеры имыши, тем самым оставляя лазейку для атаки. Программы обеспечивают защиту от вирусов, которые пытаются проникнутьна компьютер через USB-накопители, а также восстановлениескрытых и спрятанных файлов на USB-носителях в результатепоследствий вирусного воздействия. Примером таких программявляются “USB Security”, “USB Protection & Recovery”, “Antirun”и другие. Наиболее популярной и удобной утилитой, которая незамедляет работу компьютера, является “USB Security”.
Еще один тип платных программ предоставляет средствазащиты информации, осуществляющие комплексную защиту информации пользователя. Пример таких программ – отечественные разработки “Secret Net”, “Страж NT”, “Dallas Lock”.В этих программах есть встроенное управление доступом к USB-устройствам с разграничением на различные категории пользователей. Данный тип программ представляет более полную защиту,чем все остальные рассмотренные методы, за исключением отключения USB-портов в BIOS. Например, Dallas Lock позволяетсоздать изолированную среду. Изолированной системой в данномконтексте назовем систему, у которой ограничено использование USB-портов, таким образом не позволяется добавлять новыеустройства или полностью запрещено использование интерфейса, в зависимости от настроек. Однако стоит задуматься о рациональности установки продукта Dallas Lock, если вы хотите пользоваться им ради отключения и блокирования USB-устройств.Стоимость лицензии на один компьютер на год составляет 8 000рублей (при покупке от одной до девяти лицензий). В даннуюцену включается сам продукт и техническая поддержка на год.Целесообразно использовать Dallas Lock в корпоративной сетидля разграничения прав доступа всех пользователей в ней. Программа может разграничить и разрешить доступ определеннойгруппе пользователей к необходимым устройствам. Приниматьрешение о покупке данной системы стоит в каждом конкретномслучае, в зависимости от сети и поставленных задач.
Самый простой и глобальный способ избежать или, по крайне мере, ослабить атаку через BadUSB – это внедрить цифровуюподпись изготовителя в прошивку устройства. При каждом подключении к компьютеру проверялась бы сигнатура и пользователю сообщалось бы о безопасности данного устройства. Опциистандарта USB позволяют осуществить данную защиту, но ееплюсы не могут перекрыть минусы, такие как снижение универсальности технологии, удорожание производства устройств и др.
Альтернативой цифровой подписи можно считать шифрование, уже давно существующее и многими использующееся. В данном случае безопасность устройства осуществляется с помощьюаппаратного модуля шифрования/дешифрования с физическимвводом пароля и его хранением непосредственно внутри «железа»флеш-накопителя. Это означает, что компьютеру не потребуетсякакое-либо специальное программное обеспечение при работе сданным накопителем. Многие производители сейчас выпускаюттакие накопители, среди известных фирм IronKey, Corsair, IStorage,Silicon Power и другие. Некоторые типы таких USB-устройств позволяют аппаратно запрограммировать набор комбинаций для доступа или сброса всей информации. Обычно используется шифрование данных AES-256. Дабы исключить возможность перебора,после десяти неправильных попыток ввода устройство блокируется и удаляет все данные, находящиеся в памяти. А пыле- и водо-непроницаемый корпус и эпоксидная смола, которой покрыта память, исключает возможность физического доступа к устройству,т.к. при попытке добраться до флеш-памяти или шины данныхсмола приводит ее в негодность. Перечислив все положительныемоменты, нельзя не отметить и минусы. Это высокая стоимостьпродукции фирмы IronKey. Например, на американском Ebayцена на данное USB-устройство с 2ГБ флеш-памяти начинается от$85-100 в сравнении с $4-5 простого USB-накопителя. Среди российских разработок можно уделить внимание USB-накопителюRuntex Samurai. Его стоимость составляет около $180 за 8ГБ памяти. Данный накопитель шифрует данные с помощью AES-1024,однако сильно уступает подобным устройствам фирмы IronKey вплане чтения и записи данных: 0,5 Мб/сек против 27 Мб/сек.
Еще один способ – разделить периферию по раздельным классам на разные разъемы USB-портов, чтобы была возможность использовать, например, для накопителей памяти один порт, который не сможет работать с другими классами USB-устройств.
Как вариант можно рассматривать применение специальнойпрограммы-экрана, которая позволит осуществить контроль класса устройств и сравнение на соответствие их функций заявленным.
Если мы рассматриваем подключение какого-либо устройствас целью подачи питания, а не передачи данных, можно использовать специальное устройство USB-кондом. Оно устанавливаетсямежду USB-устройством, которое необходимо зарядить, и коннектором компьютера. Смысл заключен в отсечении шины данных.Оставляя только контакты массы и +5V для зарядки, исключаетсявозможность передачи данных и соответственно связи с устройством. Стоимость такого устройства начинается с $5.
Возможно, разработчики антивирусных программ будут добавлять дополнительные модули для расширенного контроля надUSB-устройствами. Ограничивать доступ к USB-носителям умеют ESET Endpoint Antivirus, Kaspersky Endpoint Security, Dr.Web идругие современные средства. Однако в случае BadUSB таких мерможет оказаться недостаточно.
Одним из способов защиты является также осторожность виспользовании устройств. Не подключать непроверенные устройства, не покупать и не использовать бывшие в употреблении,никогда не оставлять компьютер или мобильное устройство безприсмотра в не заблокированном состоянии. Даже покупая новоеустройство, нельзя быть полностью уверенным в том, что оно незаражено.
С появлением нового стандарта USB Type-C универсального разъема, с помощью которого осуществляется передача информации и зарядка устройства, у злоумышленника появляетсявозможность получения доступа к системе энергопотребленияустройства, что открывает новые возможности нанесения вредакомпьютеру пользователя.
В любом случае, все эти меры безопасности меркнут перед самой главной уязвимостью в безопасности – человеческий фактор.Какие бы меры предосторожности ни были применены, человеквсегда может посчитать, что устройство безопасно, и разрешитьподключение, тем самым открыв прямую дорогу уязвимости.
Изучив подробнее особенности данной угрозы, стоит задуматься о том, кто уже мог реализовать и использовать ее.
Комментарии