Дрон DJI под защитным щитом от GPS-спуфинга

Як захистити дрон від GPS-спуфінгу та вчасно виявити підміну координат

Джамінг — глушіння супутникової навігації, і спуфінг — підміна координат, непомітно увійшли в життя багатьох пілотів дронів.
Історія почалася з аварії нашого дрона DJI Mavic 3 Enterprise під час маршрутного польоту. Спочатку дрон просто перестав летіти за маршрутом і поплив за вітром. Ймовірно, сталася помилка компаса або зникла супутникова навігація. Потрібно було повертати апарат вручну. Незабаром супутники знову з’явилися. Але замість того, щоб зупинитися, дрон раптово на повній швидкості полетів убік, швидко знижуючись.
У результаті — жорстка посадка в полі, зламаний один промінь, двигуни забиті брудом. На щастя, підвіс і камера вціліли.
Що ж стало причиною аварії?
У нормі, якщо немає команд від пілота, дрон утримує позицію за допомогою GPS. Якщо його зносить, він, рухаючись проти вітру, намагається повернутися в цю точку. Тільки в нашому випадку змістився не сам апарат, рухалися хибні координати. Автопілот сприйняв це як реальний знос від точки, яку він повинен утримувати, і намагався його компенсувати.
Від появи перших ознак проблеми до моменту, коли хибні координати почали керувати дроном, минуло близько хвилини. Причому в момент аварії значок супутників залишався білим, а кількість супутників була навіть більшою, ніж зазвичай.
Після аналізу логів стало зрозуміло, що дрон став жертвою спуфінгу.

Механіка GPS-спуфінгу: хибні координати змушують дрон летіти у протилежний бік

Під час GPS-спуфінгу автопілот сприймає рух хибних координат як знос і спрямовує дрон у протилежний бік.

Чому самої лише наявності супутників недостатньо

Більшість операторів дронів звикли думати про GPS як про щось надійне: увімкнув дрон, дочекався супутників, побачив точку зльоту на карті — отже, навігація працює, дрон у разі чого повернеться сам і боятися нічого.
У звичайних умовах це справді так. Але сучасна практика показує: отримання координат ще не означає, що ці координати достовірні.
Проблема GPS-аномалій — це вже не лише про велику авіацію, військових або фахівців радіоелектронної боротьби. Вона безпосередньо стосується операторів БПЛА, аерозйомки, картографії, інспекцій, агросектору, охорони об’єктів і будь-яких завдань, де дрон керується на основі супутникової навігації.
GNSS — це загальна назва супутникових навігаційних систем: GPS, Galileo, GLONASS, BeiDou та інших. Однак власники дронів зазвичай називають усю супутникову навігацію словом GPS, тому в цій статті використовуватимуться обидва терміни.
Усі ці системи працюють із дуже слабкими радіосигналами, що надходять із супутників. Саме тому вони чутливі до радіоперешкод, придушення та підміни.
Головна проблема полягає в тому, що наявність супутників, координат і точки дрона на карті сама по собі ще не означає, що навігації можна довіряти.

Jamming і spoofing — у чому різниця

Сьогодні оператори дронів стикаються з двома основними типами впливу на супутникову навігацію: глушінням — jamming — і підміною навігаційних сигналів — spoofing.

Що таке GPS-jamming

Jamming — це придушення супутникового сигналу. Приймач не може нормально приймати сигнали із супутників, оскільки в їхньому діапазоні з’являється сильніша радіоперешкода.
Для оператора це зазвичай виглядає досить зрозуміло:

  • зменшується кількість супутників;
  • погіршується точність визначення положення;
  • координати стають нестабільними або зникають;
  • дрон перестає утримувати точку;
  • апарат починає плисти за вітром;
  • вимикаються автоматичні функції;
  • з’являється повідомлення про проблеми із супутниковою навігацією.

Іншими словами, при джамінгу дрон повністю або частково втрачає можливість нормально визначати своє місцеположення.
Це небезпечна ситуація, але вона зазвичай зрозуміла пілоту: GPS більше не працює, покладатися на Return to Home та автоматичні функції не можна, апарат потрібно повертати або саджати вручну.

