В статьях о SS7 и Diameter улавливаются панические нотки: протоколы сотовой связи похожи на решето, от них нельзя взять и отказаться, их не исправить. И все же, телеком-апокалипсис до сих пор не случился. Сотовые сети работают, но каким образом?

Мы проверили, как и насколько эффективно сотовые операторы защищают сигнальные сети от хакеров. Один из мобильных операторов, работающих на территории СНГ, заказал две серии атак на свою сеть. Мы провели пентест до и после внедрения некой продвинутой защиты и хотим поделиться инсайдами.

Думаю, широкой публике будет интересно узнать, какие атаки возможны на практике и что делать для защиты личных данных. А специалисты увидят в этом посте рассказ об одном из первых black-box тестов сигнальных сетей в СНГ.

Подготовка к атаке

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

У Бастион есть легальный выход в международную сеть сигнализации SS7 и сетевой доступ к инфраструктуре Diameter
У Бастион есть легальный выход в международную сеть сигнализации SS7 и сетевой доступ к инфраструктуре Diameter

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

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

Методика тестирования

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

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

Round one

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

Атаки на раскрытие IMSI

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

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

Чтобы преодолеть барьер, мы намеренно искажаем сигнальные сообщения. Как правило, вносим изменения на SCCP или TCAP уровне — после этого некоторые фаерволы не могут корректно распарсить более высокие уровни сообщения и пропускают его без должной проверки.

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

Атакуем абонента через SS7

Зная IMSI абонента и используя MAP-операцию Update Location, мы «перенесли» абонента-жертву в свою фейковую сеть. Для сотового оператора это выглядит, как регистрация абонента в роуминге и, как правило, не вызывает подозрений. Так мы получили возможность перехватывать входящие звонки и СМС.

Принципиальная схема атаки с использованием фейковой сети
Принципиальная схема атаки с использованием фейковой сети

Развивая атаку и сформировав еще несколько сигнальных сообщений, мы выполнили от имени абонента-жертвы отправку СМС и USSD-запросов, изменение профиля услуг. Кроме того, этот вектор атаки можно использовать для DOS всех сервисов абонента.

Другая группа атак осуществляется, когда абонент находится в реальном, а не фейковом, VLR.

Выяснив VLR, в котором находится абонент, и представившись HLR’ом, злоумышленник может изменить его профиль в этом VLR. Для демонстрации этой уязвимости мы установили запреты вызовов в профиле абонента. А при подмене адреса обслуживающей IN-платформы в VLR-профиле абонента на адрес своей платформы, мы обрели полный контроль над исходящими вызовами — получили возможность блокировать, перенаправлять, прослушивать звонки с тестовых смартфонов.

Также в процессе тестирования мы реализовали атаки, позволяющие получить:

  • местоположение абонента с точностью до сектора базовой станции;

  • модель телефона;

  • состояние счета абонента и другую чувствительную информацию.

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

Атакуем абонента через Diameter

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

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

Итоги первого этапа тестирования

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

Подобные защитные настройки оборудования наиболее распространенный метод предотвращения атак на сигнальные сети. Их можно найти в базовых рекомендациях GSM Association или подобрать, полагаясь на практический опыт. Еще несколько лет назад такой защиты хватало, но сейчас она не покрывает всего спектра угроз. Этот механизм недостаточно гибок, чтобы отразить сложные структурированные атаки.

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

Почему инцидентов много, и их редко расследуют

Долгое время основным источником атак на сигнальные сети были страны Африки со множеством мелких сотовых операторов. Сегодня следы ведут в Океанию, и даже в Европу, но это ни о чем не говорит.

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

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

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

Round two

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

Новые атаки на раскрытие IMSI

Первое с чем мы столкнулись — это проблемы с повторным получением IMSI. Сеть либо не отвечала на запросы, либо возвращала фиктивные идентификаторы — на каждый запрос IMSI тестовых абонентов, мы получали разные IMSI.

Мы варьировали параметры запросов и пробовали все более сложные схемы, но ни один метод не сработал. Без IMSI целевые атаки на абонентов невозможны, так что безопасность сети значительно возросла.

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

Снова атакуем через SS7

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

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

Было бы совсем нечего написать в отчете, но достигли успеха атаки с использованием процедур UpdateLocation. Так что возможность перехватывать входящие вызовы и SMS абонента и отправлять сообщения от его имени сохранилась. Опасная уязвимость, если учитывать, как много сервисов используют двухфакторную аутентификацию при помощи SMS.

Снова атакуем через Diameter

Несмотря на сложности, которые вызывала новая защитная система, нам удалось получить информацию о профиле абонента и услугах. Кроме того, потенциальный злоумышленник по-прежнему мог бы использовать S6a ULR (Update-Location-Request), чтобы отключить абонента от сотовой сети. Это работает до переподключения, но массовая отправка таких сигнальных сообщений позволяет реализовать полноценную DOS-атаку.

Что в черном ящике?

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

Combine firewall, которые могут контролировать SS7, Diameter, GTP и SMS-трафик, как правило, снабжаются встроенной аналитикой, способны сопоставлять происходящие события и реагировать на атаки. Например, зафиксировав атаку по SS7, такой фаервол проверяет, какие сигнальные сообщения поступают на этого абонента по другим протоколам.

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

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

Внедрение фаервола в сигнальной сети достаточно долгий и кропотливый процесс, который включает в себя несколько этапов:

  1. разработка схемы защиты;

  2. настройка и проверка схемы в тестовой зоне;

  3. внедрение защиты в режиме детектирования с анализом статистики и логов блокировок;

  4. внедрение защиты с контролем KPI на ограниченном сегменте сети;

  5. и только потом внедрение защиты на всей сети.

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

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

Что же до рядовых абонентов — рекомендуем сохранять бдительность. Технологии SS7 скоро 50 лет, ее разрабатывали в те времена, когда всем участникам сети доверяли по умолчанию и считалось, что это нормально. Diameter был работой над ошибками, но и в нем нашлись фундаментальные уязвимости. Чтобы снизить риски:

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

  • Будьте аккуратнее с установкой приложений и разрешениями, которые они запрашивают. Это канал утечки идентификаторов, которые используют для атак.

  • Не пользуйтесь старыми гаджетами. Многие из них имеют незакрытые уязвимости в радиоинтерфейсах.

  • Используйте приложения для генерации одноразовых кодов доступа, там, где это возможно. Кстати, если вы разрабатываете какой-то сервис, подумайте над тем, чтобы пользователи могли авторизоваться при помощи одноразовых кодов (TOTP) и push-уведомлений.

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


  1. tabtre
    28.06.2022 12:23
    +4

    Скажу честно очень вкусное название и совсем нет вкусных подробностей…

    В ответ получили ошибку, но вместе с ней мы узнали адрес HLR. Далее, атакуя непосредственно HLR

    У оператора база HLR торчит напрямую в сеть?

    Зная IMSI абонента и используя MAP-операцию Update Location, мы «перенесли» абонента-жертву в свою фейковую сеть

    Можно подробнее про эту операцию?
    Вообще странно как так получается, абонент не уходил со станции оператора, он ее видит в своей сети и все равно куда-то перемещает?


    1. donovanrey Автор
      28.06.2022 14:18
      +6

      HLR доступен из сети ss7. К нему можно обратиться напрямую по его GT (адресу), если вы знаете адрес. Это нормальная ситуация.

      В начале теста мы не знали адреса HLR и могли обратиться к нему только через номер абонента. В данном случае маршрутизация по номеру абонента предусматривала определённую защиту на стороне оператора, но для конкретного GT HLR в защите нашлась брешь и мы получили нужный ответ от hlr.

      Что касается Update Location, то это стандартная операция map-протокола. Через неё происходит взаимодействие hlr абонента и vlr в котором он регистрируется.

      Мы регистрируем абонента в фейковой сети и таким образом перенаправляем входящий трафик абонента, например, SMS в свою сеть. Теперь они приходят к нам, а не на легальный vlr.

      В это время аппарат абонента видит легальную сеть, но он не взаимодействует с ней постоянно, поэтому регистрация в фейковой сети не "слетает". Любая активность абонента в легальной сети (исходящий вызов, исходящая смс и тд), после фейкового update location, приводит к возврату абонента в легальную сеть и удалению его профиля из фейковой.

      На регистрацию в фейковой сети нужно несколько секунд и ещё несколько минут на получение SMS (если это является конечной целью). Поэтому угон профилей (Телеграмм, Инстаграм и тд.) при помощи этой атаки обычно выполняют ночью когда активность абонента минимальна.

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


      1. tabtre
        28.06.2022 14:35
        +1

        Спасибо за развернутый ответ!

        HLR доступен из сети ss7. К нему можно обратиться напрямую по его GT (адресу), если вы знаете адрес. Это нормальная ситуация.

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

        Их продают сотрудники мелких транзитных операторов из стран со слабым законодательством.

        А не уж то не используют никакого черного списка с этими операторами для жесткой фильтрации запросов?


        1. donovanrey Автор
          28.06.2022 15:47
          +2

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

          HLR должен взаимодействовать с узлами ss7 сети, в том числе узлами других операторов, для того чтобы поддерживать все необходимые операции по данному интерфейсу. Он и сам рассылает в сеть разные апдейты (например при обновлении профиля абонента, изменении статуса услуг), и принимает сообщения из сети (например абонент устанавливает с аппарата безусловную переадресацию). Суть защиты как раз и сводится к ограничению этого взаимодействия только легитимными операциями. Но в некоторых случаях (например тот же update location) это нетривиальная задача.

          А не уж то не используют никакого черного списка с этими операторами для жесткой фильтрации запросов?

          Естественно отфильтровать можно и операторы этим занимаются. Как правило, оператор обнаружив какой то фродовый трафик с неизвестных gt, включает их в black list, после чего весь трафик с этих gt будет заблокирован. Но пока gt не выявлен, трафик с него поступает в сеть оператора и тут уже нужен более продвинутый анализ, позволяющий проверить внутреннюю структуру сообщений и принять решение о пропуске или блокировке этого сообщения. Как раз этот анализ мы и обходили в ходе тестирования. А злоумышленники после блокировки их gt ищут новые и выполняют атаки с них. Так что один раз заблокировать и забыть не получится.


  1. tabtre
    28.06.2022 16:44

    Также в процессе тестирования мы реализовали атаки, позволяющие получить:
    * местоположение абонента с точностью до сектора базовой станции;

    * модель телефона;

    модель телефона? или IMSI записана все-таки в базе? Почему спрашиваю, в GSM сетях не передается модель, может в новых что-то поменялось

    Развивая атаку и сформировав еще несколько сигнальных сообщений, мы выполнили от имени абонента-жертвы отправку СМС и USSD-запросов, изменение профиля услуг. Кроме того, этот вектор атаки можно использовать для DOS всех сервисов абонента.

    А для DOS не малова то будет абонентов?

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

    Самое интересное как выяснить какой gt у нужного VLR


    1. donovanrey Автор
      28.06.2022 19:24
      +2

      модель телефона? или IMSI записана все-таки в базе?

      В gsm сетях передаётся imei, по нему можно определить модель телефона.

      А для DOS не малова то будет абонентов?

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

      Самое интересное как выяснить какой gt у нужного VLR

      Да, это одна из самых интересных задач)


  1. tabtre
    28.06.2022 23:31

    Мы тестировали и Diameter-сеть

    Не сталкивался до этого с Diameter-сетью. Поэтому интересно как происходит доступ к Diameter? через SS7?


    1. donovanrey Автор
      29.06.2022 10:48

      Глобальная diameter сеть о которой идёт речь в посте предназначена для поддержки 4G роуминга. Это параллельная сеть, ss7 и diameter не связаны. Доступ в неё осуществляется через отдельные точки включения.


  1. HackcatDev
    29.06.2022 20:53

    У Бастион есть легальный выход в международную сеть сигнализации SS7 и сетевой доступ к инфраструктуре Diameter

    То есть какая-то сторонняя контора имеет легальный доступ в сразу две закрытые сети, никаким образом не будучи мобильным оператором? "Легальный" доступ используется исключительно для атак на других операторов? Не подскажете, где такой доступ можно купить?)