HackerSIM: разбор полетов

7b989de2a88044f4ab36240f79043fa2.png

В последнее время на Хабре и Гиктаймс появилось много статей (1, 2, 3, 4, 5, 6, 7) о SIM-карте, наделенной невиданными и неслыханными возможностями, что вызвало озабоченность и заинтересованность в различных кругах. Появилось множество скепсиса и споров, а затем различных теорий, порой потрясающих своей фантастичностью. Попробуем приоткрыть завесу тайны с технической стороны. Естественно, эти тесты не были бы возможны без данной SIM-карты, которую нам любезно предоставил MagisterLudi.

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

Начнем по порядку.

Первое разочарование


На SIM-карте нет лого Анонимуса, изображенного в самой первой статье:

0aaa16bb4cf947c5b47105315f77610c.png

Тут мы решили не продолжать исследование — ведь в логотипе же и была главная фишка.

f8d0066ba2c74c2aaa3dc1e18d23a083.png

Чья она?


ICCID SIM-карты (напечатанный на ней) говорит нам следующее:

667c485b126a4dbb85a0a557e7388417.png

Вставляем SIM-карту в телефон, и первое, что мы видим, — что мы находимся в роуминге, подключены к MTS, и третья строка, на которую невозможно не обратить внимание: AY Security — она сразу же говорит, чья это SIM на самом деле: www.aysecurity.co.uk/ru/aysim.html

70290f3511d944bab2d3ac1d9a95cd89.png

Занимательно, но в современном телефоне отображается совсем другая информация (остается загадкой, что значит «GT»):

4539f6dc3eba4bfdaeabf0efdbc19ae7.png

На сайте заявлены следующие «уникальные» фичи:

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


Первый и четвертый пункт уже активно обсудили на Хабре, поэтому мы не будем их затрагивать, а попробуем разобраться в остальных, гораздо более «мутных».

Принудительное шифрование


«Данная функция запрещает Вашей SIM карте снижать уровень криптования и заставляет игнорировать команды, поступающие от операторов или комплексов перехвата на отключение алгоритма формирования ключей шифрования (А8), хранящегося в модуле SIM. Таким образом, все ваши разговоры шифруются по алгоритму А5.1.»


На самом деле изначально вся передача ведется без использования шифрования, а включение шифрования осуществляется по команде от оператора Ciphering Mode Command. Вот пример из реальной сети (используется HackerSIM):

3fe141fb0dff417f9b55ae214fb3f9d5.png

Однако это точно так же работает на всех других SIM, поскольку шифрование обычно используется во всех российских сетях. Для проверки «запрета» работы без шифрования подключим к OpenBTS и попробуем позвонить:

42b582776f084696b6fc15bbf27551fa.png

Сначала действительно складывается впечатление, что SIM-карта как-то прознала, что шифрования нет, и заблокировала звонок. (Но на деле все не так, об этом чуть ниже, а еще обратите внимание на окно «Calling…» внизу экрана.) Однако если попытаться позвонить несколько раз подряд (в нашем случае три раза), то вызов проходит:

2622a4e6b19c4bd1b1778c1c5adb3569.png

Входящие звонки проходят без проблем и разговор тоже без проблем происходит:

7b989de2a88044f4ab36240f79043fa2.png

a3ff922cc0274092a6d1e507da6a2afd.png

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

Защита от комплексов перехвата


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


Вообще говоря, телефон выбирает не по уровню сигнала, а по параметру C2, который зависит от текущего уровня сигнала, от минимально допустимого сигнала для этой БС и от приоритета БС. Поэтому сама мысль, что это спасает от поддельной БС, — заблуждение. К примеру, OpenBTS, развернутая на SDR, имеет мощность порядка 100 мВт, что меньше, чем может сам телефон (до 1 Вт), и значительно меньше, чем стандартная базовая станция. Таким образом, перехват достигается не высоким уровнем мощности, а высоким приоритетом. И то, что телефон использует менее мощную БС, значит лишь то, что приоритет у нее выше.

Для измерения мощности, параметров C1 и C2 мы использовали приложение Greenhead.

