Partilhar via


Integre a CLI do Defender for Cloud com pipelines de CI/CD

O Defender for Cloud Command Line Interface (CLI) é um aplicativo que você pode usar em pipelines de integração contínua e implantação contínua (CI/CD). Ele executa ferramentas de análise estática e conecta código a serviços de nuvem. Você pode usar a CLI do Defender for Cloud em qualquer processo de compilação para verificar imagens em busca de vulnerabilidades de segurança com scanners de segurança integrados. Ele envia os resultados da verificação para o portal do Defender for Cloud. O Cloud Security Explorer pode então acessar a imagem do contêiner e suas vulnerabilidades.

Pré-requisitos

  • Uma Subscrição do Azure com o Defender for Cloud integrado. Se ainda não tiver uma conta do Azure, crie uma gratuitamente.

  • Uma das seguintes ferramentas de pipeline de CI/CD: Jenkins, BitBucket Pipelines, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps services, AWS CodeBuild

  • O Defender CSPM ativado.

  • Permissão de administrador de segurança para criar o ID do cliente e o segredo.

Configurar

Nas seções a seguir, explicamos como recuperar a ID do cliente e os segredos, atualizar o script de pipeline de CI/CD e adicionar variáveis de ambiente ao pipeline de CI/CD.

Recuperar o token da API

Para permitir que os dados de segurança da CLI do Defender for Cloud sejam passados para o back-end do Defender for Cloud, o administrador de segurança do Defender for Cloud deve primeiro gerar uma chave de API do Defender for Cloud para autenticação.

Quando os tokens são gerados, o administrador de segurança seleciona um escopo de assinatura a ser associado ao token. Os dados que estão sendo "enviados" para o Defender for Cloud a partir desse token têm como escopo a assinatura à qual o token está associado. Esses tokens de API são imutáveis e só podem ser gerados/excluídos.

A partir daí, o administrador de segurança deve passar com segurança o token para os desenvolvedores para ser adicionado ao pipeline de CI/CD.

  1. Inicie sessão no portal do Azure.

  2. Vá para Integrações de configurações>do ambiente de gerenciamento de>nuvem do Microsoft Defender for Cloud.>

    Captura de ecrã das Definições do Ambiente de Integração no Defender for Cloud.

  3. Selecione Adicionar integração e, em seguida, selecione Ingestão de DevOps.

    Captura de tela da nova opção Ingestão de DevOps.

  4. Insira um nome descritivo para o token, o locatário selecionado armazene as informações do token. O segredo do cliente é gerado quando você insere uma descrição para o segredo e a data de validade.

    Captura de tela mostrando a adição da integração de ingestão de DevOps.

  5. Habilite o token na Configuração e crie os tokens.

    Captura de tela da criação de DevOps Ingestão e criação de tokens.

  6. Copie cada token. Eles não podem ser editados ou recuperados depois que você seleciona OK.

    Captura de tela da ingestão bem-sucedida de DevOps criada.

  7. Na tabela Integrações, a nova Ingestão é exibida.

    Captura de tela da tabela Integrações de DevOps com nova ingestão.

Atualizar o script de pipeline de CI/CD

Cada ferramenta de pipeline de CI/CD tem sintaxe diferente. Este código é um exemplo de um pipeline Bitbucket:

image: atlassian/default-image:3
 
pipelines:
  default:
    - parallel:
      - step:
          name: 'MSDO trivy test'
          script:
            - curl -L -o ./msdo_linux.zip https://www.nuget.org/api/v2/package/Microsoft.Security.DevOps.Cli.linux-x64/
            - unzip ./msdo_linux.zip
            - chmod +x tools/guardian
            - chmod +x tools/Microsoft.Guardian.Cli
            - ls -lah .
            - tools/guardian init --force
            - tools/guardian run -t trivy --export-file ./ubuntu-test.sarif --publish-file-folder-path ./ubuntu-test.sarif            

Variáveis do pipeline

Depois de receber os tokens com segurança, o desenvolvedor deve configurar uma variável de ambiente para a chave. A variável de ambiente é passada para a CLI através do shell script que o desenvolvedor pode receber do curl ou copiando manualmente o shell script em seu repo.

Nome Valor
GDN_MDC_CLI_CLIENT_ID <ID do cliente>
GDN_MDC_CLI_CLIENT_SECRET <Segredo do Cliente>
GDN_MDC_CLI_TENANT_ID <ID do inquilino>
GDN_PIPELINENAME bitbucket, jenkins, gcp, bambu, círculo, travis, teamcity, oci, aws

Rever os resultados no Cloud Security Explorer

  1. Depois de executar o pipeline com êxito, navegue novamente até o Microsoft Defender for Cloud.

  2. No menu Defender for Cloud, selecione Cloud Security Explorer.

  3. Selecione a lista suspensa Selecionar tipos de recursos, selecione DevOps e, em seguida, selecione Concluído.

    Captura de tela do pipeline de CI/CD no Cloud Security Explorer.

  4. Selecione o + ícone para adicionar um novo critério de pesquisa.

    Captura de ecrã da nova pesquisa no Cloud Security Explorer.

  5. Escolha a lista suspensa Selecionar condição . Em seguida, selecione Dados e, em seguida, selecione Pushes.

    Captura de ecrã a mostrar a seleção da condição Cloud Security Explorer.

  6. Escolha a lista suspensa Selecionar tipos de recursos. Em seguida, selecione Contêineres, Imagensde contêiner e Concluído.

    Captura de ecrã a mostrar a seleção de imagens de contentor no Cloud Security Explorer.

  7. Selecione o escopo selecionado durante a criação da integração em Configurações de ambiente.

    Captura de ecrã a mostrar a seleção do âmbito Cloud Security Explorer.

  8. Selecione Pesquisar.

    Captura de ecrã a mostrar a pesquisa no Cloud Security Explorer.

  9. Veja os resultados do pipeline para mapeamento de imagens.

Correlacione com contêineres monitorados

  1. No Cloud Security Explorer, insira a seguinte consulta: CI/CD Pipeline ->Pipeline + Container Images ->Contained in + Container registers (group).

  2. Revise os nomes dos recursos para ver o mapeamento do contêiner.