Вектор атаки BlueBorne может потенциально повлиять на все устройства с Bluetooth, количество которых сегодня оценивается более чем в 8,2 миллиарда. Bluetooth является ведущим и наиболее распространенным протоколом для ближней связи и используется всеми устройствами — от обычных компьютеров и мобильных до IoT-устройств, таких как телевизоры, часы, автомобили и медицинские приборы.
Итак, в чём проблема? Bluetooth сложный. Эта чрезмерная сложность является прямым следствием огромной работы, которая была проведена при создании спецификации Bluetooth. Чтобы проиллюстрировать это отметим, что, в то время как спецификация WiFi (802.11) умещается на 450 страницах, объём спецификации Bluetooth достигает 2822 страниц. Результатом непрозрачности является большое количество уязвимостей, о части из которых мы расскажем в этой статье.
Спецификация Bluetooth имеет не менее 4 разных уровней фрагментации, как показано на диаграмме, взятой из спецификации:
Обзор BlueBorne
Вектор атаки BlueBorne состоит из нескольких этапов. Во-первых, злоумышленник обнаруживает активные соединения Bluetooth вокруг. Устройства могут быть идентифицированы, даже не находясь в режиме «обнаружения». Затем злоумышленник получает MAC-адреса уязвимых устройств. «Прощупав» устройство, злоумышленник определяет, какую операционную систему использует его жертва, и настраивает соответствующим образом эксплойт. Затем используя уязвимость в реализации протокола Bluetooth на соответствующей платформе, злоумышленник получает доступ, необходимый для достижения его злонамеренной цели. На этом этапе хакер может выбрать атаку «Man-in-The-Middle», «прослушивать» устройство или получить полный контроль с целью использования его в широком круге кибер-атак, таких как ботнет WireX.
Атака BlueBorne на Android
Как только злоумышленник определил, что его цель использует операционную систему Android, он может использовать четыре уязвимости, обнаруженные для этих устройств, или атаку Man-in-The-Middle.
Ниже приведена краткая демонстрация того, как с помощью BlueBorne злоумышленник может взять под свой контроль Android-устройство:
Уязвимость в Android, которая может привести к утечке информации (CVE-2017-0785
Первая уязвимость в Android раскрывает ценную информацию, которая помогает злоумышленнику использовать одну из уязвимостей удаленного выполнения кода, описанную далее. Уязвимость обнаружена в реализации SDP (Service Discovery Protocol), который позволяет устройству идентифицировать другие Bluetooth-девайсы вокруг него. Недостаток позволяет злоумышленнику отправлять набор запросов на сервер, заставляя его раскрывать бит памяти в ответ. Эта информация впоследствии может использоваться злоумышленником для преодоления мер безопасности и захвата контроля над устройством. Это также позволяет злоумышленнику получить ключи шифрования с целевого устройства и подслушивать Bluetooth-сообщения.
Уязвимость удаленного выполнения кода №1 (CVE-2017-0781)
Эта уязвимость находится в службе Bluetooth Network Encapsulation Protocol (BNEP). BNEP позволяет использовать Интернет через Bluetooth, превращая мобильный телефон с модемом в маршрутизатор, точку доступа в Интернет. Из-за недостатка в службе BNEP хакер может вызвать нарушение целостности информации в памяти, что позволит ему запускать код на устройстве. Из-за отсутствия надлежащей проверки авторизации запуск этой уязвимости не требует какого-либо взаимодействия с пользователем, поэтому он не узнает об атаке.
Уязвимость удаленного выполнения кода №2 (CVE-2017-0782)
Эта уязвимость похожа на предыдущую, но находится на более высоком уровне службы BNEP — профиле персональной сети (Personal Area Networking, PAN), который отвечает за установление сетевого соединения на основе IP между двумя устройствами. При этой атаке нарушение целостности информации в памяти также может быть использовано злоумышленником для получения полного контроля над зараженным устройством.
Man-in-The-Middle (CVE-2017-0783)
Атаки Man-in-The-Middle (MiTM) позволяют злоумышленнику перехватывать и изменять данные, поступающие на целевое устройство или с него. Чтобы реализовать атаку MiTM с использованием Wi-Fi, злоумышленнику потребуется специальное оборудование и запрос соединения целевого устройства с открытой WiFi-сетью. Уязвимость существует в PAN-профиле Bluetooth-стека и позволяет злоумышленнику создавать вредоносный сетевой интерфейс на устройстве жертвы, перенастраивать IP-маршрутизацию и принудительно передавать все сообщения через вредоносный сетевой интерфейс. Атака в очередной раз не требует взаимодействия с пользователем или какой-либо аутентификации, что делает её практически незаметной.
Атака BlueBorne на Windows
Мы обнаружили уязвимость в Windows, которая позволяет злоумышленнику провести атаку Man-in-The-Middle. Ниже краткая демонстрация этого:
Man-in-The-Middle №2 (CVE-2017-8628)
Эта уязвимость идентична той, которая обнаружена в операционной системе Android, и влияет на обе системы, поскольку они используют одни и те же принципы в реализации некоторых протоколов Bluetooth.
Атака BlueBorne на Linux
Armis раскрыла две уязвимости в операционной системе Linux, которые позволяют злоумышленникам полностью контролировать зараженные устройства. Первая из них — утечка информации, которая может помочь злоумышленнику определить точную версию, используемую целевым устройством, и соответствующим образом настроить его эксплойт. Вторая — переполнение стека, которое может привести к полному контролю над устройством.
Вот краткое описание того, как с помощью BlueBorne хакер может взять под контроль Linux-устройство:
Утечка информации (CVE-2017-1000250)
Подобно уязвимости утечки информации в Android, эта уязвимость находится на сервере SDP, который отвечает за одну из важнейших особенностей Bluetooth — автоматическое подключение Bluetooth-устройств к службам, предоставляемым другими устройствами. Недостаток в SDP позволяет злоумышленнику отправлять набор запросов на сервер, заставляя его раскрывать бит памяти в ответ. Это может использоваться злоумышленником для получения конфиденциальных данных из процедур Bluetooth, которые могут содержать ключи шифрования.
Переполнение стека в BlueZ (CVE-2017-1000251)
Эта уязвимость была обнаружена в стеке Bluetooth Linux-ядра. Внутренний дефект в L2CAP (Logical link control and adaptation protocol), который используется для соединения между двумя устройствами, вызывает повреждение памяти, позволяющее выполнить код атакующего.
Атака BlueBorne на iOS
Armis раскрыл Apple сведения об этой атаке. Эксплойт был устранён в версии IOS 10 и версии Apple TV выше 7.2.2, однако эта уязвимость по-прежнему представляет большой риск для любого iOS-устройства до версии 10. Уязвимость может быть использована злоумышленником для выполнения кода с повышенными привилегиями.
Удаленное выполнение кода с помощью протокола Apple Low Energy Audio
Эта уязвимость была обнаружена в новом протоколе LEAP (Low energy audio protocol), разработанном Apple и работающим поверх Bluetooth. Протокол предназначен для потоковой передачи звука на периферийные устройства, например, гарнитуры или Siri Remote. Поскольку аудио-команды, отправленные с помощью LEAP, проверены не должным образом, злоумышленник может использовать повреждение памяти, чтобы получить полный контроль над устройством.
Как защититься от BlueBorne?
Уязвимости, которые могут распространяться по воздуху и между устройствами, представляют огромную угрозу для любой организации или отдельного лица. Существующие меры безопасности, включая защиту конечных точек, брандмауэры и решение сетевой безопасности, не предназначены для идентификации таких типов атак и связанных с ними уязвимостей. Их основная задача — блокировать атаки, которые могут распространяться через IP-соединения.
В ядре Linux проблема присутствует в коде функции l2cap_parse_conf_rsp, присутствующей начиная с ядра 3.3 (октябрь 2011 г.). Проблема была устранена 9 сентября. В ядрах Linux со включенной защитой от переполнения стека (CONFIG_CC_STACKPROTECTOR=y) уязвимость приводит только к краху ядра. Подобная защита по умолчанию включена в ядрах RHEL, CentOS, Fedora, Ubuntu и большинства стационарных дистрибутивов Linux. Поэтому в обычных дистрибутивах возможен лишь вызов краха, а основная опасность угрожает мобильным Linux-платформам, таким как Tizen.
Пользователи Android должны дождаться исправлений безопасности для своих устройств, так как это зависит от производителя конкретного устройства. Пока можно установить приложение «BlueBorne Vulnerability Scanner» (созданное командой Armis) из Google Play Store, чтобы проверить, уязвимы ли ваши устройства для атаки BlueBorne или нет.
«Компания Microsoft выпустила обновления для системы безопасности в июле. Клиенты, у которых включен Центр обновления Windows и применены обновления безопасности, были защищены автоматически. Мы выпустили обновление как можно скорее, но как ответственный отраслевой партнер, не раскрывали информацию, пока другие производители не разработали патчи», — отметил представитель Microsoft.
Всем пользователям до установки обновлений рекомендуется отключить по умолчанию Bluetooth и включать его только при необходимости.
Полные технические подробности с анализом кода можно узнать из Technical White Paper on BlueBorne.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Используете ли вы Bluetooth и как часто?
39.68% Постоянно включен на мобильном устройстве375
8.25% Включаю для передачи данных хотя бы раз в неделю78
28.68% Очень редко271
23.39% Не использую вовсе221
Проголосовали 945 пользователей. Воздержались 50 пользователей.