MASTG-TEST-0235: Configurações de Aplicativo Android que Permitem Tráfego em Texto Não Criptografado (Cleartext Traffic)
Visão Geral¶
Desde o Android 9 (API level 28), o tráfego HTTP em texto claro é bloqueado por padrão (graças à Configuração Padrão de Segurança de Rede)), mas existem várias maneiras pelas quais um aplicativo ainda pode enviá-lo:
- AndroidManifest.xml: Definindo o atributo
android:usesCleartextTrafficda tag<application>. Observe que esta flag é ignorada caso a Configuração de Segurança de Rede esteja configurada. - Configuração de Segurança de Rede: Definindo o atributo
cleartextTrafficPermittedcomotruenos elementos<base-config>ou<domain-config>.
Etapas¶
- Realizar engenharia reversa do aplicativo ( Descompilação de Código Java).
- Obter o AndroidManifest.xml.
- Obter a Configuração de Segurança de Rede.
- Ler o valor de
usesCleartextTrafficdo AndroidManifest.xml. - Ler o valor de
cleartextTrafficPermitteddo elemento<base-config>da NSC. - Ler o valor de
cleartextTrafficPermitteddos elementos<domain-config>da NSC.
Observação¶
A saída contém uma lista de configurações que potencialmente permitem tráfego em texto claro.
Avaliação¶
O caso de teste falha se o tráfego em texto claro for permitido. Isso pode acontecer se qualquer uma das seguintes condições for verdadeira:
- O AndroidManifest define
usesCleartextTrafficcomotruee não há NSC. - A NSC define
cleartextTrafficPermittedcomotrueno<base-config>. - A NSC define
cleartextTrafficPermittedcomotrueem qualquer<domain-config>.
Nota: O teste não falha se o AndroidManifest definir usesCleartextTraffic como true e houver uma NSC, mesmo que tenha apenas um elemento <network-security-config> vazio. Por exemplo:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
</network-security-config>