Práticas recomendadas de segurança de rede

Esta seção contém recomendações para garantir a segurança das comunicações de rede em dispositivos Android.

Sockets de escuta seguros

Use soquetes de escuta com cuidado. Geralmente, não há soquetes de escuta abertos em dispositivos, porque eles fornecem um vetor para que um invasor remoto tenha acesso ao dispositivo.

  • Os dispositivos Android precisam minimizar o número de soquetes de escuta da Internet que eles expõem, especialmente na inicialização ou por padrão. Nenhum socket pode detectar a Internet na inicialização por padrão.
    • Os processos raiz e os processos pertencentes ao identificador exclusivo do sistema (UID) não podem expor nenhum soquete de escuta.
  • Os sockets de escuta precisam ser desativados sem uma atualização OTA. Isso pode ser feito usando uma mudança de configuração do servidor ou do dispositivo do usuário.
  • Para soquetes locais que usam IPC, os apps precisam usar um soquete de domínio UNIX com acesso limitado a um grupo. Crie um descritor de arquivo para o IPC e torne-o +RW para um grupo UNIX específico. Todos os apps clientes precisam estar nesse grupo do UNIX.
  • Alguns dispositivos com vários processadores (por exemplo, um rádio/modem separado do processador do app) usam soquetes de rede para se comunicar entre processadores. Nesses casos, o soquete de rede usado para comunicação entre processadores precisa usar uma interface de rede isolada para impedir o acesso de apps não autorizados no dispositivo (ou seja, use iptables para impedir o acesso de outros apps no dispositivo).
  • Os daemons que processam portas de escuta precisam ser robustos contra dados malformados. É necessário realizar testes de fuzz na porta usando um cliente não autorizado e, sempre que possível, um cliente autorizado. Registre bugs para acompanhar falhas.

O conjunto de teste de compatibilidade do Android (CTS) inclui testes que verificam a presença de portas de escuta abertas.

Desativar adb

A Android Debug Bridge (adb) é uma ferramenta valiosa de desenvolvimento e depuração, mas foi projetada para uso em um ambiente controlado e seguro e não deve ser ativada para uso geral.

  • Verifique se o adb está desativado por padrão.
  • Verifique se o adb exige que o usuário o ative antes de aceitar as conexões.