Multi-Agenten-Harness für statische Anwendungssicherheits-Reviews für KI-Coding-Agenten: kartiert Codebasen, jagt Schwachstellenklassen, verkettet und verifiziert Befunde und berichtet in SARIF, JSON und PDF.
Ein Multi-Agenten-Application-Security-Review-Harness für Claude Code (und später weitere KI-Agenten). Ein Router-Skill verteilt an eine vollständige Offensive-Security-Pipeline, die eine Codebasis kartiert, Schwachstellen mit einer klassenbezogenen Wissensdatenbank aufspürt, Befunde zu Eskalationen verkettet, reale Auswirkungen verifiziert und an README / JSON / SARIF / Doc / PDF berichtet.
Umfang: Dieses Harness führt statische Analyse durch (Quellcode-Review, Datenflussverfolgung, PoC-/Payload- Konstruktion) an Code, den Sie besitzen oder für dessen Test Sie autorisiert sind. Es greift keine Live-Systeme Dritter an.
security-harness/ # a plugin marketplace └── plugins/security-harness/ ├── skills/ │ ├── sh-router # single entry point - routes any appsec request │ ├── sh-security-review # the pipeline orchestrator (Stages 0-5) │ └── sh-kb-* (15) # per-vuln-class knowledge bases ├── agents/ │ ├── sh-recon # map: Graft graph + stack/SBOM/CVE + attack surface │ ├── sh-hunter # find: source→sink hunting, one per class (parallel) │ ├── sh-chainer # escalate: combine findings into attack chains │ ├── sh-verifier # confirm: offensive + seceng + dev verification + PoC │ └── sh-reporter # deliver: README/JSON/SARIF/HTML/PDF/doc └── references/ # shared contracts (finding schema, SARIF map, state files, rubrics)
### Abgedeckte Schwachstellenklassen (die `sh-kb-*`-Skills)
access-control (IDOR/BOLA/priv-esc) · sqli · xss · ssrf · injection (cmd/code/SSTI/LDAP) · auth (session/JWT)
· deserialization · path-traversal (LFI/RFI) · secrets · csrf · xxe · open-redirect · crypto · race-conditions
· file-upload. Dependency-CVEs/SBOM werden von der Recon-Stufe behandelt.
## Installation
Die Harness wird für mehrere Agents ausgeliefert. Vollständige Packaging-Details und die Release-
Checkliste findest du in [`docs/DISTRIBUTION.md`](https://github.com/dmdhrumilmistry/security-harness/blob/main/docs/DISTRIBUTION.md).
**Claude Code** – füge dieses Repo als Plugin-Marketplace hinzu und installiere das Plugin:```
/plugin marketplace add dmdhrumilmistry/security-harness
/plugin install security-harness
/plugin marketplace add akzeptiert jede der folgenden Angaben: ein GitHub-owner/repo (wie oben), eine vollständige Git-URL
(https://github.com/dmdhrumilmistry/security-harness.git) oder einen lokalen Pfad zu einem Klon
(z. B. /plugin marketplace add ./security-harness aus dem Verzeichnis, das deinen Checkout enthält).
Führe dann /plugin install security-harness aus und lade neu, wenn du dazu aufgefordert wirst.
Gemini CLI – eine native Erweiterung, Manifest im Repository-Stammverzeichnis:```bash gemini extensions install https://github.com/dmdhrumilmistry/security-harness
**opencode, Codex oder jeder [agentskills.io](https://agentskills.io)-Agent** – kopiere die
Skills in ein Discovery-Verzeichnis. Codex erkennt zusätzlich `AGENTS.md` von selbst:```bash
git clone https://github.com/dmdhrumilmistry/security-harness
cd security-harness
python3 scripts/sync-agent-skills.py --install agents # ~/.agents/skills
python3 scripts/sync-agent-skills.py --install opencode # ~/.config/opencode/skills
Graft wird von der Pipeline automatisch installiert und eingerichtet. Stage 0 führt npm install -g @nanonets/graft aus, falls es fehlt (erfordert Node/npm), und dann graft init <target> --no-agents --no-global,
um den Graft-MCP-Server und Freshness-Hooks für das Ziel-Repository zu registrieren. Der Graph selbst (<target>/graft/,
automatisch gitignoriert) wird während der Recon-Phase erstellt. Zur manuellen Vorinstallation: npm install -g @nanonets/graft. Grafts
struktureller Build ist kostenlos und benötigt keinen API-Schlüssel; der optionale --deep-LLM-Durchlauf verwendet GRAFT_API_KEY /
GRAFT_PROVIDER / GRAFT_MODEL, sofern gesetzt.
Die anderen Tools werden ebenfalls automatisch von Stage 0 installiert, wenn sie fehlen (über den jeweiligen Paketmanager, der auf der
Maschine vorhanden ist – winget/choco/scoop, brew, apt, npm/pip/go – siehe references/tooling-setup.md). Installationen werden
angekündigt, bevorzugen Methoden ohne Elevation und blockieren niemals den Lauf: Alles, was nicht installiert werden kann, wird einfach
als nicht verfügbar markiert und die Pipeline weicht aus. Stage 0 installiert nur, was eine fehlende Fähigkeitsgruppe abdeckt:
syft · CVEs: eines von grype
(bevorzugt), trivy oder osv-scannerwkhtmltopdf oder pandoc (für PDF/DOCX); andernfalls erhältst du report.html (oder ein Headless-Chrome-PDF).Alle davon sind optional – die Pipeline weicht auf native Suche + Manifest-Parsing aus, wenn keines installiert wird.
Rufe den Router mit einer Anfrage in natürlicher Sprache auf:``` /sh-router full security review of ./api /sh-router find SQLi and IDOR in src/ /sh-router just map this codebase # recon only
Oder rufen Sie die Pipeline direkt auf:```
/sh-security-review . classes:sqli,access-control,ssrf depth:deep
/sh-security-review . stage:report # regenerate reports for the latest run
Jede Stufe läuft auf einem Modell, das auf ihre kognitive Last abgestimmt ist, sodass Tokens dort ausgegeben werden, wo die Qualität der Entdeckung tatsächlich von ihnen abhängt, und bei mechanischer Arbeit eingespart werden. Dies ist die Standardeinstellung – keine Argumente erforderlich.
| Stufe | Standardmodell |
|---|---|
| recon | sonnet |
| hunt (pro Klasse) | haiku für Musterklassen (secrets, crypto, open-redirect, csrf) · sonnet für Source→Sink-Tracing (sqli, xss, ssrf, injection, path-traversal, xxe, file-upload, auth) · opus für Deep-Logic-Klassen (access-control, race-conditions, deserialization) |
| chain | opus |
| verify | opus (das Precision-Gate – stark gehalten) |
| report | haiku |
Überschreiben mit dem models:-Argument (ebenfalls durch den Router geleitet):```
/sh-security-review . # default tiered map above
/sh-security-review . models:max # every stage + hunter on opus (max quality, max cost)
/sh-security-review . models:cheap # aggressive downshift (trades some verify precision)
/sh-security-review . models:verify=opus,hunt=sonnet # per-stage overrides
/sh-security-review . models:report=sonnet,hunt.pattern=sonnet # per-hunter-tier override
Stages: `setup, recon, hunt, chain, verify, report`. Models: `opus, sonnet, haiku, inherit`. Für `hunt`
flacht ein bloßes Modell alle Hunter darauf ab; `hunt.pattern` / `hunt.trace` / `hunt.logic` zielen auf eine Stufe.
Weitere Token-Einsparungen sind integriert: recon erzeugt nur Hunter für Klassen mit echter Angriffsfläche, Hunter
fragen den Graft-Graphen ab, anstatt ganze Dateien zu lesen, und `findings.json`/SARIF werden von einem
deterministischen Skript statt vom Modell generiert.
### Ausgabe
Alles landet unter `<target>/.security-harness/<run-id>/`:
- `recon.md`, `codebase-map.json` - die Karte (Stack, SBOM, CVEs, Angriffsfläche).
- `findings.jsonl` → `chains.md` → `verified.jsonl` - der Arbeitszustand (siehe `references/state-files.md`).
- `reports/` - `README.md`, `findings.json`, `results.sarif`, `report.html`, `report.pdf` (+ `report.docx`).
Jeder veröffentlichte Fund enthält eine Payload, einen PoC, das Verifikationsurteil, CWE/OWASP-IDs, CVSS und eine
Mitigation auf Code-Ebene.
## Pull-Request-Review