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

Тема в разделе "Аналитические статьи", создана пользователем akok, 5 сен 2016.

Метки:
  1. akok
    Оффлайн

    akok Команда форума Администратор

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

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

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

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

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

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

    [​IMG]

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

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

    [​IMG]

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

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

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

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

      [​IMG]

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

      [​IMG]

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

      [​IMG]

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

      [​IMG]

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

      [​IMG]

      [​IMG]
    5. Аналогичным образом зловред получает данные об устройстве в захэшированном виде из файла «/data/data/com.google.android.gms/shared_prefs/Checkin.xml«
    После того, как троянец собрал приведенные выше данные, он начинает прием задач на скачивание и установку приложений. Структура одной такой задачи приведена ниже:

    [​IMG]

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

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

    [​IMG]

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

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

    https://securelist.ru
     
    Dragokas и SNS-amigo нравится это.

Поделиться этой страницей