Compartilhar via


Tornar seu Azure DevOps seguro

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Quando você está lidando com informações e dados, especialmente em uma solução baseada em nuvem como o Azure DevOps Services, a segurança deve ser sua prioridade máxima. Embora a Microsoft garanta a segurança da infraestrutura de nuvem subjacente, é sua responsabilidade configurar a segurança no Azure DevOps. Este artigo fornece uma visão geral das configurações necessárias relacionadas à segurança para proteger seu ambiente do Azure DevOps contra ameaças e vulnerabilidades.

Proteger sua rede e dados

Proteger sua rede é crucial quando você está trabalhando com o Azure DevOps para proteger seus dados e recursos contra acesso não autorizado e ameaças potenciais. Implemente medidas de segurança de rede e proteção de dados para ajudar a garantir que somente fontes confiáveis possam acessar seu ambiente do Azure DevOps. Para proteger sua rede quando estiver trabalhando com o Azure DevOps, execute as seguintes ações:

Para obter mais informações, consulte as práticas recomendadas de gerenciamento de aplicativos.

Implementar Confiança Zero

Adote princípios de Confiança Zero em seus processos de DevOps para garantir que cada solicitação de acesso seja verificada minuciosamente, independentemente de sua origem. A Confiança Zero opera com o princípio de "nunca confiar, sempre verificar", o que significa que nenhuma entidade, dentro ou fora da rede, é confiável por padrão. Ao implementar a Confiança Zero, você pode reduzir significativamente o risco de violações de segurança e garantir que somente usuários e dispositivos autorizados possam acessar seus recursos.

A Confiança Zero ajuda a proteger contra movimentação lateral dentro da rede, garantindo que, mesmo que haja uma parte comprometida da rede, a ameaça esteja contida e não possa se espalhar. Para obter mais informações, consulte o guia de Avaliação de Confiança Zero .

Cumprir os padrões do setor

Verifique se o ambiente do Azure DevOps está em conformidade com os padrões e regulamentos do setor que protegem seu ambiente e mantêm a confiança com seus usuários.

  • Verifique a conformidade com os padrões do setor: O Azure DevOps está em conformidade com vários padrões e regulamentos do setor, como ISO/IEC 27001, SOC 1/2/3 e RGPD. Certifique-se de que seu ambiente adere a esses padrões.
  • Impor políticas de conformidade: Implemente políticas de branch e políticas de conformidade para seus pipelines.
  • Adote a Governança de Componentes para CI/CDs, que oferece os benefícios a seguir:
    • Detecção de vulnerabilidades de segurança: alerta você para vulnerabilidades conhecidas em componentes de software livre.
    • Conformidade de licença: garante que os componentes estejam em conformidade com as políticas de licenciamento da sua organização.
    • Imposição da política: garante que somente as versões aprovadas sejam usadas.
    • Visibilidade com rastreamento: fornece visibilidade dos componentes através de repositórios para facilitar o gerenciamento.

Controlar e restringir o acesso

Examine todas as políticas de segurança disponíveis aos administradores para restringir e controlar quem tem acesso à organização. Mantenha o controle da organização impedindo a criação desnecessária do projeto.

Gerenciar convidados externos

O acesso de convidado externo pode introduzir possíveis riscos de segurança se não for gerenciado corretamente. Minimize esses riscos e verifique se os convidados externos têm o nível apropriado de acesso sem comprometer a segurança do seu ambiente.

  • Bloquear o acesso de convidado externo: Desabilite a política "Permitir que convites sejam enviados para qualquer domínio" para impedir o acesso de convidado externo se não houver necessidade de negócios para ele.
  • Use emails ou UPNs distintos: Use endereços de email diferentes ou nomes principais de usuário (UPNs) para contas pessoais e comerciais a fim de eliminar a ambiguidade entre contas pessoais e relacionadas ao trabalho.
  • Agrupar usuários convidados externos: Coloque todos os usuários convidados externos em um único grupo do Microsoft Entra e gerencie as permissões para esse grupo adequadamente. Remova atribuições diretas para garantir que as regras de grupo se apliquem a esses usuários.
  • Reavaliar regras regularmente: Examine regularmente as regras na guia Regras de grupo da página Usuários. Considere as alterações de associação de grupo na ID do Microsoft Entra que possam afetar sua organização. O Microsoft Entra ID pode levar até 24 horas para atualizar a associação de grupo dinâmica; as regras são reavaliadas automaticamente a cada 24 horas e sempre que uma regra de grupo é alterada.

Para obter mais informações, consulte os convidados B2B na ID do Microsoft Entra.

Remover usuários desnecessários

A remoção de usuários inativos ou não autorizados de sua organização ajuda a manter um ambiente seguro e reduz o risco de possíveis violações de segurança.

  • Remova diretamente usuários inativos de contas da Microsoft (MSAs): Remova diretamente usuários inativos da sua organização se estiverem usando MSAs. Você não pode criar consultas para itens de trabalho atribuídos a contas MSA removidas.
  • Desabilitar ou excluir contas de usuário do Microsoft Entra: Se estiver conectado à ID do Microsoft Entra, desabilite ou exclua a conta de usuário do Microsoft Entra mantendo a conta de usuário do Azure DevOps ativa. Você pode continuar consultando o histórico de itens de trabalho usando a ID de usuário do Azure DevOps.
  • Revogar PATs de usuário para administradores: Garanta o gerenciamento seguro desses tokens de autenticação críticos examinando e revogando regularmente os PATs de usuário existentes.
  • Revogar permissões especiais concedidas a usuários individuais: Audite e revogue todas as permissões especiais concedidas a usuários individuais para garantir o alinhamento com o princípio de privilégio mínimo.
  • Reatribuir o trabalho de usuários removidos: Antes de remover os usuários, reatribua seus itens de trabalho aos membros da equipe atuais para distribuir a carga efetivamente.

Permissões do escopo

Forneça as permissões mínimas necessárias e os níveis de acesso para garantir que somente indivíduos e serviços autorizados possam acessar informações confidenciais e executar ações críticas. Essa prática ajuda a minimizar o risco de acesso não autorizado e possíveis violações de dados.

Examine e atualize regularmente essas configurações para se adaptar às alterações em sua organização, como alterações de função, novas contratações ou saídas. Implementar uma auditoria periódica de permissões e níveis de acesso pode ajudar a identificar e corrigir quaisquer discrepâncias, garantindo que sua postura de segurança permaneça robusta e alinhada com as práticas recomendadas.

Saiba mais sobre permissões:

Para garantir o gerenciamento seguro e eficiente de permissões, configure adequadamente permissões no seu ambiente Azure DevOps. As permissões de escopo envolvem definir e atribuir o nível apropriado de acesso a usuários e grupos com base em suas funções e responsabilidades. Essa prática ajuda a minimizar o risco de acesso não autorizado e possíveis violações de dados, garantindo que somente indivíduos autorizados tenham acesso a informações confidenciais e ações críticas.

