BlueBorne (BlueBorne)

Перейти к навигации Перейти к поиску

BlueBorne — общее название восьми опасных уязвимостей электронных устройств, работающих с различными имплементациями Bluetooth в Android, iOS, Windows и Linux.

По словам исследователей безопасности из компании Armis[1], обнаруживших уязвимости, проблемы BlueBorne невозможно обнаружить и исправить стандартными методами, а для эксплуатации багов злоумышленнику не требуется ни взаимодействие с пользователем, ни сопряжение с целевым устройством. Единственная необходимость — включённый Bluetooth на устройстве «жертвы». Уязвимости затрагивают практически все типы устройств, от смартфонов, ноутбуков и носимых гаджетов до IoT-девайсов и «умных» автомобилей.

Общий обзор

[править | править код]

Уязвимости обозначены следующими идентификаторами CVE:

  • CVE-2017-1000251[2] — RCE в ядре Linux;
  • CVE-2017-1000250[3] — Уязвимость утечки данных в стеке Bluetooth в Linux;
  • CVE-2017-0785[4] — Уязвимость утечки данных в Android;
  • CVE-2017-0781[5] — RCE в Android;
  • CVE-2017-0782[6] — RCE в Android;
  • CVE-2017-0783[7] — Логическая уязвимость в Android (Bluetooth Pineapple);
  • CVE-2017-8628[8] — Логическая уязвимость в Windows (Bluetooth Pineapple);
  • CVE-2017-14315[9] — RCE-уязвимость проприетарного протокола Apple Low Energy Audio Protocol.

Описанные уязвимости оцениваются как критические и позволяют выполнить на устройстве произвольный вредоносный код, получить полный контроль над устройством, осуществить атаку посредника (англ. Man in the middle (MITM)) и перехватить Bluetooth-соединение.

Уязвимые устройства

[править | править код]

Уязвимости содержатся в реализациях Bluetooth в Android, iOS, Windows и Linux. Apple, Google, Microsoft и сообщество Linux были проинформированы о данных проблемах. Корректирующие патчи недоступны для устаревших устройств, которые уже не поддерживаются производителем. Число таких устройств, по некоторым оценкам, составляет около 40 % или более двух миллиардов по всему миру.

Android

Все телефоны, планшеты и носимые устройства всех версий Android имеют четыре уязвимости, две из которых позволяют произвести удалённое исполнение кода (CVE-2017-0781[5] и CVE-2017-0782[6]), другие — утечку информации (CVE-2017-0785[4]) и атаку посредника (CVE-2017-0783[7]). Уязвимости BlueBorne не затрагивают Android-устройства, использующие технологию Bluetooth Low Energy.

Windows

Все версии Windows, начиная с Vista, имеют уязвимости «Bluetooth Pineapple», которая позволяет произвести атаку посредника (CVE-2017-8628[8]).

Linux

Все Linux-устройства, в том числе на Tizen OS, использующие технологию BlueZ, имеют уязвимости, допускающие утечку информации (CVE-2017-1000250[3]). Также Linux версий 2.6.32 до 4.14 уязвим для атаки, использующей удалённое исполнение кода (CVE-2017-1000251[2]).

iOS

Все iPhone, iPad и iPod touch версий iOS 9.3.5 и ниже, AppleTV версий 7.2.2 и ниже имеют уязвимость для удалённого исполнения кода (CVE-2017-14315[9]).

Amazon Echo and Google Home

Свыше 20 млн устройств Amazon Echo и Google Home, работающих под управлением ОС Android и Linux, уязвимы для атак с эксплуатацией набора уязвимостей BlueBorne. Исследователям удалось успешно проэксплуатировать уязвимости CVE-2017-1000251[2] и CVE-2017-1000250[3] в колонке Amazon Echo и CVE-2017-0785[4] в Google Home и получить контроль над виртуальным ассистентом. Хакеры могут перехватить управление уязвимыми гаджетами и использовать их для записи разговоров либо как отправную точку для других атак. Обе компании уже выпустили патчи, устраняющие проблему.

Технические особенности

[править | править код]

Подробная техническая информация об уязвимостях и эксплоиты, использующие некоторые из уязвимостей BlueBorne имеются в базах CVE, например Vulnerability Data Base[10], а также в репозитории Armis[11].

Атаки BlueBorne на Android

  • Уязвимость, которая может привести к утечке информации (CVE-2017-0785[4])

Уязвимость обнаружена в сервере SDP (Service Discovery Protocol), который позволяет устройству идентифицировать другие Bluetooth-девайсы вокруг него. Недостаток позволяет атакующему отправлять набор запросов на сервер, заставляя его раскрывать бит памяти в ответ. Эта информация может использоваться для преодоления мер защиты и захвата контроля над устройством. Эта уязвимость также позволяет злоумышленнику получить ключи шифрования с целевого устройства и подслушивать соединение Bluetooth.

  • Уязвимость удалённого выполнения кода № 1 (CVE-2017-0781[5])

Уязвимость присутствует в службе протокола BNEP (Bluetooth Network Encapsulation Protocol), который позволяет обмениваться Интернетом через соединение Bluetooth (модем). Из-за недостатка в службе BNEP хакер может вызвать повреждение оперативной памяти, которое позволяет ему запускать код на устройстве, предоставляя ему полный контроль. Из-за отсутствия правильных проверок авторизации запуск этой уязвимости не требует взаимодействия с пользователем, проверки подлинности или сопряжения, поэтому целевой пользователь не знает о текущей атаке.

  • Уязвимость удалённого выполнения кода № 2 (CVE-2017-0782[6])

