Security Week 2310: безопасность квадрокоптеров DJI
На прошлой неделе исследователи из Рурского университета в Бохуме опубликовали научную работу, посвященную безопасности квадрокоптеров DJI. Анализ устройств проводился при помощи реверс-инжиниринга прошивок, фаззинга и исследования протоколов коммуникаций. В результате ученые нашли 16 уязвимостей, которые производитель закрыл через день после публикации работы.
Всего в исследовании приняли участие три модели дронов DJI: DJI Mini 2, Mavic Air 2 и Mavic 2 Pro. Ученые также проанализировали две модели пультов управления, которые идут в комплекте с этими квадрокоптерами. Позднее выяснилось, что все найденные проблемы также актуальны и для более свежей модели Mavic 3. В рамках работы энтузиасты изучили все способы взаимодействия с устройствами, включая USB, UART, беспроводную связь (Bluetooth, Wi-Fi и проприетарный стандарт Ocusync), приложения для смартфона, а также собственный протокол коммуникации DJI Universal Markup Language.
Прежде всего исследователи рассмотрели работу фичи, которая публично не задокументирована и ранее не изучалась. Помимо коммуникаций с оператором (через пульт или приложение для телефона), квадрокоптеры DJI на отдельной частоте передают так называемый DroneID. С помощью этих данных правоохранительные органы могут идентифицировать дроны там, где их использование запрещено. Чтобы проанализировать этот метод коммуникации и определить формат передаваемых пакетов данных, пришлось изучить прошивку устройства. Как выяснилось, DroneID передается в незашифрованном виде и раскрывает локацию как самого устройства, так и его оператора. Ученые также рассмотрели сценарий, при котором оператор дрона пытается скрыть как минимум собственное местоположение. В этом случае работают традиционные методы подмены геоданных на смартфоне: фейковые координаты, судя по всему, передаются через приложение DJI на квадрокоптер и дальше транслируются в составе пакетов DroneID.
Исследователи также построили оригинальную инфраструктуру для поиска уязвимостей в ПО квадрокоптера методом фаззинга. Чтобы ускорить процесс тестирования, на устройство одним пакетом отправляли 130 тысяч команд. Фаззер адаптировали для работы с проприетарным протоколом коммуникации DJI Universal Markup Language. Чтобы проверить, работает ли дрон после такого блока команд, ученые придумали особую схему: если устройство «падало», большой блок команд делили на более мелкие. Несколько итераций таких последовательных проверок помогали найти точное число запросов, которое вызвало повреждение данных на устройстве или отказ в обслуживании.
Фаззинг помог выявить 15 уязвимостей, большинство из которых вызывают исключительно отказ в обслуживании. Но в двух случаях авторы работы нашли способ выполнить произвольный код на устройстве. Примечательно, что часть обнаруженных уязвимостей можно было эксплуатировать удаленно, в процессе коммуникации между дроном, пультом дистанционного управления и смартфоном. Одна из уязвимостей также позволяет менять серийный номер устройства, что противоречит модели безопасности, заявленной производителем.
К сожалению, на момент подготовки материала компания DJI не выпустила никаких бюллетеней с подробным описанием уязвимостей и их квалификацией. О том, что проблемы решены, мы знаем только из пресс-релиза на сайте Рурского университета. В самой научной работе есть оценка всех 15 проблем, найденных с помощью фаззинга, с уровнем опасности не более «среднего» (что в целом логично, так как речь идет об атаке с привязанного к устройству пульта управления и/или смартфона). Не очень понятно, будет ли DJI делать что-то с коммуникацией DroneID открытым текстом в радиоэфире. Авторы работы при этом обозначают наиболее привлекательный сценарий для атаки: когда сторонний наблюдатель может манипулировать квадрокоптером. В исследовании говорится о теоретической возможности такой атаки, но конкретных примеров показать не удалось. Наибольший интерес в работе, таким образом, представляет не опасность обнаруженных уязвимостей (хотя потенциал для дальнейших исследований существует), а комплексный подход к исследованию безопасности квадрокоптеров. В нашем случае это комбинация разных методов — от фаззинга до статического анализа прошивок и перехвата беспроводных коммуникаций.
Что еще произошло:
Свежий отчет «Лаборатории Касперского» посвящен эволюции угроз для промышленных систем автоматизации за второе полугодие 2022 года.
Разработчики менеджера паролей LastPass раскрыли еще одну любопытную деталь прошлогоднего взлома инфраструктуры компании (официальное сообщение, статья в издании Ars Technica, коротко на Хабре). Как выяснилось, организаторы атаки успешно взломали компьютер DevOps-инженера, который оказался одним из четырех человек в команде с доступом к ключам шифрования от бэкапов, хранившихся в облачном сервисе Amazon S3. Именно так атакующим удалось получить доступ к пользовательским данным. Как мы писали ранее, попавшие в руки злоумышленников пользовательские данные зашифрованы отдельно с помощью пользовательского же мастер-пароля, но ряд метаданных (например, URL веб-сайтов, на которых LastPass сохранял данные форм) хранился в открытом виде. Преступники взломали домашний компьютер инженера, который он в том числе использовал для рабочих задач. Они воспользовались уязвимым приложением, получили возможность выполнять произвольный код и установили кейлоггер. А через него украли мастер-пароль к корпоративной учетке в сервисе LastPass и хранившимся в ней ключам шифрования. По данным Ars Technica, полученным из анонимного источника, уязвимым приложением был медиасервер Plex. Что это была за уязвимость — непонятно, разработчики самого Plex сообщили, что LastPass с ними по поводу данного инцидента не связывались.
В сообщении компании ESET говорится о распространении буткита, способного обходить ограничения системы Secure Boot. Буткит распространяется в составе вредоносного ПО BlackLotus и, по данным компании, способен атаковать даже полностью пропатченные компьютеры под управлением Windows 11. Буткит эксплуатирует уязвимость CVE-2022–21894, пропатченную в январе 2022 года. Проблема в том, что уязвимые исполняемые файлы с корректной цифровой подписью так и не были добавлены в список программ, запрещенных для выполнения при инициализации UEFI.