Forcepoint 的一名员工在博客中讲述了他如何使用 ChatGPT 编写一些代码,从受感染的机器中窃取数据。起初,这听起来很糟糕,但实际上,中级或敏锐的初学者程序员无论如何都不能自己拼凑起来。
在某种程度上,他的实验确实强调了由 OpenAI 构建并由 Microsoft 推动的代码建议不可靠 聊天机器人如何用于在恶意软件开发中偷工减料或使流程自动化。
它还展示了一个人(可能是一个没有任何编码经验的人)如何让机器人跳过它的护栏,这应该防止它输出潜在危险的代码,并让 AI 服务将一个不需要的程序放在一起。
Forcepoint 的 Aaron Mulgrew 承认自己是新手,他认为自己想创建一个程序,无需自己编写任何代码,就可以从受感染的机器中泄露数据。
该程序将在某人通过漏洞、猜测或获取受害者的登录凭据或社会工程等艰苦工作闯入网络后运行。
他决定,该程序将在计算机上寻找一个大的 PNG 文件,使用隐写术在该 PNG 文件中隐藏入侵者希望窃取的系统上的敏感文件——例如客户电子表格或产品路线图——然后上传将数据填充图像传输到攻击者控制的 Google 云端硬盘帐户。选择 Google Drive 是因为大多数组织都允许连接到云服务。
因为聊天机器人的护栏阻止它或多或少地回答任何包含“恶意软件”的提示,所以开发这个渗漏工具需要一些创造性的指令给机器人。我们被告知,Mulgrew 只用了两次尝试就开始回避这些限制。
Mulgrew 说生产这个工具“只花了几个小时”。可以在此处找到他周二关于他的实验的文章,尽管(在我们看来)忽略了关于零日的内容以及机器人如何编写普通程序员需要几天才能完成的代码。没有零日,这些东西可以在一个小时左右的时间内被一个有能力的人拼凑起来。如果您不熟悉以编程方式处理文件,请花一个下午的时间。
由于他不能简单地要求 ChatGPT 编写恶意软件,Mulgrew 要求聊天机器人编写他可以手动拼接在一起的小 Go 代码片段。他还让 AI 调用Auyer 的 Steganographic Library来完成将高价值文件隐藏在该程序位于磁盘上的 5MB 以上的大 PNG 中的工作。
为了找到要窃取的高价值文档,Mulgrew 要求 AI 编写代码来遍历用户 Windows 机器上的文档、桌面和 AppData 文件夹,并找到最大大小为 1MB 的任何 PDF 或 DOCX 文件——这确保整个文档可以嵌入到单个图像中,并希望在不引起任何警报的情况下走私。
“使用提示组合片段是最简单的部分,因为我只需要发布我设法让 ChatGPT 生成并将它们组合在一起的代码片段,”他写道。
然而,由于大多数值得窃取的高价值文档可能都大于 1MB,Mulgrew 要求 ChatGPT 编写代码将 PDF 拆分为 100KB 的片段,并将每个片段插入其自己的 PNG 中,这些片段将全部泄露到攻击者的云存储中. 他指出,这需要“四五个提示”。
接下来,Mulgrew 想确保他的最终可执行文件不会被 VirusTotal 检测到,VirusTotal 会通过各种防病毒检查程序运行提交的文件,以查看是否有任何文件将二进制文件识别为恶意文件。通过一些调整——比如要求 ChatGPT 将程序的启动时间延迟两分钟,这会愚弄一些 AV 工具——以及其他一些处理,比如混淆代码,他最终能够在没有任何警报的情况下通过 VirusTotal 获取程序关闭,或者我们被告知。
这是可以理解的,因为 VirusTotal 主要捕获已知为恶意的不良程序。全新的恶意软件通常不会立即点亮仪表板。其中一些检测引擎确实使用沙盒来捕获新样本中的恶意活动,这会触发警报,但那些有足够技能的人可以避开这些——不需要人工智能聊天机器人。
再一次,ChatGPT 将诸如“混淆代码以避免检测”之类的命令识别为不道德的并阻止它们,因此潜在的攻击者必须在他们的输入提示中发挥创意。