Proteja o ambiente da plataforma DevOps para Zero Trust

Esse artigo ajuda você, como membro da equipe DevOps, a implementar o princípio Zero Trust de privilégio mínimo e proteger o ambiente da plataforma DevOps. Ele apresenta o conteúdo do nosso eBook Proteger ambientes de DevOps corporativos e destaca as melhores práticas para gerenciamento de segredos e certificados.

As empresas modernas dependem de plataformas de DevOps para implantação, incluindo pipelines e ambientes de produção que os desenvolvedores precisam para serem produtivos. No passado, os métodos de segurança de aplicativos não consideravam o aumento da superfície de ataque à qual os pipelines e os ambientes de produção atuais estão expostos. À medida que os hackers mudam para a esquerda e visam ferramentas upstream, você precisa de abordagens inovadoras para proteger seus ambientes de plataforma DevOps.

No diagrama a seguir, observe que o ambiente da plataforma DevOps se conecta ao ambiente de aplicativo e às extensões de pipeline de integração e entrega contínuas (CI/CD).

O diagrama ilustra os ambientes da plataforma DevOps e as ameaças à segurança, conforme descrito no eBook acima vinculado e resumido em artigos relacionados vinculados aqui.

As extensões de pipeline de CI/CD apresentam aos hackers oportunidades de se envolverem em escalonamentos de privilégios no ambiente do aplicativo. Extensões e integrações aumentam as vulnerabilidades da superfície de ataque. É fundamental se defender contra ameaças de invasão de malware.

Como e por que os invasores atacam os pipelines

Pipelines e ambientes de produção podem ser independentes de práticas e processos padrão de segurança de aplicativos. Eles geralmente exigem credenciais de acesso de alto nível que podem fornecer acesso profundo e significativo aos invasores.

Enquanto os invasores encontram novas maneiras de comprometer os sistemas, os vetores de ataque mais comuns para pipelines incluem:

  • Extração de variáveis de tempo de execução e injeção de argumentos.
  • Scripts que recuperam princípios de serviço ou credenciais de pipelines.
  • Tokens de acesso pessoal mal configurados que permitem que qualquer pessoa com a chave acesse o ambiente da plataforma DevOps.
  • Vulnerabilidades e configurações incorretas em ferramentas integradas que exigem acesso ao código (geralmente somente leitura, mas às vezes acesso de gravação). As ferramentas integradas podem incluir estruturas de teste, teste de segurança de aplicativo estático (SAST) e teste de segurança de aplicativo dinâmico (DAST).

Práticas recomendadas para gerenciamento de segredos e certificados

Evitar uma violação catastrófica pode ser tão simples quanto um gerenciamento de segredo eficaz. O diagrama a seguir ilustra um exemplo de gerenciamento eficaz de segredos, senhas, tokens de acesso e certificados.

O diagrama ilustra o gerenciamento de segredos e certificados.

Como mostrado no diagrama acima, o desenvolvedor inicia uma compilação para uma solicitação do cliente. Em seguida, o GitHub inicia um executor com a ID de função e a ID secreta de uma Função de Aplicativo do Vault. A Entidade Confiável solicita periodicamente uma nova ID secreta do Cofre e obtém a ID secreta do GitHub do GitHub. O Vault utiliza a ID da função Segredos do GitHub e a ID secreta para entrar e obter ativos de assinatura de código. O Runner personaliza e assina o código do aplicativo móvel.

As práticas recomendadas a seguir ajudam você a criar uma configuração segura que minimiza a exposição de segredos e parâmetros.

  • Forneça armazenamento seguro para segredos e certificados em cada estágio do ciclo de vida do aplicativo. Sempre desenvolva como se fosse um projeto open-source. Certifique-se de que as equipes estejam armazenando segredos em cofres de chaves, em vez de no código ou em ambientes de equipe. Use o serviço de nuvem Azure Key Vault para armazenar e acessar segredos com segurança.
  • Configure o Azure para confiar no OIDC do GitHub como uma identidade federada. O OpenID Connect (OIDC) permite que seus fluxos de trabalho do GitHub Actions acessem recursos no Azure sem precisar armazenar as credenciais do Azure como segredos do GitHub de longa duração.

Mais práticas recomendadas para segurança de ambiente DevOps

Para ajudar na defesa contra incidentes de segurança, revise as práticas recomendadas a seguir para fortalecer seus ambientes de plataforma DevOps. Encontre uma discussão detalhada dessas recomendações em nosso eBook Proteger ambientes de DevOps corporativos.

  • Equipe todos os ambientes da plataforma DevOps com trilhas de auditoria. Revise os logs de auditoria para rastrear quem obteve acesso, qual alteração ocorreu e a data/hora de qualquer sistema ativo. Inclua especificamente plataformas de DevOps com pipelines de CI/CD que fluem para a produção. As trilhas de auditoria para ferramentas DevOps fornecem maneiras robustas de remediar ameaças mais rapidamente, encontrar e alertar sobre atividades suspeitas sobre possíveis violações ou vulnerabilidades e encontrar possíveis usos indevidos de dados ou privilégios. Garanta que o controle granular e as trilhas de auditoria estejam disponíveis em cada ambiente.
  • Proteger a cadeia de fornecimento de software. Com cada biblioteca que você traz para sua base de código, você expande a cadeia de suprimentos de software e herda dependências de cada projeto ou ferramenta de código aberto. Com cuidado, remova bibliotecas desnecessárias e componentes de código aberto para reduzir a superfície de ataque de sua cadeia de suprimentos de software.
  • Automatize as varreduras de modelos de Infraestrutura como Código (IaC). Com ambientes de IaC, é fácil verificar se há configurações incorretas, auditorias de conformidade e problemas de políticas. A implementação de verificações de conformidade e controles de acesso aumenta a postura de segurança de toda a sua infraestrutura. Verifique a segurança das integrações de ferramentas que atendem aos requisitos do sistema de automação.
  • Automatizar fluxos de trabalho de aprovação. Para que qualquer fluxo de trabalho de aprovação envie código para produção, certas verificações automáticas ou manuais devem confirmar a segurança, o valor comercial, o status e a qualidade de cada solicitação. Essas verificações funcionam como uma porta entre o desenvolvimento e a produção para evitar ataques de negação de serviço e hackers injetando código em ambientes de produção sem sinalizar ou disparar um alerta.
  • Permitir apenas integrações de ferramentas de DevOps verificadas. Como em ambientes de desenvolvedor, as ferramentas de DevOps vêm com extensões e integrações para tornar a equipe de DevOps eficiente e segura. Confirme se as integrações verificadas exigem o menor privilégio possível para executar seu trabalho. Implemente o acesso com privilégios mínimos quando possível e garanta o nível certo de permissões de leitura/gravação. Saiba como desativar ou limitar o GitHub Actions para sua organização.

Próximas etapas