Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

bundle-audit Ruby

devsecops

Définition

bundle-audit est l'outil SCA (Software Composition Analysis) de référence pour les projets Ruby, permettant de détecter les vulnérabilités de sécurité connues dans les gems (bibliothèques Ruby) utilisées par une application. Développé par l'organisation rubysec, bundle-audit consulte la Ruby Advisory Database (maintenue sur GitHub par la communauté Ruby) et compare les versions des gems listées dans le Gemfile.lock du projet avec les versions affectées par des vulnérabilités publiées. bundle-audit est particulièrement précieux pour les applications Ruby on Rails, qui dépendent de nombreuses gems communautaires dont certaines ont historiquement présenté des vulnérabilités critiques (Gemfile typique d'une application Rails contenant 100-200+ gems incluant des gem de sécurité comme Devise, Pundit, Rack). Des vulnérabilités critiques dans des gems largement utilisées (RCE dans Rack, XSS dans ActionView, injection SQL dans ActiveRecord) peuvent affecter des milliers d'applications Rails si les gems ne sont pas mises à jour. L'utilisation de bundle-audit est simple : gem install bundler-audit && bundle audit check (analyse le Gemfile.lock et retourne les vulnérabilités détectées avec CVE/OSVDB et la version corrigée recommandée), bundle audit update (met à jour la base de données des advisories depuis la Ruby Advisory Database sur GitHub). La commande bundle audit check --update exécute les deux en une seule commande, adaptée à l'usage en CI. L'intégration dans un pipeline CI Ruby est standard : une étape bundle audit check --update bloque le build si des vulnérabilités connues sont identifiées dans les gems. Des outils comme Brakeman (SAST Ruby) et bundle-audit sont souvent utilisés conjointement dans les pipelines CI Ruby on Rails, Brakeman pour les vulnérabilités dans le code applicatif, bundle-audit pour les vulnérabilités dans les dépendances.

Installation et utilisation de bundle-audit

Installation : gem install bundler-audit (ou dans le Gemfile en groupe development/test). Commandes : bundle audit check (analyse sans mise à jour de la DB), bundle audit check --update (met à jour la Ruby Advisory DB puis analyse — mode recommandé en CI), bundle audit check --update --ignore CVE-2024-1234 (ignore un CVE spécifique avec justification documentée séparément). La commande retourne exit code 1 si des vulnérabilités sont trouvées, permettant de bloquer automatiquement le pipeline CI.

Ruby Advisory Database

La Ruby Advisory Database (github.com/rubysec/ruby-advisory-db) est maintenue par la communauté Ruby via pull requests. Elle couvre les CVEs affectant les gems Ruby publiées sur RubyGems.org. Chaque advisory contient : gem name, patched_versions (liste des versions corrigées), unaffected_versions, description, CVE ID, CVSS score, et url de référence. Cette DB est mise à jour régulièrement et couvre les vulnerabilités des principales gems Rails (Devise, Carrierwave, Paperclip, rack-cors, etc.).

Intégration bundle-audit dans un pipeline Rails CI

Pipeline CI Ruby on Rails complet pour la sécurité des dépendances : étape 1 - bundle audit check --update (SCA gems vulnérables), étape 2 - gem install brakeman && brakeman -q -o brakeman-report.json --no-progress (SAST code Rails), étape 3 - publication des résultats dans Défect Dojo ou Semgrep AppSec Platform. L'ajout d'un Dependabot config (.github/dependabot.yml avec package-ecosystem: bundler, update-schedule: weekly) crée automatiquement des PRs de mise à jour des gems vulnérables, réduisant le travail manuel de suivi des CVEs.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis