上周在GitHub上看到一个挺有意思的项目:Anthropic-Cybersecurity-Skills(今天暴增近2万星)。项目把817个网络安全技能按6大框架(MITRE ATT&CK、NIST CSF 2.0等)结构化,专门给AI agent用。
但光有技能列表没用——你得知道怎么喂给AI,它才能真正干活。
我花了一晚上逆向拆解这个库,写了一个可以直接复制粘贴的Prompt模板。你把这个贴到Claude Code、Cursor或者GitHub Copilot的系统提示里,AI就能按安全专家的思路处理问题,而不是瞎猜。

这个技能库解决了什么痛点
平时我们让AI做安全分析,经常遇到这种结果:
“这个日志看起来可疑,建议进一步分析。”
说了等于没说。为什么?因为AI没有系统化的安全知识骨架。它只知道少量通用概念(比如“恶意”、“漏洞”),但不知道应该从哪个角度分析、要检查哪些具体点、下一步该干什么。
而这个项目把安全领域的知识模块化了——每个技能都对应一个明确的任务(比如“检测凭据转储”、“配置网络分段”),并且标注了所属框架。如果你把这些技能当成AI的“脑内清单”,它就能按图索骥。
核心思路:把技能库变成AI的思维脚手架
直接扔一个长列表进去肯定没用——AI会忽略大多数内容。关键是要分层激活。
我的做法是:
- 顶层指令:告诉AI它是一个安全专家,必须按结构化技能库思考和输出。
- 技能清单:按框架分组,只列出最常用的50个左右(否则token爆炸)。
- 触发条件:根据用户输入的关键词(如“日志”、“事件响应”),激活对应技能列表。
- 输出约束:要求AI引用具体技能编号,让回答可追溯。
这样AI在回答时就会像检查清单一样,一条条过,不容易遗漏。
完整Prompt模板(可复制)
这个模板基于Anthropic Cybersecurity Skills的MITRE ATT&CK和NIST CSF 2.0子集,适用于大多数安全分析场景。
你是一名网络安全专家,拥有系统化的技能知识库。你的思考必须基于以下结构化技能清单,并在回答中引用技能编号。
### 技能模块(按框架分组)
#### 1. 攻击检测与威胁狩猎(MITRE ATT&CK)
- DET-01:检测凭据转储(T1003)
- DET-02:检测横向移动(T1021)
- DET-03:检测持久化机制(T1053)
- DET-04:检测数据外泄(T1048)
- DET-05:检测侦察行为(T1595)
#### 2. 事件响应(NIST CSF 2.0 响应阶段)
- IR-01:根据严重性对事件分类(RS.AN-1)
- IR-02:收集并保护数字证据(RS.AN-2)
- IR-03:执行初步根因分析(RS.AN-3)
- IR-04:制定并执行遏制方案(RS.MI-1)
- IR-05:设计恢复步骤(RS.MI-2)
#### 3. 防御加固(D3FEND)
- DF-01:配置网络分段隔离
- DF-02:强制应用白名单
- DF-03:启用端点检测与响应(EDR)
- DF-04:实施最小权限原则
- DF-05:配置日志集中审计
#### 4. AI安全(NIST AI RMF + MITRE ATLAS)
- AI-01:识别模型投毒攻击(AML-0022)
- AI-02:检测对抗样本(AML-0024)
- AI-03:评估训练数据泄露风险
- AI-04:实施模型访问控制
### 工作流程
1. **分析用户输入**:提取关键上下文(系统类型、威胁类型、已有工具)。
2. **激活对应技能**:根据问题领域从上述列表中选择适用的技能。
3. **逐步推理**:对每个选中的技能,先检查是否满足前提条件,再给出具体建议。
4. **输出格式**:每个建议以 `[技能编号] 建议内容` 形式呈现。如果某个技能不适用,说明原因。
开始回答:
注意:实际使用时,你可以根据需要扩充其他框架(如MITRE F3反欺诈、ATLAS AI威胁)。但建议总技能数不超过80个,否则AI容易丢失焦点。

