MASTG-TEST-0010: Identificando Informações Sensíveis em Capturas de Tela Geradas Automaticamente
Deprecated Test
This test is deprecated and should not be used anymore. Reason: New version available in MASTG V2.
Please check the following MASTG v2 tests that cover this v1 test:
Visão Geral¶
Análise Estática¶
Uma captura de tela da atividade atual é tirada quando um aplicativo Android vai para segundo plano e é exibida para fins estéticos quando o app retorna ao primeiro plano. No entanto, isso pode vazar informações sensíveis.
Para determinar se o aplicativo pode expor informações sensíveis através do seletor de aplicativos, verifique se a opção FLAG_SECURE foi definida. Você deve encontrar algo semelhante ao seguinte trecho de código:
Exemplo em Java:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
setContentView(R.layout.activity_main);
Exemplo em Kotlin:
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE)
setContentView(R.layout.activity_main)
Se a opção não tiver sido definida, o aplicativo está vulnerável à captura de tela.
Análise Dinâmica¶
Durante o teste de caixa preta do aplicativo, navegue até qualquer tela que contenha informações sensíveis e clique no botão home para enviar o app para segundo plano, então pressione o botão do seletor de aplicativos para ver a captura. Como mostrado abaixo, se FLAG_SECURE estiver definida (imagem à esquerda), a captura estará vazia; se a flag não tiver sido definida (imagem à direita), as informações da atividade serão exibidas:

Em dispositivos com suporte a criptografia baseada em arquivo (FBE), as capturas são armazenadas na pasta /data/system_ce/<USER_ID>/<IMAGE_FOLDER_NAME>. <IMAGE_FOLDER_NAME> depende do fabricante, mas os nomes mais comuns são snapshots e recent_images. Se o dispositivo não suportar FBE, a pasta /data/system/<IMAGE_FOLDER_NAME> é usada.
Acessar essas pastas e as capturas requer privilégios de root.