Исследование

Манипуляции троянцев с Google Play

Для вирусописателей Google Play – это своеобразная Земля Обетованная. Попав туда, вредоносное приложение получает широкую аудиторию, доверие этой аудитории и снисходительное отношение систем безопасности ОС (например, очень часто камнем преткновения для зловреда является запрет по умолчанию на установку приложений из источников, отличных от официального магазина). Но попасть в Google Play очень непросто: одним из главных условий попадания приложения в магазин Google Play является тщательная проверка программы на нежелательное поведение различными системами анализа, как автоматическими, так и ручными.

Некоторые вирусописатели, отчаявшись обойти проверки, вместо этого научились использовать клиентское приложение магазина в своих корыстных целях. В последнее время мы часто наблюдаем троянцев, которые используют приложение Google Play, чтобы в рамках рекламных кампаний скачивать, устанавливать и запускать приложения из магазина на смартфон без ведома его владельца, а также оставлять комментарии и проставлять рейтинг приложению. Как правило, устанавливаемые троянцем приложения не наносят пользователю прямого вреда, но жертва может терять деньги с мобильного счета, оплачивая дорогой мобильный трафик. Кроме того, троянцы могут скачивать и устанавливать не только бесплатные, но и платные приложения, тем самым заставляя пользователя платить еще более внушительные суммы.

Рассмотрим способы, с помощью которых осуществляются подобные манипуляции с Google Play.

Уровень 1. N00b

Первый способ – это заставить официальный клиент Google Play совершать требуемые злоумышленнику действия. Общая идея заключается в том, чтобы при помощи троянца запустить клиент, открыть в нем страницу нужного приложения, затем искать и программно взаимодействовать с элементами интерфейса (кнопками), чтобы вызвать загрузку, установку и запуск приложения. Необходимые элементы интерфейса выделены красным цветом на рисунке ниже:

goo_1 goo_2 goo_3

Методика взаимодействия с интерфейсом разнится, в общем случае можно выделить следующие техники:

  1. Использование Accesibility сервисов операционной системы (используется модулями Trojan.AndroidOS.Ztorg).
  2. Имитация пользовательского ввода (используется Trojan-Clicker.AndroidOS.Gopl.c).
  3. Инжектирование в процесс клиента Google Play для модификации логики его работы (используется Trojan.AndroidOS.Iop)

Рассмотрим работу подобных троянцев на примере Trojan.AndroidOS.Ztorg.n. Этот зловред использует сервисы Accesibility, изначально предназначенные для создания приложений, помогающих людям с ограниченными возможностями (например, приложений для голосового управления графическим интерфейсом). Троянец получает с командного сервера задание, которое содержит ссылку на нужное приложение, открывает его в Google Play и затем запускает следующий код:

goo_4

Код нужен для отслеживания появления на экране необходимого элемента интерфейса и программного клика по нему. Таким образом осуществляется последовательное нажатие кнопок «BUY» (на изображении на ней указана цена), «ACCEPT» и «CONTINUE». Этого достаточно, чтобы осуществить покупку приложения, если пользователь имеет привязанную к аккаунту Google платежеспособную банковскую карту.

Уровень 2. Pro

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

Манипуляции троянцев с Google Play

Сложность подхода заключается в том, что для успешной работы такого «самодельного» клиента необходима информация (например, логин и пароль пользователя, аутентификационные токены), которая недоступна обычному приложению. К большой удаче злоумышленников все необходимые данные хранятся на устройстве в открытом виде, в удобном формате SQLite. Доступ к ним ограничивает лишь модель безопасности Android, однако приложения могут нарушить ее, например, с помощью рутования устройства, и без проблем получить доступ к данным.

Например, свой клиент для Google Play есть у некоторых версий зловреда Trojan.AndroidOS.Guerrilla.a, который распространяется с помощью рутовальщика Leech. Этот клиент успешно выполняет задачи по скачиванию и установке платных и бесплатных приложений, а также умеет оценивать приложения и оставлять комментарии к ним в магазине Google.

