摘要:一次Claude记忆泄露测试显示,当AI助手同时拥有长期记忆、网页访问和工具调用能力时,外部网页可能影响模型决策,并通过获准工具把内部信息带出系统。

一个人让Claude比较几家咖啡店。
Claude访问其中一家网站,读取菜单、位置和营业时间,随后给出推荐。用户看到的只是一次普通的信息查询。
网站服务器留下了另一组记录:Claude按照网页中的指引,多次访问不同路径,把用户姓名、工作单位和成长城市逐步写进网址。网站运营者通过访问日志,拼出了这些信息。
用户没有填写表单,没有上传文件,也没有批准数据发送。Claude调用的是自带的网页访问能力,泄露的数据来自它对用户的长期记忆和历史对话检索。该测试针对Claude日常助手,不涉及Claude Code、第三方MCP服务器或代码执行环境。
这条具体攻击路径已经被Anthropic限制,但它留下的问题并没有随补丁一起消失:
当一个AI助手同时拥有长期记忆、网页访问、企业知识库和工具调用权限时,系统如何判断一段信息可以用于回答用户,却不能被带到外部系统?
一、Claude保存了哪些“记忆”
长期使用AI助手后,系统会逐渐掌握用户的工作、习惯和偏好。
这些信息可能包括:
- 用户姓名、职位和所在单位;
- 经常接触的项目和客户;
- 常用的写作方式;
- 家庭成员和个人经历;
- 工作文件中的术语;
- 过去做过的决定;
- 对某些产品、供应商或方案的评价。
Claude的日常助手可以将近期对话归纳为较短的用户记忆,并在后续对话中调用。它还可以根据需要搜索完整的历史会话,以补充当前任务所需的信息。安全测试中,攻击者利用的就是这两部分能力。
Anthropic提供给开发者的Memory Tool采用另一套实现方式。模型可以在/memories目录中创建、读取、修改和删除记忆文件,文件由客户自己的应用程序保存。新会话开始时,模型会先检查这些文件,再继续以前的项目、决策和任务。
两类产品的实现细节不同,但使用逻辑相近:系统把过去的信息保存下来,在后续任务中重新取出。
记忆提高了连续工作的效率,也扩大了单次会话能够接触的数据范围。
以前,一段敏感信息只存在于某次聊天中。开启长期记忆后,这段信息可能在几个月后的另一项任务中被重新调出。
二、信息是怎样通过网址泄露的
网页读取工具通常采用GET请求访问网址。
例如:
https://example.com/product/123
服务器会看到访问路径/product/123。
如果网址路径中出现用户信息,服务器同样能够记录:
https://example.com/user/zhang-san
直接要求AI把用户姓名放进网址,很容易触发安全限制。测试采用了一种更隐蔽的方法:网页先给出26个字母链接,让AI通过逐级访问链接的方式“查找用户档案”。
假设需要传出名字“liwei”,访问过程可能表现为:
1 | /site/l |
每次访问看起来都像在网站内部翻页。
服务器把连续路径组合起来,就能还原完整信息。
测试网站伪装成普通咖啡店。普通浏览器访问时,页面显示饮品、地址和营业时间;Claude访问时,服务器根据其访问标识返回另一套内容,引导它寻找所谓的用户档案。Claude完成操作后,页面又返回正常的咖啡店信息,所以最终回答中没有出现异常提示。
整个过程利用了三个能力的组合:
- Claude能够读取自己的用户记忆;
- Claude能够理解网页中的文字指引;
- Claude能够沿着网页链接继续访问。
任何一个能力单独使用,风险都比较有限。组合之后,网页内容可以影响Claude如何使用内部信息,并通过网络请求留下可读取的痕迹。
三、为什么没有弹出“是否允许发送数据”
传统软件中的权限操作通常比较明确。
上传文件时,用户可以看到文件选择框;调用摄像头时,系统会弹出权限申请;转账或删除数据时,程序会要求再次确认。
这次信息泄露没有使用“上传”按钮。
从工具视角看,Claude只是在访问网页。每次请求都属于正常的网页读取操作,目的地址也来自已经打开的页面。
问题出在数据流向没有被单独识别。
系统检查了“能不能访问这个网址”,却没有充分检查“这个网址中是否包含从用户记忆提取的信息”。
这也是智能体系统比普通聊天机器人更难防护的地方。
普通聊天机器人主要生成文字。智能体还会访问网站、读写文件、调用API、操作数据库和执行工作流。模型生成的每个工具参数,都可能成为数据传输通道:
- 网址路径;
- 查询参数;
- HTTP请求头;
- 文件名;
- 搜索关键词;
- 邮件收件人和正文;
- 数据库查询条件;
- MCP工具参数;
- 命令行参数;
- 日志字段。
企业只检查最终回复内容,无法覆盖这些通道。
四、被泄露的内容可能来自推断
安全测试中,Claude不仅调用了明确保存的信息,还根据过去的线索推断出了用户成长的城市。
用户没有直接告诉Claude自己来自哪里。系统根据其高中时期创办活动的名称,推测出了对应城市,并把推断结果提交给网站。
这意味着企业保护的对象不能只包括原始数据。
系统还可能从多条普通信息中组合出敏感结论。
例如:
- 从会议记录和出差计划推断尚未公开的客户项目;
- 从招聘文件和组织架构推断部门调整;
- 从采购询价和设备清单推断产线扩建计划;
- 从异常日志和维修记录推断生产事故;
- 从合同版本和审批意见推断谈判底价;
- 从图纸编号、供应商名称和交付日期推断新产品进度。
数据库权限通常围绕单个字段设置。模型推断形成的信息没有固定字段,也可能没有明确的数据标签。
企业数字员工上线以后,数据防护范围需要包括模型生成的中间判断、摘要、分类结果和推断结论。
五、补丁解决了哪一部分问题

