“我用 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 更强大的模型࿰…...
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 给定两个数组,…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
