A base das boas práticas de segurança começa em 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 essa 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 contratados 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 aplicativos 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 risco e desenvolva planos para eliminar ou mitigar esses riscos.
Processo de verificação de compilação
Avalie as lacunas em seus processos internos de aprovação e verificação de compilação existentes.
- Identifique quaisquer lacunas em seu processo de verificação de compilação atual que possam levar à introdução de um aplicativo potencialmente prejudicial (PHA) em sua compilação.
- 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 compilação implementando controles nestas áreas:
- Acompanhe as mudanças . Acompanhar engenheiros de software; manter registros de alterações.
- Avalie o risco . Avaliar as permissões usadas por um aplicativo; exigem revisão manual das alterações de código.
- Monitorar . 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 as parcerias . Avalie o risco de trabalhar com um parceiro técnico usando 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 ele resolve incidentes e gerencia a segurança e a privacidade.
- Verifique suas reivindicações com uma auditoria periódica.
- Acompanhe as mudanças . Registre quais empresas e funcionários modificam o código-fonte e realize auditorias periódicas para garantir que apenas as mudanças apropriadas ocorram.
- Mantenha registros . Registre quais empresas adicionam binários de terceiros à sua compilação e documente qual função esses aplicativos executam e quais dados eles coletam.
- Atualizações do plano . Certifique-se de que seus fornecedores sejam obrigados a fornecer atualizações de software para toda a vida útil de seu produto. Vulnerabilidades imprevistas podem exigir suporte de fornecedores para serem solucionadas.
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 pelo ar (OTA) ou operadora.
- Gerenciar certificados de assinatura .
- Armazene as chaves em um módulo de segurança de hardware (HSM) ou serviço de nuvem seguro (não as compartilhe).
- Certifique-se de 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 melhores práticas.
- 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:
- Exigir que os aplicativos usem comunicação segura.
- Siga o princípio do privilégio mínimo 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 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. Você deve criar e divulgar uma maneira de terceiros entrarem em contato com você sobre problemas de segurança específicos do dispositivo.
- Estabeleça contato . Crie um endereço de e-mail, como segurança@ your-company .com ou um site com instruções claras para relatar possíveis problemas de segurança associados ao seu produto (por exemplo ).
- Estabelecer 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 alta gravidade.
- Contribuir com mudanças upstream . Se você tomar conhecimento de um problema de segurança que afeta a plataforma ou dispositivos Android 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 .
- Promover 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.