当前位置: 首页 > news >正文

“我用 ChatGPT 造了一个零日漏洞,成功逃脱了 69 家安全机构的检测!”

一周以前,图灵奖得主 Yoshua Bengio、伯克利计算机科学教授 Stuart Russell、特斯拉 CEO 埃隆·马斯克、苹果联合创始人 Steve Wozniak 等在内的数千名 AI 学者、企业家联名发起一则公开信,建议全球 AI 实验室立即停止训练比 GPT-4 更强大的模型,为期六个月,缘由是「只有当我们确信强大的人工智能系统带来积极的效果,其风险是可控的,才应该开发」。

这样的呼吁虽有人反对,但也不无道理,ChatGPT、GPT-4 大模型与产品,覆盖聊天到问答、写文章、编程序等多维度,其带来利好的一面和展现出来的弊端究竟如何达成平衡?如果用 ChatGPT「作恶」,又会带来怎样的后果?

近日,一位名叫 Aaron Mulgrew 的研究人员做了一项实验,他以小白的视角,在完全没有编写任何代码的情况下,看看 ChatGPT 能否实现一个新的零日漏洞。

万万没想到的是,仅用一些提示词,ChatGPT 便创建了一个功能强大的数据挖掘恶意软件,还逃脱了 69 家检测恶意软件的机构测试。与此同时,Aaron Mulgrew 称,要想开发这样一款恶意软件,由 5-10 名人类组成的黑客团队恐需要数周时间,而 ChatGPT 只需要几个小时。


ChatGPT 的安全机制如何?

早期在 ChatGPT、GPT-4 发布之际,OpenAI 曾多次声明自家在安全方面所做的努力,并称可以防止任何人试图要求 ChatGPT 编写恶意软件。

来自网络安全组织 Forcepoint 的 Aaron Mulgrew 便想要抱着测试「规避 ChatGPT 现有不足的安全防护有多么容易」和「在不编写任何代码且仅使用 ChatGPT 的情况下创建高级恶意软件是多么容易」两个目的,看看 ChatGPT 在安全方面的成效究竟如何。

为此,他决定自己不编写任何代码,只使用先进的技术,例如隐写术(steganography,把信息藏到‘载体’之中,使信息不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容)。同时,Aaron Mulgrew 选择 Go 为执行语言,因为 Go 语言易于开发,并且需要调试问题时便于他手动检查代码。


用自然语言让 ChatGPT 生成恶意软件:它拒绝!

首先,Aaron Mulgrew 简洁明了地直接要求 ChatGPT 生成一个可量化的恶意软件。

也正如 OpenAI 在发布这项技术时承诺的那样,ChatGPT 反手便是拒绝,也告诉研究人员,生成恶意软件是不道德的,它无法提供任何代码来帮助实现这项工作。


人类不写一行代码,ChatGPT 会被用来「作恶」吗?

直接套路走不通,Aaron Mulgrew 决定软磨硬泡试试。

在他的设想中,是先让 ChatGPT 生成一些小的辅助代码片段,然后手动将整个可执行文件放在一起,通过将这个可执行文件伪装成屏幕保护应用程序(SCR 扩展)直接在 Windows 上自动启动。然后,该软件将筛选文件(例如图像、Word 文档和 PDF)以窃取数据,并上传到 Google Drive 云端系统中。

那么,Aaron Mulgrew 是否会成功?

在测试中,Aaron Mulgrew 开始通过提示词让 ChatGPT 不断生成相关的代码。

首先,他让 ChatGPT 生成一些有关搜索本地磁盘上大于 5MB 的 PNG 文件的代码。之所以设定这样的筛选条件,Aaron Mulgrew 认为 5MB 的 PNG 足以存储高价值的商业敏感文档(如 PDF 或者 Docx 文档)的一些片段内容。

ChatGPT 成功提供了相关的代码:

紧接着,Aaron Mulgrew 又要求 ChatGPT 提供一些代码,即使用隐写术对找到的 PNG 进行编

码。让人有些诧异的是,ChatGPT 直接给出了一个建议——调用开源 Auyer

(https://github.com/auyer/steganography)现成的隐写库来实现这一功能。

        基于以上,Aaron Mulgrew 已经实现了在没有编写一行代码的情况下,几乎勾勒出一个用于测试的 MVP(最简单可行产品)。

        不过,这样一款程序还有些功能缺失,包括如何在设备上找到一些可以窃取的高价值文件、又要将窃取到的文件数据上传到哪里去。

        随后,Aaron Mulgrew 决定让 ChatGPT 提供一些代码,可以在用户的文档、桌面和 AppData 文件夹中进行遍历,并找到所有最大为 1MB 的 PDF 文件或 DOCX 文件,这样可以让整个文件嵌入到一个单一的图像中。

        同时,Aaron Mulgrew 也选择 Google Drive 作为数据泄露上传的平台。

        原本 Aaron Mulgrew 想手动组合各模块的代码,不过他发现,使用提示词合并代码段是最简单的部分,“我只需要向 ChatGPT 提交简单的代码片段,让它将其组合起来就行”,Aaron Mulgrew 说道。

        在有了 ChatGPT 提供的整体代码之后,Aaron Mulgrew 又发现所有值得窃取的高价值文件可能都大于 1MB,因此需要使用隐写术将其分为多个“块”进行无声地渗透,从而不引发任何警报。

        于是,Aaron Mulgrew 对 ChatGPT 进行四五次提示之后,得到了一些代码,可以实现将 PDF 文件拆分成多个 100 KB 的小块,并从设备上生成的 PNG 列表中生成相应的 PNG。

        最终得到了 MVP,也能通过隐写术解码工具成功地解码窃取到的图像:

69 家安全供应商进行了测试

        接下来,进入了颇为重要的一环。ChatGPT 生成的零日漏洞 MVP 已成型,那么它是否会绕过安全机构的检测,ChatGPT 生成的 EXE 文件是否会被安全供应商识别为恶意软件呢?

        为此,Aaron Mulgrew 将 MVP 上传到了老牌恶意软件分析服务 VirusTotal 等平台上。

        最终结果显示,在纯粹使用 ChatGPT 生成的整个代码库后,69 个供应商中有 5 家供应商将文件标记为恶意文件。

        这也算是不错的成果,为了进一步勘测 ChatGPT 生成的零日漏洞带来的效果。

        Aaron Mulgrew 再次用提示词对代码进行了优化,他要求 ChatGPT 重构调用 Auyer 隐写库的代码。因为他怀疑编译后的 EXE 文件中的某个 GUUID 或变量可能会提醒五家供应商将该文件标记为恶意软件。优化之后,检测出此 exe 为恶意软件的供应商数量下降到了 2 家。

        这两家供应商中,其中一家是领先的沙盒工具供应商,另一家擅长对可执行文件进行静态分析。

        考虑到这些因素,Aaron Mulgrew 进一步要求 ChatGPT 对代码进行两个新的修改,一个是将程序的启动时间推迟两分钟。这一更改可以在一定程度上躲过一些监测工具,因为一些沙盒有一个内置的超时(出于性能原因),如果超时被打破,那么他们将以一个干净的判决来回应,即使分析还没有完成。

        第二个更改是要求 ChatGPT 混淆代码。不过,如同直接要求 ChatGPT 提供恶意软件代码一样,当直接要求 ChatGPT 混淆代码时,它也拒绝了。

        当然,从直接的提要求变成间接的引导,ChatGPT 明显更能接受。因此,当 Aaron Mulgrew 要求 ChatGPT 将所有变量改为随机的英文时,它成功地实现了。

        最终,在经过以上两步更改之后,当把 MVP 上传到 VirusTotal 时,结果显示没有一家安全公司检测出这款零日漏洞。也能成功运行可执行文件并将数据泄漏到 Google Drive 平台上。

        随即,Aaron Mulgrew 又让 ChatGPT 生成将可执行文件嵌入 Windows 的 SCR(屏幕保护程序)格式上的代码,然后使 SCR 文件自动执行。

        当成功实现之后,Aaron Mulgrew 将结果上传到 VirusTotal 上,结果显示:69 家供应商只有 3 家将文件标记为恶意软件。


结语

        值得注意的是,Aaron Mulgrew 创建的恶意软件仅用来测试,并不会对外公开发布。

        尽管如此,通过实验可以发现,仅仅使用 ChatGPT 提示,几乎没有高级编码经验的用户可以轻松绕过 ChatGPT 薄弱的保护,甚至无需输入一行代码即可轻松创建危险的恶意软件。这也让很多人担心,如果使用 ChatGPT 的用户「心怀不轨」,那么后果将不堪设想。

        而如何让 ChatGPT 不沦为作恶的工具,业界还亟需法律法规、道德、使用等规范进行约束。

相关文章:

“我用 ChatGPT 造了一个零日漏洞,成功逃脱了 69 家安全机构的检测!”

一周以前,图灵奖得主 Yoshua Bengio、伯克利计算机科学教授 Stuart Russell、特斯拉 CEO 埃隆马斯克、苹果联合创始人 Steve Wozniak 等在内的数千名 AI 学者、企业家联名发起一则公开信,建议全球 AI 实验室立即停止训练比 GPT-4 更强大的模型&#xff0…...

Compose (14/N) - 附带效应 EffectPI

一、概念 纯函数函数与外界交换数据只能通过形参和返回值进行,不会对外界环境产生影响。副作用函数内部与外界进行了交互,产生了其它结果(如修改外部变量)。组合函数是用来声明UI的,所以跟UI描述不相关的操作都是副作…...

云日记个人中心项目思路

验证昵称的唯一性 前台: 昵称文本框的失焦事件 blur 1. 获取昵称文本框的值 2. 判断值是否为空 如果为空,提示用户,禁用按钮,并return 3. 判断昵称是否做了修改…...

docker容器的相关环境及创建镜像1

一、容器管理工具介绍 LXC 2008 是第一套完整的容器管理解决方案 不需要任何补丁直接运行在linux内核之上管理容器。创建容器慢,不方便移植 Docker 是在LXC基础上发展起来的。拥有一套容器管理生态系统 生态系统包含︰容器镜像、注册表、RESTFUL API及命令行操作界…...

如何使用ChatGPT在1天内完成毕业论文

如何使用ChatGPT在1天内完成毕业论文 几天前,亲眼见证了到一位同学花了1天时间用ChatGPT完成了他的毕业论文,世道要变,要学会使用黑科技才能混的下去。废话到此结束,下面说明这么用AI生成自己的论文。 使用工具: 1. P…...

Debezium同步之实时数据采集必备工具

目录 简介 基础架构图片 Kafka Connect Debezium 特性 抽取原理 简介 RedHat(红帽公司) 开源的 Debezium 是一个将多种数据源实时变更数据捕获,形成数据流输出的开源工具。 它是一种 CDC(Change Data Capture)工具,工作原理类似大家所熟知的 Canal, DataBus, Maxwell…...

【区块链】走进web3的世界-gas费用

气体单位用于衡量在以太坊上执行交易所需的计算量。由于每笔交易都需要一些计算资源来执行,因此需要一笔费用,通常称为Gas fee或Transaction fee 。 汽油费以以太坊的本地货币——ether或ETH支付。汽油费的计算方式在伦敦升级前后略有不同。 注意&#…...

世界上最大的手工艺品连锁零售商Michaels验厂总结

【世界上最大的手工艺品连锁零售商Michaels验厂总结】 Michaels是世界上最大的手工艺品连锁企业,公司的总部位于美国德克萨斯州的Irving,公司现在有员工12500人。在美国49个州和加拿大经营着1200多家Michaels工艺品的连锁店。每家商店平均销售面积约为18…...

springboot如何优雅的打印项目日志

文章目录如何优雅的打印项目日志原理实现日志打印Filter注入容器如何优雅的打印项目日志 框架 springboot 原理 使用filter拦截请求,打印出请求、响应,及耗时 知识点 1、OncePerRequestFilter Filter base class that aims to guarantee a single …...

【JAVA程序设计】(C00127)基于SSM+vue开发的音乐播放管理系统-有文档

基于SSMvue开发的音乐管理系统-有文档项目简介项目获取开发环境项目技术运行截图项目简介 基于ssm框架vue以及html前台的开发的音乐管理系统共分为二个角色:管理员、用户 管理员角色包含以下功能: 登录、个人中心(修改密码、个人信息修改&am…...

C#|调用C/C++动态库

参考:C#总结(四)调用C动态库(https://www.shuzhiduo.com/A/A2dmV49qze/) 文章目录C#加载C动态库C#加载C#动态库涉及到的概念知识:托管DLL和非托管DLL的区别(https://www.tinymind.net.cn/articl…...

让chatGPT当我的老师如何? 通过和chatGPT交互式学习,了解在ES中,一条JSON数据是如何写到磁盘上的

最近一直有一个问题,如鲠在喉。争取早一天解决,早一天踏踏实实的睡觉。 问题是:在ES中,一条JSON数据是如何写入到磁盘上的? 如何解决这个问题?我想到了chatGPT,还有lucene的学习资料。这篇文章&…...

chapter-7数据库事务

以下课程来源于MOOC学习—原课程请见:数据库原理与应用 考研复习 DBMS保证系统中一切事务的原子性、一致性、隔离性和持续性 DBMS必须对事务故障、系统故障和介质故障进行恢复 恢复中最经常使用的技术:数据库转储和登记日志文件 恢复的基本原理&#…...

阿里本地生活再出发:口碑入高德,备战美团、抖音

配图来自Canva可画 近日,有传言称高德地图将和阿里本地生活旗下的到店业务口碑正式合并,未来阿里旗下所有的本地生活到店业务都将统一整合在高德地图的入口中。3月22日,高德地图正式确认了此事,并表示高德地图作为“出门好生活开…...

SSM学习记录3:响应(注释方式 + SprigMVC项目 + 2022发布版本IDEA)

响应 ResponseBody注解的作用是将当前控制器中方法的返回值作为响应体 1.返回页面 无需在方法上进行ResponseBody注解,只需RequestMapping匹配地址,并且返回值为带后缀的页面名字符串 前面学习中除了json数据,所有带ResponseBody注解的方法…...

Linux·gcc 编译优化简介

1、gcc 编译优化简介 gcc 提供了为了满足用户不同程度的的优化需要,提供了近百种优化选项,用来对 { 编译时间,目标文件长度,执行效率 } 这个三维模型进行不同的取舍和平衡。优化的方法不一而足,总体上将有以下几类&…...

【电子学会】2022年12月图形化一级 -- 潜水

潜水 暑假小雨和爸爸去玩了潜水,他见到了各种各样的海洋生物。 1. 准备工作 (1)添加背景“Underwater 2”; (2)删除小猫角色,添加角色“Diver2”、“Fish”、“Jellyfish”、“Shark”; (3)为背景添加声音“Xylo2”。 2. 功能实现 (1)点击绿旗,播放背景音乐…...

MySQL日期时间函数汇总、时间格式转换方法

MySQL日期时间函数汇总、时间格式转换方法时间函数日期时间格式转换date_format函数EXTRACT()DATE_ADD()DATE_SUB()DATEDIFF函数时间函数 函数描述NOW()返回当前的日期和时间CURDATE()返回当前的日期CURTIME()返回当前的时间DATE()返回日期或日期/时间表达式的日期部分HOUR()获…...

【CSS】使用绝对定位 / 浮动解决外边距塌陷问题 ( 为父容器 / 子元素设置内边距 / 边框 | 为子元素设置浮动 | 为子元素设置绝对定位 )

文章目录一、外边距塌陷描述1、没有塌陷的情况2、外边距塌陷情况二、传统方法解决外边距塌陷 - 为父容器 / 子元素设置内边距 / 边框三、使用浮动解决外边距塌陷 - 为子元素设置浮动四、使用绝对定位解决外边距塌陷 - 为子元素设置绝对定位一、外边距塌陷描述 在 标准流的父盒子…...

前端手写综合考题

1 实现一个 // 使用 promise来实现 sleepconst sleep (time) > {return new Promise(resolve > setTimeout(resolve, time))}sleep(1000).then(() > {// 这里写你的骚操作}) sleep 函数,比如 sleep(1000) 意味着等待1000毫秒 2 给定两个数组&#xff0c…...

数据结构-排序

本节目标: 1.排序的概念及其运用 2.常见排序算法的实现 3.排序算法复杂度及稳定性分析 1.排序的概念及其应用 1.1排序的概念 排序就是按照某个我们设定的关键字,或者关键词,递增或者递减,完成这样的操作就是排序。 1.2排…...

ROS话题通信自定义+发布订阅代码--03

话题通信自定义msg 在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些数据一般只包含一个 data 字段,结构的单一意味…...

【MySQL】实验七 视图

文章目录 1. 建立city值为上海、北京的顾客视图2. 建立城市为上海的客户2016年的订单信息视图3. SQL视图:建立视图AVG_CJ4. SQL视图:建立视图IS_STUDENT5. SQL视图:建立视图CJ_STUDENT6. SQL视图:根据视图CJ_STUDENT创建视图CJ_TJ1. 建立city值为上海、北京的顾客视图 建立…...

Linux常见操作命令【三】

一、系统资源 1.1 ps(process staus) ps -ef e显示所有进程、f全格式 ps -aux 显示所有包含其他使用者的进程 ps -ef | grep CCC 查找含有CCC进程的格式 ps -u username 显示指定进程用户信息1.2 kill kill 12345 杀死进程12345 kill -KILL…...

C-关键字(下)

文章目录循环控制switch-case-break-defaultdo-while-forgetchar()break-continuegotovoidvoid*returnconstconst修饰变量const修饰数组const修饰指针指针补充const 修饰返回值volatilestruct柔型数组union联合体联合体空间开辟问题利用联合体的性质,判断机器是大端还是小端enu…...

关于电商商品数据API接口列表,你想知道的(详情页、Sku信息、商品描述、评论问答列表)

目录 一、商品数据API接口列表 二、商品详情数据API调用代码item_get 三、获取sku详细信息item_sku 四、获得淘宝商品评论item_review 五、数据说明文档 进入 一、商品数据API接口列表 二、商品详情数据API调用代码item_get <?php// 请求示例 url 默认请求参数已经URL…...

232:vue+openlayers选择左右两部分的地图,不重复,横向卷帘

第232个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers项目中自定义js实现横向卷帘。这个示例中从左右两个选择框中来选择不同的地图,做了不重复的处理,即同一个数组,两部分根据选择后的状态做disabled处理,避免重复选择。 直接复制下面的 vue+openlayers…...

溯源取证-内存取证 高难度篇

今天的场景依然是windows场景&#xff0c;只不过此次场景分为两个镜像&#xff0c;本次学习主要学习如何晒别钓鱼邮件、如何提取钓鱼邮件、如何修复损坏的恶意文件、如何提取DLL动态链接库文件 本次需要使用的工具&#xff1a; volatility_2.6_lin64_standalone readpst clams…...

JAVA语言中的代理模式

代理可以进一步划分为静态代理和动态代理&#xff0c;代理模式在实际的生活中场景很多&#xff0c;例如中介、律师、代购等行业&#xff0c;都是简单的代理逻辑&#xff0c;在这个模式下存在两个关键角色&#xff1a; 目标对象角色&#xff1a;即代理对象所代表的对象。 代理…...

最后一步:渲染和绘制

浏览器的工作步骤如下&#xff1a; URL>字符流>词&#xff08;token&#xff09;流>DOM树&#xff08;不含样式信息的 DOM&#xff09;>DOM树CSS规则&#xff08;含样式信息的 DOM&#xff09;>根据样式信息&#xff0c;计算了每个元素的位置和大小>根据这些…...