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.


Mise en garde concernant l'utilisation des outils de cybersécurité

L'utilisation des outils de cybersécurité présentés sur ce site est soumise à des considérations légales et éthiques importantes. Avant d'utiliser ces outils, nous vous encourageons à prendre en compte les points suivants :

- Cadre légal : L'utilisation de certains outils de cybersécurité peut être réglementée par la loi dans votre pays ou région. Il est de votre responsabilité de vous informer sur les lois en vigueur concernant la cybersécurité, la protection des données et la vie privée. L'utilisation non autorisée de ces outils peut entraîner des poursuites judiciaires et des sanctions pénales.

- Consentement : Assurez-vous d'obtenir le consentement explicite des parties concernées avant d'utiliser des outils qui pourraient intercepter, surveiller ou analyser des données. Le respect de la vie privée des individus est primordial.

- Utilisation éthique : Les outils de cybersécurité doivent être utilisés de manière éthique et responsable. Ils ne doivent pas être employés à des fins malveillantes, telles que le piratage, le vol de données ou toute autre activité illégale.

- Responsabilité : En utilisant ces outils, vous reconnaissez que vous le faites à vos propres risques. Nous ne saurions être tenus responsables des conséquences résultant de l'utilisation de ces outils, y compris, mais sans s'y limiter, les dommages matériels, les pertes de données ou les poursuites judiciaires.

- Formation et expertise : Il est recommandé de suivre une formation adéquate et de posséder les compétences nécessaires avant d'utiliser des outils de cybersécurité. Une mauvaise utilisation peut entraîner des résultats indésirables et des risques pour la sécurité.

En utilisant ce site et les outils qui y sont présentés, vous acceptez de respecter ces conditions et de vous conformer à toutes les lois applicables.

Formateur

Bertrand LECLERCQ

Consultant DevSecOps & Data Engineer


Avec 25 ans d'expérience dans le développement logiciel et une certification en Data Engineering de l'École des Mines Paris - PSL, je suis passionné par la cybersécurité, le big data et le DevOps. J'aime partager mes connaissances et aider la communauté à renforcer sa posture de sécurité.

J'ai créé une base de vulnérabilités librement accessible et je me forme en continu sur des plateformes comme TryHackMe. Mon objectif ? Démocratiser la cybersécurité et permettre à chacun de mieux comprendre les enjeux.

J'ai une solide expertise dans la conception et le déploiement de solutions sécurisées, ainsi qu'une expérience éprouvée dans la gestion de projets complexes. Maîtrisant un large éventail de technologies (Python, Go, Java, Docker, Kubernetes, etc.), je suis convaincu que la sécurité doit être intégrée dès le début du cycle de développement.

Le projet NoHackMe vous permet d'effectuer une veille Cyber, vous permet de découvrir le monde de la Cybersécurité ainsi qu'une section formation Cyber

Soutenez No Hack Me sur Tipeee