Hirudo подменяет банковские приложения, чтобы обойти их защиту

Троян для Android Hirudo крадёт учётные данные, перехватывает SMS, позволяет удалённо управлять устройством и записывать изображение с экрана и камеры. Его отличительная тактика — заменить настоящее банковское приложение специально изменённой копией. В ней встроен механизм перехвата вызовов, который вмешивается в проверки безопасности самого приложения. Подробности обнаружила нидерландская компания мобильной безопасности ThreatFabric.
Hirudo подменяет банковские приложения, чтобы обойти их защиту
Изображение носит иллюстративный характер

Исследователи нашли подмены для восьми банковских приложений в Индонезии; их названия не раскрываются. При этом сбор учётных данных нацелен на пользователей в Индонезии, Китае, Индии, Мексике, Марокко и Таиланде. Вице-президент ThreatFabric по противодействию мошенничеству Эвард Дрисхейс описал Hirudo как сочетание кражи паролей, захвата устройства, записи экрана и камеры, а также перехвата SMS. По его оценке, за трояном стоит «довольно зрелая серверная инфраструктура».
Hirudo распространяют через приложения-загрузчики, замаскированные под магазины, сервисы с видео для взрослых и развлекательные платформы. Известны четыре приманки: Shopora (com.agbbh.kjdrttt), 1V1 X (com.onev.vip), KoiShort (com.koishort.app) и ZoyaTV (com.zoyatv.app). Они показывают настоящий контент — например, витрину магазина, каталог видео или короткие сериалы — внутри WebView, создавая впечатление обычного приложения.
За видимой частью загрузчик собирает данные для отслеживания рекламных кампаний, получает их настройки и проверяет, установлена ли уже программа удалённого доступа Hirudo RAT. Он также выясняет, выданы ли ей разрешения на специальные возможности и доступ к уведомлениям. Если трояна нет, приложение показывает поддельное сообщение об обновлении. Hirudo устанавливается как отдельное, второе приложение и должно получить собственные разрешения, прежде чем сможет выполнять вредоносные действия.
Следы распространения ведут к поддельным веб-страницам, имитирующим страницы Google Play Store для приложений магазинов, коротких драм и футбольных сервисов. По оценке исследователей, пользователи могли попадать туда через рекламу в социальных сетях, принадлежащих М⃰. В зависимости от приманки загрузчик способен показывать фальшивые экраны для кражи платёжного PIN-кода, поддельные окна входа в банковские приложения и электронные кошельки, а также накладки с экраном блокировки и запросом графического ключа или PIN-кода.
Hirudo поддерживает кражу данных непосредственно на устройстве и удалённое управление в реальном времени. В процессе установки, как и у трояна StreamRat, может настраиваться заведомо неработающее VPN-подключение, которое временно блокирует интернет. ThreatFabric считает, что это мешает онлайн-проверкам репутации и анализу кода, в том числе облачным проверкам Google Play Protect. Но у Play Protect есть и автономное обнаружение известных потенциально опасных приложений, поэтому такой приём не отключает защиту полностью.
Подмена банковского приложения начинается с того, что Hirudo обнаруживает его через службу специальных возможностей и сверяет сертификат подписи с сохранённым образцом. Затем троян показывает фиктивное предложение обновиться и открывает системный деинсталлятор настоящего приложения, не дожидаясь нажатия пользователя. Одновременно он загружает копию, подготовленную для конкретного банка. Сначала оригинал необходимо удалить, иначе установить почти идентичную вредоносную версию нельзя. ThreatFabric называет это «реальным ограничением» схемы, но после замены троян получает возможность вмешиваться в проверки внутри самого банковского приложения.
В изменённые копии встроен механизм перехвата, который манипулирует проверками подписи, специальных возможностей, записи экрана и Play Integrity. Он может сообщить приложению настоящий сертификат банковской программы, вернуть пустой список при запросе включённых служб специальных возможностей и снять флаг FLAG_SECURE, после чего экран можно просматривать и записывать удалённо. Кроме того, механизм способен переподписывать сертификаты аттестации ключей с помощью встроенного keybox и пересылать запросы Play Integrity по обычному HTTP на сервер операторов. Тот возвращает вердикт, который приложение принимает.
Встроенный keybox, как уточнила ThreatFabric, принадлежит не операторам Hirudo: это публично утёкший ключевой набор. Есть и другая ловушка для защитников: действительный ответ Play Integrity сам по себе не доказывает, что приложение не изменено, если запрос пересылался серверу и не был сформирован приложением подлинным способом. Серверная часть операции хранит сведения об устройствах, историю экранов блокировки и финансовые профили, в том числе поля с месячным доходом и оценкой риска.
Немногим более чем за месяц до публикации сведений о Hirudo ThreatFabric сообщила о StreamRat, нацеленном на испаноязычных пользователей. Реклама в М⃰ и TikTok выдавала вредоносную кампанию за бесплатный сервис потокового телевидения Streamtv Esp. StreamRat использует службы специальных возможностей и MediaProjection для почти полного контроля над заражённым Android-устройством: операторы могут применять VNC и скрытое управление экраном, собирать дерево интерфейса, записывать нажатия клавиш, показывать накладки для кражи учётных данных и блокировать интернет или экран.
В ThreatFabric рассматривают Hirudo как переход от вмешательства в работу самого устройства к подмене проверок целевого банковского приложения. Поэтому подпись приложения, список включённых служб специальных возможностей и вердикт целостности, сформированные на устройстве, нельзя считать надёжными сами по себе: если приложение заменено, злоумышленник может повлиять и на эти данные. Защитникам следует проверять такие сигналы на серверной стороне.


Новое на сайте

20854Как дешёвые Android-смартфоны превращаются в чужие прокси? 20853В Индии имя звонящего появится на экране вместе с номером 20852Как проверить готовность команды к звонку с клонированным голосом? 20851Уязвимости MarkLogic: делегированные права могли открыть путь к администраторскому... 20850Как GitHub закрыл лазейку, угрожавшую тысячам npm-пакетов? 20849Hirudo подменяет банковские приложения, чтобы обойти их защиту 20848Как Vghost превратил старую ошибку Linux в путь к root? 20847Уязвимости в PAN-OS и Cisco Secure Email Gateway уже используют атакующие 20846Как уязвимость GitLab могла открыть сервер для чужого кода? 20845Уязвимость SAP Cloud SDK могла отправить OAuth2-секреты злоумышленнику 20844Уязвимость в Nextcloud открыла путь к веб-оболочкам на серверах 20843Смогут ли малые ИИ-модели превратить бытовую технику в ботнет? 20842Пять уязвимостей NGINX: кому грозит риск и как закрыть его 20841Тайный диктофон в OpenAI: что утверждают следователи 20840Как проверять уязвимость входа, не заходя дальше дозволенного?
Ссылка