guls4h/vulcan
GitHub: guls4h/vulcan
VULCAN是一款基于LLM的Web漏洞扫描器,用于检测授权漏洞。
Stars: 0 | Forks: 0
# VULCAN — 基于LLM的Web漏洞扫描器
**作者:** Gülşah Şahin — 加兹大学,工程学院,计算机工程系
**课程:** BM496毕业设计项目(2025–2026春季)
VULCAN是一个毕业设计项目(BM496)的研究原型,它将一个
**HTTP拦截代理**与一个**LLM代理**结合起来,以检测现代Web应用程序中的授权漏洞——主要是IDOR/破坏访问控制。
HTTP流量通过`mitmproxy`捕获,嵌入到Milvus向量存储中,由[Agno](https://github.com/agno-agi/agno) ReAct代理(默认为`gpt-4o-mini`)分析,并报告给Textual TUI。
此存储库包含三个顶级包以及论文成果:
| 路径 | 目的 |
|---|---|
| [`vulcan/`](vulcan/) | 扫描器本身:代理、代理、向量存储、报告生成器、Textual TUI、验证工具 |
| [`testapp/`](testapp/) | 故意有漏洞的Flask目标,带有标记的真相日志 |
| [`reports/`](reports/) | 论文级别的验证报告([VERIFICATION_REPORT.md](reports/VERIFICATION_REPORT.md)) |
## 测量性能
最新运行,17个场景,真实的`gpt-4o-mini`调用,置信度阈值70:
| 指标 | 值 |
|---|---|
| 精确度 | **84.6 %** |
| 召回率 | **100 %** |
| F1 | **0.917** |
| 准确率 | **88.2 %** |
| 平均LLM延迟 | 7 453 ms (p95 9 758 ms) |
| 令牌/请求 | 平均116,最大123(10 000 cap) |
| MCP过滤器率 | 53.3 %的流量在LLM之前被跳过 |
| PII屏蔽器 | ≈ 8 µs / 请求 |
完整分解和方法:[`reports/VERIFICATION_REPORT.md`](reports/VERIFICATION_REPORT.md).
## 快速开始
```
# 1. 启动易受攻击的目标
cd testapp
uv sync
uv run python -m testapp.app # http://localhost:5001
# 2. 配置 VULCAN
cd ../vulcan
uv sync
cp config.example.yaml config.yaml
cp .env.example .env # add your OPENAI_API_KEY
# 3. 在 TestApp 上运行扫描器
uv run vulcan scan --target http://localhost:5001 --no-wizard
# 4. (可选)重现验证号码
uv run python scripts/full_validation.py
```
请参阅[`vulcan/README.md`](vulcan/README.md)和[`vulcan/USAGE.md`](vulcan/USAGE.md)
以获取架构、配置和CLI详细信息。
## 存储库布局
```
Vulcan_Project/
├── vulcan/ # Scanner (Python 3.11+, uv, agno, mitmproxy, Milvus Lite)
│ ├── src/vulcan/ # Source: proxy_scanner, agent, report_agent, tui, utils
│ ├── scripts/ # full_validation.py — thesis-grade harness
│ ├── tests/ # 68 unit + integration tests
│ └── config.example.yaml
├── testapp/ # Flask vulnerable target with ground-truth logger
└── reports/ # VERIFICATION_REPORT.md (thesis verification)
```
## 测试
```
cd vulcan && uv run pytest -v
```
68个测试覆盖JSON修复、PII屏蔽、重试处理、令牌计数、真相指标和utils管道。
## 安全与负责任的使用
VULCAN是一个仅用于针对你拥有或明确授权测试的系统的研究成果。捆绑的`testapp/`是支持的目标。未经许可对第三方系统运行VULCAN可能是非法的。
API密钥仅从环境变量(`.env`)中读取——不会将任何机密提交到存储库(请参阅[`vulcan/.env.example`](vulcan/.env.example))。
## 许可证与归属
本项目作为加兹大学工程学院计算机工程系BM496毕业设计项目的成果发布。
作者:**Gülşah Şahin**。在[MIT许可证](LICENSE)下发布。
标签:Agno ReAct, Apex, F1分数, Flask, gpt-4o-mini, HTTP代理, IDOR, LLM, OpenAI API, Streamlit, Unmanaged PE, 准确率, 召回率, 向量数据库, 吞吐量, 延迟, 性能指标, 性能评估, 授权漏洞, 文本UI, 机器学习, 网络安全, 网络安全, 访问控制, 逆向工具, 隐私保护, 隐私保护