当你让 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 · 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 完整结构剖析#

2.1 YAML Frontmatter 字段(以 analyzing-cyber-kill-chain 为例)#
---
name: analyzing-cyber-kill-chain
description: 'Analyzes intrusion activity against the Lockheed Martin Cyber Kill
Chain framework to identify which phases an adversary has completed...
Use when conducting post-incident analysis, building prevention-focused
security controls, or mapping detection gaps to kill chain phases.
Activates for requests involving kill chain analysis, intrusion kill chain,
attack phase mapping, or Lockheed Martin kill chain framework.'
domain: cybersecurity
subdomain: threat-intelligence
tags:
- kill-chain
- Lockheed-Martin
- MITRE-ATT&CK
- intrusion-analysis
- defense-in-depth
- NIST-CSF
version: 1.0.0
author: team-cybersecurity
license: Apache-2.0
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字段分类:
- 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)的章节顺序:
## When to Use—— “用 / 不用”双向判断(含**Do not use**警示)## Prerequisites—— 前置条件(数据、工具、权限)## Workflow/## Steps—— 阶段化操作步骤## Examples—— 具体命令 / SIEM 查询 / Pentest 路径## 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-security | 66 | defensive + offensive |
threat-hunting | 58 | defensive |
threat-intelligence | 52 | intel |
network-security | 43 | mixed |
web-application-security | 42 | offensive-leaning |
digital-forensics | 41 | DFIR |
malware-analysis | 39 | DFIR |
identity-access-management | 37 | defensive |
soc-operations (+ alias security-operations 28) | 63 | defensive |
red-teaming (+ alias red-team 2) | 35 | offensive |
container-security | 33 | defensive |
ot-ics-security | 28 | defensive |
api-security | 28 | offensive-leaning |
incident-response | 26 | DFIR |
vulnerability-management | 25 | defensive |
penetration-testing (+ alias offensive-security 2) | 23 | offensive |
ai-security | 14 | AI 安全(高速增长) |
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&CK | ATTACK_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.0 | mappings/nist-csf/csf-alignment.md + skill frontmatter 的 nist_csf 字段 | 全 6 大功能覆盖 |
| MITRE ATLAS | atlas_techniques 字段(ai-security 子集) | 14 个 ai-security skill |
| MITRE D3FEND | d3fend_techniques 字段 | 检测/欺骗/隔离类 skill |
| NIST AI RMF | nist_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 同时被三条查询路径命中:
- ATT&CK-driven 检测工程(用 T1190 在 ATT&CK Navigator 上画层)
- CSF-driven 合规审计(用 ID.RA-01 验证 ID.RA 这一族是否完备)
- AI RMF-driven 模型治理(如果是 ai-security skill)
4.3 手工声明 + 自动化校验的混合模式#
证据表明是手工 + 自动化校验,不是 LLM 生成:
validate-skill.py:13-15把domain/subdomain/tags/version/author/license列为必填——意味着作者必须手填;validate-agentskills.py:5-8注释 “READ-ONLY; never edits files”——只验证不生成;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']pythonversion: "1.1.0"(index.json:1)domain: "cybersecurity"total_skills: 817skills[]:每条 ={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 行 — 标准严格校验)plaintext6.1 validate-skill.py —— repo-specific 校验#
- 强制 ACS 自定义必填字段(
:13-15REQUIRED_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 aliasbash七、生态与平台支持#

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-Skillsbash这一行背后是 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 工程的三个剖面#
| 维度 | MoneyPrinterTurbo | Strix | ACS |
|---|---|---|---|
| 类型 | 应用项目 | 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 Provider | OpenAI Agents SDK + Caido + agent-browser | MITRE ATT&CK / CSF / ATLAS / D3FEND / AI RMF / F3 |
| 持久化 | 任务状态机 + 落盘 | /workspace 共享 + Caido history | YAML frontmatter + index.json + mappings/ |
| 配置 | toml + Registry | YAML + env | YAML frontmatter + agentskills.io schema |
如果把 AI 应用比作”房子”:
- MoneyPrinterTurbo 是水电管线——把水(模型输出)从 A 运到 B;
- Strix 是工具间——每件工具摆在哪儿、谁去用、什么时候收;
- ACS 是陈列架上的工具——工具就在那儿,agent 知道它的名字、用法、谁用过。
三个项目互不替代,合起来才是一栋完整的房子。
九、可借鉴 & 局限#
9.1 值得借鉴#
- YAML frontmatter 当 metadata:让 skill 既可读又可 grep / jq 索引;
additionalProperties: true的 schema:在开放标准上叠加自有元数据层,既兼容又扩展;- 双轨校验:宽松版(保扩展)+ 严格版(保合规),分别在不同 CI 阶段跑;
- subdomain alias 白名单:解决”用户写
red-team还是red-teaming”这种历史包袱; - 多框架交叉映射:同一 skill 同时被 ATT&CK / CSF / AI RMF 命中,避免重复维护;
npx skills add <repo>标准安装:让 26+ 平台无缝消费;- 4 件套目录结构(SKILL.md + LICENSE + references/ + scripts/):让知识 + 工具一体化分发。
9.2 局限#
- 817 个 skill 的一致性:靠
validate-skill.py校验字段,但语义质量只能靠 review; - 与 Strix 内置 skills 部分重叠:
strix/skills/vulnerabilities/sqli与skills/exploiting-sqli-in-*/内容可能有重合; - 没有 skill 间依赖机制:一个 skill 不能引用另一个 skill(只能用
references/链接); - frontmatter 字段非 schema 强制:
nist_csf / mitre_attack字段在 agentskills.io schema 里被additionalProperties: true兜住,但每个 skill 作者必须知道这些字段存在——这是隐性规范; index.json与plugin.json版本号不同步:v1.1.0 vs v1.3.0,自动化重建可能漏更新;- 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 应用的工程难度不在模型,而在嫁接层的可维护性。
附录:关键文件定位速查#
| 模块 | 文件 / 行号 |
|---|---|
| 仓库 banner | assets/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 |
| 样例 skill | skills/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 |
📘 项目信息
- 仓库:mukul975/Anthropic-Cybersecurity-Skills ↗
- 作者:mukul975 团队(社区项目,与 Anthropic PBC 无关)
- License:Apache 2.0
- 标准:agentskills.io ↗
- 托管 Playground:Casky.ai ↗