mcpField
A
AI & LLM Security

AI & LLM Security

github.com/masriyan安全535111 次安装1 周前更新
代码仓库

关于 AI & LLM Security

面向 Claude 的 AI 与 LLM 应用安全评估技能,适用于安全团队审查聊天机器人、RAG、Agent 和工具集成。它结合 OWASP LLM Top 10 与 MITRE ATLAS,支持可复现测试及缓解建议。

主要功能

  1. 01AI 威胁建模与风险映射
  2. 02提示注入与越狱测试
  3. 03RAG 与向量存储审查
  4. 04Agent、工具及 MCP 安全检查
  5. 05模型供应链与输出防护审查
  6. 06注入测试和模型扫描脚本

适用场景

  1. 01评估聊天机器人及 RAG 应用风险
  2. 02测试间接提示注入和工具滥用
  3. 03审查 MCP 服务及 Agent 权限
  4. 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.md
scripts/
prompt_injection_tester.py
model_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 流水线时:

  1. 检索访问控制 — 确认向量查询依据调用者的权限进行筛选,而不仅仅依据应用的权限。测试跨租户 / 跨用户的文档泄露。
  2. 间接注入面 — 将每份已摄取的文档都视为攻击者可控内容;确认检索到的文本块有明确分隔,且绝不会被当作指令执行。
  3. 嵌入反演 / 成员推断 — 敏感源文本可能会从嵌入中被部分还原;标记向量数据库中未加密存储的个人身份信息(PII)。
  4. 文本块投毒 — 单份恶意文档就可能主导检索结果;检查排序 / 去重以及来源允许列表。
  5. 引用完整性 — 输出应引用检索到的来源,以便追踪注入的声明。
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

参考资料

评论

支持 Markdown