Protegendo o Azure Pipelines
Serviços de DevOps do Azure | Azure DevOps Server 2022 | Azure DevOps Server 2020
O Azure Pipelines apresenta desafios de segurança distintos. Embora os pipelines permitam executar scripts ou implantar código em ambientes de produção, é crucial evitar que eles se tornem canais para códigos mal-intencionados. Equilibrar a segurança com a flexibilidade e o poder necessários para as equipes de desenvolvimento é essencial.
Nota
O Azure Pipelines faz parte de um conjunto de Serviços de DevOps do Azure, todos criados em uma infraestrutura segura no Azure. Para obter uma compreensão abrangente dos conceitos de segurança em todos os Serviços de DevOps do Azure, recomendamos exibir os seguintes recursos:
Tradicionalmente, as organizações reforçam a segurança através de bloqueios rigorosos. Código, pipelines e ambientes de produção enfrentam severas restrições de acesso. Embora essa abordagem funcione bem em pequenas organizações com usuários e projetos limitados, as organizações maiores enfrentam uma realidade diferente. Com numerosos contribuidores a terem acesso ao código, o princípio de «assumir a violação» torna-se crucial. Trata-se de operar como se um adversário possuísse acesso aos repositórios, o que exige uma vigilância reforçada.
Para atingir as metas de segurança, considere os seguintes pontos:
Impeça a execução de códigos maliciosos:
- Certifique-se de que seus pipelines estejam configurados para impedir a execução não autorizada de código mal-intencionado, o que inclui as seguintes tarefas:
- Restrinja o acesso a segredos e credenciais confidenciais.
- Valide parâmetros de entrada e argumentos para evitar comportamentos não intencionais.
- Revise e audite scripts de pipeline quanto a possíveis riscos de segurança regularmente.
- Implementar práticas de segurança, tais como:
- Use consultas parametrizadas em scripts para evitar a injeção de SQL.
- Fuja de caracteres especiais em argumentos para evitar a injeção de comando shell.
- Limite as permissões para conexões de serviço de pipeline.
- Considere o uso de pipelines YAML, que fornecem controle refinado sobre a execução e são menos propensos a riscos de segurança.
- Certifique-se de que seus pipelines estejam configurados para impedir a execução não autorizada de código mal-intencionado, o que inclui as seguintes tarefas:
Mitigar a exposição lateral:
- Isole pipelines para evitar movimentos laterais dentro dos projetos e repositórios da sua organização.
- Limite o acesso apenas aos repositórios e recursos necessários para cada pipeline.
- Monitore a atividade do pipeline e configure alertas para comportamentos suspeitos.
- Revise e atualize as permissões para minimizar a exposição regularmente.
Use pipelines YAML:
- Os pipelines YAML oferecem as seguintes vantagens em termos de segurança:
- Defina explicitamente as etapas e dependências do pipeline.
- Controle de versão para definições de pipeline.
- Visibilidade clara da configuração do pipeline.
- Redução do risco de erros de configuração acidentais.
- Revisão de código e solicitações pull:
- Trate os pipelines YAML como qualquer outro código.
- Imponha solicitações pull para mesclar alterações para evitar etapas maliciosas.
- Use políticas de filial para configurar esse processo de revisão.
- Gerenciamento de acesso a recursos:
- Os proprietários de recursos controlam se um pipeline YAML pode acessar recursos específicos.
- Esse recurso de segurança evita ataques como roubar outro repositório.
- Aprovações e verificações fornecem controle de acesso para cada execução de pipeline.
- Parâmetros de tempo de execução:
- Os parâmetros de tempo de execução ajudam a evitar problemas de segurança relacionados a variáveis, como injeção de argumentos.
- Considere migrar pipelines existentes para o formato YAML para melhorar a segurança e a capacidade de manutenção.
- Os pipelines YAML oferecem as seguintes vantagens em termos de segurança:
A segurança é um processo contínuo, e avaliações e atualizações regulares são essenciais. Os pipelines YAML oferecem a melhor segurança para seus Pipelines do Azure.
Os artigos a seguir descrevem recomendações para ajudá-lo a desenvolver um pipeline seguro baseado em YAML: