Кибератаки на гидроакустические системы: мифы и реальность

Приветствую вас, глубокоуважаемые!


«Если в ответ на запрос свой-чужой ответить неправильно, второй запрос придет уже на 533-ей частоте» ©


«Все это идет как-то мимо вас. Или сквозь вас. А по мне это идет, как паровой каток. Ни одной целой кости не осталось.» © А. и Б. Стругацкие, «Град Обреченный»

Вы когда-нибудь задумывались, как бы выглядел под водой, ну, скажем, бокс или спортивная ходьба?
Не успели мы толком насладиться всеми прелестями интернета вещей, как он уже стал стоп-словом при рассмотрении заявок на научные гранты, как начали появляться научные и не очень публикации на тему того, как противостоять кибератакам на гидроакустические системы позиционирования, и, (о боги!) на подводные сети автономных сенсоров!
Еще пару абзацев технического саспенса и я обещаю все объяснить.

Вам хорошо, вы сидите по ту сторону монитора и читаете очередную аналитику. А я до сих пор испытываю ложный стыд, когда отвечаю на вопрос, чем я занимаюсь. Знаете ли, многие даже не подозревали, что передать данные под водой это какая-то проблема. Или, скажем, что GPS не работает под водой.

Да что вообще происходит?


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

Для гидроакустической связи доступна очень узкая полоса частот, грубо — от единиц до десятков килогерц. Звук на разных частотах затухает неравномерно.
Если взять «среднее» море, то коэффициент затухания:

  • для звука частотой 1 кГц составляет величину порядка 0.1 dB/км
  • для звука частотой 10 кГц — 1 dB/км
  • а для звука частотой 100 кГц — беспощадные 10 dB/км.


Что это значит? Это значит что если вы работаете с широкополосным сигналом, то разные части спектра будут распространяться очень сильно по-разному.

Согласен, меня тоже всегда смущают эти децибелы и «паскали на корень из герц».
Если совсем сильно все упрощать, то средняя дальность связи:

  • на частотах в районе 1 кГц может достигать десятков километров (при определенной доле везения — сотни)
  • на частотах порядка 10 кГц — 10 километров
  • а на частотах в районе сотни килогерц — сотни метров, и дай бог если получится хотя бы не одна.

Очень грубая формула для прикидки частоты сигнала для достижения требуемой дальности выглядит так:

$$display$$kHz=40/km^{2/3}$$display$$


Или, если нужно прикинуть, какую дальность теоретически обеспечит сигнал заданной частоты:

$$display$$km=(40/kHz)^{3/2}$$display$$


В диапазоне от 1 до 100 кГц формула более-менее правдива.

На частотах порядка 20 кГц можно ожидать дальность связи 2–3 км, а на частотах в районе 100 кГц — 300 метров. Такие дела.
Шумы же, от всяких больших металлических штук, как правило, низкочастотные и распространяются на дальние дали.

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

Скорость звука в среднем 1500 м/с. Это значит, что на каждые полтора километра дальности, задержка, связанная со скоростью распространения сигнала, будет увеличиваться на 1 секунду.
Давайте осмыслим эти величины. Если мы условно передаем какой-то запрос на, скажем, 10 километров, то ответ мы можем принять никак не раньше 14 секунд. В одном из экспериментов ответный сигнал ожидался более двух с половиной минут, т.к. абонент находился на удалении 120 километров.

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

Шум, многолучевость и Допплер. Все моря, океаны и реки — шумят. Особенно сильно на частотах ниже 10 кГц. Звук отражается от дна, деталей подводного ландшафта, поверхности, отражения складываются в точке приема, траектория движения волн изгибается в следствие рефракции. Гидроакустические модемы могут держать связь на километрах, но не слышать друг друга через плотный слой морской травы, находясь в метре один от другого.

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

image

