Configurar a integração nativa do GitHub Advanced Security com o Microsoft Defender para Nuvem

Este guia fornece etapas de instalação e outras ações para ajudá-lo a integrar o GHAS (GitHub Advanced Security) e Microsoft Defender para Nuvem com um caso de uso que ajuda você a validar a integração de ponta a ponta. Essa integração ajuda a maximizar a segurança do aplicativo nativo de nuvem do Microsoft correlacionando os riscos de runtime e o contexto com o código originado para uma correção mais rápida da IA.

Seguindo este guia, você:

  • Configure seu repositório GitHub para cobertura do Defender para Nuvem.
  • Crie um fator de risco de tempo de execução.
  • Teste casos reais de uso no Defender para Nuvem.
  • Vincular código a recursos de runtime.
  • Inicie uma campanha de segurança no GitHub. Esta campanha usa o contexto de runtime para priorizar alertas de segurança do GHAS.
  • Crie problemas do GitHub a partir do Defender para Nuvem para iniciar a correção.
  • Feche o loop entre as equipes de engenharia e segurança.

Pré-requisitos

Aspecto Detalhes
Requisitos ambientais – Conta do GitHub com um conector criado no Defender para Nuvem
- Licença do GitHub Advanced Security (GHAS) em repositórios conectados
- Plano de Defender Cloud Security Posture Management (DCSPM) habilitado na assinatura
- Microsoft Security Copilot (opcional para correção automatizada alimentada por IA)
Funções e permissões - Permissões de administrador de segurança
– Administrador de segurança na assinatura Azure (para exibir as descobertas no Defender para Nuvem)
- Proprietário da organização no GitHub (para conectar repositórios e configurar campanhas de segurança)
Ambientes de nuvem - Disponível somente em nuvens comerciais (não no Azure Governamental, no Azure operado pela 21Vianet ou em outras nuvens soberanas)

Prepare o seu ambiente

Etapa 1: Configurar o repositório GitHub e executar o fluxo de trabalho

Para testar a integração, use seus próprios repositórios ou um projeto de área restrita exampla que tenha um repositório de GitHub de teste com todo o conteúdo para criar uma imagem de contêiner vulnerável.

  1. Entre no portal do Azure.

  2. Vá para Microsoft Defender para Nuvem>DevOps security.

  3. Insira o nome do repositório de código na barra de pesquisa (exemplo: zava-webshop).

  4. Valide se ele realmente pertence à organização que você está monitorando (exemplo: zava-corporation org).

  5. Confira se há algum resultado para o repositório.

  6. Verifique se o status de segurança avançada está ativado, indicando que você tem o GitHub Advanced Security habilitado no repositório monitorado– > seu repositório integrado.

  7. Se o repositório não for encontrado, consulte a documentação do Microsoft Defender para Nuvem para solucionar problemas e a integração do conector do GitHub.

  8. Verifique se a verificação sem agente está ativada para o conector GitHub.

    Screenshot da Configuração de Plano no GPSN do Defender com a verificação de código sem agente ativada e todas as opções de scanner habilitadas.

Etapa 2: Validar se seu ambiente está pronto

A validação confirma que seu ambiente está configurado corretamente para exibir o código para recomendações de runtime e gerar resultados acionáveis. Durante esta etapa, Defender verifica se:

Visibilidade completa desde o código até o tempo de execução

  • Microsoft Defender para Nuvem monitora continuamente os repositórios de código-fonte para vulnerabilidades de segurança.
  • Artefatos de build, como imagens de contêiner, são escaneados em registros de contêiner antes da implantação.
  • Cargas de trabalho de runtime implantadas em clusters do Kubernetes são monitoradas para riscos de segurança.
  • Defender para Nuvem correlaciona e rastreia cada artefato do código, passando pela compilação e implantação, até o tempo de execução e de volta ao início.

Observação

Pode levar até 24 horas após as etapas anteriores serem aplicadas para ver os resultados a seguir.

Teste se a verificação sem agente do GitHub seleciona o repositório.

Vá para Microsoft Defender para Nuvem>Cloud Security Explorer e execute a consulta. Consultas de validação testam se o Defender pode identificar artefatos produzidos por seus pipelines e cargas de trabalho. Se as consultas retornarem resultados, isso indicará que a verificação e a correlação estão funcionando conforme o esperado.

