WebAssembly 能解决 AI 智能体最危险的安全漏洞

AI 智能体生成的代码潜藏着一个常被忽视的威胁:智能体可能产生未受检查、甚至致命的指令。这就像《2001太空漫游》里 Hal 9000 接管任务的情景——虽然是科幻,但离现实不远。源自大语言模型输出的代码可能让 AI 智能体访问敏感数据和应用程序,对环境造成严重破坏。
系统工程师、WebAssembly Chicago 创始人 Dan Phillips 在本月巴塞罗那的 Wasm I/O 会议上探讨了这一场景。
智能体运行代码需要隔离
Phillips 解释了为什么 WebAssembly 能为不受信任的 AI 生成代码提供出色的隔离和沙箱。随着智能体演变为代表用户执行操作的执行者,它们需要一个执行环境。
“这是因为它们不只是思考——它们运行源自大语言模型输出的代码并产生产物,”Phillips 说,“代码是确定性的,所以添加隔离为智能体提供了核心原语。”
目前有几种技术用于沙箱化代码,但它们通常依赖共享内核。容器、gVisor 安全层或像 Firecracker 这样的微虚拟机提供了一些隔离,但可能效率低下。这些方法依赖共享内核,有沉重的运行时层,并增加了涉及 nomads、命名空间和控制平面的编排复杂性。
“与其从内核或容器开始,你从无开始,然后逐步添加。这通过构造使某些攻击无法实现。”
“这在金钱、时间和理解上都很昂贵。可能难以推理且启动缓慢,”Phillips 说,“这些都依赖共享内核,对吧?这些有相对沉重的运行时层,而且它们之上还会有编排复杂性。”
Wasm 从无开始
然而,WebAssembly 为 AI 智能体提供了急需的隔离层。这是因为它没有共享内核并使用不同的内存模型。“与其从内核或容器开始,你从无开始,然后逐步添加,”Phillips 说,“这通过构造使某些攻击无法实现。”
通过 WebAssembly 模块运行的应用程序和代码也可以小几个数量级,这是 Wasm 的突出特点之一。其众所周知的优势包括超快速启动时间和 Phillips 所称的 Wasm 实现的同构计算,即相同代码在浏览器、手机、云或家庭服务器上运行。
Boxer 消除开发者摩擦
尽管 Wasm 为 AI 智能体沙箱提供了优势,但开发者如果不理解好处,通常不想为新技术重写代码。开发者期望一个平台和完整的系统访问权限,即使有限制。Phillips 描述了开源 Boxer 如何允许用户获取 Dockerfile 并将其分发为普遍可运行的 Wasm 分发。
“对于大多数可以用 Docker 做的事情,你也可以用 Wasm 做。”
“该项目的目标是允许运行未经修改的代码,无需重写和妥协,”Phillips 说,“这有助于消除摩擦,使 Wasm 更易访问。这基本上意味着对于大多数可以用 Docker 做的事情,你也可以用 Wasm 做。”
尽管有技术优势,WebAssembly 面临“心智模型差距”,Phillips 说。开发者通常期望一个具有系统访问权限的完整平台,并且不愿重写现有代码。“人们在部署时不想重写代码,”Phillips 说,“所以,一项新技术,特别是环境减少的技术,如果他们不理解好处,他们真的不想做。”
沙箱的未来扩展到云端之外,到“同构计算”,其中相同的智能体代码可以在浏览器、移动设备和家庭服务器之间无缝移动。“不仅是云,还有同构计算,你可以在浏览器、手机、云、家庭服务器上运行相同代码,你可以在这些不同元素之间无缝移动这些事物,”Phillips 说。
是的,开发者、平台和工程团队不想摆弄潜在的不兼容性或添加“胶水”层来确保代码——由 AI 智能体或其他方式创建——保持沙箱化。但无论如何,WebAssembly 已经提供了至少非常坚实的隔离水平,这对于 AI 智能体代码分发的爆炸式增长非常必要。
对于倡导者来说,问题变得反问:你为什么不用 WebAssembly 模块沙箱化 AI 智能体?
觉得有用?分享给更多人