После столкновения с проактивными SMS-сообщениями от SIM-карты AT&T (перевод статьи тут) я решил проверить и другие SIM-карты. Не секрет, что практически все они поддерживают проактивные функции, но мне стало интересно, сколько карт используют их фактически. Итак, я подготовил испытательный стенд для проверки имеющихся у меня симок.

SIM-карты

На первом этапе я ограничил тестирование крупными «тир-1» операторами, картами которых пользуется множество людей. Вот, что было у меня под рукой:

  • AT&T (рассмотрено, но перечислено для полноты)

  • Verizon

  • T-Mobile USA

  • Vodafone Romania

  • Orange Romania

Все эти SIM-карты были выпущены в период с 2014 по 2019 год.

Испытательный стенд

Стенд такой же, как и в первой статье, здесь повторяется для удобства:

  • Инструмент SIMTrace2, который размещается между SIM-картой и телефоном, позволяя отслеживать связь между ними.

  • Телефон. Я использовал Allview Soul.

  • The Legba Lab Kit, настольный эмулятор сети.

  • Обычный считыватель смарт-карт и программа для управления SIM-картами PySim.

Метод

Цель метода — отслеживать обмен данными между SIM-картой и телефоном, чтобы выяснить, какие проактивные функции использует симка. Чтобы активировать карту, будем использовать Lab Kit для имитации домашней сети SIM-карты. Шаги следующие:

  1. «SUT» — это тестируемая SIM-карта.

  2. Используйте PySim и считыватель карты, чтобы получить IMSI тестируемой карты.

  3. Используйте первые 5 или 6 цифр IMSI, чтобы получить PLMN домашней сети SUT.

  4. Запрограммируйте PLMN домашней сети SUT в GSM-эмулятор Lab Kit.

  5. Выключите телефон.

  6. Установите SUT в устройство SIMTrace2.

  7. Начните новый захват в Wireshark.

  8. Запустите программу simtrace2-sniff с пакетами, направленными на ваш хост Wireshark.

  9. Включите телефон.

  10. Обычно телефон распознает домашний PLMN своей SIM-карты и немедленно подключается к эмулируемой сети. Если нет, выберите его вручную.

  11. Оставьте телефон на 5 минут.

  12. Сделайте короткий телефонный звонок.

  13. Отправьте SMS самому себе.

  14. Дайте телефону постоять еще 5 минут.

  15. Проверьте логи Wireshark на предмет проактивных операций.

Для действительных SIM-карт, которые все еще обслуживаются, эмулятор не требуется, поэтому можете пропустить шаг №4.

Результаты

Итак, начнем с операторов, не показавших ничего примечательного.

  • Vodafone Romania

Все остальные показали интересные результаты.

Все SIM-карты использовали проактивные дополнительные услуги для изменения переадресации вызовов, но это не считалось чем-то «интересным». Я оставил пример в Pastebin, на случай, если кто-то со мной не согласится.

А теперь самое интересное.

AT&T

Про AT&T был отдельный пост, но он кратко изложен здесь для удобства. Протестированные SIM-карты отправляют SMS в AT&T всякий раз, когда обнаруживают изменение в IMEISV. Это изменение инициируется обновлением встроенного ПО baseband-процессора или перемещением SIM-карты на другой телефон.

Verizon

Протестированные SIM-карты Verizon пытаются открыть сеансы TCP/IP на порту 8443 по нескольким IP-адресам в блоках 63.55.x.x и 69.78.x.x, используя APN под названием «vznadmin». Поскольку это особый APN, неясно, действительно ли эти IP-адреса являются общедоступными в данном контексте, но если эти IP-адреса являются общедоступными, WHOIS показывает, что они принадлежат Verizon. Поскольку ни один из этих серверов не ответил, я так и не увидел, что на самом деле пыталась сделать SIM-карта, однако я заметил пакеты TCP/IP SYN на уровне SNDCP в Lab Kit, так что да, baseband-процессор действительно пытался открыть эти сеансы. (О, вы не знали, что SIM-карты могут открывать сеансы передачи данных, которые полностью невидимы для процессора приложений?) Я сохранил пример одного из этих SIM-сообщений в Pastebin.

T-Mobile USA

Эта SIM-карта иногда использует проактивное SMS-сообщение для отправки UDP-пакета на порт 1808 на каком-либо сервере по адресу ISDN 122. Оно отправляется через стандартный SMSC T-Mobile USA по номеру +12063130004. Полезная нагрузка закодирована в двоичном формате и содержит ASCII-текст: «Activate: dt = 15». (Обычное кодирование текста для SMS использует 7-битный набор символов GSM, а не ASCII. Это сообщение M2M.) Пример MO-SMS, полученный со стороны сети, доступен в Pastebin.

Orange Romania

Эта SIM-карта пытается отправить двоичное SMS-сообщение с полезной нагрузкой на ISDN-адрес 5692 через стандартный SMS-центр Orange Romania по номеру +40744946000. Полный пример сохранен в Pastebin. А что внутри сообщения?