Para definir as permissões de escopo com eficiência, execute as seguintes ações:

  • Desabilitar herança: Evite a herança de permissões e impeça o acesso não intencional. A rotina da herança pode conceder permissões inadvertidamente aos usuários que não devem tê-las devido à sua natureza permitido por padrão. Gerencie e defina explicitamente permissões com cuidado para garantir que somente os usuários pretendidos tenham acesso.
  • Ambientes de segmento: Use contas separadas do Azure para ambientes diferentes, como Desenvolvimento, Teste e Produção, para aprimorar a segurança e evitar conflitos. Essa abordagem minimiza o risco de conflitos de recursos e contaminação de dados entre ambientes e permite um melhor gerenciamento e isolamento de recursos. Para obter mais informações, consulte a Zona de Destino do Azure.
  • Controlar o acesso e garantir a conformidade: Use o Azure Policy para restringir o acesso a regiões e serviços não utilizados do Azure, garantindo a conformidade com os padrões organizacionais. Essa ação ajuda a impor práticas recomendadas e manter um ambiente seguro, impedindo o acesso e o uso não autorizados.
  • Implementar o ABAC (controle baseado em função) do Azure: Use o ABAC com recursos marcados corretamente para limitar o acesso não autorizado. Essa ação garante que as permissões de acesso sejam concedidas com base em atributos específicos, melhorando a segurança impedindo a criação e o acesso de recursos não autorizados.
  • Use grupos de segurança: Use grupos de segurança para gerenciar com eficiência permissões para vários usuários. Esse método simplifica a concessão e a revogação do acesso em comparação com a atribuição de permissões individualmente e garante a consistência e o gerenciamento mais fácil em toda a sua organização.
    • Use a ID do Microsoft Entra, o Active Directory ou os grupos de segurança do Windows quando estiver gerenciando muitos usuários.
    • Reduza o risco de vazamento de informações confidenciais e implantação de código inseguro limitando o acesso a projetos e repositórios a grupos de segurança internos ou personalizados.
    • Aproveite as funções internas e o padrão de colaborador para os desenvolvedores. Os administradores são atribuídos ao grupo de segurança administrador de projeto para permissões elevadas, permitindo que eles configurem permissões de segurança.
    • Mantenha os grupos o menor possível, restringindo o acesso.
    • Implemente o acesso just-in-time com um grupo de Gerenciamento de Identidades Privilegiadas (PIM) do Microsoft Entra. Conceda permissões elevadas somente quando necessário, reduzindo o risco associado ao acesso permanente.

Desativar contas de serviço

Historicamente, as contas de serviço eram usadas com PATs (tokens de acesso pessoal) para criar ferramentas que executam processos e serviços automatizados. Como resultado, eles geralmente têm permissões elevadas. Antes de optar por continuar criando com uma conta de serviço, explore se ainda é a abordagem de autenticação certa para você.

  • Substitua seus PATs por tokens do Microsoft Entra:os tokens do Microsoft Entra são tokens de curta duração (uma hora) que podem ser usados no lugar da maioria dos PATs. Os PATs são populares devido à facilidade de uso, mas também são um vetor popular de ataque devido à facilidade em que são vazados.
  • Leia todos os mecanismos de autenticação disponíveis antes de escolher um.
  • Em vez disso, use entidades de serviço:asentidades de serviço representam a identidade de um aplicativo do Microsoft Entra e têm suas próprias permissões que definem o que o aplicativo pode fazer em um determinado locatário. As entidades de serviço são a opção recomendada para gerenciar as permissões necessárias para o aplicativo. Substitua os PATs de contas de serviço pelos tokens do Microsoft Entra adquiridos para a entidade de serviço.
    • Dê um passo adiante, realizando a autenticação com uma identidade gerenciada se você estiver trabalhando com os recursos do Azure. As identidades gerenciadas cuidam de todo o gerenciamento de credenciais para você.
  • Use conexões de serviço: As conexões de serviço permitem que você use entidades de serviço dentro de um pipeline. Use conexões de serviço sempre que possível para se conectar com segurança aos serviços sem passar variáveis secretas diretamente para builds. Restrinja conexões a casos de uso específicos. para obter mais informações, consulte a seção Conexões de Serviço do Escopo neste artigo.

Enquanto uma conta de serviço permanece em uso:

  • Criar contas de serviço de uso único: Cada serviço deve ter sua conta dedicada para minimizar o risco. Evite usar contas de usuário regulares como contas de serviço .
  • Identificar e desabilitar contas de serviço não utilizados: Examine e identifique regularmente as contas que não estão mais em uso. Desabilite contas não utilizados antes de considerar a exclusão.
  • Restringir privilégios: Limite os privilégios da conta de serviço ao mínimo necessário. Evite direitos de entrada interativos para contas de serviço.
  • Use identidades separadas para leitores de relatório: Se estiver usando contas de domínio para contas de serviço, use uma identidade diferente para os leitores de relatório isolarem permissões e impedirem o acesso desnecessário.
  • Use contas locais para instalações de grupo de trabalho: Ao instalar componentes em um grupo de trabalho, use contas locais para contas de usuário. Evite contas de domínio neste cenário.
  • Monitorar a atividade da conta de serviço: Implemente a auditoria e crie fluxos de auditoria para monitorar a atividade da conta de serviço.

