Тестовое задание в Dr. Web на вакансию "Вирусный аналитик-стажёр Android"
Во время выполнения тестового задания использовалось следующее ПО:
- fernflower
- dex2jar
- jdgui
Задание 1
Изучить first-classes.dex
, найти вредоносный функционал и составить подробное
описание угроз (без копирования кода, своими словами).
Решение
Данное приложение (com.creativemobi.DragRacing
) было инфицировано и, как я
понимаю, распространялось в виде APK на варезниках (приложение популярно,
разработчик на Google Play с пометкой «Лучший разработчик»). На мой взгляд,
эта система инфицирования APK автоматическая и мало зависит от инфицируемого
приложения. Вредоносный функционал: типичный «ботнет-клиент», отправляющий
дампы пришедших SMS и номеров телефонов входящих и исходящих звонков, а так же
выполняющий некий набор команд, приходящих из «командного пункта»
(lebar.gicp.net, бэкэнд на ASP.NET, домен в любой момент может поменяться,
конфиг со всеми необходимыми параметрами получается с «текущего» сервера).
Вредоносный функционал находится в пакете com.GoldDream.zj и хранит в себе три
класса:
- zjReceiver
выполняет роль Android-ресивера, который вызывается при
описанных в AndroidManifest'е экшенах: обрабатываются экшены получения SMS и
звонков (android.intent.action.NEW_OUTGOING_CALL
,
android.provider.Telephony.SMS_RECEIVED
, и аналогичные для получения
звонков и отправления SMS), таким образом все SMS и номера дампаются в два
файла, замаскированные под файлы того приложения, которое было инфицировано.
Также обрабатывается экшен BOOT для запуска главного сервиса при старте ОС.
-
zjService
— сервис, выполняющий операции каждые n минут (по умолчанию 3), пришедшие из «командного пункта»:- команда «Позвонить» по указанному в аргументе с сервера номеру,
- команда «Отправить SMS»,
- команды «Удалить приложение» и «Установить приложение» (вызывая менеджер пакетов Android),
- команда «Отправить локальный файл». Каждые n минут он также отправляет сдампленные звонки и SMS и чистит дампы и пытается зарегистрировать устройство в своей системе на основании IMEI, серийного номера SIM, юзерагента встроенного в Android Webkit'а и IMSI.
-
UploadFiles
— хелпер для загрузки файлов а-ля загрузка файлов в HTML-форму «командного пункта».
Задание 2
Изучить second-classes.dex
, найти вредоносный функционал и составить подробное
описание угроз (без копирования кода, своими словами).
Решение
Более качественно написанный ботнет-клиент, чем в задании task #1, специализирующийся на SMS. Вредоносный функционал: отправляет контакты в XML-формате на CnC-сервер (load-date.ru), хранит входящие и исходящие SMS в своей sqlite-БД, данные из которых периодически отправляет на сервер и чистит. Отлавливает BOOT-экшн для запуска сервиса, который в свою очередь настраивает AlarmManager на выполнение вышеописанных действий через некоторое время. Так как используется AlarmManager, то телефон может нормально «засыпать», в отличие от реализации «задержки» с помощью sleep в task #1. С сервера приходят задания на отправку сообщений на короткие номера, для подтверждения парсятся входящие смски с помощью заранее написанных регулярок и отправляются обратно для подтверждения (почему-то автор малвари назвал это «логикой каптчи»). Сервисные сообщения о подписках и платных услугах специально скрываются от пользователя. Если я правильно понял, то при запуске приложения пользователя заспамливают просьбой разрешить стать «администратором устройства» этому приложению.
Задание 3
Задание для test.apk
: приложение запрашивает пароль, необходимо его узнать.
Решение
"Ninja 300"