为什么你的AI智能体的“记忆”是一场潜在的数据泄露。
摘要
文章警告,在多租户AI智能体中使用仅具有逻辑隔离(元数据过滤器)的共享向量数据库可能会在无声无息中引发数据泄露,并提倡为每个用户提供物理隔离以确保零数据泄漏。
我们都在构建具有“记忆”的AI智能体。让单租户智能体在本地运行非常容易。但一旦我们尝试将其扩展到多租户SaaS,几乎所有人都会采取完全相同的捷径。我们将10,000个用户塞进一个共享的向量数据库(如Pinecone、pgvector等),然后在查询中附加一个 `{"tenant_id": "123"}` 过滤器。人们称之为“租户隔离”,但说实话,它只是一个 `WHERE` 子句。以下是关于AI的可怕之处。如果在普通SaaS应用中,元数据过滤器遗漏或触发错误,用户通常只会看到空白的面板或500错误。你会注意到并修复它。但如果这个过滤器在AI检索路径中遗漏了呢?这个漏洞是完全无声的。向量搜索会直接从整个数据库中拉取最近的邻居。你的LLM在无声中摄取用户A的专有文档或私人聊天记录,并自信地将这些秘密幻化成用户B的答案。你无意中交叉污染了你客户的私有数据。这就是为什么逻辑隔离(命名空间、RBAC、元数据标签)对AI来说是一颗定时炸弹。你所有的安全控制都位于与应用程序代码完全相同的错误半径内。如果你在服务真实客户,保证零数据泄漏的唯一方法就是物理隔离。每个用户都需要自己物理上独立的数据库环境。如果检索漏洞发生,AI实际上无法读取其他租户的数据,因为数据根本不在其连接的数据库中。我知道管理1000个隔离的数据库听起来像一场DevOps噩梦(Terraform蔓延、代理路由等),但实际上现在存在编排工具可以使其变得可管理。我很好奇这里真正构建AI智能体的人。你们是否为每个用户物理隔离了向量存储?还是你们只是祈祷元数据过滤器永远不会遗漏子句?
相似文章
我们是否低估了AI代理记忆可能带来的危险?
讨论了赋予AI代理记忆的风险,包括信任问题、数据投毒和运营风险,并向构建者提出了关键问题。
如果你给AI智能体提供真实数据和一个发送按钮,它最终会泄露。我构建了一个工作空间,从结构上使其不可能发生。
作者分享了一种开源工作空间架构,通过强制执行人工把控的出站操作并将引擎与数据仓库隔离,从结构上防止AI智能体泄露私人数据。
我构建了一个开源记忆层,用于阻止 AI 代理中的跨租户数据泄露
Verity 是一个新的开源、权限感知的多租户 AI 代理记忆层,它通过在检索查询中直接强制执行访问控制(而不是依赖模型行为)来防止跨租户数据泄露。
我认为大多数AI代理的安全性远低于其开发者的预期
文章认为,AI代理安全常被过度强调,尤其是对提示注入的关注,而忽视了更广泛的风险,如未授权工具使用、数据访问和金融交易。它呼吁更多地关注代理在生产环境中实际可能被操控执行的任务。
如何让AI代理接触生产数据库而不令人胆战心惊?
一位开发者向社区提问,如何安全地让AI代理与生产数据库交互,重点表达了对SQL注入、数据泄露和缺乏审计追踪的担忧。