我如何骗过 Claude,窃取你最深处的秘密
看看这个 Claude 对话,你发现什么可疑的地方了吗?
看起来平平无奇,但当 Claude 完成回复时,它已经把我的全名、当前雇主和安全问题的答案发送给了攻击者,而整个过程没有任何异常提示。
$ bun dev
Exfiltrating data... Name: Ayush Paul Company: Beem Hometown: Charlotte, NC
我研究 AI memory 系统已经有一段时间了,发现安全问题完全被忽视了——这些系统存储的信息量其实比大多数密码管理器还要多。Claude 这样的 AI 助手已经积累了地球上最密集的个人信息档案。用户向他们倾诉一切,从工作中的机密到私人秘密,再到感情问题。随着时间推移,这些对话记录就成了你的高精度数字画像,可以被用来敲诈、冒充身份,甚至绕过安全问题。
有了这个认知,我决定深入研究一下 Claude,尤其是那个日常用的主助手(claude.ai,不是 Claude Code)。Claude 有一套功能完整但相当天真的双层记忆系统。第一层是每日摘要:把你最近的对话提炼成几段关于你的描述,注入到每个对话中,这样 Claude 就不用从零开始。第二层是一个检索工具 conversation_search,可以按需搜索你的完整对话历史。
这里面藏着极具价值的信息。记忆系统本身是安全的,真正的问题是——当它和一个能浏览网页的 agent 结合起来,会发生什么。
naive 方案
要窃取你的记忆,我们需要找到一种方法把数据从 Claude 的沙盒中带出来,也就是一个数据泄露向量。我想要一个完全通用的方案(不需要实验性设置、代码执行或小众的 MCP)。我立刻想到了 Claude 的网页浏览能力。Claude 内置了两个访问互联网的工具:web_search 和 web_fetch。web_fetch 设计为只读,给 Claude 一个查看任意 URL 内容的方式。
但是,如果 Claude 能访问我们拥有的网站,那我们就能检测到 Claude 的访问!我快速搭建了一个网页服务器 evil.com,并记录所有请求。然后转到 Claude 这边,让它……
