Brakeman (Ruby)
devsecopsDéfinition
Brakeman est un scanner d'analyse statique de sécurité (SAST) open source spécialement conçu pour les applications Ruby on Rails. Développé par Justin Collins à partir de 2010, Brakeman analyse le code source Rails sans nécessiter son exécution et génère des rapports détaillant les vulnérabilités potentielles selon les standards OWASP. Sa spécialisation pour Rails lui permet de comprendre les patterns de framework et de détecter des vulnérabilités spécifiques à l'écosystème Rails que les scanners généralistes manqueraient. Brakeman couvre un large spectre de vulnérabilités Rails : les injections SQL (via ActiveRecord find_by_sql et requêtes en chaîne non paramétrées), les Cross-Site Scripting (XSS) via les vues Rails mal encodées, les injections de commandes via Open3 ou system(), les Mass Assignment (assignation de masse via params non filtrés dans les modèles), les vulnérabilités de redirection ouverte, les problèmes CSRF, les Session Fixation, les Insecure Direct Object References, et les problèmes spécifiques aux gems Rails connues pour être vulnérables. L'intégration de Brakeman dans un pipeline CI Rails est simple : brakeman -o /tmp/report.json retourne un code de sortie non-zéro en présence de vulnérabilités. Les options permettent de configurer les seuils de sévérité (--minimum-confidence), d'ignorer des avertissements spécifiques documentés (--ignore-config), et de générer des rapports en JSON, HTML, ou SARIF pour intégration dans les dashboards. Des gems d'intégration existent pour les pipelines GitHub Actions et les configurations Rake. Brakeman est particulièrement sensible au contexte Rails : il comprend les before_action, les concerns, les helpers de vues, et les associations ActiveRecord, permettant une analyse de flux de données inter-fichiers qui détecte des vulnérabilités que les scanners non-Rails-aware ne trouvent pas. Le taux de faux positifs de Brakeman est relativement faible pour un SAST grâce à cette connaissance profonde du framework.
Vulnérabilités Rails détectées par Brakeman
Brakeman détecte : SQL Injection (find_by_sql non paramétrés, where("name = #{params[:name]}"), String Interpolation dans les requêtes ActiveRecord), XSS (raw(), html_safe, interpolation dans les vues ERB/HAML), Mass Assignment (sans strong parameters ou avec permit!), Command Injection (system(), exec(), backtick interpolation), Redirection ouverte (redirect_to params[:url]), et Cross-Site Request Forgery (skip_before_action :verify_authenticity_token sans justification).
Intégration CI/CD et configuration
En CI, brakeman -q --no-progress -o /tmp/report.json -f json effectue le scan et retourne 0 (succès) ou 3 (vulnérabilités trouvées). Le Security Gate bloque si brakeman exit code != 0 pour les sévérités High/Critical. Le fichier .brakeman.ignore (généré par brakeman -I) permet de documenter les faux positifs acceptés avec justification. Des actions GitHub Marketplace (thesp0nge/brakeman-minuet) simplifient l'intégration dans les workflows CI.
Tuning et gestion des faux positifs
Brakeman génère des avertissements classifiés par confiance (High/Medium/Weak). Les warnings de faible confiance (Weak) sont souvent des faux positifs contextuels : une interpolation dans un log non rendu en HTML n'est pas une XSS. Le processus de tuning consiste à examiner chaque warning initial, documenter les faux positifs dans .brakeman.ignore avec une justification claire, et configurer le CI pour n'échouer que sur les warnings High Confidence. Une revue mensuelle des warnings ignorés maintient la pertinence des suppressions.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h