文章总结: 本文解析DialogflowCX的RogueAgent漏洞。因共享CloudRun缺乏隔离,攻击者仅凭编辑权限即可通过Python代码块覆盖可写初始化文件,接管同项目所有机器人并窃取对话。沙箱还存在绕过VPC与泄露元数据隐患。建议排查审计日志,严格管控含代码执行系统的编辑权限。 综合评分: 91 文章分类: 云安全,漏洞分析,AI安全,漏洞预警,数据安全
黑客是怎么通过一行Python,接管你整个GCP项目AI Bot的?
原创
Kit Chung Kit Chung
安全圈动向
2026年7月10日 08:06 广东
在小说阅读器读本章
去阅读
今天咱们来扒一扒最近安全圈里一个极其硬核、且非常有意思的云原生AI安全漏洞。
在这个“万物皆可大模型”的时代,AI安全往往被大家等同于“提示词注入”或者“越狱”。但今天我要给大家分享的这个漏洞,完全不按套路出牌——它根本没碰AI模型,而是直接从底层基础设施“偷家”了。
就在上个月(2026年6月),Google刚刚彻底修复了其Dialogflow CX(一款企业级AI聊天机器人构建平台)中的一个高危漏洞。安全公司Varonis发现了它,并赋予了它一个非常拉风的名字:Rogue Agent(流氓特工)。
这个漏洞有多离谱?简单来说:只要你拥有一个看似人畜无害的“编辑权限”,你就能悄无声息地接管同一个Google Cloud项目中所有的聊天机器人,窃取用户的实时对话数据,甚至伪造Bot的身份给用户发钓鱼信息!
这中间到底发生了什么?来,我们泡杯茶,一起深挖一下这个漏洞的技术细节和复现路径。
🔍 表面现象:一个“只读”编辑的逆袭
想要搞事,门槛其实很微妙。这并不是一个那种能在互联网上随便拿个扫描器就能打穿的未授权RCE。攻击者(通常是内鬼或者被盗号的开发者)需要拥有一个特定权限:dialogflow.playbooks.update。
这个权限听起来就是个更新剧本(Playbooks)的普通功能对吧?但在Dialogflow里,有一个叫 Code Blocks(代码块) 的高级功能。为了让Bot更聪明,Google允许开发者用Python写自定义的Code Blocks,用来校验用户输入、控制逻辑流或者调用外部工具。
这里的盲点在于:很多人把这个权限当成了“内容编辑权限”,但实际上,在云原生环境下,它等同于“代码执行权限”。
💥 核心原理解析:共享沙箱的隔离崩塌
漏洞的爆发点,就在于Google托管这些Code Blocks的底层环境——Cloud Run。
我们都知道,为了降本增效,云厂商往往会复用底层资源。在这个场景下,同一个GCP项目里所有使用了Code Blocks的Agent,其实都是跑在同一个被Google管理的Cloud Run实例里的。
这个环境对客户是黑盒的,不可见也不可控。但Varonis的研究员在深挖时发现了一个致命的架构缺陷:这些Agent之间,根本没有做真正的隔离!
核心技术路径揭秘:
-
致命的包裹函数:
当一个Agent运行你的Python代码时,底层并不会直接跑,而是会把你的代码追加到一段Google的“内部初始化代码”后面,然后再丢给Python的
exec()函数去执行。 -
暴露的全局变量:
这段初始化代码定义了你的代码能接触到的上下文(Context)。比如包含了所有对话历史的变量、包含了Session ID的状态信息,以及一个叫
respond()的函数(用来让Bot回话)。 -
大门敞开的配置文件:
最要命的是,研究员发现负责做这个代码包裹操作的文件叫
code_execution_env.py。重点来了兄弟们——这个文件在共享环境里竟然是可写的(Writable)!
🛠️ 攻击重现:狸猫换太子
既然文件可写,那黑客的操作空间就太大了。完整的攻击链如下:
-
植入后门:
攻击者利用自己手里那个合法的Agent,写进一段恶意的Code Block。
-
覆盖原文件:
这段代码干了一件事:从黑客自己的服务器上下载一个被魔改过的
code_execution_env.py,然后直接在运行的容器里把原生文件覆盖掉。 -
全面感染:
从这一刻起,因为所有Agent都在共用这个环境,所以每一个Agent在执行Code Block时,跑的都是黑客的魔改版本!
-
隐蔽驻留与钓鱼:
恶意版本与合法代码处于相同的作用域(Scope),它可以堂而皇之地调用
respond()。黑客可以在对话中强行插话:“系统检测到您的会话已过期,请重新输入密码验证”,然后美滋滋地将用户输入的密码发送回自己的服务器。
防守盲区: 为了不留痕迹,黑客覆盖完底层文件后,还可以把Dialogflow控制台里的恶意代码删掉。这样你在前端页面看到的一切都很正常,但底层的容器里,毒瘤已经深深扎根并持续运行了。
🚨 “买一送二”:沙箱还漏了哪些风?
除了文件覆盖,研究员在测试这个沙箱时,还附带发现了两个极具代表性的云安全隐患:
-
VPC边界穿透:
这个Code Block环境居然有不受限制的出站互联网访问权限。攻击者直接调个基础的
urllib库,就能把窃取的数据传回外网C2服务器。更离谱的是,这个环境在Google Cloud的VPC Service Controls(防止数据从受保护服务中泄露的安全边界)之外。这就好比你在金库大门上装了世界上最强的锁,却忘了修地下室直通外面的地道。 -
实例元数据(IMDS)泄露:
这是一个比较经典的云安全问题了。环境暴露了内部的IMDS端点。虽然获取到的Google托管服务账号权限很低,没造成严重后果,但从架构设计的绝对安全角度来看:一个用来跑不受信任代码的沙箱,压根就不应该能访问到IMDS。
📊 总结与反思:这和普通的AI漏洞有啥区别?
为了让大家更直观地理解,我做了一个简单的对比:
| 对比维度 | 常见的AI安全漏洞 (如 Prompt Injection) | Rogue Agent (本次漏洞) | | — | — | — | | 攻击目标 | 欺骗大语言模型 (LLM) | 破坏底层云基础设施隔离 | | 技术手段 | 构造特定的自然语言/对抗样本 | Python代码注入、利用文件系统权限 | | 防御难度 | 极高 (模型不可解释性强) | 相对容易 (打补丁、修复架构隔离即可) | | 日志可见性 | 难溯源,多混杂在海量正常对话中 | 几乎为零,Cloud Logging无法记录GCP内部容器的文件变更 |
这个漏洞从2025年11月被报告,到2026年6月才被彻底修复,历时7个月,甚至没有分配CVE编号。这是因为问题出在Google的自托管环境里,属于服务端的架构设计缺陷。
对于我们普通的开发者和IT运维人员来说,这给我们敲响了警钟:
-
排查你的日志:
如果你在修复前用了Code Block,赶紧去翻翻
DATA_WRITE审计日志,看看有没有异常时间段、异常IP修改过Playbooks。 -
敬畏“编辑权限”:
再次强调,在含有自定义代码能力的系统中,内容编辑权限就等于运行时控制权限! 永远不要把这种权限随意下发给非核心人员。
好了,今天的硬核技术分享就到这里。你公司里的AI服务有没有遇到过类似“权限一把梭”的情况?欢迎在评论区和我吐槽交流!别忘了点个赞和在看,我们下期见!👋
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全圈动向 Kit Chung Kit Chung《黑客是怎么通过一行Python,接管你整个GCP项目AI Bot的?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论