Trivy

Scanner complet pour les vulnérabilités et mauvaises configurations dans les images de conteneurs, systèmes de fichiers, dépôts git et Infrastructure-as-Code. Comprehensive scanner for vulnerabilities and misconfigurations in container images, filesystems, git repos, and Infrastructure-as-Code.

↗ https://trivy.dev

Overview

Trivy is an all-in-one scanner covering OS package and language-dependency vulnerabilities, container image misconfigurations, exposed secrets, and IaC issues (Terraform, Kubernetes manifests, Dockerfiles, CloudFormation). For cloud and DevSecOps-focused engagements it’s a fast way to check whether a target’s images or infrastructure code carry known CVEs or insecure defaults before they ever hit production.

Common Usage

Scan a container image for OS + library vulnerabilities

trivy image nginx:1.21

Scan a local filesystem/project directory (deps + secrets)

trivy fs ./project

Scan a git repository directly (clones and scans)

trivy repo https://github.com/example/app

Scan Kubernetes manifests / Terraform for misconfigurations

trivy config ./infra/

Scan a running Kubernetes cluster

trivy k8s --report summary cluster

Only show HIGH/CRITICAL findings

trivy image --severity HIGH,CRITICAL nginx:1.21

Secret & IaC Scanning

Scan for hardcoded secrets (API keys, private keys, tokens)

trivy fs --scanners secret ./project

Scan Dockerfile for security best-practice violations

trivy config Dockerfile

Output in SARIF for CI pipeline integration

trivy image --format sarif --output results.sarif nginx:1.21

Tips

  • trivy image pulls a maintained vulnerability DB on first run — cache it (--cache-dir) in CI to avoid repeated downloads.
  • Combine --scanners vuln,secret,config to run all checks in a single pass.
  • Use --exit-code 1 in CI to fail the build when findings above a severity threshold are present.
Help / Man page
Usage:
  trivy [command]

Available Commands:
  image       Scan a container image
  fs          Scan a filesystem
  repo        Scan a remote git repository
  config      Scan IaC configuration files (Terraform, K8s, Dockerfile...)
  k8s         Scan a Kubernetes cluster
  sbom        Scan an SBOM for vulnerabilities
  rootfs      Scan a container's root filesystem

Flags:
  --severity strings     Filter by severity (UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL)
  --scanners strings     Scanners to enable (vuln,secret,config,license)
  --format string        Output format (table, json, sarif, cyclonedx, spdx)
  --output string        Write results to file
  --exit-code int        Exit code when findings are detected
  --ignore-unfixed        Skip vulnerabilities without an available fix
  --cache-dir string       Directory for the vulnerability DB cache

Vue d’ensemble

Trivy est un scanner tout-en-un couvrant les vulnérabilités des paquets OS et des dépendances applicatives, les mauvaises configurations d’images de conteneurs, les secrets exposés, et les problèmes IaC (Terraform, manifests Kubernetes, Dockerfiles, CloudFormation). Pour les missions orientées cloud et DevSecOps, c’est un moyen rapide de vérifier si les images ou le code d’infrastructure d’une cible contiennent des CVE connues ou des configurations par défaut non sécurisées avant qu’elles n’atteignent la production.

Utilisation courante

# Scanner une image de conteneur pour les vulnérabilités OS + bibliothèques
trivy image nginx:1.21

# Scanner un système de fichiers/répertoire de projet local (dépendances + secrets)
trivy fs ./project

# Scanner directement un dépôt git (clone et scanne)
trivy repo https://github.com/example/app

# Scanner des manifests Kubernetes / Terraform pour des mauvaises configurations
trivy config ./infra/

# Scanner un cluster Kubernetes en cours d'exécution
trivy k8s --report summary cluster

# N'afficher que les findings HIGH/CRITICAL
trivy image --severity HIGH,CRITICAL nginx:1.21

Scan de secrets et IaC

# Scanner à la recherche de secrets codés en dur (clés API, clés privées, tokens)
trivy fs --scanners secret ./project

# Scanner un Dockerfile pour des violations des bonnes pratiques de sécurité
trivy config Dockerfile

# Sortie au format SARIF pour l'intégration dans un pipeline CI
trivy image --format sarif --output results.sarif nginx:1.21

Conseils

  • trivy image télécharge une base de vulnérabilités maintenue au premier lancement : la mettre en cache (--cache-dir) en CI pour éviter les téléchargements répétés.
  • Combiner --scanners vuln,secret,config pour lancer toutes les vérifications en une seule passe.
  • Utiliser --exit-code 1 en CI pour faire échouer le build lorsque des findings au-dessus d’un seuil de sévérité sont présents.
Aide / Page de manuel
Usage:
  trivy [command]

Available Commands:
  image       Scan a container image
  fs          Scan a filesystem
  repo        Scan a remote git repository
  config      Scan IaC configuration files (Terraform, K8s, Dockerfile...)
  k8s         Scan a Kubernetes cluster
  sbom        Scan an SBOM for vulnerabilities
  rootfs      Scan a container's root filesystem

Flags:
  --severity strings     Filter by severity (UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL)
  --scanners strings     Scanners to enable (vuln,secret,config,license)
  --format string        Output format (table, json, sarif, cyclonedx, spdx)
  --output string        Write results to file
  --exit-code int        Exit code when findings are detected
  --ignore-unfixed        Skip vulnerabilities without an available fix
  --cache-dir string       Directory for the vulnerability DB cache