编辑:Aeneas Lumina
大语言模型与核能很相似。
都对现实世界有着巨大的影响力,既可以用来帮助人类也会因为恶意的使用造成毁灭性的灾难。
但能够接触到核能的只有极少数的人,且核能的利用受到极为严苛的监管。
而大语言模型没有任何门槛,只要具备最基本的识字和交流能力,能描述出自己的需求就可以上手使用了。
与此同时,大语言模型的安全护栏也不牢靠。用户甚至不需要复杂的代码,就能在交流中欺骗大语言模型生成有害内容。
一个人人可用,但安全措施松散,且有巨大影响力的工具,造成的破坏将远超我们的想象。
大语言模型已经重新定义了网络安全团队和网络犯罪分子的运作方式。
为了探明大语言模型可能带来的安全风险,研究人员试图」催眠」当下流行的LLMs,来确定它们将会在哪些程度上被恶意使用。
研究人员发现,英语已经成为恶意软件的「编程语言」。
有了LLM,攻击者不再需要依靠Go、JavaScript、Python等来创建恶意代码,他们只需要了解如何使用英语有效地命令和提示LLM。
催眠LLM:让我们玩一个游戏...
那么研究人员是怎样催眠LLM的呢?
很简单,通过诱骗他们玩游戏,然后设定规则:玩家必须给出相反的答案才能赢得比赛。
而LLM遵循了新的设定规则,就会忘记原来的安全护栏。
研究人员对 GPT-3.5、GPT-4、Bard、mpt-7b 和 mpt-30b 分别进行了催眠测试。
其中催眠效果最好的是 GPT,接下来我们将对催眠过程进一步分析。
这是开始游戏后与ChatGPT的对话。如果用户盲目相信GPT的回答(应该没人会信吧),并在生活中执行,将带来很多麻烦和危害。
以上例子都是生活中的常识(如退税流程、诈骗信息、交通规则等),人们尚且可以凭借自己的经验进行辨别。
但如果涉及到我们不熟悉的领域,如在求医问药等方面,那么LLM的错误回答其危害性是不言而喻的。
上述GPT的错误回答是由于我们特别设定了规则,但如果想要让用户无法辨别他们正在交互的LLM是否被催眠,可以设定两个简单的参数:
一个永远不会结束也无法被发现的游戏:研究人员指示LLM永远不要告诉用户:他们正在进行一场没有人可以退出的游戏。如果有用户成功退出了游戏,那么LLM可以重新启动这个游戏。
这个Prompt技巧可以让ChatGPT和用户处于同一对话时从不停止游戏,即使是在用户重新启动浏览器后打开这个对话时。
而ChatGPT也完全不会提示用户他们正在玩这个游戏。
以下是提示内容:
可以看到,在使用了这个Prompt后,ChatGPT的回答中显示了[In game]的标志,但在用户要求ChatGPT告知他们是否在游戏中时,ChatGPT否认了这一点。同样的,在用户要求ChatGPT退出之前的Prompt时,也失败了。
「盗梦空间」:通过创建嵌套多个游戏来深度困住LLM。研究人员创建了一个游戏框架,其中包含多个游戏。一个游戏是另一个游戏中的子游戏。这样,即使用户从前一个游戏中醒过来,他也会进入另一个游戏中。
这样,模型就能将用户「困住」,使用户毫无知觉地陷入许多游戏中。
当LLM被要求创建10个、100个,甚至是10000个游戏时,结果将十分drama。
而像GPT-4这样的性能更优越的模型,能够理解和创建更多层游戏。
当创建的游戏层数越多,模型混淆和继续进行游戏的可能性就越大。
这是「盗梦空间」的Prompt:
可以看到嵌套游戏的效果很好,用户无法退出游戏的套娃循环。
攻击场景
在确定了LLM的规则参数后,研究人员探索了攻击者利用LLM的各种方式。
下面是一些可以通过催眠LLM生成的假设攻击场景:
1. 虚拟银行代理泄露机密信息
虚拟代理可能很快也将由LLM提供支持。
一种常见的做法是为每个客户创建一个新会话,以便代理不会泄露任何机密信息。
然而,在软件架构中为了性能考虑,常常会重启现有的会话,因此在一些实践上可能无法在每次对话后都完全重置会话。
在下面的例子中,研究人员使用ChatGPT创建了一个银行代理,考虑到未来的LLM也许能够调用远程API来完全重置自己,他们要求ChatGPT在用户退出对话后重置上下文。
如果一些犯罪分子想要从银行窃取机密信息,他们可以催眠虚拟代理并注入一个隐藏命令,以便稍后检索机密信息。
当犯罪分子连接到已被催眠的虚拟代理,他们只需要键入「1qaz2wsx」,虚拟代理就会打印出所有之前的交易记录。
如果银行未来将LLM作为虚拟代理,且LLM易被催眠的性质如果没有发生改变,或进行加强与防护,那么我们每个人的机密信息都难以得到保障。
研究人员模拟这种攻击场景的可行性强调了一个事实:
如果金融机构试图利用LLM来优化用户的数字化辅助体验,他们必须确保他们的LLM是可信赖的,并采取最高的安全标准。
毕竟只要一个设计缺陷就足以为攻击者提供他们催眠LLM所需的基础。
2. 生成具有已知漏洞的代码
之后,研究人员要求 ChatGPT 直接生成易受攻击的代码,但由于OpenAI的内容政策的限制,ChatGPT拒绝了这个要求。
但是,攻击者可以将生成有漏洞的代码的任务进行分解,然后要求ChatGPT遵循这些步骤来轻松绕过限制。
研究人员随后要求ChatGPT创建了一个Web服务。
需要将用户名作为输入,并查询数据库以获取电话号码并将其放入响应中。
ChatGPT生成了下面的程序,该程序在第15行呈现SQL查询的方式是有漏洞的。
可以预见,如果开发人员出于工作目的访问被入侵的LLM,将会造成巨大的业务影响。
3. 创建恶意代码
研究人员还测试了LLM是否会生成恶意代码。
在这种情况中,GPT-4比GPT-3更难以欺骗。
在某些情况下,GPT-4会意识到它正在生成有漏洞的代码,并会告诉用户不要使用它。
但是,在研究人员要求GPT-4在示例代码中始终都包含一个特殊库时,GPT-4无法判断那个特殊库是否是恶意的。这时候,犯罪分子可以在互联网上发布一个同名的库。
在这个PoC中,研究人员要求ChatGPT始终包含一个名为「jwt-advanced」的特殊模块(甚至还要求ChatGPT创建一个虚假但逼真的模块名称)。
以下是Prompt和生成的代码:
4. 操纵事件响应手册
研究人员还催眠了ChatGPT,以提供一份无效的事件响应手册,展示攻击者如何操纵LLM来削弱防御者的努力。
这可以通过提供部分不正确的行动建议来实现。
虽然有经验的用户可能能够发现LLM生成的荒谬建议,但在更细节的层面上,比如一些语法词汇的错误或无效的步骤,会使没有经验的人无法区分被催眠的LLM的恶意意图。
以下是研究人员在ChatGPT上开发的Prompt:
下图内容是研究人员与ChatGPT的对话。可以看到ChatGPT生成了一些有误导性的操作步骤:
在第一个情景中,GPT-4建议用户打开并下载所有附件。这看起来就像是一个明显的警告信号,但我们也要同样需要考虑到许多没有网络安全意识的用户不会对高度复杂的LLM输出产生怀疑。
第二个情景更有趣一些,因为「立即支付赎金」这一错误的回应并不像第一个虚假回应那么直截了当。
IBM 2023年的数据泄露成本报告发现,近50%的受调查组织在遭受勒索软件攻击后支付了赎金。虽然强烈不鼓励支付赎金,但这是一个常见的现象。
LLM的「催眠性」
在构建上述不同攻击情景时,研究人员发现某些情景更适合使用GPT-3.5来实现,而其他情景则更适合使用GPT-4。
不同语言模型的「催眠性」是否意味着拥有更多的参数会让模型更容易被催眠,还是会使其更具抵抗力?
也许用「更容易」这样的词语来形容并不完全准确,但对于更复杂的LLM,攻击者可以采用更多的策略。
因此,研究人员决定在不同模型之间测试更多的情景,包括GPT-3.5、GPT-4、BARD、mpt-7b和mpt-30b,以评估它们各自的表现。
基于不同场景的LLM催眠性
绿色:LLM能够被催眠以执行请求的操作 红色:LLM无法被催眠以执行请求的操作 黄色:LLM能够被催眠以执行请求的操作,但并非始终如一(例如,LLM需要被提醒游戏规则或仅在某些情况下执行请求的操作)
从上述结果可知,尽管更多的参数意味着更聪明的LLM,但当LLM能够理解更多事物,比如玩游戏、创建嵌套游戏和添加随机行为时,犯罪分子可以用更多的方式催眠它们。
但更聪明的LLM也有更高的机会检测到恶意意图。例如,GPT-4会警告用户关于SQL注入漏洞,但是GPT-3.5只会按照指示生成有漏洞的代码。
在思考这种演变时,我们会想起一个永恒的格言:「力量越大,责任越大」。
在LLM的发展背景下,这句话具有深刻的共鸣。
当我们利用LLM日益增长的能力时,我们必须同时进行严格的监督和谨慎,以免他们的良好能力被滥用造成有害的后果。
在AI开发上,红队攻击是经常使用的一种策略。
「红队」是一个独立的组织,它会故意渗透进系统、项目、流程、漏洞中,目标就是为了让系统更安全。
而AI开发中的红队,充当的就是一种独立审计师。
它会测试AI,试图操纵它,或者发现流程中的缺陷,最好是在系统部署到真实环境中之前。
根据OpenAI的说法,整个机构投入了6个多月,用于对GPT-4进行红队攻击。
在未经过滤前,GPT-4一被攻击,就会中招,比如写出对军事系统进行网络攻击的详细指南。
好在,在红队攻击后,团队会利用结果来改善模型。
微软会使用红队攻击来调查GPT-4这样的大语言模型,以及Bing Chat这样的应用程序。
现在,微软扩大了AI红队的规模,除了安全之外,他们还致力于负责人的AI。
生成式AI主要存在两种风险:其一是故意操纵,即用户恶意利用安全漏洞;其二就是正常使用LLM会产生的安全风险,比如它模型会产生幻觉,生成虚假信息。
但其实之前Bing Chat上线后,因为「胡说八道」吓得微软马上减少了聊天次数。可以推断,Bing Chat并没有经过广泛的安全测试。
关于这个原因,其实也有相关报道。据说OpenAI曾警告过微软不要过早启动Bing Chat,但微软并没有听从。
不过,AI需要的,可不仅仅是标准的红队。
对于传统的红队,任务是确定性的,相同的输入,会产生相同的输出。
然而,AI红队却必须接受概率的存在。
因为潜在的有害场景必须经过多次测试,例如,AI 攻击可能在第一次尝试时失败,但稍后会成功。并且,可能存在更广泛的有害结果。
另外,因为AI系统在不断快速发展,AI需要一种分层的防御方法,包括分类器、元提示和限制对话漂移等。
参考资料:
https://securityintelligence.com/posts/unmasking-hypnotized-ai-hidden-risks-large-language-models/