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 :

  1. Configurez les identifiants Datadog
  2. Installez le Datadog Security CLI dans votre pipeline CI/CD.
  3. Consultez les résultats d’analyse sur la page Cloud Security Vulnerabilities
  4. Optionnellement, exécutez des analyses locales pendant le développement pour une itération plus rapide

Configurez les identifiants Datadog

Pour télécharger les résultats d’analyse vers Datadog, configurez les variables d’environnement suivantes dans votre pipeline CI :

NomDescriptionRequisPar défaut
DD_API_KEYVotre clé Datadog API. Cette clé est créée par votre organisation Datadog et doit être stockée en tant que secret.Oui
DD_APP_KEYVotre 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_SITELe site Datadog vers lequel envoyer les informations. Votre site Datadog est .Nondatadoghq.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
Sortie du Datadog Security CLI montrant les résultats de l'analyse de vulnérabilité pour une image de conteneur

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
La page Cloud Security Vulnerabilities Findings

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 :

Configurer des seuils de gravité

# 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

Formats de sortie

# Output results in JSON format
datadog-security-cli image myapp:latest --output json
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 :

  1. Vérifiez que vos DD_API_KEY et DD_APP_KEY sont correctement définis.
  2. Assurez-vous que la clé d’application dispose de la portée appsec_vm_read.
  3. 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 :

  1. Vérifiez que l’image existe localement : docker images.
  2. Utilisez le nom complet de l’image, y compris le registre (le cas échéant).
  3. 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 :

  1. Vérifiez que votre environnement CI peut atteindre le site Datadog.
  2. Vérifiez les restrictions de proxy ou de pare-feu.
  3. 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