Безопасность мобильного интернета изнутри и снаружи
С развитием мобильных сетей развивается и мобильный интернет. Все привыкли к обычному интернету: витая пара, Ethernet, TCP/IP. А что же скрывает в себе интернет мобильный? Попробуем выяснить! В нашем исследовании мы коснемся общих принципов работы мобильного интернета, рассмотрим поближе GPRS Tunneling Protocol, поговорим о GRX-сети и обсудим некоторые практические подходы к безопасности мобильной пакетной сети.
Как каждый из нас подключается к мобильному интернету? В принципе, необходимо знать только три параметра: APN, логин и пароль. APN — это точка доступа, через которую абонент может подключиться к необходимой ему услуге (WAP, MMS, Internet); у наших операторов она обычно выглядит как internet..ru. Логин и пароль обычно простые: internet — internet или вроде того.
Теперь, когда мы знаем необходимые параметры, мы можем подключаться к мобильному интернету! Как же происходит эта загадочная процедура? Происходит она в два этапа:
GPRS Attach
В процедуре GPRS Attach телефон начинает «общаться» с пакетной сетью оператора. Происходит аутентификация и авторизация пользовательского оборудования по следующим параметрам:
- абонента;
- ключи, хранящаяся на SIM-карте – для аутентификации абонента;
- проверка доступных абоненту сервисов (Internet, MMS, WAP) по записи в базе абонентов
После успешного завершения процедуры GPRS Attach начинается процедура PDP (Packet Data Protocol) Context Activation. Чтобы разобраться в этой процедуре, отвлечемся и определим некоторые понятия.
SGSN (Serving GPRS Support Node, узел обслуживания абонентов GPRS) — устройство, реализующее основные функции обработки пакетных данных в мобильной сети.
GGSN (GPRS Gateway Service Node, шлюзовой узел GPRS) — устройство, обеспечивающее передачу данных из сети оператора во внешние сети (например, в интернет). По сути может быть обычным маршрутизатором с поддержкой некоторых специфических функций.
GTP (GPRS Tunneling Protocol) — стек протоколов, используемый в GPRS-, UMTS- и LTE-сетях.
Итак, PDP Context Activation (схема сильно упрощена).
Что же происходит при реализации этой схемы?
- Телефон отправляет запрос активации контекста на SGSN, в котором, в числе прочего, присутствуют логин, пароль и APN.
- SGSN, получив APN, пытается разрешить его на внутреннем DNS-сервере. Сервер разрешает предоставленный APN и возвращает адрес отвечающего за данный APN GGSN.
- По этому адресу SGSN отсылает запрос на создание PDP-контекста.
- GGSN проверяет на RADIUS-сервере предоставленные логин и пароль.
- Затем получает IP-адрес для нашего телефона.
- И всю необходимую для активации PDP-контекста информацию передает обратно на SGSN.
- SGSN завершает процедуру активации, отсылая на телефон данные, необходимые для установления соединения.
Роуминг
Немедленно возникает вопрос: как же это все работает в роуминге? Оказывается, что существует специальная сеть: GRX (Global Roaming Exchange) — сеть для обмена пакетными данными роуминговых абонентов мобильных сетей. Через нее и «бегает» весь наш трафик. Примерно вот так:
- Успешно доехав в теплые края, мы решили скачать любимый сериал. Включили телефон, начали подключаться к интернету (отправляем логин, пароль, APN).
- Зарубежный SGSN пытается разрешить предоставленный нами APN на своем DNS-сервере.
- DNS-сервер, не найдя у себя подобных записей, обращается к корневому DNS-серверу, который находится в GRX-сети.
- Корневой DNS-сервер направляет запрос к DNS-серверу в сети нашего родного оператора.
- Тот в свою очередь отвечает ему адресом нашего GGSN.
- Корневой DNS сообщает этот адрес DNS-серверу зарубежного оператора.
- Который в свою очередь сообщает этот адрес зарубежному SGSN.
- SGSN, зная адрес GGSN, направляет ему запрос на активацию PDP-контекста.
- GGSN, если соблюдены все условия (есть деньги на счету, указаны верные логин и пароль и т. д.), присылает подтверждение, SGSN его принимает и пересылает нашему телефону подтверждение на доступ в интернет.
И тут приходит идея: а не попробовать ли нам сообразить нечто подобное в лабораторных условиях? Построить свои SGSN и GGSN. А ну как придем к невероятным открытиям?
SGSN + GGSN на коленке
После длительных поисков выяснилось следующее.
Существует ПО специального назначения, реализующее некоторые функции SGSN. Выглядит оно как скрипт под Linux, который способен эмулировать все необходимые процедуры (GPRS Attach и PDP Context Activation) и выдать в итоге готовый интерфейс для выхода в интернет, как будто бы мы воткнули 3G-модем. Узнав об этом, мы немедленно кинулись искать устройство, готовое взвалить на свои плечи функции GGSN. Оказалось, что популярный маршрутизатор Cisco 7200 вполне подходит.
После недолгих манипуляций, настроек и тестов нас ждал успех.
Стенд легко поднимал туннели, через которые был «виден» самый настоящий интернет. Мы тут же принялись смотреть, какие же пакеты ходят между нашими могучими SGSN и GGSN. Похожи ли они на настоящие? С замиранием сердца открываем дамп — и таки да! пакеты как настоящие.
Аналогичные пакеты могут ходить в GRX-сети, и их вполне может подслушать злобный хакер. Что же он там увидит? Попробуем разузнать.
Вопросы безопасности
Протокол GTP бывает нескольких типов: GTP-U используется для непосредственной упаковки и передачи пользовательских данных, GTP-C для управления сессиями (именно с его помощью осуществляется процедура PDP Context Activation и прочие служебные процедуры); существует еще GTP’ (GTP Prime) — он используется для передачи биллинговой информации. GTP не поддерживает аутентификацию пиров и шифрование, работает поверх UDP. Что во всем этом интересного? Интересно тут практически все!
Возьмем GTP-U и посмотрим, как выглядит туннель с пользовательскими данными. Туннели разделены параметром TEID (Tunnel Endpoint Identificator).
При дальнейшем изучении выяснилось, что при желании поле с TEID можно подменить, а отправив пакет с подмененным идентификатором туннеля можно неожиданно для себя вломиться в чужую сессию.
А вот GTP-C. С удивлением обнаружив отсутствие какой-либо аутентификации или намеков на шифрование передаваемых данных, можно попробовать не только послушать, но и, извините, что-нибудь послать. Например «левые» запросы на установление или разрыв сессии.
Попробуем таким образом наметить векторы возможных атак и рассмотрим их поближе.
Вот, например, атака DNS flood. Злоумышленник отправляет большое количество запросов на разрешение APN нашего оператора. Все эти пакеты будут бомбардировать бедный операторский DNS, который не выдержит накала и вообще откажется передавать адрес GGSN кому-либо, вызывая глобальный DoS для абонентов.
Или злоумышленник начнет отправлять собственноручно сформированные запросы на создание PDP-контекста. GGSN, увидев такой напор, вполне может и задуматься, а то и вовсе зависнуть. Что опять же приведет к отказу в обслуживании абонентов.
А что, если попробовать вместо запросов на создание отправлять запросы на разрыв сессии?
Злобный хакер, подставляя адрес зарубежного SGSN, будет отсылать запросы на разрыв соединения. GGSN, подумав, что абонент докачал свой любимый сериал и хочет завершить интернет-сессию, удаляет у себя этот туннель, разрывая соединение.
Набросав несколько векторов, обратим свой взор на реальные объекты, чтобы все это «потрогать». Наберем запрос «GGSN» в shodan. Вот кусок выданных результатов.
Все это смахивает на реальные GGSN, выставленные в интернет.
Или попробуем написать скрипт, посылающий запросы GTP-echo, да и пустить его гулять по интернету: вдруг кто откликнется. И откликающиеся находятся:
Иногда даже с открытым telnet.
В стандарте нового поколения под кодовым именем LTE все так же используется протокол GTP, а посему все вышеописанное актуально и будет актуальным в обозримом будущем.
На сегодня все. До новых встреч!
Хочу выразить благодарность отделу анализа безопасности сетевых устройств Positive Technologies за помощь в подготовке материала.
Автор: Илья Сафронов, Positive Research.
Шесть базовых правил мобильной безопасности
В это, возможно, сложно поверить, но сегодня, в век информационных технологий, шанс попасться на удочку мошенников ничуть не меньше, чем раньше. И часто причиной тому служит незнание самими пользователями основных правил безопасности, а порой и просто низкая бдительность.
Например, попросили Вас предоставить все секретные данные вашей банковской карты при оплате товара через интернет, и вы сообщили конфиденциальную информацию. Либо установили «вирус» на свое мобильное устройство, перейдя по ссылке в SMS или в одном из популярных мессенджеров.
Вы можете сказать, что такого никогда не случится, поскольку за безопасность отвечает банк. Отчасти это действительно так. Например, Сбербанк всегда использует инновационные технологии, обеспечивая безопасность своих клиентов. В этом году Сбербанком было запущено первое в мире мобильное приложение со встроенным антивирусом (для операционной системы Android), благодаря которому Сбербанк был удостоен авторитетной премии Global Finance.
Но, несмотря на меры, предпринимаемые банком, не нужно забывать о том, что безопасность должна соблюдаться, прежде всего, самими пользователями. Даже если вы уверены в том, что Вы знакомы со всеми правилами, не лишним будет еще раз повторить главные из них, чтобы не дать мошенникам шанс обмануть Вас.
Не сообщайте третьим лицам, включая сотрудников Банка, свои конфиденциальные данные: подтверждающие пароли, реквизиты банковской карты PIN и CVV-коды. Казалось бы, все об этом знают, но далеко не все применяют в жизни.
Важно знать: банк никогда не запрашивает пароль и не звонит клиенту для подтверждения отмены операции. Это еще одна уловка мошенников.
Используйте антивирус или установите приложение «Сбербанк Онлайн» с бесплатным антивирусом для телефонов Android.
С информацией о мерах безопасности при использовании банковских карт, интернет-банка и мобильного приложения «Сбербанк Онлайн» Вы можете ознакомиться по ссылке.
Если Вы получили неожиданное сообщение по SMS или в одном из популярных мессенджеров или по электронной почте с предложением перейти по ссылке (например, по поводу объявления на каком-то сайте либо с ссылкой на фото), ни в коем случае не делайте этого.
Скачивайте приложение «Сбербанк Онлайн» только из официальных источников, таких как GooglePlay, AppStore, магазина Windows.
Если Вы вдруг потеряли мобильный телефон или сменили номер телефона, срочно обратитесь в контактный центр банка с просьбой заблокировать карту или уведомить банк о смене номера Вашего мобильного телефона.
Не теряйте бдительность, внимательно проверяйте всю информацию о платеже, прописанную в SMS. Зачастую, пользуясь невнимательностью абонентов, мошенники просят подтвердить сторонние операции.
Конечно, шесть пунктов, указанных выше – это лишь часть всего свода правил, призванных обезопасить Вас от злоумышленников. Но, следуя хотя бы этим несложным предписаниям, Вы увеличите в разы эффект от усилий банка в области безопасности финансовых сервисов, и сделаете свою жизнь немного проще
Интернет-банк и мобильное приложение «Сбербанк Онлайн» доступны всем клиентам – держателям международных банковских карт Сбербанка (за исключением корпоративных карт и карт Сбербанк-Maestro и Сбербанк-Maestro «Социальная» Поволжского и Северо-Западного банков Сбербанка, выпущенных до 01.10.2013), подключенных к СМС-сервису «Мобильный банк».
Воспользоваться интернет-банком и мобильным приложением «Сбербанк Онлайн» возможно при наличии доступа в сеть Интернет. Мобильное приложение «Сбербанк Онлайн» доступно бесплатно для скачивания в магазинах приложений для использования на мобильных устройствах и платформах iPhone, iPad (являются товарными знаками компании Apple Inc, зарегистрированными в США и других странах), Android (является зарегистрированным товарным знаком Google Inc.), Windows Phone (является зарегистрированным товарным знаком корпорации Майкрософт). В отношении информационной продукции без ограничения по возрасту. Подробную информацию об Онлайн-сервисах Сбербанка и иных услугах уточняйте на сайте банка, в отделениях или по телефону +7 800 555 55 50.
Условия действительны с 13.10.2015. Изменение условий производится Банком в одностороннем порядке.
ПАО Сбербанк. Генеральная лицензия Банка России № 1481 от 11.08.2015.