А что, если речь идет о мелководном водоеме? Позапрошлым летом коллеги работали на дистанции 800 метров при глубине 4 метра. Геометрически — это лужа на асфальте. Соотношение дистанции к глубине 200:1. Представьте себе, сколько раз звук отразится от дна и как сложится в точке приема.

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

Сети сенсоров?


Дежурная фраза звучит примерно так, что у нас 95% всего океана неизведанно. Очень заманчиво расположить на дне (или даже в толще воды) некие «узлы», которые измеряют какие-то параметры среды, накапливают и по требованию передают по цепочке куда-то. Например — на проходящее над ними военное научное судно.

Усредненное реалистичное энергопотребление таких штук в режиме передачи 5–15 Вт. Даже, если принять, что большую часть времени устройство проводит во сне, как знатный кот, то исходя из скорости передачи и примерной частоты сеансов связи, становится совершенно очевидно, что при сколь-нибудь разумном времени автономной работы, большую часть этого устройства будет составлять батарейка. Несколько десятков килограмм лития, большую часть которого никто никогда не поднимет со дна, потому что его замоет илом, оно зарастет ракушками, сгниет и в целом это «экономически не выгодно».

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

Тут я должен был бы привести какой-нибудь пример такой сети сенсоров. Ну хорошо, вот они:


Все эти тестовые сети находятся, так сказать, в «гребковой» доступности от берега. Все относятся к европейскому проекту FP7-SUNRISE.

Ниже схема с сайта проекта, иллюстрирующая расположения и функции разных лабораторий и тестовых площадок:

image

Насколько проект удался — сложно судить. Статей выпущено немало.

Общий бюджет — 5 320 023 Евро. Среди фандеров — много европейских университетов, бельгийский центр науки и технологии НАТО.

Статус проекта — закрыт 31 декабря 2016 года.

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

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

Другое дело различные глайдеры!


Движущая сила всех таких проектов иллюстрируется одной картинкой с сайта дочки Боинга Liquid robotics:
image

Красивое видео о том, что такое Wave-glider и как оно работает:

Что такое просто глайдер и как работает он:

Если у первого есть надводная платформа, которую видно, то второй может недели и месяцы (больше года!) шнырять по морям и океанам, редко-редко выныривая на поверхность.

Конверсию и внедрение оборонных технологий никто не отменял конечно, можно надеяться на это. В любом случае, Глайдеры и Wave-глайдеры — это масштабно, это всерьез и надолго.

Но суть вобщем-то в том…

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

Так что там насчет подводной спортивной ходьбы и бокса?


Сродни воздушным дронам, подводные тоже не прочь понимать где они находятся, с ними тоже хорошо бы иметь возможность поддерживать связь, даже когда штуки в погруженном состоянии.
В последние годы появляется просто ворох публикаций на тему именно противодействия неким эфемерным кибер атакам на подводные сети сенсоров и подводные системы позиционирования.
Самый лакомый кусок для авторов таких статей — это спуффинг, как его определять и как с ним бороться.
Казалось бы, дело крайне несложное — просто берем модель из систем спутниковой навигации, меняем скорость света на скорость звука и вот вроде бы и целая новая область науки и техники.
Давайте разбираться, на каких допущениях все это основывается.

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

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

Итак.

Дальномерно-угломерные системы


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

  1. Приемная на мобильной жертве
  2. Передающая на неподвижном приводном маяке. Антенна в этом случае должны быть ориентирована относительно сторон света образом, известным мобильной жертве.

С точки зрения способа определения дистанции:

  1. Методом запрос-ответ
  2. По предварительной синхронизации, излучающий приводной маяк
  3. Стартовый «запрос-ответ» для синхронизации, потом периодически излучающий приводной маяк

Если применяется метод «запрос-ответ», то единственный вариант осуществления спуффинга — быть ближе к жертве, чем приводной маяк. Тут все очень просто — навигационный сигнал в среднем имеет ощутимую длительность, и что немаловажно, длительность выраженную в расстоянии (помноженную на скорость звука).
Речь идет о десятках и сотнях миллисекунд, т.е. о десятках и сотнях метров. Спуффер должен принять запросный сигнал маяка и излучить ответный, смоделировав требуемую задержку, чтобы сформировать у жертвы нужный спуфферу образ того, как далеко она находится от приводного маяка.

