Skip to content

MASTG-TEST-0217: Protocolos TLS Inseguros Explicitamente Permitidos no Código

Visão Geral

A Configuração de Segurança de Rede do Android não oferece controle direto sobre versões específicas do TLS (diferentemente do iOS), e a partir do Android 10, o TLS v1.3 é habilitado por padrão para todas as conexões TLS.

Ainda existem várias maneiras de habilitar versões inseguras do TLS, incluindo:

Java Sockets

Um aplicativo pode obter um SSLContext usando um protocolo TLS inseguro ao chamar SSLContext.getInstance("TLSv1.1") e também pode habilitar versões de protocolo específicas e potencialmente inseguras usando a chamada de API javax.net.ssl.SSLSocket.setEnabledProtocols(String[] protocols).

Bibliotecas de Terceiros

Algumas bibliotecas de terceiros, como OkHttp, Retrofit ou Apache HttpClient, fornecem configurações personalizadas para protocolos TLS. Essas bibliotecas podem permitir a habilitação de protocolos desatualizados se não forem gerenciadas com cuidado:

Por exemplo, o uso de ConnectionSpec.COMPATIBLE_TLS no OkHttp (via okhttp3.ConnectionSpec.Builder.connectionSpecs(...)) pode resultar em versões inseguras do TLS, como TLS 1.1, sendo habilitadas por padrão em determinadas versões. Consulte o histórico de configuração do OkHttp para obter detalhes sobre os protocolos suportados.

A chamada de API okhttp3.ConnectionSpec.Builder.tlsVersions(...) também pode ser usada para definir os protocolos habilitados (documentação do OkHttp).

Etapas

  1. Realizar engenharia reversa do aplicativo ( Descompilação de Código Java).
  2. Executar uma ferramenta de análise estática ( Análise Estática no Android) no aplicativo com engenharia reversa, direcionando as chamadas para APIs que definem o protocolo TLS.

Observação

A saída contém uma lista de todas as versões do TLS habilitadas nas chamadas de API mencionadas acima.

Avaliação

O caso de teste falha se qualquer versão insegura do TLS for habilitada diretamente, ou se o aplicativo habilitar qualquer configuração que permita o uso de versões desatualizadas do TLS, como okhttp3.ConnectionSpec.COMPATIBLE_TLS.