«Как я сбивал назойливый дрон

#187205
МаксМакс
Участник
  • Берлинка

«Как я сбивал назойливый дрон соседского ребёнка»

Мой сосед меня реально достал, а его ребёнок достал меня вдвойне! Меня раздражают его… сопли, можете заменить «сопли» более подходящим словом из четырёх букв! Но самая большая проблема возникла, когда у соседского парня появилось вот это – квадрокоптер с видеокамерой.

Этот пацан бегал с ним по всей округе днём и ночью, и его дрон врезался в каждый автомобиль, каждый дом и каждое дерево на своём пути. Но главным, для чего он бегал с ним по улицам, было вот это: 

Маленький ублюдок считал, что Интернет нужен для того, чтобы подглядывать за обнажёнными соседями через окна домов. Моей первой реакцией было просто взять и уничтожить эту штуку. Но в последнем выступлении уже говорилось о том, что попытка сбить дрон создаст Вам большую проблему. К тому же я не хочу, чтобы кто-то сбивал мой собственный дрон, однако идея такого подхода к решению проблемы заставила меня задуматься.

Итак, я начал искать выход из ситуации, для чего изучил несметное количество правил, каждое из которых пыталось регулировать использование безымянных летательных систем, которые мы называем квадрокоптерами или дронами. Большинство из этих правил ограничивают использование таких систем в государственных или коммерческих целях, в последнем случае необходима регистрация летательного аппарата в FAA – Федеральном Управлении гражданской авиации США и получение разрешения на полёты.

Представьте себе, что я испытываю свой дрон DJI Phantom 3 над паркингом для этой презентации. Тут ко мне подходит парень из специального подразделения DHS, контролирующего полёты дронов на территории округа Колумбия, стучит мне по плечу и говорит:

— Вы знаете, что говорят об этом правила?

— Да!

— Вы занимаетесь этим в коммерческих целях?

— Нет!

— Отлично, всего хорошего!

И уходит.

Тогда я его догоняю его и кричу, что у меня есть вопрос! А он отвечает мне, что у него целая куча проблем с парнями, которые запускают свои дроны над Национальным стадионом и потом их теряют. Я спрашиваю его: «Как же вы вообще находите этих парней»? На что он отвечает: «Легко! Большинство парней, которые теряют эти вещи, прибегают на вершину холма с контроллерами в руках и спрашивают, не видел ли я их дроны». Я говорю: «Неужели»?, а он говорит: «Ну да, мы поджидаем их в этом месте и отлавливаем»!

Так что некоммерческое использование дронов в качестве хобби вообще никак не регулируется. Правда, существуют нормативные акты, регулирующие бесполётные зоны над Вашингтоном и его центром, Белым Домом. Запрещаются полёты в радиусе 15 миль от Вашингтона, 5 миль от аэропортов, если у Вас нет на это разрешения, и над военными базами, потому что это может плохо кончиться. 

Кроме того, запрещено взлетать, совершать посадку или разбиваться на территории национальных парков. С технической точки зрения, воздушное пространство не относится к сфере деятельности служб национальных парков NPS, однако NPS могут задержать Вас в связи с нарушением требований безопасности, потому что Ваш дрон может упасть кому-нибудь на голову, или в связи с превышением допустимого шума. Например, какой-нибудь парень снимает со своего дрона закат над Большим Каньоном, и тут к нему подходит человек в шляпе Медведя Смоки, забирает дрон и уводит парня с собой.

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

Запрещено размещать на дроне оружие, так как в этом случае создаётся система вооружения, нельзя также поднимать дрон выше 400 футов (120 м) над поверхностью земли и выпускать летящий дрон за пределы прямой видимости. В 16 штатах действуют свои правила по этому поводу.

Я узнал от того парня из DHS, что сейчас значительная часть воздушного пространства попадает под их юрисдикцию и что пятимильная зона вокруг аэропортов практически перекрыла весь Нью-Йорк, за исключением нескольких парков. Кроме того, запрещено летать над пешеходными зонами, так как существует угроза падения дрона на человека.

Что касается использования дронов в качестве хобби, тут тоже действует целая куча ограничений, установленных Требованиями к качеству авиамоделей в соответствии с положениями Акта FAA о модернизации и реформах от 2012 года (P.L.112-95, раздел 336):

  • модель воздушного судна должна использоваться только в качестве хобби или средства для отдыха;
  • управление моделью не должно нарушать положения общественной безопасности в пределах программ общенациональных общественных организаций;
  • запрещается эксплуатация модели весом свыше 55 фунтов (24,5 кг), если это не разрешено соответствующим сертификатом;
  • управление моделью не должно затруднять управление другими воздушными средствами;
  • при полёте в пределах 5 мильной зоны аэропорта, оператор модели должен сообщить об этом в диспетчерскую службу аэропорта и выполнять ей указания.

Однако большинство людей ничего не знают об этих правилах, потому что каждый по-братски старается их придумать. На следующем слайде отмечены все бесполётные зоны над восточным побережьем США, и их чертовски много.

Если Вы зарегистрируетесь на сайте Parrots, то увидите карту с данными об использовании приложения для управления дронами с помощью контроллера Bibop, которые автоматически поступают на сайт от каждого, кто использует эту программу.

Это очень интересно, так как согласно этой карте, зарегистрировано около 2000 полётов в зоне Нью-Йорка и столько же полётов над Вашингтоном. Если мы наложим эти карты друг на друга, то увидим, что люди запускают дроны в запретных зонах и ничего об этом не знают.

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

Для этого существует несколько способов, один из них показан на следующем слайде (надпись «Джонни, охотник на дронов. Защита частной жизни»). Или использовать нечто более утончённое, например, сделать так, чтобы неудачная попытка съёмки обнажённой натуры за чужим окном сбивала бы дрон на землю.

Я решил подробнее изучить две самые распространённые модели дронов. Первая – это Parrot Bibop. Спереди он имеет камеру с разрешением 1080р, оборудован 2-х ядерным главным процессором P7 и 4-х ядерным видеопроцессором, 8 ГБ памяти, развивает в горизонтальном направлении скорость до 45 миль в час и работает под управлением ОС Linux с SDK. 

Более пристальный взгляд на технические характеристики позволил мне обнаружить нечто интересное: дрон генерировал свой собственный сигнал WiFi и использовал стандарт 802.11! Это означало, что у нас имеется летающий роутер с сетевым протоколом DHCP. Потрясающе!

При дальнейшем изучении спецификации я нашёл ещё одну интересную вещь: внутри дрона располагался модуль GPS/GLONASS, использующий американскую или русскую систему спутниковой навигации. Что произойдёт, если я постараюсь испортить этот чип? Существует несколько вещей, которые могут в этом помочь.

Это приложение Free Flight 3 для контроллера Skycontroller, которое устанавливается на Ваше мобильное устройство под управлением Android или iOS. Оно обновляется с сайта Bibop, причём в магазине мобильных приложений App Store нет никаких приложений для управления дроном Parrot Bibop, поэтому Вы можете игнорировать обновления и не устанавливать их.

Я задумался о том, нет ли каких команд, которые отправляют дрон домой. Например, он приблизился ко мне, я помахал пред его камерой, прогоняя прочь, и он улетел обратно. Оказалось, что у дрона имеется функция возвращения домой, Home Return Feature. Она обладает интересной особенностью. Если дрон летит на высоте более 10 м, то после активации этой функции он летит прямо домой. Если он находится низко над землёй, например, на высоте 2 м, то при включении этой функции дрон автоматически набирает высоту порядка 10 м, стабилизирует своё положение и только после этого летит в то место, откуда его запустили.

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

Еще один пункт документации, который привлёк моё внимание – если Bibop дрон теряет соединение со смартфоном или контроллером, он направляется домой через 30 секунд после того, как соединение было утрачено.

Тогда я задумался, что произойдёт, если:

  • «отрубить» сигнал WiFi, исходящий из контроллера;
  • «отрубить» GPS сигнал;
  • применить магнитное поле?
  • Попробуем поэкспериментировать с WiFi сигналом.;

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

Я провёл соответствующие испытания со своим собственным дроном, просто отключая WiFi, в результате чего дрон не выжидал никаких 30 секунд – он просто камнем падал на землю, потому что моторы «вырубались» после потери связи. Я провёл 5 испытаний и потерял 6 пропеллеров. Вот как это выглядит на видео – сначала он висит в воздухе, а после отключения роутеров просто приземляется на то место, над которым висел, никаких попыток отправиться домой. Возможно, он считал, что дом расположен прямо под ним.

Что ещё можно сделать? Я догадался! Взглянем на этот слайд. 

Дрон представляет собой летающую беспроводную точку доступа. У неё есть имя по умолчанию, IP-адрес, маска подсети, функция DHCP и MAC-адрес. Никакой защиты шифрованием, используется 9-й канал WiFi. Я просканировал его с помощью NMAP и выяснил, что это настоящий летающий ftp-сервер! Все его 4 порта открыты: 21 использует ftp, 23 предназначен для Telnet, 51-й для La-maint и 44444 – неизвестно для чего.

Я подсоединил к дрону одновременно 10 устройств, и только одно смогло с ним «разговаривать» – остальные 9 «сидели» и ждали своей очереди.

Поскольку это летающий ftp-сервер, я использовал набор UNIX-утилит командной строки Busy Box v.1.20.2 и обнаружил две директории, которые меня заинтересовали: media и thumb. В первой маленький монстр хранил своё пиратское видео с расширением .mp4, во второй – картинку с расширением .jpg.

Для соединения через ftp не требовалось никакой авторизации.

День определённо удался. Я думал о том, что могу вытащить из дрона этого парнишки всё видео, которые он наснимал в соседских домах, и просмотреть их просто ради того, чтобы узнать, как вообще выглядят мои соседи.

Но дрон имел ещё и «широко открытый» порт Telnet во время полёта, что вообще меня убило. Я исследовал 23 порт с помощью программы Busy Box, которой пользовался последний раз 3 года назад. С тех пор вышло около 10 обновлений, которые она отказалась устанавливать, но несмотря на это, сумела выдать мне целый список директорий и файлов. Среди них я нашёл интересующие меня параметры управления.

Итак, я запустил дрон №2 (кстати, выяснилось, что я занялся очень дорогим проектом), и он завис на моей кухне. Я зашёл в Telnet через Busy Box, пока дрон висел в воздухе, увидел его IP-адрес и подумал, что случится, если я введу вот эту команду: #ardrone3_shutdown.sh?

Я сидел за столом в своей кухне, дрон висел в воздухе, и как только я набрал эту команду и нажал Enter, он резко рванул вниз и в сторону и врезался в плиту!

Я надеялся, что он грациозно приземлится возле меня, но это совсем не выглядело грациозно. Если бы я был одним из тех крутых парней, что ловят летящие в них карбоновые сюрикены…

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

Я собирался проделать здесь нечто подобное, и когда я запустил свой дрон сегодня утром, к моей открытой сети Telnet подключились аж 6 участников нашей конференции!

Продолжим наш разговор. Рядом со мной в парке был мой коллега, и когда он увидел, что произошло, то сказал: «Ничего грандиозного! Вот если бы ты поднял его на 400 футов и бросил вниз…», на что я ответил: «Тогда давай мне свой дрон»!

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

На следующем слайде показано, что видно на экране моего смартфона, когда приложение надлежащим образом управляет полётом дрона. У меня есть доступ к функциям дрона, парящего на высоте одного метра в лобби отеля. Присутствующие там не выглядели счастливыми, наблюдая за моим экспериментом. 

А вот какая картинка в это же время наблюдается на экране планшета при запущенном приложении: 

Я смог соединится с сетью, но моё приложение на планшете не смогло соединится с дроном. 

Тогда мне в голову пришла мысль послать Deauth-пакет, чтобы отключить клиентов от сети, и как только я это сделал, на экране iPad тут же появилось сообщение «Связь рассоединяется…» и картинка замерла. 

Я задал себе вопрос, кто выиграет в этой гонке, кто сможет быстрее подсоединиться к сети после обрыва связи – пилот дрона или я, держащий палец на кнопке соединения. Если соседский пацан находится на улице, то сначала он попытается поймать свою домашнюю сеть WiFi или любую другую сеть, а потом захочет соединиться со своим дроном. Если связь с дроном в это время прерывается, то он будет сидеть там и пробовать подключиться к сети, так как будет думать, что разорвано не соединение с дроном, а связь с WiFi-сетью. При этом картинка, передаваемая дроном на экран его планшета, будет оставаться «замороженной».

Я же время перехвачу управление дроном, после чего он не сможет с ним соединиться, так как одновременно управлять дроном может только одно мобильное устройство. Я проверял, что когда я посылал пакет D-off на свой планшет, смартфон жены продолжал работать с дроном нормально. То есть я могу прервать соединение с дроном для конкретного устройства.

И пока тот парень будет разбираться со своей связью, я щелкну по кнопочке EMERGENCY, расположенной вверху экрана, и дрон тут же свалится с небес на землю.

Итак, если устройство, на котором запущено приложение Free Flight 3, отсоединить от сети, то после восстановления связи оно по умолчанию не будет пытаться снова соединиться с Bibop дроном. 

Если у Вас имеются лишние деньги, можно купить Skycontroller, который расширяет диапазон управления дроном. На следующем слайде показано, как он выглядит. Как выяснилось, это ещё одна полностью открытая точка доступа.

При этом планшет соединяется с контроллером Skycontroller, а уже он соединяется непосредственно с дроном. Это означает, что мы можем «ударить» пакетом Deauth по двум местам – по соединению «iPad-контроллер» или по соединению «Skycontroller-дрон». При этом планшет находится в док-станции, он не участвует в управлении и просто раздаёт WiFi контроллеру. Если я его отключу, то смогу захватить управление и контроллером, и дроном. То есть дрон станет моим. 

Данный вариант меня не беспокоил, потому что, в крайнем случае, я смог бы заняться кодировкой и написать эксплоит, но это было бы лишним, так как Free Flight 3 является полностью открытым приложением.

Далее я попытался исследовать воздействие магнитного поля. Для этого я использовал магниты из жестких дисков HDD и был разочарован результатом – магнитное поле не оказывало на дрон никакого влияния.

Замечу, что следы управления дроном Bibop, такие как штампы даты и времени, MAC-адрес и серийный номер, остаются в вашем IPhone в виде файла с расширением .pls, поэтому можно возобновить управление в любой момент или просто стереть их.

Попробуем рассмотреть нечто большее, чем Bibop. Для примера возьмём DJI Phantom 3, который был выпущен в прошлом июне. 

 

В режиме возвращения домой он полностью теряет ориентацию и условно говоря, пролетает мимо дома. Потеря сигнала GPS особенно опасна в ветреную погоду, потому что дрон теряет способность дрейфовать и падает на землю.

Далее я решил проверить, что произойдёт, если подвергнуть Phantom 3 действию магнитного поля. Перед тем, как использовать его первый раз, нужно настроить компас. Вы берёте его в руки, калибруете оси, затем опускаете на землю, и если всё сделано правильно, он взлетает. 

Если воздействовать на дрон магнитным полем, то после того, как вы откалибровали его и опустили на землю, он сообщит Вам: «Мне нужна калибровка»! Вы подумаете: «этого не может быть, ведь я только что откалибровал тебя»! Так что если раскидать вокруг дрона несколько магнитов от HDD, он даже не оторвётся от земли, потому что постоянно будет требовать калибровки.

Я составил таблицу сравнения двух моделей дронов. 

Искажение сигнала GPS для Bibop приводило к отказу функционирования режима возвращения домой, для Phantom 3 приводило к неполадкам управления полётом, дрейфу, проблеме с режимом возвращения домой и помехам приёма видеосигнала. Магнитное поле не оказывало на Bibop никакого влияния, а «Фантом 3» отказывался взлетать и постоянно требовал калибровки. 

Есть правила, которые регламентируют использование дронов в разных странах, касающиеся частот, диапазонов и каналов, и они для всех стран разные, как показывает таблица на сайте Parrot Bibop.

В общем, для меня это был очень весёлый проект. Я всё-таки достиг результата, поэтому могу смело изменить название этой презентации с «Как я сбивал назойливый дрон соседского ребёнка» на «Как я сбил назойливый дрон соседского ребёнка».

Благодарю за внимание. 

ист ? весь доклад на  последнем видео

и habrahabr.ru