Compartilhar via


Considerações sobre segurança para plataformas de DevOps

A segurança deve ser sempre uma prioridade nas plataformas de desenvolvimento baseadas em nuvem, como o Azure DevOps e o GitHub. A Microsoft atualiza e mantém a segurança de infraestrutura de nuvem subjacente, mas cabe a você analisar e configurar as melhores práticas de segurança para suas organizações do Azure DevOps e suas instâncias do GitHub.

Considere as áreas de segurança críticas a seguir se você implantar ambientes por meio da infraestrutura como código em pipelines de CI/CD (integração contínua e implantação contínua) ou implantar o código nos aplicativos hospedados no Azure.

Restringir o acesso às ferramentas do DevOps

Siga o princípio de privilégios mínimos usando o RBAC (controle de acesso baseado em função) por meio da ID do Microsoft Entra. Forneça aos usuários e aos serviços a quantidade mínima de acesso às plataformas de DevOps de que eles precisam para executar as respectivas funções de negócios. Para obter mais informações, consulte os seguintes artigos:

Depois de estabelecer a ID do Microsoft Entra como seu plano de gerenciamento de identidades, siga as práticas recomendadas para gerenciar atribuições de função do Azure DevOps com associações de grupo do Microsoft Entra. Você pode atribuir funções do Azure DevOps a grupos do Microsoft Entra e ajustar a associação do Microsoft Entra de um usuário para alterar ou remover seu acesso ao Azure DevOps.

  • Use o gerenciamento de direitos de ID do Microsoft Entra para criar pacotes de acesso que permitem aos usuários do Microsoft Entra acesso limitado por tempo aos recursos necessários para concluir suas tarefas.

  • Você também pode usar o Microsoft Entra Privileged Identity Management para acesso just-in-time para promover indivíduos a funções de administrador do Azure DevOps por um período de tempo.

Gerencie a segurança no Azure DevOps usando grupos de segurança, políticas e configurações no nível da organização, do projeto ou do objeto do Azure DevOps. Considere a desabilitação da herança de permissão no Azure DevOps, se possível.

Restringir o acesso ao repositório e ao branch

Restrinja o acesso ao repositório, as permissões e a criação de branch para proteger o código e os ambientes contra alterações indesejadas ou mal-intencionadas. Restrinja o acesso aos repositórios usando grupos de segurança no Azure DevOps. Limite quem pode ler e atualizar o código nos branches definindo permissões de branch.

Restringir o acesso e as permissões de pipeline

O código mal-intencionado pode roubar dados e segredos corporativos e corromper ambientes de produção. Implemente verificadores de integridade para impedir a implantação de código mal-intencionado no pipeline. Ao restringir o acesso e implementar verificadores de integridade, você também pode impedir a exposição lateral a outros projetos, pipelines e repositórios de qualquer pipeline comprometido.

Considere a possibilidade de seguir uma abordagem incremental para proteger seus pipelines do YAML. Para obter mais informações, confira Planejar como proteger seus pipelines do YAML.

Selecionar o agente de DevOps de acordo com as necessidades de segurança

Você pode usar agentes hospedados pela Microsoft ou auto-hospedados para ativar pipelines do Azure DevOps e do GitHub. Há compensações para cada tipo de agente.

Com os agentes hospedados pela Microsoft, você não precisa se preocupar com atualizações nem com a manutenção. Com os agentes auto-hospedados, você tem maior flexibilidade para implementar os verificadores de integridade de segurança. Você controla o hardware do agente, o sistema operacional e as ferramentas instaladas.

Confira Agentes do Azure Pipelines para analisar as diferenças entre os tipos de agentes e identificar as possíveis considerações sobre segurança.

Usar conexões de serviço seguras e com escopo

Sempre que possível, use uma conexão de serviço para implantar a infraestrutura ou o código do aplicativo em um ambiente do Azure. A conexão de serviço deve ter acesso limitado à implantação em recursos ou em grupos de recursos específicos do Azure, para reduzir qualquer superfície de ataque em potencial. Além disso, considere a criação de conexões de serviço separadas para ambientes de desenvolvimento, teste, QA e produção.

Usar um repositório de segredos

Nunca embuta segredos em código ou na documentação auxiliar nos repositórios. Os adversários verificam repositórios, procurando dados confidenciais expostos a serem explorados. Configure um repositório de segredos, como o Azure Key Vault, e referencie o repositório no Azure Pipelines para recuperar chaves, segredos ou certificados com segurança. Para obter mais informações, confira Proteger o fluxo de trabalho de pipeline e de CI/CD. Você também pode usar segredos do Key Vault em fluxos de trabalho do GitHub Actions.

Usar estações de trabalho de DevOps protegidas para criar e implantar o código

As equipes de plataforma e de desenvolvimento geralmente têm privilégios elevados na plataforma Azure ou em outros serviços, como o Azure DevOps e o GitHub. Esse acesso aumenta consideravelmente a superfície de ataque potencial. Implemente verificadores de integridade para proteger os pontos de extremidade e as estações de trabalho que você usa para desenvolver e implantar o código.

Use SAWs (estações de trabalho de administrador seguras) protegidas para implantar as alterações em ambientes de alto risco e de produção. Para obter mais informações, confira Proteger pontos de extremidade com a Confiança Zero.

Fazer a verificação e o teste de segurança

Se você implantar o código do aplicativo ou a infraestrutura como código, implemente as melhores práticas e os controles de DevSecOps nos seus pipelines. Integre a segurança no início do percurso de CI/CD para evitar violações de segurança caras posteriormente. Crie uma estratégia para implementar a análise de código estático, o teste de unidade, a verificação de segredos e a verificação de pacotes/dependências nos pipelines.

Ferramentas de segurança corporativa, como o Microsoft Defender para Nuvem, podem se integrar às ferramentas de DevOps. Por exemplo, o Defender para Nuvem pode identificar imagens de contêiner vulneráveis nos seus fluxos de trabalho de CI/CD. Para o GitHub Actions e os repositórios, use o GitHub Advanced Security para a verificação de código e segredos e a revisão de dependência.

Examine periodicamente os eventos de auditoria para monitorar e reagir a padrões de uso inesperados por administradores e outros usuários. Você pode acessar, filtrar e exportar logs de auditoria para sua organização do Azure DevOps. Para armazenamento de longo prazo e consultas de log detalhadas, crie um fluxo de auditoria em um workspace do Log Analytics no Azure Monitor ou em um sistema SIEM (gerenciamento de eventos e informações de segurança), como o Microsoft Sentinel.