19 апреля 2017

Угнать дрон за 11 миллисекунд

Новости

Дроны сейчас используют все кому не лень — от Amazon, которая пытается с их помощью доставлять посылки, до киношников, которые снимают на подвешенные к брюху коптеров камеры красивые общие планы. Ну и конечно, хватает и любителей, благо вполне пристойный квадрокоптер стоит около $500 — кто-то может позволить себе за такую сумму просто игрушку, а кто-то оправдывает приобретение дрона тем, что он будет полезен, например, для свадебной фотографии.

Угнать дрон за 11 миллисекунд

И вот, значит, выходите вы вечером в чисто поле, находите подходящую взлетную площадку для своего дрона за $500+, включаете его и берете в руки пульт. Дрон весело жужжит, взлетает, набирает скорость… и вдруг поворачивает и улетает в закат, а вы ничего не можете с этим сделать, поскольку на пульт в ваших руках коптер никак не реагирует.

Нет, это не баг в прошивке и не случайная потеря управления — просто ваш дрон угнали. Как показал на Security Analyst Summit Джонатан Андерссон (Johnathan Andersson), при наличии нужного оборудования и знаний можно собрать установку, которая позволяет делать это за несколько секунд.

Чтобы угнать дрон, Андерссону потребовались программно-определяемое радио (SDR), джойстик от дрона, микрокомпьютер и небольшое количество другой электроники. С помощью SDR ему удалось настроиться на волну, на которой дрон взаимодействует с контроллером, а смекалка и некоторое количество времени, потраченного на эксперименты, позволили понять, как именно на этой волне передаются сигналы.

Разобраться, как устроена передача данных между дроном и контроллером, действительно довольно сложно, тем более что раз в 11 миллисекунд передатчик меняет канал связи. Но если единожды это сделать, больше существенных препятствий на пути к взлому дрона не будет. Протоколов, которыми пользуются производители коптеров, немного, и они довольно схожи между собой.

А поскольку производители исповедуют принцип «безопасность через неясность» и рассчитывают на сложность взлома самого протокола, то шифрование для передачи команд по этому протоколу они используют предельно простое. Установка Андерссона (у которой, кстати, есть собственное имя — Icarus) вполне в состоянии взломать это шифрование в течение тех самых 11 миллисекунд, за которые меняется канал, и отправить на дрон набор команд, позволяющий полностью перехватить управление коптером — буквально на лету.

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

Андерссон говорит, что эта проблема может затрагивать почти всю индустрию — от копеечных игрушек до дорогущих профессиональных моделей, поскольку все протоколы передачи данных между дроном и пультом потенциально уязвимы к одному и тому же типу атак.

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

Хочется верить, что производители озаботятся этой проблемой в ближайшем будущем: махать рукой улетающим за горизонт сотням долларов довольно грустно. Киношникам наверняка еще грустнее — их дроны стоят тысячи и даже десятки тысяч долларов, а взламываются, судя по всему, точно так же.