Analyse d'images de conteneurs dans la CI/CD
Présentation
La sécurité cloud vous permet d’analyser les images de conteneur à la recherche de vulnérabilités pendant la CI/CD, avant que les images ne soient déployées en production. En intégrant l’analyse des vulnérabilités directement dans vos pipelines, vous pouvez détecter et corriger les problèmes de sécurité tôt dans le cycle de vie du développement.
Pour prendre en charge l’analyse d’images de conteneurs basée sur la CI/CD, Datadog fournit le Datadog Security CLI. La CLI est conçue pour être exécutée directement dans vos jobs CI, vous donnant un contrôle total sur le moment et la manière dont les analyses sont effectuées dans le cadre de vos pipelines.
Remarque : Pour la gestion des vulnérabilités dans les environnements de production, consultez Cloud Security Vulnerabilities.
Démarrez
Pour commencer avec l’analyse d’images de conteneurs dans la CI/CD :
- Configurez les identifiants Datadog
- Installez le Datadog Security CLI dans votre pipeline CI/CD.
- Consultez les résultats d’analyse sur la page Cloud Security Vulnerabilities
- Optionnellement, exécutez des analyses locales pendant le développement pour une itération plus rapide
Pour télécharger les résultats d’analyse vers Datadog, configurez les variables d’environnement suivantes dans votre pipeline CI :
| Nom | Description | Requis | Par défaut |
|---|
DD_API_KEY | Votre clé Datadog API. Cette clé est créée par votre organisation Datadog et doit être stockée en tant que secret. | Oui | |
DD_APP_KEY | Votre clé d’application Datadog. Cette clé, créée par votre organisation Datadog, doit inclure la portée appsec_vm_read et être stockée en tant que secret. | Oui | |
DD_SITE | Le site Datadog vers lequel envoyer les informations. Votre site Datadog est . | Non | datadoghq.com |
Stockez vos clés d'API et d'application en tant que secrets dans votre plateforme CI/CD pour protéger les identifiants sensibles.
Install the Datadog Security CLI
Le Datadog Security CLI est disponible à l’installation depuis les dépôts de paquets Datadog. Vous pouvez installer le Datadog Security CLI sur les systèmes Debian/Ubuntu, Red Hat/CentOS et macOS. L’analyse d’images de conteneurs fonctionne avec toutes les principales plateformes CI/CD, notamment :
- GitHub Actions
- GitLab CI/CD
- Azure DevOps
- Autres fournisseurs CI capables d’exécuter des scripts shell
L’approche par script personnalisable vous donne un contrôle total sur le moment et la manière dont les analyses sont exécutées dans vos pipelines. Choisissez votre méthode d’installation ci-dessous.
Installer depuis le dépôt de paquets
# Import Datadog APT signing key
DD_APT_KEY_URL="https://keys.datadoghq.com/DATADOG_APT_KEY_CURRENT.public"
curl -fsSL "$DD_APT_KEY_URL" | sudo gpg --dearmor -o /usr/share/keyrings/datadog-archive-keyring.gpg
# Add Datadog repository
echo "deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://apt.datadoghq.com/ stable datadog-security-cli" \
| sudo tee /etc/apt/sources.list.d/datadog-security-cli.list
# Update package list and install
sudo apt update
sudo apt install datadog-security-cli
Installer depuis le dépôt de paquets
# Import Datadog RPM signing key
sudo rpm --import https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
# Add Datadog repository
sudo tee /etc/yum.repos.d/datadog-security-cli.repo > /dev/null <<'EOF'
[datadog-security-cli]
name=Datadog Security CLI
baseurl=https://yum.datadoghq.com/stable/datadog-security-cli/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
repo_gpgcheck=1
EOF
# Install the CLI
sudo yum install datadog-security-cli
Installer avec Homebrew
# Install via Homebrew
brew install --cask datadog-security-cli
Exécuter votre première analyse
Après avoir installé le Datadog Security CLI, configurez vos identifiants Datadog et analysez une image de conteneur :
# Configure Datadog credentials
export DD_API_KEY=<your_api_key>
export DD_APP_KEY=<your_app_key>
export DD_SITE=
# Scan your container image
datadog-security-cli image myimage:tag
Le Datadog Security CLI affiche les résultats d’analyse directement dans votre terminal, en indiquant :
- Image information (nom, digest, système d’exploitation)
- Nombre total de vulnérabilités trouvées
- Severity breakdown (Critique, Haute, Moyenne, Faible)
- Tableau détaillé des vulnérabilités avec les identifiants CVE, les paquets affectés et les correctifs disponibles
Afficher les résultats d’analyse
Après avoir exécuté votre première analyse, les résultats apparaissent sur la page Cloud Security Vulnerabilities en quelques minutes. Vous pouvez effectuer les opérations suivantes :
- Filtrer par type de ressource : Voir les vulnérabilités spécifiques aux images de conteneur analysées dans l’intégration continue/le déploiement continu
- Prioriser par gravité : Concentrez-vous d’abord sur les vulnérabilités critiques et de haute gravité
- Suivre la remédiation : Attribuez les vulnérabilités aux membres de l’équipe et suivez la résolution
- Configurer les notifications : Soyez alerté lorsque de nouvelles vulnérabilités critiques sont détectées
Exécuter des analyses locales pendant le développement
Pour une itération plus rapide avant de valider en CI, installez le Datadog Security CLI localement en utilisant les mêmes méthodes d’installation décrites dans la section d’installation ci-dessus.
Effectuer une analyse locale sans résultats permanents
Lors de tests locaux, analysez les images sans télécharger les résultats vers Datadog en utilisant l’indicateur --no-persist :
# Scan locally without sending results to Datadog
datadog-security-cli image myapp:latest --no-persist
Ceci est utile pour :
- Tester la fonctionnalité de l’interface de ligne de commande sans affecter vos données Datadog
- Valider les images de conteneur pendant le développement local
- Itérer rapidement sur les builds d’image avant de valider dans l’intégration continue
Scan options
La CLI Datadog Security prend en charge diverses options pour personnaliser vos analyses d’images de conteneur :
# Fail the build if critical vulnerabilities are found
datadog-security-cli image myapp:latest --fail-on critical
# Fail on high or critical vulnerabilities
datadog-security-cli image myapp:latest --fail-on high
# Output results in JSON format
datadog-security-cli image myapp:latest --output json
Lier un Dockerfile à des vulnérabilités
La liaison d'un Dockerfile aux vulnérabilités n'est prise en charge que lors d'une analyse avec le Datadog Security CLI dans un pipeline CI/CD. Cette fonctionnalité n'est pas disponible pour les images analysées par Datadog Agent ou via une analyse sans agent.
Pour permettre à Datadog de lier les vulnérabilités détectées au code source (Dockerfile), vous devez inclure des annotations d’image OCI spécifiques lors de la construction de votre image de conteneur.
Cela permet à Datadog de :
- Afficher un aperçu du Dockerfile directement dans le panneau des vulnérabilités des images de conteneur
- Activer la remédiation basée sur la source, vous aidant à identifier et à corriger les problèmes dans leur contexte
Ces annotations fournissent les métadonnées nécessaires pour associer une image analysée à son dépôt, son commit et son chemin de Dockerfile correspondants.
Annotations requises
Ajoutez les annotations suivantes à votre image au moment de la construction :
org.opencontainers.image.source
L’URL du dépôt (par exemple, https://github.com/org/repo)
org.opencontainers.image.revision
Le SHA du commit utilisé pour construire l’image
com.datadoghq.image.source_path
Le chemin vers le Dockerfile dans le dépôt (par exemple, Dockerfile ou docker/Dockerfile)
Annotations facultatives
Ces annotations aident Datadog à améliorer les suggestions de remédiation pour les images de base :
org.opencontainers.image.base.name
Le nom de l’image de base (par exemple, ubuntu:22.04)
org.opencontainers.image.base.digest
Le digest de l’image de base
Pour plus de détails, consultez la documentation sur les annotations de la spécification d’image OCI.
Exemple
Using docker build
Les annotations sont la méthode privilégiée. Les étiquettes sont également prises en charge en tant que solution de secours.
docker build \
--annotation org.opencontainers.image.source="https://github.com/org/repo" \
--annotation org.opencontainers.image.revision="$(git rev-parse HEAD)" \
--annotation com.datadoghq.image.source_path="Dockerfile" \
-t myapp:latest .
Using the Datadog Security CLI
Comme alternative à l’ajout manuel d’annotations, le Datadog Security CLI peut injecter les métadonnées requises directement lors de l’analyse, en utilisant le flag --dockerfile :
datadog-security-cli image myapp:latest --dockerfile ./Dockerfile
Dépannage
Erreurs d’authentification
Si vous rencontrez des erreurs d’authentification :
- Vérifiez que vos
DD_API_KEY et DD_APP_KEY sont correctement définis. - Assurez-vous que la clé d’application dispose de la portée
appsec_vm_read. - Vérifiez que votre
DD_SITE correspond au site de votre organisation Datadog.
Erreurs d’image introuvable
Si le Datadog Security CLI ne parvient pas à trouver votre image :
- Vérifiez que l’image existe localement :
docker images. - Utilisez le nom complet de l’image, y compris le registre (le cas échéant).
- Assurez-vous que l’image est construite avant l’analyse.
Problèmes de connectivité réseau
Si les analyses échouent en raison de problèmes réseau :
- Vérifiez que votre environnement CI peut atteindre le site Datadog.
- Vérifiez les restrictions de proxy ou de pare-feu.
- Assurez-vous que les connexions HTTPS sortantes sont autorisées.
Pour obtenir de l’aide supplémentaire, consultez le Cloud Security troubleshooting guide ou contactez le support Datadog.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: