По сравнению с позиционированием при помощи сотовых сетей или GPS использование Bluetooth метод имеет точность вплоть до нескольких сантиметров и идеально подходит для использования внутри помещений. Стандартная система позиционирования состоит из распределённых по помещению Bluetooth-маячков, которые с некоторой периодичностью рассылают так называемые рекламные (advertising) пакеты. Смартфон, анализируя содержимое принимаемых пакетов и мощность сигнала от нескольких маячков, вычисляет местоположение пользователя.
Описанная выше схема не несет прямой угрозы раскрытия точного местоположения пользователя, так как все маячки работают в режиме передатчика, и смартфон не обменивается с ними данными. А при отсутствии подключения к интернету смартфон не сможет даже отправить данные на сервера Apple/Google, чтобы сообщить о получении рекламных пакетов.
Давайте попробуем инвертировать данную схему — теперь пользователь будет иметь при себе специальный маячок, рассылающий пакеты, которые будут улавливаться приемниками в помещении. Анализируя данные с нескольких приемников, можно вычислить местоположение пользователя в помещении или хотя бы определить его присутствие. Использование таких систем, например, предлагается для контроля за пожилыми людьми и лицами с ограниченными возможностями [1] (см. рис. 1).
Но ведь обычные люди и не ходят с прикрепленными Bluetooth-маячками, следовательно, угроза несанкционированного отслеживания отсутствует? Не совсем. Упомянутая выше работа уже указывает, что в качестве маячка подходят обычные спортивные браслеты (MiBand, Fitbit и др.).
Данные устройства работают согласно стандарту Bluetooth Low Energy (BLE). Зачастую смарт-устройства имеют ограниченный набор возможностей для управления, поэтому они постоянно находятся во включенном состоянии, рассылая рекламные пакеты, которые позволяют другим устройствам обнаружить их и инициировать соединение. Чтобы устройство могло отправить запрос на подключение, рекламные сообщения содержат поле MAC-адреса отправителя. Для исключения отслеживания пользователя носимого устройства через захват пакетов с определённым адресом, стандарт BLE позволяет указывать в рекламных пакетах не публичный статический MAC-адрес устройства, а периодически обновляющийся случайно сгенерированный.
Отслеживание по метаданным в рекламных кадрах
Однако исследование [2] показывает, что, во-первых, рассылка рекламных пакетов не ограничивается только смарт-устройствами, рекламные пакеты рассылают все современные устройства, если на них включен Bluetooth. Во-вторых, несмотря на рандомизацию адреса большинство устройств можно отслеживать по содержимому других полей рассылаемых рекламных пакетов.
В своей работе исследовали разработали алгоритм, позволяющий непрерывно отслеживать устройства, рассылающее рекламные пакеты BLE, даже если они используют рандомизацию адреса. При этом не требуется никакого взаимодействия с отслеживаемым устройством, достаточно пассивного прослушивания Bluetooth-каналов и захвата рассылаемых им рекламных пакетов.
Структура рекламного пакета Bluetooth Low Energy
Рассмотрим, как устроен рекламный пакет (рис. 2). По аналогии с пакетами других сетевых протоколов этот так же состоит из преамбулы, заголовка, полезной нагрузки и контрольной суммы.
Заголовок определяет тип пакета, и, так как исследователи рассматривают только пакеты одного типа, все заголовки имеют сходное содержание и не позволяют различать устройства. Анализу исследователей подверглась часть пакета, содержащая полезную нагрузку (PDU Payload), первые шесть байт которой содержат рекламируемый адрес устройства AdvA. Если флаг TxAdd в заголовке пакета равен единице, адрес AdvA является случайно сгенерированным, в ином случае устройство транслирует свой публичный статический адрес.
Остальные поля могут содержать данные, добавляемые производителями устройств для реализации собственных протоколов инициализации соединения и обмена данными поверх процедур протокола Bluetooth. Именно содержимое этих полей и является объектом исследования авторов.
Алгоритм мониторинга изменяющегося адреса
Для захвата пакетов исследователи используют SDR (software-defined radio, программно-определяемое радио), прослушивающее один из Bluetooth-каналов, далее захваченные пакеты декодируют в ASCII-код и анализируют в соответствии со структурой пакета (рис. 2).
Подготовительная часть работы алгоритма состоит из сбора массива захваченных в течение продолжительного времени пакетов, рассылаемых определенной категорией устройств. Категория устройства — несколько абстрактное понятие, можно сказать, что она определяется производителем устройства, установленной ОС, приложениями и т.п. Анализ массива данных позволяет выделить так называемые токены — сохраняющиеся в течение некоторого времени последовательности байт внутри рекламного пакета, позволяющие однозначно определить отправителя данного пакета. Одним из токенов является рекламируемый MAC-адрес устройства, хотя он может быть подвержен рандомизации через определенные промежутки времени. Поэтому задача состоит в поиске токенов, изменение которых происходит не синхронно, и «время жизни» которых пересекается.
После нахождения токенов внутри рекламных пакетов определенной категории устройств можно перейти к отслеживанию конкретного устройства. Теперь пакеты захватываются SDR в режиме реального времени и декодированные подаются на вход алгоритму, инициализированному с исходным адресом отслеживаемого устройства.
Алгоритм выделяет необходимые токены и рекламируемый MAC-адрес из содержимого пакета, если рекламируемый адрес не изменился, но обновились или добавились токены, то необходимо сохранить их для дальнейшего сравнения с новыми пакетами. Если хоты бы один токен сохранился, но изменились остальные и/или адрес устройства, то необходимо обновить соответствующие данные для последующего сравнения. Остановка отслеживания устройства может произойти, если все токены, включая MAC-адрес устройства, обновятся одновременно.
Обнаруженные токены и прочие уязвимости
Рассматриваемые в исследовании устройства по-разному используют рассылку рекламных пакетов, добавляя различные данные внутри полезной нагрузки:
Устройства под управлением Windows 10 рассылают пакеты вне зависимости от производителя, при этом 23 байта из поля Manufacturer data (рис. 2), обновляющиеся примерно раз в час, являются, предположительно, уникальными для каждого устройства в текущий момент времени, поэтому их можно использовать в качестве токена.
macOS и iOS-устройства рассылают рекламные пакеты для работы функции Handoff, которая позволяет бесшовно переключаться между устройствами экосистемы. Токенами в данном случае выступают метаданные Apple с пометками handoff и nearby внутри полезной нагрузки.
Протестированные смартфоны на ОС Android хотя и рассылают рекламные пакеты, но не включают туда никаких сторонних данных, что делает их невосприимчивыми к данному методу отслеживания.
Браслет Fitbit Charge отправляет рекламные пакеты при потере сигнала от смартфона для инициализации повторного соединения. Особенность работы данного устройства заключается в том, что несмотря на то, что флаг TxAdd в заголовке пакета равен единице, MAC-адрес устройства не изменялся со временем, даже после его сброса и повторной настройки, таким образом, в качестве токена с бесконечным временем жизни выступает сам адрес браслета.
Описанные выше устройства рассылают рекламные пакеты типа ADV_IND, ответить на которые может любое устройство. Но Microsoft Surface Pen при нажатии кнопки или отсоединении от магнитного крепления на корпусе отправляет рекламные пакеты типа ADV_DIRECT_IND, отвечать на которые может только устройство с указанным в пакете адресом. Интересно, что качестве целевого адреса стилус указывает статичный публичный адрес устройства Surface, что приводит к его раскрытию и возможности отслеживания устройства другими способами.
Демонстрация работы алгоритма и результаты
Иллюстрация работы алгоритма по отслеживанию адреса устройства представлена на рис. 3, где показано, как во времени изменяются значения полей, используемых в качестве токенов. Видно, что хотя бы один из токенов сохраняет свое значение несмотря на смену адреса, что и позволяет определить новый адрес устройства.
Результаты исследователей можно подытожить в следующей таблице.
Категория устройства |
Среднее время жизни случайного адреса |
Максимальное время отслеживания |
Способ отслеживания адреса |
Windows 10 |
16 мин |
Не ограничено |
Предложенный алгоритм |
macOS, iOS |
20 мин |
53 мин, возможно, не ограничено |
Предложенный алгоритм |
Android |
15–45 мин |
Уязвимости отсутствуют |
|
Fitbit Charge |
Адрес не изменяется |
Не ограничено |
— |
Microsoft Surface |
16 мин |
Не ограничено |
Утечка адреса через Microsoft Surface Pen |
Интересно, что данное исследование проводилось до начала пандемии COVID-19, когда Apple в сотрудничестве с Google создали фреймворк для отслеживания контактов с заболевшими людьми. Принцип работы отслеживания как раз полагается на рассылку рекламных сообщений BLE с дополнительными данными о статусе пользователя. Исследователи безопасности обнаружили [3], что метаданные в пакетах обновляются несинхронно с адресом устройства, что позволяет использовать их в качестве токена для вышеописанного алгоритма. В новости указано, что уязвимости подвержена только половина протестированных смартфонов.
Отслеживание по радиочастотному отпечатку
Однако, даже если уязвимости подобные описанным выше будут исправлены, группа исследователей из Калифорнийского университета в Сан-Диего (University of California, San Diego) недавно описала новый метод отслеживания BLE-устройств [4]. Новый подход не требует анализа содержимого пакетов, а полагается лишь на анализ физических особенностей сигнала, излучаемых Bluetooth-радиомодулем отслеживаемого устройства.
Механизм отслеживания и результаты
Характеристики каждого радиомодуля уникальны из-за возникающих при его производстве дефектов. Не углубляясь в подробности работы физического уровня стандарта BLE, можно сказать, что дефекты вызывают различного рода искажения в передаваемом радиосигнале, это позволяет создать для каждого устройства уникальный радиочастотный отпечаток, описывающий искажения конкретного устройства.
Исследователи приводят следующий гипотетический сценарий отслеживания. Злоумышленник, находясь рядом с целевым устройством, обрабатывает исходящие от него BLE-пакеты, чтобы собрать достаточное количество данных для создания радиочастотного отпечатка. После создания отпечатка злоумышленник помещает прослушивающее SDR около дома жертвы, что позволит определять, находится жертва в помещении или нет. Результаты экспериментального воспроизведения описанного сценария показаны на рис. 4, в течение часа произошло только одно ложное срабатывание продолжительностью 50 секунд при условии, что общее количество детектируемых устройств в течение эксперимента около 30 штук.
Нюансы использования радиочастотного отпечатка
К недостаткам данного метода можно отнести, что он требует более глубоких знаний в обработке сигналов при помощи SDR, а точность зависит от качества исполнения SDR — дешевые модели требуют калибровки. Качество создания и распознавания отпечатка значительно зависит от мощности сигнала, в то время как разные устройства излучают сигнал с различной мощностью и значительное влияние на распространение сигнала оказывает окружающее пространство. Данная методика позволяет легко отличать отпечатки чипов разных производителей, но, если необходимо, например, обнаружить сигнал конкретного iPhone среди других смартфонов этой же модели, то это будет сделать гораздо сложнее. Также на радиочастотном отпечатке сказывается температура устройства, поэтому при активной работе отпечаток может отличаться от измеренного в состоянии покоя. Исследователи утверждают, что по результатам экспериментов, около 40% существующих устройств могут быть успешно идентифицированы по их радиочастотному отпечатку.
Актуальность описанных уязвимостей и возможные способы защиты
Напоследок проверим актуальность описанных уязвимостей. Что касаемо отслеживания при помощи метаданных в рекламных пакетах, новость [6] сообщает, для Windows 10 уязвимость должны была быть исправлена вместе с выходом Windows 10 May Update (1903). В свежем препринте [7] работы, посвященной исследованию безопасности беспроводных протоколов Apple, от команды исследователей из Технического университета Дармштадта (Technical University of Darmstadt) указано, что уязвимость, позволяющая отслеживать устройства Apple по метаданным в рекламных пакетах, была исправлена в выпусках операционных систем iOS 13.4 и macOS 10.15.4. Однако не удалось обнаружить новостей про исправление уязвимостей связанных с отсутствием рандомизации рассылаемого MAC-адреса для устройств Fitbit, утечкой публичного MAC-адреса через Surface Pen и некорректной работой фреймворка для контроля контактов с заболевшими COVID-19. Также можно заметить что рынок носимых устройств не ограничивается браслетами от Fitbit, устройства других брендов тоже могут быть подвержены рассмотренным уязвимостям.
Отслеживание по радиочастотному отпечатку нельзя исправить при помощи программных патчей, так как отпечаток включает в себя исключительно физические особенности исполнения радиомодуля устройства. Для защиты исследователи предлагают добавить случайные колебания частоты осциллятора радиомодуля, что усложнит создание отпечатка и его детектирование. Хотя некоторое программное решение авторы все же предлагают: на устройстве можно запускать фоновой процесс, создающий меняющуюся со временем нагрузку на ЦП, что будет приводить к изменению температуры устройства и впоследствии его отпечатка. Но такой подход будет сказываться на производительности устройства и времени его автономной работы. Единственным надежным способом будет полное отключение Bluetooth, а еще лучше — полное выключение устройства.
Таким образом, большое количество Bluetooth-устройств возможно потенциально использовать для отслеживания их владельцев. При этом точность определения местоположения человека зависит от количества прослушивающих устройств, ее возможно варьировать от простого определения нахождения нужного человека в помещении, как в работе про отслеживание при помощи цифрового отпечатка, до точного позиционирования в помещении, описанного во вступительной части.
Список использованных материалов
Bai, Lu & Ciravegna, Fabio & Bond, Raymond & Mulvenna, Maurice. (2020). A Low Cost Indoor Positioning System Using Bluetooth Low Energy. IEEE Access. PP. 1-1. 10.1109/ACCESS.2020.3012342. (ResearchGate)
Becker, Johannes & Li, David & Starobinski, David. (2019). Tracking Anonymized Bluetooth Devices. Proceedings on Privacy Enhancing Technologies. 2019. 50-65. 10.2478/popets-2019-0036. (ResearchGate)
https://www.theregister.com/2021/10/22/bluetooth_tracking_device/
https://www.usenix.org/conference/usenixsecurity21/presentation/stute
Комментарии (8)
ifap
05.12.2021 02:12+2Зачастую смарт-устройства имеют ограниченный набор возможностей для управления
В этом корень зла, нельзя сказать своему устройству: пока не получишь запрос на подключение от известного тебе %sayname%, игнорируй все входящие. Нет, не надо самому его искать, когда будет надо — оно постучится.
DungeonLords
05.12.2021 07:03+1"Bluetooth метод имеет точность вплоть до нескольких сантиметров и идеально подходит для использования внутри помещений."
Лично испытывал технологию Ble beacon. Погрешность порядка 1,5 м.
jaha33
06.12.2021 15:12В крайних спецификациях ввели позиционирование. Если железка сделана с нужной конфигурацией антенны и поддержкой AOA, то точность будет хорошая как по определению дальности, так и направлению сигнала
Phoenix_Immortal
06.12.2021 14:13Блин, а вот самое интересно для меня, что привлекло в статье и нет оказывается.
Тут отслеживание в плане идентификации, а мне интересно за позиционирование именно в пространстве... А то обычные "палочки" Так себе показатель удалённости, и вот как получить эти самые "точность до сантиметров".
Если кто в курсе, буду благодарен даже за ссылки. Гугл в своё время не помог.
DistortNeo
Пожалуйста, никогда не переводите слово «advertising» как «рекламный». В русском и английском нет прямого соответствия между словами.
Правильный перевод в данном случае — широковещательные пакеты. Да, пусть он не идеально точный, зато понятный широкой аудитории. Ну а если хочется точности, то просто приводите термин без перевода.
yar_ok Автор
Согласен с вами, что соответствия прямого действительно нет, и я долго колебался при написании. Решил все-таки пойти таким путем, зная, что не всем понравится (мне тоже не очень нравится).
Спасибо за совет, постараюсь в дальнейшем придерживаться устоявшейся терминологии.