Рубрики
На повестке дня

Мессенджер MAX безопасен, но… смотря для каких задач!

Дисклеймер: если вы являетесь активным сторонником мессенджера МАКС, рекомендую воздержаться от дальнейшего просмотра/чтения во избежание возможного дискомфорта, когнитивного напряжения или иных негативных эмоциональных реакций. Автор не несёт ответственности за возможные последствия восприятия материала.


Дисклеймер 2: в целях безопасности и по этическим причинам я не публикую конкретные уязвимости, способы эксплуатации и технические детали, которые могут быть использованы во вред. Ниже будут описаны только общие проблемы и наблюдения, достаточные для понимания рисков рядовым пользователем «Макса» и, теоретически, для внимания со стороны разработчиков (ага, конечно) — владельцев мессенджера, «бывшего TamTam».


Я часто слышу, что MAX небезопасен. Но что это значит для обычного человека? Ничего сверхъестественного в статье не будет. Всё в открытом доступе.

Взял эмулятор Android и стандартный набор инструментов для аудита мобильных приложений:

— jadx (декомпилятор) — https://github.com/skylot/jadx

— apktool (разборка APK) — https://github.com/iBotPeaches/Apktool

— mitmproxy (перехват трафика) — https://mitmproxy.org/

— Frida (динамический анализ) — https://frida.re/

Провёл вечер с мессенджером.


1. MAX — это TamTam. Буквально.

Первое, что бросается в глаза при декомпиляции: в коде повсюду пакеты ru.ok.tamtam. База данных называется OneMeRoomDatabase, артефакт сборки — tamtam-app_release. В пользовательских настройках хранится okToken — токен Одноклассников.

MAX — это не «новый безопасный мессенджер». Это ребрендинг TamTam, мессенджера из экосистемы Одноклассников/Mail.ru.

Вся инфраструктура — серверы .oneme.ru, CDN mycdn.me и okcdn.ru, аналитика vk-analytics.ru — принадлежит VK Group. Это не хорошо и не плохо само по себе, но важно понимать, с кем вы делитесь данными.

В прочем, это тоже не новости.


2. Сквозного шифрования нет. Вообще.

Главное: MAX не реализует сквозное шифрование (E2E). Это не баг — это архитектура.

В декомпилированном коде нет ни Signal Protocol, ни Double Ratchet, ни какого-либо другого E2E-протокола. Нет генерации клиентских ключей, нет обмена ключами между собеседниками. Ничего.

Есть транспортное шифрование — TLS с поддержкой ГОСТ через CryptoPro. Данные защищены в пути от вашего телефона до сервера. Но на самом сервере все сообщения лежат в открытом виде.

Для понимания: так же работает обычный Telegram вне секретных чатов. Разница в том, что Telegram хотя бы предлагает «секретные чаты» с E2E. MAX — нет.

Почему это важно: VK Group технически может читать любое сообщение любого пользователя. А по закону Яровой (ФЗ-374) обязана хранить содержимое сообщений 6 месяцев и предоставлять по запросу.

Закон Яровой — https://ru.wikipedia.org/wiki/Закон_Яровой


3. Сообщения на телефоне — в открытом виде

А вот это уже проблема не государственного масштаба, а личного.

Все ваши сообщения хранятся на устройстве в обычной SQLite-базе cache.db, таблица messages, колонка text — без какого-либо шифрования. Plaintext. Как есть. Удобно.