Прямо из Wireshark у нас есть:

  1. 0060 XX XX XX 11 51 01 01 03 08 3a 25 76 03 08 91 23 ..;. Q….:% V… #

  2. 0070 06 04 0a 98 04 01 81 10 11 30 73 48 f5 05 09 08 ……… 0sH….

  3. 0080 29 62 01 62 20 51 23 61 06 14 ff ff ff ff bf 4f) bb Q # a …… .O

  4. 0090 80 ef 7f 00 80 0f 71 84 08 83 63 60 00 00 90 00 …… q… c`….

Как и в примере с AT&T, в этом сообщении используется TLV-форматирование, и большинство полей очевидны:

  • 11 51 01: Заголовок

  • 03 08 3a 25 76 03 08 91 23 06 : field type 0x03, length 0x08, IMEI

  • 04 0a 98 04 01 81 10 11 30 73 48 f5 : field type 0x04, length 0x0a, ICCID

  • 05 09 08 29 62 01 62 20 51 23 61 : field type 0x05, length 0x09, IMSI

  • 06 14 ff ff ff ff bf 4f 80 ef 7f 00 80 0f 71 84 08 83 63 60 00 00 : field type 0x06, length 0x14, возможно профиль терминала

  • 90 00: field type 0x09, length 0, неизвестно

Заключение

Из пяти тир-1 SIM-карт четыре проактивно отправляют сообщения или инициируют соединения через сотовый модем. Поскольку эти операции происходят между SIM-картой и baseband-процессором, их, вероятно, невозможно отследить с помощью процессора приложений и его программ под Android/iOS/любой другой оси.

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


  1. namikiri
    26.11.2021 11:26

    Поскольку эти операции происходят между SIM-картой и baseband-процессором, их, вероятно, невозможно отследить с помощью процессора приложений и его программ под Android/iOS/любой другой оси

    Слегонца конспирологично, но звучит как сговор. Почему нельзя «научить» модем спрашвиать у управляющего им драйвера, а можно ли отправить пакет по запросу SIM? Особенно на начальных этапах. И уже разработчики прошивки/ОС будут решать, разрешить такую отправку или нет.


    1. JerleShannara
      26.11.2021 12:15
      +9

      А теперь угадайте, по какой причине под новостями «Опен-Сурс Телефон — Вот теперь заживём!» появляются ехидные комментарии вида «окей, а как дела с прошивкой радиочасти?».


    1. K0styan
      26.11.2021 13:22
      +1

      Дополнительное усложнение, на которое нет спроса со стороны потребителей и которое добавит неудобств операторам. Проще не делать, чем делать.


    1. darkdaskin
      26.11.2021 21:23
      +2

      В старых Nokia так и было, на экране иногда появлялся запрос о том, что SIM-карта хочет отправить SMS. Не знаю, что там было, всегда отклонял.


      1. iShrimp
        26.11.2021 22:15
        +2

        В Sony Ericsson так же, оболочка показывает окно с вопросом "разрешить вызов с SIM-карты?" или "разрешить отправку сообщения?" (если запрос инициирован SIM-кой через операторское меню).


      1. namikiri
        27.11.2021 15:17

        Вот и я о том же.


  1. AndreyUA
    26.11.2021 11:55
    +14

    А потом оператор говорит: "Это неважно, что у вас отключена передача данных в роуминге, все равно ВАШ телефон что-то отправляет. Поэтому платите."


  1. drWhy
    26.11.2021 15:57
    +4

    Где же старые-добрые sim карты версии 1, из которых можно было добыть IMSI, KI, вдолбить их с десяток в единственный Siemens и переключать через меню, не ожидая при этом какой-либо закулисной деятельности.


  1. SnakeSolid
    26.11.2021 17:17
    +1

    Интересно, если использовать какой-нибудь GSM-модуль вроде SIM800, он тоже будет отправлять данные?


    1. svpcom
      26.11.2021 17:28
      +1

      Будет. Это часть спецификации GSM


      1. Nick0las
        04.12.2021 16:42

        Это конечно часть специфиации но на основную функуиональность не влияет. И она вполне может быть сломана. Я сам кода-то игался с самодельным сим эмулятором и проактивными сим. На многих телефонах того времени функции сложнее отправки USSD и СМС не работали.


  1. svpcom
    26.11.2021 17:37
    +1

    https://www.youtube.com/watch?v=CumGQSX6_ws

    вот тут с подробностями как это все работает

    TL;DR - полное анальное рабство для пользователя :-)


  1. valis
    28.11.2021 05:53
    +1

    Простите за дилетантский вопрос - а с eSim аналогичная хрень?


    1. K36
      28.11.2021 20:46

      Вот здесь я спрашивал по этому поводу

      https://habr.com/ru/post/588262/comments/#comment_23694100

      Также интересует, возможно ли на такое с GSM-модемом?


      1. dobergroup
        29.11.2021 11:07

        Для модемов нет гарантии, что все A-PDU успешно завершатся. Вообще, у одного оператора была мысль отличать телефоны/планшеты от модемов не по IMEI, а по невозможности на модеме некоторых команд (браузера нет). Благо, способ был признан ненадежным.


  1. Yoooriii
    30.11.2021 12:48
    +1

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