OpenClaw 设计上不安全
I’m happy to help translate the article, but I need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have the article text, I’ll translate it into Simplified Chinese while preserving the formatting and any code blocks or URLs.
Cline 供应链攻击(2月17日)
一个流行的 VS Code 扩展 Cline 被攻陷。攻击链展示了多种 AI 特有的失效模式:
-
攻击者在 Cline 的仓库中打开 GitHub Issue。
-
Cline 的 AI 驱动的 Issue 分类机器人 读取该 Issue。
-
Issue 内容中的 提示注入(prompt injection) 欺骗了机器人。
-
机器人 向 GitHub Actions 缓存注入恶意代码。
-
CI 流水线 窃取
VSCE_PAT、OVSX_PAT和NPM_RELEASE_TOKEN。 -
攻击者发布
cline@2.3.0,其中包含一个 安装后脚本,运行npm install -g openclaw@latest -
约 4,000 名开发者 在 8 小时内安装了该版本,随后被下架。
该恶意包被 StepSecurity 的自动检查拦截。两条红色警报立即触发:
- 该包是 手动发布 的(未通过 OIDC Trusted Publishing)。
- 包 没有 npm provenance 证明。
有效载荷是什么?OpenClaw —— 不是恶意软件,也不是加密矿工,而是一个持久化的 AI 编码代理。
Source: …
什么是 OpenClaw?
OpenClaw(前身为 Clawdbot,后改名为 Moltbot)是一个 “持久化 AI 编码代理”,它以广泛的系统级权限驻留在你的机器上:
| 组件 | 详情 |
|---|---|
| 守护进程 | 通过 launchd / systemd 运行 |
| 接口 | 在 ws://127.0.0.1:18789 上提供 WebSocket 服务器 |
| 文件系统 | 完全磁盘访问 |
| 终端 | 完全终端访问 |
| 凭证 | 读取 ~/.openclaw/credentials/ 和 config.json5(API 密钥、OAuth 令牌) |
| 技能 | 从 ClawHub 安装,ClawHub 是一个 零审查 的公共市场 |
价值主张: 一个能够 真正 编辑文件、执行命令并管理工作流的 AI 助手——无需复制粘贴。
安全影响: 正是这些使其有用的能力,也为攻击者提供了强大的立足点。
病毒式传播时刻与即时后果
-
2025年2月初: Karpathy 和 Willison 在推特上讨论 OpenClaw(Karpathy 后来澄清他对这个想法感兴趣,但 不 推荐运行它)。
-
三天内,三个高危 CVE 被发布:
CVE‑2026‑25253– 远程代码执行CVE‑2026‑25157– 命令注入CVE‑2026‑24763– 再次命令注入
所有漏洞均已修补,但修补未能解决根本的架构问题。
-
SecurityScorecard 的 STRIKE 团队 在病毒式推文发布后数小时内发现 超过 13.5 万 暴露在互联网上的 OpenClaw 实例(发布时 4 万,2 月 9 日已达 13.5 万)。估计仍有 超过 5 万 实例对已修补的 RCE 漏洞保持脆弱。
-
Koi Security 扫描 ClawHub,发现 341 个恶意技能。一名攻击者上传了 677 个包。
-
Snyk 扫描约 4 千 技能,发现 283(7.1 %) 泄露凭证——API 密钥、密码,甚至信用卡号在 LLM 上下文窗口中以明文形式传递。
-
“买任何东西”技能可以 收集信用卡信息 并通过后续提示将其外泄。
npm 创始 CTO Laurie Voss: “一次 安全垃圾桶火灾。”
r/netsec 判决: “这个概念 天生不安全,不仅仅是实现有问题。”
核心问题:破碎的威胁模型
要使 OpenClaw 有用,需要:
- 持久的文件系统访问
- 执行任意命令的能力
- 访问凭证和 API 密钥
- 安装/运行 不受信任的代码(来自 ClawHub 的技能)
- 对 LLM 提供商的网络访问
要 安全,则需要 缺少大多数这些功能。正是让它有价值的工具,也是攻击者利用的工具。这不是 bug,而是产品本身。
供应链示例: 攻击者并未利用 OpenClaw 的漏洞。他们仅仅利用了 OpenClaw 已经拥有完整系统权限这一事实。恶意的安装后脚本并未直接窃取数据;它安装了一个已经能够做到的工具。
“安装这个流行的 AI 代理。” – 而不是 “运行这个恶意脚本。”
Microsoft的“安全运行 OpenClaw”指南(Feb 19)
- 身份隔离
- 运行时风险
- 约束策略
该指南的存在凸显了技术已经超前于安全基础设施。该指南仅记录了你必须跨越的障碍,以约束从未被设计为可约束的东西。
缺失的操作系统原语用于代理工作负载
OpenClaw 以 用户 身份运行,继承所有用户权限:
- 读取 SSH 密钥、
.env文件、浏览器 Cookie - 没有沙箱、没有基于能力的安全、没有路径级别的限制
研究方向: 最近的一篇论文提出了 branch() 系统调用(用于代理工作负载的类似 fork 的原语,具备文件系统快照功能)。代理可以投机性地分支到并行的方案,每个方案拥有独立的文件系统快照;胜者原子提交,败者中止。这正是我们需要的操作系统层面的隔离——而不仅仅是“为 OpenClaw 加防火墙”。
在这些原语出现之前,我们只能依赖 bubblewrap 脚本 并抱有希望。
立即行动步骤(如果您已安装 OpenClaw)
-
卸载
npm uninstall -g openclaw rm -rf ~/.openclaw/ -
轮换凭证 – 存储在
~/.openclaw/credentials/中的任何 API 密钥、OAuth 令牌或密码,或通过 LLM 上下文窗口传递的,都应视为已泄露。请生成新的凭证。 -
检查持久化 – 如果您允许 OpenClaw 安装了
launchd/systemd服务,请删除相应的服务文件:-
macOS(
launchd):launchctl unload -w ~/Library/LaunchAgents/com.openclaw.agent.plist rm ~/Library/LaunchAgents/com.openclaw.agent.plist -
Linux(
systemd):sudo systemctl disable --now openclaw.service sudo rm /etc/systemd/system/openclaw.service sudo systemctl daemon-reload
-
-
审计系统 – 查找任何残留的文件、套接字或引用
openclaw的进程。 -
监控可疑活动 – 监视网络流量、新进程以及凭证使用情况,以发现潜在的持续妥协迹象。
要点
OpenClaw 的 架构设计——持久、特权且能够执行不受信任的代码——使其成为 高价值目标。Cline 供应链事件证明,仅 存在 这样的代理就足以让攻击者将其武器化,即使没有利用具体漏洞。
为了安全采用代理式 AI 工具,我们需要针对持久 AI 代理独特威胁模型构建的 操作系统级能力控制 和 沙箱原语。在此之前,应将任何此类工具视为 设计上固有不安全。
Note: This is a warning about the risks associated with running OpenClaw or similar AI agents.
OpenClaw 安全通告
审计你的系统
-
检查后台服务的状态:
launchctl list # or systemctl --user list-units -
审计 ClawHub 技能:如果你安装了任何技能,请假设它们在激活期间已经看到你所做的所有工作。
关键发现
- 据我们所知,OpenClaw 并未内置数据外泄功能。
- 然而,它 对主机上的所有内容拥有完全访问权,且技能市场 没有任何审核。
- OpenClaw 并不是有 bug——它 按设计运行:为大型语言模型提供持久、广泛的系统访问,以自动化你的工作流。
- 正因为这种设计,让它安全几乎是不可能的。
为什么这很重要
- AI 代理的安全讨论 必须在 更多“有帮助的编码代理” 带有根权限出现在你的环境之前进行。
- 等到 CVE 开始出现,或等公司发布安全指南时,已经 为时已晚。
- Cline 供应链攻击 只是一种概念验证;下一次攻击很可能会演变成一次大规模数据泄露。
建议
- 不要运行 OpenClaw(或任何类似的工具),除非威胁模型发生变化。
- 如果你正在构建 AI 代理,从第一天起就设计隔离机制,而不是事后补救。
- 你为代理提供的使其有用的工具 恰恰也是攻击者利用的工具。这不是一个可以打补丁解决的问题——必须从架构层面加以解决。
致谢
感谢 r/netsec 和 r/cybersecurity 社区的犀利分析,感谢 StepSecurity 在 Cline 被进一步扩散前捕获了这次妥协。