LLMGui — Security Commands

LLMGui bringt eine vollständige Security Operations Toolchain als Slash-Commands mit — von statischer Analyse über Dependency-Audits bis hin zu autonomen Self-Healing-Loops, File Integrity Monitoring und Docker-Sandbox-Execution.

Alle Findings werden zentral in ~/.brainy/security_findings.db (SQLite) persistiert. Der Control Center Security-Tab und die VS Code Findings-TreeView greifen auf dieselbe Datenbank zu.


Navigation


Überblick

Command Kurzbeschreibung
/full-audit Alle Checks in einem Durchlauf
/security Statischer Security-Scan (bandit)
/vuln-scan Multi-Layer Dependency-Audit
/secret-scan Secrets & API-Key-Erkennung
/sec-audit OWASP Top 10 Compliance-Audit
/pentest Adversarielle Taint-Path-Analyse
/fuzz Smart Fuzzing mit generierten Payloads
/exploit-gen PoC-Exploit-Generator
/threat-model STRIDE Threat Modeling
/hardening-gen Infrastructure Hardening-Generator
/sec-fix Autonomer Self-Healing Loop
/sec-verify Fix-Verifikation via Re-Exploit
/sec-log Security-Log aus Datenbank
/sec-monitor Real-Time File Integrity Monitoring
/sandbox-exec Isolierte Docker-Sandbox-Ausführung
/sec-lab Docker Pentest Lab Start/Stop
/harden Autonomer Security-Repair-Loop

Datenbank & Findings-Workflow

Alle Scan-Commands speichern ihre Befunde automatisch in:

~/.brainy/security_findings.db   (SQLite)
  ├── findings          — Security-Befunde (CVEs, Secrets, Lint-Issues)
  ├── fim_events        — File Integrity Monitoring Events
  └── threat_models     — STRIDE-Modelle (Mermaid + JSON)

Schema (findings):

Spalte Typ Beschreibung
id INTEGER Primärschlüssel — wird von /sec-fix und /sec-verify genutzt
ts TEXT Timestamp (ISO 8601 UTC)
tool TEXT Erzeugendes Tool (bandit, pip-audit, safety, semgrep, …)
package_or_file TEXT Betroffene Datei oder Paketname
vuln_id TEXT CVE-ID, Regel-Code oder Schwachstellenname
severity TEXT critical / high / medium / low / info
cvss_score REAL CVSS-Score (0.0–10.0)
description TEXT Beschreibung der Schwachstelle
fix_available TEXT Fix-Vorschlag oder verfügbare Version
line INTEGER Zeilennummer (bei Datei-Befunden)
status TEXT open / fixed / verified_fixed
project_path TEXT Workspace-Pfad
consensus INTEGER Anzahl Tools die denselben Befund bestätigen

REST-Zugriff: GET /api/findings?workspace=...&status=open


Commands im Detail

/full-audit

Alle Checks in einem Durchlauf — der schnellste Weg zu einem vollständigen Überblick.

/full-audit [path]

Führt 7 Checks sequenziell aus:

# Check Tool
1 Linting flake8 / ruff / pylint
2 Type Check mypy
3 Security (statisch) bandit
4 Complexity radon
5 Dead Code vulture
6 Dependency-Scan pip-audit / safety / semgrep
7 Secret-Scan Regex + Shannon-Entropy

Ohne Argument wird der aktuelle Workspace gescannt. Jeder Schritt zeigt in VS Code einen animierten Spinner (→ Checkmark). Am Ende: Summary-Tabelle + Anzahl offener DB-Findings nach Severity.

/full-audit                        # scannt gesamten Workspace
/full-audit src/                   # scannt nur src/
/full-audit auth.py                # scannt einzelne Datei

/security

Statischer Security-Scan via bandit.

/security <file_or_directory>

Scannt Python-Code auf bekannte Sicherheitsmuster (SQL-Injection, hardcoded Credentials, unsichere Hash-Algorithmen etc.). Bei High/Medium-Findings wird zusätzlich eine LLM-Analyse mit Remediation-Vorschlägen gestartet. Findings werden in die DB gespeichert.

/security src/auth.py
/security brainy/

/vuln-scan

Multi-Layer Dependency-Audit — kombiniert mehrere Tools zu einem einheitlichen Report mit CVSS-Scoring.

/vuln-scan [path] [--sbom] [--cbom]

Scanner (in Reihenfolge):

Tool Scope
bandit Python-Quellcode — unsichere Patterns
pip-audit Python-Dependencies — CVE-Datenbank
safety Python-Dependencies — Snyk-Datenbank
npm audit Node.js-Dependencies
semgrep p/php PHP-Quellcode
semgrep p/secrets Alle Dateien — hardcoded Secrets

