
为了防止在处理来自不可信来源的数据时遭受提示词注入攻击,谷歌 DeepMind 的研究人员提出了 CaMeL,一种围绕 LLM 的防御层,通过从查询中提取控制流和数据流来阻止恶意输入。根据他们的实验结果,CaMeL 能够在 AgentDojo 安全基准测试中抵御 67% 的攻击。
众所周知,攻击者可以将恶意数据或指令注入到 LLM 的上下文中,目的是窃取数据或诱导模型以有害的方式执行操作。例如,攻击者可能会尝试获取聊天机器人的系统提示词,以便获取控制权或窃取敏感信息,例如访问私有 Slack 频道中的数据。更令人担忧的是,当 LLM 能够访问具有现实世界影响的工具时,比如发送电子邮件或下单,这种情况的风险就更大了。
即使 LLM 采取了特定策略来防御提示词注入攻击,攻击者仍会设法绕过这些防护措施。一个近期的例子是 AI 安全专家 Johann Rehberger 展示的一种类似网络钓鱼的攻击,成功绕过了 Gemini 对延迟工具执行的保护。
CaMeL 是一项旨在解决这些风险的新提案。CaMeL 不依赖更多的人工智能来防御人工智能系统(例如基于人工智能的提示词注入检测器),而是采用了传统的软件安全原则,如控制流完整性、访问控制和信息流控制。
CaMeL 为每个值关联了一些元数据(在软件安全文献中通常被称为能力),用于限制数据和控制流,并通过使用细粒度的安全策略来表达可以和不可以对每个独立值进行哪些操作。
CaMeL 使用自定义的 Python 解释器来跟踪数据和指令的来源,强制执行基于能力的安全性保障,无需对 LLM 本身进行任何修改。它借鉴了 Simon Willison(他首次提出了“提示词注入”一词)所描述的双 LLM 模式,并以巧妙的方式对其进行了扩展。
Willison 最初的提议包含了一个拥有特权的 LLM,它直接处理用户的提示词,以及一个被隔离的 LLM,它接触的是不可信的数据,并且无法使用任何工具。拥有特权的 LLM 管理工作流程,并可能要求被隔离的 LLM 从不受信任的数据中提取特定信息,例如电子邮件地址。这确保了特权 LLM 永远不会直接接触到不受信任的内容,只处理隔离模型返回的、经过过滤的结果。
谷歌研究人员表示,这种方案的缺陷在于,攻击者仍然可以操纵被隔离的 LLM 生成误导性的输出,例如未经授权访问敏感信息的收件人的电子邮件地址。
在他们的新方案中,特权 LLM 会生成一个使用受限的 Python 子集编写的程序,这个程序负责执行所有必要的步骤。当这个程序从被隔离的 LLM 或其他工具接收数据时,它会构建一个数据流图,跟踪每个数据元素的来源、访问权限和相关元数据。随后,这些元数据被用来确保对数据的任何操作都符合特权限制。

正如 Willison 在回应 CaMeL 提议时所强调的,这种方法的重要性在于不依赖更多的人工智能来解决人工智能问题:
人工智能技术使用的是概率:你可以用一系列以前的提示词注入示例来训练模型,并在检测新的示例时获得 99% 的分数……但这毫无用处,因为在应用安全中,99% 是一个不及格的分数。
为了测试 CaMeL 的有效性,DeepMind 的研究人员将其整合到 AgentDojo 中,一个自主智能体安全基准测试,涵盖了现实世界的一系列实用性和安全性任务。
DeepMind 的研究人员承认,CaMeL 并不是 LLM 安全的完美解决方案,最大的局限在于在于依赖用户定义的安全策略。此外,由于 CaMeL 可能需要用户手动审批涉及隐私的任务,这可能会导致用户疲劳,做出自动化或草率的审批。
如需了解更多讨论细节,请不要错过原始论文。
【声明:本文由 InfoQ 翻译,未经许可禁止转载。】
查看英文原文:https://www.infoq.com/news/2025/04/deepmind-camel-promt-injection/
评论