Подменить угол прихода сигнала — невозможно, так как он объективно оценивается жертвой. Все, что может сделать спуффер в этой ситуации — подменить угол физически — просто быть с нужной стороны от жертвы.

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

Если применяется метод с предварительной синхронизацией, у спуффера, с одной стороны появляется некоторый простор для действий — необязательно находиться ближе к жертве, чем приводной маяк, можно просто вклиниться в периодическую передачу между сигналами маяка.
С другой стороны он в большей степени связан периодом излучения приводного маяка — может быть и так, что подменный сигнал просто не уместится в промежуток между настоящими.
Вариант с первичной синхронизацией по методу «запрос-ответ» и последующей передачей приводного маяка опять же, дает больше возможностей спуфферу, если он сумеет совершить подмену в момент первичной синхронизации.

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

Дальномерные системы


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

Разностно-дальномерные системы


Почти полностью похожи с предыдущими — на поверхности воды или на дне располагаются опорные точки, но теперь жертва ничего не излучает, а только слушает. Работа таких систем полностью повторяет идеологию GNSS — как спутники передают свои местоположения, так и опорные точки в гидроакустической системе позиционирования передают свои местоположения по часам, синхронизированным со всеми другими опорными точками.
Обычно, почему-то эту систему рассматривают в качестве наиболее подверженной спуффинг атаке. Скорее всего потому, что ее работа основывается практически на тех же уравнениях, что и у GNSS систем.
Итак, тут все происходит по той же идее, что находясь ближе к жертве, чем реальные опорные точки, спуффер передает подменный сигнал так, чтобы он приходил на жертву раньше настоящих сигналов. Т.к. абсолютные моменты излучения роли не играют, то спуффер может передавать сигналы сильно раньше, чем опорные точки. Важны лишь разности времен прихода сигналов на жертву.

Заключение


Все три класса систем на первый взгляд кажутся подверженными спуффинг-атакам, что же в этих рассуждениях не так?
На самом деле все очень просто: ощутимо малая скорость распространения сигнала играет злую шутку со спуффером. Чтобы что-то там подменить, нужно очень точно знать не только свое местоположение и местоположение опорных точек или приводного маяка, нужно знать местоположение жертвы!

Черт возьми, чтобы решить навигационную задачу, нужно сначала решить навигационную задачу как минимум три раза!
Это на воздухе спуффер знает где летит «фридом либерейтор», и может направлено кормить его подменными GNSS-данными. Под водой это можно сделать только в пределах прямой видимости, то есть это единицы метров, может быть десяток в самом оптимистичном случае.

Но неужели авторы этих публикаций упустили такую простую деталь?
Конечно нет. Я думаю они прекрасно все понимают. В части публикаций (в основном по подводным сетям сенсоров) такой вопрос вообще не поднимается, в других же, определять местоположение жертвы в статьях предлагается… гидролокацией!

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

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

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

  • Если это близко (сотни метров — единицы километров), то к ставящему спуффер просто подплывут на лодке и попросят объясниться
  • Если это далеко (десятки километров), то на несанкционированные (и бессмысленные!) щелчки гидролокатора легко могут ответить на »533-ей частоте».

Активно излучать под водой — это как ездить ночью в машине с включённым салонным светом — как минимум, неосмотрительно.

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

Поэтому и получается, что эффективный на воздухе бокс — GNSS спуффинг, оказывается скорее неуклюжим и бессмысленным в среде водной.

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

P.S.


Сознательно не привожу ссылки на публикации, интересующиеся сам без труда смогут найти статьи по словам «underwater acoustic spoofing».
Традиционно буду благодарен за конструктивную критику, сообщения об ошибках, пожелания и предложения!

© Habrahabr.ru