RatHat — новая вредоносная программа для Android, которую связывают с действующими из Китая злоумышленниками. Исследователи Zimperium Джанлука Брага (Gianluca Braga), Вишну Пратапагири (Vishnu Pratapagiri) и Фернандо Ортега (Fernando Ortega) установили, что она использует искусственный интеллект для управления заражённым устройством. RatHat распространяют через адресный смишинг, вредоносную рекламу, обманные сторонние порталы и форумы. Жертве предлагают установить APK-пакет, внутри которого скрыт загрузчик основной полезной нагрузки. Дата публикации исследования не указана.

Заражение проходит в несколько автоматизированных этапов. Получив разрешение на использование службы специальных возможностей Android, RatHat открывает Developer Options, включает Wireless Debugging и извлекает шестизначный код сопряжения ADB, то есть Android Debug Bridge. Затем программа самостоятельно подключается к локальному ADB-демону. Такой приём позволяет выйти за пределы стандартной песочницы приложения и запустить отдельные нативные демоны с привилегиями уровня shell.
Разбор APK намеренно затруднён сразу несколькими ловушками. Некоторые упакованные файлы объявлены каталогами, а для части содержимого ZIP выставлен флаг шифрования общего назначения. Системная библиотека Android libziparchive пропускает такие элементы, тогда как unzip и apktool могут обработать их неправильно. В AndroidManifest.xml встроены недокументированные заголовки блоков 0x9999: штатная среда Android их игнорирует, зато автоматический анализ рискует завершиться с ошибкой или зависнуть.
Защита продолжается на уровне DEX: в байт-код добавлены псевдоинструкции с недопустимым атрибутом element_width, из-за чего дизассемблирование срывается. Строки закрыты двойным шифрованием по схеме, которую исследователи обозначили как StringCrypto: Base64. Эти ухищрения не нужны для работы RatHat на телефоне; их задача — создать разные представления одного APK для Android и инструментов аналитика.
Архитектура RatHat состоит из трёх частей. Вредоносное Android-приложение запрашивает критические разрешения, запускает следующие стадии и связывает злоупотребление Accessibility с ADB. Go Agent маскируется под нативную библиотеку , выполняет команды через полученный shell, добивается исключений из механизмов энергосбережения и поддерживает постоянный доступ. В него также встроен аппаратный кейлоггер, фиксирующий нажатия на экран.
Третий компонент — клиент обратного прокси FRP. Он получает конфигурацию туннеля от командно-управляющего сервера и создаёт защищённое постоянное соединение с C2. Операторы получают универсальный удалённый доступ к ADB-демону устройства, не зависящий от штатного набора команд RatHat. Поэтому удаление видимого приложения ещё не означает очистку телефона: нативные процессы продолжают жить вне его обычного жизненного цикла.
Набор средств слежки широк. RatHat накладывает поддельные окна поверх выбранных приложений, перехватывает SMS, снимает скриншоты, копирует файлы и учётные данные. Через MediaProjection API программа записывает экран, собирает список установленных приложений и похищает PIN-код, графический ключ либо пароль блокировки. Кейлоггер сохраняет нажатия, включая URL, введённые в адресной строке браузера. Попытку установить приложение RatHat может перекрыть фальшивым сообщением об ошибке, оформленным под Google Play Store.
Особенно неприятен сценарий после удаления APK. Независимые демоны сохраняют shell-доступ, а локальная служба проверяет наличие RatHat и при необходимости устанавливает программу заново. Обычная деинсталляция убирает пользовательскую оболочку вредоноса, но оставляет канал управления. Для расследования поэтому недостаточно проверить список приложений: требуется искать активные ADB-сопряжения, включённую Wireless Debugging, неизвестные нативные процессы, исключения энергосбережения и постоянные исходящие туннели.
Для навигации RatHat преобразует текущее дерево Accessibility в XML и отправляет его неназванному, широко используемому генеративному ИИ-ассистенту. Модель находит центр указанного элемента и возвращает координаты в JSON для синтетического нажатия, определяет реальный текст цели на экране либо выдаёт команду вроде SCROLL_DOWN. По оценке Zimperium, каждая такая операция сама по себе безобидна; вредоносной её делает контекст автоматического захвата устройства.
Многоуровневая схема RatHat соединяет APK-загрузчик, Go-агент, FRP-туннель, постоянный ADB-доступ и решения генеративного ИИ в реальном времени. Сигнатурная проверка способна обнаружить известный файл, но хуже видит цепочку разрешённых системных действий и процессы, переживающие удаление приложения. Практическая защита требует отключать ненужную беспроводную отладку, отзывать неизвестные ADB-сопряжения, ограничивать Accessibility для сторонних APK и рассматривать сохранённый shell-доступ как отдельный признак компрометации.