Conexões de serviço de escopo

Para garantir o acesso seguro e eficiente aos recursos do Azure, defina adequadamente o escopo das conexões de serviço. As conexões de serviço permitem que o Azure DevOps se conecte a serviços e recursos externos e, ao escopo dessas conexões, você pode limitar o acesso apenas aos recursos necessários e reduzir o risco de acesso não autorizado.

  • Limitar o acesso: Limite o acesso ao escopo de suas conexões de serviço do Azure Resource Manager para recursos e grupos específicos. Não conceda direitos amplos de colaborador em toda a assinatura do Azure.
  • Use o Azure Resource Manager: Autentique-se com os recursos do Azure usando federação de identidade de tarefas com registro de aplicativo ou identidade gerenciada, em vez de por meio de registro de aplicativo com segredo. Para obter mais informações, consulte Criar uma conexão de serviço do Azure Resource Manager que usa a federação de identidade de carga de trabalho.
  • Grupos de recursos de escopo: Verifique se os grupos de recursos contêm apenas as VMs (Máquinas Virtuais) ou os recursos necessários para o processo de build.
  • Evite conexões de serviço clássicas: Opte por conexões de serviço modernas do Azure Resource Manager em vez das clássicas, que não têm opções de escopo.
  • Use contas de serviço de equipe voltadas para finalidades específicas: Autentique conexões de serviço usando contas de serviço de equipe voltadas para finalidades específicas para manter a segurança e o controle.

Para obter mais informações, consulte tipos comuns de conexão de serviço.

Examinar eventos de auditoria

A auditoria pode ser usada para acompanhar ações do usuário, alterações de permissões e padrões de uso em sua organização. Use essas ferramentas para identificar e resolver possíveis incidentes de segurança imediatamente.

  • Habilitar a auditoria: Acompanhe e exiba eventos relacionados a ações do usuário, permissões, alterações e incidentes de segurança.
  • Examine os logs e fluxos de auditoria regularmente: Examine regularmente os logs de auditoria para monitorar as atividades do usuário e detectar qualquer comportamento suspeito. Procure padrões de uso inesperados, especialmente por administradores e outros usuários. Essa ação ajuda a identificar possíveis violações de segurança e realiza ações corretivas. Saiba mais sobre os eventos de auditoria que acompanhamos.
  • Configurar alertas de segurança: Configure alertas para notificar você sobre quaisquer incidentes de segurança ou violações de política. Essa ação garante uma resposta oportuna a possíveis ameaças.

Garanta a segurança dos seus serviços

Para garantir a segurança e a integridade de seus serviços no Azure DevOps, implemente medidas de segurança para cada serviço. Essas medidas incluem a configuração de permissões, o gerenciamento de acesso e o uso de recursos de segurança específicos para cada serviço.

Automatizar a verificação de segurança

Monitore vulnerabilidades de código e segredo com as seguintes ferramentas de segurança automatizadas criadas por nossas equipes parceiras:

  • Use a verificação e a análise de código: Utilize ferramentas como o Microsoft Defender para verificar seu código em busca de vulnerabilidades, segredos e configurações incorretas. Essa ação ajuda a identificar e corrigir problemas de segurança no início do processo de desenvolvimento.
  • Use o Verificador de Credenciais do Azure DevOps (CredScan) para o GitHub: Ao usar uma identidade gerenciada não é uma opção, verifique se as credenciais são armazenadas em locais seguros, como o Azure Key Vault, em vez de inseri-las nos arquivos de código e configuração. Implemente o Verificador de Credenciais do Azure DevOps para identificar credenciais dentro do código. Para obter mais informações, consulte Introdução ao CredScan.
  • Use a verificação de segredo nativo para o GitHub: Quando usar uma identidade gerenciada não for uma opção, assegure que os segredos sejam armazenados em locais seguros, como o Azure Key Vault, em vez de inseri-los nos arquivos de código e configuração. Use o recurso de verificação de segredo nativo para identificar segredos dentro do código. Para obter mais informações, consulte Sobre a verificação secreta.

Para obter mais informações, consulte a visão geral de segurança avançada do GitHub.