В этом документе подробно описаны способы отслеживания действий, связанных с конфиденциальными данными, например входов пользователей в аккаунт и онлайн-покупок.
FLAG_SECURE
FLAG_SECURE – это флаг окна, который запрещает Android делать скриншоты и показывать окно на незащищенном экране (например, при трансляции). Это полезно для приложений, которым необходимо защищать конфиденциальную информацию, например для банковских приложений или менеджеров паролей. Если для окна установлен флаг FLAG_SECURE, Android не позволяет делать скриншоты и показывать окно на незащищенном экране, например на телевизоре или проекторе. Это помогает защитить информацию, которая отображается в окне, от доступа посторонних лиц.
Как это помогает бороться с мошенничеством
Вредоносное приложение или злоумышленник могут получить доступ к скриншотам, сделанным в фоновом режиме. Когда приложение переходит в фоновый режим, можно использовать FLAG_SECURE. При попытке сделать скриншот получается пустое изображение.
FLAG_SECURE также помогает при удаленной демонстрации экрана. Скриншоты могут делать не только вредоносные приложения. В мошеннических схемах часто используются и легальные приложения для демонстрации экрана.
Реализация
Для представлений, содержащих информацию, которую вы хотите защитить, добавьте следующее:
Kotlin
window?.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE )
Java
window.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE );
Рекомендации
Важно отметить, что этот подход не является надежным для предотвращения атак с наложением. В некоторых случаях он не может правильно определить, активна ли запись видео с экрана, но он охватывает большинство сценариев использования. Чтобы снизить риск атак с наложением, прочитайте следующий раздел о разрешениях HIDE_OVERLAY_WINDOWS.
HIDE_OVERLAY_WINDOWS
HIDE_OVERLAY_WINDOWS – это разрешение, добавленное в Android 12. Оно позволяет запретить показ оверлеев поверх приложения. В Android 12 мы усложнили получение разрешения SYSTEM_ALERT_WINDOW, что позволяет вашему приложению блокировать оверлеи из сторонних приложений.
Как это помогает бороться с мошенничеством
Если вы включите разрешение HIDE_OVERLAY_WINDOWS, то запретите наложение окон других приложений поверх вашего. Это разрешение обеспечивает защиту от атак типа Cloak and Dagger.
Реализация
Чтобы включить это разрешение, добавьте HIDE_OVERLAY_WINDOWS в манифест проекта.
Рекомендации
Как и в случае с любым другим разрешением, вы должны доверять приложению, которое накладывается поверх других, не меньше, чем любому другому приложению на устройстве. Другими словами, ваше приложение не должно разрешать другим приложениям рисовать оверлеи поверх него, если вы не уверены, что другое приложение заслуживает доверия. Разрешать приложению открываться поверх других может быть опасно, так как оно может украсть пароли или прочитать сообщения.