Биометрия безопаснее — как вредоносное ПО крадет данные пользователей Android

Этот пост был вдохновлен отличной презентацией Яна Серединьского на THS 2023.

Кибербезопасность — это не бинарный вопрос, не существует решений, гарантирующих 100% безопасность. В реальности речь идет скорее о оценке рисков и выборе решений, которые менее подвержены атакам. Пример оценки в контексте банковского дела: подтверждение транзакций через мобильные приложения безопаснее, чем популярные SMS-коды, хотя и здесь существуют эффективные методы атаки. Это могут быть, например, ложные приложения, выдающие себя за банковские, а также те, которые используют эксплойты (например, Pegasus). Однако одна из интересных атак на мобильный банкинг основана на установке на телефон жертвы, казалось бы, безобидного приложения, которое злоупотребляет правами Android.

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

youtube premium malware
duolingo premium malware

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

latarka malware w google play

Как работают средства доступности и оверлеи в контексте вредоносного ПО?

Средства доступности (Accessibility Services) позволяют, в частности, зачитывать вслух информацию, отображаемую на экране телефона, и заполнять поля в формах за пользователя.

działanie ułtawień dostępu

Вредоносное приложение, используя механизмы доступности, предназначенные для людей с ограниченными возможностями, может регистрировать все, что происходит на экране, получая доступ к вводимым кодам. Благодаря этому оно может узнать пароль от мобильного приложения и самостоятельно инициировать и подтвердить перевод. Назначение подозрительных разрешений происходит с использованием другого хитрого трюка — наложений экранов (Overlay). Пользователь зачастую даже не осознает, что соглашается на опасные разрешения.

Примером «Overlay Services» является пузырек с сообщением в Messenger.

działanie dymków facebook

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

jak malware wykradana przez nakładki dane dostępowe użytkownika

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


Примеры реальных атак

  • BrasDex — это тип вредоносного ПО, нацеленного на системы Android, с особым акцентом на банковские приложения в Бразилии. Когда он заражает устройство, BrasDex идентифицирует и атакует только выбранные приложения. Он использует функции доступности Android для мониторинга экрана, управления касаниями, работы с клавиатурой и других вредоносных действий. Основная цель BrasDex — кража данных для входа при использовании банковских приложений и выполнение транзакций без ведома пользователя.
brasdex
  • ERMAC 2.0 — это троян для платформы Android, предназначенный для кражи данных для входа пользователей и передачи их киберпреступникам. Злоумышленники используют эти данные для захвата банковских и криптовалютных счетов жертв, а также для проведения различных мошенничеств. Типичным примером его работы было поддельное приложение, которое можно было найти на законном сайте поставщика еды. Это поддельное приложение запрашивало до 43 разрешений, включая доступ к службам доступности и наложений, что позволяло красть данные для входа.
ermac
  • Xenomorph — это вредоносное ПО, которое по-прежнему используется в атаках, хотя дебютировало более двух лет назад. Изначально оно распространялось через магазин Google Play как приложение для повышения производительности. Пользователи, устанавливающие эти приложения, неосознанно заражали свои устройства, думая, что для улучшения производительности требуются такие широкие разрешения. Xenomorph имеет способность перехватывать текстовые сообщения, что позволяет собирать данные, используемые для подтверждения транзакций. Кроме того, он использует разрешения доступности для создания незаметных наложений на экран.
xenomorph

Советы для разработчиков по защите от вредоносного ПО, использующего службы доступности:

  • Заблокируйте все службы доступности: Эта опция наименее дружественна к пользователям с различными ограниченными возможностями, но является одним из самых простых способов защититься от злоупотреблений правами.
  • Разрешайте только службы из белого списка: Более дружественный подход к доступности, использующий API для списка всех служб доступности, идентифицирует их идентификаторы пакетов и позволяет запускать только определенные доверенные службы. Однако приложения, устанавливаемые извне, могут имитировать любой идентификатор пакета, поэтому эта защита защищает только от угроз, исходящих из магазина Google Play.
  • Разрешайте службы с разумными правами: Вы можете использовать флаг (android:importantForAccessibility), который определяет важные элементы пользовательского интерфейса для доступности. Установите его на «false» для всех чувствительных полей в вашем приложении и ограничьте службы доступности, которые декларируют интерес к чтению неважных полей. Вы можете сделать это, проверяя свойство флага службы и верифицируя FLAG_INCLUDE_NOT_IMPORTANT_VIEWS.
  • Используйте биометрию и системные диалоги: Требование и использование биометрической аутентификации для важных транзакций может помочь предотвратить использование служб доступности киберпреступниками для выполнения несанкционированных транзакций в приложении пользователя. Требование также выполнения транзакций через приложение с использованием системных диалогов может эффективно блокировать наложения. Новые версии Android не позволяют наложениям работать на системных окнах.
  • Воспользуйтесь Android API 34: Это обновление обеспечивает, что только проверенные службы доступности могут видеть и получать доступ к чувствительной информации в приложении.

Рекомендации по обнаружению наложений

Google ввел несколько полезных API, чтобы помочь в обнаружении и противодействии атакам вредоносного ПО, использующего наложения:

  • API 9: Когда включена опция фильтрации прикосновений (setFilterTouchesWhenObscured(boolean)), система игнорирует прикосновения пользователя, когда окно вида заслонено наложением. В этом случае речь идет о другом видимом окне (или сообщении/тоасте/диалоге), находящемся в месте прикосновения.
  • API 29: Это обновление позволяет более точно выявлять частично заслоненные прикосновения с помощью флага (FLAG_WINDOW_IS_PARTIALLY_OBSCURED), который указывает, когда окно получает событие перемещения, которое частично или полностью заслонено другим видимым окном. Важно заметить, что событие помечается флагом, если движение не проходит непосредственно через наложение.
  • API 31: Это обновление предоставляет разработчикам опцию setHideOverlayWindows(true), которая скрывает и автоматически удаляет наложения, не принадлежащие системе. В настоящее время это наиболее эффективный и действенный подход.

Как среднему пользователю, стоит знать, что службы доступности (Accessibility Services) не имеют доступа к биометрическим данным и не могут их подделать. По этой причине рекомендуется использовать биометрические методы вместо традиционных PIN-кодов/паролей. Вход в приложение с помощью отпечатка пальца или распознавания лица, а также подтверждение транзакций этими методами значительно безопаснее. Биометрия добавляет дополнительный уровень защиты, так как она уникальна для каждого пользователя и труднее для копирования или получения нежели традиционные пароли или PIN-коды. Поэтому, особенно в контексте финансовых операций и доступа к важным приложениям, использование биометрических технологий является гораздо лучшим решением.

Обновление 1: Читатель неспециалист обратил внимание, что уже появились новые варианты троянов, имеющие встроенные механизмы, направленные на побуждение жертвы использовать другой метод авторизации, нежели биометрию. Троян автоматически «нажимает» кнопку «отмена» при обнаружении биометрической авторизации и как бы заставляет пользователя использовать альтернативные методы, данные которых могут быть перехвачены.

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!). Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Метки: , , , , , , . Закладка Постоянная ссылка.

Поделитесь своим мнением о статье.