roshini111/MCP-vulnerability-detection

GitHub: RoshiniMlakshmana/MCP-vulnerability-detection

MCP-Sentinel 是一个独立的 MCP 安全服务器,在 AI 助手执行实际操作前对其工具调用进行规则匹配与行为分析,输出附带 MITRE 映射的可解释安全裁决。

Stars: 0 | Forks: 0

# MCP-Sentinel **AI 助手的安全检查工具。** 当 AI 助手尝试代表您*执行*某些操作时——例如读取文件、运行数据库查询、发送数据——MCP-Sentinel 会首先检查该操作,并输出 **SAFE**(安全)、**SUSPICIOUS**(可疑)或 **BLOCK**(阻止),同时用通俗易懂的语言解释原因。 ## 它解决的问题 现代 AI 助手(如 Claude 或 Cursor)现在可以通过称为 **MCP server** 的连接器执行实际操作——触及您的文件、数据库和账户。这非常强大,但几乎没有任何机制会去检查一个操作是否真正*安全*。 在 2026 年,攻击者开始专门滥用这一点:在工具中隐藏秘密命令、诱骗助手泄露敏感数据,并利用那些天生不带任何安全防护的 MCP server。这些攻击通常*看起来*完全正常——每一个单独的步骤都是被允许的,但组合在一起就会造成危害。 MCP-Sentinel 就是那个缺失的防护层,它位于中间环节,在每一个操作运行前对其进行检查。 ## 它的独特之处 - **它能捕获全新攻击,而不仅仅是已知攻击。** 大多数工具只能识别以前见过的攻击。MCP-Sentinel 还可以通过观察操作的*行为方式*,发现前所未有的(“零日”)攻击。 - **它总是会解释自身决策。** 每一个决策都附有确切的理由和证据——而不仅仅是一个数字——因此您可以信任并验证它。 - **它可以在任何地方运行。** 完全独立,可使用免费的本地 AI 模型离线工作,并直接集成到 Claude Desktop 等 AI 助手中。 ## 它的工作原理——两个“大脑” - **大脑 1(记忆库):** 将操作与来自真实威胁情报 feed 的*已知*攻击库进行比对,并保持实时更新。 - **大脑 2(侦探):** 观察*操作的行为方式*——它触及了什么、何时发生、将数据发送到了哪里——从而捕捉可疑模式,即使是以前从未见过的模式。 - **裁判:** 运行这两个大脑,始终倾向于更谨慎的一方(因此不会有漏网之鱼),并将真正模棱两可的情况交给人工处理。 ``` flowchart TD A["AI assistant tries an action"] --> B["MCP-Sentinel"] B --> C["Brain 1: known attacks"] B --> D["Brain 2: behavior / zero-days"] E["Live threat feeds"] --> C C --> F["Referee: pick the more cautious verdict"] D --> F F --> G{"Result"} G -->|SAFE| H["Allow it"] G -->|BLOCK| I["Stop it + alert you"] G -->|SUSPICIOUS| J["Ask a human"] ``` ## 构建基础 - **Python** —— 整个工具的基础 - **ChromaDB** —— 存储威胁情报库 - **OpenAI 或 Ollama** —— AI 模型(Ollama 免费且可在您自己的计算机上运行) - **FastMCP** —— 将其转换为任何 AI 助手都可以调用的 MCP server - **FastAPI** —— 用于测试的简单网页 - **威胁情报** —— CISA KEV、MITRE ATLAS、OWASP LLM Top 10 以及精选的攻击模式 - **MITRE ATT&CK** —— 每一项裁决都映射到一种公认的攻击技术 ## 如何安装和使用 *您需要先安装 [Python](https://www.python.org/downloads/)。以下每一行都是您在终端中运行的命令。* **1. 下载并设置:** ``` git clone https://github.com/roshini111/MCP-vulnerability-detection.git cd MCP-vulnerability-detection python -m venv venv source venv/bin/activate # on Windows use: venv\Scripts\activate pip install -r requirements.txt ``` **2. 选择它运行 AI 的方式(或跳过——它仍可使用安全的后备方案运行):** - **免费,在您自己的计算机上:** 安装 [Ollama](https://ollama.com),然后在名为 `.env` 的文件中设置 `EMBEDDING_PROVIDER=ollama`。 - **使用 OpenAI:** 将 `.env.example` 复制为 `.env`,并将您的 `OPENAI_API_KEY` 粘贴到其中。 **3. 试用它——三种方式:** ``` python -m src.webapp # opens a web page at http://localhost:8000 — paste an action, click Scan python app.py --file call.json # check a single action from a file python src/mcp_server.py # run it as an MCP server for an AI assistant to call ``` ## 将其连接到您的 AI 助手 (Claude Desktop) 这使得 MCP-Sentinel 能够自动在**每一次** Claude 对话中保护您。 **1.** 生成设置代码片段: ``` python scripts/generate_claude_desktop_config.py ``` **2.** 将其打印出的代码片段复制到 Claude Desktop 的配置文件中: - **Windows:** `%APPDATA%\Claude\claude_desktop_config.json` - **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json` **3.** 完全退出并重新打开 Claude Desktop。现在您可以要求 Claude 检查任何操作,如果存在危险,您将收到**桌面弹出通知**(通过 `NOTIFY_ON=block,suspicious` 开启警报)。 ## 使其达到企业级应用标准 MCP-Sentinel 是一个学习/原型工具。要将其作为真正的企业基础设施来运行,您需要添加: - **自动内联检查** —— 将*每一个*操作都通过它进行路由,而不是一次只检查一个。 - **更智能的基线** —— 从真实流量中学习每个 AI agent 的正常行为,以减少误报。 - **SIEM/SOAR 集成** —— 将警报发送到企业安全工具(Splunk、Microsoft Sentinel)并触发自动响应。 - **带有用户角色和完整审计日志的中央仪表板** —— 真正的安全运营视角。 - **更多威胁情报 feed** —— 添加付费或暗网情报源以实现更深度的覆盖。 - **高可用性** —— 带有冗余和速度保证的运行能力,以满足生产环境需求。
标签:AI安全, AI风险缓解, Chat Copilot, HTTP工具, MCP服务, 威胁情报, 开发者工具, 智能体安全, 逆向工具