Esta seção contém recomendações para garantir a segurança das comunicações de rede de dispositivos Android.
Protegendo soquetes de escuta
Use tomadas de escuta com cuidado. Geralmente não deve haver soquetes de escuta abertos nos dispositivos, pois eles fornecem um vetor para um invasor remoto obter acesso ao dispositivo.
- Os dispositivos Android devem minimizar o número de soquetes de escuta da Internet que expõem, especialmente na inicialização ou por padrão. Nenhum soquete deve estar escutando na Internet durante a inicialização por padrão.
- Os processos raiz e os processos pertencentes ao identificador exclusivo do sistema (UID) não devem expor nenhum soquete de escuta.
- Os soquetes de escuta devem poder ser desativados sem uma atualização OTA. Isso pode ser executado usando uma alteração na configuração do servidor ou do dispositivo do usuário.
- Para soquetes locais que usam IPC, os aplicativos devem 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. Quaisquer aplicativos cliente devem estar dentro desse grupo UNIX.
- Alguns dispositivos com vários processadores (por exemplo, um rádio/modem separado do processador do aplicativo) usam soquetes de rede para comunicação entre processadores. Nesses casos, o soquete de rede usado para comunicação entre processadores deve usar uma interface de rede isolada para impedir o acesso de aplicativos não autorizados no dispositivo (ou seja, usar iptables para impedir o acesso de outros aplicativos no dispositivo).
- Os daemons que lidam com portas de escuta devem ser robustos contra dados malformados. Você deve realizar testes de fuzz na porta usando um cliente não autorizado e, quando possível, um cliente autorizado. Arquive bugs para acompanhar falhas.
O Android Compatibility Test Suite (CTS) inclui testes que verificam a presença de portas de escuta abertas.
Desativar ADB
O Android Debug Bridge (ADB) é uma ferramenta valiosa de desenvolvimento e depuração, mas foi projetado para uso em um ambiente controlado e seguro e não deve ser habilitado para uso geral.
- Certifique-se de que o ADB esteja desabilitado por padrão.
- Certifique-se de que o ADB exija que o usuário o ligue antes de aceitar conexões.