前言¶
國內項目驗收、等保或內審裏,經常要把發現項對齊到 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