Condividi tramite


Eseguire il mapping delle immagini del contenitore dal codice al cloud

Quando una vulnerabilità viene identificata in un'immagine del contenitore archiviata in un registro contenitori o in esecuzione in un cluster Kubernetes, può essere difficile per un professionista della sicurezza risalire alla pipeline CI/CD che ha creato prima l'immagine del contenitore e identificare un proprietario della correzione dello sviluppatore. Con le funzionalità di sicurezza DevOps in Microsoft Defender Cloud Security Posture Management (CSPM), è possibile eseguire il mapping delle applicazioni native del cloud dal codice al cloud per avviare facilmente i flussi di lavoro di correzione degli sviluppatori e ridurre il tempo necessario per correggere le vulnerabilità nelle immagini del contenitore.

Prerequisiti

  • È stato eseguito l’onboarding di un account Azure con Defender per il cloud. Se non si ha già un account Azure, crearne uno gratuitamente.

  • Per Azure DevOps:

    • L'estensione Microsoft Security DevOps (MSDO) deve essere installata nell'organizzazione Azure DevOps.

    • Assicurarsi che l'estensione Microsoft Defender per DevOps sia condivisa e installata in tutte le organizzazioni di Azure DevOps connesse. Per i connettori appena eseguiti, questa operazione verrà eseguita automaticamente. Questa estensione inserisce automaticamente le attività in tutte le pipeline di Azure per raccogliere i dati per il mapping dei contenitori.

    • È necessario usare le pipeline YAML perché le pipeline classiche non sono più supportate.

  • Per GitHub:

    • L'azione Microsoft Security DevOps (MSDO) deve essere configurata nei flussi di lavoro di GitHub.

    • Il flusso di lavoro GitHub deve avere le autorizzazioni "id-token: write" per la federazione con Defender per il cloud. Per un esempio, vedere questo YAML.

  • Defender CSPM abilitato.

  • Le immagini del contenitore devono essere compilate usando Docker e il client Docker deve essere in grado di accedere al server Docker durante la compilazione.

Eseguire il mapping dell'immagine del contenitore dalle pipeline di Azure DevOps al registro contenitori

Dopo aver compilato un'immagine del contenitore in una pipeline CI/CD di Azure DevOps ed averne eseguito il push in un registro, vedere il mapping usando Cloud Security Explorer:

  1. Accedere al portale di Azure.

  2. Andare a Microsoft Defender per il cloud>Cloud Security Explorer. La visualizzazione del mapping dell'immagine del contenitore in Cloud Security Explorer può impiegare fino a un massimo di 4 ore.

  3. Per visualizzare il mapping di base, selezionare Immagini del contenitore>+>Push dai repository di codici.

    Screenshot che mostra come trovare il mapping di base dei contenitori.

  4. (Facoltativo) Selezionare + per Immagini del contenitore per aggiungere altri filtri alla query, ad esempio Presenta vulnerabilità per filtrare solo le immagini del contenitore con CVE.

  5. Dopo aver eseguito la query, verrà visualizzato il mapping tra registro contenitori e la pipeline di Azure DevOps. Selezionare ... accanto alla rete perimetrale per visualizzare altri dettagli sulla posizione in cui è stata eseguita la pipeline di Azure DevOps.

    Screenshot che mostra una query avanzata per i risultati del mapping dei contenitori.

Di seguito è riportato un esempio di query avanzata che usa il mapping delle immagini del contenitore. A partire da un carico di lavoro Kubernetes esposto a Internet, è possibile tracciare tutte le immagini del contenitore con CVE con gravità elevata nella pipeline di Azure DevOps in cui è stata compilata l'immagine del contenitore, consentendo a un professionista della sicurezza di avviare un flusso di lavoro di correzione degli sviluppatori.

Screenshot che mostra i risultati di base del mapping del contenitore.

Nota

Se l'organizzazione di Azure DevOps aveva creato il connettore Azure DevOps prima del 15 novembre 2023, andare a Impostazioni organizzazione>Estensioni > Condivise e installare l'elemento Decorator di mapping delle immagini del contenitore. Se l'estensione condivisa con l'organizzazione non viene visualizzata, compilare il modulo seguente.

Eseguire il mapping dell'immagine del contenitore dai flussi di lavoro di GitHub al registro contenitori

  1. Assicurarsi di aver eseguito l'onboarding di un connettore GitHub in Defender for Cloud.

  2. Eseguire il flusso di lavoro MSDO seguente:

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. 
    # The example below is for Azure Container Registry. Amazon Elastic Container Registry and Google Artifact Registry are also supported. 
   - 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

Dopo aver compilato un'immagine del contenitore in un flusso di lavoro GitHub ed averne eseguito il push in un registro, vedere il mapping usando Cloud Security Explorer:

  1. Accedere al portale di Azure.

  2. Andare a Microsoft Defender per il cloud>Cloud Security Explorer. La visualizzazione del mapping dell'immagine del contenitore in Cloud Security Explorer può impiegare fino a un massimo di 4 ore.

  3. Per visualizzare il mapping di base, selezionare Immagini del contenitore>+>Push dai repository di codici.

    Screenshot che mostra il mapping dei contenitori di base.

  4. (Facoltativo) Selezionare + per Immagini del contenitore per aggiungere altri filtri alla query, ad esempio Presenta vulnerabilità per filtrare solo le immagini del contenitore con CVE.

  5. Dopo aver eseguito la query, verrà visualizzato il mapping tra il registro contenitori e il flusso di lavoro di GitHub. Selezionare ... accanto al bordo per visualizzare altri dettagli sulla posizione in cui è stato eseguito il flusso di lavoro di GitHub.

Di seguito è riportato un esempio di query avanzata che usa il mapping delle immagini del contenitore. A partire da un carico di lavoro Kubernetes esposto a Internet, è possibile tracciare tutte le immagini del contenitore con CVE con gravità elevata nel repository GitHub in cui è stata compilata l'immagine del contenitore, consentendo a un professionista della sicurezza di avviare un flusso di lavoro di correzione dello sviluppatore.

Screenshot che mostra i risultati di base del mapping del contenitore.

Passaggi successivi