Компрометирование кораблей через изменение последовательностей NMEA

Компрометирование кораблей через изменение последовательностей NMEA

Никогда не доверяйте на сто процентов ECDIS и другим навигационным системам.

Автор: Ken Munro

Во время исследования модуля удаленного хранения (Remote Storage Module; RSM) в регистраторе данных рейса (Voyage Data Recorder; VDR), используемом на судне, нам удалось извлечь некоторые исторические данные. Дело происходило в Индии на складе, где хранилось морское оборудование. Несмотря на то, что информация с диска была стерта, при помощи специальных криминалистических утилит нам удалось получить много интересной информации:

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

Информация, показанная на рисунке выше, представляет собой ни что иное как набор последовательностей GPS NMEA. Если вы не знакомы с этой темой, рекомендую для начала ознакомиться с этой статьей.

Декодирование последовательностей NMEA GPS

Например, последовательность:

$GPGLL,1522.5150,N,2806.4014,E,232100.01,A,A*52

Декодируется так: «Geographic Position, 15 degrees 22 minutes 0.5150 seconds North, 28 degrees 6 minutes 0.4014 seconds East. Fix taken at 23:21:00 UTC, Data Active». Далее идет контрольная сумма сообщения, которая представляет собой 2-байтовый результат операции XOR-суммы, выполненной с этими данными.

Теперь мы знаем, где находилось судно 5 лет назад

Остальные аббревиатуры представляют для нас еще больший интерес:

HEHDT – истинный курс.

GPZDA – GPS-время.

BNALR – мониторинг и оповещение в случае неполадок навигационной системы (BNWAS).

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

AIVDV – AIS-данные (системы учетной информации). Я вернусь к этому вопросу позже, поскольку эта тема заслуживает отдельного рассмотрения.

Короче говоря, регистратор данных рейса представляет для нас интерес. Это устройство используется в качестве черного ящика на судах и, по сути, ничем не отличается от черного ящика, используемого в авиации.

Регистратор, в зависимости от типа и размера судна, будет записывать дату и время, координаты, скорость, курс, переговоры на капитанском мостике, радиоэфир, информацию с радаров и ECDIS-данные (Electronic Chart Display and Information System; Электронная система отображения графических данных и информации).

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

Вся эта информация для нас, хакеров, представляет интерес.

NMEA в связке с GPS

Последовательности NMEA GPS используются для связи навигационных систем на борту. Различные GPS-системы могут взаимодействовать друг с другом, передавать координаты и многое другое автопилоту и ECDIS.

NMEA-сообщения также используются для управления системами на борту: последовательные соединения по стандарту RS485 управляют балластными насосами, пропульсивной установкой, рулевой системой и так далее.

Но вначале нужно подключиться к последовательной сети

Любой узел в последовательной сети, которой связан с IP-сетью, скорее всего, имеет связь с системой спутниковой связи. Обновление устройство часто происходит через спутники. Во многих случаях без какой-либо сегрегации (разделения) с сетью судна.

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

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

Теперь, когда необходимый технический бэкграунд освещен, можно переходить к манипулированию данными.

Компрометирование кораблей без спуфинга и заглушения GPS-сигналов

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

Сообщения $GPAPA и $GPAPB могут использоваться для управления автопилотом. Использовать эти сообщения можно, например, так:

$GPAPA,A,A,0.10,R,N,V,V,011,M,DEST,011,M*82

Символ R отвечает за направление автопилота, последовательность «011,M» задает магнитный курс. Если поменять R на L, автопилот начнет двигать судно в неверном направлении. Несколько градусов по неправильному курсу в течение нескольких секунд во время интенсивного движения и вполне вероятно может произойти столкновение.

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

Формат сообщений $GPAPB в целом схож с форматом, который мы рассмотрели. Сообщение выше было взято из этой статьи.

Существуют и другие способы манипуляции GPS-данными, как, например, изменение GPS-датума, параметра $GPGBS для инициации ошибок в спутниковых данных, или модификация $GPHSC для отсылки команд рулевой системе.

Заключение

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

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

Напомните персоналу судна, что лишняя бдительность никогда не помешает. Никогда не доверяйте на сто процентов ECDIS и другим навигационным системам.


Мир сходит с ума, но еще не поздно все исправить. Подпишись на канал SecLabnews и внеси свой вклад в предотвращение киберапокалипсиса!