CVSS-Matrix (eigene Formel wenn kein offizieller Score):

Severity × Confidence CVSS
ERROR + HIGH 9.0
ERROR + MEDIUM 8.0
WARNING + MEDIUM 5.5
WARNING + LOW 3.5

Optionen:
- --sbom — generiert Software Bill of Materials (CycloneDX JSON)
- --cbom — generiert Cryptography BOM

Deduplication: Befunde, die von mehreren Tools identifiziert werden, werden zusammengeführt (consensus-Feld gibt an, wie viele Tools übereinstimmen).

/vuln-scan .                       # aktueller Workspace
/vuln-scan /pfad/zum/projekt
/vuln-scan . --sbom

/secret-scan

Deep Secret Scan — kombiniert Regex, Shannon-Entropie und Git-History-Analyse.

/secret-scan [directory]

Drei Scan-Ebenen:

  1. Regex-Patterns — ~40 vordefinierte Muster für API-Keys, Tokens, Passwörter (AWS, GCP, GitHub, Stripe, Twilio, …)
  2. Shannon-Entropie — erkennt hochentropische Strings die kein valides Wort sind (typisch für Secrets ohne bekanntes Format)
  3. Git-History — scannt die letzten 50 Commits nach Secrets die gelöscht wurden (git show diff)

Findings werden nach Severity gruppiert und in die DB gespeichert.

/secret-scan                       # scannt Workspace
/secret-scan /pfad/zum/projekt

/sec-audit

OWASP Top 10 Compliance-Audit — A01 bis A07 mit CVSS-Scoring und optionalem Consensus-Modus.

/sec-audit <file_or_directory> [--consensus]

Prüft auf die kritischsten OWASP-Kategorien:

OWASP Kategorie
A01 Broken Access Control
A02 Cryptographic Failures
A03 Injection (SQL, Command, XSS)
A04 Insecure Design
A05 Security Misconfiguration
A06 Vulnerable and Outdated Components
A07 Identification and Authentication Failures

Mit --consensus wird jeder Befund von einem zweiten LLM-Aufruf bestätigt, um False Positives zu reduzieren. Ergebnisse werden in die DB gespeichert.

/sec-audit src/
/sec-audit auth.py --consensus

/pentest

Adversarielle Taint-Analyse — intra- und inter-prozedurale Pfadverfolgung von Sources zu Sinks.

/pentest <file_or_directory>

Analysiert den Code wie ein Angreifer: verfolgt wie externe Eingaben (HTTP-Parameter, Umgebungsvariablen, Dateien) durch den Code fließen und ob sie ungefiltert gefährliche Sinks (SQL, Shell, Filesystem) erreichen. Liefert konkrete Angriffspfade mit Evidenz.

/pentest src/api/
/pentest webapp/views.py

/fuzz

Smart Fuzzing — extrahiert Funktionssignaturen und generiert gezielt Payloads.

/fuzz <file> [--sandbox]

Analysiert die Funktionssignaturen der Zieldatei und generiert einen Fuzzing-Harness mit:
- Boundary-Values (0, -1, MAX_INT, leerer String, None, …)
- Injection-Payloads (SQL, XSS, Path Traversal, …)
- Typ-Mismatch-Tests

Mit --sandbox wird der generierte Harness in einer isolierten Docker-Umgebung ausgeführt.

/fuzz src/parser.py
/fuzz src/api.py --sandbox

/exploit-gen

PoC-Exploit-Generator — für beschriebene Schwachstellen.

/exploit-gen <vulnerability_description>

Generiert einen Proof-of-Concept-Exploit basierend auf einer natürlichsprachigen Beschreibung. Geeignet für Penetration-Testing-Engagements und CTF-Challenges. Gibt klar an wenn eine beschriebene Schwachstelle nicht ausnutzbar erscheint.

/exploit-gen "SQL injection in login endpoint via username parameter"
/exploit-gen "Deserialization vulnerability in the session handler"

/threat-model

Automatisches STRIDE Threat Modeling — generiert ein interaktives Mermaid-Risikodiagramm.

/threat-model [directory]

Analysiert den Quellcode und generiert:
- Ein STRIDE-Threat-Model (JSON) mit identifizierten Bedrohungen je Kategorie
- Ein Mermaid-Diagramm der Angriffspfade und Komponenten

Das Modell wird in ~/.brainy/security_findings.db (Tabelle threat_models) persistiert und kann im Control Center betrachtet werden.

/threat-model                      # analysiert Workspace
/threat-model src/

/hardening-gen

Infrastructure Hardening — generiert sicherheitskonforme Konfigurationsdateien.

/hardening-gen [directory]

Analysiert das Projekt und generiert:
- security.Dockerfile — gehärtetes Dockerfile (non-root, minimales Image, read-only FS)
- .env.example.secure — Template für Umgebungsvariablen mit Hinweisen zu sicheren Werten

/hardening-gen .
/hardening-gen /pfad/zum/projekt

/sec-fix

Self-Healing Loop — lässt das LLM einen DB-Finding autonom beheben.

/sec-fix <id>

Die <id> stammt aus /sec-log oder dem Control Center Security-Tab.

Ablauf:
1. Finding aus DB laden (Tool, Datei, Zeile, Beschreibung)
2. Datei-Kontext (±20 Zeilen) laden
3. LLM generiert Patch
4. Patch wird auf die Datei angewendet
5. Finding-Status wird auf fixed gesetzt

/sec-fix 42
/sec-fix 117

/sec-verify

Fix-Verifikation via automatisiertem Re-Exploit — bestätigt ob ein Patch wirklich hält.

/sec-verify <finding_id>

Generiert einen PoC-Exploit für das Finding und führt ihn in einer Docker-Sandbox aus. Schlägt der Exploit nach dem Fix fehl → Status wird auf verified_fixed gesetzt. Funktioniert der Exploit noch → Fix ist unvollständig.

/sec-verify 42

/sec-log

Security-Log — zeigt persistierte Befunde aus der Datenbank.

/sec-log [--critical|--high|--medium] [--tool <name>] [--count <n>]

Liest direkt aus ~/.brainy/security_findings.db und zeigt die neuesten Findings tabellarisch an. Nützlich um die ID für /sec-fix oder /sec-verify zu ermitteln.

/sec-log                           # letzte 20 Findings (alle Severity)
/sec-log --critical                # nur Critical
/sec-log --high --count 50         # letzte 50 High-Findings
/sec-log --tool bandit             # nur bandit-Findings

/sec-monitor

Real-Time File Integrity Monitoring (FIM) — überwacht kritische Dateien via watchdog und SQLite-Eventlog.

/sec-monitor [directory] [--stop] [--log] [--watch <glob,...>]

Startet einen Background-Observer auf dem Verzeichnis. Jede Dateimodifikation wird in fim_events geloggt. Kritische Dateien (.env, settings.py, config.*, etc.) lösen sofort einen AI-Judge aus, der entscheidet ob die Änderung legitim oder verdächtig ist.

/sec-monitor .                     # startet FIM im Workspace
/sec-monitor . --watch .env,*.cfg  # zusätzliche Patterns
/sec-monitor --stop                # beendet laufenden Monitor
/sec-monitor --log                 # zeigt FIM-Eventlog

/sandbox-exec

Isolierte Docker-Sandbox — führt Code mit Behavioral Monitoring aus. Kein Netzwerk, limitierte Ressourcen.

/sandbox-exec <script_path_or_code> [--image python:slim] [--timeout 30]

Führt ein Skript oder einen Inline-Code in einem gekapselten Docker-Container aus:
- Kein Netzwerkzugang (--network none)
- Memory-Limit (256 MB Standard)
- CPU-Limit (0.5 Cores)
- Behavioral Monitoring: Syscall-Tracing, Filesystem-Änderungen

Ideal für das Testen von unbekanntem Code, Fuzzing-Harnessen oder PoC-Exploits.

/sandbox-exec test_exploit.py
/sandbox-exec test_exploit.py --timeout 60
/sandbox-exec test_exploit.py --image python:3.12-slim

/sec-lab

Docker Pentest Lab — Start/Stop einer vollständigen Pentest-Umgebung.

/sec-lab <start|stop|status>

Verwaltet ein Docker-basiertes Pentest-Lab mit vorinstallierten Tools (nmap, metasploit, etc.).

/sec-lab start
/sec-lab status
/sec-lab stop

/harden

Autonomer Security-Repair-Loop — kombiniert Diagnose und Behebung.

/harden <file_or_path>

Führt zunächst einen kombinierten Scan (bandit + Pattern-Analyse) durch und startet dann für jeden kritischen Befund automatisch einen Repair-Loop: LLM generiert Patch → anwenden → erneut scannen bis sauber oder max. Iterations-Limit erreicht.

/harden src/auth.py
/harden src/api/

Workflow-Beispiel: Vollständiges Security-Audit

# 1. Alle Checks auf einmal
/full-audit .

# 2. Findings ansehen
/sec-log --critical

# 3. Kritischen Befund fixen (ID aus sec-log)
/sec-fix 42

# 4. Fix verifizieren
/sec-verify 42

# 5. Threat Model erstellen
/threat-model .

# 6. Monitoring aktivieren (läuft im Hintergrund)
/sec-monitor .

VS Code Integration

Nach einem Scan erscheinen Findings automatisch in:

Rechtsklick auf ein Finding → "Mit LLMGui fixen" startet direkt einen /sec-fix-Prompt im Chat.