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.
Entre no portal do Azure.
Vá para Microsoft Defender para Nuvem>Gerenciamento>Configurações do ambiente>Integrações.
Selecione Adicionar integração e depois selecione Ingestão DevOps.
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.
Habilite o token na Configuração e crie os tokens.
Copie cada token. Eles não podem ser editados ou recuperados depois que você os selecionar OK/
Na tabela Integrações, a nova Ingestão é exibida.
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
Depois de executar o pipeline com sucesso, navegue novamente para o Microsoft Defender para Nuvem.
No menu Defender para Nuvem, selecione Cloud Security Explorer.
Selecione o menu suspenso Tipos de recursos selecionados, selecione DevOps e, em seguida, selecione Concluído.
Selecione o ícone + para adicionar um novo critério de pesquisa.
Selecione o menu suspenso Selecionar condição. Em seguida, selecione Dados e, em seguida, selecione Pushes.
Selecione o menu suspenso Selecionar tipos de recursos. Em seguida, selecione Containers, depois Container Images e depois selecione Concluído.
Selecione o escopo selecionado durante a criação da integração nas configurações do ambiente.
Selecione Pesquisar.
Veja os resultados do mapeamento do pipeline para imagens.
Correlacionar com contêineres monitorados
No Cloud Security Explorer, insira a seguinte consulta: CI/CD Pipeline ->Pipeline + Container Images ->Contained in + Registos de contêiner (grupo).
Revise os nomes dos recursos para ver o mapeamento do contêiner.