Ну и немного скриншотов — список соседских и обслуживающих каналов (BCCH — arfcn, SC — serving cell, N1 — neigbour cell 1 и т. д.).

1. HackerSIM на самой мощной и самой приоритетной БС

337e7964709d428aa4589f2d98bda9c7.png

2. HackerSIM на не самой мощной, но самой приоритетной БС

9ca2b65912af4d109f1fa9d5a6d52acc.png

3. Включаем «комплекс перехвата», и… HackerSIM спокойно к нему подключается, хотя, если быть точным, то это телефон подключается, так как выбором сот SIM-карта не управляет, и HackerSIM не исключение:

e5e48471984b47d79b687420d21ea389.png

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

f749d6aefcf44108b673ff031329295b.png

Оптимизация расходов


Этот пункт звучит весьма оригинально, с учетом стоимости как самой SIM-карты, так и ее обслуживания.

Скрытие реального IMSI. Скрытие реального местоположения. Отсутствие биллинга. Виртуальный номер


Заявляется об отсутствии биллинга, и именно поэтому якобы невозможно отследить данного абонента. Однако если нет биллинга, кто выдает вот эту информацию?

c478020ccf5348ff873f692449c98d57.png

Отслеживание местоположения осуществляется через сеть SS7 с помощью описанных нами атак [http://www.ptsecurity.ru/download/PT_SS7_security_2014_rus.pdf]. Для этого достаточно знать IMSI абонента. Обычно его узнают через номер телефона; нам неизвестен номер телефона нашей HackerSIM, и по инструкции с сайта он нам почему-то не показывается (тут должен быть еще DID, по которому можно нам позвонить):

b8b3b2ef417f486c87b389cfad182a29.png

Мы не можем проверить «виртуальность» данного номера, потому что мы его не знаем. Но IMSI можно узнать из радиоэфира, например при подключении телефона к сети:

964094b7e8384c27b651f7d8cedaa15e.png

31a04b9e396e45b1b650563372567c11.png

Телефон отправляет Location Update Request, сеть запрашивает IMSI (Identity Request), телефон говорит свой IMSI (Identity Response), после чего вырабатываются сеансовые ключи (Authentication Request и Authentication Response), и только затем поступает команда на шифрование. Другими словами, IMSI можно перехватить в радиосети, даже не взламывая шифрования, но иначе быть и не может: так работает сотовая сеть.

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

Когда мы пытались звонить через Motorola C118, звонок сбрасывался, и никто в ответ не перезванивал. То же самое — при использовании утилиты mobile из пакета osmocom-bb:

7b9869c6ba104146a746df9a70e10570.png

Кстати, SMS сбрасываются с еще более интересной причиной:

16ece75e1e7a4a6e9c9bc2e0f32e2a94.png

Но вернемся к вопросу о том, почему в старой Motorola исходящий вызов не работает, а в современном телефоне он сбрасывается, а затем перезванивает PBX. Дамп радиоэфира раскрывает тайну:

ae128ceea3d541fcab2b95e332e5360f.png

При исходящем звонке вместо сообщения установления вызова (Setup) телефон отправляет USSD с номером вызываемого абонента, который долгое время гуляет по миру, добираясь до домашних Нидерландов, потом приходит USSD-ответ с незамысловатой фразой Calling start, а затем уже идет входящий звонок с привычной последовательностью Setup, Call Confirmed, Assigned Command.

614539b30d5e466ebed3a9a4292a58da.png

Таким образом, для SIM-карты запрещены любые исходящие активности, кроме USSD, и запрещены они домашней сетью. А сам вызов перехватывается приложением на SIM-карте и подменяется на USSD с вызываемым номером, это уходит в домашнюю сеть, в это время приложение завершает вызов, выводит сообщение «Calling...» на экран и ждет ответа на USSD; так же она проверяет использование «шифрования» в сети. Если USSD неуспешно или не приходит ответ Calling start, она просто блокирует вызов (то, что мы видели в поддельной сети).

Однако, видимо, производительность SIM-карты не позволяет перехватить все вызовы, и завалив ее вызовами, они начинают уходить напрямую.

Мы пытались повторить такое в реальной сети, чтобы произвести звонок в обход PBX, но там все звонки «отбиваются» сетью, поскольку, как уже сказано выше, для HackerSIM запрещены все исходящие активности.

Самые внимательные могли заметить на предыдущем скриншоте запрос Identity Request перед USSD-ответом. Это сообщение используется сетью для получения от телефона IMSI либо IMEI.

0e38c8db8daf49d3a317356add08c347.png

f87cea7856294fa292bef439be25ae16.png

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

Теперь, зная секрет исходящих вызовов, мы можем звонить и со старой Motorola, и с утилиты mobile пакета osmocom-bb.

d5aff34148d6482fb8da85bc7e043a79.png

Multi IMSI/Ki


Для пары смены IMSI/Ki необходимо использовать меню SIM-карты:

b4ae471843d04d619f3ac7b207427f9c.png

Callback on/off — включает (выключает) приложение SIM-карты, подменяющие исходящие звонки на USSD.

Menu — там ничего нет, кроме Exit.

Reset sim profile — сбрасывает TMSI и Kc (сеансовый ключ).

About

1f6104cc320c4f71b73816ad51eec9fd.png

Select Location — выбор IMSI/Ki.

eb77b986accc480da2d6d8f19b2fcc89.png

Global — IMSI 22201xxxxxxxxxx, принадлежащий итальянскому оператору TIM.

Global+ — IMSI 20404xxxxxxxxxx, принадлежащий голландскому оператору Vodafone Libertel.

USA — IMSI 310630xxxxxxxxx, не принадлежит конкретному оператору, используется в различных Global SIM.

Prime — IMSI 23418xxxxxxxxxx, принадлежащий британскому Cloud9/wire9 Tel.
Все IMSI, кроме Global+, в России не регистрируются по одной из этих двух причин:

a0ec76c8b9484d05bb18d61310a1c103.png

318f84a913a6447a93024e9f8f370faa.png

В режиме Global+ тоже не все гладко.

Список предпочтительных сетей (там, где точно будет работать):

List of preferred PLMNs:

        MCC    |MNC
        -------+-------
        234    |15        (Guernsey, Vodafone)
        262    |02        (Germany, Vodafone)
        208    |10        (France, SFR)
        222    |10        (Italy, Vodafone)
        214    |01        (Spain, Vodafone)
        505    |03        (Australia, Vodafone)
        228    |01        (Switzerland, Swisscom)
        206    |01        (Belgium, Proximus)
        404    |20        (India, Vodafone IN)
        404    |11        (India, Vodafone IN)
        404    |27        (India, Vodafone IN)
        404    |05        (India, Vodafone IN)
        404    |46        (India, 46)
        272    |01        (Ireland, Vodafone)
        202    |05        (Greece, Vodafone)
        232    |01        (Austria, A1)
        655    |01        (South Africa, Vodacom)
        286    |02        (Turkey, Vodafone)
        238    |01        (Denmark, TDC)
        268    |01        (Portugal, Vodafone)
        260    |01        (Poland, Plus)
        230    |03        (Czech Republic, Vodafone)
        250    |01        (Russian Federation, MTS)
        216    |70        (Hungary, Vodafone)
        226    |01        (Romania, Vodafone)
        244    |05        (Finland, Elisa)
        602    |02        (Egypt, Vodafone)
        219    |10        (Croatia, VIPnet)
        620    |02        (Ghana, Ghana Telecom Mobile / Vodafone)
        255    |01        (Ukraine, MTS)


Запрещенных сетей нет, но при попытке зарегистрироваться в «Билайне» и «TELE2» прилетает отказ из домашней сети, «МегаФон» работает, «МТС» — предпочтителен (в SIM-карте)

Вот что происходит при попытке подключиться в «Билайн»:

bc1939535a2e4ea5bcad70cbc64689b1.png

Так что, если эта SIM и работает в любой стране мира, то точно не работает в любой сети мира.

Выводы


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

Никаких фантастических и хакерских свойств сама SIM-карта не имеет.

© Habrahabr.ru