MAX без оболочки: Что мы нашли в его APK
- четверг, 11 сентября 2025 г. в 00:00:10
Недавно появившейся в мессенджер «Макс», наделал много шума. Он является достаточно спорным приложением и мне пришла в голову мысль изучить приложение и посмотреть, а настолько ли опасно оно, как о нем говорят.
Как можно познакомиться с приложением ближе, чем через его код? Тем более, что для исследования android-приложений нам не понадобятся сложные инструменты на подобии IDA или Ghidra, как это бывает с анализом исполняемых файлов.
Для анализа я использовал стандартный, для подобной задачи, набор инструментов: JADX, APKtool, VSCode ну и конечно же Android Studio, куда без него в анализе APK файлов.
Но, прежде чем лезть под капот «Макса» я установил его на эмулятор устройства и посмотрел его функционал и требуемые им разрешения. После того, как я ввел номер телефона и подтвердил его, «Макс» попросил доступ к моим контактам (Рисунок 1). Достаточно стандартное поведение для мессенджера, позволяет находить контакты из списка, зарегистрированных в «Максе»
После этого, «Макс» снова запросил доступ к контактам (рисунок 2).
Заполнив сведения о контакте, а именно имя пользователя, я решил выполнить звонок, и мессенджер сразу запросил разрешение для записи аудио (рисунок 3).
Пощупал остальной функционал, были запрошены доступ к камере, демонстрации и записи экрана (демонстрация экрана в звонке есть, а вот функционала записи я не увидел).
На первый взгляд, «Макс» представляет из себя обычный мессенджер со стандартными для такого приложения набором функций и разрешений. Но все ли так на самом деле. Давайте разбираться, пора посмотреть под капот этого приложения.
Итак, я «разобрал» приложение и приступил к его анализу. Как исследователей, нас в первую очередь интересует файл AndroidManifest.
AndroidManifest.xml — один из самых важных и интересных для исследователя файлов. Он содержит много информации, по которой можно составить представление о приложении, и даже сформировать поверхность атаки. В архиве он представлен в закодированном виде.
Итак, что же интересного я нашел? А нашлось достаточно много.
Ниже я приведу список опасных разрешений, с кодом из файла, и в некоторых местах буду вставлять свои комментарии.
· REQUEST_INSTALL_PACKAGES - может устанавливать другие приложения
· SYSTEM_ALERT_WINDOW - может показывать окна поверх других приложений
RECEIVE_BOOT_COMPLETED - автозапуск при старте системы
DISABLE_KEYGUARD - отключение блокировки экрана
USE_FULL_SCREEN_INTENT - полноэкранные уведомления
Доступ к личным данным:
READ_CONTACTS, WRITE_CONTACTS - полный доступ к контактам
ACCESS_FINE_LOCATION - точная геолокация. Постоянное отслеживание точного местоположения пользователя в реальном времени.
CAMERA - доступ к камере
RECORD_AUDIO - запись аудио
READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE - доступ к файловой системе
READ_MEDIA_IMAGES, READ_MEDIA_VIDEO - доступ к медиафайлам
READ_PHONE_NUMBERS - доступ к телефонным номерам
GET_ACCOUNTS, AUTHENTICATE_ACCOUNTS, MANAGE_ACCOUNTS, USE_CREDENTIALS - полный доступ к аккаунтам. Может получить список всех аккаунтов (Google, соцсети, почта) на устройстве и манипулировать ими.
USE_FINGERPRINT - доступ к биометрии
Сетевые разрешения:
INTERNET - полный доступ в интернет
ACCESS_WIFI_STATE, ACCESS_NETWORK_STATE - мониторинг сети
Bluetooth разрешения - полный контроль Bluetooth
CHANGE_WIFI_STATE - изменение состояния Wi-Fi. Могут мешать работе сети, перехватывать трафик.
Подозрительные сервисы
Сервис для звонков с доступом к камере и микрофону
Сервис медиа-проекции (может записывать экран)
Опасные компоненты
LinkInterceptorActivity с возможностью перехвата deeplinks:
android:exported="true" (Критическая уязвимость). Эта активность может быть запущена извне — другим приложением на устройстве или даже из браузера по специальной ссылке.
android:excludeFromRecents="true" (Тактика скрытности). После того как пользователь завершит работу с этой активностью, она не появится в списке последних приложений (который вызывается кнопкой "Недавние").
CallNotifierFixActivity с возможностью показа на экране блокировки
Трекинг и аналитика
com.google.android.gms.permission.AD_ID - доступ к рекламному ID. Нужен для создания уникального профиля пользователя для таргетированной рекламы и трекинга между разными приложениями.
Отключено резервное копирование (allowBackup="false"). Обычные приложения разрешают бэкап, чтобы пользователь мог восстановить данные. Вредоносное приложение отключает эту функцию, чтобы усложнить исследование своего поведения и извлечение украденных данных при помощи инструментов анализа.
Включен нативный код (extractNativeLibs="false"). Указывает системе не распаковывать нативные библиотеки (.so файлы) из APK. Это может использоваться для затруднения статического анализа кода антивирусами и исследователями, так как часть логики спрятана в скомпилированных бинарниках.
Дополнительные опасные функции
DOWNLOAD_WITHOUT_NOTIFICATION - скрытые загрузки. Позволяет скачивать файлы без уведомления пользователя.
FOREGROUND_SERVICE_DATA_SYNC - фоновая синхронизация данных. Позволяет запустить foreground-сервис для "синхронизации данных". Это механизм для длительной фоновой работы под видом полезной деятельности, чтобы постоянно собирать данные.
Автозапуск: Receiver для автозапуска при включении устройства. Ресивер BootCompletedReceiver с тремя разными действиями (BOOT_COMPLETED, QUICKBOOT_POWERON) — это гарантирует, что запуск выполниться автоматически при любой возможности сразу после включения телефона, даже до его разблокировки.
Проведенный технический анализ мессенджера выявил тревожный дисбаланс между заявленным функционалом и запрашиваемым уровнем доступа к устройству и данным пользователя.
Безусловно, часть разрешений, такие как доступ к микрофону для голосовых сообщений или к камере для съемки фото, объективно необходимы для работы любого современного коммуникационного приложения. Однако нашлось и множество «спорных» возможностей, которые выходят далеко за рамки обычных возможностей мессенджера:
Возможность постоянного отслеживания точной геолокации, записи экрана (mediaProjection) и доступа к аккаунтам устройства не являются критичными для обмена сообщениями и вызывают серьезные вопросы о реальных намерениях разработчика.
Автозапуск при загрузке, скрытые загрузки, отключение резервного копирования и сложность анализа кода (extractNativeLibs="false") — это приемы, которые чаще ассоциируются с вредоносным ПО, стремящимся закрепиться в системе и скрыть свою деятельность.
В итоге, перед нами не просто мессенджер, а многофункциональный комплекс с широчайшими полномочиями. Пользователь, устанавливая это приложение, по сути, добровольно предоставляет ему ключи от всей своей цифровой жизни: от переписки и звонков до местоположения, паролей и возможности наблюдать через камеру.