Недавно нам на анализ пришло приложение для ОС Android, при первом взгляде на которое стало ясно – это что-то необычное. Все строки DEX файла были зашифрованы, а код обфусцирован.
Файл оказался многофункциональным троянцем, который может отправлять SMS на премиум-номера; скачивать и устанавливать на зараженное устройство другие вредоносные программы и/или рассылать их по Bluetooth; выполнять удаленные команды в консоли. Сейчас эта вредоносная программа детектируется «Лабораторией Касперского» как Backdoor.AndroidOS.Obad.a.
Как правило, вирусописатели стараются максимально запутать код своего творения, чтобы усложнить работу антивирусным экспертам, но такой уровень маскировки, как у Obad.a, редко встречается среди мобильного вредоносного ПО. Однако особенностью нового троянца была не только полная обфускация кода.
Особенности троянца
Создатели Backdoor.AndroidOS.Obad.a нашли ошибку в популярной программе dex2jar, которая обычно используется аналитиками для конвертирования APK-файла в более удобный для работы формат JavaArchive (JAR). Обнаруженная злоумышленниками уязвимость нарушает процесс конвертации Dalvik байт-кода в Java байт-код, что в итоге затрудняет статический анализ троянца.
Также злоумышленниками была найдена ошибка в OCAndroid, связанная с обработкой AndroidManifest.xml. Этот файл встречается в каждом Android-приложении и используется для описания структуры приложения, определения параметров его запуска и т.д. Вирусописатели модифицировали AndroidManifest.xml таким образом, что тот не соответствовал заданному Google стандарту, но при этом, благодаря найденной уязвимости, правильно обрабатывался на смартфоне. В результате динамический анализ троянца крайне затруднен.
Создатели Backdoor.AndroidOS.Obad.a использовали еще одну неизвестную ранее ошибку в ОС Android, которая позволяет вредоносному приложению пользоваться расширенными правами DeviceAdministrator, но при этом отсутствовать в списке приложений, обладающих такими правами. В результате удалить со смартфона вредоносную программу, получившую расширенные права, невозможно.
Наконец, Backdoor.AndroidOS.Obad.a не имеет интерфейса и работает в фоновом режиме.
Анализ кода
В этом вредоносном приложении все внешние методы вызываются через рефлексию, при этом все строки (в том числе имена классов и методов) зашифрованы.
Каждый класс имеет локальный метод-декриптор, который получает требуемую для расшифровки строку из локально объявленного массива байт. Все строки «спрятаны» в этот массив.
Самые важные строки, содержащие адреса командного сервера, проходят дополнительный процесс расшифровки. Для этого троянец сначала проверяет наличие доступа в интернет, а затем загружает страницу facebook.com и, вытащив некий элемент кода этой страницы, использует его как ключ для расшифровки. Таким образом Backdoor.AndroidOS.Obad.a расшифровывает адреса командный серверов только в боевых условиях – при наличии доступа в интернет. Кроме того, наличие этой функции затрудняет анализ зловреда.
Часть строк дополнительно зашифрована. Локальный декриптор получает закодированную строку в Base64 и раскодирует ее. Раскодированная строка расшифровывается сначала операцией XOR с MD5 ключа, затем дополнительно с MD5 от строки «UnsupportedEncodingException». Чтобы получить MD5 ключа, тот же локальный декриптор расшифровывает еще одну строку, от которой и считается MD5. Таким образом защищены ключевые строки, например, имя функции sendTextMessage.
В результате анализа нам удалось расшифровать все строки:
А результаты расшифровки позволили нам восстановить алгоритм работы приложения.
Получение прав
Сразу после запуска приложение пытается получить права DeviceAdministrator.
Как мы уже писали выше, одна из особенностей этого троянца состоит в том, что в случае успешного получения расширенных прав, вредоносное приложение невозможно будет удалить: использование неизвестной ранее ошибки в ОС Android позволяет вредоносному приложению с расширенными правами отсутствовать в списке приложений, обладающих правами DeviceAdministrator.
Мы уже сообщили компании Google об уязвимости в работе с DeviceAdministrator в ОС Android.
Расширенные права DeviceAdministrator могут использоваться троянцем для кратковременной (не более 10 секунд) блокировки экрана устройства. Как правило, это происходит после подключения к бесплатному Wi-Fi или после активации Bluetooth, который может использоваться зловредом для передачи своих копий и других вредоносных приложений на находящиеся поблизости устройства. Возможно, таким образом Backdoor.AndroidOS.Obad.a пытается помешать пользователю обнаружить вредоносную активность.
Также троянец пытается получить права суперпользователя (root), выполняя команды «suid».
Связь c хозяевами
Информация о том, были ли получены права суперпользователя, будет передана на командный сервер. Получение прав root может дать злоумышленникам преимущества при удаленном выполнении команд в консоли.
Для передачи сведений о зараженном устройстве и проделанной работе Backdoor.AndroidOS.Obad.a использует активное в данный момент подключение к интернету. Если сеть не найдена, троянец ищет ближайшие сети Wi-fi, не требующие авторизации, и подключается к одной из них.
После первого запуска вредоносное приложение собирает и передает на командный сервер с адресом androfox.com следующую информацию:
- MAC-адрес Bluetooth устройства
- Имя оператора
- Номер телефона
- IMEI
- Баланс счета
- Получены или нет права DeviceAdministrator
- Получены или нет права суперпользователя
- Местное время
Собранная информация отправляется на сервер в виде шифрованного JSON-объекта.
Эта информация передается на актуальный на время связи командный сервер и при каждом последующем соединении. Кроме того, зловред сообщает хозяину о своем состоянии: приложение отправляет на командный сервер актуальные таблицу премиум-номеров и префиксов для отправки SMS (параметр «aoc»), список заданий («task») и список C&C серверов. При первом сеансе связи с командным сервером отправляется пустая таблица и список адресов командных серверов, расшифрованных описанным выше алгоритмом. В ходе сеанса связи с C&C троянец может получать обновленную таблицу премиум-номеров и новый список адресов C&C.
С сервера в ответ приходит другой JSON-объект, который после расшифровки может выглядеть так:
{"nextTime":1,"conf":{"key_con":"oKzDAglGINy","key_url":"3ylOp9UQwk","key_die":"ar8aW9YTX45TBeY","key_cip":"lRo6JfLq9CRNd6F7IsZTyDKKg8UGE5EICh4xjzk"}}
nextTime — следующее время обращения к серверу.
conf — конфигурационные строки.
Конфигурационные строки могут содержать указания на изменения C&C, таблицы номеров с префиксами и ключами для отправки SMS и новые задания с параметрами. Кроме того, в conf может передаваться ключ для шифровки трафика (key_cip).
Злоумышленники могут управлять троянцем и с помощью SMS-сообщений: конфигурационные строки могут также содержать строки-ключи, которые троянец будет искать во входящих SMS для выполнения определенных действий (key_con, key_url, key_die).
Каждое входящее SMS-сообщение проверяется на наличие одного из ключей. Если найден ключ — выполняется соответствующее действие:
key_con ‑ немедленное подключение к серверу.
key_die ‑ удаление заданий из базы данных.
key_url ‑ смена C&C сервера; за ней в тексте SMS должен идти новый адрес. Таким образом можно создать новый C&C сервер и отправить его адрес по SMS с соответствующим ключом key_url, после чего все зараженные устройства станут работать с новым сервером.
Если в conf найден ключ на отправку SMS, то троянец отправляет сообщение на полученные c С&C номера. Таким образом для получения команды на отправку платных SMS даже не нужно наличие интернета:
Команды сервера
С C&C сервера троянцу приходят команды, которые заносятся в базу. Каждая запись команды в этой базе содержит порядковый номер команды, указанное сервером время ее выполнения и параметры.
Список команд:
- Отправить SMS. В параметрах содержится номер и текст. Ответные SMS удаляются.
- Пинг.
- Получить баланс по USSD.
- Выступить в качестве прокси (отправить указанные данные на указанный адрес и вернуть ответ).
- Подключиться к заданному адресу (кликер).
- Скачать и установить файл с сервера.
- Отправить на сервер список установленных на смартфоне приложений.
- Отправить информацию об указанном командным сервером установленном приложении.
- Отправить на сервер контакты пользователя.
- Удаленный Shell. Выполняет указанные злоумышленником команды в консоли.
- Передать файл всем обнаруженным Bluetooth-устройствам.
Набор команд для Obad.a позволяет зловреду распространять файлы по Bluetooth. С сервера приходит адрес файла, который должен быть скачан на зараженное устройство. После скачивания файла по очередной команде с сервера вредоносное приложение определяет ближайшие устройства с включенным Bluetooth и пытается передать им загруженный файл.
Несмотря на такие внушительные возможности, Backdoor.AndroidOS.Obad.a не очень распространен. По данным KasperskySecurityNetwork за три дня наблюдений на его заблокированные установки приходится не более 0,15% всех попыток заражения мобильных устройств различными вредоносными программами.
В завершение этого обзора хотим отметить, что по своей сложности и по количеству использованных неопубликованных уязвимостей Backdoor.AndroidOS.Obad.a ближе к вредоносному ПО под Windows, чем к другим троянцам под Android. А это значит, что стремительно растет не только количество Android-зловредов, но и их сложность.
Самый сложный Android-троянец
алексей
как его удалить то??????
Бакар
У меня такой же вирус. Помогите его удалить.в приложении com android google sys произошла ошибка