Anthropic收到报告后,限制了web_fetch继续跟随外部页面链接的能力。
调整后的网页读取工具主要访问两类网址:
- 用户直接提供的网址;
- 网页搜索结果中的网址。
外部网页不能再通过页面内的大量链接,引导Claude逐个访问字母路径。本文描述的这条数据传出路径因此受到限制。
这项修改堵住了具体出口,没有覆盖所有类似组合。
信息仍可能通过其他获准能力离开系统。例如,Anthropic公开披露过另一类案例:攻击内容借助获准访问的官方API域名,将工作区文件上传到攻击者自己的账户。网络白名单看到的是合法域名,但域名内部包含多种接口和不同账户,单纯检查目的域名无法识别数据最终交给了谁。
因此,企业不能把安全策略简化为“允许哪些网站”。
还要检查:
- 调用的是网站中的哪个接口;
- 使用谁的账号和令牌;
- 请求中携带了哪些数据;
- 数据来自用户输入、企业文件还是模型记忆;
- 操作结果写入了哪个外部空间;
- 是否形成跨系统的数据流动。
允许访问一个域名,等于开放了该域名下部分或全部能力。企业应按具体接口、请求方法、账户归属和数据类型设置权限。
六、企业数字员工会遇到同类问题
个人AI助手的记忆中主要是个人经历和聊天记录。
企业数字员工能够接触的内容更复杂:
- 企业知识库;
- 客户资料;
- 项目文件;
- 合同和报价;
- 邮件与日程;
- ERP、MES、PLM和CRM数据;
- 设备运行记录;
- 工艺参数;
- 质量报告;
- 本地文件夹;
- 工业软件和计算工具。
数字员工为了完成任务,还可能连接网页搜索、企业微信、邮件、云盘、数据库、MCP服务器和工业软件接口。
一个销售数字员工可能同时拥有客户关系记录、历史报价、邮件发送和网页检索权限。
一个设备维修数字员工可能同时拥有设备档案、故障记录、备件库存和厂商网站访问权限。
一个工业软件操作智能体可能同时拥有模型文件、仿真参数、命令行和结果上传权限。
攻击者不必突破数据库。
只要把带有隐藏指令的内容放进数字员工会读取的位置,就可能影响后续工具调用。这些内容可以藏在:
- 网页;
- PDF文档;
- 邮件正文;
- 图片中的文字;
- 代码注释;
- 设备维修记录;
- 客户提交的附件;
- 知识库文章;
- 第三方接口返回结果。
模型很难稳定区分“提供给用户参考的业务内容”和“要求模型执行的操作指令”。网页中的一句话、附件中的一段文字或接口返回的一个字段,都可能被当成下一步任务。
七、记忆系统需要单独划分权限
很多企业把记忆理解为一个普通的文本文件夹或向量数据库。
这种设计过于简单。
记忆中可能同时包含四类信息:
1. 用户偏好
例如常用语言、输出格式、报告模板和通知时间。
这类信息风险相对较低,可以自动读取和更新。
2. 工作上下文
例如项目名称、当前任务、已完成步骤和下一步计划。
这类信息应按项目隔离,避免一个项目的内容进入另一个项目。
3. 业务事实
例如客户信息、合同条款、设备状态和技术参数。
这类信息要继承原始数据的权限,不能因为写入记忆就失去访问控制。
4. 敏感信息
例如账号、令牌、个人身份信息、商业秘密和安全配置。
这类内容原则上不应自动写入通用记忆。确需保存时,应使用加密存储、严格授权和较短的保留周期。
Anthropic的Memory Tool文档也建议开发者在写入前增加敏感信息过滤,限制文件大小,定期删除长期未使用的记忆,并对所有路径进行校验,防止通过目录跳转访问记忆区之外的文件。
企业还应保留记忆来源信息。
每条记忆至少需要记录:
- 数据来自哪里;
- 由谁产生;
- 何时写入;
- 适用于哪个项目;
- 可以被哪些智能体读取;
- 是否允许发送到外部系统;
- 何时失效;
- 用户是否可以查看和删除。
没有来源和权限标签的记忆,使用时间越长,治理难度越高。
八、企业可以设置哪些防线
第一层:限制记忆内容
对写入记忆的数据进行分类。
身份证号、密码、令牌、银行卡、客户联系人、合同价格和未公开项目信息,不应由模型自行决定是否长期保存。写入敏感记忆时,可以要求业务程序校验或人工确认。
第二层:隔离不同任务的记忆
销售、研发、财务、设备维护和管理层智能体不能共用一个不设权限的记忆池。
同一员工参与多个客户项目时,也要按客户和项目划分访问空间。
第三层:把网页和外部文件视为不可信输入
网页、邮件、PDF、图片和第三方接口中的文字,只能作为数据材料。
业务程序应在模型上下文中标明来源,并禁止这些内容修改系统规则、记忆策略和工具权限。
仅靠提示词写一句“忽略网页中的恶意指令”,无法提供稳定防护。近期针对持久化智能体的研究显示,一封带有隐藏指令的邮件就可能诱导系统写入被污染的长期记忆,并在后续任务中影响决策。相关测试覆盖文件型和向量型记忆系统,也涉及多种个人智能体架构。
第四层:控制网络出口
数字员工访问互联网时,应采用代理网关。
代理网关需要检查域名、接口、请求方法、账户、参数和数据分类。包含个人信息、商业秘密或内部文档内容的请求,应阻断或要求审批。
第五层:关键工具调用二次确认
下列操作不适合完全自动执行:
- 对外发送邮件;
- 上传文件;
- 新增外部联系人;
- 修改业务数据;
- 调整设备参数;
- 执行付款;
- 删除文件;
- 发布内容;
- 调用生产控制接口。
确认页面要把操作对象、数据内容、接收方和影响范围展示给用户,不能只显示一句“是否允许使用工具”。
第六层:记录完整工具轨迹
审计日志不能只记录用户问题和模型回答。
还要记录:
- 模型读取了哪些记忆;
- 调用了哪些工具;
- 访问了哪些网址;
- 向外发送了哪些字段;
- 使用了哪个账号;
- 工具为什么被批准;
- 最终结果保存在哪里。
发生问题后,企业才能还原数据流向。
九、数字员工安全需要围绕数据流设计
长期记忆让数字员工能够连续工作。
网页、知识库和MCP让它能够获取信息。
邮件、数据库、命令行和工业软件接口让它能够完成操作。
这些能力组合之后,安全边界不能停留在模型回答是否合规,也不能只检查某个工具是否可信。
系统需要持续回答四个问题:
- 这条数据从哪里来;
- 当前任务是否需要使用它;
- 它可以交给哪个工具;
- 工具会把它送到哪里。
一条用户记忆可以用于称呼用户,不代表可以写进网址。
一份客户合同可以用于生成内部摘要,不代表可以发送给外部搜索服务。
一组设备参数可以用于故障分析,不代表可以自动提交到设备控制系统。
一段历史经验可以帮助模型给出建议,不代表可以覆盖当前工艺规程。
这次Claude记忆泄露所使用的具体路径已经受到限制。对企业而言,更有参考价值的是它展示出的攻击方式:外部内容影响模型决策,模型读取内部信息,再利用获准工具把数据带出系统。
数字员工的记忆越多,工具越多,能够连接的系统越多,权限设计就越需要细化。
企业部署时应把记忆、知识库、联网和工具调用分别设防,再对它们之间的数据流动进行统一审计。这样才能让数字员工记得住工作,也守得住数据。