Trivy est un outil open-source de sécurité pour les conteneurs et les images Docker. Il permet de scanner les images Docker pour identifier les vulnérabilités de sécurité dans les packages et les dépendances. Trivy est particulièrement utile pour les équipes DevOps et de sécurité qui souhaitent intégrer des vérifications de sécurité dans leur processus de développement et de déploiement de conteneurs.
Présentation de Trivy
Qu'est-ce que Trivy ?
Trivy est un outil de sécurité qui vous permet de :
- Scanner les images Docker : Identifier les vulnérabilités de sécurité dans les packages et les dépendances.
- Analyser les fichiers de configuration : Détecter les mauvaises pratiques et les configurations non sécurisées.
- Générer des rapports détaillés : Produire des rapports détaillés sur les vulnérabilités identifiées.
- Intégrer dans les pipelines CI/CD : Automatiser les vérifications de sécurité dans le processus de développement.
Installation de Trivy
Pour installer Trivy, vous pouvez suivre les instructions spécifiques à votre système d'exploitation. Voici un exemple d'installation sur un système Linux :
Installation sur Linux
- Télécharger Trivy :
wget https://github.com/aquasecurity/trivy/releases/download/v0.24.0/trivy_0.24.0_Linux-64bit.tar.gz
- Décompresser l'archive :
tar -xvf trivy_0.24.0_Linux-64bit.tar.gz
- Déplacer le binaire Trivy dans un répertoire accessible :
sudo mv trivy /usr/local/bin/
- Vérifier l'installation :
trivy --version
Exemples de Ligne de Commande
Voici quelques exemples de commandes avancées pour utiliser Trivy.
Scanner une Image Docker
Pour scanner une image Docker spécifique :
trivy image my-docker-image:latest
Scanner un Fichier de Configuration Dockerfile
Pour scanner un fichier Dockerfile :
trivy config Dockerfile
Scanner un Fichier de Configuration Kubernetes
Pour scanner un fichier de configuration Kubernetes :
trivy config my-kubernetes-config.yaml
Générer un Rapport JSON
Pour générer un rapport JSON des vulnérabilités identifiées :
trivy image --format json --output trivy-report.json my-docker-image:latest
Générer un Rapport CSV
Pour générer un rapport CSV des vulnérabilités identifiées :
trivy image --format template --template "@contrib/csv.tpl" --output trivy-report.csv my-docker-image:latest
Ignorer des Vulnérabilités Spécifiques
Pour ignorer des vulnérabilités spécifiques, vous pouvez utiliser l'option --ignore-unfixed
:
trivy image --ignore-unfixed my-docker-image:latest
Configurer des Paramètres de Sécurité
Pour configurer des paramètres de sécurité spécifiques, vous pouvez utiliser un fichier de configuration YAML. Par exemple, pour ignorer certaines vulnérabilités ou définir des options spécifiques :
# trivy.yaml ignore-unfixed: true severity: - CRITICAL - HIGH
Ensuite, exécutez Trivy avec le fichier de configuration :
trivy image --config trivy.yaml my-docker-image:latest
Intégrer Trivy dans un Pipeline CI/CD
Pour intégrer Trivy dans un pipeline CI/CD, vous pouvez ajouter une étape de vérification de sécurité dans votre fichier de configuration CI/CD. Par exemple, pour GitHub Actions, vous pouvez ajouter une étape comme suit :
name: Trivy Security Scan on: [push, pull_request] jobs: trivy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Trivy run: | wget https://github.com/aquasecurity/trivy/releases/download/v0.24.0/trivy_0.24.0_Linux-64bit.tar.gz tar -xvf trivy_0.24.0_Linux-64bit.tar.gz sudo mv trivy /usr/local/bin/ - name: Run Trivy Scan run: | trivy image --format json --output trivy-report.json my-docker-image:latest - name: Upload Trivy Report uses: actions/upload-artifact@v2 with: name: trivy-report path: trivy-report.json
Conclusion
Trivy est un outil puissant pour scanner les images Docker et identifier les vulnérabilités de sécurité dans les packages et les dépendances. En utilisant Trivy, vous pouvez automatiser et simplifier les vérifications de sécurité dans votre processus de développement et de déploiement de conteneurs. Ces exemples de commandes et de configurations vous donnent un bon point de départ pour commencer à utiliser Trivy.