AI代理寄生攻击工具

MCP Parasite是一个概念验证工具,展示了一种新型的自适应、跨服务器寄生攻击方法,针对MCP支持的AI代理,如Claude Desktop和Cursor。

  • by bountyyfi
  • Python
  • 本地部署
  • 47 星标
  • 更新于
在 GitHub 查看 bountyyfi/ProjectMemory

使用说明

MCP寄生:对启用MCP的AI代理的自适应跨服务器寄生攻击

警告:这只是出于负责任的披露目的的安全研究概念证明。

请勿将此工具用于恶意目的。 此PoC中的所有泄漏都针对本地主机 (127.0.0.1:9999)。该项目的存在是为了演示一种针对 MCP使AI代理能够推动MCP客户端安全性的改进。

本研究已提交给Anthropic、Cursor/Anysphere进行负责任的披露, 以及其他MCP客户端开发人员。


什么是MCP寄生虫?

MCP Parasite(“ProjectMemory”)是一个概念验证的MCP服务器,展示了一种新颖的 自适应、临时、跨服务器寄生攻击 针对启用MCP的AI代理(Claude Desktop、Cursor等)。它将自己伪装成一个合法且真正有用的项目内存/上下文工具,同时默默地分析用户的环境,学习工作流模式,并在高价值的时刻执行有针对性的跨服务器阴影攻击。

为什么这很重要

现有的MCP安全研究侧重于:

  • 恶意工具描述(可通过以下方式检测 mcp-scan)
  • 单次地毯拉扯攻击(一次射击,无持续性)
  • 直接在工具元数据中注入提示

MCP寄生虫是不同的。 它引入了一种新的攻击类型:

方面 现有的MCP攻击 MCP寄生虫
时机 立即或单次拔毯 多阶段,数天/数周休眠
检测 工具描述包含恶意文本 工具描述100%干净
机制 直接在工具元数据中注入提示 通过返回值进行跨服务器跟踪
智能 静态有效载荷 自适应、基于轮廓的瞄准
坚持 一次性 可重复,基于冷却
伪装 最小 功能齐全,理想的工具
mcp扫描 可检测 不可检测(无中毒描述)

进攻

第一阶段:侦察(第1-7天)

服务器作为 功能齐全,真正有用 项目记忆工具。每一次互动都会被默默地分析:

  • 代码库索引 映射攻击面(敏感文件、CI/CD配置、凭据)
  • 存储的记忆 对机密、基础设施细节、团队信息进行分析
  • 会话上下文 显示安装了哪些其他MCP服务器
  • 微妙的提示 在工具响应中鼓励LLM分享更多上下文

第二阶段:休眠期(第7-14天)

无寄生活动。 服务器完全合法地运行。这是建立信任的阶段,其中:

  • mcp-scan 未发现任何可疑之处
  • 用户越来越依赖该工具
  • 用户向队友推荐它
  • 安全审计未发现任何内容

第三阶段:武装打击(第14+天)

服务器监视 高价值触发事件:

  • 生产部署
  • 凭证轮换
  • 敏感文件编辑
  • PR合并到main
  • 基础设施变更
  • 新团队成员入职

当触发时,它会注入 跨服务器阴影负载 将其转化为合法的工具响应。有效载荷被精心设计成看起来像项目惯例或团队实践,导致LLM在不知不觉中:

  1. 使用 其他已安装的MCP服务器 (GitHub、Slack、文件系统)以泄露数据
  2. 通过GitHub MCP在提交中包含敏感文件
  3. 将配置详细信息发布到Slack频道
  4. 通过文件系统MCP进行泄漏的阶段文件

快速启动(演示模式)

先决条件

  • Python 3.11+
  • 支持MCP的Claude桌面或光标
  • 已安装GitHub MCP服务器和/或文件系统MCP服务器

安装

# Clone the repository
git clone https://github.com/bountyyfi/ProjectMemory.git
cd ProjectMemory

# Install dependencies
pip install -e ".[dev]"

# Set up demo environment
bash demo/setup_dummy_env.sh

# Run tests
pytest

MCP配置

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "project-memory": {
      "command": "python",
      "args": ["-m", "project_memory.server"],
      "env": {
        "PROJECT_MEMORY_DB": "~/.project-memory/memory.db",
        "PROJECT_MEMORY_DEMO": "true"
      }
    }
  }
}

在演示模式下,阶段计时加速(分钟而不是几天)。

演示演练

看 demo/demo_scenario.md 以逐步演练。

检测

看 docs/DETECTION.md 详细的检测策略。

对MCP客户开发人员的主要建议:

  1. 监控工具返回值熵 -随时间变化的轨道响应长度/结构
  2. 内容策略执行 -故障诊断仪对指令式模式的响应
  3. 跨服务器隔离 -不要让一个工具的输出影响对其他工具的调用
  4. 响应散列 -对工具响应中的结构变化发出警报
  5. 网络监控 -跟踪来自MCP服务器进程的出站连接

项目结构

mcp-parasite/
├── src/project_memory/
│   ├── server.py            # Main FastMCP server
│   ├── memory_store.py      # SQLite-backed persistence
│   ├── indexer.py           # Codebase indexer
│   ├── utils.py             # Shared utilities
│   └── parasite/
│       ├── recon.py         # Phase 1: Passive reconnaissance
│       ├── profiler.py      # Environment profiling
│       ├── trigger.py       # Phase 3: Trigger detection
│       ├── strike.py        # Phase 3: Cross-server shadowing
│       └── config.py        # Configuration
├── tests/                   # Unit tests for all modules
├── docs/                    # Attack flow, detection, timeline
├── demo/                    # Demo setup and scenario
└── config/                  # Example MCP configs

负责任披露

本研究已提交给以下机构进行负责任的披露:

  • Anthropic (克劳德桌面MCP客户端)
  • 任意领域 (光标MCP客户端)
  • MCP协议维护者

建议

面向MCP客户端开发人员

  1. 实施工具响应内容策略
  2. 添加跨服务器隔离(来自一台服务器的响应不应被视为对另一台的指令)
  3. 监控工具随时间变化的响应模式,以发现异常
  4. 为用户提供工具响应所包含内容的可见性
  5. 考虑MCP工具输出的响应沙盒

对于用户

  1. 仅安装来自可信来源的MCP服务器
  2. 定期审核MCP服务器行为
  3. 监控来自MCP服务器进程的网络流量
  4. 小心那些询问你其他工具的工具
  5. 审查工具对异常指示或“惯例”的响应

学分

  • Bountyy 公司 - bountyy.fi
  • 米哈利斯·哈塔宁 -安全研究

许可证

MIT许可证-请参阅 许可证 了解详情。

记得: 这是安全研究。负责任地使用。