Хабрахабр

Ну Apple, BLEee

Но исследователи из Hexway выяснили, что стандартный и активно используемый механизм Bluetooth LE (BLE) позволяет узнать довольно много о твоем айфончике. Компания Apple активно внедряет в массы идею о том, что теперь-то с приватностью данных пользователей их продукции всё в порядке.

Если Bluetooth включен, то любой человек в радиусе действия сигнала может узнать:

  • состояние устройства;
  • информацию о заряде;
  • имя устройства;
  • состояние Wi-Fi;
  • доступность буфера;
  • версию iOS;
  • номер телефона.

Ее суть заключается в создании экосистемы Apple устройств, обменивающихся друг с другом информацией по BLE для возможности отслеживания украденных и потерянных устройств без использования GPS и мобильных каналов связи даже в выключенном состоянии. Скорее всего, это связано с новой функцией «Find my», анонсированной в этом году (Apple's 'Find My' Feature Uses Some Very Clever Cryptography | WIRED). Хотя и было заявлено, что

...it built the feature on a unique encryption system carefully designed to prevent exactly that sort of tracking—even by Apple itself
Перевод: [Find my] использует уникальную криптосистему, разработанную для предотвращения отслеживания [другими людьми], в том числе и Apple.

Примеры актуальных векторов атак

AirDrop

При каждом «расшаривании» устройство посылает хеш твоего телефона в SHA256. Эта технология позволяет обмениваться файлами между устройствами Apple без интернет-соединения. Профит для магазинов более чем очевиден: рассылка спама всем мимо проходящим. Таким образом, создав базу номеров телефонов (хеш: номер телефона), можно заняться вполне эффективной ловлей телефонов в многолюдных местах… и отправлять их владельцам персонализированные сообщения через iMessage (имя владельца можно получить через TrueCaller или из имени устройства).

Получение Wi-Fi-паролей

Если получить по 3 байта хешей одного сотрудника и при попытке подключения к корпоративной сети сделать бродкаст с полученными данными, то, возможно, другой сотрудник окажется очень добрым и, увидев знакомое имя в запросе, поделится с тобой паролем. При подключении к Wi-Fi-сети Apple устройство отправляет широковещательный запрос, и «дружественное» Apple устройство может помочь тебе получить доступ к данной сети, если этого захочет пользователь.

Как это работает

Анализ BLE-пакетов

Apple использует ADV_IND-сообщения для отправки статуса устройства. Модифицировав скрипты из пакета py-bluetooth-utils, можно просмотреть сниффер BLE-трафика.

Структура advertise-пакета

Nearby-сообщения

Пример типов сообщений:
0x05 — Airdrop
0x07 — Airpods
0x10 — Nearby
0x0b — Watch Connection
0x0c — Handoff
0x0d — Wi-Fi Settings
0x0e — Hotspot
0x0f — Wi-Fi Join Network

Также из Nearby-пакетов можно получить статусы:
0x0b — Home screen
0x1c — Home screen
0x1b — Home screen
0x11 — Home screen
0x03 — Off
0x18 — Off
0x09 — Off
0x13 — Off
0x0a — Off
0x1a — Off
0x01 — Off
0x07 — Lock screen
0x17 — Lock screen
0x0e — Calling
0x5b — Home screen
0x5a — Off

В результате можно создать несложный анализатор BLE-пакетов:

Wi-Fi

При попытке подключения к Wi-Fi с устройства A рассылается пакет следующей структуры, содержащий первые три байта от SHA256-хешей AppleID (5-7 байты), номера телефона (8-11 байты), email (12-14 байты):

При получении устройством B пакета с совпадающими у него хешами контактов устройство B предложит пароль подключения к сети устройству A. Предположительно, Apple устройства хешируют все контакты и сравнивают с полученными в advertise-пакете.

Проверить корректность номеров можно двумя способами: Если сгенерировать таблицу хешей номеров телефона для конкретного региона (около нескольких миллионов), то на первые 3 байта хеша можно получить коллизию порядка нескольких десятков номеров на хеш.

  1. Часть номеров можно исключить, проверив их через HLR (HLR Lookup — Front Page — Index).
  2. Так как номер должен быть привязан к AppleID, то проверить можно через iMessage.

В любом случае, полученный набор номеров позволит достаточно эффективно деанонимизировать владельца (к примеру, далее применив методы социнженерии).

AirDrop

Apple AirDrop имеет три настройки приватности:

  1. Receiving Off (Отключено).
  2. Contacts Only (Только контакты).
  3. Everyone (Любой).

При запуске AirDrop рассылается пакет следующей структуры, содержащий по два байта хешей AppleID, email и номера телефона:

При этом AirDrop используется только для инициации передачи, для самой же передачи данных используется peer2peer-соединение по Wi-Fi (AWDL — Apple Wireless Direct Link).

В этом сообщении содержится полный SHA256-хеш отправителя. Во время аутентификации отправитель отсылает идентификационные данные sender's record data для проверки настроек приватности получателем. Таким образом, злоумышленник может отвечать на все чужие AirDrop BLE-запросы, получая полные хеши номеров.

Схема работы AirDrop:

Резюмируя

На данный момент сложно назвать это уязвимостью, скорее, плохо продуманной реализацией новой экосистемы Apple. Рассмотрена только часть утечек информации, которая возможна с использованием BLE. О чем в принципе они и сами заявили:

©
WIRED
Перевод: Apple предупредила, что на данный момент используется упрощенная версия Find My протокола и она подлежит доработке в будущих релизах ближе к концу года. Apple warns that it's still a somewhat simplified version of the Find My protocol, and that the system is still subject to change before it's actually released in MacOS Catalina and iOS 13 later this year.

При этом такое поведение свойственно iOS версий 10. На данный момент нет каких-либо способов предотвращения данных утечек информации, кроме как отключения Bluetooth. 1 и выше (включая iOS 13 beta). 3. Более старые устройства (до iPhone 6s) также используют данный функционал, но с ограниченным числом сообщений, возможно, для экономии заряда батареи.

Ссылки

Everyone knows What Happens on Your iPhone – hexway GitHub — hexway/apple_bleee: Apple BLE research
Apple bleee.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть