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

В 2015 году специалисты Positive Technologies осуществили 16 проектов по анализу защищенности сетей SS7 ведущих мобильных операторов регионов EMEA и APAC. Результаты восьми наиболее информативных проектов попали в нашу статистику. В этой статье мы рассмотрим уровень защищенности абонентов сотовых сетей, а также всех промышленных и IoT-устройств, от банкоматов до GSM-систем контроля давления на газопроводе, которые также являются абонентами сотовых сетей. В отчете описаны основные обнаруженные проблемы и пути их решения.

Преамбула: привет из 70-x


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

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

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

Впервые уязвимости SS7 были публично продемонстрированы в 2008 году: немецкий исследователь Тобиас Энгель показал технику слежки за абонентами мобильных сетей. В 2014 году эксперты Positive Technologies выступили с презентацией «Как подслушать человека на другом конце земного шара» и представили подробный отчет «Уязвимости сетей мобильной связи на основе SS7». В 2015 году специалисты SR Labs в эфире австралийской программы «60 минут», будучи в Германии, перехватывали SMS-переписку австралийского сенатора Ника Ксенофонта и британского журналиста, а потом наблюдали за передвижениями сенатора в командировке в Токио.

Общие результаты


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



Объем абонентской базы операторов

Итоговый уровень безопасности сетей SS7 всех исследованных операторов мобильной связи оказался крайне невысок. В 2015 году в отношении операторов связи и их сетей SS7 могли быть реализованы атаки, связанные с утечкой данных абонентов (77% успешных попыток), нарушениями в работе сети (80%) и мошенническими действиями (67%).

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



Доля успешных атак с целью получения чувствительной информации

Несанкционированный запрос баланса также был возможен почти повсеместно (92% атак). Для этой атаки используется сообщение ProcessUnstructuredSS-Request, в теле которого передается соответствующая USSD-команда.

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



Методы определения местоположения абонента (доли успешных атак)

Определить физическое местоположение абонента получилось во всех сетях, кроме одной. Основные методы — SendRoutingInfo и ProvideSubscriberInfo, причем последний давал результат при каждой второй атаке (53%).

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



Методы кражи информации об абоненте (доли успешных атак)

Другой метод определения IMSI — SendRoutingInfoForSM — оказался эффективен в 70% случаев. Данное сообщение используется при входящем SMS-сообщении для запроса маршрутной информации и локализации абонента-получателя. Узнать идентификатор абонента можно было и с помощью команды SendIMSI, но с меньшей вероятностью (25%).

Мошенничество


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



Мошенничество: доли успешных атак

Большинство атак с целью перенаправления входящих вызовов оказались успешны (94%). Это подтверждает наличие в сетях SS7 существенных проблем, связанных с архитектурой протоколов и систем.

Исходящий вызов удалось перенаправить лишь в 45% случаев. Для перенаправления применялся метод InsertSubscriberData.

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

Манипуляция с переадресацией — несанкционированная установка безусловной переадресации. Все входящие вызовы для абонента будут перенаправляться на указанный номер. Платить за вызовы придется абоненту.



Методы перенаправления входящего вызова (доли успешных атак)

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

DoS-атака на абонента


Чтобы сделать абонентское оборудование (телефон, модем, GSM-сигнализацию или датчик) недоступным для входящих транзакций, злоумышленник может осуществлять целенаправленные атаки на абонентов мобильной сети. Большинство исследованных нами сетей SS7 уязвимы для DoS-атак (успешны были 80%).

Во всех случаях применялся метод UpdateLocation; для атаки нужно знать идентификатор IMSI абонента. В сеть оператора отправляется сообщение UpdateLocation, информируя HLR, что абонент произвел регистрацию (в поддельной сети). После этого входящие вызовы на абонента маршрутизируются на адрес, указанный при атаке.

Причины проблем


Большинство атак на сети SS7 были возможны из-за отсутствия проверки реального местоположения абонента. На втором и третьем местах в списке причин — невозможность проверки принадлежности абонента сети и отсутствие фильтрации неиспользуемых сигнальных сообщений. На четвертой позиции — ошибки конфигурации SMS Home Routing.



Среднее число успешных атак в одной сети SS7 (в зависимости от недостатка)

Что можно сделать


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

Архитектурные проблемы протоколов и систем решаются путем блокирования нежелательных сообщений. В первую очередь следует обратить внимание на SendRoutingInfoForSM, SendIMSI, SendRoutungInfoForLCS, SendRoutingInfo. Фильтрация поможет избежать рисков, связанных с отказом в обслуживании, перехватом SMS-сообщений, перенаправлением вызовов, прослушиванием звонков, изменением профиля абонента.

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

Полная версия исследования: www.ptsecurity.ru/research/analytics.

Авторы: Дмитрий Курбатов, Сергей Пузанков, Отдел безопасности телекоммуникационных систем Positive Technologies
Поделиться с друзьями
-->

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


  1. EnterSandman
    12.07.2016 13:49

    Вопрос простой: насколько реально получить интерконнект с окс7? Не в РФ, а в Бангладеш например


  1. 640509-040147
    12.07.2016 15:25
    +1

    Пора включать это в CTF


  1. barbadian
    12.07.2016 15:26

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


    1. ptsecurity
      12.07.2016 16:05

      >> Затем подконтрольный коммутатор направляет вызов на оборудование товарища майора, который организовывает конференц-связь между прослушиваемыми абонентами и товарищем майором?

      — Да.

      >>В стандартной детализации вызовов этот сеанс связи отобразится с указанием номера товара майора?

      — В стандартной детализации отображается набранный номер. Номер злоумышленника в детализации не фигурирует.

      >> Если подконтрольный коммутатор находится в другой стране — как отразится на состоянии лицевого счета инициатора звонка?

      — Для препейдного абонента вызов проходит в обход реальной биллинговой платформы. Если будет происходить сверка CDR с базой онлайн биллинга, то абоненту позже могут предъявить счёт. Но, как правило, такая сверка происходит при серьёзном расхождении начислений в базах CDR и биллинговой платформы.

      >>Какова причина неудач в оставшейся половине аттак?

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


      1. barbadian
        12.07.2016 16:18

        — В стандартной детализации отображается набранный номер. Номер злоумышленника в детализации не фигурирует.

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


        1. ptsecurity
          12.07.2016 16:51

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


  1. Frankenstine
    13.07.2016 10:45

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


  1. Barabek
    13.07.2016 21:12

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

    Перехват сообщений выполнялся методом UpdateLocation. Злоумышленник регистрирует абонента-жертву в фальшивой сети, после чего все входящие сообщения SMS приходят на указанный им адрес
    — Нет такого метода перехвата. Update Location это процедура обновления местоположения. К сервису СМС не имеет отношения.

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

    Несанкционированный запрос баланса также был возможен почти повсеместно (92% атак). Для этой атаки используется сообщение ProcessUnstructuredSS-Request, в теле которого передается соответствующая USSD-команда
    — это не способ атаки. Просто баланс все обычно и запрашивают через USSD.

    Далее — местоположение. Да, SendRoutingInfo позволит вычислить местоположение. С точностью до MSC, зона действия которого — целый город или область. ID сот вовне уже давно никто не отдает. Можно ли это назвать успехом? С большой натяжкой.

    "… Наиболее ценная информация об абоненте — IMSI..." — не такой уж это секрет. Его видно в меню телефона, можно вычислить по iccId, который нанесен на симке. Можно даже выловить из эфира (в момент первой регистрации в сети, если вы точно знаете, на какой частоте/канале слушать и что именно нужная жертва в эту секунду включает телефон — непросто такое устроить). Ну, и в теории — возможно через SendRoitingInfo, хотя на практике операторы давно научились маскировать реальный IMSI, отдавая во вне липовый, чтобы принять ForwardSM и направить его реальному IMSI. Но, допустим, знаем IMSI. Что дальше? — дальше в эфире только временный TMSI, который будет меняться в неизвестный момент. Успех? — едва ли.

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