Screenshot do Explorador de Segurança de Nuvem do Defender para Nuvem mostrando uma consulta por pushes de repositório do GitHub para imagens de contêiner.

Observação

Se nenhum resultado for retornado, poderá indicar que os artefatos ainda não foram gerados, a verificação não está configurada ou as permissões estão ausentes. Consulte as funções de usuário e as permissões para obter mais informações.

  1. Valide se o Defender para Nuvem (no Registro de Contêiner do Azure) examinou a imagem do contêiner e a usou para criar um contêiner.

  2. Em sua consulta, adicione as condições para sua implantação específica.

    Screenshot do Cloud Security Explorer do Defender para Nuvem mostrando uma consulta sobre os envios para repositórios do GitHub de imagens de contêiner com vulnerabilidades.

  3. Valide se o contêiner está em execução e se o Defender para Nuvem examinou o cluster do AKS.

    Screenshot do Explorador de Segurança do Nuvem do Defender para Nuvem mostrando uma consulta sobre envios do GitHub de imagens de contêiner com vulnerabilidades.

  4. Valide se os fatores de risco estão configurados corretamente no lado do Defender para Nuvem. Pesquise o nome do contêiner na página de inventário do Defender para Nuvem e você deverá vê-lo marcado como crítico.

Observação

Essa etapa será necessária somente se os fatores de risco ainda não estiverem configurados em seu ambiente. Se você já usa fatores de risco, poderá verificar a configuração em Configurações > criticidade do recurso.

A validação bem-sucedida garante que as etapas subsequentes, como recomendações, campanhas e geração de problemas GitHub, produzam resultados significativos.

Observação

Depois de classificar seu recurso como crítico, pode levar até 12 horas para o Defender para Nuvem enviar os dados para o GitHub. Saiba mais.

Etapa 3: Criar uma campanha de GitHub

Para criar uma campanha de verificação, você deve trabalhar no nível da organização do GitHub. Essa experiência não está disponível no nível do repositório individual.

  1. No GitHub, acesse a organização do GitHub que você usou para o teste de instalação.

  2. Selecione Segurança>Campanhas>Criar campanha>A partir de filtros de varredura de código.

  3. Esta campanha ajuda a priorizar as descobertas do GHAS que pertencem ao código que é verdadeiramente implantado e em execução.

  4. Selecione filtros de Riscos de Tempo de Execução para a campanha.

    Screenshot da criação de campanha de escaneamento de código do GitHub com uma barra de filtros, botão Filtrar e um tooltip sobre filtragem por metadados de artefato.

    Screenshot da caixa de diálogo de filtros avançados na criação de campanha do GitHub com o filtro de risco de tempo de execução e o menu de fatores de risco selecionáveis aberto.

  5. Selecione Salvar>Publicação como campanha. Insira as informações necessárias e, em seguida, publique a campanha.

  6. Acompanhe o avanço da campanha. Screenshot da página de campanha do GitHub mostrando status atrasado, barra de progresso da campanha, lista de alertas críticos e opções de filtro.

Etapa 4: Mobilização de recomendações

Use a execução das recomendações VA para contêineres em tempo de execução e a correlação dos CVEs identificados com os alertas de segurança do Dependabot para entender o status dos problemas de segurança. Em seguida, você pode atribuir a recomendação de resolução à equipe de engenharia relevante com base no mapeamento de código para runtime.

  1. No portal do Defender para Nuvem, acesse a guia Recomendações .

  2. Pesquise o nome do contêiner que você criou com base no repositório de código.

  3. Abra uma das recomendações de software de atualização ; o nome da recomendação começa com Update

  4. Selecione a guia CVEs Associados. Os alertas de segurança aparecem como parte do fluxo de avaliação de recomendação. Esses alertas fornecem indicações sobre descobertas de segurança avançada do GitHub que já são conhecidas pela equipe de engenharia. Observe que algumas ID CVE têm um link para visualizar no GitHub na coluna de Alertas Relacionados do GitHub.

    Captura de tela da guia de Descobertas do Defender para Nuvem mostrando alertas CVE-2024-21409, status de correção, pontuações do CVSS e popup de detalhes do alerta do GitHub.

