← retour aux outils back to tools

# 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