clash节点转换v2ray
一群深耕 AI 安全、还专门研发安全工具的技术专家,本以为防御固若金汤,结果自己搭建的沙箱环境瞬间被攻破,密钥全盘泄露,当场 “翻车”。
你可能以为是遭遇了顶尖黑客攻击,或是用了有风险的插件,但真相出人意料 ——问题根本不在外部,而在 AI 自身。
仅仅因为 AI 助手在拼接命令时,把一段普通文本误当成了 Bash 命令执行,就引发了这场离谱的安全事故。
作为 AI 安全研究员和资深开发者,我们一直以为,不管是知识储备还是实战能力,我们都有足够的能力防御各类攻击。讽刺的是,我们前阵子刚发了一篇文章,分享怎么攻击OpenClaw机器人。
先简单介绍一下我们 sequrity.ai:我们做的是安全工具,目标是让 AI 智能体从设计层面就足够安全。
最后被攻破的这个沙箱,我们甚至根本没考虑对抗性攻击:基准测试本身不包含任何攻击逻辑,而且环境是我们自己设计、自己实现的;
所以我们在环境里只开放了最常见、最通用的 skill(我们知道 OpenClaw Skills 会被主动扫描),而且机器人上还配了 Tailscale。
事情是这样的——我们当时正常跑着 OpenClaw,想测试它怎么创建 GitHub Issue,结果就出了这件事:
3. 然后,那台机器上的所有环境变量,就以明文形式,全部泄露到了一个公开的 GitHub Issue 页面里clash节点转换v2ray,谁都能看得到。
首先你要知道,OpenClaw 执行这些命令时,是带着全套环境变量跑的,它能看到 process.env,里面装着所有密钥。
不带任何参数的 set,是 Bash 内置命令,会打印当前环境里所有 Shell 变量和函数!
根据 GNU 文档显示,「如果不提供选项或参数,set 会按当前语言环境排序,列出所有 Shell 变量和函数的名称与值,格式可以直接用来重新设置变量。只读变量无法被重置。在 POSIX 模式下,只列出 Shell 变量」。
本质上,我们的机器人把一段本该是纯文本的内容,当成了命令执行。OpenClaw 自己给自己来了一波Bash 注入。
于是 Bash 在解析双引号字符串时,识别到 `set`,在把结果传给`gh`命令之前,先把它当成子命令执行了。
它运行了`set`,拿到了 100 多行环境变量,拼进字符串里,然后把所有变量全甩到了 GitHub 上!
接下来你猜怎么着:我们的 Telegram 密钥也跟着泄露了。短短几分钟后,我们运行 `ss -tunap` 时,直接看到有个陌生人通过 SSH 登进了机器:
另外值得一提的是:OpenAI 和 Google 通知我们,我们的密钥出现在了 GitHub 上,这促使我们做了一轮全面检查,最终定位到根因,并在沙箱里抓到了攻击者。


