关闭 Azure OpenAI 助手的检索差距,无需新的身份平台。只需一个过滤器和一个更窄的助手。
Egiziago Cioffi 是一位 IT 架构师,他在利用 Azure OpenAI 构建的一个 AI 代理中发现了一个关键的安全漏洞。该代理成功通过了所有评估,展现出事实准确性和任务完成能力。然而,当使用低权限账户进行测试时,该代理检索到了用户本不应有权访问的信息。这揭示出该代理使用的是索引作业的更广泛权限,而非请求用户的授权范围。此类失败——即代理使用索引器权限而非用户权限——并非孤立现象。虽然 Azure AI Search 已引入原生的文档级访问控制(ACL)修剪功能,但该功能并未在所有部署路径中普遍实施或完全可用。自定义管道(如 Cioffi 所使用的)通常会绕过这些原生安全特性。此外,独立研究表明,相当比例的成功针对生产力代理的攻击会导致静默数据外泄,突显出一类更广泛的安全漏洞。这些安全差距往往被标准评估所遗漏,因为标准评估侧重于答案质量,而非数据检索所使用的权限。当正确配置 Entra 支持的主体和 SharePoint 索引器时,原生的 Azure AI Search ACL 修剪功能可以强制执行这些边界,但 Cioffi 的自定义管道规避了这一点。核心问题在于访问控制失效,授权边界坍塌至具备搜索能力的最低特权级别。Cioffi 通过集成一个查询路径过滤器实施了修复,该过滤器在数据发送至模型之前检查请求用户的 SharePoint 权限。这确保了用户无法直接在 SharePoint 中访问的内容不会包含在代理的上下文窗口中。虽然此举缩小了可访问内容的范围,但该助手仍继续自动处理约 60% 的入站电子邮件。增强安全性的代价是,若必要内容被权限过滤器阻止,可能导致回答问题能力下降。身份治理平台负责管理服务账户的生命周期和凭据,其运作层级不同于检索权限边界。这两层控制对于全面的 AI 代理安全均至关重要。一项涉及两个账户(一个高权限、一个低权限)的简单测试,可在三十分钟内暴露检索权限边界执行问题。该测试通过将输出与直接系统访问结果进行比较,可揭示助手是否错误地返回了超出用户授予权限范围的数据。