思想领袖

一个无法防止的提示注入攻击:美好愿望还是真实担忧?

mm
将 Unite.AI 添加到您在 Google 上的首选来源
A digital 3D render of a dark server room with a computer monitor displaying a

在这篇文章中,我想让读者参与一个思维实验。我将论证,在不太遥远的未来,一种特定的提示注入攻击将是有效不可防止的。我的论证将更具推测性,而不是具体的,所以我不是试图说服你什么。相反,我邀请你探索这些想法。在开始之前,作为任何有说服力的作家一样,我想讨论一下棋类和棋类引擎。

超人棋类引擎和关于人类经验的断言

棋类中一个更好的元素是,其他学科中缺乏的是,能够客观地衡量玩家的质量或实力。用于此目的的 ELO 评分系统 有其缺陷,但它提供了一个非常好的粗略估计,这个估计随着时间的推移而保持。2700 或更高的评分通常被认为是 世界级 的(世界前 30 名)。世界上最好的玩家评分刚刚低于 2850。没有人曾达到过 2900 的评分。

在 90 年代中期,我们看到第一个达到 世界级 水平的人工智能引擎(深蓝)。这一里程碑的实际意义是,各级别的玩家都广泛采用了引擎进行练习和分析。事实上,引擎的使用对于世界顶级玩家来说是必不可少的。然而,对于这些世界级引擎的几代,查看它们推荐的动作(即输出)是必不可少的。甚至还创建了一个特殊的格式,称为“高级棋类”,人类与引擎一起竞争,人类 + 机器的组合被认为优于机器本身。

大约经过 20 年,并且在深度学习和强化学习方面取得了重要进展,棋类引擎达到了 超人 水平(大约 3200 ELO)。但是,一旦这个天空被突破,事情发生了变化。实际上,有两件事发生了。第一件事是完全可以预料的;引擎成为 99% 位置的“真理”来源。在实践中,这意味着我们进入了“盲目信任”引擎的时代。现在,人类几乎不可能提出一个比引擎更好的动作。虽然“高级棋类”很有趣,但现在已经变得毫无意义;人类几乎不会对游戏做出任何贡献。但是,第二件事令大多数棋类玩家感到惊讶。这些超人神经(即深度神经网络)引擎有时会以“浪漫”风格玩。换句话说,它们会做出只有在很多步之后才能被欣赏的动作,远远超出了人类或世界级引擎的计算能力。这很像引擎已经对某些位置发展出了“感觉”或“直觉”。然而,这种直觉是人类无法理解或模仿的。

换句话说,超人神经引擎可以做出超出人类认知范围的动作。这是这里的关键点;问题不是 可解释性 的问题。相反,人类无法理解为什么引擎推荐一个动作,而不需要在很多步之后玩出位置并观察结果,即展开整个可能的游戏序列。因此,我们有一个不可逾越的能力差距。客观来说, 最优的做法是接受引擎输出而不进行审查 。我可以总结我的断言如下:

棋类是超人工智能在某些领域有效地自主运行的存在证明。启用 AI 系统在没有人类审查的情况下做出决定将是部署此类系统的最优方式。

由于我的断言可能会让人觉得很明显或不值得注意,所以我想强调几个细微差别。假设我们有一个展示出复杂、关键任务的超人水平的 AI 系统,并且具有具体、不可逆转的后果。我的断言有两个含义:

  1. 该系统将被部署在没有人类审查的情况下做出决定,尽管存在固有的风险
  2. 监控此类系统获得的见解不会阻止有害的决定;损害已经造成

系统输出审查和监控正是防止提示注入的最后两层防御。因此,我们的假设提示注入攻击可以通过针对适当的系统来绕过这些层。

在我看来,这是一个非常现实的场景。特定领域的超人 AI 系统并不是 AGI,大多数专家认为这种系统就在眼前。我们也没有假设决定是时间敏感的,只是任务足够复杂,使得人类审查变得不可行。

当然,我们到目前为止只绕过了两层防御,我们还幸运地拥有了其他防御层。为了解决其余的问题,让我们深入探讨使提示注入难以防御的核心要素。

什么是提示注入?

提示注入 是通过精心设计的输入来操纵大型语言模型(LLM),使 LLM 在不知不觉中执行攻击者的意图。它可以被视为 AI 的社会工程 。关键是,它不是 传统的软件漏洞 。提示注入攻击利用了 LLM 的固有漏洞 。由于 LLM 将系统提示和用户提示都作为文本序列来处理,因此它们无法区分合法和有害的指令。这种漏洞因此是由设计而不是偶然造成的。

提示注入技术

提示注入通常被认为是 LLM 应用程序的第 1 个风险 。有几个原因可以解释为什么会这样。最明显的因素是已经开发出来的 注入技术的多样性 。大致可以将它们分为四类,以下是最著名的技术:

  • 基于语法的:使用特殊字符、表情符号或替代语言
  • 间接的:使用外部来源(从站点获取)、编码(Base64)或多模式引用(图像中的文本)
  • “让我们假装”:引入一种操纵性的风格,例如角色扮演、假设、情感诉求、道德框架和格式转换
  • 蛮横的:明显地尝试“强迫”模型指令,使用蛮力、强化或负面提示

