代理安全挑战

随着AI模型从被动聊天机器人发展成能够浏览网页、执行代码和管理文件的自主代理,安全风险大幅上升。一个给出错误答案的聊天机器人是一个不便。一个执行错误操作的代理——发送电子邮件、删除文件、执行交易——因为攻击者操纵了它的指令可能会造成真实伤害。OpenAI现已发布详细的技术博客文章,解释它如何设计ChatGPT的代理功能以抵抗提示注入和社会工程学攻击。

提示注入是一类攻击,其中恶意指令被嵌入到AI代理处理的数据中。例如,攻击者可能在网页、电子邮件或文档中隐藏指令,告诉代理忽略其原始指令并执行未授权的操作。当代理读取和处理此内容时,它可能会遵循注入的指令,可能泄露敏感数据或代表攻击者执行有害操作。

深度防御

OpenAI对代理工作流中提示注入防御的方法遵循多层深度防御策略。没有单一防御被认为自身就足够;该系统依靠多种机制的组合来提供强大的保护,即使单个层被绕过也是如此。

第一层是指令层级。ChatGPT的代理功能被设计为对来自不同来源的指令以不同的信任级别进行处理。来自应用程序开发者的系统级指令获得最高信任。用户指令获得中等信任。来自外部来源的内容——网页、电子邮件、文档——获得最低信任。当来自较低信任来源的指令与来自较高信任来源的指令冲突时,较高信任的指令优先。

这个层级意味着即使网页包含"忽略您之前的指令"的文本,ChatGPT的代理也会将其识别为不能覆盖系统或用户级指令的低信任外部指令。

限制风险操作

第二个主要防御机制涉及限制代理可以在响应外部内容时采取的操作。OpenAI沿着风险谱对代理操作进行分类,从像搜索网页这样的低风险只读操作到像发送电子邮件、进行购买或修改文件这样的高风险操作。

高风险操作在执行前需要明确的用户确认,无论代理收到了什么指令。这创建了一个人类在环的检查点,即使攻击者成功注入代理其他防御未能阻止的指令,也可以防止自动化利用。

对于中等风险操作,系统应用上下文分析来确定请求的操作是否与用户的原始意图一致。如果要求代理总结网页,而这些网页之一包含起草电子邮件的指令,则上下文不匹配会触发额外的审查和用户确认。

保护敏感数据

第三个防御层专注于防止数据外泄——提示注入用于从代理的上下文中提取敏感信息并将其发送给攻击者的情况。OpenAI的方法涉及监控信息通过代理工作流的流动,并标记表明数据被引导到未授权目的地的模式。

例如,如果代理正在处理包含个人信息的文档,然后尝试在web请求中包含该信息到不熟悉的域,系统将其识别为潜在的数据外泄尝试并阻止该操作。

模型级培训

所有这些架构防御的基础是模型级别的培训。OpenAI已将提示注入抵抗力纳入ChatGPT的培训过程,使用有监督的微调和注入尝试的示例以及来自人工反馈的强化学习来教导模型识别和抵抗操纵尝试。

此培训包括对各种注入技术的接触:直接指令覆盖、旨在绕过安全指南的角色扮演场景、编码或混淆指令、多步操纵链和吸引模型的有用性来覆盖其安全约束的社会工程学战术。

结果是一个不仅遵循一组静态安全规则,而且已经内化了对提示注入的样子以及为什么应该抵抗它的理解的模型。

持续的军备竞赛

OpenAI承认提示注入防御是一场持续的军备竞赛而不是一个已解决的问题。攻击者将开发新技术,防御必须做出响应进化。该博客文章既是一个透明度措施,也是对更广泛的AI安全社区对代理安全挑战理解的贡献。

随着AI代理变得更加强大并更广泛地部署,提示注入攻击的风险将继续上升。OpenAI描述的深度防御方法——结合指令层级、操作约束、数据流监控和模型级培训——提供了其他AI开发人员在行业应对越来越自主的AI系统的安全含义时可能会采纳和扩展的框架。

本文基于OpenAI的报道。阅读原文

Originally published on openai.com