TrickBot продвигает приложение для обхода 2FA для клиентов банков в Германии

Mutt

Professional
Messages
1,056
Reaction score
643
Points
113
Исследователи IBM X-Force проанализировали вредоносное приложение для Android, которое, вероятно, передается зараженным пользователям трояном TrickBot. Это приложение, получившее от нашей команды название «TrickMo», предназначено для обхода второго фактора и строгой аутентификации, предлагаемой клиентам банка, когда им необходимо авторизовать транзакцию.

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

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

Когда TrickBot впервые появился в 2016 году, Германия стала одной из первых площадок для атак. Похоже, что в 2020 году масштабное банковское мошенничество TrickBot - это постоянный проект, который помогает банде монетизировать скомпрометированные аккаунты.

Первые признаки в сентябре 2019 года
В сентябре 2019 года твит CERT-Bund привлек внимание команды IBM Trusteer Mobile Security Research. В твите говорилось, что TrickBot, известный банковский троян, принадлежащий организованной банде киберпреступников, использует веб-инъекции «человек в браузере» (MITB) в сеансах онлайн-банкинга, чтобы запрашивать у зараженных пользователей их номер мобильного телефона и тип устройства.

Машинный перевод этого твита гласит:
«Остерегайтесь онлайн-банкинга: Emotet перезагружает TrickBot. На зараженных компьютерах TrickBot отображает запрос номера мобильного телефона и типа устройства, используемого для банковских операций, а затем предлагает пользователям установить предполагаемое приложение безопасности».

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

В этом анализе мы узнаем о возможностях нового варианта и о том, что, как мы обнаружили, является «аварийным выключателем», который может удаленно удалить вредоносное ПО с зараженного устройства.

Настольные трояны и их мобильный компонент
Процесс, с помощью которого трояны пытаются заразить мобильные устройства, существует не менее десяти лет. Обычно, когда пользователи уже заражены вредоносным ПО, таким как TrickBot, на своем рабочем столе, они видят веб-инъекцию, запрашивающую тип операционной системы (ОС) их мобильного устройства и номер телефона. Затем, если они указывают, что используют устройство на базе Android, троянец, выдавая себя за свой банк с помощью веб-инъекций, обманом заставляет жертву установить поддельное приложение безопасности. Предполагаемая цель этого приложения - получить и использовать необходимый «код безопасности» для входа на их сайт онлайн-банкинга.

Наша исследовательская группа проанализировала вредоносное приложение для Android, которое, скорее всего, распространяется через TrickBot, и назвала его TrickMo. TrickMo - это последний вариант в категории вредоносных программ для кражи номера аутентификации транзакции (TAN), ориентированный на пользователей в Германии. В его основные возможности входят:
  • Кража личной информации об устройстве
  • Перехват смс-сообщений
  • Запись целевых приложений по одноразовому паролю (TAN)
  • Блокировка телефона
  • Кража фотографий с устройства
  • Самоуничтожение и удаление

По мере того как банки вводят более совершенные меры безопасности, банковское вредоносное ПО развивается, чтобы не отставать от бесконечной гонки вооружений. Из нашего анализа мобильного вредоносного ПО TrickMo очевидно, что TrickMo предназначен для взлома новейших методов OTP и, в частности, кодов TAN, часто используемых в Германии.

Среди различных функций, которые мы обсуждаем в этом посте, мы считаем, что наиболее важной новинкой TrickMo является функция записи приложения, которая дает ему возможность преодолевать новые проверки приложений pushTAN, используемые немецкими банками.

В последующем анализе мы подробно описываем возможности этого нового варианта и «аварийного выключателя», который может удаленно удалить вредоносное ПО с мобильного устройства.

Почему настольные трояны используют мобильный компонент?
Около десяти лет назад злоумышленники, владеющие банковскими троянами, могли просто использовать украденные учетные данные для доступа к учетной записи онлайн-банка жертвы и выполнения денежных переводов. В качестве контрмеры финансовые учреждения внедрили различные методы второй факторной аутентификации (2FA) . Один из методов, который был популярен в Германии, известен как мобильный TAN (mTAN). Это было реализовано путем отправки SMS-сообщения с одноразовым паролем (OTP) на мобильное устройство клиента. Транзакция будет авторизована только после того, как клиент введет TAN на веб-сайт онлайн-банкинга в своем браузере. Имейте в виду, что хотя в этом случае речь идет о TAN, это может быть любой OTP, в зависимости от того, какой банк является целью.

