La Toolbox DevSecOps : Sécuriser vos images Docker avec Trivy
Guide pratique : Comment installer Trivy et détecter nos premières vulnérabilités en quelques commandes.

Ingénieur DevOps passionné par le Cloud, j'aime construire des solutions robustes tout autant que les raconter. Nexus DevOps, c'est mon espace de partage : j'y documente mes Labs avec simplicité et bonne humeur pour que l'on puisse tous progresser ensemble. Adepte de l'entraide et du 'Learning by doing', je suis toujours partant pour échanger sur une techno ou un nouveau défi !
I. Qu’est-ce que Trivy ?
Dans l’univers de The Mandalorian, aucune pièce d'armure ne quitte la Forge sans avoir été purifiée et martelée selon le Code. Déployer un conteneur sur Kubernetes sans vérification, ce serait comme partir au combat avec une armure en simple plastique : une erreur fatale. Trivy, c'est l'équivalent du regard de l'Armurière sur votre Beskar. Avant que votre image Docker ne soit intégrée à la "Grande Armée" de votre cluster, Trivy l'inspecte sous toutes les coutures. Il détecte les impuretés (les vulnérabilités) et les failles de conception dans vos fichiers de configuration.
"Le scan est le chemin."
Développé par Aqua Security, Trivy est devenu un standard du DevSecOps pour plusieurs raisons :
Polyvalence : Il ne scanne pas que les images Docker. Il analyse aussi tes fichiers YAML Kubernetes, tes dépôts Git, et même tes systèmes de fichiers locaux ;
Vitesse : Il est extrêmement rapide. En quelques secondes, il compare ton code à d'énormes bases de données de vulnérabilités (CVE).
Simplicité : Pas de base de données complexe à gérer ou de serveur lourd. C'est un simple binaire.
A quoi sert-il concrètement ?
Scanner les vulnérabilités (OS & Langages) : Il détecte si les paquets installés dans ton image Python (ou autre) ont des failles connues.
Détecter les erreurs de configuration (IaC) : Il te prévient si ton fichier
deployment.yamlpermet à un conteneur de s'exécuter en mode root ;Analyse de secrets : Il peut repérer si tu as accidentellement laissé un mot de passe ou une clé API dans ton code
II. Installation : La méthode robuste
Comme tu le sais, les méthodes par dépôt APT peuvent parfois être capricieuses. Pour garantir une installation qui fonctionne du premier coup nous allons utiliser le paquet officiel .deb.
Conseil : Quelle architecture choisir ?
Avant de télécharger le paquet, on doit connaître l'architecture de notre machine. Pour cela, on va lancer cette commande dans votre terminal :
uname -a
Interprétons le résultat retourné par la commande :
x86_64: Tu as un processeur 64-bit classique (Intel/AMD), Il te faudra choisir le fichiertrivy_X.X.X_Linux-64bit.deb;aarch64ouarm64: Tu es sur une puce ARM, il te faudra choisir le fichiertrivy_X.X.X_Linux-ARM64.deb
Si tu vois apparaître x86_64 comme sur ma machine sadhill (capture du dessus), c'est que tu es sur une architecture classique. C'est ce que nous utiliserons dans ce guide.
1. Téléchargement du paquet
On récupère la version stable directement depuis le GitHub officiel.
wget https://github.com/aquasecurity/trivy/releases/download/v0.59.1/trivy_0.59.1_Linux-64bit.deb
(Note : Penses à vérifier la dernière version sur le GitHub d'Aqua Security !)
2. Installation système
On utilise dpkg pour intégrer l'outil à nos binaires système :
sudo dpkg -i trivy_0.59.1_Linux-64bit.deb
3. Nettoyage
Une fois installé, le fichier .deb ne nous sert plus à rien. On fait place nette :
rm trivy_0.59.1_Linux-64bit.deb
4. Vérification
Si tout est bon, cette commande doit vous répondre avec fierté :
trivy --version
III. Utilisation de Trivy : Scanner une image
Rien de tel qu'une démonstration pour comprendre l'utilité de l'outil. En l’occurrence je vais demander à Trivy d’ausculter une image que l'on utilise parfois par défaut : python:latest.
trivy image python:latest
Ce qui apparaît : Une liste impressionnante de vulnérabilités classées par sévérité :
L'astuce de la Forge => Si tu lances Trivy sur une image comme
python:3.9-slimoupython:3.9-alpine, tu vois que le nombre de vulnérabilités chute drastiquement. C'est une des premières leçons du DevSecOps : réduire la surface d'attaque en choisissant des images de base minimalistes.
À l'aide, mon terminal déborde
-We are sinking, we're sinking !
-What are you thinking about ?
Une fois le scan lancé, ne panique pas si tu vois défiler des vagues de lignes à toute vitesse. C'est l'effet kisscool de Trivy.
Par défaut, l'outil est extrêmement exhaustif : il liste chaque bibliothèque, chaque dépendance et chaque vulnérabilité, même la plus minime.
Le problème ? Notre terminal a une mémoire limitée (le scrollback buffer). Si l'image scannée est lourde, le début du rapport —(là où se trouvent parfois les informations les plus cruciales ) disparaît avant même que nous n'ayons pu le lire.
Pour dompter ce flux d'informations et transformer ce "bruit" en données exploitables, je te propose trois méthodes pour reprendre le contrôle :
1. La méthode "Pagination" (Lecture tranquille)
La commande suivante utilise le symbole | (appelé "pipe") pour rediriger ce flux vers l'outil less , qui permet de parcourir le résultat page par page :
trivy image python:3.9-slim | less -R
Contrôle total : Tu peux naviguer ligne par ligne avec les flèches de ton clavier ou page par page avec la barre d'espace.
Mémoire préservée : Tu ne dépends plus de la capacité de ton terminal à stocker l'historique du texte.
Navigation simple : Appuie sur q à tout moment pour quitter le rapport et reprendre la main sur ton terminal.
2. La méthode "Filtre de sévérité" (Aller à l'essentiel)
Au lieu de tout voir, on ne demande à Trivy que ce qui est vraiment dangereux.
trivy image --severity HIGH,CRITICAL python:3.9-slim
Cela élimine les alertes "Low" et "Medium" qui remplissent souvent 80% de l'écran pour rien.
3. La méthode "Export" Pour une analyse approfondie
Parfois, lire un rapport de sécurité directement dans le terminal n'est pas le plus confortable. Pour prendre le temps d'analyser chaque faille ou pour archiver tes résultats, tu peux exporter le rapport complet dans un fichier texte :
trivy image python:3.9-slim > resultat_trivy.txt
Tu pourras ensuite ouvrir ce fichier avec n'importe quel éditeur de texte (VS Code, Nano, ou même ton bloc-notes) pour effectuer des recherches précises.
Pour les besoins plus avancés (automatisation, rapports visuels), Trivy supporte aussi les exports au format JSON ou HTML, mais le format texte reste notre meilleur allié pour un diagnostic rapide.
Conclusion
Ton outil est désormais en place et tu es prêt à détecter les failles avant qu'elles ne deviennent des brèches.
La suite du chemin ? Dans le prochain article, nous ne nous contenterons plus de scanner manuellement. Nous allons intégrer ce rituel directement dans nos pipelines pour que plus aucune vulnérabilité ne puisse franchir les portes de notre cluster Kubernetes.
« Scanner ses images avec Trivy, c'est comme porter un casque en Beskar : ça n'empêche pas les problèmes d'exister, mais ça évite de perdre la tête au premier tir de blaster ! Alors avant de pousser ton code, n'oublie jamais... Telle est la Voie (du scan) ! »
— Nexus l'Armurier, 2026







