德国安全研究人员透露,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 爬虫一样爬行网络多年了。如果爬虫不限制对同一网站的请求数量,它们会立即被封锁。"
好文章,需要你的鼓励
大众汽车旗下ID. Polo与Cupra Raval已在西班牙马托雷尔工厂正式下线投产。两款车型起售价分别为24,995欧元和26,000欧元,均基于MEB+平台打造,搭载37kWh或52kWh电池组,续航里程最高可达454公里。这是大众"电动城市车家族"系列的首批产品,预计今年夏末秋初开始交付。大众集团通过跨品牌资源整合,实现约6亿欧元的成本节约,后续还将推出ID. Cross等新成员。
STATE16研究院这篇综述发现,物理AI系统存在"静默失效"风险——AI以高度自信执行基于错误世界信息的动作,却不触发任何报警,并提出在AI输出与物理执行之间建立独立授权层的框架。
三星宣布将于6月8日起为Samsung Health应用推出重磅功能更新,赶在Galaxy Watch 9传闻发布之前落地。新版本将引入多项AI驱动的生物特征分析功能,包括:综合心率、血氧、皮肤温度等数据的每日活力评分(Vitals)、结合体成分数据评估长期心脏健康的心脏健康评分、优化训练强度的每日有氧负荷追踪,以及横向对比用户群体的健身指数。此外,应用界面将重新划分为睡眠、营养、活动、正念和体征五大板块,并新增抗氧化指数、年龄指数和听力保护等个性化功能。
UIUC与微软联合研发的OpenWebRL框架让4B小模型仅凭400条初始数据,通过在真实网站上边做边学的强化学习方式,在网页智能体基准上超越了用27万条数据训练的竞争对手。