Aller au contenu

Sast with trivy slides

Introduction à Trivy

Trivy est un outil "tout-en-un" développé par Aqua Security qui analyse : - Les images OCI / Docker - Les dépendances de projet (SCA) - L'Infrastructure as Code (IaC) : Kubernetes, Terraform, Dockerfile - Les secrets et données sensibles (clés API, tokens)

Trivy se distingue par : - Sa rapidité et son efficacité - Sa polyvalence (plusieurs types d'artefacts) - Sa facilité d'intégration dans les pipelines CI/CD


Fonctionnalités principales

  • Analyse de vulnérabilités : Identifie les failles connues (CVE)
  • Analyse IaC : Vérifie les fichiers de configuration pour des erreurs de sécurité
  • Secret Scanning : Détecte les secrets exposés (mots de passe, tokens)
  • Rapports de licence : Peut identifier les licences des dépendances avec un scanner dédié

Utilisation de Trivy

Trivy permet d'analyser différents types de ressources avec des commandes simples :

Analyser une image Docker

trivy image mydockerimage:latest

Analyser l'Infrastructure as Code (IaC)

trivy config /path/to/iac/files

Analyser un projet (SCA, Secrets, Config)

trivy fs --scanners vuln,secret,misconfig /path/to/project

Le rapport de scan liste :
- L'ID de la vulnérabilité (CVE) - Le package concerné - La version corrigée (si disponible) - Le niveau de sévérité (LOW, MEDIUM, HIGH, CRITICAL)


Intégration de Trivy dans GitLab CI/CD

Exemple de pipeline optimisé avec gestion du cache pour la base de données Trivy :

# .gitlab-ci.yml

trivy_scan:
  stage: scan
  image:
    name: aquasec/trivy:v0.64.1
    entrypoint: [""]
  variables:
    TRIVY_CACHE_DIR: ".trivycache/"
    TRIVY_NO_PROGRESS: "true"
    IMAGE_NAME: "myimage:latest"
  cache:
    paths:
      - .trivycache/
  script:
    # Mise à jour de la base puis scan de l'image
    - trivy image --download-db-only --cache-dir "$TRIVY_CACHE_DIR"
    - trivy image --cache-dir "$TRIVY_CACHE_DIR" --exit-code 1 --severity HIGH,CRITICAL "$IMAGE_NAME"