ocelotbr-decoBR/pentest-ai-guardian
GitHub: ocelotbr-decoBR/pentest-ai-guardian
一个防御性安全知识库与工具集,结合经fixture验证的Semgrep规则、DAST和CI防漂移门禁,指导AI对多技术栈代码进行诚实的扫描、审计与加固。
Stars: 0 | Forks: 0
# Pentest AI Agent — 防御性安全知识库(多技术栈)
*🇧🇷 葡萄牙语 · 🇺🇸 [英文版本见下](#english)*
一个**守护者**(而非攻击者):一个知识库 + 工具集,指导任何 AI **扫描、审计、修复和加固**代码,以防御已知的攻击类别。侧重于**防御**,支持多技术栈(JS/Next, PY/FastAPI, SQL/PG, 基础设施, AI)。
它的独特之处不在于成为又一个 linter —— 而是其**防漂移契约**:知识库(promptbook)、可执行规则(Semgrep)、回归测试 fixture 和审计日志,均通过在 CI 中验证的清单文件绑定在一起。promptbook 引用的每一条规则都**真实存在**、**有触发的 fixture**,并且在安全的 fixture 中**没有误报** —— 这是经过验证的,而非口头声明。
## 检测模型 (D1–D4)
| 级别 | 定义 | 置信度 |
|---|---|---|
| **D1** | regex/启发式 | 低 |
| **D2** | AST/Semgrep(由 fixture 验证) | 高(静态) |
| **D3** | 逻辑/架构(review/LLM) | 需要人工判断 |
| **D4** | runtime/DAST(in-process) | 高(动态) |
坦白地说:SAST (D2) 只能看到静态模式。逻辑/runtime 漏洞(如 IDOR、竞态条件、访问控制)属于 **D3/D4**,并在设计上被归入 `review` —— 绝不声明不存在的覆盖率(“没有幽灵规则”)。
## 结构
```
vibe_coding_security_dataset.md # o promptbook (as defesas, exemplo errado vs. correto)
mapa_de_cobertura.md # matriz de cobertura vs OWASP/CWE (o que é forte e o que é cego)
.semgrep/ # pacote executável: 40 regras (vibecoding.yml + infra.yml)
manifesto/
cobertura.yml # FONTE ÚNICA: liga cada nó P-xx a regra/fixture/seção/CWE/OWASP
validar.py # gate anti-drift: 8 invariantes (CI)
auditar.py # consome Semgrep JSON -> árvore de auditoria JSONL determinística
schema_auditrun.json # schema do log de auditoria
mcp/ # MCP Server (stdlib-only): expõe o guardião como tools
runner/ # sandbox de execução isolado (Docker hardened) p/ rodar sobre código não confiável
validacao/
fixtures_vuln/ fixtures_safe/ # regressão: vuln dispara, safe fica quieto (0 FP)
dast/ # harness DAST in-process (pytest) p/ ataques de auth
benchmark/
RELATORIO_BENCHMARK.md # TP/FP medidos em apps vulneráveis reais (NodeGoat, dvpwa)
```
## 快速开始
**防漂移门禁(快速,无需 Docker):**
```
python manifesto/validar.py # 8 invariantes; falha o CI se houver drift
```
**Semgrep 包(通过 Docker 运行 —— Semgrep 无法在 Windows 上原生运行):**
```
docker run --rm -v "$PWD:/cfg:ro" -v ":/code:ro" semgrep/semgrep:latest \
semgrep scan --config /cfg/.semgrep /code --metrics=off
```
**针对不可信代码的隔离沙箱**(egress-deny + 只读文件系统 + 非 root 用户):参见 `manifesto/runner/README.md`。
**确定性审计树:**
```
python manifesto/auditar.py --semgrep-json --target-label alvo
python manifesto/auditar.py --replay manifesto/auditorias/.jsonl
```
**In-process DAST:**
```
python -m pytest validacao/dast -q
```
**MCP Server**(通过任何 MCP 客户端调用此守护者 —— 只读,仅使用标准库):参见 `manifesto/mcp/README.md`。
## 原则
- **验证具有强制约束力。** 每条规则都通过真实扫描由 fixture 验证(在漏洞上触发,在安全代码上 0 误报),而非仅凭肉眼检查。
- **没有幽灵规则。** 如果没有可靠的静态检测手段,该节点即被标记为 D3/review —— 绝不虚构覆盖率。
- **防漂移。** `manifesto/validar.py` 使得 promptbook 无法引用不存在的规则、缺失的 fixture 或不存在的章节。
- **最小权限原则。** 沙箱拒绝网络访问和文件系统写入;MCP 是只读的;审计器绝不接触 Docker daemon。
## 许可证
MIT —— 参见 [LICENSE](LICENSE)。由 **ocelotbr-decoBR** 维护。
# Pentest AI Agent — 防御性安全知识库(多技术栈)
一个**守护者**(而非攻击者):一个知识库 + 工具集,指导任何 AI **扫描、审计、修复和加固**代码,以防御已知的攻击类别。侧重于**防御**,支持多技术栈(JS/Next, PY/FastAPI, SQL/PG, 基础设施, AI)。
它的独特之处不在于成为又一个 linter —— 而是其**防漂移契约**:知识库(promptbook)、可执行规则(Semgrep)、回归测试 fixture 和审计日志,均通过在 CI 中验证的清单文件绑定在一起。promptbook 引用的每一条规则都**真实存在**、**有触发的 fixture**,并且在安全的 fixture 中**没有误报** —— 这是经过验证的,而非口头声明。
## 检测模型 (D1–D4)
| 级别 | 定义 | 置信度 |
|---|---|---|
| **D1** | regex/启发式 | 低 |
| **D2** | AST/Semgrep(由 fixture 验证) | 高(静态) |
| **D3** | 逻辑/架构(review/LLM) | 需要人工判断 |
| **D4** | runtime/DAST(in-process) | 高(动态) |
坦白地说:SAST (D2) 只能看到静态模式。逻辑/runtime 漏洞(如 IDOR、竞态条件、访问控制)属于 **D3/D4**,并在设计上被归入 `review` —— 绝不声明不存在的覆盖率(“没有幽灵规则”)。
## 目录结构
```
vibe_coding_security_dataset.md # the promptbook (the defenses, wrong vs. correct example)
mapa_de_cobertura.md # coverage matrix vs OWASP/CWE (what's strong and what's blind)
.semgrep/ # executable pack: 40 rules (vibecoding.yml + infra.yml)
manifesto/
cobertura.yml # SINGLE SOURCE: links each P-xx node to rule/fixture/section/CWE/OWASP
validar.py # anti-drift gate: 8 invariants (CI)
auditar.py # consumes Semgrep JSON -> deterministic JSONL audit tree
schema_auditrun.json # audit log schema
mcp/ # MCP Server (stdlib-only): exposes the guardian as tools
runner/ # isolated execution sandbox (hardened Docker) to run over untrusted code
validacao/
fixtures_vuln/ fixtures_safe/ # regression: vuln fires, safe stays quiet (0 FP)
dast/ # in-process DAST harness (pytest) for auth attacks
benchmark/
RELATORIO_BENCHMARK.md # TP/FP measured on real vulnerable apps (NodeGoat, dvpwa)
```
## 快速开始
**防漂移门禁(快速,无需 Docker):**
```
python manifesto/validar.py # 8 invariants; fails CI if there's drift
```
**Semgrep 包(通过 Docker 运行 —— Semgrep 无法在 Windows 上原生运行):**
```
docker run --rm -v "$PWD:/cfg:ro" -v ":/code:ro" semgrep/semgrep:latest \
semgrep scan --config /cfg/.semgrep /code --metrics=off
```
**针对不可信代码的隔离沙箱**(egress-deny + 只读文件系统 + 非 root 用户):参见 `manifesto/runner/README.md`。
**确定性审计树:**
```
python manifesto/auditar.py --semgrep-json --target-label target
python manifesto/auditar.py --replay manifesto/auditorias/.jsonl
```
**In-process DAST:**
```
python -m pytest validacao/dast -q
```
**MCP Server**(通过任何 MCP 客户端调用此守护者 —— 只读,仅使用标准库):参见 `manifesto/mcp/README.md`。
## 原则
- **验证具有强制约束力。** 每条规则都通过真实扫描由 fixture 验证(在漏洞上触发,在安全代码上 0 误报),而非仅凭肉眼检查。
- **没有幽灵规则。** 如果没有可靠的静态检测手段,该节点即被标记为 D3/review —— 绝不虚构覆盖率。
- **防漂移。** `manifesto/validar.py` 使得 promptbook 无法引用不存在的规则、缺失的 fixture 或不存在的章节。
- **最小权限原则。** 沙箱拒绝网络访问和文件系统写入;MCP 是只读的;审计器绝不接触 Docker daemon。
## 许可证
MIT —— 参见 [LICENSE](LICENSE)。由 **ocelotbr-decoBR** 维护。
标签:AI安全智能体, AV绕过, DAST, FastAPI, Semgrep, WordPress安全扫描, 代码安全审计, 安全检查规则, 安全规则引擎, 恶意软件分析, 请求拦截, 逆向工具, 静态应用安全测试(SAST)