SHA1-хеши:
- 2b93a1d6e570b483959eaa801c6467bf0d5e2f59
- bd9ce9d57098c5ac5d4b83feb93fdaf0d598fe15
- fffa47e23f237118eaf0b6257955a759caf66d79
Описание
Вредоносная программа для ОС Android, основное назначение которой ― переход по ссылкам, а также загрузка веб-сайтов и демонстрация их поверх окон других приложений. Впервые была обнаружена в приложении Eye Care - Your close Eye Care Assistant (другое название ― Eye Care Mini —— 急速护眼), распространяемом через каталог Google Play. Троянская функциональность присутствует в нем с 2019 года и выявлена в версиях 1.2.11, 1.2.12, 1.2.14.
Принцип действия
Инициализация трояна происходит при запуске приложения, в которое тот встроен. Для этого вызывается метод инициализации, расположенный в классе Application. В последней доступной версии 1.2.14 рассматриваемой программы вирусописатели отключили запуск Android.Mixi.44.origin, однако его код по-прежнему в ней присутствует.
После запуска троянская программа внешне работает в соответствии с ожиданиями пользователя. Пример интерфейса приложения после ее старта:
Программная логика трояна
Android.Mixi.44.origin использует следующие сервисы, активности и широковещательные приемники:
<activity android:name="com.ad.s.cv.mg"/>
<service android:name="com.ad.s.dv.js"/>
<service android:name="com.ad.s.pa.so"/>
<receiver android:name="com.ad.s.dv.sr">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<action android:name="android.intent.action.USER_PRESENT"/>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
</intent-filter>
</receiver>
<receiver android:name="com.ad.s.dv.r">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<action android:name="android.intent.action.USER_PRESENT"/>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
<action android:name="android.intent.action.SCREEN_ON"/>
</intent-filter>
</receiver>
Широковещательный приемник com.ad.s.dv.r
Запускает сервис com.ad.s.dv.js, а также отслеживает системные события android.intent.action.PACKAGE_ADDED и android.intent.action.PACKAGE_REMOVED, через которые троян контролирует, какие приложения устанавливает и удаляет пользователь. Информация о каждом таком действии сохраняется в базу данных. Кроме того, во время работы Android.Mixi.44.origin в оперативной памяти находятся хеш-таблицы mrefferMap и mpaddMap.
Если сведения об устанавливаемом приложении отсутствуют в mrefferMap, имя пакета приложения и дата установки добавляются в таблицу mpaddMap. Если же информация о приложении имеется в mrefferMap, троян отправляет намерение вида:
Intent i = new Intent("com.android.vending.INSTALL_REFERRER");
i.setPackage(packageName);
i.putExtra("referrer", "utm_source%vigo");
Если установлен специальный флаг, широковещательный приемник com.ad.s.dv.r инициализирует отображение окна WebView, демонстрируя его поверх других элементов интерфейса. Для этого троян эксплуатирует уязвимость Toast Overlay, которой подвержены устройства с ОС Android до версии 7.1 включительно. Android.Mixi.44.origin создает AlertDialog, задает ему тип Toast и помещает WebView внутрь этого диалога. В этом WebView выполняется загрузка веб-сайта, адрес которого поступает в команде C&C-сервера.
Широковещательный приемник com.ad.s.dv.sr
Запускает сервис com.ad.s.dv.js; при каждом срабатывании загружает на C&C-сервер 5 записей из базы данных, хранящей информацию об именах установленных и удаленных пользователем приложений, а также успешно выполненных трояном заданиях.
Сервис com.ad.s.dv.js
Запрашивает с адреса http://***.*aroom.net:9082/ovs/customer/heartBeat2.do задачи для выполнения, а также конфигурацию, включая URL, на который будут загружаться отчеты о выполненных заданиях.
Загружает 5 отчетов из базы данных на C&C-сервер. По окончании работы сервиса устанавливается его повторный запуск через определенный промежуток времени с помощью AlarmManager. Для выполнения задач запускается сервис com.ad.s.pa.so, а тип задачи задается в атрибуте extras. При этом функция запуска сервиса может работать с большим количеством типов задач, чем сам сервис в рассматриваемом образце трояна.
Сервис com.ad.s.pa.so
Выполняет основные команды.
Команда ACTION_TYPE_USER_REG ― регистрация зараженного устройства в сети злоумышленников. На C&C-сервер по адресу http://***.*aroom.net:9082/ovs/customer/reg.do отправляется следующая информация:
- SID, UID ― текущие идентификаторы пользователя, присвоенные ему трояном;
- androidId ― уникальный идентификатор устройства (передается значение android.provider.Settings.Secure.getString(ctx.getContentResolver(), "android_id"));
- gid ― рекламный идентификатор Google;
- OSVersion ― версия ОС (передается значение android.os.Build.VERSION.RELEASE);
- version ― версия троянского приложения;
- gpver ― версия приложения Play Маркет, установленного на устройстве;
- wbver ― версия движка WebView.
В ответ Android.Mixi.44.origin получает присвоенные пользователю идентификаторы SID и UID, сохраняет их и запускает сервис com.ad.s.dv.js. По умолчанию значения поступающих от сервера идентификаторов являются пустыми.
Команда ACTION_TYPE_PUSH_MSG ― загрузка и отображение веб-страниц поверх окон других приложений с использованием описанного выше механизма уязвимости Toast Overlay.
Команда ACTION_TYPE_OFFER_GET ― незаметный переход по ссылкам, полученным от удаленного сервера (функция кликера). Поступающая от C&C-сервера задача содержит URL, при переходе по которому троян получает список других ссылок, по которым ему необходимо перейти. Поочередно для каждой из них с интервалом в несколько секунд запускается активность com.ad.s.cv.mg, которой задаются такие параметры окна, чтобы она не была видна пользователю. В этой активности создается WebView, в котором происходит загрузка соответствующего URL-адреса.
Если при загрузке происходит перенаправление на раздел приложения в Play Маркет, троян заносит имя этого приложения и текущее время в таблицу mrefferMap. При этом, если широковещательный приемник com.ad.s.dv.r получит информацию о том, что приложение в дальнейшем было установлено, произойдет отправка намерения вида:
Intent i = new Intent("com.android.vending.INSTALL_REFERRER");
i.setPackage(packageName);
i.putExtra("referrer", "utm_source%vigo");
Если же это приложение уже было недавно установлено и находится в списке таблицы mpaddMap, сразу же происходит отправка намерения вида:
Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
intent.setPackage(packageName);
intent.putExtra("referrer", referrer);
При этом параметры packageName и referrer из этих намерений извлекаются из ссылки, которая привела на страницу приложения в Play Маркет.
Таким образом Android.Mixi.44.origin пытается обмануть сервис аналитики, присваивая злоумышленникам установку программ, выполненную пользователем.
Новость об Android.Mixi.44.origin
Подробнее об уязвимости Toast Overlay