Изображение носит иллюстративный характер
Заражение проходит в несколько автоматизированных этапов. Получив разрешение на использование службы специальных возможностей Android, RatHat открывает Developer Options, включает Wireless Debugging и извлекает шестизначный код сопряжения ADB, то есть Android Debug Bridge. Затем программа самостоятельно подключается к локальному ADB-демону. Такой приём позволяет выйти за пределы стандартной песочницы приложения и запустить отдельные нативные демоны с привилегиями уровня shell.
Разбор APK намеренно затруднён сразу несколькими ловушками. Некоторые упакованные файлы объявлены каталогами, а для части содержимого ZIP выставлен флаг шифрования общего назначения. Системная библиотека Android libziparchive пропускает такие элементы, тогда как unzip и apktool могут обработать их неправильно. В AndroidManifest.xml встроены недокументированные заголовки блоков 0x9999: штатная среда Android их игнорирует, зато автоматический анализ рискует завершиться с ошибкой или зависнуть.
Защита продолжается на уровне DEX: в байт-код добавлены псевдоинструкции с недопустимым атрибутом element_width, из-за чего дизассемблирование срывается. Строки закрыты двойным шифрованием по схеме, которую исследователи обозначили как StringCrypto: Base64. Эти ухищрения не нужны для работы RatHat на телефоне; их задача — создать разные представления одного APK для Android и инструментов аналитика.
Архитектура RatHat состоит из трёх частей. Вредоносное Android-приложение запрашивает критические разрешения, запускает следующие стадии и связывает злоупотребление Accessibility с ADB. Go Agent маскируется под нативную библиотеку , выполняет команды через полученный shell, добивается исключений из механизмов энергосбережения и поддерживает постоянный доступ. В него также встроен аппаратный кейлоггер, фиксирующий нажатия на экран.
Третий компонент — клиент обратного прокси FRP. Он получает конфигурацию туннеля от командно-управляющего сервера и создаёт защищённое постоянное соединение с C2. Операторы получают универсальный удалённый доступ к ADB-демону устройства, не зависящий от штатного набора команд RatHat. Поэтому удаление видимого приложения ещё не означает очистку телефона: нативные процессы продолжают жить вне его обычного жизненного цикла.
Набор средств слежки широк. RatHat накладывает поддельные окна поверх выбранных приложений, перехватывает SMS, снимает скриншоты, копирует файлы и учётные данные. Через MediaProjection API программа записывает экран, собирает список установленных приложений и похищает PIN-код, графический ключ либо пароль блокировки. Кейлоггер сохраняет нажатия, включая URL, введённые в адресной строке браузера. Попытку установить приложение RatHat может перекрыть фальшивым сообщением об ошибке, оформленным под Google Play Store.
Особенно неприятен сценарий после удаления APK. Независимые демоны сохраняют shell-доступ, а локальная служба проверяет наличие RatHat и при необходимости устанавливает программу заново. Обычная деинсталляция убирает пользовательскую оболочку вредоноса, но оставляет канал управления. Для расследования поэтому недостаточно проверить список приложений: требуется искать активные ADB-сопряжения, включённую Wireless Debugging, неизвестные нативные процессы, исключения энергосбережения и постоянные исходящие туннели.
Для навигации RatHat преобразует текущее дерево Accessibility в XML и отправляет его неназванному, широко используемому генеративному ИИ-ассистенту. Модель находит центр указанного элемента и возвращает координаты в JSON для синтетического нажатия, определяет реальный текст цели на экране либо выдаёт команду вроде SCROLL_DOWN. По оценке Zimperium, каждая такая операция сама по себе безобидна; вредоносной её делает контекст автоматического захвата устройства.
Многоуровневая схема RatHat соединяет APK-загрузчик, Go-агент, FRP-туннель, постоянный ADB-доступ и решения генеративного ИИ в реальном времени. Сигнатурная проверка способна обнаружить известный файл, но хуже видит цепочку разрешённых системных действий и процессы, переживающие удаление приложения. Практическая защита требует отключать ненужную беспроводную отладку, отзывать неизвестные ADB-сопряжения, ограничивать Accessibility для сторонних APK и рассматривать сохранённый shell-доступ как отдельный признак компрометации.