权限不等于目的:Omnigent中的意图授权

权限不等于目的:Omnigent中的意图授权

💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

本文介绍Omnigent的意图授权机制,解决AI代理因提示注入而执行越权操作的问题。传统授权仅检查身份,不检查目的,攻击者可隐藏指令于数据中。Omnigent通过声明会话意图,每次操作均需匹配意图,超出范围则拒绝或需人工批准。意图由代理起草但需人工确认,不可篡改,有效阻断注入攻击,同时不影响正常任务。

🔎

延伸解读

意图授权与身份授权的本质区别

传统授权机制(如RBAC)只验证“谁”能做什么,不关心“为什么”做。Omnigent的意图授权则要求每个操作必须匹配会话声明的目的,即使身份允许,超出意图的操作也会被拒绝或需人工审批。这种“目的感知”的授权方式,弥补了身份授权对任务上下文无感知的缺陷,为AI代理的安全执行提供了更细粒度的控制。

提示注入攻击的典型场景与防御效果

文章演示了攻击者将恶意指令隐藏在数据字段中(如支持备注),诱导代理执行未请求的授权操作。在无意图策略时,代理会执行攻击指令;而启用意图授权后,该操作因超出声明意图被拒绝,同时用户正常请求仍能完成。这展示了意图授权对间接提示注入的有效阻断,且不影响合法任务。

意图的设定与防篡改机制

意图由代理根据任务描述起草,但必须经人工确认后才能生效,且代理无法在运行时自行扩大或删除意图。这种设计防止了提示注入通过诱导代理修改意图来绕过限制。意图定义在代理配置中,可手动编写或由代理生成后审批,确保意图的权威性和安全性。

Q&A

Omnigent的意图授权机制是什么?

Omnigent的意图授权机制是一种上下文策略,它将AI代理的会话绑定到一个声明的意图(即目的),并在每次工具调用前检查该操作是否符合意图。如果操作超出意图范围,即使代理的身份允许,也会被拒绝或需要人工批准。

传统授权方式存在哪些问题?

传统授权方式(如基于角色的访问控制)只检查身份,不检查操作的目的。因此,AI代理可能被提示注入攻击利用,执行它被授权但并非用户请求的操作。例如,一个代理在只读任务中也可能被诱导执行授权操作,因为身份检查无法判断操作是否与当前任务相关。

Omnigent如何阻止提示注入攻击?

Omnigent通过声明会话意图来阻止提示注入攻击。代理在会话开始时声明意图,并由人类批准。每次工具调用都会检查是否符合意图,如果操作超出意图范围,即使代理身份允许,也会被拒绝或需要人工批准。这样,即使攻击者在数据中隐藏指令,代理也无法执行超出意图的操作。

在Omnigent中,意图是如何设置和确认的?

意图可以由代理根据任务描述起草,但必须由人类确认后才能生效。代理不能自行扩大或删除意图。意图在代理的配置中定义,可以通过两种方式设置:一是直接编写策略规则,二是用自然语言描述意图,由代理生成策略并请求人类批准。

意图授权与身份授权有什么区别?

身份授权(如RBAC)只检查操作者是否有权执行操作,不关心操作的目的。意图授权则额外检查操作是否符合当前会话的声明意图。只有同时满足身份和意图的操作才会被允许。意图授权缩小了代理在特定任务中可执行的操作范围,防止越权操作。

意图授权策略的三种判定结果是什么?

意图授权策略在每次工具调用前返回三种判定结果:ALLOW(允许)、ASK(需要人工批准)和DENY(拒绝)。ALLOW表示操作符合意图,DENY表示操作超出意图,ASK表示操作需要人工确认。

为什么代理不能自行修改意图?

代理不能自行修改意图,因为如果代理可以在运行时静默设置或修改意图,提示注入攻击可能诱使模型声明一个宽泛的意图,从而绕过限制。因此,意图必须由人类批准,并且代理无法扩大或删除它,确保意图的不可篡改性。

意图授权在实际场景中如何应用?

例如,一个数据质量检查代理拥有读取表、更新仪表盘和授予表访问权限的工具。在意图授权下,会话意图被声明为“运行质量检查并发布摘要”,因此读取表被允许,更新仪表盘需要人工批准,而授予访问权限则被拒绝,即使代理身份允许该操作。这样,即使数据中包含恶意指令,代理也无法执行越权操作。

🏷️

标签

➡️

继续阅读