Condividi tramite


Integrare Defender per il cloud'interfaccia della riga di comando con pipeline CI/CD

Defender per il cloud'interfaccia della riga di comando (CLI) è un'applicazione che è possibile usare nelle pipeline di integrazione continua e distribuzione continua (CI/CD). Esegue strumenti di analisi statici e connette il codice ai servizi cloud. È possibile usare Defender per il cloud interfaccia della riga di comando in qualsiasi processo di compilazione per analizzare le immagini per individuare le vulnerabilità di sicurezza con scanner di sicurezza predefiniti. Invia i risultati dell'analisi al portale di Defender per il cloud. Cloud Security Explorer può quindi accedere all'immagine del contenitore e alle relative vulnerabilità.

Prerequisiti

  • Una sottoscrizione di Azure con Defender per il cloud di cui è stato eseguito l'onboarding. Se non si ha già un account Azure, crearne uno gratuitamente.

  • Uno degli strumenti di pipeline CI/CD seguenti: Jenkins, BitBucket Pipelines, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps services, AWS CodeBuild

  • Per Azure DevOps, l'estensione Microsoft Security DevOps (MSDO) installata nell'organizzazione Azure DevOps.

  • Defender CSPM abilitato.

  • Autorizzazione amministratore della sicurezza per creare l'ID client e il segreto.

Attrezzaggio

Nelle sezioni seguenti viene illustrato come recuperare l'ID client e i segreti, aggiornare lo script della pipeline CI/CD e aggiungere variabili di ambiente alla pipeline CI/CD.

Recuperare il token API

Per consentire il passaggio dei dati di sicurezza dall'interfaccia della riga di comando di Defender per il cloud al back-end Defender per il cloud, l'amministratore della sicurezza in Defender per il cloud deve prima generare una chiave API da Defender per il cloud per l'autenticazione.

Quando vengono generati token, l'amministratore della sicurezza seleziona un ambito di sottoscrizione da associare al token. I dati di cui viene eseguito il push in Defender per il cloud da questo token hanno come ambito la sottoscrizione a cui è associato il token. Questi token API non sono modificabili e possono essere generati/eliminati solo.

Da qui, l'amministratore della sicurezza deve passare in modo sicuro il token agli sviluppatori da aggiungere alla pipeline CI/CD.

  1. Accedere al portale di Azure.

  2. Passare a Microsoft Defender per il cloud> Gestione>delle impostazioni>dell'ambiente.

    Screenshot delle impostazioni dell'ambiente di integrazione in Defender per il cloud.

  3. Selezionare Aggiungi integrazione e quindi DevOps Inserimento.

    Screenshot della nuova opzione di inserimento DevOps.

  4. Immettere un nome descrittivo per il token, il tenant selezionato archivia le informazioni sul token. Il segreto client viene generato quando si immette una descrizione per il segreto e la data di scadenza.

    Screenshot dell'aggiunta dell'integrazione di Inserimento DevOps.

  5. Abilitare il token nella configurazione e creare i token.

    Screenshot della creazione dell'inserimento devOps e della creazione di token.

  6. Copiare ogni token. Non possono essere modificati o recuperati dopo aver selezionato OK.

    Screenshot della corretta creazione dell'inserimento devOps.

  7. Nella tabella Integrazioni viene visualizzato il nuovo inserimento.

    Screenshot della tabella DevOps Integrations con il nuovo inserimento.

Aggiornare lo script della pipeline CI/CD

Ogni strumento pipeline CI/CD ha una sintassi diversa. Questo codice è un esempio di 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            

Variabili della pipeline

Dopo aver ricevuto in modo sicuro i token, lo sviluppatore deve configurare una variabile di ambiente per la chiave. La variabile di ambiente viene passata all'interfaccia della riga di comando tramite lo script della shell che lo sviluppatore può ricevere da curl o copiando manualmente lo script della shell nel repository.

Nome Valore
GDN_PUSH_TOKEN_CLIENT_ID <ID client>
GDN_PUSH_TOKEN_CLIENT_ID <ID client>
GDN_PUSH_TOKEN_CLIENT_SECRET <Segreto client>
GDN_PIPELINENAME bitbucket, jenkins, gcp, bamboo, circle, travis, teamcity, oci, aws
GDN_PUSH_TOKEN_TENANT_ID <ID tenant>

Esaminare i risultati in Cloud Security Explorer

  1. Dopo aver eseguito correttamente la pipeline, passare di nuovo a Microsoft Defender per il cloud.

  2. Nel menu Defender per il cloud selezionare Cloud Security Explorer.

  3. Selezionare l'elenco a discesa Seleziona tipi di risorse, selezionare DevOps e quindi fare clic su Fine.

    Screenshot della pipeline CI/CD in Cloud Security Explorer.

  4. Selezionare l'icona + per aggiungere nuovi criteri di ricerca.

    Screenshot della nuova ricerca in Cloud Security Explorer.

  5. Scegliere l'elenco a discesa Seleziona condizione . Selezionare Quindi Dati e quindi Push.

    Screenshot della selezione della condizione Cloud Security Explorer.

  6. Scegliere l'elenco a discesa Seleziona tipi di risorse. Selezionare quindi Contenitori, quindi Immagini contenitore e quindi Fine.

    Screenshot della selezione delle immagini del contenitore in Cloud Security Explorer.

  7. Selezionare l'ambito selezionato durante la creazione dell'integrazione in Impostazioni ambiente.

    Screenshot della selezione dell'ambito Cloud Security Explorer.

  8. Seleziona Cerca.

    Screenshot della ricerca in Cloud Security Explorer.

  9. Vedere i risultati della pipeline al mapping delle immagini.

Correlare con i contenitori monitorati

  1. In Cloud Security Explorer immettere la query seguente: PIPELINE CI/CD -Pipeline + Container Images ->>Contained in + Container registers (group).

  2. Esaminare i nomi delle risorse per visualizzare il mapping dei contenitori.