Compartilhar via


Integrar o Defender para Nuvem CLI com pipelines de CI/CD

A Interface de Linha de Comando (CLI) do Defender para Nuvem é um aplicativo que você pode usar em pipelines de integração e implantação contínuas (CI/CD). Ele executa ferramentas de análise estática e conecta código a serviços de nuvem. Você pode usar o Defender para Nuvem CLI 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 Defender para Nuvem. O Cloud Security Explorer pode então acessar a imagem do contêiner e suas vulnerabilidades.

Pré-requisitos

  • Uma assinatura do Azure com o Defender para Nuvem integrado. Caso você ainda não tenha uma conta do Azure, crie uma conta 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

  • Para o Azure DevOps, tenha a extensão Microsoft Security DevOps (MSDO) instalada na organização do Azure DevOps.

  • O Defender CSPM foi habilitado.

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

Instalação

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

Recuperar o Token da API

Para permitir que dados de segurança da CLI do Defender para Nuvem sejam passados ​​para o backend do Defender para Nuvem, o administrador de segurança no Defender para Nuvem deve primeiro gerar uma chave de API do Defender para Nuvem 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 para Nuvem a partir desse token são limitados à 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 o token com segurança aos desenvolvedores para que ele seja adicionado ao pipeline de CI/CD.

  1. Entre no portal do Azure.

  2. Vá para Microsoft Defender para Nuvem>Gerenciamento>Configurações do ambiente>Integrações.

    Captura de tela das configurações do ambiente de integração no Defender para Nuvem.

  3. Selecione Adicionar integração e depois selecione Ingestão DevOps.

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

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

    Captura de tela da adição da integração do DevOps Ingestion.

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

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

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

    Captura de tela da ingestão de DevOps criada com sucesso.

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

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

Atualizar o script do pipeline de CI/CD

Cada ferramenta de pipeline de CI/CD tem uma sintaxe diferente. Esse código é um exemplo de um pipeline do 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 de pipeline

Após 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 por meio do script de shell que o desenvolvedor pode receber do curl ou copiando manualmente o script de shell para seu repositório.

Nome Valor
GDN_PUSH_TOKEN_CLIENT_ID <ID do cliente>
GDN_PUSH_TOKEN_CLIENT_ID <ID do cliente>
GDN_PUSH_TOKEN_CLIENT_SECRET <Segredo do Cliente>
GDN_PIPELINENAME bitbucket, jenkins, gcp, bamboo, circle, travis, teamcity, oci, aws
GDN_PUSH_TOKEN_TENANT_ID <ID do locatário>

Revise os resultados no Cloud Security Explorer

  1. Depois de executar o pipeline com sucesso, navegue novamente para o Microsoft Defender para Nuvem.

  2. No menu Defender para Nuvem, selecione Cloud Security Explorer.

  3. Selecione o menu suspenso Tipos de recursos selecionados, 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 tela da nova pesquisa no Cloud Security Explorer.

  5. Selecione o menu suspenso Selecionar condição. Em seguida, selecione Dados e, em seguida, selecione Pushes.

    Captura de tela da condição de seleção do Cloud Security Explorer.

  6. Selecione o menu suspenso Selecionar tipos de recursos. Em seguida, selecione Containers, depois Container Images e depois selecione Concluído.

    Captura de tela da seleção de imagens de contêiner no Cloud Security Explorer.

  7. Selecione o escopo selecionado durante a criação da integração nas configurações do ambiente.

    Captura de tela da seleção de escopo do Cloud Security Explorer.

  8. Selecione Pesquisar.

    Captura de tela da pesquisa no Cloud Security Explorer.

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

Correlacionar com contêineres monitorados

  1. No Cloud Security Explorer, insira a seguinte consulta: CI/CD Pipeline ->Pipeline + Container Images ->Contained in + Registos de contêiner (grupo).

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