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.
Connectez-vous au portail Azure.
Accédez à Microsoft Defender for Cloud>Gestion>Paramètres d’environnement>Intégrations.
Sélectionnez Ajouter une intégration, puis Ingestion DevOps.
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.
Activez le jeton dans la Configuration, puis créez les jetons.
Copiez chaque jeton. Vous ne pouvez pas les modifier ni les récupérer après avoir sélectionné OK.
Dans la table Intégrations, la nouvelle Ingestion s’affiche.
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
Après avoir correctement exécuté le pipeline, accédez à nouveau à Microsoft Defender for Cloud.
Dans le menu de Defender for Cloud, sélectionnez Cloud Security Explorer.
Sélectionnez la liste déroulante Sélectionner les types de ressources, puis DevOps et enfin Terminé.
Sélectionnez l’icône + pour ajouter de nouveaux critères de recherche.
Choisissez la liste déroulante Sélectionner une condition. Sélectionnez ensuite Données, puis Pushes.
Choisissez la liste déroulante Sélectionner les types de ressources. Sélectionnez ensuite Conteneurs, puis Images conteneur et enfin Terminé.
Sélectionnez l’étendue sélectionnée lors de la création de l’intégration dans les paramètres Environnement.
Sélectionnez Rechercher.
Affichez les résultats du pipeline vers le mappage des images.
Mettre en corrélation avec des conteneurs monitorés
Dans Cloud Security Explorer, entrez la requête suivante : Pipeline CI/CD ->Pipeline + Images conteneur ->Contenu dans + Registres de conteneurs (groupe).
Passez en revue les Noms de ressources pour voir le mappage de conteneur.