deonmenezes/appsec-redteam-harness
GitHub: deonmenezes/appsec-redteam-harness
一个仅依赖 Python 标准库的独立多智能体红队渗透测试框架,针对 Web 应用层在授权范围内完成从攻击面测绘到证据驱动报告的完整安全评估流程。
Stars: 0 | Forks: 0
# 🛡️ appsec-redteam-harness
`。
## 团队
采用 **supervisor** 模式 —— `pentest_coordinator` 负责规划测试任务、强制执行
授权范围,并将每个阶段委派给专家,最后将所有内容移交给报告者。
| agent | 阶段 | 功能描述 |
|---|---|---|
| 🧭 `pentest_coordinator` | 编排 | 规划阶段,**强制执行授权范围**,对发现去重,整合报告 |
| 🗺️ `surface_mapper` | 侦查 | 爬取路由、表单、参数、认证流程、cookies、headers 以及技术指纹 |
| 🔎 `vuln_hunter` | 发现 | 采用结构化的 OWASP Top 10 测试矩阵及安全、仅用于检测的探针 |
| 🧪 `vuln_validator` | 验证 | 安全的 PoC 确认 + 附带各维度依据的 CVSS 3.1 评分 |
| 📝 `report_writer` | 报告 | 证据、复现步骤、CWE/OWASP 映射、按优先级排序的修复建议 |
**覆盖范围:** injection (SQLi / command / SSTI), broken access control & IDOR,
broken authentication & session management, XSS (reflected / stored / DOM), SSRF,
insecure deserialization, security misconfiguration, sensitive data exposure, CSRF.
## 质量门
`--loop` 会运行一个 LLM-as-judge 质量门(得分 ≥ 7.0),报告必须通过此项检测:
- 每个发现都引用了**逐字的请求/响应证据** —— 无证据,则无发现
- 所有测试过的 endpoints 都**被证明在授权范围内**;对未授权主机的发现数量为零
- 每个发现都包含**有效的 CVSS 3.1 向量 + 得分**,并带有匹配的严重性标签
- 复现步骤**足够精确,以便开发人员能够独立复现**
- 所有 PoC 都**表现出明确的非破坏性**;无法确认的发现 → *需要人工审查*
- 每个发现都映射到一个 **CWE + OWASP Top 10 2021** 类别,并附带按优先级排序的修复建议
## 编辑 agent —— `{{ }}` prompt 结构剖析
每个 agent 的系统 prompt 都是每次运行时从 **`prompts/ANATOMY.md`** 重新组装的,
它包含五个明确的插槽,让您始终确切知道该把内容放在哪里:
| 插槽 | 填充来源 | 归属内容 |
|---|---|---|
| `{{IDENTITY}}` | `prompts/.md` | agent 的身份、目标及其标准 |
| `{{ENVIRONMENT}}` | 由 `app.py` 实时注入 | 无内容 —— 运行时事实绝不手写 |
| `{{BEHAVIORAL_RULES}}` | `skills/*.md` | 流程、测试矩阵、陷阱(篇幅最大的部分) |
| `{{OUTPUT_FORMAT}}` | `harness.json` → `agents[].output_format` | 确切的响应结构 |
| `{{SAFETY}}` | 从 `harness.json` 的 guardrails 生成 | 无内容 —— 应改为编辑 guardrails |
编辑任何 `prompts/*.md` 或 `skills/*.md`,保存后重新运行即可 —— 无需重新构建。
在 identity/skills 内部,您可以使用像 `{{date}}` 和 `{{working_directory}}` 这样的实时变量。
TUI 中的 `/prompts` 会渲染此映射,并提供每个文件的 token 估算。
## 目录结构
```
appsec-redteam-harness/
├── appsec_redteam_harness launcher → app.py
├── app.py the whole harness: providers, tools, supervisor
│ pattern, guardrails, memory, judge gate, TUI
├── harness.json team wiring: models, tools, gate, guardrails
├── prompts/ ANATOMY.md (assembly) + one identity file per agent
├── skills/ behavioral rules — the OWASP test craft
├── memory/ MEMORY.md (durable facts, injected every run)
├── docs/ drop .md/.txt references → agents search them
├── workspace/ the agents' sandbox (files & shell confined here)
└── runs/ one JSONL trace per run (created at runtime)
```
## Guardrails (在代码中强制执行,而不仅是写在提示词中)
- **沙盒:** 所有文件和 shell 活动都限制在 `workspace/` 目录内;拒绝任何路径逃逸行为。
- **Shell 黑名单:** 破坏性模式(`rm -rf /`, `sudo`, `mkfs`, …)会在执行前被拦截。
- **预算:** 设有每次运行的 token 和自然时间上限;在停止时,agent 会如实总结当前状态。
- **抗 Prompt-injection:** 获取到的页面和工具输出被视为数据,绝不被当作指令执行。
使用 [harness-builder](https://github.com/deonmenezes) 构建 —— 输入 prompt,输出独立 harness。请合法、负责任地使用。
标签:CISA项目, OWASP Top 10, Python, Web安全, 多智能体, 无后门, 自动化漏洞扫描, 蓝队分析, 逆向工具