После запуска Guerrilla начинает сбор необходимой информации:

  1. Аутентификационные данные аккаунта пользователя в Google Play.
  2. Чтобы осуществлять операции в Google Play необходимо использовать специальные токены, которые создаются при аутентификации пользователя. В самом простом случае, если пользователь уже авторизован в Google Play, троянец может использовать кэшированные локально токены. Осуществляется это простым поиском по базе данных, расположенной в /data/system/users/0/accounts.db:

    Манипуляции троянцев с Google Play

    С помощью кода ниже троянец проверяет, есть ли на зараженном устройстве готовые токены, т.е. пользователь авторизован и может совершать операции в Google Play:

    Манипуляции троянцев с Google Play

    Если таких токенов нет, то зловред получает логин и захэшированный пароль пользователя и авторизуется самостоятельно через OAuth:

    troj_goog_play_ru_8

    Манипуляции троянцев с Google Play

  3. Android_id – уникальный идентификатор устройства.
  4. Google Service Framework ID – уникальный идентификатор устройства в сервисах Google.
  5. Сперва зловред пытается получить этот идентификатор стандартными средствами, но если по каким-либо причинам не удается, выполняет следующий код:

    Манипуляции троянцев с Google Play

    Манипуляции троянцев с Google Play

  6. Google Advertising ID – это уникальный идентификатор для показа рекламы, присваиваемый сервисами Google Play.
  7. Guerrilla получает его следующим образом:

    Манипуляции троянцев с Google Play

    Манипуляции троянцев с Google Play

  8. Аналогичным образом зловред получает данные об устройстве в захэшированном виде из файла «/data/data/com.google.android.gms/shared_prefs/Checkin.xml«

После того, как троянец собрал приведенные выше данные, он начинает прием задач на скачивание и установку приложений. Структура одной такой задачи приведена ниже:

troj_goog_play_ru_14

Загрузка приложения троянцем происходит с помощью POST-запросов которые выполняются по ссылкам, приведенным ниже:

  1. https://android.clients.google.com/fdfe/search – выполняется поиск по пришедшему от злоумышленников запросу. Этот запрос нужен для того, чтобы симулировать взаимодействие пользователя с клиентом Google Play (основной сценарий установки приложений из официального клиента предполагает, что пользователь сначала выполнит поисковый запрос и только потом перейдет на страницу приложения).
  2. https://android.clients.google.com/fdfe/details – с помощью этого запроса собирается дополнительная информация о приложении, требуемая для его загрузки.
  3. https://android.clients.google.com/fdfe/purchase – загружаются токен и данные о покупке, используемые в следующем запросе.
  4. https://android.clients.google.com/fdfe/delivery – троянец получает URL и cookie, необходимые для скачивания .apk.
  5. https://android.clients.google.com/fdfe/log – подтверждение загрузки (для увеличения счетчика скачиваний).
  6. https://android.clients.google.com/fdfe/addReview – выставление оценки и добавление комментария.

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

troj_goog_play_ru_15

После выполнения запросов опционально может производиться собственно скачивание, установка (командой ‘pm install -r’, которая позволяет устанавливать приложения без согласия пользователя) и запуск приложения.

Заключение

Троянцы, которые используют приложение Google Play, чтобы скачивать, устанавливать и запускать приложения из магазина на смартфон без ведома его владельца, обычно распространяются рутовальщиками – зловредами, которые уже получили максимально возможные привилегии на устройстве. Именно это позволяет им выполнять подобные атаки на клиентское приложение Google Play. Отметим, что по итогам второго квартала 2016 года рутовальщики заняли более половины рейтинга TOP 20 мобильных вредоносных программ, а потому не стоит недооценивать эту угрозу. Тем более, что рутовальщики могут загружать не только зловреды, компрометирующие экосистему Android и тратящие средства пользователя на покупку ненужных ему платных приложений, но и другое вредоносное ПО.

Манипуляции троянцев с Google Play

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

 

Отчеты

CloudSorcerer: новая APT-угроза, нацеленная на российские государственные организации

«Лаборатория Касперского» обнаружила новую APT-угрозу CloudSorcerer, нацеленную на российские государственные организации и использующую облачные службы в качестве командных серверов аналогично APT CloudWizard.

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике