Skip to content

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:usesCleartextTraffic da 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 cleartextTrafficPermitted como true nos elementos <base-config> ou <domain-config>.

Etapas

  1. Realizar engenharia reversa do aplicativo ( Descompilação de Código Java).
  2. Obter o AndroidManifest.xml.
  3. Obter a Configuração de Segurança de Rede.
  4. Ler o valor de usesCleartextTraffic do AndroidManifest.xml.
  5. Ler o valor de cleartextTrafficPermitted do elemento <base-config> da NSC.
  6. Ler o valor de cleartextTrafficPermitted dos 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:

  1. O AndroidManifest define usesCleartextTraffic como true e não há NSC.
  2. A NSC define cleartextTrafficPermitted como true no <base-config>.
  3. A NSC define cleartextTrafficPermitted como true em 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>