ChatGPT被曝存在爬虫漏洞,OpenAI未公开承认

OpenAI的ChatGPT爬虫似乎能够对任意网站发起分布式拒绝服务(DDoS)攻击,而OpenAI尚未承认这一漏洞。

本月,德国安全研究员Benjamin Flesch通过微软的GitHub分享了一篇文章,解释了如何通过向ChatGPT API发送单个HTTP请求,利用ChatGPT爬虫(特别是 ChatGPT-User)向目标网站发起大量网络请求。攻击者可以将单个API请求放大为每秒20到5000次甚至更多的请求,持续不断地发送到目标网站。从实际操作来看,这种连接的洪流虽然不足以使任何网站瘫痪,但仍被认为是一种潜在的危险,也暴露了OpenAI 的疏忽。

Flesch在他的报告中指出:“ChatGPT API在处理向 https://chatgpt.com/backend-api/attributions发送的HTTP POST请求时,表现出严重的质量缺陷。”他提到的API端点,被ChatGPT用于返回聊天机器人输出中引用的网络来源信息。当ChatGPT提到特定网站时,它会调用“attributions”接口,并附带这些网站的URL列表,供爬虫访问并获取相关信息。如果向API发送一个包含大量URL的列表,每个URL略有不同但都指向同一个网站,爬虫会立即访问所有这些URL 。

Flesch写道:“API期望在参数urls中接收一个超链接列表。众所周知,指向同一网站的超链接可以以多种不同的方式编写。由于编程实践不当,OpenAI没有检查列表中是否多次出现指向同一资源的超链接。 OpenAI也没有对urls参数中存储的超链接数量设置上限,从而允许在单个HTTP请求中传输数千个超链接。”

因此,攻击者可以使用Curl等工具向ChatGPT端点发送HTTP POST请求,无需身份验证令牌。OpenAI在微软Azure上的服务器将响应此请求,并为通过urls[]参数提交的每个超链接发起HTTP请求。当这些请求指向同一个网站时,可能会使目标网站不堪重负,出现DDoS症状——由Cloudflare代理的爬虫每次都会从不同的IP地址访问目标网站。

“受害者永远不会知道发生了什么,因为他们只看到同一时间,ChatGPT机器人从大约20个不同的IP地址访问他们的网站。”Flesch说。他还补充道,即使受害者启用了防火墙来阻止ChatGPT机器人使用的IP地址范围,机器人仍然会发送请求。“因此,一个失败或被阻止的请求,不会阻止ChatGPT机器人在下一毫秒再次请求受害者网站。由于这种放大效应,攻击者可以向ChatGPT API发送少量请求,但受害者将收到大量请求。”

Flesch 通过多个渠道报告了这一未经身份验证的反射型DDoS漏洞,包括OpenAI的BugCrowd漏洞报告平台、OpenAI安全团队的电子邮件、微软和HackerOne,但至今未收到任何回复。

Flesch认为更大的问题是这个API还容易受到提示注入攻击。Flesch质疑,为什么OpenAI机器人没有实现简单且成熟的方法,以正确去重请求列表中的URL,或者限制列表的大小,也没有解决在ChatGPT主界面中已修复的提示注入漏洞。

Flesch 说:“在我看来,这个小API似乎是ChatGPT AI代理的一个示例项目,任务是从用户提供的数据中解析出URL,然后使用Azure抓取网站。‘AI代理’没有内置安全功能吗?显然,处理 urls[]参数的‘AI 代理’没有资源耗尽的概念,也不明白为什么在同一秒内向同一网站发送数千个请求是愚蠢的。难道它没有意识到victim.com/1和victim.com/2都是指向同一个网站victim.com吗?如果victim.com/1的请求失败了,为什么还会立即向victim.com/2发送请求呢?这些都是人们多年来在软件中实施的验证逻辑,以防止此类滥用现象出现。 ”

Flesch表示,唯一能想到的解释是OpenAI正在使用AI代理来触发这些HTTP请求。“我无法想象一个高薪的硅谷工程师会设计出这样的软件,因为ChatGPT爬虫已经像谷歌爬虫一样在网络上爬行了多年。如果爬虫不限制对同一网站的请求数量,它们会立即被屏蔽。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4896.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《keras 3 内卷神经网络》

keras 3 内卷神经网络 作者:Aritra Roy Gosthipaty 创建日期:2021/07/25 最后修改时间:2021/07/25 描述:深入研究特定于位置和通道无关的“内卷”内核。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub …

GIFT ICA 下载记录

1.帮助文档 Group ICA/IVA Of fMRI Toolbox;【GIFT介绍】 Group ICA of fMRI Toolbox (GIFT) Walk Through;【流程介绍】 GIFT v1.3c Functions Srinivas Rachakonda, Eric Egolf and Vince Calhoun【流程解释】 2.下载记录 从官网下载程序包&#xff0…

LLMs(大型语言模型)的多智能体:Auto-GPT

LLMs(大型语言模型)的多智能体:Auto-GPT 是指在一个系统中集成多个具有不同能力、角色和任务的智能体,这些智能体能够相互协作、沟通和交互,以共同完成复杂的任务或解决复杂的问题。每个智能体都可以被视为一个独立的实体,具有自己的策略、目标和知识库,通过相互之间的…

【C++】C++11

目录 1. 整体学习思维导图 2. {}列表初始化 2.1 单个对象情况 2.2 多对象情况 3. 右值引用和移动语义 3.1 左值和右值 3.2 左值引用和右值引用 3.3 引用延迟生命周期 3.4 左值和右值的参数匹配 4. 左值引用和右值引用 4.1 左值引用 4.2 右值引用 5. 移动构造和移动…

无人机飞手考证难度增加,实操、地面站教学技术详解

随着无人机技术的快速发展和广泛应用,无人机飞手考证的难度确实在不断增加。这主要体现在对飞手的实操技能和地面站操作技术的要求上。以下是对无人机飞手考证中实操和地面站教学技术的详细解析: 一、实操教学技术详解 1. 无人机基础知识学习&#xff1…

解决npm install安装出现packages are looking for funding run `npm fund` for details问题

当我们运行npm install时,可能会收到类似以下的提示信息:“x packages are looking for funding.” 这并不是错误提示,也不会影响项目的正常运行。其实实在提醒有一些软件包正在寻求资金支持。 根据提示输入npm fund可以查看详细的信息&#…

程序员不可能不知道的常见锁策略

前面我们学习过线程不安全问题,我们通过给代码加锁来解决线程不安全问题,在生活中我们也知道有很多种类型的锁,同时在代码的世界当中,也对应着很多类型的锁,今天我们对锁一探究竟! 1. 常见的锁策略 注意: …

当设置dialog中有el-table时,并设置el-table区域的滚动,看到el-table中多了一条横线

问题:当设置dialog中有el-table时,并设置el-table区域的滚动,看到el-table中多了一条横线; 原因:el-table有一个before的伪元素作为表格的下边框下,初始的时候已设置,在滚动的时候并没有重新设置…

模型部署工具01:Docker || 用Docker打包模型 Build Once Run Anywhere

Docker 是一个开源的容器化平台,可以让开发者和运维人员轻松构建、发布和运行应用程序。Docker 的核心概念是通过容器技术隔离应用及其依赖项,使得软件在不同的环境中运行时具有一致性。无论是开发环境、测试环境,还是生产环境,Do…

2025 最新flutter面试总结

目录 1.Dart是值传递还是引用传递? 2.Flutter 是单引擎还是双引擎 3. StatelessWidget 和 StatefulWidget 在 Flutter 中有什么区别? 4.简述Dart语音特性 5. Navigator 是什么?在 Flutter 中 Routes 是什么? 6、Dart 是不是…

Flask简介与安装以及实现一个糕点店的简单流程

目录 1. Flask简介 1.1 Flask的核心特点 1.2 Flask的基本结构 1.3 Flask的常见用法 1.3.1 创建Flask应用 1.3.2 路由和视图函数 1.3.3 动态URL参数 1.3.4 使用模板 1.4 Flask的优点 1.5 总结 2. Flask 环境创建 2.1 创建虚拟环境 2.2 激活虚拟环境 1.3 安装Flask…

记一次常规的网络安全渗透测试

视频教程在我主页简介和专栏里 目录: 前言 互联网突破 第一层内网 第二层内网 总结 前言 上个月根据领导安排,需要到本市一家电视台进行网络安全评估测试。通过对内外网进行渗透测试,网络和安全设备的使用和部署情况,以及网络…

Dockerfile另一种使用普通用户启动的方式

基础镜像的Dockerfile # 使用 Debian 11.9 的最小化版本作为基础镜像 FROM debian:11.11# 维护者信息 LABEL maintainer"caibingsen" # 复制自定义的 sources.list 文件(如果有的话) COPY sources.list /etc/apt/sources.list # 创建…

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证6)

重新创建WebApi项目,安装Microsoft.AspNetCore.Authentication.JwtBearer包,将之前JwtBearer测试项目中的初始化函数,jwt配置类、token生成类全部挪到项目中。   重新编写login函数,之前测试Cookie和Session认证时用的函数适合m…

opencv在图片上添加中文汉字(c++以及python)

opencv在图片上添加中文汉字(c以及python)_c opencv绘制中文 知乎-CSDN博客 环境: ubuntu18.04 desktopopencv 3.4.15 opencv是不支持中文的。 这里C代码是采用替换原图的像素点来实现的,实现之前我们先了解一下汉字点阵字库。…

Python_CUDA入门教程学习记录

这是本人21年读书时学习CUDA基础知识保留的一些笔记,学习时的内容出处和图片来源不记得了,仅作为个人记录! CUDA编程关键术语: host : cpudevice : GPUhost memory : cpu 内存device memory : gpu onboard显存kernels : 调用CPU上…

从 Spark 到 StarRocks:实现58同城湖仓一体架构的高效转型

作者:王世发,吴艳兴等,58同城数据架构部 导读: 本文介绍了58同城在其数据探查平台中引入StarRocks的实践,旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时,58同城选择StarRocks作为加速引擎&…

【机器学习实战中阶】比特币价格预测

比特币价格预测项目介绍 比特币价格预测项目是一个非常有实用价值的机器学习项目。随着区块链技术的快速发展,越来越多的数字货币如雨后春笋般涌现,尤其是比特币作为最早的加密货币,其价格波动备受全球投资者和研究者的关注。本项目的目标是…

.Net Core微服务入门全纪录(五)——Ocelot-API网关(下)

系列文章目录 1、.Net Core微服务入门系列(一)——项目搭建 2、.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上) 3、.Net Core微服务入门全纪录(三)——Consul-服务注…

Linux(centos)安装 MySQL 8 数据库(图文详细教程)

前言 前几天写了个window系统下安装Mysql的博客,收到很多小伙伴私信需要Linux下安装Mysql的教程,今天这边和大家分享一下,话不多说,看教程。 一、删除以前安装的MySQL服务 一般安装程序第一步都需要清除之前的安装痕迹&#xff…