Proteger atividades sensíveis

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

SEGURANÇA DA FLAG

FLAG_SECURE é uma sinalização de janela que informa ao Android para não permitir capturas de tela ou mostrar a visualização da janela em uma tela não segura (como ao transmitir a tela). Isso é útil para aplicativos que precisam proteger informações sensíveis, como apps bancários ou gerenciadores de senhas. Quando uma janela é sinalizada com FLAG_SECURE, o Android impede que capturas de tela sejam feitas e que ela seja mostrada em uma tela não segura, como uma TV ou projetor. Isso ajuda a impedir que as informações exibidas na janela sejam acessadas por pessoas não autorizadas.

Como isso ajuda a reduzir fraudes

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

O FLAG_SECURE também ajuda nos casos de uso de compartilhamento remoto de tela. Nem sempre é um app malicioso que extrai capturas de tela. Apps legítimos de compartilhamento de tela também são usados 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 na prevenção de 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 mitigar ataques de sobreposição, leia a próxima seção sobre as 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 apps sobre ele. No Android 12, dificultamos a aquisição da permissão SYSTEM_ALERT_WINDOW, essencialmente permitindo que o app bloqueie sobreposições de apps de terceiros.

Como isso ajuda a reduzir fraudes

Quando você ativa a permissão HIDE_OVERLAY_WINDOWS, desativa as sobreposições de apps. Essa permissão fornece 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 seu projeto.

Práticas recomendadas

Como acontece com qualquer permissão, você precisa confiar em qualquer 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 desenhem sobreposições, a menos que você saiba que o outro app é confiável. Permitir que um app se sobreponha a outros apps pode ser perigoso, porque pode roubar senhas ou ler mensagens.