mcpField
P
prompt-injection-scanner

prompt-injection-scanner

本地服务
github.com/GuardBee安全11 天前更新

关于 prompt-injection-scanner

prompt-injection-scanner 是供开发者和团队检查 RAG 内容、抓取页面及文档的 MCP 服务,用于发现间接提示注入模式。它采用启发式扫描,并在结果中说明风险和提供建议。

主要功能

  1. 01检测五类注入模式
  2. 02扫描文本、文件和目录
  3. 03提供风险说明和处理建议
  4. 04输出 SARIF 2.1.0 结果
  5. 05支持 guardbee.yml 配置

适用场景

  1. 01索引前检查 RAG 文档
  2. 02模型检索前扫描抓取页面
  3. 03在知识库 CI 流程中加入内容检查

MCP 相关

提供扫描文本、文件和目录以及列出支持模式的 MCP 工具。另有可扫描内容并生成 SARIF 输出的命令行工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"4hmetuyar-prompt-injection-scanner": {
"command": "npx",
"args": [
"-y",
"@guardbee/mcp-prompt-injection-scanner"
]
}
}
}
启动命令npx -y @guardbee/mcp-prompt-injection-scanner

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@guardbee/mcp-prompt-injection-scanner0.2.2

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
labelstring否在检测结果中显示的可选标签(例如,来源 URL 或文件名)
contentstring是要扫描的文本内容

详细介绍

@guardbee/mcp-prompt-injection-scanner

🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch

npm version npm downloads License: MIT

一个 MCP(Model Context Protocol)服务,用于扫描内容——RAG 片段、抓取的网页、文档——以查找间接提示词注入载荷。

ai-code-scanner 和 mcp-server-auditor 扫描代码;此软件包扫描数据。在经典提示词注入中,攻击者亲自编写恶意提示词;而在间接提示词注入中,攻击者完全不与模型交互,而是将指令嵌入文档、网页或工具结果中,供模型之后读取。当模型通过 RAG 检索或网页抓取将这些内容载入上下文时,嵌入的指令看起来就与用户自己的指令具有同等权限。

默认情况下,遥测功能处于关闭状态。设置 GUARDBEE_TELEMETRY=1 后,它会发送服务、工具、成功状态、耗时以及文件路径等较短的参数值;较长的字符串以及 content、token 或 password 等字段会替换为占位符。请参阅 @guardbee/mcp-telemetry。

Web page/RAG document ──► prompt-injection-scanner ──► LLM context
              │
              ├─ Instruction override   ("ignore all previous instructions", "önceki talimatları yok say")
              ├─ Role spoofing          ("System:", <|im_start|>, [INST], <system>)
              ├─ Hidden text            (zero-width, Unicode tag and bidi characters, display:none + instruction, HTML comment)
              ├─ Direct address         ("Dear AI, ...")
              └─ Exfiltration           (system prompt extraction request, data → URL instruction, templated img beacon)

功能

  • 17 种模式,5 个类别——指令覆盖、角色冒充、隐藏文本、直接寻址、数据外泄。支持英语和土耳其语表达
  • 规则位于 @guardbee/guard-core 中,并与 @guardbee/mcp-security-proxy 共享,因此此扫描器报告的短语与代理在运行时拦截的短语相同
  • 每条发现都包含风险原因及处理建议(recommendation),而不只是“发现了”
  • SARIF 2.1.0 输出——集成 CI/CD(例如,每次 PR 时自动扫描知识库仓库)
  • 支持通过 guardbee.yml 使用配置文件
  • 45 个单元测试——每种模式都有一个正例和一个反例(误报)场景;专门测试了已知的误报来源,例如表情符号 ZWJ 序列和普通的 display:none 模态框

快速开始

Claude Desktop / MCP 客户端
{
  "mcpServers": {
    "guardbee-prompt-injection-scanner": {
      "command": "npx",
      "args": ["-y", "@guardbee/mcp-prompt-injection-scanner"]
    }
  }
}
CLI(CI/CD——例如,每次 PR 时扫描 RAG 知识库仓库)
npx @guardbee/mcp-prompt-injection-scanner scan ./knowledge-base --fail-on=high --format=sarif > results.sarif

MCP 工具

工具描述
scan_text扫描给定的文本/文档片段
scan_file扫描单个文件
scan_directory递归扫描目录(例如 RAG 知识库)(自动跳过 node_modules、.git、dist)
list_patterns按类别列出所有受支持的模式

检测到的模式

类别模式严重程度含义
指令覆盖instruction_override_phrase高经典的覆盖指令短语,例如“忽略/无视/忘记之前的指令”
指令覆盖instruction_override_tr高土耳其语形式:“önceki talimatları yok say / unut / görmezden gel”
指令覆盖dan_mode高要求采用“DAN 模式”越狱人格
指令覆盖bypass_safety高要求模型绕过或禁用安全措施/防护机制
角色伪装system_role_spoof中内容中行首出现伪造的“System:”角色标签
角色伪装chat_template_marker_injection高内容中出现原始聊天模板控制令牌(<|im_start|>、[INST])
角色伪装system_tag高试图将数据伪装成系统消息的 <system> 标签
隐藏文本hidden_zero_width_chars中零宽空格/词连接符(U+200B/U+2060)——对人工审核者隐藏的文本
隐藏文本unicode_tag_smuggling严重携带隐藏文本的不可见 Unicode 标签字符(U+E0000–E007F);国旗表情符号(如 🏴󠁧󠁢󠁥󠁮󠁧󠁿)除外
隐藏文本bidi_control_chars中使文本显示顺序与阅读顺序不同的双向文本覆盖/隔离字符
隐藏文本css_hidden_text_with_instruction高包含类似指令语言的 display:none/白底白字元素
隐藏文本html_comment_instruction高包含类似指令语言的 HTML 注释
直接寻址direct_address_to_ai中内容直接称呼“AI”/“助手”
数据外传exfiltration_url_template_in_image高带有 {{...}}/${...} 模板的 Markdown 图片 URL——数据外传信标
数据外传reveal_system_prompt_request高要求模型透露其系统提示词的句子
数据外传reveal_system_prompt_tr高土耳其语形式:“sistem istemini göster”
数据外传send_data_to_url_instruction严重明确指示将数据发送到外部 URL

这些发现基于启发式规则——它们来自静态文本模式扫描,而非语义/意图分析。此设计旨在降低误报率(例如,明确排除表情符号 ZWJ 序列和普通的 display:none 模态框),但仍应人工审核每一项发现。


配置(guardbee.yml)

prompt-injection-scanner:
  fail-on: high       # any | critical | high | medium | low | none
  max-files: 5000
  exclude:
    - ".test.ts"
    - "fixtures/"

开发

npm run build
npm test             # 45 unit tests

许可证

MIT — GuardBee

反馈

有疑问、想法或发现误报?请在 GitHub Discussions 中发起讨论,或提交 issue。如果 GuardBee 对你有帮助,在代码仓库上点一个 ⭐,能帮助其他人找到它。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。