黑客利用自定义GPT中的SSRF漏洞窃取ChatGPT机密

安全研究员发现OpenAI ChatGPT自定义GPT功能中存在服务器端请求伪造漏洞,攻击者可利用此漏洞获取Azure管理API令牌等云基础设施密钥,文章详细分析了漏洞利用流程和云环境下的潜在危害。

黑客利用自定义GPT中的SSRF漏洞窃取ChatGPT机密

一位网络安全研究员在OpenAI的ChatGPT中发现了一个服务器端请求伪造漏洞。该漏洞隐藏在自定义GPT功能中,可能允许攻击者访问敏感的云基础设施密钥,包括Azure管理API令牌。

通过OpenAI的漏洞赏金计划披露后,该问题被迅速修复,但这凸显了基于云的AI服务中SSRF漏洞的持续威胁。

攻击流程

在构建自定义GPT时,研究员注意到了“Actions”部分。该功能允许用户通过OpenAPI模式定义外部API,使GPT能够从用户指定的URL获取数据并整合到响应中。

然而,提供任意URL的能力触发了研究员的“黑客直觉”,促使他探查SSRF漏洞。

SSRF发生在应用程序无意中将用户提供的请求转发到非预期目的地时,通常是内部网络或云元数据端点。自2021年以来,SSRF一直位列OWASP Top 10,它利用了攻击者无法直接访问的服务器特权访问权限。

密钥泄露

研究员针对ChatGPT的Azure托管后端进行了测试。最初尝试将API URL指向实例元数据服务失败,系统强制使用HTTPS,阻止了仅支持HTTP的元数据端点。

研究员使用了经典的绕过方法:302重定向。通过使用类似Burp Collaborator的工具,研究员托管了一个HTTPS端点,该端点重定向到内部IMDS URL。

在通过GPT的“Test”按钮测试时,ChatGPT遵循了重定向并获取了元数据,但只是部分成功。Azure需要“Metadata: True”标头才能访问,但由于该标头缺失,导致出现错误。

进一步测试发现在身份验证设置中存在变通方法。通过将自定义API密钥命名为“Metadata”并将其值设置为“True”,该标头被注入到请求中。最终成功获取了IMDS数据。

权限升级

研究员随后请求了Azure管理API的OAuth2令牌。响应中包含了一个有效令牌,可能授予对ChatGPT云资源的控制权,例如启动实例或查询存储。

该漏洞通过Bugcrowd立即报告给OpenAI,被评为高严重性等级。虽然不如过去的漏洞危害大,但足以暴露基础设施密钥。

OpenAI迅速修复了该漏洞,可能加强了URL验证、重定向处理和标头控制。

安全启示

这一事件凸显了AI的双刃剑特性:像自定义GPT这样的创新功能提升了实用性,但也扩大了攻击面。

随着云采用的激增,开发人员必须优先考虑针对SSRF的缓解措施,例如IP白名单和协议强制执行。对用户而言,这加强了警惕性的重要性,即使“有用”的AI也可能成为攻击载体。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计