MASTG-TEST-0023: Teste do Security Provider
Visão Geral¶
Análise Estática¶
Aplicações baseadas no Android SDK devem depender do GooglePlayServices. Por exemplo, no arquivo de build do gradle, você encontrará compile 'com.google.android.gms:play-services-gcm:x.x.x' no bloco de dependências. Você precisa garantir que a classe ProviderInstaller seja chamada com installIfNeeded ou installIfNeededAsync. O ProviderInstaller precisa ser chamado por um componente da aplicação o mais cedo possível. Exceções lançadas por esses métodos devem ser capturadas e tratadas corretamente. Se a aplicação não conseguir corrigir seu Security Provider, ela pode informar à API sobre seu estado menos seguro ou restringir ações do usuário (pois todo tráfego HTTPS deve ser considerado mais arriscado nessa situação).
Se você tem acesso ao código-fonte, verifique se o app trata adequadamente quaisquer exceções relacionadas às atualizações do provedor de segurança e se ele reporta ao backend quando a aplicação está funcionando com um provedor de segurança não corrigido. A documentação do Android Developer fornece diferentes exemplos mostrando como atualizar o Provedor de Segurança para prevenir exploits SSL.
Por fim, certifique-se de que aplicações baseadas em NDK se liguem apenas a uma biblioteca recente e adequadamente corrigida que forneça funcionalidade SSL/TLS.
Análise Dinâmica¶
Quando você tem o código-fonte:
- Execute a aplicação em modo de depuração, então crie um ponto de interrupção onde o app fará primeiro contato com o(s) endpoint(s).
- Clique com o botão direito no código destacado e selecione
Evaluate Expression. - Digite
Security.getProviders()e pressione enter. - Verifique os provedores e tente encontrar
GmsCore_OpenSSL, que deve ser o novo provedor listado no topo.
Quando você não tem o código-fonte:
- Use Frida para Android para conectar
java.security.Security.getProviders()ou use um script Frida CodeShare como @platix/get-android-security-provider-mstg-network-6. - Determine se o primeiro provedor é
GmsCore_OpenSSL.