Год назад в «Хакере» публиковался мой материал о том, как устроен предбиллинг — системы учета услуг мобильных операторов. В этот раз я хочу поделиться с тобой случаем из жизни, который демонстрирует слабую сторону таких систем и их потенциальную (а в моем случае — и вполне реальную) уязвимость.

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

Как-то раз (а точнее, в 2014 году) я был в Китае и пользовался телефоном в роуминге. А для доступа в интернет купил местную SIM-карту. Приехав домой в Россию, я забыл вытащить эту симку из планшета и продолжал ей пользоваться. Пока на ней были деньги, она прекрасно работала на чужбине, даже несмотря на то, что APN (Access Point Name) на ней было прописано китайского оператора. И это совершенно нормально: приезжая в роуминг, гостевой абонент не обязан постоянно переписывать APN вручную.

Прошел месяц, планшет с китайской симкой прекрасно продолжал работать в России. Мне стало интересно, что же такое происходит и почему баланс практически не меняется, да еще и в роуминге! Еще один волнующий вопрос — можно ли воспроизвести эту ситуацию. Благо у меня были все необходимые условия для поиска ответов.

WARNING

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

 

Кто предоставляет интернет в роуминге?

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

  1. После включения телефона на оборудовании гостевого оператора выполняется процедура GPRS Attach (либо в обратную сторону отмена — detach).
  2. Наш телефон начинает общение с пакетной сетью гостевого оператора.
  3. У нас проверяют IMSI, ключ KSI (Key Set Identifier), доступные нам услуги.

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


В главных ролях — следующие компоненты.

  • GRX (Global Roaming Exchange) — сеть, созданная мобильными операторами для передачи пакетных данных абонентов в роуминге.
  • SGSN (Serving GPRS Support Node) — основное оборудование, которое обеспечивает функции передачи данных. Фактически это аналог коммутатора (MSC) в мобильной сети.
  • GGSN (GPRS Gateway Support Node) — маршрутизатор, который связывает мобильных абонентов с «внешним миром» и обеспечивает фактический доступ в интернет.
  • GTP (GPRS Tunneling Protocol) — протоколы туннелирования и управления пакетным трафиком в мобильной сети.

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

На самом деле вся эта схема сильно упрощена и нас интересует больше для понимания сути основных узлов. Более развернутая логическая схема выглядит слегка по-другому.


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

  1. Списание идет напрямую (CAMEL-роуминг) через биллинговую систему домашнего оператора на основании данных с оборудования по записям из файлов оценки.
  2. Списание происходит на основании файлов оценки, полученных от роуминг-оператора вместе с другими записями (голос, SMS).

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

Не буду подробно расписывать принцип работы сетей GRX. У них много своих уязвимостей, о которых в интернете уже немало написано. Если тебе интересно — поищи. Скажу только, что вся эта система построена и работает на основе стандартов, которые по большей части формирует консорциум 3GPP. И именно из-за стандартизации возникают проблемы и уязвимости. Сбить систему с толку может любое отклонение настроек от стандарта — причем настроек как оборудования, так и ПО.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

Shit gets real. Колонка главреда

В этом выпуске колонки я хотел бы поделиться с тобой небольшой личной историей, оттолкнувш…

Оставить мнение