Bandit – Installation & Einsatz

Automatisierte Analyse Ihrer Python‑Codebasis

Gabriel Fournier
Bandit Scan

Securitix, ein auf Debian basierendes, quelloffenes Betriebssystem, ist bestens für Sicherheitstests, Penetration‑Tests und forensische Analysen ausgelegt. Um Ihre Python‑Projekte bestmöglich zu schützen, empfiehlt sich die Integration von Bandit, einem statischen Analysewerkzeug, das Sicherheitsschwachstellen in Python‑Code automatisch erkennt. In diesem Blog‑Post zeige ich Ihnen Schritt für Schritt, wie Sie Bandit auf einer Securitix‑Installation installieren und in Ihre Test‑Workflows einbinden.

1. Voraussetzungen

Bandit wird mit Python 3.6+ ausgeführt und benötigt das Paket pip. Auf Securitix ist pip bereits vorinstalliert, jedoch ist es sinnvoll, die Umgebung auf den aktuellen Stand zu bringen:

# Update der Paketlisten
sudo apt update

# Falls Python3 nicht installiert ist
sudo apt install python3

2. Installation von Bandit

Die einfachste Variante ist die Installation über pip. Wir empfehlen, Bandit in einer virtuellen Umgebung zu installieren, um Konflikte mit anderen Python‑Paketen zu vermeiden:

# Erstellen einer virtuellen Umgebung
python3 -m venv ~/bandit-env

# Aktivieren der Umgebung
source ~/bandit-env/bin/activate

# Installieren von Bandit
pip install bandit

Nach der Installation können Sie Bandit sofort ausführen. Um die Version zu überprüfen:

bandit --version
# Ausgabe: 1.7.7 (oder aktuelle Version)

3. Erste Analyse – Scannen eines Projektverzeichnisses

Nehmen wir an, Sie haben ein Python‑Projekt im Ordner /home/user/Projects/myapp. Mit dem folgenden Befehl führen Sie einen vollständigen Scan durch:

bandit -r /home/user/Projects/myapp -f html -o bandit-report.html

Dabei bedeutet:

  • -r – Rekursiver Scan des angegebenen Verzeichnisses.
  • -f html – Ausgabe im HTML‑Format.
  • -o – Zieldatei für den Bericht.

4. Ergebnisinterpretation

Der erzeugte Bericht bandit-report.html enthält eine übersichtliche Übersicht aller gefundenen Schwachstellen. Jede Warnung wird nach Priorität (low, medium, high, critical) eingeteilt. Ein typisches Beispiel:

===============================================================
  DEFECT:    Hardcoded Password
  SEVERITY:  HIGH
  CONFIDENCE: HIGH
  LOCATION:  /home/user/Projects/myapp/settings.py:42
  GITHUB:    https://github.com/user/repo/blob/master/settings.py#L42
===============================================================

Bandit liefert zudem Hinweise, wie das Problem behoben werden kann. Für ein Hardcoded Password empfiehlt sich die Nutzung von os.getenv oder einem Secrets‑Manager.

5. Integration in Securitix Workflows

Um Bandit regelmäßig in Ihre Test‑Pipeline einzubinden, können Sie ein einfaches Bash‑Skript erstellen:

# Datei: ~/bandit.sh
#!/usr/bin/env bash
source ~/bandit-env/bin/activate
bandit -r "$1" -f html -o "$1/bandit-report.html"
echo "Bandit‑Analyse abgeschlossen. Bericht unter $1/bandit-report.html."

Das Skript kann dann z. B. in einem Continuous‑Integration‑Job oder als Pre‑Commit Hook aufgerufen werden. Auf Securitix können Sie es sogar in den Security‑Tools‑Bundle einbauen, sodass der Scan automatisch startet, sobald ein neues Python‑Repository in das System gezogen wird.

6. Optional: Anpassung der Bandit‑Profile

Bandit erlaubt es, eigene Schwachstellendefinitionen hinzuzufügen oder bestehende auszuschließen. In der Konfigurationsdatei ~/.banditconfig können Sie folgende Einstellungen vornehmen:

# Beispiel: Ausschließen aller Dateien im Ordner tests
[exclude]
test_*.py

# Beispiel: Hinzufügen eines eigenen Checks
[plugins]
my_custom_check.py

Durch die Möglichkeit, eigene Plugins zu schreiben, lässt sich Bandit flexibel an Ihre spezifischen Sicherheitsrichtlinien anpassen.

7. Fazit

Bandit ist ein unverzichtbares Werkzeug, wenn Sie Python‑Code in Securitix sicher halten wollen. Die Installation per pip in einer virtuellen Umgebung ist unkompliziert, der Scan liefert wertvolle Erkenntnisse und lässt sich leicht in bestehende Test‑Workflows einbinden. Nutzen Sie Bandit, um Ihre Projekte frühzeitig auf Sicherheitslücken zu überprüfen – damit Sie die Kontrolle behalten und nicht erst nach einem Angriff die Schäden begrenzen müssen.