Между тем, настольные банковские трояны разработали способность выполнять различные схемы социальной инженерии с помощью веб-инъекций - метода, который изменяет контент, представляемый зараженной жертве в ее браузере. В некоторых случаях использовались сложные веб-инъекции, чтобы обманом заставить жертв вводить свои коды 2FA непосредственно в веб-формы, контролируемые вредоносным ПО, чтобы исключить необходимость в компоненте мобильного вредоносного ПО. Но злоумышленники по-прежнему постоянно искали новые методы кражи TAN.

Примерно в 2011 году печально известный троян Zeus начал использовать веб-инъекции, которые обманом заставляли пользователей загружать мобильный компонент под названием «ZitMo» (Zeus in the Mobile). Это было использовано для обхода методов 2FA путем перехвата SMS-сообщений, приходящих из банка, и кражи mTAN без ведома жертвы. Многие другие семейства банковских вредоносных программ последовали их примеру и выпустили свои собственные вредоносные компоненты для Android, предназначенные для кражи этих OTP и TAN.

От mTAN к pushTAN
В последние несколько лет некоторые банки в Европе, особенно в Германии, перестали использовать аутентификацию на основе SMS и переключились на специализированные приложения pushTAN для схем 2FA.

Вместо того, чтобы полагаться на SMS-сообщения, которые могут быть легко перехвачены сторонними приложениями, эти приложения начали использовать push-уведомления для пользователей, содержащие детали транзакции и TAN. Метод pushTAN имеет явное преимущество: он повышает безопасность за счет снижения риска атак с заменой SIM-карт и кражи SMS.

TrickMo вызывает pushTAN
Метод pushTAN является препятствием для вредоносных приложений, которые могут находиться на одном устройстве, и особенно проблематичен для мобильных вредоносных программ из-за изолированной программной среды приложений Android . Эта функция предназначена для того, чтобы одно приложение не могло получить доступ к данным других приложений без рутирования устройства.

Чтобы обойти эту проблему, разработчики TrickMo добавили несколько новых функций для кражи TAN с помощью записи видео с экрана и очистки данных с экрана.

Корень всего зла (Android)
Так как же TrickMo обойти эти функции безопасности? Он злоупотребляет услугами доступности.

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

На устройстве, установленном обманутым пользователем, компонент TrickMo открывается и отправляет намерение начать действие настроек специальных возможностей, вынуждая пользователя предоставить ему разрешения доступа. Затем он использует службу доступности для своих вредоносных операций, некоторые из которых включают:
  • Предотвращение удаления приложения пользователем
  • Как стать приложением для SMS по умолчанию, изменив настройки устройства
  • Мониторинг запущенных в данный момент приложений
  • Очистка экранного текста

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

На изображении ниже мы видим функцию вредоносного ПО, которая обнаруживает такие диалоги, когда они представляются пользователю, предлагая им выбрать вариант на основе предопределенных вариантов.

Возможности сохраняемости TrickMo
Когда дело доходит до устройств на базе Android, многие приложения должны найти способ запускаться на устройстве после перезагрузки системы. Наиболее распространенный способ добиться этого - создать широковещательный приемник, зарегистрированный для широковещательного действия « android.intent.action.BOOT_COMPLETED », и добавить код, который загружает приложение при запуске широковещательной передачи.

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

Но TrickMo работает иначе. Вместо того, чтобы запускать свою службу только во время загрузки, он регистрирует приемник, который прослушивает действия широковещания «android.intent.action.SCREEN_ON» и «android.provider.Telephony.SMS_DELIVER». Затем он использует AlarmManager для установки ожидающего намерения, которое будет запускать свою собственную службу после заранее определенного интервала. Другими словами, служба TrickMo запустится либо после того, как устройство станет интерактивным, либо после получения нового SMS-сообщения.

Сложные конфигурации
TrickMo использует механизм общих предпочтений для хранения настроек и данных, которые вредоносная программа использует во время выполнения. Некоторые из настроек представляют собой логические значения, которые действуют как переключатели. Они представляют собой функции и могут быть включены и выключены с сервера управления (C&C) или с помощью SMS-сообщения, эффективно инструктируя вредоносное ПО для выполнения определенных задач.

Некоторые из настроек включают:
  • URL-адрес C&C сервера
  • Интервалы пробуждения сервиса
  • Важные названия пакетов
  • Статус разрешений доступа
  • Статус экрана блокировки
  • Статус записи
  • Статус приложения SMS
  • Убить статус переключателя

Скрытность
Чтобы сохранить свои ресурсы в большей безопасности и усложнить анализ для исследователей, TrickMo использует обфускатор для шифрования имен своих функций, классов и переменных. Версия TrickMo от января 2020 года содержала код, который проверяет, запущено ли приложение на корневом устройстве или эмуляторе, чтобы предотвратить анализ.

В качестве примера на двух изображениях ниже мы можем видеть зашифрованный и расшифрованный файл общих настроек, который зашифрован с использованием алгоритма java «PBEWithMD5AndDES».

C&C Communications
Извлечение данных с устройства
Для связи со своим мастером код TrickMo содержит жестко запрограммированный URL-адрес C&C сервера. При запуске он периодически подключается к назначенному серверу через незашифрованный HTTP-запрос и отправляет объект JSON, содержащий данные, полученные с телефона жертвы. Похищенные параметры следующие:
  • ID
  • IMSI
  • IMEI
  • Телефонный номер
  • Оператор
  • AID
  • Модель
  • Марка
  • Версия
  • Строить
  • Процент заряда батареи
  • Состояние подключения Wi-Fi
  • Время бодрствования
  • Журналы включены?
  • Вредоносная программа уже установлена в качестве приложения для SMS по умолчанию? [Верно / Неверно]
  • Сила сигнала
  • Экран активен [Верно / Неверно]
  • Ориентация
  • Было ли предоставлено разрешение на доступ? [Верно / Неверно]
  • Размер экрана
  • Список установленных приложений
  • SMS-сообщения, сохраненные на устройстве

Банковское вредоносное ПО нередко собирает большие объемы данных с устройства жертвы.

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

Кража и сокрытие SMS-сообщений
Поскольку некоторые банки по-прежнему используют авторизацию транзакций на основе SMS, TrickMo настроен на автоматическое кражу всех SMS-сообщений, хранящихся на устройстве.

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

На изображении ниже мы видим пакет, который был отправлен на C&C злоумышленника, содержащий собранную информацию вместе с украденными данными SMS.

Канал связи через украденное SMS
Кроме того, TrickMo имеет автоматический механизм отправки SMS-сообщений на свой C&C сервер.

В некоторых случаях он использует этот механизм для отправки данных журнала важных действий. Он может сохранять SMS-сообщение на устройстве, помечая его как «внутренний» в поле номера телефона. SMS-сообщение будет мгновенно отправлено на сервер, информируя оператора вредоносной программы о выполненных задачах.

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

Управление TrickMo
Операторы TrickMo могут контролировать вредоносное ПО по двум каналам:
  1. Через его C&C по протоколу HTTP с открытым текстом с использованием объектов JSON
  2. Через зашифрованные SMS-сообщения
Существуют предопределенные команды, позволяющие изменить конфигурацию вредоносного ПО и заставить его выполнять определенные задачи. Вот некоторые из наиболее интересных команд:

SMS управление
  • Обновите адрес C&C сервера - SMS, начинающееся с «http: //»
  • Отправить SMS-сообщение с шифрованием AES обратно отправителю - SMS, начинающееся с «sms: //»
  • Интервал пробуждения службы обновлений - «2»
  • Переключатель Kill - «4»

C&C Control
  • Обновите адрес C&C сервера - «1»
  • Интервал пробуждения службы обновлений - «2»
  • Заблокировать экран - «5»
  • Отображение изображения в WebView с произвольного URL-адреса - «11»
  • Отправьте произвольное SMS-сообщение - «8».
  • Украсть изображения, сохраненные на устройстве - «12» и «13».
  • Используйте службу специальных возможностей, чтобы стать приложением для SMS по умолчанию - «6»
  • Включить запись других приложений - «15»
  • Переключатель Kill - «4»

Экран блокировки
Большинство воров не хотят, чтобы их поймали с поличным во время кражи - они хотят выиграть время, чтобы уйти с добычей. То же самое и с банковским вредоносным ПО.

Вредоносные программы для настольных банков часто блокируют доступ пользователей к их банковским веб-сайтам после успешной транзакции с помощью веб-инъекций, отображающих различные экраны «служба недоступна». TrickMo ничем не отличается; цель - завершить операцию, вызывая минимальные подозрения.

После совершения мошенничества, кражи OTP / mTAN, TrickMo покупает некоторое время, активируя экран блокировки и не позволяя пользователю получить доступ к своему устройству. Этот экран блокировки состоит из двух частей:
  • WebView, содержащий фоновое изображение загружается из заранее определенного URL. Это фоновое изображение, вероятно, содержит поддельный экран «обновления программного обеспечения».
  • Действие блокировки, которое представляет собой прозрачное окно, отображаемое в верхней части экрана и содержащее курсор «загрузка». Этот экран остается на экране и не позволяет пользователю использовать кнопки навигации.

Из-за упомянутой ранее реализации постоянства TrickMo этот экран блокировки сохраняется после перезапуска и повторно запускается каждый раз, когда устройство становится интерактивным.

В некоторых случаях TrickMo может использовать эту функцию для перехвата SMS-сообщений без ведома пользователя путем активации экрана блокировки и перехвата SMS-сообщений в фоновом режиме.

Запись приложений - Кража OTP и TAN
Особенность, которая отличает TrickMo от стандартных SMS-стиллеров, заключается в его уникальной способности записывать экран во время работы целевых приложений.

Эта функция была включена только в более новых версиях TrickMo, которые были адаптированы специально для немецких банков и используют специальное приложение для реализации 2FA на основе TAN.

Запись приложения осуществляется двумя способами:
  1. Использование Android MediaRecorder класс для захвата видео с экрана, когда целевое приложение представляется пользователю
  2. Использование сервиса специальных возможностей для сохранения текстового файла, содержащего данные всех объектов на экране

Оба файла позже отправляются на C&C сервер злоумышленника. На следующем изображении мы видим, как вредоносная программа получает объект JSON от C&C сервера, содержащий команду для начала записи, целевые приложения и соотношение размеров записанного видео.

На изображении ниже функция рекурсивно собирает все текстовые данные из дочерних узлов каждого узла доступности. Другими словами, он просматривает каждый объект на экране и сохраняет его текстовые данные.

Kill Switch TrickMo
Одна из самых интересных особенностей вредоносной программы TrickMo - наличие собственного аварийного выключателя.

Kill-переключатели используются многими авторами вредоносных программ для удаления следов с устройства после успешной операции. Поскольку HTTP-трафик TrickMo с его C&C сервером не зашифрован, его можно легко подделать.

На следующем изображении мы видим функцию, которая анализирует команды с C&C сервера. Если возвращаемый объект JSON имеет ключ «4», он включит переключатель уничтожения и инициирует собственное удаление, отправив намерение и беспрепятственно подтвердив удаление с помощью службы специальных возможностей, при этом жертва ничего не заметит.

Экстренный выключатель также можно включить с помощью SMS. Это немного сложнее, поскольку SMS-команды зашифрованы и закодированы с помощью base64.

Используемый алгоритм шифрования - RSA, и, что интересно, авторы решили использовать закрытый ключ для дешифрования и оставили его в коде как жестко закодированную строку.

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

Проанализировав несколько вариантов зловреда, мы заметили, что закрытый ключ был раскрыт в коде и не изменился. Таким образом, нашей команде удалось сгенерировать открытый ключ и составить SMS-сообщение, которое активировало аварийный выключатель. Это означает, что вредоносная программа может быть удалена удаленно с помощью SMS-сообщения. Наша команда также смогла протестировать другие команды в лаборатории, вмешиваясь в HTTP-трафик с C&C или отправляя созданные SMS-сообщения.

Подозреваете, что вы заражены?
Следующее SMS-сообщение может быть использовано для уничтожения образца, проанализированного в этом исследовании, и всех других вариантов, использующих тот же закрытый ключ:
HrLbpr3x / htAVnAgYepBuH2xmFDb68TYTt7FwGn0ddGlQJv / hqsctL57ocFU0Oz3L + uhLcOGG7GVBAfHKL1TBQ ==

Отправка этого SMS вызовет аварийный выключатель TrickMo, отправив строку «4», зашифрованную сгенерированным открытым ключом RSA и закодированную в кодировке base64.

Индикаторы компрометации (IoCs)
hxxp: //mcsoft365.com/c
hxxp: //pingconnect.net/c

Хеши
  • MD5: 5c749c9fce8c41bf6bcc9bd8a691621b
  • SHA256: 284bd2d16092b4d13b6bc85d87950eb4c5e8cbba9af2a04d76d88da2f26c485c
  • MD5: b264af5d2f3390e465052ab502b0726d
  • SHA256: 8ab1712ce9ca2d7952ab763d8a4872aa6a278c3f60dc13e0aebe59f50e6e30f6

Фактор TrickMo
TrickBot троян был один из самых активных банковских вредоносных ПО , в киберпреступности арене в 2019 Из нашего анализа, очевидно , что TrickMo предназначен , чтобы помочь TrickBot сломать самый последние методы аутентификации TAN основы. Одной из наиболее важных функций TrickMo является функция записи приложения, которая дает TrickBot возможность преодолевать новые проверки приложений pushTAN, развернутые банками.

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

securityintelligence.com
 
Last edited by a moderator:
Top