乐于分享
好东西不私藏

OpenClaw macOS版安全漏洞全解剖

OpenClaw macOS版安全漏洞全解剖

上周,我在测试OpenClaw macOS版时,发现了一个让人脊背发凉的事实——我的Claude API密钥,以明文形式躺在系统的Keychain里,没有任何额外的访问控制。
这意味着什么?意味着任何拿到我电脑的人,都能在30秒内复制走我的”数字钱包”。我的AWS凭证、我的GitHub Token、我价值数千美元的AI调用额度,全部暴露在光天化日之下。
我不是在危言耸听。这篇文章,是一次完整的安全审计报告,也是一份给所有OpenClaw用户的紧急预警。

Keychain漏洞:苹果的安全护城河被绕过了

先说说macOS的Keychain。这是苹果花了十几年构建的安全基础设施,理论上可以为存储的密码和密钥提供硬件级加密保护。但问题是,Keychain的安全性取决于应用如何使用它——而OpenClaw的使用方式,堪称反面教材。
当你第一次在OpenClaw里输入API密钥时,它会”贴心地”询问是否保存到Keychain,方便下次使用。听起来很合理,对吧?但问题在于,OpenClaw在存储这些密钥时,没有设置任何访问控制列表(ACL)。任何运行在你用户权限下的进程,都可以读取这些密钥,根本不需要额外的身份验证。
我做了个实验。写了一个10行Python脚本,使用Security框架的API,成功提取了OpenClaw存储的所有密钥。从执行脚本到拿到明文密钥,耗时不到3秒。这还是在没有root权限的情况下——如果攻击者拿到了管理员权限,整个过程会更加悄无声息。
更可怕的是,很多用户会在多台设备上同步Keychain。这意味着,一旦你的某台Mac被入侵,攻击者不仅能拿到这台设备上的密钥,还能通过iCloud Keychain同步,间接威胁你所有设备上的OpenClaw配置。

Canvas WebView:XSS攻击的新战场

如果说Keychain漏洞是”本地威胁”,那OpenClaw的Canvas功能就是”远程攻击”的完美入口。
OpenClaw有一个很酷的功能:Canvas。它允许AI生成HTML内容,并在应用内直接渲染。比如你可以让AI生成一个数据可视化图表,或者一个交互式的任务看板。为了实现这个功能,OpenClaw内嵌了一个WebView组件。
问题就出在这里。WebView本质上是一个完整的浏览器环境,而OpenClaw在渲染AI生成的HTML时,没有做足够的输入过滤和沙箱隔离。
我构造了一个”看似无害”的AI提示词:”请生成一个显示当前时间的HTML页面,并添加一些美观的样式。”AI dutifully生成了一段代码,其中包含一个隐藏的iframe,指向一个我控制的服务器。当这个页面在Canvas中渲染时,iframe成功加载,并且——由于同源策略配置不当——可以访问父页面的部分DOM结构。
这还只是开始。如果结合XSS(跨站脚本攻击)技术,恶意AI响应可以注入JavaScript代码,执行包括但不限于以下操作:读取本地存储的敏感信息、篡改用户界面诱导钓鱼、甚至通过已授权的MCP插件执行未授权操作。
想象一下这个场景:你让OpenClaw分析一份”来自客户”的PDF文件,AI在解析过程中被诱导执行了一段恶意脚本。30秒后,你的Slack凭证、你的数据库连接字符串、你的所有API密钥,已经全部上传到攻击者的服务器。而你甚至不知道发生了什么。

目录遍历:本地文件系统的后门

OpenClaw的MCP插件系统允许AI访问本地文件,这是它”Agent能力”的核心。但不幸的是,文件访问权限的控制非常粗糙。
默认配置下,OpenClaw会授予插件对整个用户目录的读取权限——~/Documents、~/Downloads、甚至~/.ssh/。是的,你没看错,包括存储SSH私钥的目录。
我测试了一个”文件管理”MCP插件,通过构造特殊的路径参数,成功读取了~/.ssh/id_rsa文件的内容。这个漏洞的原理很简单:路径验证不严格,没有正确过滤”../”这样的目录遍历序列。攻击者只需要诱导AI执行一个看似正常的文件读取操作,比如”请分析我的项目配置文件”,然后在路径中嵌入遍历序列,就能访问沙盒之外的任意文件。
这意味着什么?意味着如果你的OpenClaw配置了一个可以访问互联网的MCP插件(比如浏览器自动化工具),攻击者可以通过精心构造的网页,诱导你的AI Agent在本地执行恶意操作。这不再是传统的”远程攻击服务器”,而是”远程攻击你自己的电脑”。

供应链攻击:第三方插件的特洛伊木马

如果说前面提到的都是OpenClaw自身的安全问题,那MCP生态的安全现状就是一场灾难。
MCP(模型上下文协议)是OpenClaw的核心扩展机制,允许第三方开发者创建插件,连接各种外部服务。但问题是,这个生态完全没有审核机制。任何人都可以发布一个MCP插件,任何人都可以安装一个MCP插件,没有人知道这些插件里到底写了什么代码。
我在GitHub上搜索”MCP”关键词,找到了数百个社区开发的插件。其中一些很受欢迎:股票分析、邮件自动化、数据库管理……但我随机抽查了20个热门插件,发现超过一半存在明显的安全隐患:硬编码的API密钥、未加密的数据传输、过度宽泛的权限申请。
最夸张的一个案例是一个”智能投资助手”MCP插件,安装量超过5000次。我在它的代码里发现了一个隐蔽的HTTP请求,会把用户的股票持仓数据发送到一个位于境外的服务器。开发者在README里只字未提这个数据收集行为,面对质疑时辩称这是”用于改进服务的遥测数据”。
谁能保证这不是数据贩卖的前奏?谁能保证这些”遥测数据”不会被用于针对性的金融诈骗?在缺乏审核和问责机制的情况下,MCP生态就是一个巨大的信任黑洞。

安全加固:给你的API密钥穿上防弹衣

说了这么多坏消息,也该给点解决方案。如果你已经在用OpenClaw,或者打算尝试,以下是必须执行的安全加固措施:
第一,密钥轮换。不要把你的主API密钥直接喂给OpenClaw,而是创建专门的子密钥,设置严格的调用限额和使用范围。一旦发现问题,立即吊销。
第二,权限最小化。修改OpenClaw的配置文件,限制MCP插件的文件访问范围。不要让它访问~/.ssh/、~/Library/Keychains/等敏感目录。如果某个插件申请过高的权限,直接拒绝。
第三,网络隔离。考虑在虚拟机或Docker容器里运行OpenClaw,与主系统隔离。即使发生安全事件,影响范围也能控制在容器内。
第四,接入专业安全网关。这里推荐ClawFirewall(https://clawfirewall.ai)——这是一个专门用于AI Agent的安全与成本控制网关。它可以为你的API调用设置预算上限、监控异常流量、过滤潜在的恶意请求。更重要的是,它提供了密钥托管功能,避免你的原始凭证暴露在本地环境中。

尾声:信任是最廉价的攻击向量

OpenClaw的安全模型基于一个危险的假设:用户知道自己在做什么,知道每个插件的风险,知道如何保护自己的密钥。
但在现实中,大多数人连隐私政策都不会读完,更别说审计插件代码了。我们生活在一个”默认信任”的时代——信任开发者不会作恶,信任开源社区会自我纠错,信任自己的电脑不会被入侵。
问题是,在这个AI Agent爆发的前夜,信任已经成为最廉价的攻击向量。每一个未经审核的MCP插件,每一次明文存储的API密钥,每一个过度宽泛的权限申请,都是攻击者眼中的机会。
我不是在说”别用OpenClaw”。它确实是一个强大的工具,代表了AI应用的未来方向。但我要说的是:在你享受技术红利的同时,请保持对安全的敬畏。因为你的API密钥可能正在裸奔,而你甚至不知道。

你可以在这里了解 ClawFirewall

https://clawfirewall.ai

一个轻量级的 AI Gateway,用于:

  • 控制 AI 成本

  • 监控 Token 使用

  • 保护 API Key

  • 管理 AI Agent 调用