Изображение: 2Tales, Flickr

Сейчас приемник GPS/ГЛОНАСС есть не только в каждом смартфоне, но даже в тех устройствах, которые не особенно перемещаются — в промышленных установках, в датчиках телеметрии, в банкоматах. Кроме того, такие приемники обеспечивают навигацию в автоматически управляемых системах, от городского транспорта до военных дронов. Системы глобального позиционирования настолько глубоко проникли во все сферы нашей жизни, что большинство людей пользуются ими, не задумываясь о том, насколько им можно доверять.

Между тем уже есть множество примеров, подтверждающих, что подобные системы уязвимы к разнообразным атакам, включая spoofing, то есть подмену сигнала. Более 5 лет назад иранские военные смогли посадить американский беспилотник, используя данную технику. А в конце 2016 года темой многих СМИ стали искажения GPS и ГЛОНАСС в центре Москвы, около Кремля: навигаторы вдруг показывали своим пользователям, что они находятся в аэропорту Внуково. Мы решили выяснить, действительно ли нужно обладать возможностями спецслужб, чтобы спровоцировать подобные сбои.

Принципы глобального позиционирования


Для начала уточним, что сейчас в мире есть не одна и даже не две системы глобального позиционирования. Кроме общеизвестной американской GPS, существует российская ГЛОНАСС, европейская Galileo, китайская BeiDou, японская QZSS, индийская IRNSS, а также система SBAS в составе практически каждой из них. Все вместе они называются GNSS (Global Navigation Satellite Systems). Однако полное мировое покрытие на данный момент обеспечивают только первые две. QZSS и IRNSS работают только в определенных частях земного шара, и полное покрытие не планируется. Но все эти системы подвержены одним и тем же уязвимостям, так как используют один и тот же принцип работы и сходные технологии передачи сигналов со спутников. Мы рассмотрим эти уязвимости на примере GPS.

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


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


Используя эти знания, можно сгенерировать сигнал с заданными параметрами координат и времени. Об этом уже позаботились добрые люди, и теперь любой желающий может бесплатно собрать из исходников приложение, позволяющее генерировать такие сигналы. А затем, используя трансивер SDR (Software Defined Radio), злоумышленник может отправить такой сигнал на устройство пользователя вместо реального сигнала GPS, то есть произвести подмену координат и времени. Таким образом, нужно всего 350 $ на SDR плюс любой ноутбук, чтобы получить «навигационное оружие». Ниже приведены примеры атак, которые оно позволяет проводить.

Управление дронами. Гражданские квадрокоптеры имеют в своей программе запрещенные координаты объектов, над которыми им нельзя летать, — например, аэропортов и стадионов. Используя вышеописанное «навигационное оружие», можно убедить квадрокоптер, что он оказался во Внуково, в результате чего он не сможет лететь дальше и сядет. Предполагается, что именно такой защитой от дронов объясняются сбои GPS вокруг Кремля.

Искривление пространства. В одном из наших экспериментов GPS spoofing продолжался несколько дней. После этого Google проиндексировал окружающие нас точки доступа Wi-Fi и базовые станции сотовых операторов, в результате чего он теперь считает, что наш бизнес-центр находится в Китай-городе (на самом деле он находится в 7 км от Китай-города).

Здесь опять-таки стоит подчеркнуть, что для подобных атак не нужно быть спецслужбой. В 2016 году подобные техники массово «пошли в народ» благодаря игре с дополненной реальностью Pokemon Go. В Интернете появились пособия, в которых доходчиво объясняется, как с помощью GPS spoofing можно «искривлять карту» и ловить покемонов, не выходя из дома.

Машина времени. Более неожиданные последствия принесли наши эксперименты по изменению времени. Устройства компании Apple безоговорочно и без ведома пользователя переводят время согласно сигналу GPS, подставив прошлый год. В итоге телефоны теряют историю звонков, SSL-сертификаты оказываются недействительными, многие сайты и почта перестают работать. А «умные» часы стоимостью более 500 $ просто отправились в гарантийный ремонт, после того как получили GPS-время из прошлого года. Кстати, время можно переводить не только в прошлое, но и в будущее — что тоже приведет к разнообразным сбоям.


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


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


Изображение: Ricardo Diaz, Flickr

Что делать


Для защиты от подобных атак мы рекомендуем использовать комбинированные приемники GPS/ГЛОНАСС/Galileo/BeiDou, а также резервные источники времени (например, NTP) и альтернативные системы навигации (например, ориентацию по базовым станциям и Wi-Fi) для проверки достоверности сигнала спутника. Ну а простым путешественникам не стоит забывать о существовании классических бумажных карт, дорожных указателей и разговорчивых местных жителей.

