关于 AI & LLM Security
面向 Claude 的 AI 与 LLM 应用安全评估技能,适用于安全团队审查聊天机器人、RAG、Agent 和工具集成。它结合 OWASP LLM Top 10 与 MITRE ATLAS,支持可复现测试及缓解建议。
主要功能
- 01AI 威胁建模与风险映射
- 02提示注入与越狱测试
- 03RAG 与向量存储审查
- 04Agent、工具及 MCP 安全检查
- 05模型供应链与输出防护审查
- 06注入测试和模型扫描脚本
适用场景
- 01评估聊天机器人及 RAG 应用风险
- 02测试间接提示注入和工具滥用
- 03审查 MCP 服务及 Agent 权限
- 04检查模型文件的不安全反序列化
MCP 相关
用于评估和加固 MCP 服务及工具集成,包括客户端认证、资源范围、调用限速和日志审查。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ masriyan/ claude-code-cybersecurity-skill --skill ai-&-llm-security安装后在 Claude Code 中输入/ai-&-llm-security确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/example_usage.mdscripts/prompt_injection_tester.pymodel_supply_chain.py详细介绍
AI 与大模型安全
目的
让 Claude 能够评估由 AI/大模型驱动的应用的安全性,包括聊天机器人、RAG 工作流、自主 Agent 和使用工具的系统。Claude 会将发现映射到 OWASP Top 10 for LLM Applications(2025) 和 MITRE ATLAS 对抗性机器学习知识库,构建可复现的攻击案例,并提出具体的缓解措施(输入/输出防护栏、最小权限工具范围、内容溯源)。
需要授权:仅测试你拥有或明确获准评估的 AI 系统。针对第三方 AI 服务进行提示词注入和数据窃取测试,可能违反其服务条款和当地法律。继续之前,请确认已取得书面授权并明确测试范围。
激活条件
当用户询问以下内容时,此技能会激活:
- 提示词注入(直接或间接)、越狱或系统提示词提取
- OWASP LLM Top 10、MITRE ATLAS 或 AI/ML 威胁建模
- 保护 RAG 工作流、向量数据库或检索层
- 大模型 Agent/工具使用/函数调用安全以及混淆代理风险
- 防护栏、内容过滤器或模型输出验证设计
- 模型泄露敏感信息或训练数据
- 模型/ML 供应链安全(模型文件、
pickle、模型注册表) - AI 红队测试、越狱语料或自动生成对抗性提示词
- 保护 MCP(Model Context Protocol)服务和工具集成
前置条件
pip install requests pyyaml rich
可选增强功能:
garak— 大模型漏洞扫描器(NVIDIA)promptfoo— 提示词/红队评估工具- 目标大模型端点的 API 密钥(仅限测试环境)
modelscan/picklescan— ML 模型文件安全扫描
核心能力
1. 威胁建模(OWASP LLM Top 10 — 2025)
用户要求对 AI 应用进行威胁建模时,请根据各类别检查系统并记录暴露情况:
| ID | 风险 | 检查内容 |
|---|---|---|
| LLM01 | 提示词注入 | 不可信文本进入提示词(直接注入,或通过 RAG/网页/电子邮件间接注入) |
| LLM02 | 敏感信息泄露 | 提示词、输出或训练数据中的个人身份信息/机密;系统提示词泄露 |
| LLM03 | 供应链 | 不可信模型、LoRA 适配器、数据集、插件、pickle 反序列化 |
| LLM04 | 数据与模型投毒 | 被污染的训练/微调/RAG 数据;后门 |
| LLM05 | 输出处理不当 | 未经净化的大模型输出被传入 SQL、Shell、浏览器(XSS)或 eval |
| LLM06 | 权限过大 | 工具范围过宽、自主副作用、缺少人工参与 |
| LLM07 | 系统提示词泄露 | 系统提示词中嵌入的机密/授权逻辑 |
| LLM08 | 向量与嵌入弱点 | RAG 访问控制绕过、嵌入反演、跨租户泄露 |
| LLM09 | 错误信息 | 将幻觉用于安全决策 |
| LLM10 | 无限制消耗 | 通过令牌洪泛、模型提取或钱包耗尽造成成本增加/拒绝服务 |
按类别生成表格:暴露情况(是/否/部分)→ 证据 → 严重程度 → 缓解措施。
2. 提示词注入与越狱测试
直接注入 — 覆盖指令的用户输入。测试类别:
- 指令覆盖(“忽略之前的指令并……”)
- 角色扮演 / 人设逃逸(DAN 风格、假设性框架)
- 编码 / 混淆(Base64、ROT13、leetspeak、同形异义字符、零宽字符)
- 令牌走私和提示词边界混淆(伪造分隔符、伪造系统标签)
- 多轮越狱(通过长上下文的虚假对话诱导模型服从)
- 渐进式升级 / 多轮逐步升级
间接注入 — 载荷通过检索 / 处理的内容到达(网页、PDF、电子邮件、RAG 文档、工具输出)。这是对 Agent 影响最大的类别。测试检索到的文本无法发出命令、窃取上下文或触发工具。
记录每项测试的:载荷、渠道(直接 / 间接)、目标(覆盖 / 窃取 / 滥用工具)和结果(已拦截 / 部分拦截 / 成功)。使用 scripts/prompt_injection_tester.py 运行测试集并评估结果。
拒绝质量说明: 单次拒绝不算通过。在认定某项控制有效之前,使用至少 3 种不同措辞和混淆方式重新测试同一目标。
3. RAG 与向量存储安全
审查 RAG 流水线时:
- 检索访问控制 — 确认向量查询依据调用者的权限进行筛选,而不仅仅依据应用的权限。测试跨租户 / 跨用户的文档泄露。
- 间接注入面 — 将每份已摄取的文档都视为攻击者可控内容;确认检索到的文本块有明确分隔,且绝不会被当作指令执行。
- 嵌入反演 / 成员推断 — 敏感源文本可能会从嵌入中被部分还原;标记向量数据库中未加密存储的个人身份信息(PII)。
- 文本块投毒 — 单份恶意文档就可能主导检索结果;检查排序 / 去重以及来源允许列表。
- 引用完整性 — 输出应引用检索到的来源,以便追踪注入的声明。
4. Agent 与工具使用(函数调用 / MCP)安全
Agent 是一个混淆代理:它持有的权限可能高于用户。审查以下内容:
- 最小权限工具 — 每个工具的权限范围都应限定为最小操作;不得提供可访问任意主机的宽泛
execute_shell/http_request - 对不可逆 / 外发操作(付款、发送电子邮件、删除文件、部署)设置人工审核关卡
- 参数验证 — 工具参数由模型生成,属于不可信输入;应在服务端进行验证 / 允许列表检查
- 注入 → 工具链 — 确认检索到的 / 间接内容无法驱动工具调用(例如,网页指示 Agent 将其记忆通过电子邮件发送出去)
- MCP 服务加固 — 对客户端进行身份验证,限制资源范围,实施速率限制,并记录每次工具调用;绝不通过资源读取暴露机密
- 记忆投毒 — 持久化的 Agent 记忆可能被植入恶意指令,并在之后的对话轮次中触发
5. 模型与 ML 供应链
- 扫描模型制品中的不安全反序列化问题 — 加载
pickle/.pt/.bin文件时可能执行代码。优先使用safetensors。运行scripts/model_supply_chain.py或modelscan。 - 验证模型来源、哈希和签名;固定使用可信注册表中的版本。
- 审查微调 / LoRA 适配器和数据集是否存在投毒及许可问题。
- 将第三方插件 / MCP 服务视为不可信依赖(审查并固定版本)。
6. 输出处理与防护措施
- 绝不将原始 LLM 输出传入
eval、SQL、shell 或 innerHTML。在数据写入点进行编码 / 参数化(LLM05)。 - 采用分层防护:输入过滤器 → 系统提示词中的策略 → 输出分类器 → 针对写入点的清理。采取纵深防御,因为任何单一层都可能被绕过。
- 根据严格的架构验证结构化输出;解析失败时拒绝。
- 应用外发流量控制,防止遭注入的 Agent 访问攻击者 URL。
输出规范
生成结构化的 AI 安全评估:
# AI/LLM Security Assessment — [Application]
Date: [Date] | Scope: [Endpoints/Models] | Model: [name/version] | Analyst: [Name]
## Executive Summary
[2-3 sentences: overall posture, highest risks]
## OWASP LLM Top 10 Coverage
| ID | Risk | Exposure | Severity | Evidence |
|----|------|----------|----------|----------|
| LLM01 | Prompt Injection | Yes | High | [repro] |
...
## Confirmed Findings
### [F-01] Indirect Prompt Injection via RAG → Tool Abuse (Critical)
- ATLAS: AML.T0051 / OWASP LLM01+LLM06
- Repro: [payload, channel, steps]
- Impact: [data exfil / unauthorized action]
- Mitigation: [least-privilege tool scope + retrieved-content isolation + HITL]
## Guardrail Bypass Matrix
| Goal | Direct | Encoded | Multi-turn | Indirect | Result |
## Recommendations (Prioritized)
1. ...
脚本参考
prompt_injection_tester.py
# Run the built-in injection/jailbreak corpus against an endpoint
python scripts/prompt_injection_tester.py --url https://app.test/api/chat --field message --output results.json
# Use a custom payload corpus and a refusal-detection keyword set
python scripts/prompt_injection_tester.py --url ... --corpus payloads.txt --judge-keywords refusals.txt
model_supply_chain.py
# Scan a model directory/file for unsafe pickle opcodes and risky imports
python scripts/model_supply_chain.py --path ./models/model.pt
python scripts/model_supply_chain.py --path ./models/ --recursive --output scan.json
技能整合
| 下一步 | 条件 | 目标技能 |
|---|---|---|
| 对应用外壳进行 Web/API 漏洞测试 | 应用暴露 Web/API 接口 | → 技能 09 |
| 托管模型的云/基础设施 | 模型由 AWS/Azure/GCP/K8s 提供服务 | → 技能 10 |
| 检测提示词注入尝试的规则 | 需要 SIEM 覆盖 | → 技能 12 |
| 依赖项/模型包 CVE | 使用了 ML 库 | → 技能 02 |
| 纳入 AI 滥用情节的红队叙事 | 完整的安全测试 | → 技能 14 |