Уязвимости в протоколе ExpressLRS позволяют захватывать дроны

Уязвимости в протоколе ExpressLRS позволяют захватывать дроны

Для захвата контроля над радиоуправляемым дроном достаточно иметь стандартный передатчик, совместимый с ExpressLRS.

ExpressLRS – это система радиоуправления, которая разрабатывается сообществом как opensource проект. Отличается высокой частотой обновления пакетов, обеспечивая внушительную дальности радиосвязи. Существует в двух вариантах частотного диапазона, 2.4ГГц и 900МГц

Эксперты из NCC Group сообщают, что бреши в защите протокола ExpressLRS могут позволить хакерам получить полный контроль над дроном или создать проблемы с управлением, которые могут привести к печальным последствиям.

Все уязвимости находятся на стадии сопряжения приемника (или дрона с приемником) и передатчика. Для сопряжения ExpressLRS использует биндинг-фразу, которая гарантирует что правильный приемник соединен с правильным передатчиком. В ExpressLRS биндинг-фраза используется не для обеспечения безопасности, а для защиты от коллизий.

Все бреши связаны с уязвимостями в фазе сопряжения, позволяющими извлечь часть уникального идентификатора биндинг-фразы (UID), соединяющей приемник и передатчик. После этого можно использовать анализ и перебор для определения оставшейся части UID. Как только полный идентификатор будет найден, злоумышленник сможет использовать свой передатчик для управления дроном с установленным внутри приемником.

Кроме этого, специалисты отметили еще два момента:

  • Биндинг-фраза зашифрована с помощью MD5 – нерабочего алгоритма хэширования.

  • Пакеты, которыми обмениваются приемник и передатчик для синхронизации допускают утечку части идентификатора биндинг-фразы.

Теперь можно перейти к 3 уязвимостям, обнаруженным специалистами из NCC Group. Каждая из них позволяет обнаружить 4 байта UID, которые требуются для захвата контроля над соединением между приемником и передатчиком:

  1. Пакет синхронизации содержит последние три байта UID. Последний байт можно получить с помощью метода перебора.

  2. Инициализатор CRC использует последние два байта UID, отправленные с пакетом синхронизации, что значительно упрощает CRC-проверку.

  3. Эта уязвимость появляется во время псевдослучайной перестройки рабочей частоты (FHSS). Из-за недостатков в генераторе случайных чисел вторые 128 значений последнего байта UID дают ту же последовательность FHSS, что и первые 128.

В бюллетене специалисты рекомендуют не оправлять UID и данные для генерации FHSS по каналу управления дроном. Эксперты также посоветовали усовершенствовать генератор случайных чисел, используя более безопасный алгоритм или скорректировав существующий алгоритм для работы с повторяющимися последовательностями.


Мир сходит с ума, но еще не поздно все исправить. Подпишись на канал SecLabnews и внеси свой вклад в предотвращение киберапокалипсиса!