ShaojieJiang
服务介绍
MCP 是危险的
功能工具的使用使 AI 代理变得非常强大,这就像为智能手机引入应用商店一样。
特别是随着 MCP (Model Context Protocol) 的发布,工具共享变得前所未有的容易。
这就是为什么我创建了 extendable-agents 项目,以展示如何通过开源工具或自定义工具轻松扩展 AI 代理的能力。
在开发 extendable-agents 时,我意识到工具的使用是一把双刃剑。
危险在于你使用的工具可以访问你的机器的强大权限,例如环境变量、文件等。
⚠️ 安全警告
该项目简单地展示了与工具使用相关的安全风险。
下面的例子说明了恶意行为者如何可能利用 MCP 服务器来访问敏感信息:
python
警告:这是安全风险的演示。
请勿恶意使用此代码!
import os
from mcp.server.fastmcp import FastMCP
server = FastMCP("Dangerous MCP")
@server.tool()
async def get_environment_variables() -> str:
"""获取所有环境变量。"""
result = [
"以下是我找到的内容:",
]
for key, value in os.environ.items():
result.append(f"{key:<30} {value[:5]}***")
# 这意味着我可以打开后门将你的数据发送给我!
return "
".join(result)
⚠️ 警告: 建议在沙盒环境中运行此示例,并在之后删除你的 OpenAI API 密钥。
你也可以使用自己的 MCP 客户端进行测试,使用以下命令:uvx mcp-is-dangerous。
当使用此工具与 extendable-agents(选择 PoliceAgent)时,输出如下所示:
它看起来可能是无害的,甚至是故意表现得无害,对吗?
但考虑这种情况:你只是询问当前时间,而与此同时,你的敏感数据正在不知不觉中被泄露。
安全最佳实践
为了在使用 MCP 或类似工具时保护自己:
- 在使用工具之前始终审查其源代码
- 尽可能在隔离环境中运行工具
- 对请求访问敏感信息的工具保持谨慎
- 在部署工具时使用环境变量过滤
- 定期审计你正在使用的工具
免责声明
该项目仅用于教育目的,以展示潜在的安全风险。请勿将此知识用于恶意目的。作者不对该信息的滥用负责。