1102

Ответ на пост «Как MAX помогает РКН строить железный занавес: VPN-детект, сбор IP и проверки на Госуслуги»14

Привет, меня зовут Павел, я бывший хакер, а ныне один из разработчиков CachyOS. На прошлой неделе мне прислали ссылку на громкое «расследование» под названием «Как MAX помогает РКН строить железный занавес: VPN-детект, сбор IP и проверки на Госуслуги». Я прочитал оба поста, и как человек за плечами которого много того, о чём публично говорить не стоит, могу громко заявить, что автор умышленно или по незнанию вводит вас в заблуждение. Начнём по порядку.

URL сервисов для определения IP спрятаны в коде как массивы чисел (например, {104, 116, 116, 112, 115...}), чтобы их нельзя было найти поиском и быстрым анализом. Это «инженерия уровня малвари» и намеренное сокрытие следов.

Это не малварь, это базовая работа коммерческого обфускатора. ProGuard, который используют 90% Android-приложений, умеет автоматически превращать строки в массивы байт или int. Это делается не для того, чтобы что-то скрыть от пользователя, а для уменьшения размера APK-файла, защиты от конкурентов и усложнения работы автоматических сканеров уязвимостей. Если бы разработчики ПО действительно хотели бы скрыть веб-адреса, вы бы никогда их не нашли — они лежали бы в нативной библиотеке .so с шифрованием AES-256 и динамической расшифровкой. А тут простой JAVA массив (f28.java), который видит любой, кто открыл JADX. Короче говоря, автор выдаёт стандартную защиту от копипасты и нубо-хакеров за попытку скрыть преступление.

MAX при каждом открытии тайно определяет ваш внешний IP через шесть сервисов (Яндекс, Amazon, Mail.ru и другие). Запросы идут через raw-сокеты в обход стандартных библиотек, а порядок сервисов каждый раз перемешивается. Это «инфраструктура сетевой слежки» в масштабах всей страны.

Это называется STUN-серверы. Они нужны любому мессенджеру с голосовыми и видеозвонками. Пользователь и его собеседник сидит за роутерами, и чтобы установить прямое P2P-соединение, приложение должно узнать свой внешний IP и порт. Для этого оно стучится к STUN-серверу. Шесть серверов — для отказоустойчивости (один упал — работает другой). Их жанглирование (перемешивание порядка) чтобы не перегружать один сервер миллионами запросов. А RAW-сокеты — потому что STUN работает поверх UDP, а не через стандартную HTTP-библиотеку OkHttp, которую автор ожидал увидеть. Да, MAX отправляет ваш IP на свой сервер — иначе как другой пользователь узнает, куда стучаться для звонка? То же самое делают Telegram, Signal, WhatsApp и Wire. Автор нашёл механизм P2P-связи и назвал его слежкой, LOL.

MAX проверяет доступность пяти хостов, включая gosuslugi.ru. Это часть системы сбора данных о пользователе. Комбинация ответов даёт VK полную картину: кто обходит блокировки, кто использует VPN, кто находится за границей.

Это простая диагностика. Приложению нужно знать, почему у вас не идёт звонок. Если Google доступен, а Госуслуги нет — пользователь за границей или у провайдера проблемы внутри РФ. Если Госуслуги доступны, а Google нет — пользователь в России, и его провайдер блокирует западные ресурсы. Если ничего не доступно, кроме API MAX — пользователь на корпоративном прокси с белым списком. На основе этих данных приложение ориентируется, какие подсказки выводить пользователю на экран и какие внутренние сервисы можно задействовать. Если называть проверку доступности сайта «шпионажем», тогда каждый браузер и каждая операционная система шпионят за вами каждую секунду. А учитывая, что правительство планирует сделать из MAX национальный мессенджер "всё влючено", то нет ничего удевительного простукивания им уймы внешних веб-ресурсов.

В MAX встроены ASR (распознавание речи), идентификация голоса и детект ключевых слов во время звонков. Модели доставляются с сервера. Это система прослушки.

Наличие ASR-модели — это давно норма для приложения с поддержкой голосового ввода. С 2024 года крупные мессенджеры внедряют локальные модели для голосового управления («Ответить», «Завершить вызов», «Отключить микрофон»), для шумоподавления и для определения активности речи (чтобы не отправлять пустые пакеты в тишине). Модель работает локально на вашем телефоне. Это легко проверить через сниффинг трафика — который автор, судя по всему, либо не делал, либо не нашёл ничего криминального и потому промолчал.

В коде присутствуют домены main.telegram.org и mmg.whatsapp.net. «Сам факт их наличия рядом с активными проверками примечателен». MAX проверяет, установлен ли Telegram на устройстве!

Эту глупость даже комментировать не хочется. Это нужно для кнопки «Поделиться» — чтобы поставить Telegram первым в списке приложений! И для этого нужно сначала спросить систему: «А Telegram вообще установлен?» Это делают практически все приложения на Android.

Вывод

Автор разбирается в сетевой безопаности, но ничего не знает о стандартах и требованиях к разработке современных приложений на ANDROID или умышленно вводит вас в заблуждение ¯\_(ツ)_/¯.

UPD:

Для мамкиных хейтеров
Ответ Lerson в «Как MAX помогает РКН строить железный занавес: VPN-детект, сбор IP и проверки на Госуслуги»

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества