德国安全研究人员透露,OpenAI 的 ChatGPT 爬虫存在漏洞,可能被利用对任意网站发起分布式拒绝服务 (DDoS) 攻击,而该科技巨头尚未对此作出回应。
本月在 Microsoft 的 GitHub 平台上,德国安全研究员 Benjamin Flesch 发布了一份报告,详细说明了如何通过向 ChatGPT API 发送单个 HTTP 请求,就能让 ChatGPT 爬虫 (特别是 ChatGPT-User) 对目标网站发起大量网络请求。
虽然这种连接泛洪从实际效果来看可能不足以击垮任何特定网站,但这仍然是一个潜在的威胁,也反映了 OpenAI 的疏忽。攻击者可以将单个 API 请求放大为每秒 20 到 5,000 次甚至更多的请求,持续不断地攻击目标网站。
Flesch 在其公告中解释说:"ChatGPT API 在处理 https://chatgpt.com/backend-api/attributions 的 HTTP POST 请求时存在严重的质量缺陷。" 这个 API 端点是 OpenAI 的 ChatGPT 用来返回聊天机器人输出中引用的网络源信息。当 ChatGPT 提到特定网站时,它会调用 attributions 并提供一个 URL 列表,让爬虫访问这些网站并获取相关信息。
如果向 API 提供一个很长的 URL 列表,这些 URL 略有不同但都指向同一个网站,爬虫就会同时访问所有这些链接。
Flesch 指出:"API 在 urls 参数中需要一个超链接列表。众所周知,指向同一网站的超链接可以用多种方式书写。由于糟糕的编程实践,OpenAI 既不检查指向同一资源的超链接是否在列表中重复出现,也不对 urls 参数中存储的超链接数量设置上限,这使得在单个 HTTP 请求中可以传输数千个超链接。"
受害者永远不会知道是什么击中了他们
因此,攻击者可以使用 Curl 等工具发送 HTTP POST 请求(无需认证令牌)到该 ChatGPT 端点,Microsoft Azure 上的 OpenAI 服务器就会对请求中 urls[] 参数提交的每个超链接发起 HTTP 请求。当这些请求指向同一网站时,可能会使目标不堪重负,导致 DDoS 症状—由 Cloudflare 代理的爬虫每次都会从不同的 IP 地址访问目标网站。
Flesch 向 The Register 表示:"受害者永远不会知道是什么击中了他们,因为他们只能看到 ChatGPT 机器人同时从大约 20 个不同的 IP 地址访问他们的网站。" 他补充说,即使受害者启用防火墙阻止 ChatGPT 机器人使用的 IP 地址范围,机器人仍会继续发送请求。
"所以一个失败或被阻止的请求不会阻止 ChatGPT 机器人在下一毫秒再次请求受害者网站。"
Flesch 说:"由于这种放大效应,攻击者只需向 ChatGPT API 发送少量请求,但受害者将收到大量请求。"
Flesch 表示,他通过多个渠道报告了这个未经身份验证的反射式 DDoS 漏洞—包括 OpenAI 的 BugCrowd 漏洞报告平台、OpenAI 的安全团队邮箱、Microsoft (包括 Azure) 和 HackerOne—但没有收到任何回应。
The Register 两次联系由 Microsoft 支持的 OpenAI,但未得到回复。
Flesch 说:"我认为更大的问题是这个 API 还容易受到提示注入攻击,"他提到了另一个漏洞披露。"为什么这样一个简单的任务会有提示注入问题?我想可能是因为他们正在内部测试他们的自主 'AI agent' 系统。"
第二个问题可以被利用来让爬虫通过相同的 attributions API 端点回答查询;你可以向机器人提供问题,它可以回答这些问题,而这本不是它应该做的;它本应该只是获取网站信息。
Flesch 质疑为什么 OpenAI 的机器人没有实现简单的、已建立的方法来正确去重 URL 列表或限制列表大小,也没有设法避免在主要 ChatGPT 界面中已经解决的提示注入漏洞。
他说:"在我看来,这个小型 API 似乎是他们 ChatGPT AI agents 的一个示例项目,其任务是从用户提供的数据中解析 URL,然后使用 Azure 获取网站内容。"
"'AI agent' 是否没有内置安全功能?"他问道。"因为显然处理 urls[] 参数的 'AI agent' 对资源耗尽没有概念,也不明白为什么在同一秒内向同一个网络域名发送数千个请求是愚蠢的。"
"它难道没有认识到 victim.com/1 和 victim.com/2 指向同一个网站 victim.com,如果 victim.com/1 的请求失败了,为什么还要立即发送对 victim.com/2 的请求?"
"这些都是人们多年来在软件中实施的小型验证逻辑,以防止这种滥用。"
Flesch 说,他能想到的唯一解释是 OpenAI 正在使用 AI Agent 来触发这些 HTTP 请求。
他说:"我无法想象一个高薪的硅谷工程师会这样设计软件,因为 ChatGPT 爬虫已经像 Google 爬虫一样爬行网络多年了。如果爬虫不限制对同一网站的请求数量,它们会立即被封锁。"
好文章,需要你的鼓励
OpenAI首席执行官Sam Altman表示,鉴于投资者的AI炒作和大量资本支出,我们目前正处于AI泡沫中。他承认投资者对AI过度兴奋,但仍认为AI是长期以来最重要的技术。ChatGPT目前拥有7亿周活跃用户,是全球第五大网站。由于服务器容量不足,OpenAI无法发布已开发的更好模型,计划在不久的将来投资万亿美元建设数据中心。
阿里巴巴团队提出FantasyTalking2,通过创新的多专家协作框架TLPO解决音频驱动人像动画中动作自然度、唇同步和视觉质量的优化冲突问题。该方法构建智能评委Talking-Critic和41万样本数据集,训练三个专业模块分别优化不同维度,再通过时间步-层级自适应融合实现协调。实验显示全面超越现有技术,用户评价提升超12%。
英伟达推出新的小型语言模型Nemotron-Nano-9B-v2,拥有90亿参数,在同类基准测试中表现最佳。该模型采用Mamba-Transformer混合架构,支持多语言处理和代码生成,可在单个A10 GPU上运行。独特的可切换推理功能允许用户通过控制令牌开启或关闭AI推理过程,并可管理推理预算以平衡准确性和延迟。模型基于合成数据集训练,采用企业友好的开源许可协议,支持商业化使用。
UC Berkeley团队提出XQUANT技术,通过存储输入激活X而非传统KV缓存来突破AI推理的内存瓶颈。该方法能将内存使用量减少至1/7.7,升级版XQUANT-CL更可实现12.5倍节省,同时几乎不影响模型性能。研究针对现代AI模型特点进行优化,为在有限硬件资源下运行更强大AI模型提供了新思路。