电子说
最近看到一个非常巧妙的 ChatGPT 攻击手段,跟大家分享一下,也算是做个提醒。
不论你是否懂技术,我都建议你了解一下这种攻击手段,有备无患。
众所周知,现在的大语言模型,在提供答案时,或多或少都会出现 Hallucination(幻觉)。所谓的幻觉,就是 AI 在回答时,会一本正经的胡编乱造一些不存在的内容。
当你通过 AI 学习陌生领域知识时,往往会因为 AI 以往表现出来的专业性,对答案内容深信不疑,包括 AI 在答案中提供的各种链接。
这里面其实隐藏着一个巨大的风险。
比如,一位开发者让 ChatGPT 调用某个 Python 爬虫安装包,并给出代码示例。
此时,因为大语言模型训练数据过久,再加上 AI 产生幻觉,其答案便会包含一些完全不存在的安装包链接。
如果黑客想利用这些链接做坏事,那么他只需要识别到具体有哪些链接不存在,然后去抢注域名,并悄悄换成自己的木马工具即可。
这样一来,当 ChatGPT 下次在答案中返回该安装包地址时,便会带上黑客所提供的木马工具地址。如果用户在本地运行这个代码,就有可能导致个人隐私数据泄露!
这种利用恶意安装包的新型攻击手法,被称之为「AI 包幻觉」。
它通过捕获 AI 幻觉中出现的消息来源、链接、博客和统计数据,再利用 ChatGPT 这个现成的传播渠道,疯狂制造与播撒各种病毒数据。
那么,如何找到 ChatGPT 推荐的那些不存在的安装包呢?
自从 ChatGPT 问世之后,很多人不再使用 Stack Overflow 来解决编程问题,当程序报错时,第一反应是问 ChatGPT 如何解决该报错信息。
利用这一特点,我们可以先爬取 Stack Overflow 网站上的高频问题,再调用 ChatGPT API,把这些问题转给它,套取答案。
一步步缩小范围之后,我们发现在 Stack Overflow 上,「How to xxx」的提问方式,最为常见。
我们通过这种方式与 ChatGPT 对话,并将对话内容存储到本地。再用脚本判断并提取答案中不存在的安装包链接。
最终实验结果是,向 ChatGPT 提出 Node.js 相关的技术问题,共 200 多个,得到 50 多个未发布的 NPM 安装包。Python 227 个问题,得到 100 多个未发布安装包。
这里我们以 Node.js 安装包 arangodb 为例,复现整个攻击过程。
第一步,先向 ChatGPT 提问:
如何在 Node.js 中集成 arangodb 安装包,请给出 npm install 的安装方式。
接着再问第二个问题:请提供更多的 NPM 包安装方案
然后,NPM 便会给出不存在的安装包:
这个时候,如果我们编写了一个木马安装包,并将其发布到 NPM 上。
用户调用安装之后安装包时,在预安装阶段,让电脑调用 node index.js 命令。
index.js 文件中,可以加入我们各种执行脚本,比如获取用户设备主机名、模块文件的目录地址等等,并将这些信息搜集后,发送到我们服务器上。
通过这种方式,来实现我们的整个信息收集流程。在此过程中,如果用户不使用抓包程序,阅读代码,其实很难发现里面的猫腻。
坦白说,只要 LLM 幻觉一直存在,我们便能利用这其中的漏洞,探索出许多你难以想象的攻击手段。
最好的方式,就是不要完全信任 AI 返回的信息,当它给你推荐一个安装包时,先上网搜一下这个安装的发布日期、GitHub Star 数、安装下载数等等。
小心驶得万年船,千万不要因为一时大意,让黑客有可乘之机。
不过,从网络安全攻防角度上看,这种攻击手法之巧妙,也着实令人拍案叫绝。
全部0条评论
快来发表一下你的评论吧 !