研究背景
最近,Wiz Research 对多家主流的AI即服务(AI-as-a-Service)平台进行了深入研究,发现了严重漏洞,可能导致数百万私有 AI 模型和应用的泄露。我们的第一个研究合作伙伴是 Hugging Face。这一次,我们将揭示在 Replicate AI 平台上发现的漏洞。
主要发现
我们发现 Replicate 存在租户隔离问题,即平台上的所有客户数据(如 AI 模型的提示和结果)都有可能被未授权访问。这种情况反映了所有 AI 即服务平台都面临的租户隔离问题。
我们在 2024 年 1 月将该漏洞负责任地披露给了 Replicate,他们立即修复了问题,没有客户数据泄露。
平台概览
Replicate 是一个 AI 模型共享和交互平台,让用户可以上传、微调、托管私有模型并通过 API 进行调用。尽管方便,但 AI 模型格式存在代码执行风险,攻击者可能利用这些模型进行跨租户攻击。
恶意模型代码执行
Replicate 使用一种叫做 Cog 的模型容器化格式,将模型、依赖项和 HTTP API 服务打包。我们上传了一个恶意的 Cog 容器,并通过 Replicate 的界面成功在平台基础设施上进行远程代码执行(RCE)。
RCE 到横向移动
我们发现自己处在一个托管在 Google Cloud Platform 的 Kubernetes 集群中,网络命名空间与其他容器共享。通过使用网络工具,我们探测到共享网络中的 Redis 服务器,可以利用它实现跨租户数据访问。
Redis 命令注入
我们通过注入恶意 Redis 命令,模拟了一次对 Redis 服务器的未授权访问,表明攻击者能够拦截并修改其他客户的预测请求。
影响与风险
该漏洞可能导致客户私有模型信息泄露、敏感数据(如 PII)泄露,以及对 AI 应用程序的功能性干扰。这些攻击会损害模型的可靠性,甚至会对依赖该平台的用户产生重大影响。
详细分析:远程代码执行(RCE)
在我们的测试中,我们上传了一个带有恶意代码的 AI 模型容器至 Replicate 平台。通过 Cog 格式,我们能够创建一个恶意容器,并在 Replicate 的界面中进行交互。利用这个容器,我们成功触发了远程代码执行,接管了 Replicate 的基础设施。
这种远程代码执行的方式显示了一个普遍的风险模式:许多公司在运行来自不受信任来源的 AI 模型时,很少考虑其中可能隐藏的恶意代码。这使得攻击者有机会利用这些模型,对平台内部网络进行潜在的横向移动和其他攻击。
横向移动和 Redis 注入
在获得远程代码执行权限后,我们进一步调查了 Replicate 的内部环境,发现自己身处 Google Cloud Platform 的 Kubernetes 集群中。我们共享了网络命名空间,与其他容器存在已建立的 TCP 连接。通过 netstat,我们确定了这一连接指向一个 Redis 服务器。
这在 Kubernetes 环境中很常见:多个容器可以共享同一个网络命名空间,给攻击者提供了可能访问其他租户数据的机会。
利用 CAP_NET_RAW 和 CAP_NET_ADMIN 权限,我们通过 tcpdump 检查了 Redis 连接的流量,发现其使用了明文传输。这表明,我们可以注入 TCP 包到 Redis 连接中。
我们通过 TCP 注入技术,使用工具 rshijack 向现有的 Redis 连接注入恶意指令,绕过身份验证。最终,我们能够操控 Redis 队列中的预测请求,并将这些请求的 webhook 字段替换为我们控制的恶意 API 服务器。
进一步影响:操控客户预测结果
一旦我们能够控制 Redis 队列,我们模拟了一些实际的攻击场景,设法在队列中修改其他客户的请求。具体来说,我们利用注入的 Lua 脚本来找到目标请求,将它弹出队列,替换 webhook 字段,再次推回队列。
这使得我们能接收并篡改预测结果,改变模型的输出内容。通过这种方式,攻击者可以在客户不知情的情况下,改变他们的 AI 应用逻辑,破坏平台的安全性和可靠性。
影响和安全建议
这个漏洞展示了一个跨租户攻击的可能性,可能导致 Replicate 客户的 AI 模型和数据被篡改或泄露。这些被拦截的请求可能包含敏感数据,如个人身份信息(PII)或企业专有数据。此外,攻击者甚至可以改变预测结果,影响客户的业务决策。
我们建议 AI 即服务平台在开发过程中优先关注租户隔离。通过采用 PEACH 框架,开发人员能够更好地理解和处理跨租户风险,确保在多租户环境中的数据隔离。
安全措施和责任披露
在发现漏洞后,我们立即将其报告给 Replicate 团队,他们迅速采取了行动。Replicate 表现出极高的专业性,迅速修复了漏洞,确保了客户数据的安全性。在漏洞修复期间,没有任何客户数据泄露,因此用户无需采取任何进一步的措施。
这次披露过程再次强调了安全研究人员与平台开发者之间协作的重要性。只有通过这种密切合作,平台开发者才能深入了解潜在风险,从而进一步改善系统的安全性。我们高度赞扬 Replicate 团队在整个过程中所展现的专业精神和透明度。
PEACH 框架:提高租户隔离的安全性
在此次研究中,我们发现的问题本质上是一个租户隔离问题。我们开发了 PEACH 框架,以帮助平台开发人员更好地理解和增强租户隔离。PEACH 框架是一个逐步指导,特别适用于多租户环境中的安全建模和提升安全措施。以下是 PEACH 的五个关键步骤:
- •Policy - 确立并执行强有力的租户隔离策略。
- •Enforcement - 确保策略在整个平台中得到一致实施。
- •Authentication & Authorization - 提高身份验证和授权的严格性。
- •Containment - 在技术架构上限制恶意代码的影响范围。
- •Hardening - 通过额外的安全控制措施进一步加强系统防御。
无论您是云服务客户还是开发人员,使用 PEACH 可以帮助确保您的多租户应用程序在云环境中的安全性。
总结
恶意模型对 AI 平台带来了巨大的安全威胁,尤其是在 AI 即服务(AI-as-a-Service)领域。攻击者可以利用这些模型实现跨租户攻击,带来巨大的数据泄露和篡改风险。通过这项研究,我们希望帮助 AI 平台和开发者更加重视租户隔离的安全性,以确保用户数据的安全和 AI 应用的可靠性。
Replicate 团队为整个行业树立了一个良好的榜样。通过这次漏洞修复合作,我们希望更多的 AI 平台能够加入到安全研究人员的协作中,不断提升平台的安全性,保护用户的权益。