Для сравнения: Signal использует SQLCipher (https://www.zetetic.net/sqlcipher/) для шифрования локальной базы. Даже если кто-то получит доступ к файлам приложения — без ключа шифрования данные бесполезны. В MAX такой защиты нет.

Там же, в SharedPreferences (auth.prefs), лежит токен авторизации — тоже plaintext. Кто получит этот файл — получит полный доступ к аккаунту: чтение переписки, отправка сообщений от вашего имени, доступ к контактам.

Кому это угрожает: не «хакерам из кино», а вполне бытовым сценариям:

— Ревнивый партнёр с доступом к разблокированному телефону.

— Вредоносное приложение, получившее root-привилегии через уязвимости ядра Android (такие публикуются каждый месяц — https://source.android.com/docs/security/bulletin).

— «Ремонтник» телефона, который видит всё содержимое.

— Утерянный или украденный телефон с включённой USB-отладкой.


4. Что MAX знает о вас и отправляет «домой»

При запуске приложение подключается к 32 различным серверам за 2 минуты. Для мессенджера это, мягко говоря, много — Signal обходится двумя-тремя.

Вот что происходит:

Определение вашего IP через 4 сервиса одновременно: ip.mail.ru, ifconfig.me, checkip.amazonaws.com, ipv4-internet.yandex.net. Зачем мессенджеру знать ваш IP через четыре разных провайдера? Даже один — уже избыточно. Или это неуверенность? Или мультичек на VPN?

MyTracker (VK Analytics) — полноценная система аналитики, отправляющая данные на tracker-api.vk-analytics.ru. Из декомпилированного кода класса MyTrackerParams видно, что SDK умеет собирать: номера телефонов, email-адреса, VK/OK/ICQ ID, пол, возраст, произвольные параметры. Это публичная документация MyTracker, не секрет — https://tracker.my.com/docs/sdk/android/methods/configuratio…

Ежедневная синхронизация контактной книги. Класс DailyAnalyticsWorker запускается каждые 24 часа через WorkManager. Ваши контакты (имена + номера телефонов) регулярно отправляются на серверы VK Group. Даже контакты людей, которые не пользуются MAX и не давали на это согласия.

Crash-репорты отправляются на sdk-api.apptracer.ru с детальной информацией об устройстве и стек-трейсами, которые могут содержать фрагменты пользовательских данных.


5. Чем это опасно на практике (не для параноиков)

Забудьте про ФСБ и «большого брата» — это, возможно, не ваша модель угроз. Вот реальные сценарии.

Мошенники и социальная инженерия. Утечки баз данных из крупных компаний — регулярная реальность (https://haveibeenpwned.com/). Если база MAX утекает (а серверы видят всё), мошенники получают не просто номера телефонов, а содержимое переписок. Кажется… мы уже проходили через подобные сливы.

«Привет, ты вчера писал Маше про перевод 50 тысяч — вот реквизиты, перешли сюда» — такая атака работает в разы лучше обычного спама.

Вредоносные приложения. Android-малварь, получающая root через публичные эксплойты (CVE-2024-53104 — свежий пример из ядра Linux/Android, https://nvd.nist.gov/vuln/detail/CVE-2024-53104), мгновенно получает доступ ко всей переписке MAX. В Signal ей пришлось бы ещё ломать SQLCipher. В MAX — просто SELECT FROM messages.

Захват аккаунта. Один файл auth.prefs = полный контроль. Не нужен пароль, не нужна СМС-верификация. Токен не привязан к устройству — работает откуда угодно.

Об этом классе уязвимостей подробно написано в OWASP Mobile Security Testing Guide, раздел «Testing Local Storage for Sensitive Data» — https://mas.owasp.org/MASTG/tests/android/MASVS-STORAGE/MAST…

Перехват в публичных Wi-Fi. В конфигурации приложения (network_security_config.xml) явно разрешён HTTP-трафик (без шифрования) к доменам .voskhod.ru и .gov.ru.

Это значит, что в кафе или аэропорту часть трафика MAX может идти открытым текстом. Проблема Cleartext Traffic документирована Google — https://developer.android.com/privacy-and-security/security-…


6. Что известно публично и без моего скромного исследования?

Это не «открытие Америки». Всё перечисленное — известные классы проблем.

— Отсутствие E2E. MAX открыто не заявляет о сквозном шифровании (https://help.max.ru). Они и не обязаны. Но пользователи часто путают «защищённое соединение» (TLS) с «защищённой перепиской» (E2E) — это принципиально разные вещи.

— Plaintext-хранилище. Описано в OWASP MSTG как M9 — Insecure Data Storage (https://mas.owasp.org/MASTG/). Одна из самых распространённых уязвимостей мобильных приложений.

— Избыточная телеметрия. MyTracker SDK (https://tracker.my.com/docs/) — публичный продукт VK Group. Его возможности задокументированы: сбор телефонов, email, VK/OK ID. Вопрос не в том, что SDK может это делать, а в том, что конкретно передаёт MAX.

— Синхронизация контактов. Стандартная практика мессенджеров, но обычно с хешированием номеров, как в Signal (https://signal.org/blog/private-contact-discovery/). Проверить, хеширует ли MAX номера перед отправкой, не удалось из-за certificate pinning — но в коде классы хеширования при синхронизации не обнаружены.


7. Что ещё я нашёл, но не расскажу в деталях

В ходе аудита обнаружены дополнительные особенности, которые могут расширить поверхность атаки. Мы намеренно не описываем конкретные механизмы эксплуатации, но обозначим направления:

— Существуют способы получить полный доступ к аккаунту, имея лишь кратковременный физический доступ к разблокированному устройству. Время — менее минуты. Серьёзно.

— Отсутствие определённых защитных механизмов позволяет вредоносному ПО с повышенными привилегиями скрытно извлекать данные без ведома пользователя.

— Некоторые данные авторизации открывают доступ не только к MAX, но и к другим сервисам экосистемы VK Group.

— Геолокация пользователя может управляться удалённо через серверную конфигурацию аналитического SDK — без уведомления.

Если вы разработчик MAX и читаете это — вы знаете, о чём речь. Я 100% уверен. Иначе, извините, вы слепые и… ладно, я буду мягок.

Базовые рекомендации: SQLCipher для локальной БД, Android Keystore для токенов, опциональный E2E хотя бы для «секретных чатов».


8. Так что, не пользоваться MAX?

Нет. Пользуйтесь. Для бытового общения — «привет, как дела, во сколько встречаемся» — MAX работает нормально. Стикеры красивые, звонки работают, интерфейс удобный. Госуслуги только, крайне нерекомедую, привязывать.

Но не питайте иллюзий о безопасности. MAX — это далеко не копия Telegram с секретными чатами. Это мессенджер, в котором оператор (VK Group) видит всё, данные на устройстве лежат открыто, а аналитика собирает больше, чем вы думаете.

Простые правила:

— Не давайте MAX доступ к контактам и геолокации, если не хотите делиться ими с VK.

— Не публикуйте invite-ссылки MAX — в них зашит ваш трекинг-токен.

— Выключите USB-отладку на телефоне. Ну, если у вас ROOT включён — земля пухом.

— Периодически проверяйте список активных сессий в настройках аккаунта.


Исследование проведено в образовательных целях с использованием стандартных инструментов аудита безопасности (jadx, apktool, mitmproxy, Frida, Wireshark). Все данные получены из публично доступного APK-файла и открытых логов на тестовом устройстве. Ни один сервер не был атакован/вскрыт/сканирован.