Що таке GPS-spoofing

Spoofing — більш небезпечна та підступна ситуація.
Приймач не просто втрачає супутниковий сигнал, а починає приймати хибні навігаційні сигнали, що імітують справжні.
У результаті система може впевнено показувати позначку дрона на карті, висоту, швидкість і достатню кількість супутників, але ці дані вже не відповідають дійсності.
Іншими словами, при джамінгу навігація перестає нормально працювати, а при спуфінгу вона може виглядати справною, але створювана нею картина стає хибною.
Саме це робить спуфінг особливо небезпечним для безпілотних систем. Дрон може вважати, що перебуває в іншій точці, раптово почати відлітати, різко знижуватися, неправильно визначати напрямок повернення додому, неправильно виконувати автоматичну місію або реагувати на обмеження, яких у реальному місці польоту взагалі немає.

Чому дрон DJI сам відлітає під час спуфінгу

На перший погляд поведінка дрона при спуфінгу здається нелогічною: пілот не дає команд, а апарат раптово розганяється і кудись летить. Але для автопілота така поведінка цілком зрозуміла.
Уявімо, що дрон фізично висить на одному місці, а його хибні координати починають рухатися на схід. Навігаційна система сприймає це так, ніби сам апарат зносить у цей бік, і намагається повернути його назад. У результаті реальний дрон починає летіти на захід, компенсуючи рух, якого насправді немає. Причому пріоритет навігаційної системи може бути вищим за команди керування від пілота, і повернути або хоча б утримати дрон не вдається.
Якщо з’являється велика хибна навігаційна висота, дрон може почати інтенсивно знижуватися. Саме таку картину ми спостерігали під час нашої аварії: після повернення супутників апарат різко почав одночасно розганятися і втрачати висоту.
Хибні координати можуть впливати й на інші функції дронів DJI. Якщо вони переносять апарат у зону, заборонену для польотів (NFZ), дрон може почати аварійну посадку.
При значній розбіжності навігаційних даних із показаннями інших датчиків можливі й інші дивні прояви в поведінці системи. Однією з таких ознак стає сильний нахил підвісу камери, хоча сам дрон при цьому стоїть рівно.
Головне тут розуміти одне: дрон може активно відлітати не тому, що хтось «перехопив керування», а тому, що сумлінно намагається утримувати позицію за хибними координатами.

Чи можна перехопити керування дроном?

Я часто чую це запитання. Сучасні дрони DJI використовують захищений і зашифрований канал керування OcuSync. Достовірних випадків прямого перехоплення керування через OcuSync досі не зафіксовано.
Те, що сприймають за «перехоплення керування», найчастіше спричинене проблемами з навігацією. При її втраті дрон перестає утримувати позицію і просто пасивно пливе за вітром. Він адекватно реагує на керування і не змінює висоту. При спуфінгу поведінка стає значно агресивнішою: апарат може раптово розігнатися і полетіти вбік, почати знижуватися і не реагувати на команди пілота.
Але ним ніхто не керує безпосередньо ззовні — автопілот намагається компенсувати рух за хибними координатами.

Як зазвичай розвивається спуфінг

Одна з найпоширеніших помилок — оцінювати стан GPS лише за кількістю супутників. Багато супутників і білий значок у програмі — отже, усе добре. Мало супутників і червоний значок — погано. У звичайних умовах це може працювати як груба оцінка, але при спуфінгу такий підхід стає небезпечним.
У всіх зафіксованих нами випадках підміна координат ніколи не відбувалася миттєво, а розвивалася поступово. Спочатку нормальна супутникова навігація ставала нестабільною: зменшувалася кількість супутників, погіршувалося позиціонування, знижувався рівень сигналів (жовтий, а потім червоний значок). Через деякий час приймач знову починав показувати достатню і навіть більшу, ніж на початку, кількість супутників та хороший рівень сигналу. Але координати, обчислені за цими сигналами, вже були хибними.
Нерідко це були не просто координати зі зміщенням від реального місця. Позначка дрона могла швидко рухатися картою, переноситися на велику відстань, показувати висоту понад 1000 метрів або взагалі визначати положення за межами країни.

