La sécurité des conteneurs est cruciale pour toute infrastructure modernisée. Trivy est un scanner de vulnérabilités Open Source qui analyse les images Docker, les manifestes Kubernetes et plus encore, pour détecter les failles de sécurité et proposer des correctifs.
Prérequis
- Docker installé (version ≥20.10)
- Kubectl configuré pour votre cluster Kubernetes
- CI/CD (GitLab CI, GitHub Actions, Jenkins…)
Installation de Trivy
Debian / Ubuntu
sudo apt install wget gnupg -y
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | sudo tee /etc/apt/sources.list.d/trivy.list
sudo apt update && sudo apt install trivy -y
RHEL / CentOS / Rocky
sudo tee /etc/yum.repos.d/trivy.repo << 'EOF'
[trivy]
name=Trivy repository
baseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://aquasecurity.github.io/trivy-repo/rpm/public.key
EOF
sudo yum install trivy -y
Scan d’une image Docker
trivy image myapp:latest
- Résumé des vulnérabilités par sévérité (CRITICAL, HIGH, MEDIUM, LOW)
- Détails et CVE associés
Intégration CI/CD
Exemple avec GitLab CI
stages:
- scan
trivy_scan:
stage: scan
image: aquasec/trivy:latest
script:
- trivy image --exit-code 1 --severity CRITICAL,HIGH myapp:latest
Exemple avec GitHub Actions
name: trivy-scan
on: [push]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Trivy scan
uses: aquasec/trivy-action@master
with:
image-ref: 'myapp:latest'
severity: 'CRITICAL,HIGH'
exit-code: '1'
Scan de manifestes Kubernetes
Scan de fichiers YAML locaux
trivy config ./deploy/
Scan d'un cluster Kubernetes
trivy k8s --report summary cluster
- Analyse des images référencées dans les manifestes
- Détection des vulnérabilités et des risques de configuration (misconfigurations)
Automatisation et reporting
- Slack notifications via Webhook
- Génération de rapports HTML/JSON
- Gatekeeping : refus des builds en cas de vulnérabilités critiques
Bonnes pratiques
- Mettre à jour fréquemment la base de données de vulnérabilités (
trivy image --download-db-only) - Scanner à chaque build et deployment
- Surveiller les nouvelles CVE et corriger rapidement
- Utiliser des policies avec OPA/Gatekeeper pour renforcer la sécurité
Avantages
- Simple à installer et à utiliser
- Supporte Docker, Kubernetes, fichiers système, Git, etc.
- Rapide et léger
- Communauté active et mises à jour régulières
Limites
- Dépendance à la base de vulnérabilités de GitHub
- Faux positifs possibles
- Pas de remédiation automatique (nécessite scripts ou outils complémentaires)
Compléments
Améliorez votre sécurité conteneur en combinant Trivy avec Harbor pour une registry sécurisée, le hardening Docker, et OPA Gatekeeper pour bloquer les images vulnérables. Intégrez-le dans votre pipeline CI/CD GitLab pour une automatisation complète.
Conclusion
Intégrer Trivy dans votre pipeline DevSecOps vous permet de détecter rapidement les vulnérabilités, de renforcer la sécurité de vos conteneurs et de réduire les risques avant déploiement en production.


