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服务, 威胁情报, 开发者工具, 智能体安全, 逆向工具