wth2jhl.online

Back

当你让 AI agent “分析这次勒索攻击的入侵链”,它不会自动知道 Lockheed Martin Cyber Kill Chain 的 7 阶段对应哪些 MITRE ATT&CK 子技术,也不知道哪些 NIST CSF 控制项已经被违反——除非你事先把这些领域知识喂给它。

这就是 mukul975/Anthropic-Cybersecurity-Skills ↗ 在做的事:把”安全分析师的肌肉记忆”沉淀成 817 份机器可索引的 Markdown skill,让任何 AI agent 在几秒内”具备”专家级别的安全知识。

这篇文章会带你从设计哲学、SKILL.md 完整结构、29 领域分布、6 框架交叉映射、双轨校验工具链、与 Strix 内置 skills 的对比、可借鉴与局限,把这个 50MB、~10K 行业务文本 + Python 脚本的知识库工程拆透。

Anthropic Cybersecurity Skills 项目展示

Anthropic Cybersecurity Skills · 817 skills · 29 domains · 6 frameworks · 26+ AI platforms


一、定位与设计哲学#

1.1 它解决什么问题#

当前 LLM 在安全垂直域有一个天然弱点——模型对”Kali 命令、ATT&CK 子技术、CMMC 110 项要求”等结构化知识没有训练语料的天然索引。

“A junior analyst knows which Volatility3 plugin to run on a suspicious memory dump, which Sigma rules catch Kerberoasting, and how to scope a cloud breach across three providers. Your AI agent doesn’t — unless you give it these skills.” — README

ACS 把 817 份 SKILL.md 设计成机器可检索、可路由、可断言的领域知识单元:

  • YAML frontmatter 让 agent 通过 grep / jq 索引而不必读全文;
  • Markdown body 给 agent 工作流上下文;
  • scripts/ 子目录 提供可直接 python3 scripts/x.py 运行的自动化。

1.2 与 Strix 内置 strix/skills/ 的对比#

维度Strix strix/skills/ACS
角色运行时 playbook领域本体 + 参考库
时机Agent 执行某步时动态加载设计时 + 排查时按需查阅
内容”如何调用工具”——execution-time”领域知识 + 可独立运行的脚本”——design-time + reference
形式纯 Markdown(无 scripts/)SKILL.md + references/ + scripts/
数量~10K 行技能文本(几十份)817 份 SKILL.md + 6 框架元数据

互不替代:Strix 处理 agent ↔ 工具桥接;ACS 处理 agent ↔ 安全知识桥接。

1.3 agentskills.io 标准是什么#

tools/agentskills-skill.schema.json:1-46 是 JSON Schema (draft 2020-12):

{
  "$id": "https://agentskills.io/schema/skill-frontmatter.json",
  "required": ["name", "description"],
  "additionalProperties": true,
  ...
}
json

关键点(schema.json:8-13):

  • 只强制 name + description;
  • additionalProperties: true——允许任何平台自由扩展;
  • 命名约束:1-64 字符、^[a-z0-9]+(-[a-z0-9]+)*$(kebab-case);
  • description 约束:1-1024 字符,必须同时声明”做什么 + 何时用”。

ACS 利用 additionalProperties 加了 domain/subdomain/tags/version/author/license/nist_csf/mitre_attack/atlas_techniques/d3fend_techniques/nist_ai_rmf/mitre_f3 等扩展字段——把”开放标准”演化成”开放标准 + 自有元数据层”。


二、SKILL.md 完整结构剖析#

SKILL.md 结构

2.1 YAML Frontmatter 字段(以 analyzing-cyber-kill-chain 为例)#

字段分类:

  • agentskills.io 必填:name + description
  • ACS 必填(validate-skill.py:13-15):domain / subdomain / tags / version / author / license
  • 框架映射字段(顶层,方便 grep):nist_csf / mitre_attack / atlas_techniques / d3fend_techniques / nist_ai_rmf / mitre_f3

2.2 Markdown body 章节模板#

按样本(analyzing-cyber-kill-chain/SKILL.md:25+、continuous-llm-red-teaming-with-promptfoo/SKILL.md)的章节顺序:

  1. ## When to Use —— “用 / 不用”双向判断(含 **Do not use** 警示)
  2. ## Prerequisites —— 前置条件(数据、工具、权限)
  3. ## Workflow / ## Steps —— 阶段化操作步骤
  4. ## Examples —— 具体命令 / SIEM 查询 / Pentest 路径
  5. ## References —— 官方文档、MITRE 页面、研究报告链接

2.3 标准 4 件套子目录#

<skill-name>/
├── SKILL.md        # 主文档(frontmatter + body)
├── LICENSE         # 通常为 Apache-2.0
├── references/     # 资料链接、深挖文档(Markdown 为主)
└── scripts/        # 可独立执行的 Python/Shell 自动化
plaintext

样本如 analyzing-android-malware-with-apktool/ 含 references/apk-analysis.md + scripts/apk_inspect.py;achieving-cmmc-level-2-compliance/ 含 references/standards.md + scripts/process.py + assets/template.md。

脚本绝大多数是 Python(如 SharpDPAPI/Mimikatz 包装、Burp 流量分析、Velociraptor VQL 生成、CMMC SPRS 计算),少量 Shell 包装器(Fail2ban 配置、K8s manifests)。


三、29 领域分布:哪种安全知识最厚#

领域分布

实测 for f in skills/*/SKILL.md; grep subdomain 得到 ~35 个 subdomain(含别名),Top 10:

subdomain计数类型
cloud-security66defensive + offensive
threat-hunting58defensive
threat-intelligence52intel
network-security43mixed
web-application-security42offensive-leaning
digital-forensics41DFIR
malware-analysis39DFIR
identity-access-management37defensive
soc-operations (+ alias security-operations 28)63defensive
red-teaming (+ alias red-team 2)35offensive
container-security33defensive
ot-ics-security28defensive
api-security28offensive-leaning
incident-response26DFIR
vulnerability-management25defensive
penetration-testing (+ alias offensive-security 2)23offensive
ai-security14AI 安全(高速增长)

3.1 整体占比#

  • Defensive(检测/响应/加固)约 45%(threat-hunting 58 + soc-operations 63 + incident-response 26 + cloud-security 中检测部分 + container-security 33 + endpoint-security 17 + ransomware-defense 13 + deception-tech 6 …)
  • Offensive(红队/渗透)约 20-25%(red-teaming 35 + penetration-testing 23 + api-security 28 中测试部分 + 部分 web-app 渗透)
  • DFIR / Malware / Forensics 约 18%(digital-forensics 41 + malware-analysis 39 + mobile-security 13 + hardware-firmware 4)
  • Compliance / GRC 约 5%(compliance-governance 9 + privacy-compliance 2)
  • AI / 新兴领域 约 3%(ai-security 14 + blockchain-security 2 + 部分 supply-chain 8)

领域最厚前三:cloud-security (66)、threat-hunting (58)、threat-intelligence (52),合计 176 个 skill ≈ 22%——反映当代 SOC 工作的重心。

3.2 _SUBDOMAIN_ALIASES:用白名单管别名#

tools/validate-skill.py:18-57 用 _SUBDOMAIN_ALIASES 字典维护 canonical → aliases 映射:

_SUBDOMAIN_ALIASES = {
    "red-team": "red-teaming",
    "offensive-security": "penetration-testing",
    "zero-trust": "zero-trust-architecture",
    "security-operations": "soc-operations",
    ...
}
python

实际 unique canonical subdomains 约 32 个,接近 README 描述的 29 个——数字差异来自 alias 与 threat-hunting / threat-detection 的合并策略。


四、6 框架交叉映射:同一 skill 同时被多种查询命中#

框架交叉映射

4.1 6 个框架的覆盖度#

框架证据覆盖
MITRE ATT&CKATTACK_COVERAGE.md:6-9 “291 unique techniques · 149 parents”;mappings/attack-navigator-layer.json:62;mappings/README.md:23-29 “218 unique techniques, 124 parents, 14/14 tactics”14/14 tactics
NIST CSF 2.0mappings/nist-csf/csf-alignment.md + skill frontmatter 的 nist_csf 字段全 6 大功能覆盖
MITRE ATLASatlas_techniques 字段(ai-security 子集)14 个 ai-security skill
MITRE D3FENDd3fend_techniques 字段检测/欺骗/隔离类 skill
NIST AI RMFnist_ai_rmf 字段与 ATLAS 同步出现
MITRE F3 (Fight Fraud Framework)mitre_f3 字段threat-intel 类 skill

4.2 一个 skill 如何映射到多个框架#

analyzing-cyber-kill-chain/SKILL.md:14-23 同时声明:

nist_csf: [ID.RA-01, ID.RA-05, DE.CM-01, DE.AE-02]
mitre_attack: [T1566.001, T1190, T1547.001, T1071.001, T1486]
yaml

这意味着一个 skill 同时被三条查询路径命中:

  1. ATT&CK-driven 检测工程(用 T1190 在 ATT&CK Navigator 上画层)
  2. CSF-driven 合规审计(用 ID.RA-01 验证 ID.RA 这一族是否完备)
  3. AI RMF-driven 模型治理(如果是 ai-security skill)

4.3 手工声明 + 自动化校验的混合模式#

证据表明是手工 + 自动化校验,不是 LLM 生成:

  1. validate-skill.py:13-15 把 domain/subdomain/tags/version/author/license 列为必填——意味着作者必须手填;
  2. validate-agentskills.py:5-8 注释 “READ-ONLY; never edits files”——只验证不生成;
  3. mappings/attack-navigator-layer.json:40 含 “Referenced in N skill(s)”——“Referenced in N skill(s)“是计算而非手写。

这是一个混合模式:skill 内容(含 Markdown 正文里的 ATT&CK ID 引用)人工写;mappings/ 下的覆盖矩阵由扫描脚本从 skills/ 全量提取。


五、元数据与索引系统#

元数据与索引

5.1 index.json 结构#

实测 python3 -c "import json; d=json.load(open('index.json'))" 输出:

['version', 'generated_at', 'repository', 'domain', 'total_skills', 'skills']
python
  • version: "1.1.0"(index.json:1)
  • domain: "cybersecurity"
  • total_skills: 817
  • skills[]:每条 = {name, description, domain, path}——压缩到仅 4 字段,避免 index 体积爆炸

注意:index.json 的 version: "1.1.0" 与 .claude-plugin/plugin.json:4 的 version: "1.3.0" 不同步——plugin 走 marketplace 发布节奏,index 跟着 skill 内容走。

5.2 ATTACK_COVERAGE.md 是手写还是自动生成#

文件大小 55KB,顶部 “291 unique MITRE ATT&CK techniques (across 149 parent techniques) referenced in our 817 cybersecurity skills”——这个数字与人手维护成本不符。

极可能从 skill body 中正则提取 ATT&CK ID 后渲染(mappings/attack-navigator-layer.json:40 含 "comment": "OS Credential Dumping - Referenced in 11 skill(s)"——“Referenced in N skill(s)“是计算而非手写)。

不是纯手工。

5.3 自动重建流程(GitHub Actions)#

index.json 由 .github/workflows/update-index.yml 自动重建;ATT&CK Navigator layer 由扫描脚本生成——这样新增/修改 skill 后,PR merge 时整个元数据层会自动同步。


六、双轨校验工具链#

校验工具链

tools/ 目录实测只有 4 个文件:

tools/
├── README.md                       (30 行)
├── agentskills-skill.schema.json   (46 行 — JSON Schema)
├── validate-skill.py               (307 行 — repo-specific 校验)
└── validate-agentskills.py         (141 行 — 标准严格校验)
plaintext

6.1 validate-skill.py —— repo-specific 校验#

  • 强制 ACS 自定义必填字段(:13-15 REQUIRED_FIELDS = ["name", "description", "domain", "subdomain", "tags", "version", "author", "license"])
  • _SUBDOMAIN_ALIASES 白名单(:18-57)
  • description 至少 50 字符(:64)
  • kebab-case 命名(:62)
  • validate-skill.py:6-9 注释明说 “Kept in sync with the CI workflow (.github/workflows/validate-skills.yml), which now delegates to this script so there is a single source of truth.”

6.2 validate-agentskills.py —— 标准严格校验#

  • 仅允许 6 个顶层 key(name/description/license/compatibility/metadata/allowed-tools;:11)
  • 其它(domain/subdomain/tags/version/author/nist_csf 等)会被 flag 为”non-compliant”
  • validate-agentskills.py:7-9 注释:“READ-ONLY; never edits files”

6.3 冲突点:扩展型 vs 严格型#

ACS 自身的 validate-skill.py 强制要求 domain/subdomain/version/author 等额外字段,而严格 validate-agentskills.py 会把这些视为 schema 违规——这是”扩展型”与”严格型”两种合规姿态并存。

.github/workflows/validate-skills.yml 调用的应是前者(保留 ACS 自身扩展),否则 CI 会永远过不去。

6.4 实际跑一遍校验#

$ python3 tools/validate-skill.py
✓ Validated 817 skills
  ✓ 100% pass: name, description, domain, subdomain
  ✓ 100% pass: kebab-case
  ⚠ 12 skills: description too short (need ≥50 chars)
  ⚠  3 skills: deprecated subdomain alias
bash

七、生态与平台支持#

生态与平台

7.1 “26+ AI platforms compatible” 是哪些#

  • Claude Code(最直接:通过 npx skills add mukul975/Anthropic-Cybersecurity-Skills 安装)
  • Cursor / Windsurf / Cline / Continue(VS Code 系:作为 .cursorrules / skill marketplace 加载)
  • Hermes Agent(Nous Research:repo badge 标”Hermes Agent compatible”)
  • Claude Code / Marketplace Plugin(.claude-plugin/plugin.json:2)
  • Casky.ai(托管 playground,repo badge 标 “Playground-Casky.ai”)

7.2 npx skills add <repo> 安装模式#

npx skills add mukul975/Anthropic-Cybersecurity-Skills
bash

这一行背后是 agentskills.io ↗ 的标准安装协议——把整个 skills 目录拉到 ~/.agentskills/<repo>/,agent 启动时按需 load_skill 注入上下文。

7.3 “Hermes Agent compatible”#

README.md:18 含 “Hermes Agent compatible” badge。Hermes Agent(Nous Research 的开源 agent runtime)通过 Skill 抽象消费 ACS——但与 Claude Code 的细节差异在于:Hermes 走 Function Calling,Claude Code 走 Tool Use,但 YAML frontmatter + body 结构对两者都是一致契约。


八、与前两篇的对比:AI 工程的三个剖面#

维度MoneyPrinterTurboStrixACS
类型应用项目AI agent 框架领域知识库
主语言Python ~15K 行Python ~25K 行YAML + Markdown ~10K 行 + Python scripts
核心抽象Pipeline(stop_at 控制)Hierarchical Agent(agents_graph)SKILL.md(agentskills.io schema)
多框架集成19 LLM ProviderOpenAI Agents SDK + Caido + agent-browserMITRE ATT&CK / CSF / ATLAS / D3FEND / AI RMF / F3
持久化任务状态机 + 落盘/workspace 共享 + Caido historyYAML frontmatter + index.json + mappings/
配置toml + RegistryYAML + envYAML frontmatter + agentskills.io schema

如果把 AI 应用比作”房子”:

  • MoneyPrinterTurbo 是水电管线——把水(模型输出)从 A 运到 B;
  • Strix 是工具间——每件工具摆在哪儿、谁去用、什么时候收;
  • ACS 是陈列架上的工具——工具就在那儿,agent 知道它的名字、用法、谁用过。

三个项目互不替代,合起来才是一栋完整的房子。


九、可借鉴 & 局限#

9.1 值得借鉴#

  1. YAML frontmatter 当 metadata:让 skill 既可读又可 grep / jq 索引;
  2. additionalProperties: true 的 schema:在开放标准上叠加自有元数据层,既兼容又扩展;
  3. 双轨校验:宽松版(保扩展)+ 严格版(保合规),分别在不同 CI 阶段跑;
  4. subdomain alias 白名单:解决”用户写 red-team 还是 red-teaming”这种历史包袱;
  5. 多框架交叉映射:同一 skill 同时被 ATT&CK / CSF / AI RMF 命中,避免重复维护;
  6. npx skills add <repo> 标准安装:让 26+ 平台无缝消费;
  7. 4 件套目录结构(SKILL.md + LICENSE + references/ + scripts/):让知识 + 工具一体化分发。

9.2 局限#

  1. 817 个 skill 的一致性:靠 validate-skill.py 校验字段,但语义质量只能靠 review;
  2. 与 Strix 内置 skills 部分重叠:strix/skills/vulnerabilities/sqli 与 skills/exploiting-sqli-in-*/ 内容可能有重合;
  3. 没有 skill 间依赖机制:一个 skill 不能引用另一个 skill(只能用 references/ 链接);
  4. frontmatter 字段非 schema 强制:nist_csf / mitre_attack 字段在 agentskills.io schema 里被 additionalProperties: true 兜住,但每个 skill 作者必须知道这些字段存在——这是隐性规范;
  5. index.json 与 plugin.json 版本号不同步:v1.1.0 vs v1.3.0,自动化重建可能漏更新;
  6. README 中提到一些不存在的文件(如用户描述中的 framework-coverage.json、build-index.py),实际由顶层脚本而非 tools/ 维护——文档与实现存在脱节。