Авторы: Павел Новиков, Артур Гарипов
Поделиться с друзьями
-->

Комментарии (27)


  1. impetus
    18.04.2017 16:08
    +2

    Ту посадку Иранцами амского беспилотника долго-подробно жевали на авиафоруме — похоже, фейк: скорее всего беспилотник разрушен (сам или сбили — не суть), а иранцы по обломкам и нагуленным фоткам быстро-быстро сделали полноразмерный макет из пенопласта. (каких целей они этим добивались и каких — достигли — отдельный вопрос вне тематики Хабра, я лишь к тому, что технических вопросах, где сильно завязана политика — очень много разного рода сомнительных вещей случается).


  1. haiflive
    18.04.2017 19:58
    +1

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


    1. Jef239
      19.04.2017 08:15

      Вот инструкция. Правда только GPS.


    1. i_am_mry
      19.04.2017 09:22
      +2

      Ну у нас в Нижнем Новгороде планируется defcon в конце месяца, и на нем я покажу как подделать сигнал. Либо гуглите про слову HackRF


    1. potan
      19.04.2017 10:03

      По идее SDR должно справится. То есть надо искать приемник и передатчик совместимые с каким-нибудь GnuRadio.


    1. drdoc
      20.04.2017 13:51

      Например вот это https://www.nuand.com/blog/product/bladerf-x40/


  1. depdol
    18.04.2017 22:29
    +1

    Автор немного лукавит, говоря, что любое оборудование использующее GPS/ГЛОНАСС/Gallileo/etc можно обмануть и выдать подложные данные.
    Для критически важного оборудования, которое использует позиционирование на основе спутниковых данных, всегда используют дифф-поправки, формулы для проверки достоверности информации со спутников и даже акселерометр. Или вы думаете только злоумышленники искажают сигнал? Например очень сильно искажает сигнал ионосфера земли, есть и другие факторы влияющие на сигнал.
    Есть очень серьезное у меня ощущение, что тема не раскрыта совсем.


    1. 2PAE
      19.04.2017 08:03

      После раскрытия новости. «Хабра забанен за распространения информации о выведения из строя систем спутникового позиционирования!» ;)


    1. EssentialRules
      19.04.2017 08:35

      Так можно и ККС «надуть». Что касается акселерометров — это относительные измерения, для обмана нужно лишь какое-то время просто подождать.


      1. Jef239
        19.04.2017 08:57

        Диффпоправка от ККС при непрохождении контроля на время и расстояние просто игнорируется. Да и потом она всего пара метров, а тут искажение на десяток километров.


    1. Jef239
      19.04.2017 08:53
      +2

      Обмануть можно любой приемник. Собственно как приемники отлаживаются? Берется генератор сигналов, например СН-3805М и генерируемый сигнал подается на антенный вход приемника.

      А вот аппаратура вторичной обработки, то есть та железка, в которую встроен приемник, может и иметь защиту.

      Диффпоправки при несовпадении времени или координат — просто игнорируются. Это довольно штатная ситуация — настроились не ту базовую станцию или модем передал поправку с большой задержкой. Ну или сбой при передаче и получили мусор.

      «формулы для проверки достоверности информации со спутников» супротив нормального генератора сигнала не помогут. Он потому и нормальный, что всю информацию передает достоверно.

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

      очень сильно искажает сигнал ионосфера земли

      Ну наше «очень сильно» — это 15-20 метров. :-)

      Что реально может помочь — это прием на «военного сигнала». То есть «безопасность через незнание». Как сказано в ИКД ГЛОНАСС «Использование сигнала ВТ спецпотребителями должно быть согласовано с
      Министерством обороны Российской Федерации.» Насколько я знаю, безопасность там основана на периодически изменяемом ЦУПом коде. Но если этот код научатся вскрывать за пару часов — это тоже не поможет. Могу позвать человека, который в ВТ-коде разбирается, может он что-то расскажет.

      Но пока я вижу защиту только пр помощи интернета и альтернативных систем позиционирования.

      Немного радует, что это все верно для одной антенны. Разнесенные антенны как минимум будут давать сбой на фазовом решении.


  1. Marwin
    19.04.2017 11:07

    Как же бесит, что вокруг «неприступной крепости» в центре мск вечно глушится GPS… и ладно бы прям рядом со стеной, где трудно потеряться, но ведь и ближние районы захватывает… вчера ехал по переулкам там рядом… и без карты было тяжко


    1. immaculate
      19.04.2017 14:19

      Ага, у меня телефон в радиусе где-то 10-20 км от этого злополучного места не может найти себя. Сначала грешил на телефон, потом заметил, что каждый раз в одном и том же месте происходит, погуглил и нашел причину.


      Их глушилка очень серьезно выбивает мой телефон из колеи, а так как центр Москвы знаю плохо, в сумме за прошлый год потерял наверное часов 10, мотая круги, пока телефон не начинал снова работать.


    1. V_Maksim
      20.04.2017 13:50

      Никогда ничего подобного не было, ни с одним и из телефонов. По Москве в центре езжу только с навигатором (не знаю я её, не местный), без сбоев. Работаю на Ильинке, Лубянском пр., т.е. совсем рядом.


      1. V_Maksim
        20.04.2017 14:05

        А вот gsm на Ильинке действительно глушится. Особенно чувствуется на мтс


        1. tixit
          25.04.2017 17:17

          Летом был проездом в Москве. Перез самым отъездом вдруг вспоминаю, что в андройдном навигаторе наверное нет карты Москвы. А времени уже это выяснять просто нет. И кидаю в карман на всякий случай еще один навигатор: туристический Garmin в котором есть вся Россия и Европа. Пока ехал, в дороге скачал карту Москвы в телефон. Приезжаю с Москву, включаю телефонный навигатор. А он банально спутники не ловит. Хотя дома-то он работал. Один найдет/потеряет, другой и так 5, 10, 20 минут. Я в шоке. Достаю туристический навигатор, включаю. 20 секунд и он показывает где я есть. Он меня в итоге и водил по столице. Примерно через час андройдный навигатор нашел ступники, начал показывать координаты. но делал это очень плохо, часто терял сигнал. Около Кремля действительно начал показывать всякие Внуково и т.п. В других местах тоже иногда перекидывал то прямо в лес, то в какое-то село. Но при этом туристический навигатор работал на отлично. И около Кремля показывал именно Кремль, а не что-то другое. И никуда не телепортировался. Вернувшись домой начал разбираться, а в чем же причина такого поведения навигатора в андройде. Начитавшись всяких форумов понял, что причина именно в андройде. В его настройках синхронизации времени от GPS, телефонной сети, через интернет и заданных часовых поясах. Вот эти синхронизации времени от разных источников и приводят к тому, что навигатор телепортируется во всякие Внуково или не находит спутники. Что из коробки он часто будет работать или средне или вообще плохо. И только повозившись с настройкой времени, получается добиться идальной работы навигатора. А туристическому навигатору проще: у него лишь один источник времени — GPS. Ну и какая-то собственная операционка.


  1. vedenin1980
    19.04.2017 11:25

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


    1. Busla
      19.04.2017 11:44
      +1

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


      1. alex7
        25.04.2017 17:17

        Хотя бы не будет пакетов «из будущего». Приемник так же может запоминать последнее время и не обрабатывать более старые пакеты.


      1. EnigMan
        25.04.2017 17:17

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


  1. Busla
    19.04.2017 11:35
    +1

    Что-то я сомневаюсь, что для Pokemon Go массово пошли подменять сигналы GPS — гораздо проще программно подменять API геолокации. В Android (и Windows?) это штатно в режиме разработчика делается, для Apple нужен jailbreak.


    1. dimm_ddr
      19.04.2017 11:43

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


    1. vedenin1980
      19.04.2017 11:48

      Что-то я сомневаюсь, что для Pokemon Go массово пошли подменять сигналы GPS — гораздо проще программно подменять API геолокации.

      Проще, но это определяли и банили или отправляли в софт бан/выводили плашку о читерстве. На самом деле, ИМХО игроки не столько подменяли сигналы GPS, сколько сознательно его "портили" (например, прятали включенный телефон там где сигнал был нестабильный, аля тумбочки и т.п.) или использовали телефоны с нестабильным в помещении GPS (например, китайские вендроиды). Оставленный на ночь телефон "набегал" десятки км., что давало определенные плюшки в игре. Или можно было играть сидя в кресле, пока персонаж бегал по городу. Причем, все это было абсолютно по правилам (игрок же не виноват, что у него GPS глючит)


      1. Busla
        19.04.2017 12:25

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


  1. leonzone
    19.04.2017 12:02
    +2

    > «Автодория»
    > не составляет большого труда вывести эту систему из строя
    ждём радар-детекторы с подобным функционалом :)


    1. heleo
      19.04.2017 17:52

      SDR антенна за 350 зелёных тушканов + стоимость радара с софтом для манипуляций… Есть вероятность что будет стоить дороже одного модуля «Автодории» )
      А пока используют обычные радар детекторы с базой координат известных радаров.


    1. JerleShannara
      19.04.2017 18:59

      Вот тут уже получится не «радар-детектор», а «антирадар», использование которого грозит бЭсплатным тренингом на темы «сушим сухари», «мыло на верёвке за 1 минуту» и т.п.