Selecione o link para abrir o alerta de segurança do GHAS relevante. (Para exibir o conteúdo do alerta GHAS no GitHub, você deve ter permissões de acesso para o repositório de GitHub relevante. Se você não tiver permissões de acesso, sempre poderá copiar o link para uso subsequente ou entrar em contato com o administrador do GitHub.)

Se houver um enriquecimento de alerta, há um alerta Dependabot correspondente que já é conhecido pela engenharia. Se o status estiver ativo, ninguém o corrigiu ainda e o problema precisará ser priorizado para uma correção.

Se não houver nenhum enriquecimento de achados, isso indicará um risco de tempo de execução desconhecido para a engenharia que precisa ser priorizado em uma correção.

O que vem a seguir? Como eu saberia quem é a equipe relevante para a correção? Como saber qual contexto pode ajudar a engenharia com a correção?

Criar um problema do GitHub

Para fechar o loop entre as equipes de segurança e engenharia, você pode criar um problema do GitHub que prioriza os problemas de segurança nos quais a equipe de engenharia deve se concentrar. Essa priorização pode incluir a inclusão de resultados que o GHAS não detectou, mas que o Defender para Nuvem detectou para IDs de CVE que não fazem parte de dependências diretas. Essas descobertas podem incluir vulnerabilidades na imagem base, no sistema operacional ou no software, como o NGINX.

O problema de GitHub é gerado automaticamente no repositório de código de origem, com todas as IDs CVE encontradas no escopo da recomendação, incluindo outros contextos relacionados ao SDLC de runtime e contêiner que podem ajudar a facilitar a correção e o teste.

No modo de exibição de recomendação, você pode gerar explicitamente um problema de GitHub para acompanhar o trabalho de correção.

  1. Vá para a guia Insights de Remediação e visualize o diagrama de código para tempo de execução. O diagrama mapeia seu contêiner em execução para a imagem de contêiner no repositório de código e para o repositório de código de origem em GitHub.

    Captura de tela do Remediation Insights mostrando o diagrama de código para runtime com níveis de risco e o menu Executar Ação aberto na caixa Runtime.

    1. Na guia Insights de Correção, revise a caixa Runtime afetada.

    2. Validate se já existe um problema GitHub. Se já existir um problema de GitHub, um ícone de GitHub será exibido na caixa. Passe o mouse sobre o ícone para exibir os detalhes do problema.

    3. Se não existir nenhum problema e você tiver as permissões necessárias, poderá gerar um novo problema do GitHub. Selecione Executar ação.

    4. Selecione a opção Generate GitHub issue no popup.

    5. Se o problema tiver sido criado com êxito, você verá uma notificação pop-up com um link para o problema. O problema é criado no repositório de código de origem.

      Screenshot da lista de problemas GitHub mostrando problemas abertos para dependências com rótulos como Defender para Nuvem e security.

    Observação

    Se a opção Criar issue no GitHub não estiver disponível, as permissões necessárias do GitHub ou do repositório podem estar ausentes. Entre em contato com o administrador do GitHub ou do repositório para solicitar acesso.

    Screenshot da lista de problemas GitHub mostrando problemas abertos para dependências com rótulos como Defender para Nuvem e security.

    1. Acompanhe a propriedade e as atualizações de status - as alterações no estado de problema ou atribuição feitas no GitHub são exibidas no Microsoft Defender para Nuvem, permitindo que você acompanhe a propriedade e o progresso de correção a partir da visão de Recomendações.

      Screenshot da página de recomendações do Microsoft Defender para Nuvem mostrando problemas de alto risco com popup de detalhes de problema no GitHub.

Fazer correções por meio de agentes

No lado do GitHub, se você tiver uma licença do GitHub Copilot, poderá resolver o problema com a ajuda do agente de codificação do GitHub:

  1. Atribua um agente de codificação do GitHub ao problema.
  2. Examine a correção gerada.
  3. Se a correção parecer razoável, aplique-a.
  4. Observe que o Defender para Nuvem atualiza o status do problema para Fechado.