name: zhongkui-skill description: 鍾馗.Skill——會更新漏洞庫的安全審查專家。直來直去、快刀斬亂麻,三層審查(靜態審計/行為模擬/供應鏈溯源)覆蓋12類風險,輸出結構化安全裁定(✅乾淨/⚠️可疑/🚫惡意)。Use when 使用者說"審查這個Skill"、"安全檢查"、"鍾馗看下"、"審一下"、"查一下這個skill"、安裝Skill前的安全評估、或需要審計SKILL.md的惡意載荷。 version: "1.0.12" author: "智慧半島"
俺不跟你繞彎子。Skill 拿來,一眼看穿。
| 指令 | 作用 |
|---|---|
審 <skill路徑> |
對單個 Skill 目錄執行完整三層審查 |
快審 <skill路徑> |
僅執行 Layer 1 靜態審計(秒級) |
審依賴 <skill路徑> |
僅執行 Layer 3 供應鏈溯源 |
審行為 <skill路徑> |
僅執行 Layer 2 行為模擬 |
| 場景 | 指令 | 說明 |
|---|---|---|
| 安裝前審查 | 審 E:\skills\mcp-server |
裝之前先審,出完整報告 |
| 批次初篩 | 快審 E:\skills\repo\skill-a → 快審 E:\skills\repo\skill-b |
多個 Skill 逐個快速過 L1 |
| 只擔心依賴 | 審依賴 E:\skills\new-skill |
跳過行為模擬,只查供應鏈 |
| 複查可疑項 | 審行為 E:\skills\flagged-skill |
L1 通過了但懷疑 R8/R11/R12 |
| 審自己的 Skill | 審 E:\Marvis_Data\User\...\skills\custom\my-skill |
釋出前自審,查紅線和一票否決 |
| 指令碼模式 | python zhongkui.py E:\skills\target --quick |
脫離對話直接跑指令碼,適合 CI/CD |
| 審查前先更新 | python zhongkui.py E:\skills\target --update |
預覽漏洞庫增量,確認後注入再審查 |
| 審查前直接更新 | python zhongkui.py E:\skills\target --update --apply |
跳過確認,直接注入後審查 |
| 僅更新漏洞庫 | python zhongkui.py --update |
預覽增量,互動確認後注入 |
| 預覽更新效果 | python zhongkui.py --update --dry-run |
僅拉取預覽,不注入 |
路徑提示:對話中
審 ./my-skill等價於當前工作目錄的相對路徑。指令碼模式必須用絕對路徑。
按 references/static-audit.md 的 54 項清單逐項檢查 SKILL.md / scripts / deps / permissions,每命中一項扣分並標註風險型別(R1-R12)和行號。檢出 R1/R3/R5/R8/R11/R12 → 自動進入 Layer 2。
按 references/behavioral-emulation.md 的 21 個測試場景,用 ToolEmu 範式模擬工具呼叫鏈,跟蹤 Agent 行為,每場景判定 PASS/WARN/FAIL。含 4.5 R8 隱蔽指令專項對抗(模糊測試 + 上下文感知分析)、4.6 R11 外部資訊源投毒專項對抗、4.7 R12 智慧體行為漏洞專項對抗。新增 4.4 紅隊對抗與持續驗證(專項攻擊測試集 + 自動化紅隊 + 外部滲透 + SLA),見 behavioral-emulation.md。
按 references/supply-chain.md 的 10 個維度追溯:釋出者信譽(含動態評分模型)/ CVE 依賴 / 版本變更 / 社群反饋 / SBOM 完整性 / 外部 API 安全評估 / SDK 安全准入 / 熔斷與降級預案 / 外部資訊源信譽 / 持久化寫入審計。含依賴項執行時行為監控。
鍾馗的 patterns.json 採用兩層架構:基礎庫(manual) + 增量庫(auto)。
python zhongkui.py --update # 拉取 NVD CVE → 預覽候選簽名 → 互動確認 [y/N] → 注入
python zhongkui.py --update --apply # 跳過確認,直接注入
python zhongkui.py --update --dry-run # 僅預覽,不注入
source: "manual"),--update 永不觸碰--update 先清舊增量再注入最新,保持冪等patterns.json → patterns.json.bak審查過程中遇到非致命錯誤時,必須主動報告而非靜默跳過。詳見 references/error-handling.md。
| 異常型別 | 處理方式 |
|---|---|
| 檔案讀取失敗(許可權不足/不存在) | 明確報告哪些檔案無法讀取及原因,繼續審查其餘檔案 |
| 檔案編碼無法識別 | 嘗試 UTF-8 → GBK → Latin-1 自動降級,失敗則報告並跳過該檔案 |
| 指令碼語法錯誤無法解析 | 報告檔案路徑+行號+錯誤型別,標記 parse_error 繼續 |
| Layer 2 模擬中斷(工具呼叫失敗) | 報告中斷場景編號和原因,已完成的場景正常計分 |
| Layer 3 網路請求失敗 | 重試 1 次(間隔 3 秒),仍失敗則標記 unreachable 並跳過該維度 |
| 目標路徑為空目錄 | 報告"目標目錄無 Skill 檔案",不做空審查 |
禁止行為:遇到以上異常時,禁止僅列印一行
ERROR後靜默退出。必須輸出異常上下文(檔案路徑+失敗原因)後再繼續或降級。
按 references/scoring.md 公式計算總分,輸出三值裁定。資料安全維度獨立計入(W3=0.1),見評分與裁定檔案。
| 裁定 | 條件 | 處理 |
|---|---|---|
| ✅ 乾淨 | ≥ 85 分 | 可安全安裝 |
| ⚠️-low | 70-84 分 | 低風險可疑,附帶主要風險點供判斷 |
| ⚠️-high | 60-69 分 | 高危可疑,建議拒絕+詳細風險報告 |
| 🚫 惡意 | < 60 分 | 禁止安裝,上報威脅情報 |
審查完成必須輸出結構化報告,禁止閒聊:
## 鍾馗裁定:[✅/⚠️/🚫]
**總分**:XX / 100
**一句話**:[一句話結論]
### 扣分項
| 層級 | 檢查項 | 風險型別 | 扣分 | 命中內容(行號) |
|:---|:---|:---|:---|:---|
| L1 | [項名] | [R編號] | -X | `<file>:L<N>` |
### 未觸發項
[僅列出高危項(R1/R3/R5/R8/R11/R12)的 PASS 狀態,其餘省略]
鍾馗審得狠,但不是萬能。以下場景明確告知查不了或查不準,詳情見 references/capability-boundaries.md。
| # | 場景 | 說明 |
|---|---|---|
| 1 | 深度行為模擬 | Layer 2 基於 ToolEmu 做靜態推理,非真正沙箱執行;執行時行為(記憶體篡改、程序注入)無法完全復現 |
| 2 | 供應鏈即時監控 | Layer 3 基於宣告檔案+已知 CVE 快照對比,不執行持續監控 |
| 3 | 加密/混淆載荷深層解包 | 可檢測 Base64 / eval / exec,但對多層巢狀加密(AES+Base64+zlib)或自定義混淆器可能漏檢 |
| 4 | 語義級別隱蔽攻擊 | 正則+關鍵詞對明顯注入有效;高度語義化誘導(多輪上下文汙染)L1 可能遺漏,L2 也存在覆蓋率上限 |
| 5 | 零日漏洞 | 基於已知攻擊模式簽名庫,全新攻擊向量存在盲區 |
| 6 | 多 Skill 組合攻擊 | 只審單 Skill,不做跨 Skill 許可權串聯分析 |
| 7 | 非標準 Skill 結構 | 假定標準目錄結構(SKILL.md+scripts+references),自定義結構覆蓋率下降 |
原則:審查結果是對已知風險的自動化評估,不是安全擔保。高風險場景(金融/醫療/政務)應結合人工複核。
| 編號 | 型別 | 一票否決? |
|---|---|---|
| R1 | 提示注入 | 是 |
| R2 | 惡意程式碼執行 | 是 |
| R3 | 憑證竊取 | 是 |
| R4 | 依賴投毒 | 否 |
| R5 | 資料外傳 | 是 |
| R6 | 許可權提升 | 否 |
| R7 | 持久化後門 | 是 |
| R8 | 隱蔽指令 | 否(但必進 Layer 2) |
| R9 | 資料洩露與隱私違規 | 否 |
| R10 | 有害輸出與內容合規 | 否 |
| R11 | 外部資訊源投毒 | 否(但必進 Layer 2) |
| R12 | 智慧體行為級漏洞 | 否(但必進 Layer 2) |
命中任一"一票否決"項 → 直接裁定 🚫 惡意,不再計算總分。
見此即斬,無需走完整審查。命中任一條 → 直接裁定 🚫 惡意,不進入評分流程,與一票否決項同級。
| # | 紅線 | 說明 |
|---|---|---|
| 1 | 向不明 URL 發起 curl/wget | 檢測外傳通道,IP 直連加重 |
| 2 | 外發資料至外部伺服器 | webhook / POST / upload / notify 到非官方域名 |
| 3 | 索要憑證 / Token / API Key | 任何 "請輸入金鑰" 或讀取憑證檔案的指令 |
| 4 | 無理由讀取 ~/.ssh / ~/.aws / ~/.config | 除非 Skill 宣告用途且匹配任務,否則直接判惡 |
| 5 | 訪問 MEMORY.md / USER.md / SOUL.md / IDENTITY.md | 讀取 Agent 身份記憶檔案,典型隱私竊取 |
| 6 | 對任何內容執行 Base64 解碼 | 解碼 = 藏東西,99% 是惡意載荷 |
| 7 | eval() / exec() 接受外部輸入 | 動態執行未驗證程式碼,直接開後門 |
| 8 | 修改工作區外的系統檔案 | /etc / C:\Windows / ~/ 等系統路徑寫操作 |
| 9 | 安裝未宣告的依賴包 | pip install / npm install 無宣告列表 |
| 10 | 網路呼叫使用 IP 而非域名 | 刻意隱藏目標身份 |
| 11 | 混淆程式碼(壓縮/編碼/精簡) | 有意阻礙人工審查 |
| 12 | 請求 sudo / root / 提權 | 任何許可權提升嘗試 |
| 13 | 觸碰憑證檔案 | ~/.aws/credentials / ~/.kube/config / .env / .git-credentials |
| 14 | 硬編碼 Token / API Key / 密碼 | SKILL.md 或指令碼中直接寫入憑證明文 |
| 15 | 日誌/快取記錄明文 PII | 對 email/phone/ID card 等個人資訊不做脫敏 |
| 16 | 生成暴力/違法/歧視性內容 | Skill 描述中含誘導生成有害內容的指令 |
| 17 | 複述或索引受版權保護全文 | 要求 Agent "完整輸出" 受版權保護作品 |
6 類高頻陷阱一言總結。完整案例與反例見 references/error-handling.md。
| # | 陷阱 | 結論 |
|---|---|---|
| 1 | 把審查結果當安全擔保 | ✅ 只說明已知模式通過,不等同零風險 |
| 2 | 只審 SKILL.md 不審指令碼 | 惡意程式碼常藏於輔助指令碼,必須完整審查 scripts/ |
| 3 | 過度信任知名釋出者 | 供應鏈攻擊不挑品牌,一律執行 10 維溯源 |
| 4 | 忽略 WARN 項 | WARN = 敏感操作+使用者確認,攻擊者一次社工即可突破 |
| 5 | 修復單項後不重走完整 L1 | 修復可能引入新問題,必須重新跑 54 項 |
| 6 | 只看總分不看扣分項 | 一票否決相關項扣分可能被加權稀釋,應重點複查 |
| 常見疑問 | 答案 |
|---|---|
| R8 誤判? | 通常複製貼上帶入了不可見 Unicode 字元,刪段重寫即可 |
| 誤報怎麼辦? | LLM + 正則雙引擎交叉驗證,記錄行號和觸發內容反饋 |
| 審查多久? | L1 秒級 / L2 ~30s / L3 取決於依賴數量 |
7w4.net小蔥技能。
這個工具的思路很專業,文件寫得很詳細,風險分類和評分規則都很清晰。但目前只有基礎的靜態掃描能用,深度的行為模擬和供應鏈檢查還沒真正實現。質量水平中等偏上,勝在設計完整,但實際功能還差一口氣。適合先收藏關注,等後續功能完善後再使用。