Protege las actividades sensibles

En este documento, se detallan formas de supervisar actividades sensibles, como los accesos de los usuarios y las compras en línea.

FLAG_SECURE

FLAG_SECURE es una marca de ventana que le indica a Android que no permita las capturas de pantalla o que muestre la vista de ventana en una pantalla no segura (como cuando se transmite la pantalla). Esto es útil para aplicaciones que necesitan proteger información sensible, como las apps bancarias o los administradores de contraseñas. Cuando una ventana está marcada con FLAG_SECURE, Android impide que se tomen capturas de pantalla y que la ventana no se muestre en una pantalla no segura, como una TV o un proyector. Esto ayuda a proteger la información que se muestra en la ventana contra el acceso de personas no autorizadas.

Cómo ayuda esto a mitigar el fraude

Una app o entidad maliciosa podría recuperar capturas de pantalla en segundo plano. Cuando el estado de tu app cambia a segundo plano, se puede usar FLAG_SECURE. Cuando se toma la captura de pantalla, la imagen resultante está en blanco.

FLAG_SECURE también ayuda con los casos de uso de uso compartido de pantalla de forma remota. No siempre se trata de una app maliciosa que recupera capturas de pantalla. Por lo general, las apps legítimas para compartir pantalla también se usan en situaciones fraudulentas.

Implementación

Para las vistas con la información que deseas proteger, agrega lo siguiente:

Kotlin


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

Java


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

Prácticas recomendadas

Es importante tener en cuenta que este enfoque no es confiable para evitar ataques de superposición. En algunos casos, no predice correctamente si la grabación de pantalla está activa; sin embargo, abarca la mayoría de los casos de uso. Para mitigar los ataques de superposición, lee la siguiente sección sobre los permisos HIDE_OVERLAY_WINDOWS.

HIDE_OVERLAY_WINDOWS (HIDE_OVERLAY_WINDOWS)

HIDE_OVERLAY_WINDOWS es un permiso que se agregó en Android 12 mediante el cual tu app puede inhabilitar las superposiciones de aplicaciones sobre esta. En Android 12, dificultamos la adquisición del permiso SYSTEM_ALERT_WINDOW, lo que permite que tu app bloquee superposiciones de apps de terceros.

Cómo ayuda esto a mitigar el fraude

Cuando habilitas el permiso HIDE_OVERLAY_WINDOWS, inhabilitas que las superposiciones de aplicaciones se dibujen sobre tu app. Este permiso proporciona un mecanismo de protección contra ataques de encubrimiento y daga.

Implementación

Para habilitar este permiso, agrega HIDE_OVERLAY_WINDOWS al manifiesto de tu proyecto.

Prácticas recomendadas

Al igual que con cualquier permiso, debes confiar en cualquier app superpuesta, al menos, tanto como confías en cualquier otra app del dispositivo. En otras palabras, tu app no debería permitir que otras apps dibujen superposiciones sobre ella, a menos que sepas que la otra es confiable. Permitir que una app se superponga a otras puede ser peligroso porque puede robar contraseñas o leer mensajes.