Но он каким то образом сидит в телефоне и даже сброс данных не помгг.
Как я это понял(про весну, обострение и т.д.не надо)-
Теперь смартфон делает минискриншоты каждые полминуты.Никакое другое приложение не работает так же.И трафик вырос значительно.
Не то чтобы я боялся спецслужб - я конечно против Путина (пока имею на это право,да?)-но не лезу в разные радикальные движения и чаты .Порнуха? На телефоне неудобно так что нет.
Деловая переписка- может им интересно сколько я недоплатил налогов?Так все 100 процентов , пусть что хотят то и делают с этой информацией.
Увы, я знаю много людей, что не имеют возможности уехать по той или иной причине. И, в отличие от многих, я не считаю оставшихся в России повально ватниками и путинистами
И я не только на Пикабу пишу и не только о России. В любой стране если власть покушается на тайну личной жизни или свободу информации - это повод как можно сильнее постараться это вывести на чистую воду
Прям как под копирку ответы представителей США. - Мы не вмешиваемся в дела суверенных государств, но если там нет свободы слова и тайны личной жизни, то мы вмешаемся.
А теперь давай на чистоту. С какой целью написан пост? Точнее какой эффект в России будет от написанного поста? Мы и так знаем, что МАХ говно ипаное и его суют гражданам РФ как ложку касторки в детском саду. Однако как я полагаю, цель поста расшатать возмущения в России, которые и без того уже присутствуют. Чо заплатили хоть, Иуда? С одной стороны долпоепы ссутся закрывая информационные каналы и средства связи, боясь потерять власть при кривом менеджменте. С другой стороны другие долпоепы радуются и качают лодку, преследуя свои цели.
И этот заголовок - не кликбейт. Подвергнув реверс инжинирингу клиент российского мессенджера MAX удалось подтвердить самые худшие предположения.
В сети начали появляться сообщения о странных обращениях мессенджера MAX к Telegram и WhatsApp, из-за чего в сети начали выдвигаться предположения касательно природы и целей этих запросов. Но одно дело предполагать, другое дело знать. Мало ли это какая-то интеграция или случайный аналитический модуль. Поэтому чтобы понять самому и рассказать вам я решил посмотреть внутрь клиента и понять что и зачем он делает.
TL;DR - содержит шпионский модуль, который сделали разработчики MAX для слежки за теми кто использует VPN, они постарались сделать этот модуль неблокируемым и прикрутили удаленное управление.
Подготовка
Так как клиент MAX не содержит отладочной информации и его реверс инжиниринг затруднен, то на первом этапе я решил просто посмотреть какие сетевые запросы делает подопытный. Для этого нам понадобится:
mitmproxy. Я использовал режим wireguard (--mode wireguard), так как он позволяет перехватывать вообще весь трафик.
2. Эмулятор Android. Я использовал Android Emulator, который идет в комплекте с Android Studio.
3. Загрузить корневой сертификат mitmproxy в системное хранилище эмулятора.
4. WireGuard клиент на android. Я использовал официальный. При старте mitmproxy/mitmweb показывает qr код и конфигурацию для wg клиента.
5. Собственно сам мессенджер MAX. В исследовании я использовал версию MAX_(RS)_v.26.4.3(6552)(8.0-15.0)(arm7a,arm64-8a,x86,x86-64), которую нашел на 4pda.
6. JADX для анализа APK.
В этой статье я опущу инструкции по загрузке корневого сертификата, настройку эмулятора и подключение к wireguard так как интернет содержит тысячи инструкций для этого.
Перехват трафика
Что же, запускаем mitmweb, подключаем эмулятор и смотрим что за запросы ходят в интернет.
(Я удалил часть мусора, не имеющего отношения к делу)
Что же, мы видим в том числе интересующие нас запросы, но почему-то обмен данными с api.oneme.ru (api домен мессенджера) отображается как TCP поток, а не HTTP(S)/WebSocket.
Изначально мне казалось, что это gRPC, так как трафик был похож на бинарную мешанину с вкраплениями строк, но protoc --decode_raw ничего не показал.
Анализ протокола
Анализ протокола занял у меня несколько часов, но по итогу я выяснил что каждое сообщение состоит из заголовка (10 байт) и полезной нагрузки (опционально сжатой). Вот пример заголовка
0a|0100|01|0006|01|000087|data
Состоит из
По поводу msgpack - привет ребятам из VK, это их любимая игрушка.
Так что для анализа трафика пришлось написать аддон для mitmproxy, который распаковывает трафик на лету.
hosts - список хостов для проверки и статус этой проверки. Значения могут быть такие:
ip — Очевидно, IP адрес клиента. Причём в разных событиях может приходить IP, полученный из разных источников.
operator — строка содержит PLMN код оператора, состоящий из мобильного кода страны и кода оператора:
MCC: 250 (RUS)
MNC: 01 (в данном случае - MTS)
vpn — флаг, показывающий активно ли vpn подключение в системе. Этот флаг ограничен только статусом используется ли VPN ПО на самом телефоне (нативный Android API)
Так же было обнаружено, что этот модуль включается и отключается удаленно сервером. При логине/обновлении сессии возвращается конфигурация, которая содержит флаг host-reachability, что делает возможным включение этой функции таргетно для отдельных аккаунтов.
Как это работает
При старте приложения берется список адресов источников ip и перемешивается:
2. IP добывается асинхронно с таймаутом 3000ms, причем ответ 127.0.0.1 игнорируется
3. Параллельно опрашиваются хосты назначения, используя:
ping (ICMP)
connect TCP:443 (проверка доступности по HTTPS). Таймаут такой же - 3000ms
4. При сворачивании/разворачивании приложения данные отправляются на api.oneme.ru сообщением HOST_REACHABILITY
Отдельно хочется отметить, что это не заброшенный модуль, он развивается от версии к версии и есть признаки того, что планируется приделать к нему полноценный модуль выполнения команд с сервера чтобы превратить его в карманный Ревизор для Роскомнадзора.
Так же от версии к версии список проверяемых хостов меняется. К примеру проверка Telegram и WhatsApp то включается, то выключается (но не удаляется, apk всегда содержит эти хосты в своем коде). Я считаю что сейчас идет тестирование и обкатка, после чего ничего не стоит переключить этот модуль в полностью удаленно управляемый режим.
Подробный реверс инжиниринг со ссылками в первом комментарии.
Что все это значит?
Ну, кажется все и так очевидно, но давайте поговорим о нюансах:
Это точно получилось не случайно. Они любят рассказывать о opensource модулях аналитики, но это не тот случай. Очевидно этот модуль был разработан внутри VK и наличие заблокированных и ограниченных ресурсов говорит нам о том, что они и являются целью проверки.
2. Эти данные отправляются не на отдельный аналитический домен, а смешиваются с основным трафиком мессенджера так, чтобы заблокировать эту аналитику не заблокировав мессенджер было невозможно. Отдельным бонусом идет то, что их протокол не декодируется автоматическими инструментами.
3. Методика проверки (ping + tcp:443) это прямая проверка успешности блокировки ресурса на ТСПУ. ТСПУ не режет пинги, но ограничивает доступ к конкретным портам/протоколам.
4. Очевидно, что выбор источников получения IP не случаен, это 50/50 российские и зарубежные сервисы. Зачем? Чтобы ловить умников, которые настроили маршрутизацию трафика и не заворачивают в туннель местный трафик.
5. Текущие функции удаленного управления и кажущаяся неизбежность их совершенствования превращает национальный мессенджер в государственный шпионский инструмент (spyware)
6. Этот подход очень хорош для отлавливания и блокировки личных (приватных) ВПН серверов, у которых обычно одинаковый входной и выходной ip.
7. Этот подход очень хорош для привязывания пользователей конкретных впн сервисов к конкретным людям (я не буду развивать тему что из этого следует).
8. Возможность включать эту функцию таргетно для отдельных людей или групп очень настораживает.
9. Отправка PLMN кода оператора будет являться неплохим маркером того, что пользователь скорее всего в РФ. При этом, в отличии от геолокации, запретить собирать информацию о мобильном операторе не получится.
Вероятно, они хотят превратить миллионы устройств в сканеры успешности своих блокировок и поиска тех, кто их обходит.
Я видел мысли вроде "А почему сбербанк так не может или, может, уже делает". Может и делает, но подумайте сколько времени средний человек проводит в приложении сбербанка, а сколько в современном мессенджере, который фактически является соцсетью?
А что делать то?
Ну кажется решение простейшее - удалите его.
Если не можете удалить по каким-либо обстоятельствам, то у вас буквально пара вариантов (кроме технически сложных, но тут кто на что горазд):
Если у вас Android, можно установить приложение в отдельное, изолированное рабочее пространство. Обычно такое пространство не наследует VPN соединение основного профиля.
Универсальный вариант, в том числе для Pixel / Motorola / Nothing: Shelter, Island, Insular
2. Если у вас IOS или совсем не хотите риска, то, вероятно, стоит купить для этого отдельный самый дешевый телефон. Самый дешевый android на момент написания статьи в DNS стоит около 5 тысяч рублей.
3. Заблокировать все перечисленные сервисы получения ip адресов. Но это ненадежно, в любой момент могут добавить новые.
Ну и конечно - рассказать друзьям. Помните, даже если вам нечего скрывать, то это может лишить самого обычного бытового комфорта и доступа в большую часть интернета.
PS - ИИ не написал ни слова в этой статье, но использовался для форматирования уже написанного текста
С сегодняшним обновлением 26.7.1 (RuStore) в мессенджере отключили отправку запросов к WhatsApp и Telegram. Вероятно билд подготовили после вчерашней статьи.
Но тем не менее из кода обращения к WhatsApp и Telegram не удалены, класс называется on7. Модуль в целом остался активен.
UPD:
В MAX опровергли слежку за пользователями VPN-сервисов
В связи с всё более интересными правилами блокировок и практически наступившим в Эрафии чебурнетом: подскажите, пожалуйста, ещё N лет назад на рынке мне попадались предложения приобрести VPS\VDS сервер в каких-нибудь солнечных Нидерландах в пожизненный доступ (естессно, в каком-нибудь 2017 я думал: ха! да на кой оно мне надо)
В общем, буду рад если поделитесь инфой, всем добра
"Демократия" - это та ебола, которую придумали для масс, чтобы оправдать феодализм. В США это особенно видится, да и другие не отстают. Политика тоже прогрессирует.