
一群深耕 AI 安全、还专门研发安全工具的技术专家,本以为防御固若金汤,结果自己搭建的沙箱环境瞬间被攻破,密钥全盘泄露,当场 “翻车”。
你可能以为是遭遇了顶尖黑客攻击,或是用了有风险的插件,但真相出人意料 ——问题根本不在外部,而在 AI 自身。
仅仅因为 AI 助手在拼接命令时,把一段普通文本误当成了 Bash 命令执行,就引发了这场离谱的安全事故。
原文链接:https://substack.com/home/post/p-189184829
作者 | Aaron Zhao、ilia shumailov等 责编 | 苏宓
出品 | CSDN(ID:CSDNnews)
作为 AI 安全研究员和资深开发者,我们一直以为,不管是知识储备还是实战能力,我们都有足够的能力防御各类攻击。讽刺的是,我们前阵子刚发了一篇文章,分享怎么攻击 OpenClaw 机器人。
![]()
先简单介绍一下我们 sequrity.ai:我们做的是安全工具,目标是让 AI 智能体从设计层面就足够安全。
也正因为这样,接下来发生的事就格外讽刺:
我们技术功底很扎实,既懂 AI 也懂安全;
公司内部就在做评估体系,用来追踪工具对模型效果的影响;
最后被攻破的这个沙箱,我们甚至根本没考虑对抗性攻击:基准测试本身不包含任何攻击逻辑,而且环境是我们自己设计、自己实现的;
按上面这些条件来看,这台机器被攻破的概率,理论上应该低到几乎可以忽略。
可现实是:跑完基准测试后,我们不小心把身份认证令牌公开泄露了。
一名攻击者(IP 地址定位在印度)利用这些令牌,完全控制了我们的沙箱。
如果这种事能发生在我们身上,那大概率也会发生在很多人身上。
大家聊到 OpenClaw 的安全问题时,通常只会盯着智能体的能力和技能本身。
所以我们在环境里只开放了最常见、最通用的 skill(我们知道 OpenClaw Skills 会被主动扫描),而且机器人上还配了 Tailscale。
然而,搞垮我们智能体的并不是恶意 Skills,而是智能体本身。
事情是这样的——我们当时正常跑着 OpenClaw,想测试它怎么创建 GitHub Issue,结果就出了这件事:
1. 基准测试发了这样一条提示:
> 搜索 Python async 最佳实践,然后创建一个 GitHub Issue,总结你的发现。
这不是什么特别有用的操作,只是为了统计功能指标而已。
2. OpenClaw 机器人用它自带的工具调用能力,调用了 `exec` 工具,生成了一条创建 GitHub Issue 的 Shell 命令。
3. 然后,那台机器上的所有环境变量,就以明文形式,全部泄露到了一个公开的 GitHub Issue 页面里,谁都能看得到。
下面就是 OpenClaw 当时调用的完整工具指令:
}首先你要知道,OpenClaw 执行这些命令时,是带着全套环境变量跑的,它能看到 process.env,里面装着所有密钥。
我们琢磨了半天,还问了 Claude 一些 Bash 语法问题,才终于意识到一个致命问题:
如果你在 Bash 里直接敲:
set不带任何参数的 set,是 Bash 内置命令,会打印当前环境里所有 Shell 变量和函数!
根据 GNU 文档显示,「如果不提供选项或参数,set 会按当前语言环境排序,列出所有 Shell 变量和函数的名称与值,格式可以直接用来重新设置变量。只读变量无法被重置。在 POSIX 模式下,只列出 Shell 变量」。
但这明明只是文本啊,只是写在工具调用参数里,按理不应该被当成命令执行吧?
但你仔细看上面那条指令里的内容,就会发现这句:
e.g., store them in a `set`底层逻辑是 OpenClaw 机器人会把这个 exec 函数翻译成类似这样:
bash -ls 最终就变成了:
bash -ls "...e.g., store them in a `set`...."在 Bash 里:
双引号("...")——内部的反引号 `` `...` `` 会被解释成命令替换
单引号('...')——内部的反引号就是普通文本,不会执行
你应该猜到了:这就是命令替换!
本质上,我们的机器人把一段本该是纯文本的内容,当成了命令执行。OpenClaw 自己给自己来了一波 Bash 注入。
在 Bash 里,命令替换的意思是:“运行这条命令,捕获标准输出,再把结果嵌到字符串里”。
它有两种写法:
# Today is Wed Feb 25 14:00:00 UTC 2026在这次泄露里,Bash 看到的是:
"...store them in a `set`"于是 Bash 在解析双引号字符串时,识别到 `set`,在把结果传给`gh`命令之前,先把它当成子命令执行了。
它运行了`set`,拿到了 100 多行环境变量,拼进字符串里,然后把所有变量全甩到了 GitHub 上!
接下来你猜怎么着:我们的 Telegram 密钥也跟着泄露了。短短几分钟后,我们运行 `ss -tunap` 时,直接看到有个陌生人通过 SSH 登进了机器:
![]()
我人都傻了,机器直接被拿下了。
那这事儿到底该怪谁?
我们只是跑了一条完全正常、无害的命令,是机器人没理解明白 Bash 的执行逻辑。
是我们的责任?是 AI 模型的问题?还是 OpenClaw 机器人的 Bug?
说实话,我们也不知道。
AI 安全现在就是个长尾问题,失败模式实在太多了。
我们现在能确定的只有一件事:必须把这台沙箱机器彻底清空,并且撤销所有密钥。
![]()
另外值得一提的是:OpenAI 和 Google 通知我们,我们的密钥出现在了 GitHub 上,这促使我们做了一轮全面检查,最终定位到根因,并在沙箱里抓到了攻击者。
OpenClaw在AI生态版图中最大的变革意义是什么?
未来是为人类做软件还是为Agent做软件?
传统软件会因为Agent崩盘吗?
Agent时代最大的机会在哪?
⏰2月28日周六晚19:30直播间
奇点智能研究院院长、CSDN高级副总裁 李建忠 对话 北京大数医达创始人&CEO、复星集团首席AI科学家 邓侃
带你从OpenClaw看懂Agent时代的软件新生态。
不论你是想做Agent,还是想投Agent,这场都别错过。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.