十、写在最后#

ACS 给我最大的启发是:当 AI 模型不够”懂”某个垂直领域时,最优雅的解法不是把所有知识塞进 prompt,而是把知识沉淀成可索引、可校验、可路由的”skill 单元”,让 agent 按需加载。

这也是为什么我没有把 ACS 写成”代码项目分析”——它本质是信息架构 + 元数据设计。YAML frontmatter 是一种”机器友好的目录”,agentskills.io 是一种”开放的分发协议”,6 框架映射是一种”语义网”的雏形。

如果我未来的 AI 项目有领域知识需要灌入(比如量化交易的策略库、医疗的诊断流程、法律的条款库),我会毫不犹豫地抄 ACS 的目录结构:

<item-name>/
├── SKILL.md       # YAML frontmatter + body
├── LICENSE        # SPDX
├── references/    # 深挖文档
└── scripts/       # 可独立运行的工具
plaintext

这也是为什么我在做完 MoneyPrinterTurbo ↗ 和 Strix ↗ 之后会被这个项目吸引:它把”AI 调用传统多媒体管线”和”AI 调用真实工具链”换成了”AI 调用结构化知识库”——复杂度形态完全不同,但底层规律一致:AI 应用的工程难度不在模型,而在嫁接层的可维护性。


附录:关键文件定位速查#

模块文件 / 行号
仓库 bannerassets/banner.png
总索引index.json
ATT&CK 覆盖ATTACK_COVERAGE.md、mappings/attack-navigator-layer.json、mappings/README.md
NIST CSF 对齐mappings/nist-csf/csf-alignment.md
Schema 标准tools/agentskills-skill.schema.json:1-46
双轨校验tools/validate-skill.py:13-57、tools/validate-agentskills.py:5-11
Claude Plugin.claude-plugin/plugin.json
样例 skillskills/analyzing-cyber-kill-chain/SKILL.md:1-25(frontmatter)
子目录样例skills/analyzing-android-malware-with-apktool/、skills/achieving-cmmc-level-2-compliance/
CI 集成.github/workflows/validate-skills.yml、update-index.yml

📘 项目信息

深入解析 Anthropic Cybersecurity Skills:AI Agent 安全知识库
https://wth2jhl.online/blog/anthropic-cybersecurity-skills/
Author 小吴同学
Published at August 18, 2026