仅仅是多样性就对应用程序开发人员构成了挑战,但这些攻击也在迅速演变。下面图表的左侧描述了 2023 年初的最新状态,而右侧反映了今天的攻击性质。

攻击向量的演变

LLM 应用程序开发人员还必须考虑标准的 可用性与安全性权衡 。他们当然可以引入每个适当的防御层和 设计模式 ,但代价是什么?防御层会增加显著的延迟,并引入假阳性(FP)- 错误地将安全提示标记为恶意的 – 这两个因素都会对用户体验产生负面影响。因此,在实践中,某种程度的妥协是不可避免的,并且没有“银弹”解决方案。

然而,在这篇文章中,我并不是真正感兴趣于这场永无止境的猫鼠游戏。相反,我正在探索是否可以在 原则上 使攻击变得不可防止。从开发人员/防御者的角度来看,只有一个关键的洞察:

在提示中分离指令和数据对于解决提示注入风险至关重要

我们可以假设权衡不是一个因素,并且可以使用任何防御层或技术。在这种(强)假设下,是否有可能构造一个场景,其中提示中的指令-数据分离在 实际上 是不可能的?

DNA 类比

一旦问题被以指令-数据分离的形式提出来,我最初的想法就是使用生物学作为类比。

考虑一个细胞和一段 DNA(称为基因)。基因提供了通过转录和翻译构建蛋白质的指令。它还编码了影响蛋白质结构和功能的信息。因此,基因同时决定了要构建什么以及如何构建,或者我这么认为。然而,这实际上是错误的,因为基因 不决定如何解释自己 。在基因水平上,没有 指令-执行 的等价物。”如何” 完全外化到细胞机制中。

因此,即使我无法摆脱这样的感觉,即未来的 LLM 代代——或者更准确地说,它们将演化成的系统——将在更大程度上类似于生物机器,但所提出的类比只是不起作用。我们不能用一个细胞代替 LLM,用一个基因代替一个提示,然后对基因进行注入,这最终会导致构建一个“有缺陷”的蛋白质。似乎更有生产力的是坚持使用自然语言和需要 语义解释 的任务。

剥去防御层

多层防御策略被认为更有效地阻止提示注入攻击,这一点不足为奇。下面的图像显示了最常见的防御层及其关联的技术。

提示注入防御层

我们已经讨论了最后两层(输出、监控),所以让我们集中讨论前四层。

考虑输入层,假设对提示进行清理或验证将在检测 间接 攻击方面非常成功是合理的。然而,如果注入是直接的,并且正如上面所建议的,依赖于语义解释,那么清理可能是无关紧要的(没有什么可清理的),而验证默认是不可行的,因为计算必须完成以识别问题。

在检测层中,基本上没有限制可以构建的防护措施。事实上,你甚至可以使用一个专用的 LLM 进行 注入检测 。但是,同样,分类器或异常检测器将很难将提示标记为可疑,当毒素巧妙地隐藏在语义中时。

模型层 可以在任务范围狭窄、微调可行时非常有效。可以对 系统层 作出类似的论点,当工具的使用是可预测的时。然而,至少直观上,两者都不会对解释器的偏离提出异议。

纸牌屋

当我开始写这篇文章时,我的初衷是以大致的方式描述一个“不可防止”的提示注入攻击。也许我最终采取了一种“非构造性”的方法,通过指出现有防御层的漏洞。 防御技术 持续快速演变,攻击面也在不断扩大。这个游戏看起来还没有结束的迹象。然而,我也相信我们不会再玩这个游戏太久了。我猜测未来成功的提示注入仍将以自然语言进行,但将是人类无法理解的语言;我还猜测它将由系统自动发现,系统要么是专门为此目的而构建的,要么是在处理相关任务(如在某种表示空间中搜索语义歧义)时偶然发现的。

承认我们正在失去控制,同时又觉得这是最理性的做法,这其中有一些令人不快的感觉。你可以把它看作是“直觉证明”,即某些攻击是不可阻挡的。如果这让你感到不安,你会很高兴地知道 GPT 5.2 认为这个论点“并不具有争议或新颖性”,并建议我不要“过多地强调这一点”,并将文章削减 40%。

艾力·沃夫沙(Eli Vovsha)是Fortra的数据科学经理。他与数据科学团队一起,负责开发和维护CEP和XDR产品使用的所有机器学习(ML)模型,以及一般的ML研究。他在史蒂文斯理工学院获得应用数学硕士学位,然后成为哥伦比亚大学计算机科学博士候选人,并在那里担任讲师。他后来联合创办了一家教育科技初创公司,旨在建立一个人工智能驱动的学习平台,然后在一所私立纽约市高中教数学和计算机科学。在追求研究生学位之前,艾力致力于国际象棋,获得国际大师(IM)称号。