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.

Bandit Python Security

devsecops

Définition

Bandit est un outil SAST open source spécialisé dans l'analyse statique de code Python, développé initialement par l'OpenStack Security Project puis maintenu sous l'égide de la Python Code Quality Authority (PyCQA). Il fonctionne en parcourant l'arbre syntaxique abstrait (AST) du code source pour repérer des motifs connus de vulnérabilités sans nécessiter d'exécution du programme, ce qui le rend rapide et facilement intégrable dans un pipeline CI/CD via une simple commande bandit -r. Ses règles, organisées par plugins, détectent notamment l'usage de fonctions dangereuses comme eval() ou exec(), les appels subprocess avec shell=True exposant à l'injection de commandes, l'usage de modules de désérialisation non sécurisée comme pickle, les algorithmes cryptographiques faibles (MD5, DES), les secrets codés en dur dans le code source, ou les connexions réseau sans vérification de certificat TLS. Chaque finding est classé par niveau de sévérité et de confiance, ce qui permet de filtrer le bruit selon le contexte du projet. Bandit s'intègre facilement dans pre-commit, tox ou directement dans les workflows GitHub Actions, et complète des outils plus généralistes comme Semgrep en offrant une couverture spécifiquement calibrée sur les idiomes et pièges classiques de l'écosystème Python, notamment dans les projets utilisant Flask, Django ou des scripts d'automatisation manipulant des données sensibles.

Description

Bandit parcourt l'AST Python pour détecter les CWEs courants : injections SQL via concaténation (B608), utilisation de subprocess.call(shell=True) (B602), algorithmes de hachage faibles MD5/SHA1 (B303), et binding sur toutes interfaces (B104).

Mise en œuvre

Exécuter bandit -r src/ -f json -o bandit-report.json -ll dans le pipeline CI. Configurer .bandit pour exclure les faux positifs (tests unitaires). Intégrer dans pre-commit avec repo: https://github.com/PyCQA/bandit.

Points clés

  • Niveaux de sévérité : LOW/MEDIUM/HIGH × CONFIDENCE
  • Profils personnalisés via fichier de configuration YAML
  • Compatible avec tox, pytest et les matrices CI multi-versions Python

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis