wholidi/dev-guardian
GitHub: wholidi/dev-guardian
基于多智能体 LLM 工作流的 AI 安全代码扫描器,可检测源代码中的 OWASP Top 10 漏洞并生成技术与管理层双模式安全报告。
Stars: 0 | Forks: 0
# Dev Guardian
**GenAI 驱动的安全代理** — 一个智能、自动化的代码审查系统,利用多智能体 LLM 工作流识别源代码和项目中的安全漏洞。
为 **Seagate GenAI 黑客马拉松** 构建,并融入了受 **AISB Singapore 2026** 启发的蓝队治理控制。
🌐 **在线演示:** https://devguardian-urielle-ai.up.railway.app/ui
## 功能介绍
Dev Guardian 结合了多智能体分析、Guardrails 验证以及基于 LangChain 的管理层报告功能,可为工程师、审计员和业务领导者提供深度技术发现和高层次的安全洞察。
```
[File / ZIP Upload]
↓
[ScanAgent] → LLM-powered static security review
↓
[RiskClassifierAgent] → Severity normalisation + OWASP mapping
↓
[SummaryAgent] → Executive summary or technical report
↓
[PDF / JSON Report] → Downloadable output
```
## 🚀 特性
### 🔍 安全扫描引擎
- 扫描 Python、JS、TS、Java、C#、Go 及其他常见源文件
- 基于严格 OWASP 对齐指令的 LLM 安全审查
- 检测:
- SQL / NoSQL / 命令注入
- 跨站脚本攻击 (XSS)
- 硬编码的秘密和 API 密钥(包括 base64 混淆变体)
- 不安全的加密(MD5、SHA-1、禁用的 TLS、弱随机数)
- 不安全的反序列化(pickle、eval)
- 敏感数据暴露和明文 PII 存储
- 不安全的文件处理和路径遍历
- CSRF、开放重定向
- 完整的 OWASP Top 10 覆盖
### 🧠 多智能体架构
| 智能体 | 角色 | 模型 |
|---|---|---|
| `ScanAgent` | 基于 LLM 的静态安全审查 | `gpt-4.1-mini` |
| `RiskClassifierAgent` | 严重性归一化 + OWASP 映射 | `gpt-4.1-nano` |
| `SummaryAgent` | 技术或管理层摘要生成 | `gpt-4.1-mini` |
| `SupervisorAgent` | 将请求路由到正确的工作流 | `gpt-4.1-nano` |
### 🌐 Web 界面 (FastAPI)
- **文件扫描器** — 单文件分析
- **文件夹扫描器** — 带有模式选择的全项目 ZIP 分析
- **技术模式** — 面向工程师的详细发现表格
- **管理层模式** — 面向管理者和审计员的 LangChain 叙述报告
- **JSON + PDF 导出** — 可下载报告
- **交互式 HTML UI** — 基于 `/ui` 路径的浏览器访问
## 🔒 蓝队治理
Dev Guardian 扩展了三层 Token 控制和威胁建模的治理框架
### 第 1 层 — OpenAI 平台控制
- 设置月度预算上限,并在 50% / 80% / 100% 时发出支出警报
- 针对每个模型验证 Tier 1 TPM 限制
### 第 2 层 — 按智能体选择模型
用特定用途的模型分配取代单一的全局模型(降低约 90% 成本):
```
SCAN_MODEL = "gpt-4.1-mini" # Core vulnerability detection
CLASSIFY_MODEL = "gpt-4.1-nano" # JSON normalisation only
SUMMARY_MODEL = "gpt-4.1-mini" # Narrative generation
SUPERVISOR_MODEL = "gpt-4.1-nano" # Routing JSON only
```
### 第 3 层 — 应用层控制
| 控制 | 实现 |
|---|---|
| 每个智能体的 `max_output_tokens` | 150–1500 个 Token,按用途限定 |
| 文件大小限制 | 在调用 API 前拒绝大于 50KB 的单文件 |
| 文件夹大小限制 | 在调用 API 前拒绝总计大于 200KB 的文件夹 |
| tiktoken 预检 | 在分发前于本地估算 Token 数量 |
| 输入截断 | 上限为 8,000 个 Token,继续进行部分扫描 |
| JSON 模式强制 | 对 4 个智能体中的 3 个强制使用 `json_object` |
| Token 使用审计日志 | 每次智能体调用记录到 `token_usage.log` |
## 🧪 测试结果
**最终得分:100/100 · 7/7 通过 · 生产就绪**
| TC | 测试 | 发现 | 结果 |
|---|---|---|---|
| TC-01 | 干净基线 | 0 | ✅ 零误报 |
| TC-02 | 硬编码秘密 | 1 组 | ✅ 检测到所有 7 种模式 + b64 |
| TC-03 | 注入漏洞 | 7 | ✅ SQL、命令、路径遍历 |
| TC-04 | Prompt 注入 | 1 | ✅ 完全抵御对抗性字符串 |
| TC-05 | 弱密码学 | 9 (Web) | ✅ MD5、SHA1、TLS、pickle、random |
| TC-06 | XSS / Web 漏洞 | 10 | ✅ DOM XSS、eval、redirect、CSRF |
| TC-07 | 文件夹扫描 (ZIP) | 12 (Web) | ✅ 4 个文件,11 个 CRITICAL,1 个 HIGH |
请参阅 `Testing/` 获取完整测试套件,并参阅 `Testing/README.md` 了解测试方法。
## 📁 项目结构
```
dev-guardian/
├── src/
│ ├── ai_agent.py # ScanAgent + Layer 2+3 controls
│ ├── multi_agent_workflow.py # All agents + orchestration
│ ├── api_server.py # FastAPI server + UI
│ ├── guardrails_utils.py # Schema enforcement
│ ├── langchain_supervisor_workflow.py # Executive report mode
│ └── report_html.py # HTML report generator
├── Testing/
│ ├── Blue team test/ # TC-01 to TC-07 test files
│ └── README.md # Test methodology + results
├── docs/ # Technical documentation
├── samples/ # Example scan targets
├── requirements.txt
└── README.md
```
## ⚡ 快速开始
### 前置条件
- Python 3.11+
- OpenAI API 密钥(推荐 Tier 1 账户)
### 安装说明
```
git clone https://github.com/wholidi/dev-guardian.git
cd dev-guardian
pip install -r requirements.txt
```
### 配置
```
# 设置环境变量(切勿硬编码)
export OPENAI_API_KEY="sk-..."
export USE_REAL_LLM="True"
```
### 本地运行
```
python -m uvicorn src.api_server:app --host 0.0.0.0 --port 8080
```
在浏览器中打开 http://localhost:8080/ui。
### 通过 CLI 运行扫描
```
import sys
sys.path.insert(0, '.')
from pathlib import Path
from src.multi_agent_workflow import security_scan_workflow
result = security_scan_workflow(Path('your_file.py'))
print('Findings:', len(result['findings']))
print('Summary:', result['summary'])
```
## 🚢 部署到 Railway
1. Fork 此仓库
2. 连接到 Railway → New Project → Deploy from GitHub
3. 在 Railway Dashboard 中设置环境变量:
- `OPENAI_API_KEY` = 你的密钥
- `USE_REAL_LLM` = `True`
4. 每次推送时 Railway 都会自动部署
## 🛡️ STRIDE 威胁模型
Dev Guardian 的四个信任边界:
```
[User / File Upload]
↓
[FastAPI Endpoint] ← Input validation + size gates
↓
[ScanAgent / LLM] ← Prompt injection hardening
↓
[RiskClassifier / Guardrails] ← Schema enforcement
↓
[Report Output HTML/PDF] ← Output sanitisation
```
每个第 3 层控制都映射到一个特定的 STRIDE 威胁 — 没有一刀切的封锁。
## 📋 依赖要求
```
openai
fastapi
uvicorn
python-dotenv
httpx
tiktoken
langchain
langchain-openai
guardrails-ai
pydantic
```
## 🔗 参考
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [AISB Singapore 2026](https://aisb.dev)
- [OpenAI API 速率限制](https://platform.openai.com/docs/guides/rate-limits)
- [Railway 部署](https://railway.app)
## ⚠️ 免责声明
Dev Guardian 是一款安全研究和教育工具。`Testing/` 目录包含的合成漏洞模式仅用于扫描器验证 — 不包含真实的凭证或生产数据。所有测试秘密均不可实际使用。
*由 Urielle AI Audit 构建 · 蓝队治理*
标签:AI, AI安全扫描器, API密钥检测, AV绕过, CISA项目, DevSecOps, DLL 劫持, FastAPI, GenAI, GPT-4, Guardrails, LangChain, LLM集成安全, OpenAI, OWASP Top 10, PII检测, PyRIT, SQL注入检测, StruQ, XSS检测, 上游代理, 人工智能, 代码安全审计, 内存规避, 多智能体系统, 大语言模型, 安全合规, 安全合规治理, 敏感数据泄露, 用户模式Hook绕过, 硬编码密钥, 网络代理, 网络安全, 自动化代码审查, 轻量级, 输入验证, 逆向工具, 隐私保护, 静态应用安全测试(SAST)