The 96K-Skill Wild Scan: Methodology Walkthrough
How we collected 96,096 production SKILL.md files across four registries, ran ATR v2.1.1 detection, and surfaced 751 confirmed malicious instances with audit-grade reproducibility.
當有人問 ATR 規則能不能脫離合成 benchmark 推廣到 production 環境,誠實的答案是:除非我們在 production 資料上量測過。這篇就是我們在 96,096 個真實 SKILL.md 上跑出來的完整 walkthrough。
語料庫
我們在 2026-03 到 2026-05 之間從四個 registry 收集公開可存取的 Skill:
- ●OpenClaw:56,480 個 Skill
- ●ClawHub:36,378 個 Skill
- ●Skills.sh:3,115 個 Skill
- ●Hermes:123 個 Skill
- ●總計:96,096 個 SKILL.md 檔案
每個檔案透過 registry 公開 API 取得,正規化成標準 SKILL.md frontmatter + body 結構,以 content-addressed hash 去重存檔。沒有 private repo、沒有竊取憑證、沒有違反 terms of service。
偵測 Pass
我們用 ATR v2.1.1(336 條規則,MIT 授權)對每個正規化過的 Skill 跑一次偵測,產生初始命中集,再由 human reviewer 分類成三桶:良性、惡意、不確定。不確定的部分做第二輪 payload 萃取;如果能展示出可運作的 C2 endpoint 或憑證外洩鏈,就移到惡意。
那 751 個
在整個語料庫中,有 751 個 Skill 被確認為惡意。它們聚集成三個系統性 campaign,而不是零散個案,這個結果比單純的數字更重要:
| Campaign | Skill 數 | Signature |
|---|
| --- | --- | --- |
|---|
| ClawHavoc | 600+ Skill,1,184 個 indicator | C2 endpoint 91.92.242.30 |
|---|
| AMOS infostealer | 314 個 Skill | hightower6eu 外洩 host |
|---|
| MedusaLocker PoC | 重用工具鏈 | Cato Networks 歸因鏈 |
|---|
每一個惡意樣本都帶有 ATR 規則 ID + payload signature,任何人都能重跑偵測、驗證判斷。
432 個標註良性 Skill 語料
只有 recall 沒有 FP 就是表演。我們手工標註了 432 個已知良性的 Skill(熱門 Anthropic-published、知名 maintainer-published、簡單生產力 Skill),每個版本量測 per-rule FP rate。ATR v2.1.1 在這個語料上是 0.20% FP。這是所有規則 PR merge 前必須通過的迴歸閘。
Recall
Recall 我們用 NVIDIA Garak inthewild_jailbreak_llms(666 個樣本)。ATR v2.1.1 是 97.1% recall。recall 和 FP 我們分別在不同語料上報告,因為混在一起會同時膨脹兩個數字。
為什麼這算 Audit-Grade
三個性質:
1. 語料來自公開 registry — 任何人都能在容差範圍內重新抓取同一份 registry,重現輸入集。
2. 數字都是真實計數 — 96,096 / 751 / 432 / 97.1% / 0.20% 是實際 cardinality,不是行銷四捨五入。
3. 指標分離 — recall 跑 Garak、FP 跑 labelled benign,不混合。
Scan script 是公開的,規則語料是 MIT,campaign indicator 也已發佈。只要能抓 registry,你就能重新推導本頁每一個數字。