Proteger atividades sensíveis

Este documento detalha maneiras de monitorar atividades sensíveis, como logins de usuários e compras on-line.

FLAG_SECURE

FLAG_SECURE é uma flag de janela que informa ao Android para não permitir capturas de tela ou exibir a visualização da janela em uma tela não segura (como a transmissão da tela). Isso é útil para aplicativos que precisam proteger informações sensíveis, como apps de bancos ou gerenciadores de senhas. Quando uma janela é marcada com FLAG_SECURE, o Android impede que capturas de tela sejam feitas e que a janela seja mostrada em uma tela não segura, como uma TV ou um projetor. Isso ajuda a proteger as informações mostradas na janela contra acesso de pessoas não autorizadas.

Como isso ajuda a reduzir fraudes

Um app ou entidade maliciosa pode recuperar capturas de tela em segundo plano. Quando o estado do app muda para segundo plano, FLAG_SECURE pode ser usado. Quando a captura de tela é feita, a imagem resultante fica em branco.

O FLAG_SECURE também ajuda com casos de uso de compartilhamento de tela remoto. Nem sempre é um app malicioso que recupera capturas de tela. Apps legítimos de compartilhamento de tela também são usados com frequência em situações fraudulentas.

Implementação

Para visualizações com as informações que você quer proteger, adicione o seguinte:

Kotlin

window?.setFlags(
    WindowManager.LayoutParams.FLAG_SECURE,
    WindowManager.LayoutParams.FLAG_SECURE
)

Java

window.setFlags(
  WindowManager.LayoutParams.FLAG_SECURE,
  WindowManager.LayoutParams.FLAG_SECURE
);

Práticas recomendadas

É importante observar que essa abordagem não é confiável para evitar ataques de sobreposição. Em alguns casos, ele não prevê corretamente se a gravação de tela está ativa, mas abrange a maioria dos casos de uso. Para reduzir os ataques de sobreposição, leia a próxima seção sobre permissões HIDE_OVERLAY_WINDOWS.

HIDE_OVERLAY_WINDOWS

HIDE_OVERLAY_WINDOWS é uma permissão adicionada no Android 12 em que o app pode desativar a exibição de sobreposições de aplicativos sobre ele. No Android 12, dificultamos a aquisição da permissão SYSTEM_ALERT_WINDOW, permitindo que seu app bloqueie sobreposições de apps de terceiros.

Como isso ajuda a reduzir fraudes

Ao ativar a permissão HIDE_OVERLAY_WINDOWS, você desativa a sobreposição de aplicativos sobre o seu app. Essa permissão oferece um mecanismo de proteção contra ataques de cloak and dagger.

Implementação

Para ativar essa permissão, adicione HIDE_OVERLAY_WINDOWS ao manifesto do projeto.

Práticas recomendadas

Como acontece com qualquer permissão, você precisa confiar em um app de sobreposição pelo menos tanto quanto confia em qualquer outro app no dispositivo. Em outras palavras, seu app não pode permitir que outros apps mostrem sobreposições sobre ele, a menos que você saiba que o outro app é confiável. Permitir que um app desenhe sobre outros apps pode ser perigoso porque ele pode roubar senhas ou ler mensagens.