智能体检索漏洞修复:一个过滤器足矣

Egiziago Cioffi是SynSphere Italia公司的IT与企业架构师兼首席执行官,这家位于米兰的微软合作伙伴公司由他亲自构建了一个智能体。他编写了索引作业,配置了Azure OpenAI检索管道,将其与SharePoint连接,并看到它通过了团队运行的所有评估测试。

Cioffi在接受VentureBeat书面采访时表示,他的Azure OpenAI邮件智能体能够自动处理约60%的 incoming 客户邮件。评估分数干净利落,单元测试全部通过。然而,这些测试都没有提出那个至关重要的问题。

Cioffi使用一个低权限账户,向智能体提出了高权限账户已经问过的问题。结果并不匹配。智能体返回了SharePoint内容,而这些内容请求用户本无法在SharePoint中自行打开。日志讲述的故事与评估分数截然不同。

Cioffi的检索日志是这次特定生产故障的证据。以下的数据独立显示,此类故障并非孤立案例。

在许多生产RAG部署中,智能体回答时使用的是索引者的权限,而非请求者的权限

自2025年5月预览以来,Azure AI Search已通过基于Entra的令牌提供原生的文档级ACL修剪功能,随后SharePoint ACL同步也在后续预览中实现。这一功能确实存在;然而,它并未在所有需要的地方都得到应用。

SharePoint ACL预览现在可以通过2026-05-01-preview API中的spg:前缀摄取站点组元数据。但是,只有Entra支持的主体在查询时被明确记录为可靠执行。该预览通过REST API和预览SDK运行,并不涵盖所有智能体部署路径。例如,Azure OpenAI On Your Data支持通过Azure AI Search安全过滤器进行文档级访问,但微软自己的文档指出,如果未映射permitted-groups字段,文档级访问将被禁用。

这是一条官方路径中的”失败开放”默认设置。完全绕过Azure AI Search的自定义RAG管道仍然在具有广泛权限的服务账户下进行索引,除非开发人员自行构建,否则在查询时没有权限检查。Cioffi的部署就选择了这条自定义管道路径。

在生产规模智能体中,91%的成功攻击最终导致无声数据泄露

Straiker的红队对生产智能体进行了超过1700次成功利用尝试,并于7月发布了其首份STAR实验室威胁报告。他们研究中91%的数据衡量了所有对生产力智能体的成功攻击,这些攻击最终导致未被检测到的数据泄露。它衡量的是利用成功后发生的情况,而非未能强制执行检索时权限的部署数量。

在范围内的生产力智能体中,91%的成功攻击最终导致无声数据泄露,报告指出无需任何恶意软件。也没有通过网络横向移动。智能体返回了它能访问的所有数据。Straiker的报告并未具体说明这些成功案例中有多少是由于权限失败导致的,而非提示注入、工具滥用或其他攻击类别。

英国人工智能安全研究所(UKASI)独立记录了从7月25日至28日网络评估中的19次未授权智能体行动。UKASI于今年8月4日发布了其事件报告。评估故意在禁用网络分类器并启用互联网访问的情况下运行。UKASI报告展示的是智能体在其部署者预期范围外行动,在宽松的测试环境中,没有可靠的机制能在造成损害前捕捉到这种偏差。这是一个 containment 失败,而非检索权限失败,与Cioffi事件的共同点是缺乏运行时范围检查,而非相同的机制。

为什么评估会遗漏这个问题,以及为什么原生解决方案未能到达Cioffi的部署

Cioffi团队运行的评估旨在测试智能体回答是否正确。它们检查事实准确性、相关性和任务完成情况。它们不询问检索管道在获取源材料时使用的是谁的权限,因为这个问题不在评估框架中。

Azure AI Search目前正在平台级别提供检索时权限检查。查询时ACL修剪验证调用者的Entra令牌,提取用户和组声明,并仅返回同步权限元数据授予调用者访问权限的文档。对于使用Azure AI Search配合SharePoint索引器和Entra支持的主体的部署,控制措施原生存在。Cioffi的部署并未使用此路径。他的自定义Azure OpenAI检索管道绕过了原生修剪层,这正是为什么该漏洞能够逃避他团队运行的每一次评估。

从攻击者角度来看,这是一个被破坏的访问控制。Netragard创始人兼首席执行官Adriel Desautels在书面回复中告诉VentureBeat,失败归结为授权边界的结构性崩溃。”如果NHI凭证通常具有广泛的授权权限并可以读取高特权数据,然后这些数据存储在它们的索引中,”Desautels写道。”如果一个应用程序不强制执行身份感知检索,那么具有较低权限的’普通’用户可以查询该应用程序并访问其他受限数据。这会将授权边界 collapse 到具有搜索能力的最低特权级别。”

正是这个漏洞被Cioffi的低权限测试所暴露。智能体的上下文窗口包含低权限账户无法通过SharePoint直接检索的SharePoint内容。评估通过了。检索权限边界未被强制执行。

Desautels从操作角度描述了评估盲点。”智能体倾向于运行一个单一的、长寿命的、非人类身份,持有广泛的权限,可能用于它被要求完成的任何任务,”他写道。”评估也往往不涵盖提示、输出、记录、记忆和日志,这些内容可能通过注入的内容被读取或劫持。这种不匹配是大多数当前评估出错的地方。”

Cioffi的过滤器缩小了智能体的检索范围,它仍能处理约60%的邮件

Cioffi的解决方案不需要新的身份平台。他将权限决策移入检索路径本身,添加了一个查询路径过滤器,在模型看到内容块之前检查请求用户的SharePoint权限。该过滤器在查询时运行,而非索引时。用户无法在SharePoint中打开的内容不会进入模型的上下文窗口。

这个控制措施缩小了智能体能访问的范围。Cioffi告诉VentureBeat,在过滤器激活的情况下,智能体仍能自动处理约60%的 incoming 邮件。他没有提供过滤器前自动解析率的比较数据。他描述的定性权衡是,智能体先前用于回答问题的一些内容现在被排除在外,因为请求用户的权限无法达到。这就是强制执行边界所需的代价。

关于检索时权限过滤是否值得缩小智能体能力范围的问题,Cioffi的案例表明,在安全与功能之间取得平衡是可能的。通过精心设计的过滤器,组织可以在不牺牲太多生产力的前提下保护敏感数据。


关注微信号:智享开源 ,及时了解更新信息。

原文链接:https://venturebeat.com/security/azure-openai-agent-passed-every-evaluation-served-files-user-couldnt-open

评论列表
发表评论
😀 😂 😃 😄 😅 😆 😉 😊 😋 😎 😍 😘 🥰 😜 😝 🤗 🤔 😭 😤 👍

为你推荐
Ta的个人站点

Mark Do发布文章2867篇

如我距离死亡还有45年,我还活着,该怎么度过现在。


公众号:智享开源

分类