Уязвимость находится на более высоком уровне службы BNEP — личном профиле Area Networking (PAN), который отвечает за установление сетевого соединения на основе IP между двумя устройствами. В этом случае повреждение памяти больше, но все ещё может использоваться злоумышленником, чтобы получить полный контроль над заражённым устройством. Эта уязвимость также может быть вызвана без взаимодействия с пользователем, проверки подлинности или сопряжения.

  • Уязвимость Man-in-The-Middle (CVE-2017-0783[7])

Атаки этого типа позволяют злоумышленнику перехват и вмешательство во все данные, входящие или исходящие от целевого устройства. В Bluetooth злоумышленник может активно вовлекать свою цель, используя любое устройство с возможностями Bluetooth. Уязвимость находится в PAN-профиле стека Bluetooth и позволяет злоумышленнику создать вредоносный сетевой интерфейс на устройстве жертвы, заново настроить IP-маршрутизацию и заставить устройство передавать все сообщения через вредоносный сетевой интерфейс. Эта атака не требует взаимодействия с пользователем, проверки подлинности или сопряжения, что делает её невидимой.

Атака BlueBorne на Windows

  • Уязвимость Man-in-The-Middle № 2 (CVE-2017-8628[8])

Эта уязвимость идентична найденной в операционной системе Android, и влияет на обе системы, так как они разделяют одни и те же принципы реализации протокола Bluetooth. Уязвимость находится в стеке Bluetooth и позволяет злоумышленнику создать вредоносный сетевой интерфейс на устройстве жертвы, заново настроить IP-маршрутизацию и заставить устройство передавать через него все сообщения. Эта атака не требует взаимодействия с пользователем, проверки подлинности или сопряжения, что делает её практически невидимой.

Атаки BlueBorne на Linux

  • Уязвимость, которая может привести к утечке информации (CVE-2017-1000250[3])

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

  • Переполнение стека в BlueZ (CVE-2017-1000251[2])

Эта уязвимость была найдена в Bluetooth-стеке ядра Linux, которое находится в самом ядре операционной системы. Внутренняя ошибка в протоколе L2CAP (Logical Link Control and Adaptation Protocol), который используется для подключения между двумя устройствами, приводит к повреждению памяти. Злоумышленник может использовать это повреждение памяти для получения полного контроля над устройством.

Атака BlueBorne на iOS

  • Удалённое выполнение кода с помощью протокола Apple Low Energy Audio (CVE-2017-14315[9])

Эта уязвимость была обнаружена в новом протоколе LEAP (Low energy audio protocol), разработанном Apple и работающим поверх Bluetooth. Протокол предназначен для потоковой передачи аудио на периферийные устройства. Из-за недостатка в реализации протокола, большая аудиокоманда может быть отправлена на целевое устройство и привести к повреждению памяти. Так как аудиокоманды, отправленные через LEAP должным образом не подтверждаются, злоумышленник может использовать повреждение памяти, чтобы получить полный контроль над устройством.

Меры безопасности

[править | править код]

В качестве популярной меры безопасности рекомендовано обновление для устройств, для которых были выпущены патчи, устраняющие эти уязвимости.

Для проверки, имеет ли Android-устройство эту уязвимость, было выпущено специальное приложение Armis BlueBorne Scanner App[12]. Версии Android 6.0 и выше получили патчи, рекомендуется обновление устройств до операционной системы последней доступной версии. Пользователи Android должны дождаться исправлений безопасности для своих устройств, так как это зависит от производителя конкретного устройства.

В ядре Linux проблема была устранена 9 сентября 2017. В ядрах Linux со включённой защитой от переполнения стека (CONFIG_CC_STACKPROTECTOR=y) уязвимость приводит только к краху ядра. Подобная защита по умолчанию включена в ядрах RHEL, CentOS, Fedora, Ubuntu и большинства стационарных дистрибутивов Linux. Поэтому в обычных дистрибутивах возможен лишь вызов краха, а основная опасность угрожает мобильным Linux-платформам, таким как Tizen.

Компания Microsoft выпустила обновления для системы безопасности поддерживаемых версий (начиная с Windows 7) в июле. Клиенты, у которых включён Центр обновления Windows и применены обновления безопасности, были защищены автоматически.

Уязвимости в устройствах Apple были устранены в версиях iOS 10 и выше. Рекомендуется обновление устройств до последних доступных версий iOS и tvOS.

Рекомендовано полное отключение Bluetooth до тех пор, пока не будет установлен патч для соответствующего устройства. Использование Bluetooth только при необходимости позволит существенно сузить возможности хакеров для взлома.

Примечания

[править | править код]
  1. Armis. Дата обращения: 27 ноября 2017. Архивировано 18 мая 2018 года.
  2. 1 2 3 4 CVE-2017-1000251
  3. 1 2 3 4 CVE-2017-1000250
  4. 1 2 3 4 CVE-2017-0785
  5. 1 2 3 CVE-2017-0781
  6. 1 2 3 CVE-2017-0782
  7. 1 2 3 CVE-2017-0783
  8. 1 2 3 CVE-2017-8628
  9. 1 2 3 CVE-2017-14315
  10. Vulners.com. Дата обращения: 27 ноября 2017. Архивировано 31 марта 2018 года.
  11. Github.com. Дата обращения: 8 декабря 2017. Архивировано 25 мая 2018 года.
  12. armis.blueborne_detector. Дата обращения: 7 декабря 2017. Архивировано 17 января 2018 года.