Схема розвитку GNSS-спуфінгу дрона: від перших перешкод до хибних координат і відльоту дрона

Як розвивається GNSS-спуфінг: перші ознаки з’являються ще до хибних координат — у цей момент дрон ще можна безпечно повернути або посадити.

Уся послідовність від появи перших ознак проблем із навігацією до формування стійких хибних координат, як правило, займає близько хвилини або трохи більше. Саме в цей рятівний проміжок часу можна врятувати дрон.
Якщо ж увімкнути дрон уже під час активного спуфінгу, він може відразу отримати неправильне місцеположення. При цьому приймач показуватиме звичайну або навіть більшу кількість супутників. Тому сама наявність і кількість супутників не підтверджує, що навігації можна довіряти.

Як розпізнати спуфінг до зльоту

Якщо дрон ще перебуває на землі, насамперед потрібно перевірити, чи відповідає його положення на карті реальному місцю старту.
Точка дрона не повинна рухатися картою, поки апарат нерухомий. Координати не повинні раптово переносити його на велику відстань, в іншу область або країну.
Також варто звернути увагу на навігаційну висоту. Поки дрон стоїть на землі, вона не повинна змінюватися на сотні або тисячі метрів.
Особливо підозрілою є ситуація, коли перед цим супутники зникали або їхня кількість помітно зменшувалася, а потім вони несподівано з’явилися знову.
Якщо координати явно не відповідають дійсності, злітати не можна, навіть якщо застосунок показує достатню кількість супутників і нормальний стан GPS.

Як розпізнати проблеми з GPS під час польоту

Найхарактерніші ознаки GNSS-аномалій:

  • раптове зменшення або збільшення кількості супутників;
  • дрон перестає утримувати позицію і починає плисти за вітром;
  • позиція дрона різко переноситься на велику відстань;
  • навігаційна висота різко зростає;
  • супутники спочатку зникають, а потім знову з’являються;
  • дрон несподівано активно розганяється без команди пілота;
  • починається інтенсивне зниження;
  • стабілізатор камери сильно нахиляється за креном;
  • з’являється повідомлення, що дрон перебуває в зоні, забороненій для польотів.

На карті в застосунку DJI Fly видно, як спуфінг «переміщує» дрон, що стоїть на землі.

У разі втрати супутникової навігації дрон зазвичай просто пливе за вітром, не змінюючи висоти. В оператора є час, і він розуміє, що потрібно переходити до ручного керування. При спуфінгу, коли вже прийняті хибні координати, дрон може дуже швидко й активно відлітати.

Що робити при втраті GPS або спуфінгу

Коли дрон перестав утримувати позицію і почав плисти за вітром, потрібно виходити з того, що супутникова навігація більше не працює. Не слід розраховувати на Return to Home або автоматичні функції.
Якщо після проблем із GPS супутники знову з’явилися, це ще не означає, що небезпека минула. Саме після відновлення супутників якраз і можуть з’явитися хибні координати.
У тому випадку, коли дрон починає самостійно розганятися, інтенсивно знижуватися або його положення на карті явно не відповідає дійсності, апарат необхідно посадити якомога швидше.

Чи можна захистити DJI від GPS-спуфінгу

Професійні засоби захисту від спуфінгу існують, але більшість із них не розрахована на звичайні цивільні дрони DJI. На практиці доступні три способи захисту:

  1. програмно керувати роботою навігаційної системи, за потреби відключаючи її та переводячи дрон у режим ATTI;
  2. повністю відключити приймання супутникових сигналів та їхніх підмінних аналогів;
  3. заздалегідь виявити ознаки спуфінгу, що наближається, і встигнути посадити апарат до того, як хибні координати почнуть керувати його поведінкою.

Програмна модифікація дрона. Режим ATTI

