gbt-code-audit:按国标做 Agent 代码安全审计

前言

国内项目验收、等保或内审里,经常要把发现项对齐到 GB/T 条款,而不是只给一份 CWE 列表。单靠通用 SAST 工具,国标章节映射和中文合规表述往往要人工补。若在 Cursor、Claude Code 等支持 Skills 的 Agent 里做审计,还需要一套可重复的工作流:先快速扫一遍基线,再让模型做语义层面的深审,最后产出可归档的 Markdown 报告。

下面介绍 SkillHub 上的社区 Skill gbt-code-audit(坐标 @user_9b59adcf/zzcp-gbt-code-audit,当前版本 2.0.4)。它将 GB/T 34943、34944、34946、39412 与「快速扫描 + LLM 深度审计」流程打包进 SKILL.md,并附带 Python 脚本与国标参考文档;标签 requires_api_key=false,不依赖额外 API Key。

这是什么

gbt-code-audit 是面向 Agent 的代码安全审计 Skill:依据中国国家标准对源代码做漏洞检测与归类,输出带国标映射的 Markdown 审计报告。发布来源为 SkillHub community,分类 dev-programming,由 user_9b59adcf 维护;SkillHub 页面显示评分 100000,下载 1833 次,安装 18 次。

Skill 自述适用于项目验收、安全合规审查、代码质量评估等场景;文档注明已在 GLM-5 模型下测试通过。

核心功能

以下能力均来自 Skill 包内 SKILL.md 与 README.md 的说明。

标准与语言

  • 国标:GB/T 34943-2017(C/C++)、GB/T 34944-2017(Java)、GB/T 34946-2017(C#)、GB/T 39412-2020(通用基线)。
  • SkillHub 简介明确支持 Java、C/C++、C#、Python 多语言检测;包内文档称理论上可审计更多语言,有专用标准的语言做「专用标准 + 39412」双映射,其余语言以 GB/T 39412 单映射。

双引擎流程

核心链路为:

快速扫描 → 基线入库 → LLM 深度审计 → 生成报告
  • 快速扫描:正则与规则匹配,并可自动调用 Gitleaks、Bandit、Semgrep(仅快速扫描阶段);由 quick_scan 并行扫文件,生成 findings/baseline/*.md。
  • LLM 深度审计:要求 Agent 独立阅读源码、做语义与业务逻辑分析,写入 findings/llm_audit/*.md,并对 baseline 项做「有效 / 误报」判定。
  • 收尾:finalize_report 负责去重、代码片段与行号校验、幻觉过滤,生成 audit_report_YYYYMMDD_HHMMSS.md(或指定 --output)。

配套资产

  • docs/reference/:国标规则摘录;docs/vulnerabilities/:漏洞类型说明;docs/workflow/:审计流程、质量标准与排错。
  • test-samples/:Java、Python、C/C++、C# 示例漏洞代码,便于本地试跑流程。

安装与启用

先做 SkillHub CLI 检查;未安装时按官方安装文档执行(完整安装或仅 CLI)。

command -v skillhub && skillhub --version
# 未安装 CLI 时(摘自 https://skillhub.cn/install/skillhub.md)
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

安装本 Skill 时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认落在 ./skills/ 可能无法被识别。常见路径如下(同官方安装文档):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下 .agents/skills/

在对应目录执行:

skillhub install zzcp-gbt-code-audit --namespace user_9b59adcf --dir ~/.cursor/skills/

也可按 SkillHub 页面提示,让 Agent 阅读 https://skillhub.cn/install/skillhub.md 并安装 @user_9b59adcf/zzcp-gbt-code-audit。安装后需按各客户端要求重启或刷新 Skills 列表。

Skill 脚本侧说明仅使用 Python 标准库运行 scripts/skill.py;快速扫描若调用 Bandit、Semgrep、Gitleaks,需本机已安装相应 CLI 且可被脚本找到。

典型用法

在已加载 Skill 的项目根目录(或 Skill 包内)操作。Agent 侧需先按 SKILL.md 阅读 docs/workflow/audit_workflow.md 与 docs/workflow/quality_standards.md,并完成「学习标准」确认输出后,再进入 LLM 审计。

1、准备目录

mkdir -p findings/baseline findings/llm_audit

2、快速扫描

将 --target 换成待审代码路径;包内自带样本可指向 test-samples/。

python scripts/skill.py quick_scan --target test-samples/java

扫描会为匹配项生成 baseline 的 Markdown 条目,默认状态为「误报」,供后续 LLM 复核。

3、LLM 审计(由 Agent 执行)

按 Skill 要求:不依赖快速扫描结果做关键字重复扫,应 Read / Grep 覆盖全部源码文件,对真实风险写 findings/llm_audit/*.md,字段含严重等级、CWE、国标映射、问题描述与修复方案(修复方案字数要求见质量标准文档)。

4、生成报告

python scripts/skill.py finalize_report --output audit_report.md

finalize_report 会输出去重、验证后的统计 JSON 字段(如 effective_count、hallucinations_count 等),最终报告仅包含状态为「有效」的发现项。

适用场景与注意

适合谁

  • 需要在交付物中体现 GB/T 条款映射 的安全或质量审计。
  • 已使用 Cursor、Claude Code、Codex 等 Agent,希望把审计步骤固化在 Skill 里,而不是每次手写提示词。
  • 希望「规则快速扫 + 模型深审」分工明确、产出统一 Markdown 归档的团队。

限制与注意

  • 快速扫描以正则与可选外部工具为主,不能替代 LLM 审计步骤;Skill 明确要求 LLM 审计须覆盖全部源文件,并自行验证行号,否则 finalize_report 可能将条目记为幻觉而不进入报告。
  • 国标映射与描述质量依赖 Agent 是否按 quality_standards.md 执行;脚本只做格式与片段校验,语义是否成立由模型负责。
  • SkillHub 分类为 dev-programming,路线图文档提及后续 CI/CD、Web UI 等规划,以包内 SKILL.md 为准,未发布能力勿当作已可用。
  • 外部工具 Bandit、Semgrep、Gitleaks 未安装时,快速扫描能力可能缩水,需结合本机环境确认。

结尾

gbt-code-audit 把国标条款、双阶段审计流程和报告生成脚本收拢为一个 Agent Skill,适合在国内合规语境下做可复现的代码安全审计。安装与坐标以 SkillHub 为准:

  • 页面:https://www.skillhub.cn/skills/user_9b59adcf/zzcp-gbt-code-audit
  • API 条目:https://api.skillhub.cn/user_9b59adcf/zzcp-gbt-code-audit
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye