AMRakm
Интересующийся
Интересующийся
AMRakm
Интересующийся
Интересующийся
- Сообщения
- 54
- Реакции
- 57
К истории вопроса
На борьбу c беспилотниками, а также на меры, регулирующие их использование населением, государства ежегодно тратят миллионы долларов, правда без особого успеха. На слуху недавний случай, когда работа британского аэропорта Гатвик была на несколько дней парализована невесть откуда взявшимися коптерами, для уничтожения которых правительство даже вынуждено было привлекать снайперов. Что уж говорить о чиновниках, которым не дают покоя снующие над их поместьями дроны с видеокамерами, так и норовящие сунуть свой назойливый объектив в чужую частную жизнь. Эх, если бы существовал надежный способ перехвата управления беспилотниками, заветная мечта многих государственных деятелей стала бы реальностью. Или такой способ все же существует?
Если бы все было так просто, как кажется, правительственные чиновники не изобретали бы хитроумные способы борьбы с летающей электронной нечистью вроде тренировки охотничьих соколов, разработки вооруженных сетями дронов-перехватчиков и создания прочих электромагнитных пушек. Но если посмотреть на проблему с инженерной точки зрения, любой коптер — это по большому счету электронное устройство с дистанционным управлением, а значит, радиоканал, по которому передаются управляющие команды, может быть скомпрометирован.
Для начала предлагаю отделить двукрылых насекомых от мясных блюд из жареного фарша. Когда речь идет о копеечных игрушках с «АлиЭкспресса», в пультах которых не применяется авторизация при соединении с приемником, «перехват» не представляет особой технической сложности. Если сразу после включения питания коптера или присоединения к нему аккумулятора, в момент, когда на беспилотнике быстро мигает светодиодный индикатор и устройство находится в режиме поиска передатчика, первым включить поблизости аналогичный трансмиттер (при использовании «универсальных» пультов еще придется нажать на кнопку Bind), то дрон с высокой долей вероятности «подцепится» именно к нему и «потеряет» оригинальный. А вот если мы говорим о более-менее серьезной технике, то тут дело обстоит намного сложнее.
Под капотом
Многие летательные аппараты с дистанционным управлением (равно как и радиоуправляемые игрушки) используют для обмена данными протокол DSM2/DSMX, при этом в качестве распространенной альтернативы можно назвать технологию SLT. DSM применяется в широкополосных передатчиках с частотой 2,4 ГГц и считается хорошо защищенным от случайных помех в радиоканале. Этот протокол позволяет сохранять данные полета в файл журнала, при этом DSM2 поддерживает функцию обнаружения отключения сигнала (например, при сбое питания), а DSMX — нет, но оба этих стандарта совместимы. Протокол SLT работает на той же частоте и совместим с трансмиттерами различных производителей, но «родное» для него железо — устройства производства компаний Tactic и Hitec.
Еще один протокол, поддерживаемый некоторыми беспилотными летательными аппаратами, носит наименование MAVlink, он часто задействуется для передачи телеметрии. MAVlink имеет открытый исходный код, реализован в виде модуля Python и распространяется под лицензией LGPL. Этот протокол по умолчанию не применяет шифрование при обмене данными и поэтому теоретически более уязвим к атакам по сравнению с конкурирующими технологиями, где такая функция имеется.
Угнать за шестьдесят секунд
В первую очередь поговорим о дронах, работающих по беспроводной сети. Почему создатели коптеров решили использовать в качестве алгоритма шифрования неустойчивый к взлому WEP вместо более распространенного WPA/WPA2 — тайна, покрытая мраком, но, вероятнее всего, это связано со скоростью передачи и обработки данных оборудованием летательного аппарата.
Одно дело, если вдруг начнет лагать локальная сеть, и совсем другое — если сбойнет канал связи с дроном, летящим на высоте десяти метров над чужим огородом. Последствия будут совершенно разными.
Как и любое другое подобное устройство, коптер с Wi-Fi на борту оборудован сетевым адаптером, имеющим MAC-адрес, по которому его можно идентифицировать. Так работают, например, летательные аппараты Parrot. Смартфон с установленным приложением служит в этом случае аналогом пульта управления, с которого дрон и получает команды.
Для идентификации управляющего устройства используется ID Key — уникальная метка, «привязанная» к установленному на смартфоне приложению (Flight control software) и текущей сессии. Принцип взлома прост: атакующий подключается к сети дрона, определяет уникальную метку, после чего отправляет коптеру команду, которая заставит его отключиться от текущего управляющего устройства и начать прием команд со смартфона злоумышленника, имеющих «скопированную» метку оригинального устройства.
На практике для взлома сети беспилотников использовалось приложение, о котором мы рассказывали на канале не раз -
Однако просто взломать сеть недостаточно, нужно еще перехватить передаваемые между дроном и оператором данные. Пример реализации такого перехвата продемонстрировал парень по имени Сэми Камкар (Samy Kamkar), собрав для этих целей специальный девайс на основе одноплатного компьютера Raspberry Pi и записав свои эксперименты на
Суть его метода вкратце такова:
Чувак использовал Raspberry Pi с воткнутым в его USB-порт Wi-Fi-донглом и внешний адаптер Alfa AWUS036H, с помощью которого он, собственно, и взламывал сеть. Одноплатник был запитан от батареи через Micro USB и использовался в качестве сканера, прощупывающего эфир и определяющего MAC-адреса подключенных к беспроводным сетям устройств.
Фишка заключается в том, что все коптеры производства компании Parrot используют схожие MAC-адреса из одного блока, сведения о котором можно найти в публичных источниках. Проверив адрес на соответствие этому диапазону, можно безошибочно определить, что перед нами именно беспилотник Parrot, а не какая-нибудь умная хлеборезка или скороварка с сетевым интерфейсом.
Перехват управления квадрокоптером Syma выглядит примерно схожим образом:
Базовая идея тут была заложена та же самая: Raspberry Pi в качестве сканера каналов, позволяющего отследить работающие поблизости трансмиттеры и перехватить уникальный идентификатор пульта беспилотника. Именно на проверке этого идентификатора и строится вся система безопасности протокола управления, используемого коптерами Syma. Если этот идентификатор вбить в программу, эмулирующую работу пульта, ты получишь возможность управлять беспилотником.
После запуска эмулятора, присоединенного к ВЧ-передатчику сигнала, дрон оказывается подключен одновременно к двум пультам управления: настоящему, который находится в руках у RC-пилота, и поддельному, при этом аппарат откликается на команды с обоих пультов. Суть хака заключается в том, что работающая на пульте злоумышленника программа может отсылать дрону управляющие команды вдвое чаще оригинального пульта. Если оператор, например, отдаст коптеру команду снижаться, то от злоумышленника в ту же дискретную единицу времени может поступить две команды увеличить обороты. Беспилотник послушно обработает их все, но результирующим действием будет набор высоты, поскольку таких директив поступило больше. Используя эту нехитрую особенность выполнения команд по очереди, похититель может увести дрон за пределы зоны действия оригинального пульта управления и благополучно посадить его в соседнем лесочке.
Большие игрушки
В предыдущем разделе речь шла о недорогих и довольно простых по конструкции летательных аппаратах. А как насчет «серьезной» техники, использующей шифрование, или беспилотников, которые передают данные по протоколам DSM2/DSMX или SLT без всяких смартфонов? Можно ли перехватить управление, скажем, продукцией DJI?
Тут, как любят говорить некоторые девушки, все сложно. Во-первых, производители стараются шифроваться не только в прямом смысле, но и в переносном, например стирают маркировку со смонтированных в приемниках и передатчиках микросхем, хотя знатокам и так прекрасно известно, какие чипы там используются. Во-вторых, даже несмотря на то, что все подобные трансмиттеры работают с конкретным набором частот, частота сменяется автоматически с интервалом в две миллисекунды, то есть каждую секунду коптер переходит с одной частоты на другую примерно 500 раз. В-третьих, все передаваемые по управляющему каналу команды смешиваются с псевдослучайными данными, поэтому, даже «услышав» в эфире сигнал такого беспилотника, подменить его будет очень непросто.
В теории это, конечно, возможно: нужно сдампить прошивку дрона, дизассемблировать ее, выяснить алгоритм, по которому происходит смена частот и генерация цифрового «шума», после чего написать эмулятор.
Можно еще использовать уязвимости в протоколах, если таковые удастся обнаружить. Наиболее перспективен с этой точки зрения протокол MAVlink, поскольку для него доступны исходники (за исключением проприетарных компонентов) и целый ворох документации. Только вот затраты сил и нервов в этом случае могут быть несоизмеримы с полученным результатом.
Если основная задача — не украсть коптер, а просто предотвратить его полет над определенной географической точкой, можно использовать более простые методы ее решения вроде GPS-спуфинга.
Примечательно, что стоимость программируемых радиопередатчиков, с помощью которых можно заглушить или подделать GPS-сигнал, сегодня относительно невелика и составляет всего лишь несколько сотен долларов, а купить все необходимое можно в интернете. Тем более даже для «профессиональных» коптеров чрезмерно мощные глушилки совершенно излишни: известны случаи, когда большие дроны вроде Phantom «терялись» вблизи антенн базовых станций мобильных операторов или высоковольтных линий ЛЭП. Если коптер попадет в зону действия подобной глушилки, он с большой долей вероятности начнет дрейфовать по ветру, а из-за отсутствия сигнала с навигационных спутников не сможет правильно определить свое текущее местоположение, чтобы вернуться в точку вылета. Дальше, как говорится, возможны варианты.
Выводы
Так можно ли все-таки угнать дрон? Как видим, можно, технически для этого не существует непреодолимых преград. Однако все зависит, конечно, от самого устройства, от используемого им ПО и протоколов передачи данных.
Спасибо за внимание!
На борьбу c беспилотниками, а также на меры, регулирующие их использование населением, государства ежегодно тратят миллионы долларов, правда без особого успеха. На слуху недавний случай, когда работа британского аэропорта Гатвик была на несколько дней парализована невесть откуда взявшимися коптерами, для уничтожения которых правительство даже вынуждено было привлекать снайперов. Что уж говорить о чиновниках, которым не дают покоя снующие над их поместьями дроны с видеокамерами, так и норовящие сунуть свой назойливый объектив в чужую частную жизнь. Эх, если бы существовал надежный способ перехвата управления беспилотниками, заветная мечта многих государственных деятелей стала бы реальностью. Или такой способ все же существует?
Если бы все было так просто, как кажется, правительственные чиновники не изобретали бы хитроумные способы борьбы с летающей электронной нечистью вроде тренировки охотничьих соколов, разработки вооруженных сетями дронов-перехватчиков и создания прочих электромагнитных пушек. Но если посмотреть на проблему с инженерной точки зрения, любой коптер — это по большому счету электронное устройство с дистанционным управлением, а значит, радиоканал, по которому передаются управляющие команды, может быть скомпрометирован.
Для начала предлагаю отделить двукрылых насекомых от мясных блюд из жареного фарша. Когда речь идет о копеечных игрушках с «АлиЭкспресса», в пультах которых не применяется авторизация при соединении с приемником, «перехват» не представляет особой технической сложности. Если сразу после включения питания коптера или присоединения к нему аккумулятора, в момент, когда на беспилотнике быстро мигает светодиодный индикатор и устройство находится в режиме поиска передатчика, первым включить поблизости аналогичный трансмиттер (при использовании «универсальных» пультов еще придется нажать на кнопку Bind), то дрон с высокой долей вероятности «подцепится» именно к нему и «потеряет» оригинальный. А вот если мы говорим о более-менее серьезной технике, то тут дело обстоит намного сложнее.
Под капотом
Многие летательные аппараты с дистанционным управлением (равно как и радиоуправляемые игрушки) используют для обмена данными протокол DSM2/DSMX, при этом в качестве распространенной альтернативы можно назвать технологию SLT. DSM применяется в широкополосных передатчиках с частотой 2,4 ГГц и считается хорошо защищенным от случайных помех в радиоканале. Этот протокол позволяет сохранять данные полета в файл журнала, при этом DSM2 поддерживает функцию обнаружения отключения сигнала (например, при сбое питания), а DSMX — нет, но оба этих стандарта совместимы. Протокол SLT работает на той же частоте и совместим с трансмиттерами различных производителей, но «родное» для него железо — устройства производства компаний Tactic и Hitec.
Еще один протокол, поддерживаемый некоторыми беспилотными летательными аппаратами, носит наименование MAVlink, он часто задействуется для передачи телеметрии. MAVlink имеет открытый исходный код, реализован в виде модуля Python и распространяется под лицензией LGPL. Этот протокол по умолчанию не применяет шифрование при обмене данными и поэтому теоретически более уязвим к атакам по сравнению с конкурирующими технологиями, где такая функция имеется.
А теперь от общего перейдем к частному.Ряд коптеров, которыми можно управлять с любого современного смартфона, использует в качестве среды передачи данных беспроводную сеть 802.11 с WEP-шифрованием. О безопасности Wi-Fi писалось уже много и весьма подробно, так что нет смысла повторяться. Взлом такой сети можно назвать рутинной процедурой, арсенал имеющихся для этого технических средств весьма обширен.
Угнать за шестьдесят секунд
В первую очередь поговорим о дронах, работающих по беспроводной сети. Почему создатели коптеров решили использовать в качестве алгоритма шифрования неустойчивый к взлому WEP вместо более распространенного WPA/WPA2 — тайна, покрытая мраком, но, вероятнее всего, это связано со скоростью передачи и обработки данных оборудованием летательного аппарата.
Одно дело, если вдруг начнет лагать локальная сеть, и совсем другое — если сбойнет канал связи с дроном, летящим на высоте десяти метров над чужим огородом. Последствия будут совершенно разными.
Как и любое другое подобное устройство, коптер с Wi-Fi на борту оборудован сетевым адаптером, имеющим MAC-адрес, по которому его можно идентифицировать. Так работают, например, летательные аппараты Parrot. Смартфон с установленным приложением служит в этом случае аналогом пульта управления, с которого дрон и получает команды.
Для идентификации управляющего устройства используется ID Key — уникальная метка, «привязанная» к установленному на смартфоне приложению (Flight control software) и текущей сессии. Принцип взлома прост: атакующий подключается к сети дрона, определяет уникальную метку, после чего отправляет коптеру команду, которая заставит его отключиться от текущего управляющего устройства и начать прием команд со смартфона злоумышленника, имеющих «скопированную» метку оригинального устройства.
На практике для взлома сети беспилотников использовалось приложение, о котором мы рассказывали на канале не раз -
You do not have permission to view link please
Вход or Регистрация
. Программа умеет мониторить эфир в поисках защищенных сетей Wi-Fi, перехватывать пакеты и экспортировать из них данные для последующего анализа, а также применять различные алгоритмы сетевых атак.Однако просто взломать сеть недостаточно, нужно еще перехватить передаваемые между дроном и оператором данные. Пример реализации такого перехвата продемонстрировал парень по имени Сэми Камкар (Samy Kamkar), собрав для этих целей специальный девайс на основе одноплатного компьютера Raspberry Pi и записав свои эксперименты на
You do not have permission to view link please
Вход or Регистрация
.Суть его метода вкратце такова:
Чувак использовал Raspberry Pi с воткнутым в его USB-порт Wi-Fi-донглом и внешний адаптер Alfa AWUS036H, с помощью которого он, собственно, и взламывал сеть. Одноплатник был запитан от батареи через Micro USB и использовался в качестве сканера, прощупывающего эфир и определяющего MAC-адреса подключенных к беспроводным сетям устройств.
Фишка заключается в том, что все коптеры производства компании Parrot используют схожие MAC-адреса из одного блока, сведения о котором можно найти в публичных источниках. Проверив адрес на соответствие этому диапазону, можно безошибочно определить, что перед нами именно беспилотник Parrot, а не какая-нибудь умная хлеборезка или скороварка с сетевым интерфейсом.
- В упомянутом видео использовался клиент node-ar-drone, написанный на Node.js и предназначенный для работы с коптерами Parrot AR Drone 2.0. Исходники этой библиотеки можно найти на
You do not have permission to view link please Вход or Регистрация. Node-ar-drone позволяет взаимодействовать с дронами Parrot при помощи команд JavaScript: менять направление и высоту полета, получать видеопоток или снимки с камеры коптера, а также делать с ним другие забавные вещи.
Перехват управления квадрокоптером Syma выглядит примерно схожим образом:
Базовая идея тут была заложена та же самая: Raspberry Pi в качестве сканера каналов, позволяющего отследить работающие поблизости трансмиттеры и перехватить уникальный идентификатор пульта беспилотника. Именно на проверке этого идентификатора и строится вся система безопасности протокола управления, используемого коптерами Syma. Если этот идентификатор вбить в программу, эмулирующую работу пульта, ты получишь возможность управлять беспилотником.
После запуска эмулятора, присоединенного к ВЧ-передатчику сигнала, дрон оказывается подключен одновременно к двум пультам управления: настоящему, который находится в руках у RC-пилота, и поддельному, при этом аппарат откликается на команды с обоих пультов. Суть хака заключается в том, что работающая на пульте злоумышленника программа может отсылать дрону управляющие команды вдвое чаще оригинального пульта. Если оператор, например, отдаст коптеру команду снижаться, то от злоумышленника в ту же дискретную единицу времени может поступить две команды увеличить обороты. Беспилотник послушно обработает их все, но результирующим действием будет набор высоты, поскольку таких директив поступило больше. Используя эту нехитрую особенность выполнения команд по очереди, похититель может увести дрон за пределы зоны действия оригинального пульта управления и благополучно посадить его в соседнем лесочке.
Большие игрушки
В предыдущем разделе речь шла о недорогих и довольно простых по конструкции летательных аппаратах. А как насчет «серьезной» техники, использующей шифрование, или беспилотников, которые передают данные по протоколам DSM2/DSMX или SLT без всяких смартфонов? Можно ли перехватить управление, скажем, продукцией DJI?
Тут, как любят говорить некоторые девушки, все сложно. Во-первых, производители стараются шифроваться не только в прямом смысле, но и в переносном, например стирают маркировку со смонтированных в приемниках и передатчиках микросхем, хотя знатокам и так прекрасно известно, какие чипы там используются. Во-вторых, даже несмотря на то, что все подобные трансмиттеры работают с конкретным набором частот, частота сменяется автоматически с интервалом в две миллисекунды, то есть каждую секунду коптер переходит с одной частоты на другую примерно 500 раз. В-третьих, все передаваемые по управляющему каналу команды смешиваются с псевдослучайными данными, поэтому, даже «услышав» в эфире сигнал такого беспилотника, подменить его будет очень непросто.
В теории это, конечно, возможно: нужно сдампить прошивку дрона, дизассемблировать ее, выяснить алгоритм, по которому происходит смена частот и генерация цифрового «шума», после чего написать эмулятор.
Можно еще использовать уязвимости в протоколах, если таковые удастся обнаружить. Наиболее перспективен с этой точки зрения протокол MAVlink, поскольку для него доступны исходники (за исключением проприетарных компонентов) и целый ворох документации. Только вот затраты сил и нервов в этом случае могут быть несоизмеримы с полученным результатом.
Если основная задача — не украсть коптер, а просто предотвратить его полет над определенной географической точкой, можно использовать более простые методы ее решения вроде GPS-спуфинга.
По замыслу спецслужб эта мера должна надежно защитить особо важных персон от неожиданной атаки с воздуха. И подобные опасения, следует отметить, не лишены оснований: например, в прошлом году для покушения (неудавшегося) на президента Венесуэлы Николаса Мадуро злоумышленники начинили взрывчаткой беспилотник. А в Сирии боевики уже давно используют дешевые дроны для атак на объекты военной инфраструктуры. С другой стороны, в том же Гатвике коптеры злоумышленников часами летали над взлетно-посадочными полосами и рулежными дорожками и при этом прекрасно себя чувствовали…Применением именно этой технологии объясняется феномен перенаправления пользователей GPS-навигаторов в аэропорт Шереметьево, когда те оказываются вблизи Кремля. Используемые для GPS-спуфинга устройства глушат сигнал навигационных спутников и передают в эфир собственный сигнал, транслирующий на принимающее устройство ложные координаты. Из-за этого устройство считает, будто оно находится в районе ближайшего аэропорта. Расчет делается на то, что в прошивку большинства дронов заложен запрет на полеты над гражданскими воздушными гаванями — при приближении к аэропорту дрон автоматически приземляется или стремится облететь его.
Примечательно, что стоимость программируемых радиопередатчиков, с помощью которых можно заглушить или подделать GPS-сигнал, сегодня относительно невелика и составляет всего лишь несколько сотен долларов, а купить все необходимое можно в интернете. Тем более даже для «профессиональных» коптеров чрезмерно мощные глушилки совершенно излишни: известны случаи, когда большие дроны вроде Phantom «терялись» вблизи антенн базовых станций мобильных операторов или высоковольтных линий ЛЭП. Если коптер попадет в зону действия подобной глушилки, он с большой долей вероятности начнет дрейфовать по ветру, а из-за отсутствия сигнала с навигационных спутников не сможет правильно определить свое текущее местоположение, чтобы вернуться в точку вылета. Дальше, как говорится, возможны варианты.
Выводы
Так можно ли все-таки угнать дрон? Как видим, можно, технически для этого не существует непреодолимых преград. Однако все зависит, конечно, от самого устройства, от используемого им ПО и протоколов передачи данных.
Спасибо за внимание!