Partager via


Intégrer l’interface CLI de Defender for Cloud à des pipelines CI/CD

L’interface de ligne de commande (CLI) de Defender for Cloud est une application que vous pouvez utiliser dans des pipelines d’intégration continue et livraison continue (CI/CD). Elle exécute les outils d’analyse statique et connecte du code aux services cloud. Vous pouvez utiliser l’interface CLI de Defender for Cloud dans n’importe quel processus de génération pour analyser les vulnérabilités de sécurité d’une image à l’aide de scanneurs de sécurité intégrés. Elle envoie les résultats d’analyse vers le portail Defender for Cloud. Le Cloud Security Explorer peut ensuite accéder à l’image conteneur et à ses vulnérabilités.

Prérequis

  • Un abonnement Azure avec Defender for Cloud intégré. Si vous n’avez pas encore de compte Azure, créez-en un gratuitement.

  • L’un des outils de pipeline CI/CD suivants : Jenkins, BitBucket Pipelines, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps services, AWS CodeBuild

  • Pour Azure DevOps, l’extension Microsoft Security DevOps (MSDO) installée sur l’organisation Azure DevOps.

  • Le produit CSPM Defender est activé.

  • L’autorisation Administrateur de la sécurité pour créer le secret et l’ID client.

Programme d’installation

Dans les sections suivantes, nous expliquons comment récupérer les secrets et l’ID client, mettre à jour le script de pipeline CI/CD et ajouter des variables d’environnement au pipeline CI/CD.

Récupérer le jeton d’API

Pour pouvoir transmettre des données de sécurité de l’interface CLI de Defender for Cloud au back-end de Defender for Cloud, l’administrateur de la sécurité dans Defender for Cloud doit d’abord générer une clé API à partir de Defender for Cloud pour l’authentification.

Quand les jetons sont générés, l’administrateur de la sécurité sélectionne une étendue d’abonnement à associer au jeton. Les données faisant l’objet d’une transmission de type push « pushed » dans Defender for Cloud à partir de ce jeton sont étendues à l’abonnement auquel le jeton est associé. Ces jetons d’API sont immuables et peuvent uniquement être générés/supprimés.

À partir de là, l’administrateur de la sécurité peut transmettre en toute sécurité aux développeurs le jeton à ajouter au pipeline CI/CD.

  1. Connectez-vous au portail Azure.

  2. Accédez à Microsoft Defender for Cloud>Gestion>Paramètres d’environnement>Intégrations.

    Capture d’écran des paramètres d’environnement d’intégration dans Defender for Cloud.

  3. Sélectionnez Ajouter une intégration, puis Ingestion DevOps.

    Capture d’écran de la nouvelle option Ingestion DevOps.

  4. Entrez un nom descriptif pour le jeton, le tenant sélectionné stocke les informations sur le jeton. La clé secrète client est générée lorsque vous entrez une description pour le secret et la date d’expiration.

    Capture d’écran de l’ajout de l’intégration Ingestion DevOps.

  5. Activez le jeton dans la Configuration, puis créez les jetons.

    Capture d’écran de la création d’Ingestion DevOps et des jetons.

  6. Copiez chaque jeton. Vous ne pouvez pas les modifier ni les récupérer après avoir sélectionné OK.

    Capture d’écran de l’Ingestion DevOps correctement créée.

  7. Dans la table Intégrations, la nouvelle Ingestion s’affiche.

    Capture d’écran de la table Intégrations DevOps avec la nouvelle ingestion.

Mettre à jour un script de pipeline CI/CD

Chaque outil de pipeline CI/CD a une syntaxe différente. Ce code est un exemple de 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            

Variables de pipeline

Après avoir reçu les jetons en toute sécurité, le développeur doit configurer une variable d’environnement pour la clé. La variable d’environnement est transmise à l’interface CLI via le script de l’interpréteur de commandes que le développeur peut recevoir à partir de Curl ou en copiant manuellement le script de l’interpréteur de commandes dans son référentiel.

Nom Valeur
GDN_PUSH_TOKEN_CLIENT_ID <ID client>
GDN_PUSH_TOKEN_CLIENT_ID <ID client>
GDN_PUSH_TOKEN_CLIENT_SECRET <Clé secrète client>
GDN_PIPELINENAME bitbucket, jenkins, gcp, bamboo, circle, travis, teamcity, oci, aws
GDN_PUSH_TOKEN_TENANT_ID <ID de tenant>

Passer en revue des résultats dans Cloud Security Explorer

  1. Après avoir correctement exécuté le pipeline, accédez à nouveau à Microsoft Defender for Cloud.

  2. Dans le menu de Defender for Cloud, sélectionnez Cloud Security Explorer.

  3. Sélectionnez la liste déroulante Sélectionner les types de ressources, puis DevOps et enfin Terminé.

    Capture d'écran du pipeline CI/CD dans Cloud Security Explorer.

  4. Sélectionnez l’icône + pour ajouter de nouveaux critères de recherche.

    Capture d'écran de la nouvelle recherche dans Cloud Security Explorer.

  5. Choisissez la liste déroulante Sélectionner une condition. Sélectionnez ensuite Données, puis Pushes.

    Capture d’écran de la sélection de la condition Cloud Security Explorer.

  6. Choisissez la liste déroulante Sélectionner les types de ressources. Sélectionnez ensuite Conteneurs, puis Images conteneur et enfin Terminé.

    Capture d’écran de la sélection des images conteneur dans Cloud Security Explorer.

  7. Sélectionnez l’étendue sélectionnée lors de la création de l’intégration dans les paramètres Environnement.

    Capture d’écran de la sélection de l’étendue Cloud Security Explorer.

  8. Sélectionnez Rechercher.

    Capture d’écran de la recherche dans Cloud Security Explorer.

  9. Affichez les résultats du pipeline vers le mappage des images.

Mettre en corrélation avec des conteneurs monitorés

  1. Dans Cloud Security Explorer, entrez la requête suivante : Pipeline CI/CD ->Pipeline + Images conteneur ->Contenu dans + Registres de conteneurs (groupe).

  2. Passez en revue les Noms de ressources pour voir le mappage de conteneur.