Найпростіший спосіб — перевести дрон у режим ATTI, тобто відключити утримання горизонтальної позиції за GPS. Про те, як це зробити, можна прочитати в наших статтях: 1 і 2
Цей спосіб не потребує фізичного втручання в конструкцію дрона і може вмикатися або вимикатися дистанційно за допомогою пульта. Якщо хибні координати рухаються, перехід у ATTI дозволяє пілоту керувати дроном вручну, не даючи автопілоту постійно компенсувати неіснуюче зміщення. Однак цей спосіб має обмеження. Якщо хибні координати потрапляють у заборонену для польотів зону DJI, апарат може почати примусову посадку. Якщо хибна висота перевищує допустиме значення (500 метрів), дрон може примусово знижуватися аж до землі.
Крім того, якщо при увімкненому режимі ATTI станеться втрата керування, захисний алгоритм DJI може повернути апарат у навігаційний режим прямо під дію спуфінгу. Тому режим ATTI, хоча і є важливим інструментом, не забезпечує повного захисту в усіх можливих сценаріях.

Військові прошивки

Існують спеціальні програмні модифікації, які іноді називають військовими прошивками, що дозволяють гнучкіше керувати використанням супутникової навігації та обмежень DJI. Такі рішення можуть працювати надійно і дозволяють за потреби вмикати або вимикати навігацію. Однак вони доступні лише для обмеженого модельного ряду, переважно старших моделей Mavic і Matrice, та потребують доступу до закритих технологій. Для більшості цивільних операторів і власників аматорських моделей цей варіант недоступний.

Бортовий GPS-джамер та антиспуфер

Зустрічається і проміжне рішення, за якого на борту дрона встановлюють мініатюрний малопотужний GPS-джамер або так званий антиспуфер. Принцип його роботи полягає в тому, щоб придушити приймання супутникових сигналів безпосередньо на борту дрона і тим самим не дозволити навігаційній системі отримувати хибні координати.
Однак такий спосіб має принципові недоліки. По-перше, дрон повністю позбавляється супутникової навігації. По-друге, навмисне створення радіоперешкод у діапазонах GNSS може впливати не лише на приймач конкретного дрона, а й на інші навігаційні пристрої поблизу. Застосування такого пристрою повністю незаконне. Тому для цивільного застосування такий спосіб не можна вважати прийнятним рішенням.

Фізичне відключення GPS-приймача

Більш надійний, хоча й складніший спосіб — фізично відключити або видалити GNSS-приймач.
Це повністю виключає вплив GPS-спуфінгу на навігацію дрона, оскільки апарат більше не приймає ані справжніх, ані хибних супутникових сигналів.
Але разом із цим перестають працювати:

  • утримання позиції;
  • Return to Home;
  • автоматичні маршрути;
  • частина захисних функцій;
  • геоприв’язка фотографій.

Фактично дрон стає радіокерованою моделлю без більшості автоматичних функцій.

GNSS-детектор для попередження про спуфінг

Ми розробили детектор GNSS-аномалій. Він незалежно стежить за супутниковою навігацією та попереджає оператора про перші ознаки джамінгу і спуфінгу ще до того, як хибні координати почнуть впливати на дрон.
Завдяки приладу пілот має близько хвилини від початку попереджень до моменту, коли хибні навігаційні сигнали почнуть відводити дрон.

Компактний автономний прилад перевіряє навігаційну обстановку перед зльотом і продовжує контролювати її під час польоту.
Він не підключається до дрона, не втручається в керування і не створює радіоперешкод. При виявленні підозрілих змін прилад подає зрозумілі звукові сигнали, послідовно позначаючи чотири рівні тривоги — від перших ознак аномалії до підтвердженого спуфінгу.

Головне — встигнути помітити проблему до того, як хибні координати почнуть керувати дроном.

Саме для цього ми й розробили окремий GNSS-детектор, який попереджає оператора про характерні зміни супутникової навігації на ранній стадії.

Про те, як влаштований прилад, що саме він контролює і як показав себе на практиці, розповімо в окремій статті.