# DeepAudit Agent 审计模块 v3.0.0 ## 概述 Agent 审计模块是 DeepAudit v3.0.0 的核心功能,基于 **Multi-Agent 架构** 实现自主代码安全分析和漏洞验证。 ### 核心特性 - 🤖 **Multi-Agent 协作**: Orchestrator 编排决策,多智能体协作审计 - 🧠 **RAG 知识库增强**: 代码语义理解 + CWE/CVE 漏洞知识库 - 🔒 **沙箱漏洞验证**: Docker 安全容器自动执行 PoC - 🛠️ **专业工具集成**: Semgrep、Bandit、Gitleaks、OSV-Scanner 等 --- ## 架构设计 ### Multi-Agent 工作流 ``` ┌─────────────────────────────────────────────────────────────────────┐ │ DeepAudit Agent 审计工作流 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ START │ │ │ │ │ ▼ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ Orchestrator Agent (编排决策) │ │ │ │ • 分析审计目标 • 制定审计策略 │ │ │ │ • 分配子任务 • 汇总审计结果 │ │ │ └────────────────────────────┬───────────────────────────────────┘ │ │ │ │ │ ┌────────────────┼────────────────┐ │ │ ▼ ▼ ▼ │ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ │ │ Recon Agent │ │ Analysis Agent │ │Verification Agent│ │ │ │ (信息收集) │ │ (漏洞分析) │ │ (漏洞验证) │ │ │ │ │ │ │ │ │ │ │ │ • 项目结构分析 │ │ • Semgrep 扫描 │ │ • 沙箱测试 │ │ │ │ • 技术栈识别 │ │ • RAG 语义搜索 │ │ • PoC 生成 │ │ │ │ • 入口点发现 │ │ • LLM 深度分析 │ │ • 误报过滤 │ │ │ │ • 依赖扫描 │ │ • 数据流追踪 │ │ • 置信度评估 │ │ │ └────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘ │ │ │ │ │ │ │ └────────────────────┴────────────────────┘ │ │ │ │ │ ▼ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ Report Generation │ │ │ │ • 漏洞汇总 • 安全评分 │ │ │ │ • 修复建议 • 统计分析 │ │ │ └────────────────────────────┬───────────────────────────────────┘ │ │ │ │ │ ▼ │ │ END │ │ │ └─────────────────────────────────────────────────────────────────────┘ ``` ### Agent 职责 | Agent | 职责 | 使用工具 | |-------|------|----------| | **Orchestrator** | 统筹编排,自主决策审计策略 | 任务分配、结果汇总 | | **Recon** | 信息收集,识别技术栈和入口点 | list_files, npm_audit, safety_scan, gitleaks | | **Analysis** | 深度分析,挖掘潜在安全漏洞 | semgrep, bandit, rag_query, code_analysis | | **Verification** | 沙箱验证,确认漏洞真实有效 | sandbox_exec, vulnerability_validation | --- ## 快速开始 ### 1. 部署 Agent 模式 ```bash # 配置环境变量 cp backend/env.example backend/.env # 编辑 .env,设置 AGENT_ENABLED=true # 启动包含 Milvus 的完整服务 docker compose --profile agent up -d ``` ### 2. 构建沙箱镜像 ```bash cd docker/sandbox ./build.sh ``` ### 3. 使用 Agent 审计 1. 在项目详情页点击 "Agent 审计" 2. 选择目标漏洞类型 3. 可选:上传知识库文件增强检测 4. 启动审计,实时查看 Agent 执行日志 --- ## 工具集 ### 内置工具 | 工具 | 功能 | Agent | |------|------|-------| | `list_files` | 目录浏览 | Recon | | `read_file` | 文件读取 | All | | `search_code` | 代码搜索 | Analysis | | `rag_query` | 语义检索 | Analysis | | `security_search` | 安全代码搜索 | Analysis | | `function_context` | 函数上下文 | Analysis | | `pattern_match` | 模式匹配 | Analysis | | `code_analysis` | LLM 分析 | Analysis | | `dataflow_analysis` | 数据流追踪 | Analysis | | `vulnerability_validation` | 漏洞验证 | Verification | | `sandbox_exec` | 沙箱执行 | Verification | | `verify_vulnerability` | 自动验证 | Verification | ### 外部安全工具 | 工具 | 功能 | 适用场景 | |------|------|----------| | `semgrep_scan` | Semgrep 静态分析 | 多语言快速扫描 | | `bandit_scan` | Bandit Python 扫描 | Python 安全分析 | | `gitleaks_scan` | Gitleaks 密钥检测 | 密钥泄露检测 | | `trufflehog_scan` | TruffleHog 扫描 | 深度密钥扫描 | | `npm_audit` | npm 依赖审计 | Node.js 依赖漏洞 | | `safety_scan` | Safety Python 审计 | Python 依赖漏洞 | | `osv_scan` | OSV 漏洞扫描 | 多语言依赖漏洞 | --- ## RAG 系统 ### 功能特点 - **代码分块**: 基于 Tree-sitter AST 的智能分块 - **向量存储**: Milvus 或 ChromaDB 持久化 - **多语言支持**: Python, JavaScript, TypeScript, Java, Go, PHP, Rust 等 - **知识库增强**: 支持上传自定义漏洞知识库 ### 配置 ```env # 嵌入模型配置 EMBEDDING_PROVIDER=openai EMBEDDING_MODEL=text-embedding-3-small # 向量数据库配置 VECTOR_DB_TYPE=milvus MILVUS_HOST=milvus MILVUS_PORT=19530 ``` --- ## 安全沙箱 ### 功能特点 - **Docker 隔离**: 安全容器执行 PoC - **资源限制**: 内存、CPU 限制 - **网络隔离**: 可配置网络访问 - **seccomp 策略**: 系统调用白名单 ### 配置 ```env SANDBOX_ENABLED=true SANDBOX_IMAGE=deepaudit-sandbox:latest SANDBOX_MEMORY_LIMIT=512m SANDBOX_CPU_LIMIT=1.0 SANDBOX_NETWORK_DISABLED=true ``` ### 沙箱镜像内置工具 - Python 3.11 + Semgrep, Bandit, Safety - Node.js 20 + npm audit - Go 1.21 + OSV-Scanner - Rust + cargo-audit - Gitleaks, TruffleHog --- ## API 接口 ### 创建任务 ```http POST /api/v1/agent-tasks/ Content-Type: application/json { "project_id": "xxx", "name": "安全审计", "target_vulnerabilities": ["sql_injection", "xss"], "verification_level": "sandbox", "max_iterations": 3 } ``` ### 事件流 ```http GET /api/v1/agent-tasks/{task_id}/events Accept: text/event-stream ``` ### 获取发现 ```http GET /api/v1/agent-tasks/{task_id}/findings?verified_only=true ``` ### 任务摘要 ```http GET /api/v1/agent-tasks/{task_id}/summary ``` ### 导出报告 ```http GET /api/v1/agent-tasks/{task_id}/report?format=markdown ``` --- ## 支持的漏洞类型 | 类型 | 说明 | |------|------| | `sql_injection` | SQL 注入 | | `xss` | 跨站脚本 | | `command_injection` | 命令注入 | | `path_traversal` | 路径遍历 | | `ssrf` | 服务端请求伪造 | | `xxe` | XML 外部实体 | | `insecure_deserialization` | 不安全反序列化 | | `hardcoded_secret` | 硬编码密钥 | | `weak_crypto` | 弱加密 | | `authentication_bypass` | 认证绕过 | | `authorization_bypass` | 授权绕过 | | `idor` | 不安全直接对象引用 | --- ## 目录结构 ``` backend/app/services/agent/ ├── __init__.py # 模块导出 ├── event_manager.py # 事件管理 ├── agents/ # Agent 实现 │ ├── __init__.py │ ├── base.py # Agent 基类 │ ├── recon.py # 信息收集 Agent │ ├── analysis.py # 漏洞分析 Agent │ ├── verification.py # 漏洞验证 Agent │ └── orchestrator.py # 编排 Agent ├── tools/ # Agent 工具 │ ├── __init__.py │ ├── base.py # 工具基类 │ ├── rag_tool.py # RAG 工具 │ ├── pattern_tool.py # 模式匹配工具 │ ├── code_analysis_tool.py │ ├── file_tool.py # 文件操作 │ ├── sandbox_tool.py # 沙箱工具 │ └── external_tools.py # 外部安全工具 └── prompts/ # 系统提示词 ├── __init__.py └── system_prompts.py ``` --- ## 故障排除 ### 常见问题 **Q: Agent 审计启动失败** ```bash # 检查服务状态 docker compose --profile agent ps # 查看后端日志 docker compose logs backend | grep -i agent ``` **Q: RAG 初始化失败** ```bash # 检查 Milvus 连接 curl http://localhost:9091/healthz # 检查嵌入模型配置 # 确保 EMBEDDING_API_KEY 正确设置 ``` **Q: 沙箱执行失败** ```bash # 检查沙箱镜像 docker images | grep deepaudit-sandbox # 重新构建沙箱 cd docker/sandbox && ./build.sh ``` **Q: 外部工具不可用** ```bash # 检查工具安装(本地开发时) which semgrep bandit gitleaks # 或使用 Docker 沙箱执行 ``` ### 日志查看 ```bash # 查看 Agent 日志 docker compose logs -f backend | grep -E "(agent|Agent)" # 查看详细日志 tail -f logs/agent.log ``` --- ## 更多资源 - [部署指南](DEPLOYMENT.md) - 完整部署说明 - [配置说明](CONFIGURATION.md) - 详细配置参数 - [架构详解](AGENT_AUDIT_ARCHITECTURE.md) - 深度架构文档