SHA1:
- 90f044607f37ccc795af8a8d87eef2fae071104f
- 45273fc93befb963015bbb99ae67bcf596412cc1 (dex)
- 9fef8711a2cce4b2e46f93f29bc4b3153d719af1 (RockClient.odex , детектируется как Android.Gmobi.3)
Троянский SDK (Software Development Kit), встраиваемый в Android-приложения и предназначенный для показа рекламы, загрузки и установки ПО, а также сбора конфиденциальной информации. Может содержаться в различных программах. В частности, был обнаружен в таких приложениях как com.rock.gota (системное ПО для обновления прошивки Micromax AQ5001), Trend Micro Dr.Safety, Dr.Booster и Asus WebStorage.
При каждой загрузке зараженного устройства (android.intent.action.BOOT_COMPLETED), а также при установке новых приложений (android.intent.action.PACKAGE_ADDED) Android.Gmobi.1 при помощи широковещательного приемника (BroadcastReceiver) ActionMonitor запускает сервис ActionService.
Далее ActionService проверяет, активны ли остальные компоненты вредоносной программы и, если это необходимо, инициализирует их работу. Затем устанавливает системному сервису AlarmManager задачу на отправку сообщений приемнику ActionMonitor каждые 60 секунд, тем самым обеспечивая его непрерывную работу.
ActionActivity
Один из широковещательных приемников (BroadcastReceiver), зарегистрированных в ActionMonitor, отслеживает состояние экрана инфицированного устройства. После получения сообщения о том, что экран включен (android.intent.action.SCREEN_ON), проверяет собственную локальную базу данных на наличие информации о рекламе, которую нужно показать пользователю. Если эти данные имеются, происходит запуск ActionActivity, с использованием которого показывается реклама нескольких типов:
- реклама в панели уведомлений;
- реклама в виде диалогового окна;
- реклама в виде интерактивных диалоговых окон – при нажатии кнопки «Ok» происходит отправка СМС (если у приложения, в которое встроен вредоносный SDK, есть на это соответствующие права);
- рекламный баннер поверх окон других приложений и графического интерфейса ОС;
- открытие заданной страницы в веб-браузере или в приложении Google Play;
- автоматический запуск приложений, уже установленных на устройстве;
- скачивание приложений через системный сервис DownloadManager с использованием заранее известных ссылок, которые без спроса пользователя ставятся в очередь загрузок.
PushThread
Запускается при подключении к Интернету и при включении экрана. Прекращает работу при отключении интернет-соединения или через 60 секунд после выключения экрана. Заносит в локальную базу данных список установленных на устройстве приложений.
Собирает следующую информацию:
- email-адреса пользователя;
- наличие роуминга (есть или нет);
- координаты пользователя (используется GPS или данные мобильной сети);
- техническая информация об устройстве: наименование производителя, IMEI- и IMSI-идентификаторы, MAC-адрес Bluetooth- и WI-Fi-адаптера, размеры экрана, данные о приложении, содержащем вредоносный SDK, версия SDK и некоторые другие сведения;
- страна нахождения пользователя, определяемая при помощи GPS (если GPS недоступен, используется информация сети NetworkCountryIso, SIM-карты, а также Locale);
- наличие установленного приложения Google Play,
после чего шифрует эти данные и отправляет их на сервер http://api.fotapro.com/api/push/connect. Пример сформированных троянцем данных, отправляемых на сервер:
{
"device":{
"sdk_b":"2015.03.18.1",
"os_v":"4.1.2",
"lang":"en",
"id":"54be457a2c47a2981219219c",
"gprs":false,
"updated":false,
"app_v":"01.03.03",
"sdk":"go2sync",
"roaming":false,
"wmac":"9C:3A:AF:51:01:F6",
"sw":480,
"bmac":"9C:3A:AF:51:01:F5",
"os":"android",
"app":"com.rock.gota",
"sn":"4da348e981cfee7d",
"imei":"356507059351894",
"sd":true,
"loc":{
"lat":59.9588551,
"lng":30.3187445
},
"emails":[
"XXXXX@gmail.com"
],
"sh":800,
"cid":"B40CF4E8F83EEA83CD65C119F2B1AAD7",
"sdk_v":"2.0",
"country":"ru",
"wifi":true,
"sa":false,
"ua":"android;MANUFACTURER\/samsung;MODEL\/GT-I8190;BOARD\/DB8520H;BRAND\/samsung;DEVICE\/golden;
HARDWARE\/samsunggolden;PRODUCT\/goldenxx",
"brand":"Samsung",
"imsi":"",
"gp":true
},
"ac":"D603ECE5139479DD9D55A36FE8E10B73",
"last":"6262634407211827200,2016031613,D603ECE5139479DD9D55A36FE8E10B73"
}
В ответ от сервера получает зашифрованный JSON (Java Script Object Notification), который содержит конфигурационный файл, включающий, среди прочего, адрес TCP-сервера (tcp://) и параметр «mode». В зависимости от параметра «mode», PushThread в дальнейшем может по протоколу TCP подключаться к управляющему серверу, откуда получает аналогично сформированный JSON с командами «messages».
Среди принимаемых команд могут быть следующие:
- сохранить в базу данных информацию о рекламе, которую необходимо показать пользователю;
- создать рекламный ярлык на рабочем столе (нажатие на этот ярлык запускает ActionActivity с рекламой);
- показать уведомление с рекламой (нажатие на уведомление запускает ActionActivity);
- показать уведомление, нажатие на которое приведет к запуску уже установленного приложения;
- автоматически загрузить и установить apk-файлы с помощью ReliableDownloadManager (установка не скрытая);
- скрытно установить apk-файлы с помощью ReliableDownloadManager (используется pm install).
Перечисленные команды могут содержать в себе специальные фильтры:
- по IMEI;
- по имени приложения, в которое внедрен вредоносный SDK;
- по региону проживания пользователя;
- по текущему мобильному оператору;
- по наименованию производителя мобильного устройства.
Пример данных, получаемых троянцем от управляющего сервера:
{
"server":"tcp://0.0.0.0",
"chs":[
],
"did":"56e2c66b31409b5725270a9d",
"sid":"56e2c66b31409b5725270a9d-com.trendmicro.dr.booster",
"brand":"Google",
"ac":null,
"messages":[
],
"last":"6260771250398822400,2016031113,",
"fileUrl":"http://cdn.fotapro.com/files/{id}",
"enabled":true,
"mode":3,
"fs":[
],
"ri":300,
"log":false
}
В параметре «ri», полученном в команде от сервера, указано количество секунд, по истечении которых на удаленный узел http://api.fotapro.com/api/data/d загружается информация из базы данных «Data».
Выполнив все свои функции, PushThread на несколько секунд приостанавливает свою работу, после чего повторно запускается в бесконечном цикле до тех пор, пока его работа не будет прекращена отсутствием подключения к Интернету, выключением экрана устройства, либо не будет получена команда «push/disable» от приложения, в которое встроен вредоносный SDK.
Компонент ReliableDownloadManager
Отвечает за загрузку apk-файлов, а также за скрытую и автоматическую установку приложений. Работает через ActionService. Отслеживает подключение к Интернету при помощи android.net.conn.CONNECTIVITY_CHANGE. Команды на загрузку apk-файлов помещает в Map. После установки интернет-соединения выполняет загрузку необходимых файлов и пытается установить их либо с использованием стандартного системного диалога, либо при помощи getPackageManager().installPackage(...). Если установка через installPackage(...) не удается, пытается установить приложения через команду «su pm install».
Также этот модуль используется для загрузки вспомогательных файлов, например, ярлыков или изображений для рекламных баннеров.
LocationService
Начинает работу при помощи ActionService. Регистрирует приемники, контролирующие включение и выключение экрана. С помощью этих приемников считает общее время, в течение которого экран был включен. В случае, когда общее время работы экрана составляет больше 1 часа, при помощи GPS, либо с использованием данных мобильной сети получает координаты устройства. Затем при помощи сервиса http://maps.googleapis.com получает точный адрес местоположения устройства (road, county, state, state district, country, country_code, region, town, city), а также текущие координаты.
Полученные сведения сохраняются в SharedPreferences, а также в локальную базу данных под ключом location_send_server_data. До тех пор, пока в SharedPreferences для location_send_server_data есть данные, новые координаты не запоминаются.
Имеющаяся информация о текущем местоположении передается не на управляющий сервер, а непосредственно приложению, в которое встроен вредоносный SDK. Это действие выполняется в ответ на команду «GetSalesTrackInfo». В данном случае SDK поддерживает несколько команд:
- GetSalesTrackInfo
- push/disable
- push/enable
- data/
- GetSDKUsedTime
AppUsageMonitor
Создается и запускается приемниками, зарегистрированными в ActionService и отслеживающими включение и выключение экрана. Каждый раз при включении экрана назначает задачу TimerTask, которая выполняется каждые 5 секунд. Она проверяет список запущенных приложений и заносит информацию о них в локальную базу данных в формате «приложение + статус».
Если имя того или иного запущенного приложения сохранено в SharedPreferences, то запускается функция «Reward Action», предназначенная, судя по всему, для начисления вознаграждений за установку и запуск рекламируемых приложений. При выключении экрана задача TimerTask отменяется.