Share via


Mapear as imagens de contêiner do código na nuvem

Quando uma vulnerabilidade é identificada em uma imagem de contêiner armazenada em um registro de contêiner ou em execução em um cluster do Kubernetes, pode ser difícil para um profissional de segurança rastrear até o pipeline de CI/CD que criou inicialmente a imagem de contêiner e identificar a pessoa responsável pela correção feita por desenvolvedores. Com as funcionalidades de segurança do DevOps no Gerenciamento da Postura de Segurança na Nuvem (GPSN) do Microsoft Defender, você pode mapear seus aplicativos nativos da nuvem do código para a nuvem e iniciar facilmente fluxos de trabalho de correção feita por desenvolvedores, reduzindo o tempo para a correção de vulnerabilidades em suas imagens de contêiner.

Pré-requisitos

  • Uma conta do Azure com o Defender para Nuvem integrado. Caso você ainda não tenha uma conta do Azure, crie uma conta gratuitamente.

  • Ambiente Azure DevOps ou GitHub integrado ao Microsoft Defender para Nuvem.

    • Quando um ambiente do Azure DevOps for integrado ao Microsoft Defender para Nuvem, o Mapeamento de Contêiner do Microsoft Defender para DevOps será compartilhado e instalado automaticamente em todas as organizações conectadas do Azure DevOps. Isso injetará tarefas automaticamente em todos os pipelines do Azure para coletar dados para o mapeamento de contêiner.
  • Para o Azure DevOps, tenha a extensão Microsoft Security DevOps (MSDO) instalada na organização do Azure DevOps.

  • Para o GitHub, configure a Ação do Microsoft Security DevOps (MSDO) em seus repositórios do GitHub. Adicionalmente, o Workflow do GitHub precisa ter permissões "id-token: write" para se integrar ao Defender para Nuvem. Para ver um exemplo, confira este YAML.

  • GPSN do Defender habilitado.

  • As imagens de contêiner devem ser criadas usando o Docker, e o cliente Docker precisa ter acesso ao servidor Docker durante o processo de compilação.

Mapeie a imagem de contêiner dos pipelines do Azure DevOps para o registro de contêiner

Após criar uma imagem de contêiner em um pipeline de CI/CD do Azure DevOps e enviá-la por push para um registro, veja o mapeamento usando o Cloud Security Explorer:

  1. Entre no portal do Azure.

  2. Vá para Microsoft Defender para Nuvem>Cloud Security Explorer. Pode levar no máximo 4 horas para que o mapeamento da imagem de contêiner apareça no Cloud Security Explorer.

  3. Para ver o mapeamento básico, selecione Imagem de Contêiner>+>Enviadas por push por repositórios de código.

    Screenshot that shows how to find basic mapping of containers.

  4. (Opcional) Selecione + em Imagens de Contêiner para adicionar outros filtros à sua consulta, como Tem vulnerabilidades para filtrar apenas imagens de contêiner com CVEs.

  5. Depois de executar a consulta, você verá o mapeamento entre o registro de contêiner e o pipeline do Azure DevOps. Selecione ... ao lado da borda para ver mais detalhes sobre onde o pipeline do Azure DevOps foi executado.

    Screenshot that shows an advanced query for container mapping results.

Veja a seguir um exemplo de uma consulta avançada que utiliza o mapeamento de imagens de contêiner. Começando com uma carga de trabalho do Kubernetes que está exposta à Internet, você pode rastrear todas as imagens de contêiner com CVEs de alta gravidade até o pipeline do Azure DevOps em que a imagem de contêiner foi criada, capacitando um profissional de segurança a iniciar um fluxo de trabalho de correção feita por desenvolvedores.

Screenshot that shows basic container mapping results.

Observação

Se sua organização do Azure DevOps criou o conector do Azure DevOps antes de 15 de novembro de 2023, acesse Configurações da organização>Extensões > Compartilhadas e instale o decorador de mapeamento de imagens de contêiner. Se você não vir a extensão compartilhada com sua organização, preencha o formulário a seguir.

Mapeie a imagem de contêiner dos fluxos de trabalho do GitHub para o registro de contêiner

  1. Adicione a ferramenta de mapeamento de imagens de contêiner ao fluxo de trabalho do MSDO:
name: Build and Map Container Image

on: [push, workflow_dispatch]

jobs:
  build:
    runs-on: ubuntu-latest
    # Set Permissions
    permissions:
      contents: read
      id-token: write
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: '3.8' 
    # Set Authentication to Container Registry of Choice
   - name: Azure Container Registry Login 
        uses: Azure/docker-login@v1 
        with:
        login-server: <containerRegistryLoginServer>
        username: ${{ secrets.ACR_USERNAME }}
        password: ${{ secrets.ACR_PASSWORD }}
    # Build and Push Image
    - name: Build and Push the Docker image 
        uses: docker/build-push-action@v2
        with:
          push: true
          tags: ${{ secrets.IMAGE_TAG }}
          file: Dockerfile
     # Run Mapping Tool in MSDO
    - name: Run Microsoft Security DevOps Analysis
      uses: microsoft/security-devops-action@latest
      id: msdo
      with:
        include-tools: container-mapping

Após criar uma imagem de contêiner em um fluxo de trabalho do GitHub e enviá-la por push para um registro, veja o mapeamento usando o Cloud Security Explorer:

  1. Entre no portal do Azure.

  2. Vá para Microsoft Defender para Nuvem>Cloud Security Explorer. Pode levar no máximo 4 horas para que o mapeamento da imagem de contêiner apareça no Cloud Security Explorer.

  3. Para ver o mapeamento básico, selecione Imagem de Contêiner>+>Enviadas por push por repositórios de código.

    Screenshot that shows basic container mapping.

  4. (Opcional) Selecione + em Imagens de Contêiner para adicionar outros filtros à sua consulta, como Tem vulnerabilidades para filtrar apenas imagens de contêiner com CVEs.

  5. Depois de executar a consulta, você verá o mapeamento entre o registro de contêiner e o fluxo de trabalho do GitHub. Selecione ... ao lado da borda para ver mais detalhes sobre onde o fluxo de trabalho do GitHub foi executado.

Veja a seguir um exemplo de uma consulta avançada que utiliza o mapeamento de imagens de contêiner. Começando com uma carga de trabalho do Kubernetes que está exposta à Internet, você pode rastrear todas as imagens de contêiner com CVEs de alta gravidade até o repositório do GitHub em que a imagem de contêiner foi criada, capacitando um profissional de segurança a iniciar um fluxo de trabalho de correção feita por desenvolvedores.

Screenshot that shows basic container mapping results.

Próximas etapas