Dvmap: первый зловред для Android с инъекцией кода

Содержание 

В апреле 2017 г. мы зафиксировали активность нового троянца-рутовальщика, распространявшегося через магазин Google Play. В отличие от других рутовальщиков, он не только устанавливает свои модули в системе, но и внедряет вредоносный код в системные библиотеки среды выполнения. Продукты «Лаборатории Касперского» детектируют его как Trojan.AndroidOS.Dvmap.a.

Распространение рутовальщиков через Google Play – явление не новое. Например, троянец Ztorg с сентября 2016 г. загружался на Google Play почти сто раз. Однако, Dvmap – это очень особенный рутовальщик: в нем используется целый ряд новых методов. Но самое интересное, что он внедряет вредоносный код в системные библиотеки libdmv.so или libandroid_runtime.so.

Таким образом, получается, что Dvmap – это первый зловред для Android, который внедряет вредоносный код в системные библиотеки во время выполнения. На момент подготовки текста троянец был скачан из магазина Google Play уже более 50 000 раз. «Лаборатория Касперского» сообщила о троянце в Google, и его убрали из магазина.

Dvmap: первый зловред для Android с инъекцией кода

Trojan.AndroidOS.Dvmap.a в Google Play

Чтобы обойти проверку на безопасность приложений, выкладываемых в Google Play, создатели троянца использовали очень интересный прием: загрузив в конце марта 2017 г. в магазин «чистое» приложение, они потом несколько раз публиковали вредоносное обновление к нему. Вредоносная версия публиковалась ненадолго – обычно в тот же день в магазин возвращалась «чистая» версия программы. В период с 18 апреля по 15 мая такая замена произошла по крайней мере 5 раз.

Функциональность всех вредоносных версий Dvmap была одинакова. Из папки Assets инсталляционного пакета расшифровывается несколько архивных файлов, далее запускается исполняемый файл с именем ‘start’.

Dvmap: первый зловред для Android с инъекцией кода

Зашифрованные архивы в папке Assets

Интересно, что троянец поддерживает и 64-битную версию Android – такое бывает очень редко.

Dvmap: первый зловред для Android с инъекцией кода

Участок кода, где троянец принимает решение об использовании 32-битных или 64-битных файлов

Все зашифрованные архивы можно разделить на две группы. В первую группу входят Game321.res, Game322.res, Game323.res и Game642.res – они используются на начальном этапе заражения. Во вторую группу входят архивы Game324.res и Game644.res – эти участвуют в основном этапе.

Начальный этап

На начальном этапе троянец пытается получить root-права на зараженном устройстве и установить некоторые модули. Все архивы, актуальные для этого этапа, содержат одни и те же файлы, за исключением файла ‘common’. Это эксплойт-пак, с помощью которого троянец получает root-права. В разных архивах лежат три файла для 32-битных систем и 1 файл для 64-битных. Если эти файлы успешно получают root-права, то троянец устанавливает в систему несколько утилит, а также вредоносное приложение ‘com.qualcmm.timeservices’.

В этих архивах содержится файл ‘.root.sh’, в котором есть комментарии на китайском языке:

Dvmap: первый зловред для Android с инъекцией кода

Фрагмент файла .root.sh

Основной этап

На этом этапе троянец запускает файл ‘start’ из архива Game324.res или Game644.res, проверяет, какая версия Android установлена на устройстве, и принимает решение, какую библиотеку пропатчить. Для версий Android 4.4.4 и более ранних троянец патчит метод _Z30dvmHeapSourceStartupBeforeForkv из библиотеки libdvm.so, для Android 5 и более поздних патчит метод nativeForkAndSpecialize из libandroid_runtime.so. Обе библиотеки – это библиотеки среды выполнения, связанные с рабочими средами Dalvik и ART. До того, как пропатчить метод, троянец сохраняет резервную копию исходной библиотеки с названием bak_{исходное имя}.

Dvmap: первый зловред для Android с инъекцией кода

Пропатченная библиотека libdvm.so

В процессе патча троянец пишет вредоносный код поверх существующего кода с тем, чтобы он выполнял только вредоносный модуль /system/bin/ip, и больше ничего. Таким образом, оригинальный метод, в который был записан вредоносный код, теряет весь свой полезный функционал. После этого троянец помещает пропатченную библиотеку обратно в системную папку, затем заменяет исходный модуль /system/bin/ip вредоносным модулем из архива (Game324.res или Game644.res). Все это гарантирует, что вредоносный модуль троянца будет выполнен с системными правами. Эти действия потенциально очень опасны, в некоторых случаях может привести к поломке/выходу из строя устройства. Однако же вредоносный файл ‘ip’ не содержит никаких методов из исходного модуля ip. Соответственно, все приложения, использующие этот модуль, потеряют часть своей функциональности, или могут даже перестать работать.

Вредоносный модуль ‘ip’

Файл будет выполнен пропатченной системной библиотекой. Он может отключить опцию Verify Apps в Android и, изменив системные настройки, разрешить установку приложений из сторонних источников. Далее, без всякого участия пользователя, просто исполнив некоторые команды, он может дать приложению ‘com.qualcmm.timeservices’ права администратора устройства – это очень необычный способ получения прав root.

Вредоносное приложение ‘com.qualcmm.timeservices’

Как упоминалось выше, на начальном этапе троянец устанавливает приложение ‘com.qualcmm.timeservices’, основная цель которого – загрузить архивы и выполнить содержащийся в них исполняемый файл ‘start’. Во время нашего исследования это приложение успешно подключалось к командному серверу, но команд с сервера не поступило. Таким образом, мы не можем сказать, какие файлы будут выполняться троянцем, но вероятнее всего это будут вредоносные или рекламные файлы.

Заключение

Троянец распространялся через магазин Google Play и использует целый ряд очень опасных приемов, в частности патчит системные библиотеки и устанавливает в систему вредоносные модули с функциональностью, отличной от функциональности исходных модулей. Судя по всему, его основная цель – закрепиться в системе и выполнить загруженные файлы с root-правами. При этом за время исследования таких файлов с командного сервера не поступило.

Данный троянец сообщает практически о каждом своем действии злоумышленникам. Это наводит на мысль, что злоумышленники все еще тестируют своего троянца, ведь некоторые из используемых им приемов могут вывести зараженное устройство из строя. При этом троянцем уже заражено довольно много устройств, так что у злоумышленников есть где тестировать свои методы.

Надеюсь, что обнаружив зловред на ранней стадии его развития, мы сможем предотвратить широкомасштабную атаку в тот момент, когда злоумышленники созреют для активных действий.

MD5

43680D1914F28E14C90436E1D42984E2
20D4B9EB9377C499917C4D69BF4CCEBE

Постинги на схожие темы 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *