- PVSM.RU - https://www.pvsm.ru -
Apple Wireless Direct Link (AWDL) — ключевой протокол в экосистеме Apple, его использует более миллиарда устройств iOS и macOS для связи между собой. Это запатентованное расширение стандарта IEEE 802.11 (Wi-Fi), которое интегрируется с Bluetooth Low Energy (BLE) и обеспечивает работу таких сервисов, как Apple AirDrop (технология передачи файлов по Wi-Fi и Bluetooth).
14 августа 2019 года на конференции USENIX Security 2019 раскрыт ряд серьёзных уязвимостей [1] в этом протоколе, которые допускают атаки MiTM с незаметным изменением передаваемых файлов, атаки типа «отказ в обслуживании» с прерыванием связи, а также утечки конфиденциальных данных, которые подрывают рандомизацию MAC-адресов, позволяя идентифицировать пользователей и осуществлять долгосрочное отслеживание (см. ниже).
В связи с этим немецкие разработчики Милан Стют и Александр Хейнрих разработали OpenDrop [2] — свободную и более безопасную альтернативу проприетарной технологии от Apple.
OpenDrop — консольная утилита, которая позволяет обмениваться файлами между устройствами непосредственно по WiFi. Уникальная особенность заключается в том, что она совместима с проприетарным протоколом Apple AirDrop для устройств Apple под управлением iOS и macOS. В настоящее время (и, вероятно, в обозримом будущем) OpenDrop поддерживает отправку файлов только на устройства Apple, свободные для обнаружения всеми, поскольку режим по умолчанию «только для контактов» (contacts only) требует сертификатов, подписанных Apple [3].
Разработчики оговариваются, что OpenDrop представляет собой экспериментальное программное обеспечение, созданное в рамках проекта Open Wireless Link по реверс-инжинирингу запатентованного протокола Apple. Поэтому он не поддерживает все функции AirDrop и может быть несовместим с будущими версиями AirDrop. OpenDrop не связан и не одобрен к использованию компанией Apple. Соответственно, опубликованный код можно использовать на свой страх и риск.
Технология AirDrop активно используется для распространение информации на акциях массового протеста в Гонконге
Для совместимости с Apple AirDrop требуется, чтобы целевая платформа поддерживала специфический канальный уровень Wi-Fi. Кроме того, требуется Python версии 3.6 или выше, а также несколько библиотек.
AirDrop работает исключительно через AWDL, он поддерживается только на macOS или в системах Linux со свободной реализацией AWDL, такой как OWL [6].
OpenDrop использует последние версии OpenSSL [7] и libarchive [8]. Поскольку macOS поставляется со старыми версиями этих библиотек, для работы нужно установить более новые версии, например, через Homebrew [9]. В любом случае, нужно установить две переменные среды: LIBARCHIVE
и LIBCRYPTO
, соответственно.
Отправка файла представляет собой двухэтапную процедуру. Сначала вы обнаруживаете устройства в непосредственной близости с помощью команды find
. Остановите процесс, как только нашли устройство для приёма файлов.
$ opendrop find
Looking for receivers. Press enter to stop ...
Found index 0 ID eccb2f2dcfe7 name John’s iPhone
Found index 1 ID e63138ac6ba8 name Jane’s MacBook Pro
Затем можно отправить файл с помощью send
.
$ opendrop send -r 0 -f /path/to/some/file
Asking receiver to accept ...
Receiver accepted
Uploading file ...
Uploading has been successful
Вместо индекса подходят идентификатор или имя. OpenDrop попытается интерпретировать входные данные в следующем порядке: сначала как индекс, затем как ID, и, наконец, как имя.
Получение файлов гораздо проще: достаточно запустить команду opendrop receive
. OpenDrop будет автоматически принимать все входящие файлы и помещать их в текущий каталог.
Конечно, у OpenDrop есть ряд ограничений. Например, он не может самостоятельно активировать приёмники macOS/iOS через Bluetooth Low Energy: устройства Apple запускают свой AWDL-интерфейс и сервер AirDrop только после получения специфического сообщения через Bluetooth LE. Таким образом, приёмники Apple AirDrop могут оказаться не обнаруженными, даже если они доступны для всех. В данный момент также не реализована одноранговая аутентификация, как в AirDrop. В частности, OpenDrop не проверяет, что сертификат TLS подписан корневым сертификатом Apple и что запись проверки идентификатора Apple ID правильна. Кроме того, OpenDrop автоматически принимает любой файл, который ему присылают, из-за отсутствия состояния соединения. Наконец, Apple AirDrop поддерживает отправку нескольких файлов одновременно, а OpenDrop может отправлять файлы только по одному.
Возможно, при содействии сообщества некоторые из этих ограничений можно преодолеть. Внести свой вклад предлагают в репозитории GitHub [2].
На конференции USENIX Security 2019 была опубликована статья [1] с первым анализом безопасности и конфиденциальности AWDL и его интеграции с BLE. Среди авторов статьи те же Милан Стют и Александр Хейнрих.
Они раскрыли несколько уязвимостей безопасности и нарушений конфиденциальности, начиная от недостатков дизайна и заканчивая ошибками в реализации. Как было сказано выше, эти ошибки приводят к атакам типа MiTM, DoS и утечкам конфиденциальности. Классификаторы уязвимостей: CVE-2019-8567, CVE-2019-8620, CVE-2019-8612 и CVE-2018-4368 (см. описание на иллюстрации ниже). Некоторые из них закрыты в последних версиях операционных систем от Apple (iOS 12.2 и iOS 13 beta).
Уязвимости затрагивают механизм обнаружения BLE AirDrop, синхронизацию AWDL, дизайн пользовательского интерфейса и реализацию драйверов Wi-Fi. В своём докладе авторы продемонстрировали, что атаки можно провести с использованием недорогого ($20) устройства micro:bit и стандартной карты Wi-Fi. Они также предлагают практические и эффективные контрмеры для защиты от этих атак.
После получения информации об уязвимости Apple смогла выпустить патч для защиты от DoS-атаки, но другие уязвимости безопасности «требуют пересмотра некоторых сервисов», пишут исследователи. Быстро устранить их не получится.
Автор: alizar
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ios/327576
Ссылки в тексте:
[1] ряд серьёзных уязвимостей: https://www.usenix.org/conference/usenixsecurity19/presentation/stute
[2] OpenDrop: https://github.com/seemoo-lab/opendrop
[3] сертификатов, подписанных Apple: https://www.apple.com/certificateauthority/pdf/Apple_AAI_CPS_v6.1.pdf
[4] pic.twitter.com/aaOAba5DwN: https://t.co/aaOAba5DwN
[5] July 7, 2019: https://twitter.com/ariahychen/status/1147798777924747266?ref_src=twsrc%5Etfw
[6] OWL: https://github.com/seemoo-lab/owl
[7] OpenSSL: https://www.openssl.org/
[8] libarchive: https://www.libarchive.org/
[9] Homebrew: https://brew.sh/
[10] Источник: https://habr.com/ru/post/464211/?utm_campaign=464211&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.