Изображение: 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)
haiflive
18.04.2017 19:58+1инструкцией кто-нибудь поделится? что покупать, как эмулировать? а то из того что я наблюдал в продаже только устройства для колибровки за бешеные деньги. А тут всего 350 долларов?
i_am_mry
19.04.2017 09:22+2Ну у нас в Нижнем Новгороде планируется defcon в конце месяца, и на нем я покажу как подделать сигнал. Либо гуглите про слову HackRF
potan
19.04.2017 10:03По идее SDR должно справится. То есть надо искать приемник и передатчик совместимые с каким-нибудь GnuRadio.
depdol
18.04.2017 22:29+1Автор немного лукавит, говоря, что любое оборудование использующее GPS/ГЛОНАСС/Gallileo/etc можно обмануть и выдать подложные данные.
Для критически важного оборудования, которое использует позиционирование на основе спутниковых данных, всегда используют дифф-поправки, формулы для проверки достоверности информации со спутников и даже акселерометр. Или вы думаете только злоумышленники искажают сигнал? Например очень сильно искажает сигнал ионосфера земли, есть и другие факторы влияющие на сигнал.
Есть очень серьезное у меня ощущение, что тема не раскрыта совсем.2PAE
19.04.2017 08:03После раскрытия новости. «Хабра забанен за распространения информации о выведения из строя систем спутникового позиционирования!» ;)
EssentialRules
19.04.2017 08:35Так можно и ККС «надуть». Что касается акселерометров — это относительные измерения, для обмана нужно лишь какое-то время просто подождать.
Jef239
19.04.2017 08:57Диффпоправка от ККС при непрохождении контроля на время и расстояние просто игнорируется. Да и потом она всего пара метров, а тут искажение на десяток километров.
Jef239
19.04.2017 08:53+2Обмануть можно любой приемник. Собственно как приемники отлаживаются? Берется генератор сигналов, например СН-3805М и генерируемый сигнал подается на антенный вход приемника.
А вот аппаратура вторичной обработки, то есть та железка, в которую встроен приемник, может и иметь защиту.
Диффпоправки при несовпадении времени или координат — просто игнорируются. Это довольно штатная ситуация — настроились не ту базовую станцию или модем передал поправку с большой задержкой. Ну или сбой при передаче и получили мусор.
«формулы для проверки достоверности информации со спутников» супротив нормального генератора сигнала не помогут. Он потому и нормальный, что всю информацию передает достоверно.
Акселерометр применяют для совсем других целей, прежде всего он дает до тысячи измерений в секунду и имеет малый шум (но приличный дрейф). Поскольку у GNSS матожидание дрейфа в нулях, то акселерометры и гироскопы мы калибруем по GNSS, а не наоборот.
очень сильно искажает сигнал ионосфера земли
Ну наше «очень сильно» — это 15-20 метров. :-)
Что реально может помочь — это прием на «военного сигнала». То есть «безопасность через незнание». Как сказано в ИКД ГЛОНАСС «Использование сигнала ВТ спецпотребителями должно быть согласовано с
Министерством обороны Российской Федерации.» Насколько я знаю, безопасность там основана на периодически изменяемом ЦУПом коде. Но если этот код научатся вскрывать за пару часов — это тоже не поможет. Могу позвать человека, который в ВТ-коде разбирается, может он что-то расскажет.
Но пока я вижу защиту только пр помощи интернета и альтернативных систем позиционирования.
Немного радует, что это все верно для одной антенны. Разнесенные антенны как минимум будут давать сбой на фазовом решении.
Marwin
19.04.2017 11:07Как же бесит, что вокруг «неприступной крепости» в центре мск вечно глушится GPS… и ладно бы прям рядом со стеной, где трудно потеряться, но ведь и ближние районы захватывает… вчера ехал по переулкам там рядом… и без карты было тяжко
immaculate
19.04.2017 14:19Ага, у меня телефон в радиусе где-то 10-20 км от этого злополучного места не может найти себя. Сначала грешил на телефон, потом заметил, что каждый раз в одном и том же месте происходит, погуглил и нашел причину.
Их глушилка очень серьезно выбивает мой телефон из колеи, а так как центр Москвы знаю плохо, в сумме за прошлый год потерял наверное часов 10, мотая круги, пока телефон не начинал снова работать.
V_Maksim
20.04.2017 13:50Никогда ничего подобного не было, ни с одним и из телефонов. По Москве в центре езжу только с навигатором (не знаю я её, не местный), без сбоев. Работаю на Ильинке, Лубянском пр., т.е. совсем рядом.
V_Maksim
20.04.2017 14:05А вот gsm на Ильинке действительно глушится. Особенно чувствуется на мтс
tixit
25.04.2017 17:17Летом был проездом в Москве. Перез самым отъездом вдруг вспоминаю, что в андройдном навигаторе наверное нет карты Москвы. А времени уже это выяснять просто нет. И кидаю в карман на всякий случай еще один навигатор: туристический Garmin в котором есть вся Россия и Европа. Пока ехал, в дороге скачал карту Москвы в телефон. Приезжаю с Москву, включаю телефонный навигатор. А он банально спутники не ловит. Хотя дома-то он работал. Один найдет/потеряет, другой и так 5, 10, 20 минут. Я в шоке. Достаю туристический навигатор, включаю. 20 секунд и он показывает где я есть. Он меня в итоге и водил по столице. Примерно через час андройдный навигатор нашел ступники, начал показывать координаты. но делал это очень плохо, часто терял сигнал. Около Кремля действительно начал показывать всякие Внуково и т.п. В других местах тоже иногда перекидывал то прямо в лес, то в какое-то село. Но при этом туристический навигатор работал на отлично. И около Кремля показывал именно Кремль, а не что-то другое. И никуда не телепортировался. Вернувшись домой начал разбираться, а в чем же причина такого поведения навигатора в андройде. Начитавшись всяких форумов понял, что причина именно в андройде. В его настройках синхронизации времени от GPS, телефонной сети, через интернет и заданных часовых поясах. Вот эти синхронизации времени от разных источников и приводят к тому, что навигатор телепортируется во всякие Внуково или не находит спутники. Что из коробки он часто будет работать или средне или вообще плохо. И только повозившись с настройкой времени, получается добиться идальной работы навигатора. А туристическому навигатору проще: у него лишь один источник времени — GPS. Ну и какая-то собственная операционка.
vedenin1980
19.04.2017 11:25Интересно почему в навигационных системах не используется шифрование с открытым ключом? Ведь несложно сделать так чтобы расшифровать сигнал мог кто угодно, а вот изменить его было никак невозможно не зная закрытый ключ, который есть только на спутниках связи. Точнее оно наверняка используется у военных, но вот почему не используется у гражданских?
Busla
19.04.2017 11:44+1Потому что бесполезно — это лишь слегка усложнит реализацию: ретранслировать сигнал с другими временными задержками можно и не расшифровывая его.
alex7
25.04.2017 17:17Хотя бы не будет пакетов «из будущего». Приемник так же может запоминать последнее время и не обрабатывать более старые пакеты.
EnigMan
25.04.2017 17:17Ну нет, так можно будет имитировать только какое-либо известное место и время в прошлом при условии, что поток сигналов со спутника был записан заранее. Это уже сужает возможное применение хака. А не делаю так скорее всего потому, что подсчет и проверка эцп требует затрат вычислительных ресурсов и времени, на что навигационные спутники не рассчитаны, а приемники из-за этого стоили бы ощутимо дороже.
Busla
19.04.2017 11:35+1Что-то я сомневаюсь, что для Pokemon Go массово пошли подменять сигналы GPS — гораздо проще программно подменять API геолокации. В Android (и Windows?) это штатно в режиме разработчика делается, для Apple нужен jailbreak.
dimm_ddr
19.04.2017 11:43С программной подменой разработчики активно боролись и банили замеченных. С подменой сигнала сложнее, но и риски сильно ниже, если пользоваться разумно.
vedenin1980
19.04.2017 11:48Что-то я сомневаюсь, что для Pokemon Go массово пошли подменять сигналы GPS — гораздо проще программно подменять API геолокации.
Проще, но это определяли и банили или отправляли в софт бан/выводили плашку о читерстве. На самом деле, ИМХО игроки не столько подменяли сигналы GPS, сколько сознательно его "портили" (например, прятали включенный телефон там где сигнал был нестабильный, аля тумбочки и т.п.) или использовали телефоны с нестабильным в помещении GPS (например, китайские вендроиды). Оставленный на ночь телефон "набегал" десятки км., что давало определенные плюшки в игре. Или можно было играть сидя в кресле, пока персонаж бегал по городу. Причем, все это было абсолютно по правилам (игрок же не виноват, что у него GPS глючит)
Busla
19.04.2017 12:25И всё же я подозреваю, что здесь иная причинно-следственная связь. Простую технологию использовали неквалифицированные читеры и палились банально на фантастическом характере перемещений.
leonzone
19.04.2017 12:02+2> «Автодория»
> не составляет большого труда вывести эту систему из строя
ждём радар-детекторы с подобным функционалом :)heleo
19.04.2017 17:52SDR антенна за 350 зелёных тушканов + стоимость радара с софтом для манипуляций… Есть вероятность что будет стоить дороже одного модуля «Автодории» )
А пока используют обычные радар детекторы с базой координат известных радаров.
JerleShannara
19.04.2017 18:59Вот тут уже получится не «радар-детектор», а «антирадар», использование которого грозит бЭсплатным тренингом на темы «сушим сухари», «мыло на верёвке за 1 минуту» и т.п.
impetus
Ту посадку Иранцами амского беспилотника долго-подробно жевали на авиафоруме — похоже, фейк: скорее всего беспилотник разрушен (сам или сбили — не суть), а иранцы по обломкам и нагуленным фоткам быстро-быстро сделали полноразмерный макет из пенопласта. (каких целей они этим добивались и каких — достигли — отдельный вопрос вне тематики Хабра, я лишь к тому, что технических вопросах, где сильно завязана политика — очень много разного рода сомнительных вещей случается).