Arnés de revisión estática de seguridad de aplicaciones multiagente para agentes de codificación de IA: mapea bases de código, caza clases de vulnerabilidades, encadena y verifica hallazgos, y reporta a SARIF, JSON y PDF.
Un arnés de revisión de seguridad de aplicaciones multiagente para Claude Code (y, más adelante, otros agentes de IA). Una habilidad de enrutador despacha a un pipeline completo de seguridad ofensiva que mapea una base de código, caza vulnerabilidades con una base de conocimiento por clase, encadena hallazgos en escaladas, verifica el impacto real y reporta a README / JSON / SARIF / doc / PDF.
Alcance: este arnés realiza análisis estático (revisión de código fuente, trazado de flujo de datos, construcción de PoC/payload) sobre código que posees o estás autorizado a probar. No ataca sistemas de terceros en vivo.
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)
### Clases de vulnerabilidad cubiertas (las habilidades `sh-kb-*`)
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. Los CVE de dependencias/SBOM son gestionados por la etapa de recon.
## Instalación
El harness se distribuye para varios agentes. Los detalles completos de empaquetado y la lista de verificación de la versión están en [`docs/DISTRIBUTION.md`](https://github.com/dmdhrumilmistry/security-harness/blob/main/docs/DISTRIBUTION.md).
**Claude Code** - añade este repositorio como un marketplace de plugins e instala el plugin:```
/plugin marketplace add dmdhrumilmistry/security-harness
/plugin install security-harness
/plugin marketplace add acepta cualquiera de los siguientes: un owner/repo de GitHub (como arriba), una URL de git completa
(https://github.com/dmdhrumilmistry/security-harness.git), o una ruta local a un clon
(p. ej. /plugin marketplace add ./security-harness desde el directorio que contiene tu copia local).
Luego ejecuta /plugin install security-harness y recarga cuando se te solicite.
Gemini CLI - una extensión nativa, con el manifiesto en la raíz del repositorio:```bash gemini extensions install https://github.com/dmdhrumilmistry/security-harness
**opencode, Codex o cualquier agente de [agentskills.io](https://agentskills.io)** - copia las
skills en un directorio de descubrimiento. Codex además detecta `AGENTS.md` por su cuenta:```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 se instala y configura automáticamente mediante el pipeline. La Etapa 0 ejecuta npm install -g @nanonets/graft si falta (requiere Node/npm), luego graft init <target> --no-agents --no-global
para registrar el servidor MCP de Graft y los hooks de frescura para el repositorio objetivo. El grafo en sí (<target>/graft/,
auto-gitignored) se construye durante el reconocimiento. Para preinstalar manualmente: npm install -g @nanonets/graft. La construcción
estructural de Graft es gratuita y no necesita clave de API; la pasada opcional --deep de LLM usa GRAFT_API_KEY /
GRAFT_PROVIDER / GRAFT_MODEL cuando están configuradas.
Las otras herramientas también se instalan automáticamente mediante la Etapa 0 cuando faltan (a través del gestor de paquetes que esté en la
máquina - winget/choco/scoop, brew, apt, npm/pip/go - consulta references/tooling-setup.md). Las instalaciones se
anuncian, prefieren métodos sin elevación y nunca bloquean la ejecución: cualquier cosa que no se pueda instalar simplemente se
marca como no disponible y el pipeline recurre a alternativas. La Etapa 0 solo instala lo que cubre un grupo de capacidades faltante:
syft · CVEs: uno de grype
(preferido), trivy, o osv-scannerwkhtmltopdf o pandoc (para PDF/DOCX); de lo contrario obtienes report.html (o un PDF de Chrome headless).Todas son opcionales - el pipeline se degrada de forma elegante a búsqueda nativa + análisis de manifiestos si ninguna se instala.
Invoca el router con una solicitud en lenguaje natural:``` /sh-router full security review of ./api /sh-router find SQLi and IDOR in src/ /sh-router just map this codebase # recon only
O llama al pipeline directamente:```
/sh-security-review . classes:sqli,access-control,ssrf depth:deep
/sh-security-review . stage:report # regenerate reports for the latest run
Cada etapa se ejecuta en un modelo ajustado a su carga cognitiva, de modo que los tokens se gastan donde la calidad del descubrimiento realmente depende de ellos y se ahorran en el trabajo mecánico. Este es el comportamiento predeterminado: no se necesitan argumentos.
| Etapa | Modelo predeterminado |
|---|---|
| recon | sonnet |
| hunt (por clase) | haiku para clases de patrones (secrets, crypto, open-redirect, csrf) · sonnet para el trazado source→sink (sqli, xss, ssrf, injection, path-traversal, xxe, file-upload, auth) · opus para clases de lógica profunda (access-control, race-conditions, deserialization) |
| chain | opus |
| verify | opus (la puerta de precisión - se mantiene fuerte) |
| report | haiku |
Se puede sobrescribir con el argumento models: (que también se pasa a través del router):```
/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
Etapas: `setup, recon, hunt, chain, verify, report`. Modelos: `opus, sonnet, haiku, inherit`. Para `hunt`,
un modelo sin calificador aplana todos los hunters a ese modelo; `hunt.pattern` / `hunt.trace` / `hunt.logic` apuntan a un solo nivel.
Otros ahorradores de tokens están integrados: recon solo genera hunters para clases con superficie de ataque real, los hunters
consultan el grafo Graft en lugar de leer archivos completos, y `findings.json`/SARIF son generados por un
script determinista en lugar del modelo.
### Salida
Todo queda bajo `<target>/.security-harness/<run-id>/`:
- `recon.md`, `codebase-map.json` - el mapa (stack, SBOM, CVEs, superficie de ataque).
- `findings.jsonl` → `chains.md` → `verified.jsonl` - el estado de trabajo (ver `references/state-files.md`).
- `reports/` - `README.md`, `findings.json`, `results.sarif`, `report.html`, `report.pdf` (+ `report.docx`).
Cada hallazgo publicado incluye un payload, un PoC, el veredicto de verificación, ids CWE/OWASP, CVSS y una
mitigación a nivel de código.
## Revisión de pull request