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)