Сентябрь 2024 года. Пользователи в Таиланде, Индонезии и Вьетнаме скачивают приложения, которые выглядят в точности как приложения их банков. Они вводят логины и пароли, видят знакомый интерфейс, подтверждают операции. Всё как обычно. Кроме одного: всё, что они делают, видят хакеры в реальном времени. При этом само банковское приложение не взломано, устройство не рутовано, антивирус молчит. Как такое возможно? Ответ - FjordPhantom.
FjordPhantom - это не просто очередной банковский троян. Это смена парадигмы. Вместо того чтобы модифицировать банковское приложение или накладывать поверх него фишинговые окна, злоумышленники запускают его внутри виртуальной среды прямо на устройстве жертвы. Эта техника, впервые задокументированная Promon в конце 2023 года, позволяет обойти практически все существующие защиты мобильных приложений.
В этой статье разберем по костям, как работает эта новая генерация малвари, почему виртуализация стала идеальным оружием против банковских приложений, как именно FjordPhantom использует легитимные open-source инструменты для своих целей и, главное, как защититься, когда старые методы детекции перестали работать.
Что такое FjordPhantom
Открытие и хронология появленияВ начале сентября 2023 года специалисты компании Promon через своего давнего партнёра i-Sprint получили тревожные сообщения о новом Android-вредоносе, распространяющемся в странах Юго-Восточной Азии . К концу ноября того же года Promon публично раскрыл информацию об этой угрозе, назвав её FjordPhantom - за способность оставаться незаметной и скрытно распространяться . Позже, в марте 2025 года, вредонос был официально задокументирован в базе знаний MITRE ATT&CK под идентификатором S1208 .
Определение и основная цель
FjordPhantom - это вредоносное приложение для Android, главная цель которого - кража учётных данных онлайн-банков и манипуляция транзакциями непосредственно на устройстве жертвы . Вредонос нацелен на пользователей банковских сервисов и использует комбинацию технических и социально-инженерных методов для обмана жертв.
Ключевые факты, определяющие прорывной характер
- Использование виртуализации как вектора атаки. Главная инновация FjordPhantom заключается в применении виртуализации не как инструмента для исследования или реверс-инжиниринга, а как основного вектора атаки на банковские приложения . Техника описана в MITRE как T1670 (Virtualization Solution) .
- Обход Android-песочницы (sandbox) без root-доступа. Виртуализация позволяет разным приложениям работать в едином sandboxe, что даёт вредоносу доступ к памяти и файлам банковского приложения. Обычно для взлома песочницы требуется root-доступ, но здесь он не нужен, что делает атаки проще и позволяет обойти детекцию рута - популярную проверку для критических с точки зрения безопасности приложений .
- Отказ от модификации целевого приложения. Традиционные банковские трояны либо перепаковывали APK банка, либо использовали оверлейные атаки. FjordPhantom не модифицирует оригинальное приложение. Оно запускает его внутри себя, что позволяет обойти все проверки целостности и подписи .
- Комбинация технологий и живой социальной инженерии. Вредонос распространяется через фишинговые сообщения, а после установки жертве звонит "служба поддержки банка" (настоящий человек в колл-центре) и помогает настроить приложение .
Атаки были зафиксированы в Индонезии, Таиланде, Вьетнаме, Сингапуре и Малайзии . Распространение идёт в основном через мессенджеры и фишинговые сообщения . Ущерб от одной только подтверждённой атаки составил 10 миллионов тайских бат (около 280 000 долларов США) на момент написания отчёта Promon .
Модульная структура и множественные цели
FjordPhantom спроектирован модульно, что позволяет ему атаковать различные банковские приложения . В исследованном образце вредонос был нацелен на одно конкретное банковское приложение, но код содержал возможности для атак на семь других . Конкретная атака зависит от встроенного банковского приложения .
Это первый массовый вредонос, использующий виртуализацию для выполнения вредоносных операций и кражи учётных данных, что позволяет обойти практически все существующие защиты мобильных приложений.
Анатомия заражения - от фишинга до финала
Процесс заражения FjordPhantom - это не просто скинуть APK-файл и надеяться, что жертва его запустит. Это двухэтапная, тщательно спланированная операция, сочетающая передовые технологии виртуализации с классической, но хорошо отточенной социальной инженерией. Операторы используют живых людей в колл-центрах, чтобы довести жертву до финала.Вектор распространения: цифровая наживка
FjordPhantom не прячется в Google Play. Он распространяется через фишинговые сообщения, используя методы, которые MITRE классифицирует как T1660 (Phishing). Атакующие используют для доставки email, SMS и популярные мессенджеры, особенно те, что распространены в Юго-Восточной Азии.
Жертве приходит сообщение, которое выглядит как официальное уведомление от её банка. Содержание может быть разным, но суть одна:
- "Обновите ваше банковское приложение для повышения безопасности"
- "Специальная версия приложения с увеличенными лимитами переводов"
- "Критическое обновление для защиты от мошенников"
Социальная инженерия в действии: живой голос в трубке
Но самое интересное начинается после того, как жертва установила приложение. Через некоторое время (обычно от нескольких минут до часа) ей звонит "сотрудник службы поддержки банка" . Это не робот и не автоинформатор - это живой человек, часто говорящий на местном языке без акцента.
Звонок может выглядеть так:
- "Здравствуйте, это служба безопасности вашего банка. Мы заметили, что вы установили обновление нашего приложения. Помочь вам с настройкой?"
- "Мы проводим проверку безопасности. Подтвердите, пожалуйста, что вы видите главный экран приложения"
- "Для повышения лимитов переводов вам нужно активировать специальный режим. Я помогу вам это сделать"
- Объяснить жертве, что делать, если она запуталась в интерфейсе
- Убедить её предоставить те разрешения, которые запрашивает приложение
- В реальном времени направлять её действия, видя на своём экране то же, что видит жертва (благодаря вредоносу)
- Успокоить, если жертва начинает сомневаться
Техническая начинка APK-файла, который устанавливает жертва, устроена как матрёшка. Внутри одного установочного пакета скрываются несколько компонентов:
- Реальный APK банковского приложения (неизмененный). Это оригинальный, легитимный код, скачанный злоумышленниками из официальных источников. Он не модифицирован, его цифровая подпись совпадает с оригинальной. Именно поэтому все проверки целостности, которые выполняет само приложение, проходят успешно.
- Виртуализационное решение. Это open-source проекты, которые можно найти на GitHub. Обычно они используются для создания "двойников" приложений (например, чтобы запустить два WhatsApp на одном телефоне). Вредонос использует их код для создания изолированного контейнера.
- Хукинг-фреймворк. Ещё один open-source компонент, предназначенный для перехвата и модификации вызовов API внутри приложений. Обычно используется разработчиками для отладки, а здесь - для обхода защит.
- Собственно вредоносный код FjordPhantom. Это "мозг" операции, который координирует работу всех компонентов, собирает данные и отправляет их атакующим.
- Легитимность приложения: Жертва видит знакомый интерфейс, все функции работают как обычно. Банковское приложение действительно запускается и работает.
- Живой голос: Разговор с реальным человеком, который говорит вежливо и убедительно, снимает подозрения.
- Отсутствие внешних признаков угрозы: Устройство не рутовано, антивирус молчит, банковское приложение не жалуется.
Технология атаки - как работает виртуализация на Android
Технология, лежащая в основе FjordPhantom, - это не какой-то секретный военный софт. Это открытые, легитимные инструменты, которые можно найти на GitHub. Злоумышленники просто собрали их вместе и направили в нужное русло.Что такое виртуализация на Android в принципе
Чтобы понять атаку, нужно понять, что такое виртуализация на Android. В мире Android существуют легитимные приложения-контейнеры, такие как Parallel Space, Island, Shelter и десятки других. Они позволяют запускать несколько копий одного и того же приложения или изолировать "рабочий" и "личный" профили на одном устройстве. Обычный use case - например, чтобы иметь два аккаунта WhatsApp на одном телефоне (чего стандартный Android не позволяет).
Как это работает технически: такое приложение-хост создает собственную виртуальную файловую систему внутри себя. Вы устанавливаете в него копию нужного приложения (например, второй WhatsApp), и оно запускается внутри этого изолированного "пузыря". С точки зрения операционной системы Android, запущено только одно приложение - сам хост. А внутри него работает ваш второй мессенджер.
Google разрешает такие приложения, многие из них легально доступны в Google Play Store. Они считаются полезными инструментами.
Как это работает у FjordPhantom
FjordPhantom берет эту легитимную технологию и ставит её на службу криминалу. Вредоносное приложение, которое устанавливает жертва, само является таким хостом. Но внутри него находится не просто копия банковского приложения, а целый арсенал.
Процесс технически выглядит так:
- Загрузка: Вредоносное приложение (хост) содержит в себе настоящий APK-файл целевого банковского приложения, а также модули виртуализации, хукинг-фреймворк и свой вредоносный код .
- Установка: При первом запуске хост-приложение создает виртуальную файловую систему и "устанавливает" в неё банковский APK.
- Запуск: Когда пользователь (по инструкции "сотрудника банка") запускает приложение, происходит следующая магия: хост-приложение создает новый процесс. Сначала в этот процесс загружается код самого хоста (включая вредоносные компоненты и хукинг-фреймворк). И только после этого в тот же самый процесс загружается код банковского приложения.
- Результат: Для операционной системы Android виден только один процесс - процесс хоста. Банковское приложение работает внутри этого же процесса. Пользователь видит на экране родной интерфейс своего банка и не подозревает, что рядом с ним в памяти работает вредонос.
Такой подход дает хакерам несколько критических преимуществ:
- Вредоносный код загружается до банковского приложения. Когда банковское приложение наконец стартует, вредоносный код и хуки уже находятся в памяти и ждут своего часа.
- Нет модификации оригинального приложения. Злоумышленники не меняют ни строчки в коде банковского приложения. Все проверки целостности (checksums), которые выполняет само приложение, проходят успешно. Для банковского приложения оно работает в "чистой" среде.
- Разрушение Android-песочницы. Это самый важный пункт. Android использует песочницы для изоляции ресурсов и выполнения кода между приложениями и операционной системой . Каждое приложение работает в изолированном пространстве. Обычно, чтобы получить доступ к памяти другого приложения, требуется root-доступ. Но здесь, благодаря виртуализации, вредонос и банковское приложение работают в одной и той же песочнице. У них есть полный доступ к файлам и памяти друг друга . Это позволяет вредоносу читать всё, что видит банковское приложение, и отлаживать его.
И всё это происходит без ведома пользователя. Устройство не рутовано, антивирус молчит, а банковское приложение работает как обычно. Разница лишь в том, что оно работает не в "родной" среде Android, а в "матрице", созданной хакерами.
Разрушение Android-песочницы (Sandbox Escape) - Сердце атаки
Если виртуализация - это контейнер, в котором всё происходит, то разрушение песочницы - это тот самый момент, когда вредонос получает ключи от королевства. FjordPhantom не просто запускает банковское приложение рядом с собой - он делает их частью одного целого, полностью уничтожая главный защитный механизм Android.Как работает Android Sandbox в норме
Чтобы понять масштаб катастрофы, нужно понять, что такое Android Sandbox. Android использует песочницы для изоляции ресурсов и выполнения кода между приложениями и операционной системой. Это фундаментальный принцип безопасности, заложенный в ядро системы.
Как это работает технически:
- Каждое приложение при установке получает уникальный идентификатор пользователя (UID)
- Система запускает каждое приложение в отдельном процессе
- Файлы приложения хранятся в изолированной директории, доступной только этому UID
- Доступ к памяти других приложений заблокирован на уровне ядра
Что происходит в виртуальном контейнере FjordPhantom
FjordPhantom грубо ломает этот механизм через виртуализацию. Когда хост-приложение создает виртуальный контейнер и запускает внутри него банковское приложение, происходит нечто принципиально иное.
В нормальной Android-среде каждое приложение - отдельная песочница. В среде FjordPhantom все приложения внутри одного хоста работают в едином sandbox'е . Это означает, что вредоносный код и банковское приложение существуют в одном адресном пространстве, имеют доступ к файлам друг друга и могут взаимодействовать напрямую.
Более того, виртуализационное решение, используемое вредоносом, сначала загружает свой собственный код (и все остальное, что находится в его приложении) в новый процесс, а затем загружает код размещаемого приложения . Таким образом, вредонос оказывается в памяти раньше, чем банковское приложение.
Критическое преимущество для атакующих
Это разрушение песочницы даёт хакерам несколько колоссальных преимуществ:
- Нет необходимости в root-доступе. Обычно для взлома песочницы и получения доступа к памяти другого приложения требуется root-доступ. Здесь же приложения сами оказываются в одной песочнице по воле жертвы, установившей "обновлённое" приложение .
- Обход детекции рута. Устройство остаётся "чистым". Все стандартные проверки на рут, которые выполняют банковские приложения, проходят успешно, потому что устройство действительно не рутовано .
- Прямой доступ к памяти. Вредонос может читать всё, что видит банковское приложение, включая пароли, номера карт, остатки на счетах и OTP-коды .
- Возможность отладки. Разные приложения внутри одной песочницы могут отлаживать друг друга . Это позволяет атакующим не просто пассивно наблюдать, но и активно модифицировать поведение банковского приложения в реальном времени.
Что это значит на практике
На практике это выглядит так: банковское приложение считает, что оно работает в идеально безопасной среде. Оно выполняет все свои проверки, все они проходят успешно. Оно открывает сессию, загружает данные пользователя, отображает баланс. И всё это время рядом в том же процессе сидит вредонос, который видит абсолютно всё и может в любой момент вмешаться.
Как объясняет MITRE, виртуализация позволяет выполнять вредоносные операции без ведома пользователя . Например, вредонос может имитировать функциональность легитимного банковского приложения в виртуальной среде, пока вредоносный код перехватывает учётные данные.
И самое страшное: банковское приложение не модифицировано. Код остался родным, подпись цела. Все защиты, основанные на проверке целостности, бесполезны.
Инъекция кода без модификации приложения - Троянский конь нового поколения
Это, пожалуй, самый изящный и технически сложный элемент атаки FjordPhantom. Хакерам нужно было внедрить свой код в процесс банковского приложения, чтобы контролировать его, но при этом оставить само приложение нетронутым. И они нашли способ, который MITRE классифицирует как T1631 (Process Injection).Традиционный метод: грубая сила (репаккинг)
Чтобы понять гениальность подхода FjordPhantom, нужно сначала посмотреть, как работали злоумышленники раньше. Традиционный метод инъекции кода в Android-приложения называется репаккингом. Схема простая:
- Злоумышленник скачивает оригинальный APK-файл банковского приложения.
- Распаковывает его, добавляет свой вредоносный код.
- Перепаковывает обратно в APK.
- Подписывает своей цифровой подписью (оригинальная подпись банка у него, конечно, отсутствует).
- Распространяет этот модифицированный APK.
Метод FjordPhantom: хирургическая точность
FjordPhantom обходит эту проблему кардинально другим способом. Они не модифицируют банковское приложение. Вообще. APK банка остаётся абсолютно нетронутым, со всей оригинальной подписью и кодом. Как же тогда вредоносный код попадает в процесс?
Секрет в порядке загрузки, который обеспечивает виртуализация:
- Вредонос загружается первым. Когда пользователь запускает хост-приложение (которое маскируется под обновлённый банк), именно код хоста начинает выполняться первым.
- Создание процесса. Хост-приложение создаёт новый процесс для запуска банковского приложения внутри своего виртуального контейнера.
- Загрузка вредоноса. В этот новый процесс сначала загружается весь код хоста, включая вредоносные компоненты, виртуализационное решение и хукинг-фреймворк.
- Загрузка банка. Только после того, как вредонос уже "обустроился" в памяти, в тот же самый процесс загружается код оригинального банковского приложения.
Результат: идеальная маскировка
Для банковского приложения ситуация выглядит абсолютно нормальной. Оно запускается в своём собственном процессе (как оно думает), его код и подпись не изменены, все проверки целостности проходят успешно . Но на самом деле оно запустилось в процессе, где уже живёт вредонос. Это как зайти в свой дом и не заметить, что там уже сидят чужие люди.
Почему это работает так хорошо:
- Нет модификации оригинального приложения. Код банка не тронут, подпись совпадает с оригинальной, проверки целостности не находят проблем.
- Вредонос в памяти до банка. Когда банковское приложение наконец стартует, вредоносный код и хуки уже загружены и ждут своего часа.
- Единое адресное пространство. Вредонос и банковское приложение работают в одной песочнице, что даёт полный доступ к памяти и данным друг друга.
FjordPhantom обходит это ограничение, используя виртуализацию не как способ инъекции, а как способ создания среды, где приложения "добровольно" оказываются в одном процессе. Банковское приложение не подвергается инъекции - оно просто запускается там, где вредонос уже есть.
Этот метод делает бесполезными все защиты, основанные на проверке целостности кода и подписи приложения. Как отмечают эксперты, традиционные методы обнаружения модификации кода не работают, потому что код не модифицирован . Вредоносный код живёт в хосте, банковское приложение живёт в контейнере, а вместе они образуют смертоносный тандем, который невозможно обнаружить стандартными средствами.
Хукинг-фреймворки и обход защит - Как FjordPhantom дурит детекторы
Итак, у нас есть виртуальный контейнер, внутри которого банковское приложение мирно работает, даже не подозревая, что рядом сидит вредонос. Но этого мало. Чтобы остаться незамеченным и беспрепятственно воровать данные, нужно ещё заставить замолчать системы безопасности, встроенные в само банковское приложение. Именно здесь в игру вступают хукинг-фреймворки - мощные инструменты, которые обычно используют разработчики для отладки, а хакеры - для обхода защит.FjordPhantom использует технику, классифицированную MITRE как T1617 (Hooking) . Это перехват системных вызовов и API-функций, чтобы подменить ответ, который приложение ожидает от операционной системы.
Что такое хукинг и почему это мощно
Представь, что банковское приложение регулярно звонит в техподдержку Android с вопросом: "Есть ли на устройстве включенные сервисы доступности?" или "Не заблокировано ли устройство?". В нормальной ситуации техподдержка (ядро) отвечает честно. Хукинг - это когда вредонос ставит на телефонную линию "прослушку" и перехватывает разговор. Приложение задаёт вопрос, а вредонос отвечает вместо системы: "Всё чисто, босс, никаких проблем". Приложение успокаивается и продолжает работать.
Обход детекции Accessibility Service (Сервисы доступности)
Сервисы доступности (Accessibility Service) - это палка о двух концах. Изначально они созданы, чтобы помогать людям с ограниченными возможностями: читать текст с экрана, управлять голосом и так далее. Но уже много лет это главный инструмент банковских троянов для считывания данных с экрана и перехвата нажатий.
Поэтому все уважающие себя банковские приложения проверяют, не включены ли на устройстве подозрительные сервисы доступности. Если какой-то левый сервис активен, банк может заблокировать вход или показать предупреждение.
FjordPhantom обходит эту защиту с помощью хукинга. Вредонос перехватывает API-вызовы, связанные с проверкой Accessibility Service. Когда банковское приложение запрашивает у системы список активных сервисов, FjordPhantom подменяет ответ и возвращает пустой список . Приложение думает, что всё чисто, хотя на самом деле вредоносный сервис работает на полную катушку.
Обход SafetyNet и Root-детекции
SafetyNet - это набор сервисов Google Play, который позволяет приложениям проверять, не взломано ли устройство, не установлен ли рут, не разблокирован ли загрузчик. Многие банковские приложения полагаются на SafetyNet для принятия решения, стоит ли доверять устройству.
FjordPhantom применяет здесь другой трюк. Он хукает API GooglePlayServices и заставляет банковское приложение думать, что эти сервисы недоступны . Многие приложения, сталкиваясь с отсутствием GooglePlayServices, не блокируют доступ, а просто пропускают проверки на рут, так как не могут их выполнить. В результате приложение запускается даже на устройстве с рутом, а уж на чистом, но скомпрометированном через виртуализацию - и подавно.
Самый наглый приём - перехват UI-функций для автоматического закрытия любых диалоговых окон, которые банк пытается показать пользователю. Банковское приложение может выдать предупреждение: "Обнаружена подозрительная активность, продолжить?" или "Ваше устройство небезопасно". В нормальной ситуации пользователь должен нажать "Отмена" или "Выход". Но FjordPhantom хукает методы, отвечающие за отображение этих окон, и просто закрывает их, как только они появляются.
Жертва даже не видит предупреждений. Многие из этих диалоговых окон нельзя закрыть обычным способом, но вредонос делает это программно, и пользователь остаётся в неведении.
В коде FjordPhantom исследователи Promon обнаружили множество хуков, которые логируют различные действия целевых приложений, не изменяя их поведение. Это, скорее всего, отладочная функциональность, оставленная разработчиками вредоноса. Они хотят видеть, что именно происходит в атакуемом приложении, чтобы адаптировать свои следующие шаги. Это явный признак того, что FjordPhantom находится в активной разработке и, вероятно, будет эволюционировать для атак на новые приложения.
Почему это работает
Хукинг-фреймворки, используемые FjordPhantom, сами по себе не являются вредоносными. Это open-source инструменты, созданные для легитимных целей: отладки, автоматизации тестирования, кастомизации. Вредонос просто берёт готовый код и встраивает его в свою схему. Это делает его ещё более опасным, потому что сигнатурный анализ таких фреймворков бесполезен - они есть в каждой второй "песочнице" разработчика.
В результате банковское приложение оказывается в идеальной ловушке: все его защитные механизмы дают зелёный свет, а пользователь не получает никаких предупреждений. Тем временем вредонос спокойно собирает данные и передаёт их атакующим.
Кейсы и методы атак - от кейлоггинга до манипуляции транзакциями
После того как вредонос получил контроль над виртуальным окружением, обошёл все защиты и заставил банковское приложение работать в "матрице", начинается самое интересное - непосредственно кража денег. Методы, которые используют операторы FjordPhantom, делятся на несколько уровней: от пассивного наблюдения до активного управления транзакциями в реальном времени.Уровень 1: Скринскрэппинг и кейлоггинг - сбор данных
Самый базовый уровень атаки - это просто чтение всего, что происходит на экране, и перехват всего, что вводит пользователь. Для этого FjordPhantom использует сервисы доступности (Accessibility Service), которые, как мы помним из части 6, успешно скрыты от детекции банковского приложения.
Как это работает технически:
- Вредонос регистрирует свой собственный сервис доступности внутри виртуального контейнера
- Этот сервис получает уведомления обо всех изменениях на экране
- Когда банковское приложение отображает страницу входа, вредонос читает поля ввода и перехватывает нажатия клавиш
- Логины, пароли, номера карт, CVV-коды - всё это утекает на сервер атакующих в реальном времени
Уровень 2: Манипуляция транзакциями в реальном времени
Это уже высший пилотаж. Когда жертва инициирует перевод, вредонос может вмешаться в процесс и изменить параметры транзакции прямо перед подтверждением.
Схема выглядит так:
- Жертва заходит в банковское приложение и начинает создавать перевод.
- Оператор в колл-центре (или автоматизированный скрипт) видит это в реальном времени.
- Когда жертва вводит сумму и номер счёта получателя, вредонос может:
- Подменить номер счёта на свой, оставив сумму без изменений
- Увеличить сумму перевода
- Создать вторую скрытую транзакцию параллельно с основной
- Жертва видит на экране свои данные (благодаря хукам UI, вредонос может показывать то, что хочет видеть пользователь, а не то, что реально отправляется).
- Жертва подтверждает операцию, и деньги уходят мошенникам.
Уровень 3: Роль живого колл-центра
FjordPhantom - это не просто техническая атака, это киберпреступление с человеческим лицом. В схеме задействованы живые операторы, которые сидят в колл-центре и звонят жертвам.
Как это работает:
- После установки вредоноса оператор звонит жертве, представляясь сотрудником банка .
- Оператор видит на своём экране то же, что и жертва (благодаря скринскрэппингу), и может в реальном времени направлять её действия .
- Например: "Нажмите вот эту кнопку", "Введите код из SMS", "Подтвердите перевод".
- Если жертва сомневается, оператор использует методы социальной инженерии: убеждает, что это плановая проверка, что так нужно для повышения безопасности, что иначе её счёт заблокируют.
Уровень 4: Кража OTP (одноразовых паролей)
Двухфакторная аутентификация, основанная на SMS, традиционно считалась надёжной защитой. Но для FjordPhantom это не проблема. У вредоноса есть как минимум три способа получить OTP:
- Перехват SMS напрямую, если вредонос запросил соответствующие разрешения.
- Чтение с экрана, когда SMS приходит и отображается в уведомлении или в самом приложении.
- Перехват ввода, когда пользователь вручную вводит код из SMS в приложение.
Реальные кейсы: что удалось украсть
Promon зафиксировал как минимум один подтверждённый случай успешной атаки с использованием FjordPhantom. Ущерб составил 10 миллионов тайских бат, что на момент написания отчёта равнялось примерно 280 000 долларов США . Это только один эпизод, который удалось отследить. Реальное количество украденных денег может быть значительно выше, так как банки не всегда раскрывают информацию о таких инцидентах.
Эволюция: GodFather идёт дальше
Техника, использованная FjordPhantom, не осталась единичным экспериментом. В 2025 году исследователи Zimperium обнаружили новую версию Android-зловреда GodFather, которая пошла ещё дальше и подтвердила, что виртуализация становится новым стандартом для банковских троянов.
GodFather создаёт изолированную виртуальную среду прямо на смартфоне жертвы и запускает в ней настоящие банковские приложения. Но его главная инновация - техника StubActivity:
- Когда жертва открывает настоящее банковское приложение, GodFather через сервис доступности перехватывает Intent (команду на запуск)
- Вместо настоящего приложения он запускает свою подставную активность (stub)
- Эта подставная активность маскируется под настоящую и запускает виртуализированную копию банковского приложения в своём контейнере
- Жертва думает, что работает с родным приложением, а на самом деле - с его копией под полным контролем зловреда
Что это значит для индустрии
GodFather показывает, что техника FjordPhantom не просто работает, она масштабируется и совершенствуется. Если FjordPhantom был proof-of-concept для ограниченного числа банков в Юго-Восточной Азии, то GodFather - это уже промышленный масштаб: полтысячи приложений по всему миру.
Методы атак эволюционируют от простого считывания данных к активному управлению транзакциями, а комбинация технологий и живой социальной инженерии делает защиту от таких угроз чрезвычайно сложной задачей.
Жертвы и география - кто в зоне риска
Понимание того, кого именно атакует FjordPhantom и почему выбор пал на конкретные регионы, даёт ключ к осознанию масштабов угрозы и её эволюции. Это не случайный разброс, а тщательно спланированная кампания, учитывающая особенности местных рынков, поведения пользователей и уровня защиты банков.Первичный регион: Юго-Восточная Азия
Атаки FjordPhantom были впервые задокументированы в пяти странах Юго-Восточной Азии: Индонезия, Таиланд, Вьетнам, Сингапур и Малайзия . Выбор этих стран не случаен и продиктован несколькими факторами.
- Высокое проникновение Android. Во всех этих странах доля Android-устройств на рынке смартфонов превышает 80-90%. Это создаёт огромную поверхность для атак, нацеленных именно на эту платформу.
- Популярность альтернативных источников приложений. Пользователи в этих регионах часто скачивают APK-файлы не только из Google Play, но и из сторонних магазинов, форумов, прямо из ссылок в мессенджерах. Культура установки приложений из непроверенных источников здесь гораздо более распространена, чем в Европе или США. Это делает фишинговые схемы с прямой ссылкой на APK очень эффективными.
- Активное использование мессенджеров. В Юго-Восточной Азии мессенджеры (WhatsApp, Telegram, местные Viber) являются основным средством коммуникации. Фишинговые ссылки, разосланные через них, имеют высокую степень доверия, особенно если сообщение приходит от знакомого контакта (чей аккаунт мог быть взломан ранее).
- Развивающаяся банковская инфраструктура и цифровизация. Банки в этих странах активно продвигают цифровые услуги, но системы безопасности мобильных приложений не всегда успевают за ростом угроз. Некоторые банки могли не иметь продвинутых средств защиты от репаккинга или хукинга, что сделало их идеальными целями для тестирования новой техники.
- Языковая и культурная адаптация. Звонки "службы поддержки" ведутся на местных языках, без акцента, с использованием местных реалий и манеры общения. Это требует вовлечения местных сообщников или колл-центров, работающих с этими странами, что указывает на серьёзную организованность группировки.
Основная цель FjordPhantom - банковские и финансовые приложения. Исследованный Promon образец был нацелен на одно конкретное банковское приложение в этом регионе. Однако код содержал в себе заготовки для атак как минимум на семь других банковских приложений . Это говорит о том, что операторы изначально планировали масштабировать атаку и имели список целей.
Конкретная атака зависит от того, какое банковское приложение встроено в распространяемый APK . Злоумышленники создают несколько версий вредоноса, каждая под конкретный банк, и распространяют их среди клиентов этого банка. Это делает фишинг более убедительным: жертва получает ссылку на "обновление" именно своего банка.
Жертвы: кто в группе риска
Портрет типичной жертвы FjordPhantom:
- Пользователь Android-смартфона.
- Клиент одного из банков в перечисленных странах.
- Недостаточно технически подкован, чтобы различать официальные и неофициальные источники приложений.
- Склонен доверять сообщениям и звонкам, которые выглядят официально.
Детекция - почему старые методы не работают и что делать
Обнаружение FjordPhantom - это вызов для всей индустрии мобильной безопасности. Традиционные методы, на которые полагались банки и антивирусы годами, здесь просто бесполезны. Чтобы понять, как детектить такую угрозу, нужно сначала осознать, почему старые подходы проваливаются.Почему сигнатурный анализ бесполезен
Сигнатурный анализ - это когда антивирус ищет в коде известные последовательности байт или хеши файлов, характерные для вредоносов. В случае с FjordPhantom этот метод не работает по трем причинам:
- Банковское приложение не модифицировано. Вредонос не трогает код банка. Он использует оригинальный APK с оригинальной подписью. Антивирус, проверяющий банковское приложение, видит эталонный, чистый код. Сигнатур для чистого приложения, естественно, нет.
- Вредоносный код живет в хосте. Вредоносная логика находится в хост-приложении, которое маскируется под "обновление" или "специальную версию". Само по себе хост-приложение может не содержать вредоносного кода в классическом понимании - оно содержит легитимные open-source компоненты (виртуализацию, хукинг-фреймворки). Антивирусы не могут заблокировать любой код, использующий виртуализацию, так как это легитимная технология.
- Отсутствие фиксированной сигнатуры. Операторы могут легко модифицировать хост-приложение, менять его внешний вид, названия пакетов, добавлять обфускацию. Сигнатура будет меняться быстрее, чем антивирусные компании успеют её обновлять.
Почему поведенческий анализ на уровне ОС тоже пасует
Android не видит ничего необычного. Запущено приложение (хост). Внутри него работает другое приложение, но для ядра Android это просто часть процесса хоста. Песочница работает штатно, никаких нарушений прав доступа не происходит. Все API-вызовы, которые делает банковское приложение, выглядят нормально, потому что их перехватывает и модифицирует хукинг-фреймворк уже после того, как они покинули приложение, но до того, как они достигли ядра.
Стратегия детекции от MITRE
MITRE ATT&CK предлагает несколько методов для обнаружения таких угроз. Они не дают 100% гарантии, но значительно повышают шансы.
Метод 1: Проверка прав доступа (DS0042 - User Interface)
Самый простой и доступный метод - это ручная или автоматизированная проверка того, какие приложения имеют расширенные права доступа.
- Что проверять: Список администраторов устройства и список приложений, зарегистрировавших сервисы доступности (Accessibility Service).
- Почему это важно: Любое приложение, запрашивающее эти права, должно вызывать подозрение. Хотя легитимные приложения тоже могут их использовать (например, приложения для людей с ограниченными возможностями), их наличие - это красный флаг.
- Как это делать: Пользователь может зайти в настройки устройства и просмотреть эти списки. Для корпоративных сред можно использовать политики MDM (Mobile Device Management), которые запрещают установку приложений с такими правами без явного одобрения.
Этот метод предназначен для магазинов приложений и корпоративных каталогов.
- Что проверять: При анализе приложения перед публикацией нужно искать признаки запроса разрешений на Accessibility Service или наложение поверх других окон (overlay). Сочетание этих двух разрешений - классический маркер банковского трояна.
- Почему это важно: Если бы Google Play более тщательно проверял приложения на наличие этих разрешений в связке с подозрительным поведением, часть заражений можно было бы предотвратить. Однако FjordPhantom распространяется вне Google Play, поэтому этот метод применим только для официальных магазинов.
Это уже метод для защищенных сред и продвинутых решений безопасности (RASP).
- Что проверять: Следует отслеживать вызовы API, связанные с GooglePlayServices, SafetyNet, а также вызовы, которые обычно используются для хукинга.
- Почему это важно: FjordPhantom хукает API GooglePlayServices, чтобы имитировать их недоступность. Приложение, которое ведет себя так, будто эти сервисы недоступны (например, не может проверить SafetyNet, но при этом нормально работает), - это сильный индикатор аномалии .
- Как это делать: Банковские приложения могут внедрить код, который не просто вызывает SafetyNet, но и проверяет, не был ли этот вызов перехвачен. Например, можно сравнивать время ответа, ожидаемое поведение и т.д.
FjordPhantom использует открытые хукинг-фреймворки, такие как Frida или Xposed. У этих фреймворков есть свои детектируемые признаки.
- Что искать: Наличие библиотек, характерных для этих фреймворков, необычные открытые порты (Frida использует порты 27042/27043 для взаимодействия), подозрительные процессы.
- Как это делать: Приложение может проверять среду выполнения на наличие признаков активных хукинг-фреймворков и блокировать свою работу, если они обнаружены.
Это наиболее продвинутый метод, который должны внедрять сами банковские приложения.
- Что проверять: Аномалии в поведении приложения, которые не могут быть объяснены нормальной работой.
- Примеры:
- Функция, которая обычно выполняется за 10 миллисекунд, вдруг начинает выполняться за 100 миллисекунд из-за того, что её перехватывает хукинг-фреймворк.
- Приложение пытается обратиться к файлу или памяти, которые не должны быть доступны в нормальной ситуации.
- Цепочка вызовов API выглядит необычно (например, вызывается метод, который обычно не используется в данном контексте).
Метод 6: Обучение пользователей (User Guidance)
MITRE также подчеркивает важность обучения пользователей (M1011 - User Guidance).
- Что делать: Регулярно напоминать клиентам, что банки никогда не просят устанавливать приложения из непроверенных источников по ссылкам из SMS или мессенджеров. Банки не звонят и не просят "помочь с настройкой" приложения.
- Почему это важно: Технические методы могут дать сбой, но осведомленный пользователь - это последний рубеж обороны. Если жертва знает о такой схеме, она не перейдет по ссылке и не установит вредонос.
Подводя итог по детекции, можно составить следующий чек-лист:
- Внедрить RASP-решение, которое способно детектировать запуск в виртуальных средах и наличие хукинг-фреймворков.
- Настроить мониторинг API-вызовов внутри приложения на предмет аномалий, связанных с SafetyNet и GooglePlayServices.
- Проверять среду выполнения на наличие признаков отладки, хукинга и виртуализации.
- Использовать обфускацию кода, чтобы затруднить анализ приложения злоумышленниками.
- Проводить регулярный анализ нативных библиотек на предмет внедрения вредоносного кода через легитимные фреймворки.
- Обучать пользователей и предупреждать их о подобных схемах атак.
MITRE ATT&CK Mapping - как классифицируется атака
Фреймворк MITRE ATT&CK - это база знаний, которая систематизирует тактики и техники, используемые киберпреступниками. Он помогает специалистам по безопасности говорить на одном языке, классифицировать угрозы и выстраивать защиту. FjordPhantom, будучи сложной многоступенчатой атакой, использует целый набор техник, которые идеально ложатся в эту матрицу. Понимание этих техник позволяет не только детектировать конкретный вредонос, но и предвидеть, как могут действовать его последователи.В марте 2025 года вредонос был официально задокументирован в базе знаний MITRE ATT&CK под идентификатором S1208 . Рассмотрим подробно каждую технику, которую применяет FjordPhantom, и как именно она реализована в этой атаке.
T1670 - Virtualization Solution (Виртуализация)
Это сердце атаки, её главная инновационная техника. MITRE определяет её как использование технологии виртуализации для выполнения вредоносных операций.Как это реализовано в FjordPhantom:
Вредоносное приложение выступает в роли хоста, внутри которого создаётся виртуальная среда. В эту среду устанавливается и запускается оригинальное, не модифицированное банковское приложение. Для Android-системы виден только процесс хоста, а банковское приложение работает внутри него как часть того же процесса . Это позволяет:
- Обойти Android-песочницу, так как все приложения внутри хоста разделяют единое адресное пространство.
- Получить доступ к памяти и файлам банковского приложения без необходимости root-доступа.
- Запускать вредоносный код раньше, чем код банка.
Связь с другими техниками: Виртуализация создаёт среду, в которой становятся возможны Process Injection (T1631) и Hooking (T1617).
T1631 - Process Injection (Инъекция кода в процесс)
Традиционно инъекция кода в процессы на Android требует либо root-доступа, либо эксплуатации уязвимости. FjordPhantom обходит это ограничение через виртуализацию.Как это реализовано в FjordPhantom:
Вредонос не внедряет свой код в уже работающий процесс банковского приложения. Вместо этого он создаёт новый процесс и сначала загружает в него свой код (хост, вредоносные модули, хукинг-фреймворк), а затем уже в этот же процесс загружается код банковского приложения . Таким образом, вредонос оказывается в памяти раньше, и банковское приложение запускается в уже "заражённом" процессе. Для самого приложения это выглядит как нормальный запуск, проверки целостности проходят успешно, но вредоносный код уже присутствует.
MITRE отмечает, что этот метод позволяет выполнять произвольный код в контексте другого приложения, что даёт доступ к его данным и функциональности.
T1617 - Hooking (Перехват системных вызовов)
Хукинг - это техника перехвата и модификации системных вызовов и API-функций. Вредонос использует её, чтобы обмануть системы безопасности банковского приложения.Как это реализовано в FjordPhantom:
- Обход детекции Accessibility Service (Сервисы доступности): Вредонос перехватывает API-вызовы, связанные с проверкой списка активных сервисов доступности, и возвращает банковскому приложению ложные данные (пустой список). Приложение думает, что сервисы доступности не включены, хотя на самом деле вредонос активно их использует .
- Обход SafetyNet и Root-детекции: Хукинг API GooglePlayServices заставляет банковское приложение считать, что эти сервисы недоступны. Многие приложения в таком случае пропускают проверки на рут, так как не могут их выполнить .
- Закрытие предупреждений безопасности: Вредонос перехватывает функции, отвечающие за отображение диалоговых окон, и автоматически закрывает их. Пользователь не видит предупреждений о подозрительной активности.
T1655 - Masquerading (Маскировка)
Злоумышленники маскируют свои вредоносные приложения под легитимные, чтобы обмануть пользователей и обойти защиту.Как это реализовано в FjordPhantom:
- APK-файл вредоноса имеет иконку и название, идентичные официальному банковскому приложению или похожие на него .
- Фишинговые сообщения, с помощью которых распространяется вредонос, оформлены в стиле официальных уведомлений банка.
- Сам процесс атаки включает звонки от "службы поддержки банка", что добавляет убедительности.
T1660 - Фишинг
Распространение вредоноса осуществляется через фишинговые сообщения и звонки.Как это реализовано в FjordPhantom:
- Жертве приходит SMS, email или сообщение в мессенджере с предложением скачать "обновлённое приложение банка" или "специальную версию для повышения лимитов". Ссылка ведёт на скачивание APK.
- После установки следует телефонный звонок от "службы поддержки", где оператор помогает настроить приложение, фактически руководя жертвой и убеждая её предоставить все необходимые разрешения.
Дополнительные техники и тактики
Помимо перечисленных, атака также включает элементы других тактик MITRE:- Тактика Initial Access (Начальный доступ): Фишинг (T1660) - основной способ проникновения на устройство.
- Тактика Execution (Выполнение): Использование виртуализации (T1670) для запуска вредоносного кода и банковского приложения.
- Тактика Persistence (Закрепление): Хотя вредонос не требует персистентности (он остаётся на устройстве, пока жертва его не удалит), сам факт установки приложения обеспечивает долговременный доступ.
- Тактика Defense Evasion (Обход защиты): Хукинг (T1617), маскировка (T1655) и инъекция кода (T1631) служат именно для того, чтобы не быть обнаруженным.
- Тактика Credential Access (Доступ к учётным данным): Скринскрэппинг и кейлоггинг через Accessibility Service (не имеют отдельного номера, но являются следствием T1617).
- Тактика Collection (Сбор данных): Чтение данных с экрана, перехват SMS, сбор учётных данных.
Значение для индустрии
То, что FjordPhantom был внесён в базу MITRE как S1208, подтверждает его значимость как новой модели угроз. Анализ его техник показывает, что будущие мобильные вредоносы будут комбинировать виртуализацию, хукинг и социальную инженерию для обхода даже самых современных защит. GodFather, атакующий более 500 приложений, уже использует ту же комбинацию, подтверждая этот тренд.Для защитников понимание этих техник - ключ к созданию эффективных контрмер. Например, зная, что вредонос использует T1617 (Hooking), можно внедрить в приложение проверки целостности вызовов API. Зная, что используется T1670, можно добавить детекцию виртуальных сред. MITRE ATT&CK превращает разрозненные факты об атаке в системную картину, позволяя выстраивать защиту осмысленно и комплексно.
Заключение
FjordPhantom стал поворотным моментом в истории мобильных угроз. Впервые виртуализация, легитимная технология для мультиаккаунтинга, была использована как прямой вектор атаки на банковские приложения. Вредонос не модифицирует код банка, не требует root-доступа и не оставляет классических следов, обходя все традиционные методы защиты.Главные уроки:
- Android-песочница больше не защита. Виртуализация позволяет разным приложениям работать в едином адресном пространстве, давая вредоносу полный доступ к данным банковского приложения без взлома системы.
- Старые методы детекции мертвы. Проверка подписей, поиск рута, сигнатурный анализ - всё это бесполезно, когда оригинальное приложение не тронуто, а вредоносный код живёт в хосте.
- Атака стала гибридной. Технологии виртуализации и хукинга объединились с живыми колл-центрами, где операторы в реальном времени направляют жертву. Это сочетание оказалось смертоносным.
- Угроза масштабируется. Техника уже скопирована создателями GodFather, который атакует более 500 приложений по всему миру. Виртуализация становится новым стандартом для мобильных банковских троянов.
- Банкам: Внедрять RASP-решения, способные детектировать запуск в виртуальных средах и наличие хукинга. Использовать многослойную защиту и бэкенд-мониторинг аномалий.
- Пользователям: Никогда не устанавливать приложения по ссылкам из SMS или мессенджеров. Не доверять звонкам "службы поддержки". Проверять, какие приложения имеют права администратора и доступ к сервисам специальных возможностей.