There are no translations available.
Будуємо вимикач безпілотника з використанням RPi, щоб зрозуміти ризики безпеки бездротового зв'язку.
Зверніть увагу: Представлена тут інформація призначена для освітніх цілей. Як і у всіх довідниках про безпеку мереж та комп'ютерів, наведені методи повинні використовуватися тільки на пристроях, якими володієте або маєте дозвіл на роботу з ними. Це керівництво допоможе користувачам зрозуміти наслідки для безпеки при незахищених бездротових комунікаціях шляхом вивчення їх використання для популярної моделі дрона Parrot AR.Drone 2.0.
Є незаконним отримання доступу до комп'ютерних систем, які вам не належать, або наносити шкоду матеріальним цінностям інших людей. Оскільки ми продовжуємо суспільний діалог про правила використання безпілотників, то дуже важливо розуміти багато аспектів цього питання, в тому числі, соціальні наслідки, політику, недоторканність приватного життя і, звичайно ж, безпеку. Ми сподіваємося, що виробники застосують заходи щодо підвищення безпеки своїх продуктів і користувачі продовжать вивчати можливості і уразливості нових технологій.
Примітка: Автор не несе ніякої відповідальності за результат неадекватних або незаконних дій, які є результатом зловживання будь-яким з методів, що обговорюються на сторінках сайту.
Квадрокоптери, завдяки здатності передавати відео високої якості, роблять можливим за доступною ціною записувати унікальні зображення. Але ці "безпілотні авіаційні системи», як називає їх FAA, поставили нові завдання в галузі безпеки, захисту і недоторканності приватного життя, тому багато експертів попереджають пілотів, щоб вони враховували наслідки розширеного використання дронів. На додаток до заклопотаності постійним наглядом, є ймовірність того, що підприємства (або хакери) можуть збирати інформацію про місцезнаходження з мобільних пристроїв, використовуючи бродячих дронів.
В результаті, використовуючи кустарне виробництво, формуються анти-безпілотні технології. Ці пристрої поставляються в діапазоні розмірів від однієї плати до ручних інструментів. Автор покаже, як створити власну установку для виконання атаки на конкретну мережу одного з типів управління квадрокоптером: на основі Wi-Fi.
Слово застереження
Хоча, автор не торкається глушіння сигналу і спрямованої енергії, але варто відзначити, що глушіння створює серйозні ризики для безпеки і є незаконним. Крім того, комп'ютерні методи, які ми розглянемо, повинні відтворюватися лише на мережах і пристроях, якими ви володієте, або маєте дозвіл на експеримент з ними.
Чому 802.11?
Wi-Fi є одним з ключових інтерфейсів для багатьох сучасних квадрокоптерів. Деякі використовують його як інтерфейс між контролером і планшетом, на якому відображуються картографічні дані та телеметрії. Кілька таких дронів, як Bebop від Parrot і AR.Drone 2.0, повністю контролюються за допомогою Wi-Fi. Цей тип системи знижує бар'єри для входу в простір дрону, оскільки пілоти можуть використовувати свої власні пристрої для контролю, а це дійсно створює цікаві ситуації в області безпеки, так як тепер існуючі на основі мереж атаки можуть бути використані проти цих пристроїв. Сучасні безпілотні літальні апарати, по суті, літаючий комп'ютер, так що багато які з атак, що були розроблені для використання проти традиційних комп'ютерних систем також є ефективними. AR.Drone 2.0, зокрема, має багато вражаючих функцій і датчиків, до яких можуть отримати доступ користувачі, а також низька вартість робить його ідеальною платформою для експериментів і навчання.
Як це працює
AR.Drone 2.0 створює точку доступу, до якої користувач може підключитися через смартфон. Точка доступу, яка створюється, називається ardrone2_ з подальшим випадковим числом. Ця точка доступу за умовчанням є відкритою і не пропонує аутентифікацію чи шифрування. Як тільки користувач підключає пристрій до точки доступу, він або вона може запустити додаток, щоб почати контролювати дрона. Цей процес, хоча і зручний для користувача, дозволяє легко взяти під контроль дрона. Насправді, AR.Drone 2.0 настільки вразливий для атак, що існують команди і конкурси, спрямовані на модифікацію цього конкретного дрона.
Наш експеримент
За допомогою портативного комп'ютера, USB карти Wi-Fi, а також нової антени, розглянемо дуже просту атаку. Подаємо живлення на AR.Drone 2.0 і за допомогою програми заставляємо його літати навколо. Через декілька секунд його точка доступу вже повинна відображатися в списку доступних нам бездротових мережах. Підключаємося до мережі і запускаємо свій улюблений термінальний додаток. Адресою шлюзу для цієї мережі буде 192.168.1.1. Ви отримали можливість використати Telnet за даною адресою, так як служба, на жаль, на цій системі широко відкрита.
Telnet - це один з найстаріших протоколів для доступу до віддалених комп'ютерів. На даний момент, ви можете досліджувати систему, або зовсім її вимкнути і законний користувач не знатиме, що відбувається. Використовуючи комбінацію вільно доступних мережевих інструментів, можете легко виконати всі ці дії зі свого комп'ютера.
Тепер розглянемо, як можна автоматизувати дану атаку за допомогою Raspberry Pi з сенсорним екраном та пари сценаріїв Bash.
Автор використав чудовий підручник (learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi), наданий Adafruit, щоб встановити Raspberry Pi з сенсорним екраном, так що автор міг почати свої атаки з одного клацання. Якщо припустити, що у вас вже є RPi, давайте розберемося, як можна автоматизувати цей процес.
На першому кроці треба увійти в свій RPi з використанням SSH:
Змініть каталог на робочий столі RPi (або на той, який хочете), щоб легко було знайти сценарії і натиснути кнопку:
Використовуючи ваш улюблений текстовий редактор, створіть новий файл. Автор назвав цей файл join_network.sh, тому що буде використовувати його, щоб RPi автоматично приєднувався до точки доступу AR.Drone 2.0:
Додайте наступні 8 рядків в сценарій. У рядку 7, введіть повне ім'я точки доступу AR.Drone 2.0. Після того, як закінчите, збережіть все:
Ми збираємося зараз автоматизувати з'єднання, яке спочатку протестуємо і відправити додаткову команду, щоб вимкнути безпілотник. Почніть зі створення іншого сценарію. Автор назвав його poweroff.sh.
Додайте наступні рядки в свій сценарій. Це ініціює Telnet-підключення до дрона, який знаходиться за адресою 192.168.1.1, і відправляє команду, яка наказує вимкнути живлення дрона (який є комп'ютером, як і всі інші), щоб посадити його:
Тепер переконайтеся, що сценарії є виконуваними. Зробіть це, набравши:
sudo chmod u+x [ім’я файлу]
Перевірте це для обох файлів; ми можемо переконатися, що вони тепер виконуваним, за допомогою команди:
ls -la
і переглянте дозволи rwx для читання, запису та виконання, пов'язані з файлом:
Два сценарії готові до використання. Переконайтеся, що немає людей та крихких предметів під квадрокоптером, коли будете проводити тестування. Отримуйте задоволення!
Будуємо банку-антену
Підсилимо бездротовий сигнал за допомогою спрямованої антени, виготовленої з банки.
У світі бездротового зв'язку, підключення є королем. Прикріплена до бездротового пристрою хороша антена буде підсилювати ваш сигнал і значно збільшить відстань. Менш ніж за годину, ви можете створити свою власну направлену банку-антену для підключення до віддалених бездротових хотспотів або, щоб з’єднуватися з такими бездротовими пристроями, як деякі з безпілотних літальних апаратів, навелених в цій статті.
1. Розрахунки
Для жорсткої частини конструкції розрахуємо найкраще місце для установки радіо роз'єму та правильну довжину дротяного елемента для ідеальних параметрів антени. На щастя, є багато таких інтернет-ресурсів, як, csgnetwork.com/antennawncalc.html, щоб допомогти нам з математикою. На малюнку нижче наведений огляд того, як розраховуються розміри:
З огляду на розміри банки, близько 100 мм в діаметрі, з'єднувач типу N повинен бути встановлений на відстані 44 мм від дна банки. Частота, яка нас цікавить, знаходиться в діапазоні 2,4 ГГц, тому загальна довжина необхідного мідного дроту буде близько 31 мм.
2. Вимірювання і розмітка
Відмірюємо 44 мм вгору від нижньої частини банки і відзначимо положення з'єднувача N маркером. (Автор виміряв 44 мм вниз від верхньої частини банки, яка має змінну кришку, яку використовував як задню частину антени.)
3. Свердлення отворів
На позначці, яку зробили, просвердлимо отвір, щоб N-роз'єм міг щільно прилягти. Буде добре почати з невеликого отвору і поступово збільшувати його діаметр, поки отвір не стане достатньо великим. Після того, як закінчите, треба зачистити область навколо отвору, щоб забезпечити хороший контакт з роз'ємом.
Перевіряємо, чи підходить роз'єм, і позначаємо 4 кріпильних отвори. Просвердліть їх, щоб вони відповідали розміру гвинтів, які будете використовувати для монтування роз'єму. Або не використовуйте гвинти, а просто припаяйте роз'єм до банку.
4. Припаюємо провід до роз'єму N
Вам необхідно підготувати роз'єм, перш ніж його встановлювати. Візьміть шматок прямого мідного дроту довжиною 10 см– чим пряміший, тим краще - і видаліть будь-яке покриття.
Тепер вам треба припаяти цей короткий мідний дріт до верхньої частини роз'єму. Це трохи складніше. Можна використати зажим, щоб розташувати все на місці перед його пайкою.
Після пайки проводу до гнізда, перевірте, а потім знову обріжте провід на відстань, яку ви розрахували на першому кроці. У випадку автора, це був 31мм.
5. Встановлюємо роз'єм
Якщо ви не паяли роз'єм до банки, затягніть кріпильні гвинти з зовнішнього боку банки їх гайками зсередини. При необхідності, можете обрізати нижню частину банки для доступу, а потім прикріпити її назад на місце, коли закінчите. Тепер у вас є абсолютно нова банка-антена.
6. Підключення до карти Wi-Fi
Пригвинчуємо з'єднувальний кабель до карти і N-роз'єму. Банка-антена готова до використання.
Йдемо далі
Ви можете пофарбувати банку, щоб зробити її більш привабливою, або додати ручку і встановити її на штатив для точного наведення.
Інші можливості, пов'язані з дроном
Це тільки верхівка айсберга - є цілий ряд речей, які могли б зробити зловмисники. До них відносяться зміна або видалення системних файлів, перехопленні відео і каналів датчиків, перемаршрутизація безпілотника на альтернативні місця, або їх комбінації. Хакер і розробник Samy Kamkar, людина з таких проектів в області безпеки, як RollJam і MagSpoof, навіть випустив проект, розроблений, щоб дозволити зловмиснику, атакуючого безпілотник, автономно шукати будь-які дрони Parrot в межах діапазону Wi-Fi, вимикати реального користувача та ініціювати нове з'єднання, через яке керувати атакованим дроном. В кінцевому підсумку, по суті це армія "зомбі" безпілотних літальних апаратів.
Також був протестували цілий ряд безпілотних літальних апаратів, які покладаються для своєї роботи, в тій чи іншій формі, на підключення до Wi-Fi. Всі протестовані дрони були чутливі до атак деаутентіфікаціі (deauth) і роз'єднання, які відключають всіх користувачів від точки доступу дрона, що призводить до втрати з'єднання з безпілотником.
Поза дронами
Любительська банка-антена неймовірно корисна для значного розширення відстані підключення. За допомогою тільки що зібраного на Raspberry Pi атакуючого пристрою, зловмисник може перепрограмувати комп'ютер, щоб виконати ряд таких атак, як deauth-атака на хотспот кафетерія. Чим це може бути «корисно»? Що ж, розглянемо наступний сценарій: зловмисник встановлює підроблену точку доступу під назвою "Better Wi-Fi", яка призначена для збору облікових даних. Клієнти задоволені, використовуючи зв'язок зі справжнім магазином кави, тому немає ніяких підстав для них, щоб приєднатися до підробленої мережі зловмисника. Знаючи це, зловмисник використовує свою атакуючу установку, щоб задіяти deauth-атаку проти реальної точки доступу і змусити всіх користувачів відключитися. Користувачі більше не зможуть досягти реальної точки доступу, а тому будуть змушені підключитися до Інтернету через підроблену точку доступу (яка переконливо названа) і їх облікові дані будуть збиратися.
Як захистити себе
Першим кроком, звичайно, є самостійне вивчення можливостей свого дрона, його обмеження і отримання належної практики безпеки. Є переваги використання Wi-Fi, наприклад, як засіб для керування машинами, але є багато речей, які треба розглянути з точки зору безпеки: бездротові протоколи безпеки, шифрування і відкриті порти. Для більш чутливих програм існують набагато більш безпечні варіанти, коли мова йде про командне керування. Завжди запитуйте дозвіл і налагоджуйте безпеку!
|