
KI-gestütztes Peer-Review für Pentest-Ergebnisse oder Bug Bounty Reports – überprüft Schweregrad, Beweise und Berichtsqualität vor der Auslieferung unter Verwendung mehrerer unabhängiger KI-Prüfer (Claude, GPT, Gemini), die sich gegenseitig kritisieren, bevor sie zu einem Urteil gelangen.
Eine blinde Peer-Review-Pipeline, die ein Pentest-Ergebnis validiert, bevor es den Kunden erreicht. Unabhängige Expertenlinsen bewerten das Ergebnis, überprüfen sich gegenseitig blind, und ein Vorsitzender erstellt ein einziges geprüftes Urteil – ist es berichtenswert und ist die Schwere kalibriert?
Zwei Möglichkeiten zur Ausführung:
| Modus | Wo | Was passiert |
|---|---|---|
| Manueller Vorsitzender | claude.ai / Claude App Chat | Ein Claude denkt jede Linse isoliert durch und synthetisiert dann. Null Kosten, keine Schlüssel. |
| Parallel (anbieterübergreifend) | Claude Code auf Ihrem Rechner | council_direct.py verteilt die Linsen auf Claude + ChatGPT + Gemini als echte gleichzeitige Aufrufe. Kostet Provider-Token. Erkennt blinde Flecken, die ein einzelner Anbieter teilt. |
Dieses Repo ist die Quelle der Wahrheit. Hier bearbeiten, mit git committen. Die Wissensdatenbank des Claude-Projekts ist ein schreibgeschützter Spiegel – laden Sie geänderte Dateien erneut hoch, wenn sie sich wesentlich ändern. Kein Zwei-Wege-Synchronisieren.
llm-council-vapt/
├── README.md # this file
├── requirements.txt # python deps
├── .env.template # key names, no values
├── .gitignore # ignores .env (keys never committed)
├── skills/
│ └── llm-council/
│ └── SKILL.md # the skill (8 members, protocols, modes)
├── scripts/
│ └── council_direct.py # parallel cross-vendor engine
└── docs/
└── project_system_prompt.md # paste into Claude Project settings
# 1. clone / place the repo
git clone <your-repo-url> llm-council-vapt
cd llm-council-vapt
# 2. make the skill discoverable by Claude Code (symlink, so edits stay live)
mkdir -p ~/.claude/skills
ln -s ~/llm-council-vapt/skills/llm-council ~/.claude/skills/llm-council
# 3. keys
cp .env.template .env
nano .env # paste the three keys, save
Bearbeiten Sie .env und fügen Sie Ihre Anthropic-, OpenAI- und Google-API-Schlüssel hinzu.
Hält Abhängigkeiten von Ihrem System-Python isoliert.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements.txt
Hinweis (Kali / Debian-basierte Systeme): PEP 668 blockiert standardmäßig systemweite
pip install-Befehle. Wenn Sie aufexternally-managed-environmentstoßen, verwenden Sie Option A oder erzwingen Sie es:pip install -r requirements.txt --break-system-packages
python scripts/council_direct.py --help
ls -l ~/.claude/skills/llm-council/SKILL.md # sollte über den Symlink auflösen
Wenn beide sauber laufen, sind Sie bereit.
Siehe docs/USAGE.md für die vollständige Befehlsreferenz (jedes Flag, jeder Modus, alle Beispiele).
Geben Sie einfach einen Befehl ein – keine Schlüssel, keine Skripte:
/llm-council -q -u # quick, upload file
/llm-council medium validation -p # medium, paste content
/llm-council -f -u -v2 -s high # full, upload, version 2, validate High claim
Flags: Modus -q|-m|-f (oder quick|medium|full validation), Eingabe -u (upload) / -p (paste), Version -vN, Schweregrad -s low|medium|high|critical.
python3 scripts/council_direct.py \
--mode full \
--finding ./finding.md \
--severity high \
--version 2 \
--finding-id <YOUR-FINDING-ID> \
--project <PREFIX> > council_run.json
--finding akzeptiert einen Dateipfad oder Rohtext. Das Skript gibt JSON aus (Bewertungen + blinde Ranglisten + Aggregat + etwaige Fehler). Bitten Sie dann Claude Code, council_run.json zu lesen und die Stage 3 (Vorsitzenden-Synthese) des Councils auszuführen, um das endgültige Urteil zu erstellen.
quick (-q) → Red-Teamer · CVSS-Auditor · Beweisprüfer (3)
medium (-m) → + Angriffskettenanalyst · Sanierungskritiker (5)
full (-f) → + Bedrohungsintelligenz-Analyst · False-Negative-Jäger ·
Geschäftsauswirkungs-Übersetzer (8)
Quick = schneller Sanity-Check während des Engagements. Medium = Ergebnisse, die Sie melden möchten. Full = Tor vor der Auslieferung; Standard für alle hohen/kritischen Ergebnisse.
Verifiziert anhand der offiziellen Anbieterdokumentation (Juni 2026). Nicht dauerhaft aktuell – aktualisieren Sie MODELS oben in scripts/council_direct.py, wenn Anbieter neue Flaggschiffe ausliefern.
.env ist gitignored. Echte Schlüssel werden nie committet. Überprüfen Sie mit git status vor Ihrem ersten git add – .env darf nicht erscheinen.python-dotenv gelesen. Sie werden niemals in Logs oder das ausgegebene JSON geschrieben.Das Skript liest textbasierte Ergebnisse direkt: .md, .txt, .json, .csv, .yaml oder inline übergebenen Rohtext. Binär-/Dokumentformate (.pdf, .docx, .xlsx, usw.) werden nicht unterstützt – das Skript erkennt sie und beendet sich mit einer Meldung, die Sie auffordert, zuerst in .md/.txt zu konvertieren. Da Ergebnisse in Markdown verfasst werden, ist dies normalerweise kein Problem.
Im Full-/Medium-Modus kann der Angriffskettenanalyst verwandte Ergebnisse berücksichtigen:
--findings-dir <path> – zu durchsuchendes Verzeichnis (standardmäßig das Verzeichnis der Ergebnisdatei).--project <prefix> – optionaler Dateinamen-Präfix-Tag, um zu filtern, welche verwandten Ergebnisse als relevant gelten. Wenn weggelassen, werden alle lesbaren Text-Geschwister berücksichtigt. Der Tag wird zur Laufzeit angegeben; keine Kundennamen oder Präfixe sind in den Code eingebacken.Halten Sie Ihre echten Ergebnisdateien außerhalb dieses Repos (überall auf Ihrem Rechner). Geben Sie --findings-dir bei jedem Durchlauf auf diesen Speicherort an.
Erstellt von Holiday
| Sitz | Anbieter | Modell-ID | Schlüssel |
|---|
| Claude | Anthropic | claude-opus-4-8 | ANTHROPIC_API_KEY |
| ChatGPT | OpenAI | gpt-5.5 | OPENAI_API_KEY |
| Gemini | gemini-3.1-pro-preview | GEMINI_API_KEY |