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

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

 

Немножко теории

Но прежде чем дать фантазии разгуляться, сделаем небольшое отступление и углубимся в технологию мобильной связи. В телефонных сетях, в том числе и мобильных, четко разделяются абонентский (голос или данные) и служебный трафик (например, для установления соединения). По сути, служебный трафик — это и есть та самая система сигнализации № 7, включающая в себя определенный набор протоколов, правил и сообщений.
Адресация узлов в мобильной связи при взаимодействии между операторами происходит не по IP-адресам, а по адресам Global Title, формат которых напоминает телефонные номера. Адреса Global Title в обязательном порядке должны входить в диапазон телефонных номеров, закрепленный за оператором связи, а если на национальном уровне диапазоны разбиваются по регионам, то и адреса Global Title узлов сети должны соответствовать региональным диапазонам.

Мы не станем здесь описывать весь стек протоколов SS7. Достаточно сказать, что для взаимодействия узлов ядра мобильного оператора используется протокол MAP — Mobile Application Part. Протокол MAP нацелен на реализацию функций, присущих именно сетям мобильной связи, таких как аутентификация и регистрация мобильного аппарата в сети, локализация абонента для совершения входящего вызова, поддержка безразрывного речевого канала связи при передвижении абонента. Каждой операции соответствуют определенные сообщения протокола MAP со своим набором параметров. Далее упоминаются различные сообщения, и по умолчанию все они будут принадлежать протоколу MAP.


Мы привыкли использовать для мобильных коммуникаций обычные телефонные номера. В технических терминах мобильной связи эти номера называются MSISDN — Mobile Subscriber Integrated Services Digital Network Number. Этот номер присваивается абоненту при заключении договора с мобильным оператором. Но в недрах сети связи абоненты адресуются по другому идентификатору — IMSI (International Mobile Subscriber Identity), который привязывается к конкретной SIM-карте. Подавляющее большинство операций требуют адресации абонента именно по IMSI, следовательно, для проведения большинства атак, направленных на конкретного абонента, злоумышленнику в первую очередь нужно узнать этот идентификатор.

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

 

Варианты атак

Прелюдия

Итак, мы предполагаем, что злоумышленник получил доступ к сети SS7 и желает провести на тебя, читатель, ряд атак. Полагаем, что злоумышленник знает телефонный номер абонента-жертвы. Как было сказано раньше, злоумышленнику первым делом нужно получить идентификатор IMSI, соответствующий телефонному номеру жертвы. Для лучшего понимания процесса предлагаю сейчас отвлечься от самой атаки и посмотреть сперва, как работает один из простейших сервисов в мобильной связи — Short Message Service, «эсэмэски».

Как ходят SMS-сообщения

В первую очередь нужно отметить, что SMS-сообщения в мобильных сетях «ходят» по каналам сигнализации, совершенно не затрагивая каналы голосового и пакетного трафика. Для любой транзакции между двумя абонентами есть источник и получатель. Абонент, отправляя SMS-сообщение, указывает телефонный номер получателя и вводит текст. Однако в служебных полях сообщения содержится адрес SMS-центра: этот узел отвечает за маршрутизацию SMS-сообщений (и его адрес указан в каждом телефоне в настройках SMS-сообщений). Схема прохождения SMS-сообщения приведена на рис. 1.

Рис. 1. Схема прохождения SMS-сообщения
Рис. 1. Схема прохождения SMS-сообщения
  1. Абонент Алекс отправляет SMS-сообщение абоненту Борису. Это сообщение по каналам сигнализации приходит на мобильный коммутатор MSC-1, обслуживающий абонента Алекса.
  2. Коммутатор MSC-1 поймет, что это именно SMS, увидит в сообщении адрес SMS-центра и отправит по этому адресу SMS в сообщении MO-ForwardSM протокола MAP. Остановимся немного на этом сообщении. В нем указываются следующие данные: номер MSISDN отправителя, номер MSISDN получателя, текст SMS. И теперь SMS-центр сталкивается с непосильной задачей. Во-первых, дальнейшая передача SMS-сообщения требует знания IMSI абонента-получателя, во-вторых, SMS-центр ничего не знает о местонахождении абонента. Не забудем, что речь идет о мобильной связи, и абонент сегодня может быть в Москве, а завтра будет в Осло...
  3. Но на самом деле не все так плохо, потому что в сети мобильной связи есть база данных абонентов — HLR, где регистрируются перемещения абонентов с точностью до коммутатора. Именно в эту базу данных обращается SMS-центр, чтобы получить IMSI абонента и адрес обслуживающего его коммутатора. SMS-центр отправляет сообщение SendRoutingInfoForSM протокола MAP, где в качестве параметра указывает номер MSISDN абонента Бориса.
  4. Как мы сказали, в базе данных HLR хранится адрес коммутатора, обслуживающего абонента в данный момент. Кроме того, в HLR хранятся соответствия MSISDN и IMSI. Именно эти два параметра HLR и отдаст в ответном сообщении SendRoutingInfoForSM.
  5. Теперь SMS-центр отправляет сообщение MT-ForwardSM на полученный адрес коммутатора, в котором передает текст SMS, указывает номер MSISDN отправителя (он отобразится при получении SMS), а абонента-получателя адресует по IMSI.
  6. Принимающий коммутатор отправляет SMS-сообщение абоненту Борису, получая данные о точном местонахождении абонента в своей базе данных.

Получение IMSI и прочих прелестей

Итак, с помощью сообщения SendRoutingInfoForSM SMS-центр получает IMSI абонента и адрес обслуживающего коммутатора по телефонному номеру. Если принять, что в схеме прохождения SMS-сообщения Алекс и Борис являются абонентами разных сетей, то мы обнаружим, что сообщение SendRoutingInfoForSM ходит между сетями (рис. 2).

Рис. 2. Прохождение SMS-сообщения между сетями
Рис. 2. Прохождение SMS-сообщения между сетями

Для того чтобы SMS-центр смог сделать запрос, он должен «знать» адрес HLR чужой сети. Хотя... на самом деле это необязательно. SMS-центр может отправить сообщение SendRoutingInfoForSM, используя в качестве Global Title телефонный номер абонента-получателя. Так как адреса Global Title и телефонная нумерация находятся в едином диапазоне, сообщение будет доставлено в сеть получателя, а далее по телефонному номеру смаршрутизировано на соответствующий HLR. В ответном сообщении HLR раскроет свой адрес, а в виде параметров передаст адрес MSC и IMSI абонента.

В итоге получается, что злоумышленник, подключившийся к сети SS7, для совершения своих атак изначально может знать только лишь номер атакуемого абонента. Отправив сообщение SendRoutingInfoForSM, он получит адрес HLR, адрес MSC и IMSI абонента.

 

Определение местоположения абонента

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

Структура сотовых сетей

Каждый видел антенны базовых станций сотовой связи: в городах ими усеяны практически все высотные здания. За пределами городской застройки антенны базовых станций чаще всего устанавливают на специальных мачтовых сооружениях. Базовые станции обеспечивают радиопокрытие сети, которое в идеале, конечно, должно быть без белых пятен. Базовые станции подключаются к контроллерам — BSC (Base Station Controller) в стандарте GSM и RNC (Radio Network Controller) в стандарте UMTS. Контроллеры подключаются к коммутатору MSC.

На базовой станции, как правило, устанавливают несколько антенн, каждая из которых покрывает свой сектор, или соту. Каждая сота имеет идентификатор CID — Cell ID. Соты объединяются в группы, называемые Location Area, и определяются идентификатором LAC — Location Area Code. Часто в Location Area входят все сектора, базовые станции которых подключены к одному контроллеру.

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

Каждый MSC тоже имеет свою базу — VLR (Visited Location Register), где хранится информация обо всех абонентах, попавших в зону действия этого коммутатора. Там даже есть данные LAC и CID для абонентов, но значение CID обновляется только в тот момент, когда абонент переходит через границы Location Area или совершает какое-либо другое активное действие. Хотя с точки зрения сети изменение информации о новом LAC — это такая же активность, как и телефонный звонок.

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

Трехходовка

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

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

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

Вторым ходом злоумышленник продолжает эмулировать работу SMS-центра. Он отправляет Silent SMS искомому абоненту в сообщении MT-ForwardSM. Само сообщение отправляется на коммутатор, адрес которого был получен на первом ходе, а адресация абонента происходит по IMSI. После прохождения этого сообщения информация о местоположении абонента в базе коммутатора обновится. Теперь там содержатся данные об актуальных LAC и CID.

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

Сообщение ProvideSubscriberInfo возвращает полный набор идентификаторов обслуживающей соты: MCC — Mobile Country Code, MNC — Mobile Network Code, LAC, CID. В интернете много сервисов, позволяющих по этим четырем параметрам определить географические координаты базовой станции и даже примерную зону покрытия соты. На рис. 3 показан результат определения моего местоположения в момент написания этой статьи. Точкой отмечена базовая станция, а здание, где я сижу, действительно находится в пределах указанного круга.

Рис. 3. Определение местоположения автора статьи
Рис. 3. Определение местоположения автора статьи
 

Нарушение доступности абонента (DoS)

Следующая атака — DoS абонента. Для понимания техники атаки снова погрузимся в принципы работы сетей мобильной связи.

Регистрация абонента в роуминге

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

Рис. 4. Регистрация абонента в сети роуминг-партнера
Рис. 4. Регистрация абонента в сети роуминг-партнера
  1. Абонент Алекс из сети с названием «Дом» едет в отпуск на море, выходя из самолета, включает телефон и попадает в сеть «Заграница».
  2. Коммутатор MSC Z по первым цифрам IMSI определят страну и сеть, откуда прибыл абонент, и отправляет в эту сеть запрос на аутентификацию абонента — сообщение SendAuthenticationInfo.
  3. Узел, который отвечает за аутентификацию и назначение ключей шифрования, называется AuC — Authentication Centre. Он определяет ключ шифрования и другую служебную информацию, необходимую для аутентификации, и отправляет ее в ответ.
  4. После того как абонент аутентифицирован, нужно произвести его регистрацию на новом коммутаторе MSC Z. Коммутатор отправляет в сеть «Дом» запрос на регистрацию — сообщение UpdateLocation. Это сообщение приходит на HLR.
  5. Получив сообщение UpdateLocation, HLR отправляет на коммутатор MSC D (где абонент был зарегистрирован ранее) сообщение CancelLocation, сообщая, чтобы он высвободил память от профиля абонента Алекса. Затем HLR в своей базе данных обновляет текущий адрес коммутатора на MSC Z.
  6. В ответ на запрос регистрации HLR отправляет на MSC Z профиль абонента в сообщении InsertSubscriberData. В этом профиле указаны подключенные услуги абонента и адреса интеллектуальных платформ, если абонент подписан на соответствующие услуги. Чаще всего в качестве интеллектуальной платформы выступает среди прочего система онлайн-тарификации.

После завершения этих действий абонент Алекс может совершать и принимать звонки в сети «Заграница». При входящем вызове в HLR будет приходить запрос о местоположении абонента, и он будет направлять вызовы на MSC Z сети «Заграница».

Проведение атаки

Что остается сделать злоумышленнику, чтобы отправить абонента в DoS для входящих вызовов? Просто послать в домашнюю сеть абонента сообщение UpdateLocation от имени MSC. Схема сигнального обмена показана на рис. 5.

Рис. 5. DoS-атака
Рис. 5. DoS-атака
  1. Сообщение отправляется на HLR, абонент адресуется по идентификатору IMSI (мы уже умеем получать необходимые данные). Еще один из параметров сообщения UpdateLocation — адрес нового коммутатора.
  2. HLR в своей базе данных отвяжет реальный коммутатор.
  3. HLR отправит профиль абонента на оборудование злоумышленника.
    Таким образом, абонент окажется вне зоны действия сети для входящих вызовов до тех пор, пока не случится одно из событий:

    • абонент переместится в зону действия другого коммутатора;
    • абонент перезагрузит телефон;
    • абонент совершит звонок или отправит SMS-сообщение.

Любое из этих действий инициирует процедуру UpdateLocation, которая в базе данных HLR обновит адрес коммутатора на настоящий.

 

Перехват SMS

Следствие предыдущей атаки

Мы уже привели всю теоретическую базу, необходимую для понимания методики перехвата SMS-сообщений. Фактически перехват SMS является следствием предыдущей атаки, если в качестве поддельного MSC злоумышленник укажет адрес своего оборудования. Рассмотрим на примере, как происходит перехват SMS-сообщений (рис. 6). Считаем, что злоумышленник получил все нужные идентификаторы абонента Бориса и провел на него успешную DoS-атаку, указав в качестве фальшивого MSC адрес своего узла.

Рис. 6. Перехват SMS-сообщения
Рис. 6. Перехват SMS-сообщения
  1. Абонент Алекс отправляет SMS-сообщение абоненту Борису, это сообщение приходит на коммутатор, обслуживающий отправителя.
  2. Коммутатор переправляет сообщение на SMS-центр. Как мы уже знаем, это происходит в сообщении MO-ForwardSM протокола MAP.
  3. SMS-центр не знает, где в настоящий момент находится абонент Борис, поэтому он отправляет запрос в HLR в сообщении SendRoutingInfoForSM.
  4. Поскольку на абонента Бориса была проведена успешная DoS-атака, в базе данных HLR содержится ложная информация о его местоположении. Эту ложную информацию и отдаст HLR SMS-центру в ответном сообщении SendRoutingInfoForSM.
  5. SMS-центр, ничего не заподозрив, направит SMS-сообщение в открытом виде на полученный адрес в сообщении MT-ForwardSM протокола MAP. А за этим адресом, как мы уже говорили, скрывается наш злоумышленник.

Возможности для злоумышленника

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

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

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

 

Подводя итоги

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

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

Второе но. Прежде чем пресечь зловредные действия, их надо заметить. Крайне малое число операторов проводит постоянный мониторинг сетей SS7 на предмет вторжений и атак. И даже если атака через сеть SS7 будет замечена и пресечена, никто не сможет сказать, когда она началась и как долго длилась.
Третье но. Широкий резонанс и огласку в СМИ получили несколько случаев злоупотреблений, связанных с SS7. Об одном из них сообщил Эдвард Сноуден, затем информация была опубликована в Washington Post. Речь идет о сервисе SkyLock, который позволяет вести слежку за мобильными абонентами, в том числе через сети SS7.

Рис. 7
Рис. 7

Как долго работал этот сервис? Сколько абонентов были «под колпаком» за время его работы? Как долго этот сервис еще проработал бы, не будь сообщения Сноудена? Вряд ли мы когда-нибудь получим ответы на эти вопросы.

Еще один нашумевший случай — прослушка мобильных абонентов Украины с территории России. Да-да, такое тоже реально благодаря возможностям SS7! С начала атак до их обнаружения и локализации прошло несколько месяцев. Атаки были пресечены административно-техническими методами, однако за то время, пока утечки информации оставались незамеченными, был нанесен значительный урон оператору и государству.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии