С развитием мобильных сетей развивается и мобильный Интернет. Все привыкли к обычному Интернету: витая пара, Ethernet, TCP/IP. Что скрывает мобильный интернет? Давайте попробуем это выяснить! В нашем исследовании мы коснемся общих принципов мобильного Интернета, подробно рассмотрим туннельный протокол GPRS, поговорим о сети GRX и обсудим некоторые практические подходы к безопасности мобильной пакетной сети.
Как каждый из нас подключается к мобильному Интернету? В принципе, вам нужно знать всего три параметра: APN, логин и пароль.
APN — точка доступа, через которую абонент может подключиться к нужной ему услуге (WAP, MMS, Интернет); у наших операторов это обычно выглядит как интернет. .
RU. Логин и пароль обычно простые: интернет — интернет или что-то в этом роде.
Теперь, когда мы знаем необходимые параметры, мы можем подключиться к мобильному Интернету! Как происходит эта загадочная процедура? Это происходит в два этапа:
- GPRS-подключение
- Активация контекста PDP.
GPRS-подключение
В процедуре GPRS Attach телефон начинает «общаться» с пакетной сетью оператора.Аутентификация и авторизация пользовательского оборудования происходит по следующим параметрам: IMSI (International Mobile Subscriber Identity, индивидуальный номер абонента) – для идентификации
- подписчик;
- ключи, хранящиеся на SIM-карте – для аутентификации абонента;
- проверка доступных абоненту услуг (Интернет, MMS, WAP) на основании записей в базе данных абонентов
Также можно проверить IMEI (международный идентификатор мобильного оборудования).
По этому идентификатору можно сверяться со списками украденного оборудования, и если в списке украденного оборудования есть конкретный IMEI, то в доступе к сети могут запретить, а то и сообщить «где он должен быть» :) После успешного завершения процедуры подключения GPRS начинается процедура активации контекста PDP (протокол пакетных данных).
Чтобы понять эту процедуру, давайте отвлечемся и определим некоторые понятия.
SGSN (Serving GPRS Support Node, узел обслуживания абонентов GPRS) — устройство, реализующее основные функции обработки пакетных данных в мобильной сети.
GGSN (GPRS Gateway Service Node, узел GPRS-шлюза) — устройство, обеспечивающее передачу данных из сети оператора во внешние сети (например, в Интернет).
По сути, это может быть обычный роутер с поддержкой каких-то специфических функций.
GTP (протокол туннелирования GPRS) — это стек протоколов, используемый в сетях GPRS, UMTS и LTE. Итак, PDP Context Activation (схема сильно упрощена).
Что произойдет, когда эта схема будет реализована?
- Телефон отправляет контекстный запрос активации на SGSN, который содержит, помимо прочего, имя пользователя, пароль и APN.
- SGSN, получив APN, пытается разрешить его на внутреннем DNS-сервере.
Сервер разрешает предоставленный APN и возвращает адрес GGSN, ответственного за этот APN.
- SGSN отправляет запрос на создание контекста PDP на этот адрес.
- GGSN проверяет предоставленные логин и пароль на RADIUS-сервере.
- Затем он получает IP-адрес нашего телефона.
- И вся информация, необходимая для активации контекста PDP, отправляется обратно в SGSN.
- SGSN завершает процедуру активации, отправляя на телефон данные, необходимые для установления соединения.
И теперь мы можем заходить на любимые сайты и читать почту.
Роуминг
Сразу возникает вопрос: как это все работает в роуминге? Оказывается, существует специальная сеть: GRX (Global Roaming Exchange) — сеть обмена пакетными данными между роуминговыми абонентами мобильных сетей.Весь наш трафик «проходит» через него.
Что-то вроде этого:
- Удачно приехав в теплые края, мы решили скачать любимый сериал.
Включили телефон и начали подключаться к интернету (отправляем логин, пароль, APN).
- Иностранный SGSN пытается разрешить APN, который мы предоставляем, на своем DNS-сервере.
- DNS-сервер, не обнаружив таких записей, обращается к корневому DNS-серверу, который находится в сети GRX.
- Корневой DNS-сервер пересылает запрос на DNS-сервер в сети нашего домашнего оператора.
- Тот в свою очередь отвечает ему адресом нашего ГГСН.
- Корневой DNS сообщает этот адрес DNS-серверу зарубежного оператора.
- Тот, в свою очередь, передает этот адрес зарубежному SGSN.
- SGSN, зная адрес GGSN, отправляет ему запрос на активацию контекста PDP.
- ГГСН, если все условия соблюдены (есть деньги на счету, указаны верные логин и пароль и т.д.), отправляет подтверждение, СГСН его принимает и отправляет подтверждение на наш телефон для доступа в Интернет.
Они работают по специальной сети, защищенной протоколом GTP. И все переговоры между спецтехникой операторов ведутся с использованием одного и того же GTP.
И тут приходит идея: а не попробовать ли нам выяснить нечто подобное в лабораторных условиях? Создайте свой SGSN и GGSN. Как мы можем прийти к невероятным открытиям?
СГСН+ГГСН на колене
После долгих поисков выяснилось следующее.
Существует специальное программное обеспечение, реализующее некоторые функции СГСН.
Это похоже на Linux-скрипт, который умеет эмулировать все необходимые процедуры (GPRS Attach и PDP Context Activation) и в итоге выдать готовый интерфейс выхода в Интернет, как если бы мы подключили 3G-модем.
Узнав об этом, мы сразу бросились искать устройство, готовое взять на себя функции GGSN. Оказалось, что популярный роутер Cisco 7200 вполне подходит. После некоторых манипуляций, настроек и тестов нас ждал успех.
Стенд легко поднимал туннели, через которые был «виден» настоящий Интернет. Мы сразу начали смотреть, какие пакеты проходят между нашими могучими SGSN и GGSN. Они похожи на настоящие? Затаив дыхание открываем свалку – и да! пакеты выглядят как настоящие.
Подобные пакеты могут перемещаться по сети GRX, и их вполне может подслушать злой хакер.
Что он там увидит? Давайте попробуем это выяснить.
Вопросы безопасности
Протокол GTP бывает нескольких типов: GTP-U используется для непосредственной упаковки и передачи пользовательских данных, GTP-C для управления сеансом (используется для выполнения процедуры активации контекста PDP и других сервисных процедур); Еще есть GTP’ (GTP Prime) — он используется для передачи платежной информации.GTP не поддерживает одноранговую аутентификацию и шифрование, он работает поверх UDP. Что во всем этом такого интересного? Здесь интересно практически все! Давайте возьмем GTP-U и посмотрим, как выглядит туннель с пользовательскими данными.
Туннели разделены параметром TEID (Tunnel Endpoint Identifier).
При дальнейшем изучении выяснилось, что при желании поле с TEID можно заменить, а отправив пакет с подставленным идентификатором туннеля, можно неожиданно взломать чужую сессию.
А вот GTP-C. С удивлением обнаружив отсутствие какой-либо аутентификации или намеков на шифрование передаваемых данных, вы можете попробовать не только прослушать, но и, извините, что-нибудь отправить.
Например, «левые» запросы на установление или завершение сеанса.
Попробуем таким образом очертить векторы возможных атак и рассмотреть их поближе.
Вот, например, атака DNS-флуд. Злоумышленник отправляет большое количество запросов на разрешение APN нашего оператора.
Все эти пакеты будут бомбардировать DNS бедного оператора, который не выдержит накала и вообще откажется передать кому-либо адрес GGSN, вызвав глобальный DoS для абонентов.
Или злоумышленник начнет отправлять лично созданные запросы для создания контекста PDP. ГГСН, видя такое давление, вполне может задуматься, а то и замереть.
Что снова приведет к отказу в обслуживании абонентов.
Что, если вы попытаетесь отправить запросы на разрыв сеанса вместо запросов на создание?
Например, вот так:
Злой хакер, подставив чужой SGSN-адрес, будет отправлять запросы на разрыв соединения.
ГГСН, думая, что абонент закончил скачивание любимого сериала и хочет завершить интернет-сессию, удаляет этот туннель, разрывая соединение.
Нарисовав несколько векторов, обратим взгляд на реальные объекты, чтобы «пощупать» все это.
Наберём запрос «GGSN» в shodan. Вот фрагмент возвращенных результатов.
Все это выглядит как настоящий ГГСН, выложенный в Интернете.
Или попробуем написать скрипт, отправляющий GTP-echo-запросы, и пустить его по Интернету: может, кто-нибудь откликнется.
И те, кто откликнулся:
Иногда даже при открытом телнете.
Стандарт нового поколения под кодовым названием LTE по-прежнему использует протокол GTP, а потому все вышесказанное актуально и будет актуально в обозримом будущем.
Это все на сегодня.
Еще увидимся! Выражаю благодарность отделу анализа защищенности сетевых устройств Positive Technologies за помощь в подготовке материала.
Автор: Илья Сафронов, Positive Research. Теги: #мобильный интернет #безопасность #GPRS Attach #SGSN #GGSN #удаление контекста pdp #gtp Flood #dns Flood #информационная безопасность
-
Управляйте Торговлей С Хостингом Act Premium
19 Oct, 24 -
Платформа Hcm: Интеграция Через Открытый Api
19 Oct, 24 -
Несколько Малоизвестных Практических Правил
19 Oct, 24