Segurança organizacional e operacional

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.