A base das boas práticas de segurança começa na sua organização.
Criar uma equipe de segurança e privacidade
Crie uma equipe dedicada de segurança e privacidade e estabeleça um líder para essa organização.
- Crie uma equipe de segurança.
- Garanta que pelo menos um funcionário seja responsável pela segurança, privacidade e resposta a incidentes.
- Defina uma missão e um escopo para a equipe.
- Desenvolva um organograma e descrições de cargos para: gerente de segurança, engenheiro de segurança e gerente de incidentes.
- Contrate funcionários ou prestadores de serviços externos para preencher essas funções.
- Definir um ciclo de vida do desenvolvimento seguro (SDL, na sigla em inglês). O SDL
precisa abranger estas áreas:
- Requisitos de segurança para produtos.
- Análise de risco e modelagem de ameaças.
- Análise estática e dinâmica de apps e código.
- Processos finais de análise de segurança para produtos.
- Resposta a incidentes.
- Avalie o risco da organização. Crie uma avaliação de risco e elabore planos para eliminar ou mitigar esses riscos.
Processo de verificação do build
Avalie as lacunas nos processos de verificação e aprovação de build interno.
- Identifique as lacunas no seu processo de verificação de build que podem levar à introdução de um aplicativo potencialmente nocivo (PHA, na sigla em inglês) no build.
- Tenha um processo de análise e aprovação de código, mesmo para patches internos do AOSP.
- Melhore a integridade do build implementando controles nestas áreas:
- Rastrear mudanças. Acompanhar engenheiros de software e manter registros de alterações.
- Avalie os riscos. Avaliar as permissões usadas por um app; exigir a revisão manual de mudanças de código.
- Monitor. Avalie as mudanças feitas no código privilegiado.
Acompanhamento de mudanças no código-fonte
Monitore modificações não intencionais do código-fonte ou apps de terceiros / binários / SDKs.
- Avalie parcerias. Avalie o risco de trabalhar com um
parceiro técnico seguindo estas etapas:
- Estabeleça critérios para avaliar o risco de trabalhar com um fornecedor específico.
- Crie um formulário que pergunte ao fornecedor como ele resolve incidentes e gerencia a segurança e a privacidade.
- Verifique as reivindicações com uma auditoria periódica.
- Rastrear mudanças. Registre quais empresas e funcionários modificam o código-fonte e realize auditorias periódicas para garantir que apenas mudanças apropriadas sejam feitas.
- Manter registros. Registre quais empresas adicionam binários de terceiros ao seu build e documente a função desses apps e quais dados eles coletam.
- Planeje atualizações. Garanta que os fornecedores sejam obrigados a fornecer atualizações de software durante toda a vida útil do produto. Vulnerabilidades imprevistas podem exigir suporte dos fornecedores para serem resolvidas.
Validar a integridade e o pedigree do código-fonte
Inspecione e valide o código-fonte fornecido por um fabricante de dispositivo original (ODM), por uma atualização over-the-air (OTA) ou por uma operadora.
- Gerencie certificados de assinatura.
- Armazene chaves em um módulo de segurança de hardware (HSM) ou em um serviço seguro na nuvem (não as compartilhe).
- Garanta que o acesso aos certificados de assinatura seja controlado e auditado.
- Exija que toda a assinatura de código seja feita no sistema de build.
- Revogar chaves perdidas.
- Gerar chaves usando as práticas recomendadas.
- Analisar o novo código. Teste o código recém-adicionado com ferramentas de análise de código de segurança para verificar a introdução de novas vulnerabilidades. Além disso, analise a funcionalidade geral para detectar a expressão de novas vulnerabilidades.
- Revise antes de publicar. Procure vulnerabilidades
de segurança no código-fonte e em apps de terceiros antes de enviá-los
para produção. Por exemplo:
- Exija que os apps usem comunicação segura.
- Siga o princípio de privilégio mínimo e conceda o conjunto mínimo de permissões necessárias para que o app funcione.
- Os dados são armazenados e transferidos por canais seguros.
- Mantenha as dependências de serviço atualizadas.
- Aplique patches de segurança a SDKs e bibliotecas de código aberto.
Resposta a incidentes
O Android acredita no poder de uma comunidade de segurança forte para ajudar a encontrar problemas. Crie e divulgue uma maneira de terceiros entrarem em contato com você sobre problemas de segurança específicos do dispositivo.
- Estabelecer contato. Crie um endereço de e-mail, como security@your-company.com ou um site com instruções claras para relatar possíveis problemas de segurança associados ao seu produto (exemplo).
- Estabeleça um programa de recompensa para vulnerabilidades (VRP, na sigla em inglês). Incentive pesquisadores de segurança externos a enviar relatórios de vulnerabilidade de segurança que afetam seus produtos oferecendo recompensas monetárias por envios válidos (exemplo). Recomendamos recompensar os pesquisadores com prêmios competitivos do setor, como US $5.000 para vulnerabilidades de gravidade crítica e US $2.500 para vulnerabilidades de alta gravidade.
- Contribuir com mudanças upstream. Se você souber de um problema de segurança que afeta a plataforma Android ou dispositivos de vários fabricantes, entre em contato com a equipe de segurança do Android enviando um relatório de bug de segurança.
- Promover boas práticas de segurança. Avalie proativamente as práticas de segurança dos fornecedores de hardware e software que fornecem serviços, componentes e/ou código para seus dispositivos. Faça com que os fornecedores sejam responsáveis por manter uma boa postura de segurança.