A base das boas práticas de segurança começa na sua organização.
Crie uma equipe de segurança e privacidade
Crie uma equipe dedicada de segurança e privacidade e estabeleça um líder para esta organização.
- Construa uma equipe de segurança.
- Certifique-se de que pelo menos um funcionário seja responsável pela segurança, privacidade e resposta a incidentes.
- Defina uma missão e escopo para esta equipe.
- Desenvolva um organograma e descrições de cargos para: Gerente de Segurança, Engenheiro de Segurança, Gerente de Incidentes.
- Contrate funcionários ou prestadores de serviços externos para preencher essas funções.
- Defina um ciclo de vida de desenvolvimento de segurança (SDL) . Seu SDL deve cobrir 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 aplicações e código.
- Processos finais de revisão de segurança para produtos.
- Resposta a incidentes.
- Avaliar o risco organizacional . Crie uma avaliação de riscos e desenvolva planos para eliminar ou mitigar esses riscos.
Processo de verificação de compilação
Avalie lacunas em seus processos internos existentes de verificação e aprovação de construção.
- Identifique quaisquer lacunas em seu processo atual de verificação de build que possam levar à introdução de um Aplicativo Potencialmente Nocivo (PHA) em seu build.
- Certifique-se de ter um processo de revisão e aprovação de código, mesmo para patches internos para AOSP .
- Melhore a integridade da construção implementando controles nestas áreas:
- Alterações de percurso . Rastreie engenheiros de software; mantenha registros de alterações.
- Avalie o risco . Avalie as permissões usadas por um aplicativo; exigir revisão manual de alterações de código.
- Monitor . Avalie as alterações feitas no código privilegiado.
Acompanhamento de alterações de código-fonte
Monitore modificações não intencionais de código-fonte ou aplicativos/binários/SDKs de terceiros.
- Avalie parcerias . Avalie o risco de trabalhar com um parceiro técnico seguindo as seguintes etapas:
- Estabeleça critérios de como avaliar o risco de trabalhar com um fornecedor específico.
- Crie um formulário que pergunte ao fornecedor como eles resolvem incidentes e gerenciam a segurança e a privacidade.
- Verifique suas reivindicações com uma auditoria periódica.
- Alterações de percurso . Registre quais empresas e funcionários modificam o código-fonte e conduza auditorias periódicas para garantir que apenas as alterações apropriadas ocorram.
- Manter registros . Registre quais empresas adicionam binários de terceiros à sua construção e documente a função que esses aplicativos executam e quais dados eles coletam.
- Planeje atualizações . Certifique-se de que seus fornecedores sejam obrigados a fornecer atualizações de software durante toda a vida útil do seu produto. Vulnerabilidades imprevistas podem exigir suporte dos fornecedores para serem resolvidas.
Valide a integridade e o pedigree do código-fonte
Inspecione e valide o código-fonte fornecido por um fabricante de dispositivo original (ODM), atualização over-the-air (OTA) ou operadora.
- Gerenciar certificados de assinatura .
- Armazene as chaves em um módulo de segurança de hardware (HSM) ou em um serviço de nuvem seguro (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 em seu sistema de compilação.
- Revogar chaves perdidas.
- Gere chaves usando as práticas recomendadas.
- Analise 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 aplicativos de terceiros antes de colocá-los em produção. Por exemplo:
- Exija que os aplicativos usem comunicação segura.
- Siga o princípio do menor privilégio e conceda o conjunto mínimo de permissões necessárias para o funcionamento do aplicativo.
- Garanta que os dados sejam armazenados e transferidos por canais seguros.
- Mantenha as dependências do 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 forte comunidade de segurança para ajudar a encontrar problemas. Você deve criar e divulgar uma forma de terceiros entrarem em contato com você sobre questões de segurança específicas do dispositivo.
- Estabelecer contato . Crie um endereço de e-mail, como your-company 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 Recompensas de Vulnerabilidade (VRP) . Incentive pesquisadores de segurança externos a enviar relatórios de vulnerabilidades de segurança que afetem seus produtos, oferecendo recompensas monetárias por envios válidos ( exemplo ). Recomendamos recompensar os pesquisadores com recompensas competitivas do setor, como US$ 5.000 para vulnerabilidades de gravidade crítica e US$ 2.500 para vulnerabilidades de gravidade alta.
- Contribua com mudanças no upstream . Se você tomar conhecimento de um problema de segurança que afeta a plataforma Android ou dispositivos de vários fabricantes de dispositivos, entre em contato com a equipe de segurança do Android preenchendo um relatório de bug de segurança .
- Promova boas práticas de segurança . Avalie proativamente as práticas de segurança de fornecedores de hardware e software que fornecem serviços, componentes e/ou código para seus dispositivos. Responsabilize os fornecedores por manter uma boa postura de segurança.