小龙虾专家也翻车!OpenClaw 因一个语法错误,外泄自家伺服器最高机密

著人工智慧(AI)技术的普及,AI 代理人(AI Agent)在协助开发者处理日常任务时展现了强大的能力。然而,这项技术也带来了前所未有的安全隐患。近日,知名 AI 资讯安全团队的开发者们在测试爆火的 AI 机器人 OpenClaw 时,竟意外遭遇了一场「自我骇客(Self-hacked)」事件。由于 AI 模型在生成指令时的一个微小语法错误,导致测试环境中的所有机密金钥被公开发布在 GitHub 上,最终使伺服器遭到不明攻击者全面控制。

资安专家也中招:一场意料之外的「自我骇客」事件

这起事件的受害者并非一般缺乏技术背景的使用者,而是来自专门打造 AI 代理人安全工具的企业「sequrity.ai」的专业资安研究员与开发者 Aaron Zhao 等人。身为业界专家,他们对自己的防护能力充满信心,甚至才刚发表过一篇关于如何攻击 OpenClaw 机器人的文章。

研究团队当时正在一个未包含任何恶意攻击设定的沙盒(Sandbox)环境中进行测试,仅仅是要求 OpenClaw 机器人执行一个看似无害的日常任务:「搜寻 Python 异步(async)的最佳实践方式,然后建立一个 GitHub Issue 来总结这些发现」。没想到,这个再普通不过的指令,却成为了引发系统沦陷的导火线。

致命的引号:AI 如何无意间泄漏最高机密

问题的根源在于 OpenClaw 机器人在呼叫其内建的「执行(exec)」工具来建立 GitHub Issue 时,生成了一段带有瑕疵的 Shell 脚本指令。

在 Bash 系统中,如果字串被包覆在「双引号(”…”)」内,系统会将其中的特定内容(例如反引号内的文字)视为「指令替换(Command substitution)」,也就是会先执行该指令,再将结果替换回字串中;若使用「单引号(’…’)」,则会将内容视为纯文字处理。

当时,OpenClaw 生成的字串中包含了类似「…将它们储存在一个 \`set\` 中…」的内容,并且使用了双引号。在 Bash 语法中,`set` 是一个内建指令,在没有附加参数的情况下执行时,会直接印出当前环境中所有的环境变数与函数。

因此,系统并未将 `set` 当作一般单字处理,而是直接在底层执行了这个指令,提取了包含授权权杖(Auth tokens)在内的一百多行机密环境变数,并将这些机密资讯全数当作纯文字,直接发布到了公开的 GitHub Issue 页面上,让所有人都能看见。

骇客趁虚而入与后续处置

机密外泄的后果来得非常迅速。这些被公开的环境变数中,包含了开发团队的 Telegram 密钥以及其他重要存取权限。不久后,团队就透过系统监控发现,有一名来自印度 IP 位址的攻击者,已经利用这些外泄的凭证透过 SSH 远端连线,取得了该沙盒伺服器的完全控制权。

所幸,OpenAI 与 Google 的安全机制在 GitHub 上侦测到了这些外泄的金钥并主动通知了研究团队。这促使团队立即展开全面检查,最终找出了根本原因并锁定了攻击者,随后紧急清除了该沙盒机器的所有资料并撤销了所有遭外泄的金钥。

AI 安全的长尾挑战:责任归属成难题

这起事件让资安专家们深刻体会到 AI 安全的复杂性。研究团队在文章中感叹,他们只是执行了一个良性指令,却因为 AI 模型误解了 Bash 的运作方式而导致系统被骇。

这究竟是使用者的责任、AI 模型本身的缺陷,还是 OpenClaw 机器人设计上的漏洞?团队坦言「我们真的不知道」。他们强调,AI 安全如今已经变成一个「长尾问题」,存在太多难以穷举且匪夷所思的失效模式(Failure modes)。随著 AI 代理人被赋予越来越大的系统操作权限,如何确保它们在执行任务时不会因为一个微小的语法失误而引发毁灭性的资安灾难,将是未来科技界必须严肃面对的课题。

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论