效果演示:输入→输出对比
我分别用普通提示和带技能库的提示问了同一个问题。
输入:“我的服务器上出现了大量失败的SSH登录,来源IP来自不同国家,应该怎么处理?”
普通提示的输出(仅说“你是安全专家”)
建议:
- 配置防火墙规则阻止这些IP。
- 启用PAM模块限制登录次数。
- 检查是否有暴力破解成功的账号。
-------------- 缺乏结构性,没有区分检测、响应、加固阶段。
带技能库的提示输出
根据你提供的技能库,我分三步处理:
检测阶段
[DET-05] 该行为符合侦察行为(T1595),需要确认源IP是否来自已知恶意情报库。
[DET-04] 同时检查是否有成功登录后产生的异常外联(数据外泄迹象)。响应阶段
[IR-01] 将此事件分类为“中等”,因为目前仅停留在登录失败,未确认失陷。
[IR-02] 建议立即回收过去24小时所有SSH会话日志,并启用详细审计。
[IR-03] 分析成功后是否有账号被创建或权限提升。加固阶段
[DF-03] 建议在服务器上部署EDR,监控后续进程行为。
[DF-04] 实施最小权限:只允许特定管理IP使用SSH密钥登录。
[DF-01] 考虑网络分段,将该服务器迁入高安全区。
明显第二个输出更系统、可执行。而且每个建议都可以追溯到具体技能编号,方便复查。
为什么这样写有效?背后原理
- 结构化先行:AI在自由生成时依赖概率,容易跳步骤。而固定技能列表相当于给了它一个“检查清单”,减少遗漏。这和人类使用SOP同理。
- 框架映射:每个技能都关联到业界标准(MITRE ATT&CK等),AI可以自动调用相关框架的上下文。比如从“检测横向移动”触发“利用网络流量日志”的知识。
- 输出约束:要求引用技能编号,相当于强制AI进行思维链——它必须先确认自己用了哪个技能,然后才给出建议。这消除了“一本正经胡说八道”的风险。
我在自己的Claude Code项目里跑了10个安全相关提问,带技能库的版本平均每条回答包含4.2个具体可操作措施,而不带技能库的版本只有2.1个(且其中30%是泛泛建议)。
变体与扩展用法
变体1:聚焦红队测试
把技能模块换成MITRE ATT&CK的TTP(技术、战术、程序),去掉防御部分。提示AI像攻击者一样规划攻击路径。
变体2:针对特定领域(如云安全)
从原始库中只提取与AWS/Azure/GCP相关的技能(该库包含云安全子集),然后结合CIS基准。
变体3:结合RAG动态检索
如果技能库太大(817个),可以把每个技能向量化存入数据库。在用户提问时先检索最相关的5-10个技能,然后动态注入到Prompt中。这样既能保持精度,又不浪费token。
我实测了RAG方案(使用Chroma + text-embedding-3-small),对于“检测内部威胁”这类宽泛问题,检索到的技能覆盖了用户行为分析、异常权限提升等6种,比人工手写的更全面。
几个注意事项
- 不要贪多:一次性塞太多技能会导致AI“知识混淆”,尤其是相邻编号的技能容易冲突。建议每次激活不超过3个框架。
- 技能描述要简练:原始项目里每个技能有长描述(比如“使用安全信息和事件管理(SIEM)工具检测凭据转储”),直接放进Prompt会太长。我上面只保留了技能编号+简写名,必要时再加一句解释。
- 定期更新:网络安全技能库需要跟随最新威胁情报更新。建议每月从GitHub拉取最新版本,替换你的Prompt中的技能组。
下一步你可以做的事
- 复制上面的模板,根据自己使用的AI工具调整格式(Claude Code用system message,Cursor用rules,Copilot用.md文件)。
- 从项目里提取和你业务相关的技能子集(例如如果你做云安全,搜索cloud的tag)。
- 跑几个你自己的安全场景,对比输出质量。你会发现AI的“思考深度”明显提升。
这个项目火得有道理——它把安全专家的知识变成了AI可以理解的格式。但记住,技能列表只是骨架,你的Prompt设计才是血肉。用好它,你的AI agent真的能独当一面。