安全类 Skill 在 SkillsMP 上有 79,366 个(占总库 287 万的约 2.8%,2026-08-31 抓取),是典型的「需求刚性但供给零散」赛道——绝大多数是泛泛的 "review my code for vulnerabilities" 提示词。这轮我们不看散兵游勇,把 Anthropic 官方 curated 库里的三个同门安全 Skill 拉出来逐行对比:security-threat-model(设计期威胁建模)、security-best-practices(编码期安全默认)、security-ownership-map(维护期所有权挖掘)。三者形态迥异——纯提示词、参考文档库、Python 脚本包——恰好构成安全工作的三条时间线。本次拆解基于本地安装的一手文件(SKILL.md 全文 + 目录树),并有一个意外发现:这三个「Claude 官方 Skill」里藏着 OpenAI Codex 的痕迹。
| Skill | 形态 | 功能完整度 | 设计质量 | 实战效果 | 上手难度 | 社区活跃 | 加权总分 |
|---|---|---|---|---|---|---|---|
| security-best-practices | SKILL.md + 10 份参考文档 | ★★★★½ | ★★★★½ | ★★★★ | ★★★★½ | ★★★★ | 4.30 |
| security-threat-model | 纯 SKILL.md + 2 份参考 | ★★★★ | ★★★★★ | ★★★★ | ★★★½ | ★★★½ | 3.95 |
| security-ownership-map | SKILL.md + 4 个 Python 脚本 | ★★★★½ | ★★★★ | ★★★½ | ★★★ | ★★★½ | 3.80 |
权重:功能 25% / 设计 25% / 实战 20% / 上手 15% / 社区 15%。社区分保守给出:三者同属 anthropics/skills 官方库(SkillsMP「Popular picks」收录该仓库),无独立 Star 数据,按官方库整体活跃度估分。
定位:输入一张架构图或一个仓库,输出一份 AppSec 级威胁模型,落盘为 <repo名>-threat-model.md。它的 SKILL.md 开篇第一句就是反模板宣言:"Deliver an actionable AppSec-grade threat model that is specific to the repository... not a generic checklist"(交付针对本仓库的可执行威胁模型……而不是通用清单)。
工作流拆解。SKILL.md 定义了 8 步:圈定范围提取系统模型 → 推导信任边界/资产/入口点 → 校准攻击者能力 → 以「滥用路径」枚举威胁 → 用可能性×影响排优先级 → 与用户确认假设 → 给出缓解建议 → 质量自检。三处设计值得抄:
它的严重度阶梯也很克制:High 只留给「pre-auth RCE、认证绕过、跨租户访问、敏感数据外泄、密钥窃取、模型/配置完整性破坏、沙箱逃逸」;Low 档明确写着「需要罕见前置条件的问题」——教模型主动降级,而不是渲染恐慌。
短板:零脚本、零自动化,全靠模型读仓库 + 用户配合;SKILL.md 把输出契约委托给 references/prompt-template.md,控件清单委托给 references/security-controls-and-assets.md,实际效果取决于模型是否真的去读这两份文件。纯提示词形态的上限就在这里。
定位:写代码时让模型「默认安全」。它是三个里工程化程度最高的——核心机制是一个命名协议:references/ 目录下所有文件按 <语言>-<框架>-<栈>-security.md 命名。本地安装版有整整 10 份:JS/TS 六份(express、jquery、nextjs、react、vue、general-web-frontend)、Python 三份(django、fastapi、flask)、Go 一份(general-backend)。SKILL.md 的工作流只有两步核心动作:先识别项目用了所有语言和框架(前后端都要查),再按协议去 references 里精确加载对应文件。这本质上是把「按需加载」做成了文件系统级的路由表——比在一份大文档里让模型自己找,命中率高得多。
三种工作模式写得层次分明:
两个「反直觉」条款是全文精华。其一是 Overrides:用户要绕过某条安全实践时,"you MAY report it to the user, but do not fight with them"(可以报告,但别跟用户吵架),并建议把绕过原因写进项目文档。这句话治的是 AI 助手最常见的毛病——抱着安全教条跟用户对线。其二是 TLS 务实条款:明确告诉模型不要把「开发环境没配 TLS」当漏洞报,警告 secure cookie 在非 TLS 环境会直接弄坏应用,甚至写了 "avoid recommending HSTS"(别乱推荐 HSTS,它能造成真实停摆)。这是在教模型什么不该报——安全工具最大的死法就是误报刷屏,失去用户信任。
一个生态级发现:这份 SKILL.md 的结尾写着 "...not generally recommended for the scope of projects being reviewed by codex"(就不展开上下文了),而两个同门 Skill 的目录里都躺着 agents/openai.yaml。三条证据拼起来:这套 curated 安全 Skill 是跨 Agent 维护的——同一份 SKILL.md 同时服务 Claude Code 和 OpenAI Codex。「官方 Skill」的边界,比我们以为的更模糊。
定位:前两个管「代码」,这个管「人」。它挖掘 git 历史,构建「人 ↔ 文件」二部图和文件共变图(对共享 commit 算 Jaccard 相似度),再用 networkx 做社区发现,回答一类传统扫描器完全不碰的问题:你仓库里的敏感代码,现在还有人在守吗?
能力清单(本地目录下 4 个脚本:run_ownership_map.py、build_ownership_map.py、query_ownership.py、community_maintainers.py):
**/auth/**、**/crypto/**、**/*.pem 等敏感路径,交叉「最后接触时间久远」+「bus factor ≤ 1」——一个只有一个人懂、而且那人两年没碰的认证模块,就是组织级风险;summary.json 和 CODEOWNERS 对比,暴露所有权漂移;.github/*、编辑器配置、Dependabot 提交、merge commit,还可以用 --cochange-max-files 忽略「超级节点 commit」,让聚类反映真实代码流动而非基础设施改动——降噪选项细到这个程度,是正经数据工程的做派;primary_tz_offset,安全团队拿它判断「半夜改认证代码的账号」是否异常。最值得学的设计是 LLM 上下文经济学:SKILL.md 专门写了一节「LLM query helper」,要求模型用 query_ownership.py 取"small, JSON-bounded slices without loading the full graph into context"(小块、有 JSON 边界的切片,别把整张图灌进上下文)。一个百万 commit 的仓库,图数据轻松上 GB——这个 Skill 明确知道自己是给模型用的,把「喂多少数据」当成一等公民来设计。输出还能导出 GraphML,配套 references/neo4j-import.md 灌进 Neo4j/Gephi 做可视化——一个 Skill 自带图数据库导入文档,野心可见一斑。
短板:依赖 Python 3 + networkx,对纯业务开发者有门槛;且它的价值随团队规模递增——单人项目跑 bus factor 是自我感动,50 人以上的仓库才见真章。
这三个 Skill 最有意思的地方在于它们互为补集,覆盖安全工作的三段时序:
flowchart LR
subgraph D["设计期"]
A["security-threat-model<br/>纯提示词 · 威胁建模"]
end
subgraph C["编码期"]
B["security-best-practices<br/>参考库协议 · 安全默认"]
end
subgraph M["维护期"]
E["security-ownership-map<br/>脚本包 · git 挖掘"]
end
P["架构图 / 仓库"] --> A
A --> Q["threat-model.md<br/>漏洞死在白纸上"]
W["新写 / 改代码"] --> B
B --> X["secure by default<br/>漏洞不进库"]
G["git 历史"] --> E
E --> Y["bus factor / 孤儿代码<br/>看清谁在守家"]
Q --> Z["CI 闸门<br/>claude-code-security-review"]
X --> Z
Y --> Z
| 对比轴 | threat-model | best-practices | ownership-map |
|---|---|---|---|
| 形态 | 纯提示词 | SKILL.md + 10 参考文档 | SKILL.md + 4 Python 脚本 |
| 介入时序 | 写代码之前 | 写代码之时 | 代码腐化之后 |
| 核心输入 | 架构/仓库 + 用户确认 | 语言/框架识别 | git log |
| 核心输出 | 威胁模型 md | 安全代码 / 分级报告 | CSV/JSON/GraphML |
| 防幻觉机制 | 强制暂停 + 证据锚定 | 文件名协议精确加载 | 查询切片防爆上下文 |
| 目标用户 | 技术负责人 | 一线开发者 | 安全/平台工程师 |
三者同出 anthropics/skills 官方库(本地安装目录 ~/.claude/skills/ 已验证):
# 方式一:skills.sh CLI(owner/repo 模式)
npx skills add anthropics/skills
# 方式二:手动安装(以仓库实际路径为准)
git clone https://github.com/anthropics/skills
cp -r skills/.curated/security-threat-model ~/.claude/skills/
cp -r skills/.curated/security-best-practices ~/.claude/skills/
cp -r skills/.curated/security-ownership-map ~/.claude/skills/
# ownership-map 额外依赖
pip install networkx
触发方式:对着仓库说「给这个项目做威胁建模」自动命中 threat-model;日常写代码时 best-practices 被动生效(或点名「出一份安全报告」);ownership-map 则说「分析这个仓库的代码所有权」。
mindmap
root(("官方安全Skill族"))
security-threat-model
纯提示词
设计期威胁建模
强制暂停确认假设
security-best-practices
10份语言参考库
三种工作模式
反误报TLS条款
security-ownership-map
Python脚本包
bus factor与孤儿代码
Neo4j图导出
外部参照
claude-code-security-review
CI闸门收口
npx skills add <owner/repo>)与总榜安装量数据,2026-08-31 抓取~/.claude/skills/security-*,含 references 与 scripts 目录树)claude-code-security-review(6.1k Star,仓库 README 抓取于 2026-08-28)作为 CI 闸门的外部参照[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
