一个前端可访问的代码审计工作台,支持从 GitHub 发现候选开源 Web CMS,或直接导入本地仓库,再通过规则层与大模型复核生成可下载的 HTML 报告。
源项目:Bai-codeagent GBT 审计集成:基于 gbt-code-audit-skill 的国标代码安全审计功能
- 批量发现候选开源 CMS 项目,并手动筛选审计目标
- 对选中目标生成本地审计镜像,减少直接在线分析带来的不稳定性
- 结合规则层与 LLM 复核,输出更清晰的审计说明
- 通过前端完成连接配置、任务发起、进度跟踪、结果查看和报告下载
- 基于中国国家标准(GB/T 34943/34944/34946/39412)的代码安全审计
-
GitHub 候选发现 按 CMS 相关查询批量发现候选项目,支持分页选择要审计的目标。
-
本地镜像审计 对选中目标先下载审计镜像,再执行规则层分析与大模型复核。
-
审计 Skill 内置访问控制、初始化与配置、上传与存储、查询与注入、敏感信息等防御性审计能力。
-
GB/T 国标代码安全审计 基于中国国家标准的多语言漏洞检测,采用「快速扫描 + LLM 深度审计」双引擎。
-
向量数据库集成 支持代码语义检索,提升漏洞发现的准确性和上下文理解能力。
-
模块化分析器 支持静态分析、污点追踪、模式匹配等多种分析方式,便于扩展新语言和新规则。
-
YAML 规则配置 检测规则通过 YAML 文件配置,支持灵活的规则扩展和定制。
-
HTML 报告导出 输出结构化、可下载、适合留档的 HTML 审计报告。
-
环境自检 前端可配置主流 LLM API 与 GitHub Token,并在页面中直接测试连接。
-
项目记忆 保存常用查询、阈值和团队规则,减少重复配置。
-
状态持久化与断点恢复 审计任务状态自动保存,支持暂停/恢复,长时审计更可靠。
-
代码检索增强 LLM 审计 LLM 审计前自动索引代码,混合检索(语义+关键词)提供上下文增强。
-
沙箱验证 自动验证发现的漏洞,降低误报率。
-
AST 深度分析 抽象语法树分析,提供漏洞上下文深度理解。
基于中国国家标准(GB/T 34943/34944/34946/39412)的代码安全审计功能,支持多种编程语言的漏洞检测。
- 国标合规:严格遵循中国国家标准(GB/T 34943/34944/34946/39412)
- 双层检测:快速扫描(正则表达式)+ LLM 深度审计(语义分析)
- 多语言支持:Java、Python、C/C++、C#、Go、JavaScript、TypeScript、PHP、Ruby、Rust、Kotlin、Swift、Scala、Perl、Lua、Shell(16 种语言)
- 专业评分:CVSS 三维评分系统(可达性、影响范围、利用复杂度)
- 详细报告:包含漏洞类型、CWE、国标映射、修复建议等完整信息
| 分工 | 负责方 | 发现的漏洞类型 |
|---|---|---|
| 快速扫描 | 代码(正则表达式) | 高风险函数调用(命令注入、SQL注入、缓冲区溢出等) |
| LLM审计 | LLM(语义分析) | 需要上下文分析的漏洞(业务逻辑、输入验证、认证安全等) |
| LLM审查 | LLM(深入分析) | 复杂业务逻辑漏洞、漏洞验证、最终决策 |
- 严重漏洞:认证绕过、权限缺失、命令注入、SQL注入、代码注入、反序列化
- 高危漏洞:CSRF、会话固定、开放重定向、文件上传、并发安全、整数溢出、格式化字符串、SSRF、XXE
- 中危漏洞:信息泄露、输入验证不足、异常处理不当、资源管理问题、认证信息暴露、信任边界违反
- GB/T 34943-2017:C/C++ 语言源代码漏洞测试规范
- GB/T 34944-2017:Java 语言源代码漏洞测试规范
- GB/T 34946-2017:C# 语言源代码漏洞测试规范
- GB/T 39412-2020:网络安全技术 源代码漏洞检测规则
详细规则:见 docs/gbt-audit/reference/ 目录下的国标文件
- GBT_34943-2017.md - C/C++ 专用
- GBT_34944-2017.md - Java 专用
- GBT_34946-2017.md - C# 专用
- GBT_39412-2020.md - 通用基线(所有语言)
完整的审计文档位于 docs/ 目录:
- SKILL.md - 主技能文档,包含审计原则、流程、质量标准
- LLM 审计执行指南 - LLM 审计执行流程和验证机制
- 输出质量检查标准 - 修复方案编写要求和验证机制
| 工具 | 描述 | 路径 |
|---|---|---|
QuickScanService |
快速扫描服务(166 条规则,16 种语言) | src/services/quickScanService.js |
ExternalToolService |
外部工具集成(Gitleaks/Bandit/Semgrep) | src/services/externalToolService.js |
ValidationService |
自动验证服务(去重 + 验证 + 行号修正 + 沙箱验证) | src/services/validationService.js |
DefensiveLlmReviewer |
LLM 深度审计服务(语义分析 + 漏洞验证 + 代码检索增强) | src/services/llmReviewService.js |
LLMFactory |
LLM 适配器工厂(OpenAI/Anthropic/Gemini) | src/services/llmFactory.js |
AuditCoverageChecker |
审计覆盖率检查工具 | src/tools/auditCoverageChecker.js |
LocalToolExecutor |
本地工具执行器 | src/tools/localToolExecutor.js |
writeAuditHtmlReport |
HTML 报告生成 | src/services/reportWriter.js |
VectorStore |
向量数据库服务(代码语义检索) | src/services/vectorStore.js |
EmbeddingsService |
嵌入服务(代码向量化) | src/services/embeddings.js |
CodeRetriever |
代码检索服务(代码索引 + 混合检索) | src/services/retriever.js |
StatePersistence |
状态持久化(检查点 + 断点恢复) | src/core/stateManager.js |
CircuitBreaker |
熔断器(熔断机制 + 自动恢复) | src/core/circuitBreaker.js |
ASTEnhancer |
AST 深度分析增强 | src/services/astEnhancer.js |
采用三维评分公式:score = R*0.40 + I*0.35 + C*0.25
| 维度 | 说明 | 分值范围 |
|---|---|---|
| 可达性 (R) | HTTP直接可达/需要认证/需要管理员权限 | 0-3 |
| 影响范围 (I) | RCE/数据泄露/有限泄露 | 0-3 |
| 利用复杂度 (C) | 单次请求/多步操作/特定环境 | 0-3 |
根据严重等级动态调整前缀:
- 严重 → C(如 C-CMD-001)
- 高危 → H(如 H-SQL-001)
- 中危 → M(如 M-XSS-001)
- 低危 → L(如 L-INFO-001)
- 在前端配置 LLM 提供商、模型、API Key 和 GitHub Token
- 通过 GitHub 模式发现候选项目,或直接导入本地仓库
- 手动选择需要审计的目标
- 系统生成本地审计镜像
- 执行规则层分析与 LLM 复核
- 下载最终 HTML 报告
gbt-codeagent/
├── server.js # HTTP 服务、任务编排、环境自检入口
├── public/ # 前端页面、交互逻辑、样式与进度展示
├── src/
│ ├── agents/ # 候选发现、本地导入、审计分析智能体
│ ├── analyzers/ # 模块化分析器(静态分析、污点追踪、模式匹配)
│ ├── config/ # LLM 提供商配置、审计 Skill 配置、检测规则、OWASP 映射
│ ├── core/ # 核心基础设施(熔断器、限流器、重试、状态管理、遥测)
│ ├── knowledge/ # 知识库(框架识别、漏洞知识)
│ ├── services/ # LLM 复核、报告生成、快速扫描、验证、向量存储等服务
│ ├── store/ # 任务状态存储
│ ├── tools/ # 审计覆盖率检查等工具
│ └── utils/ # 文件工具、上下文管理
├── docs/ # 项目文档
│ ├── gbt-audit/ # GBT 国标代码安全审计文档
│ │ ├── reference/ # 国标参考文件
│ │ ├── vulnerabilities/ # 漏洞知识库
│ │ └── workflow/ # 审计工作流与质量标准
│ └── screenshots/ # 页面截图
├── audit_checkpoints/ # 审计检查点,用于断点恢复
├── cache/ # 缓存目录(AST、向量等)
├── config/ # 配置文件目录
├── data/ # 数据存储目录
├── workspace/ # 工作区目录(下载、报告等)
Windows (PowerShell - 管理员权限):
.\install-deps.ps1Windows (CMD - 管理员权限):
install-deps.cmdLinux/Mac:
chmod +x install-deps.sh
./install-deps.sh自动安装脚本会检测并安装以下工具:
- 必需: Node.js, Git, Python, pip
- 可选: Gitleaks, Bandit, Semgrep(用于增强扫描能力)
详细安装说明请查看:依赖工具安装指南
npm installnode server.js启动后访问:
.\launch.cmd或:
.\launch.ps1- GitHub 模式不会在"候选发现"阶段直接调用大模型
- 只有在你选中目标并开始审计后,系统才会下载本地审计镜像并进入 LLM 复核
- 页面会实时展示镜像下载进度与 LLM 复核进度
- 结果输出偏向防御性代码审计说明,不包含攻击载荷或利用链细节
- 选择"GB/T 国标代码安全审计"技能可启用国标审计功能
- 在审计配置中选择 "GB/T 国标代码安全审计" 技能
- 选择要审计的项目和语言
- 启动审计流程
- 查看详细的审计报告(包含 CVSS 评分、国标映射、修复建议)
- 后端:Node.js (ES Modules)
- 前端:原生 HTML/CSS/JavaScript
- LLM:OpenAI / Anthropic / Gemini / Qwen / DeepSeek / 百度 / MiniMax / 豆包(通过统一适配器)
- 外部工具:Gitleaks / Bandit / Semgrep(可选集成)
- 韧性:熔断器 + 指数退避重试 + 令牌桶限流 + 状态持久化
- AST 分析:抽象语法树构建 + 查询 + 增强
- 向量检索:代码语义检索 + 关键词检索混合
见 LICENSE 文件。

