Skip to content

MASTG-TEST-0281: Domínios de Rastreamento Conhecidos Não Declarados

Visão Geral

Este teste identifica se o aplicativo declara adequadamente todos os domínios de rastreamento conhecidos com os quais pode se comunicar na seção NSPrivacyTrackingDomains de seus arquivos de Privacy Manifest.

Para realizar este teste, use uma ou mais listas curadas de rastreadores conhecidos. Essas listas incluem domínios e identificadores associados a redes de publicidade, provedores de análise e serviços de criação de perfis de usuários. Elas são comumente usadas em ferramentas e navegadores focados em privacidade para detectar e bloquear comportamentos de rastreamento.

Alguns exemplos de listas:

  • Rastreadores iOS do DuckDuckGo: Inclui domínios, regras de correspondência, descrições e categorias como "Action Pixels", "Ad Fraud", "Ad Motivated Tracking" e "Advertising".
  • Rastreadores do Exodus Privacy: Inclui nomes de rastreadores, categorias (por exemplo, "Advertisement", "Analytics", "Profiling"), descrições e metadados de detecção, como assinaturas de rede e de código.

Essas referências podem ser usadas para corresponder domínios codificados ou acessados dinamicamente dentro do seu aplicativo e verificar se existem declarações apropriadas no Privacy Manifest.

Passos

  1. Extraia os arquivos de privacy manifest do aplicativo, incluindo aqueles de SDKs ou frameworks de terceiros usando Recuperação de Arquivos PrivacyInfo.xcprivacy.
  2. Obtenha a lista de domínios de rastreamento declarados nos arquivos de privacy manifest usando Análise de Arquivos PrivacyInfo.xcprivacy.
  3. Execute uma verificação de análise estática usando radare2 para iOS:
    • Pesquise referências codificadas a domínios de rastreamento conhecidos.
    • Identifique referências de código a bibliotecas de rastreamento conhecidas.
  4. Realize análise de rede com mitmproxy:
    • Intercepte e registre todo o tráfego de rede de saída.
    • Extraia todos os nomes de domínio contactados durante a execução.

Observação

A saída deve conter:

  • Todos os privacy manifests extraídos do aplicativo.
  • Uma lista de domínios de rastreamento declarados na chave NSPrivacyTrackingDomains dos manifests (de preferência com os componentes associados).
  • Uma lista de todos os domínios contactados durante o teste dinâmico.
  • Uma lista de correspondências de código para domínios de rastreamento conhecidos ou bibliotecas de rastreamento da análise estática.

Avaliação

O teste falha se qualquer um dos seguintes itens estiver ausente na chave NSPrivacyTrackingDomains dos arquivos de privacy manifest do aplicativo ou de qualquer um de seus componentes (Frameworks, Plugins, etc.):

  • Domínios de rastreamento contactados pelo aplicativo durante a execução.
  • Domínios de rastreamento encontrados no código.
  • Domínios correspondentes a SDKs de rastreamento encontrados no código.