Claude 新 AI 代理自动继承了你所有已连接应用,我的代理能读走我的 API 密钥

Jamie Watters — The Journey 2026-11-04T15:55:52.567745

Jamie Watters

运维韧性与 AI 落地实践者。

社交卡片。标题:Claude 新 AI 代理自动继承了你所有已连接应用,我的代理能读走我的 API 密钥。副标题:这条链接唯一的锁是一串保密网址,而服务器已把它写进自己的日志 47,818 次。11 月 1 日已锁定并更换。

检查是在 2026 年 11 月 1 日上午跑的。而代理从 10 月 27 日起就已经握着那条链接。

我本以为,自己只是要把一把钥匙交给 AI 代理,让它进入我的“第二大脑”——那个我存放计划、任务和所有归档的笔记库。这把钥匙是一条我日常在用的链接。在交出去之前,一项等待了六天的检查终于跑了。结果发现,这条链接能打开的东西不止我的笔记:它还能打开我其他工具存放密钥的文件。而代理早就拿到它了。

这个代理叫 Claude Duet,Anthropic 于 10 月 21 日以研究预览形式开放。Anthropic 说它“即使你离开也继续工作”,并且“每隔几小时”检查你连接的账号。它还会“从你的 Claude 账号继承记忆、技能和已连接应用”(Anthropic,2026)。我的访问权限在 10 月 27 日开通。我从未把笔记链接交给它,也根本不需要交。

那条链接属于我“已连接应用”之一:它让 Claude 能从手机和 Claude 应用里读写我的笔记。10 月 26 日,另一个 AI 代理发现它能读取我整个笔记库,包括凭据在内。当时还没被确认。这事被记成一个待办问题,计划最迟在 10 月 31 日周六检查。周六过去了,没有检查。

11 月 1 日周日,在我让 Duet 开始处理笔记之前,一个代理跑了这项检查。

Timeline: 26 October, an AI agent flags that the notes link can read the whole vault, credentials included, due to be checked by Saturday; 27 October, Duet access arrives and inherits every connected app, this link included; 31 October, the deadline passes unchecked; 1 November, the check confirms it, the lockdown is applied and the address is changed the same day.


检查发现了什么

这个链接可以读取我笔记库里的任何文件,不分类型。而库里放着一个凭据文件夹,还有几个设置文件,里面装着其他服务的密钥,其中一个文件就有 21 条。它交出文件之前只做一项检查:这个文件是不是在库里。这些文件当然都在。

它唯一的防护是一串保密的网址。没有密码,也不用登录。谁拿到这个地址,谁就能读、能写。

可这串地址并不保密。链接每被使用一次,服务器就把它写进自己的日志文件:到检查当天早上,已经记了 47,818 次(Connector check, 2026)。只要能在那台机器上打开这个文件,就等于拿到了地址。它还出现在一条提交到私有代码仓库的项目笔记里,以及两个测试文件中。

所以风险并不在于有人巧妙地从这个文件夹里逃出去——那条路是被堵住的。风险在于我共享出去的那个文件夹里本来就放着什么。检查你自己的时候,先看这里。


智能体是怎么不打招呼就拿到它的

没有人把链接交给 Duet。Anthropic 的安全页面写着:「你已连接到 Claude 的应用会一并延续到 Claude Duet,在一处关闭某个应用,两处都会关闭」(Anthropic, Duet safety, 2026)。我的链接在 Claude 里是开着的,所以我拿到访问权限那天起,它在 Duet 里也就是开着的。

Duet 在发送消息、付款、签署文件或删除任何东西之前,都会先问你。但「读取」不在这个清单上:「Claude Duet 会自行读取、起草和准备工作」(Anthropic, 2026)。

Anthropic 在设计上也做了防护,让智能体“永远不会直接看到你的密码或登录令牌”(Anthropic,2026)。这覆盖的是它连接你各应用时使用的密码和密钥,却管不到写在这些应用所允许打开的文件里的密钥。对智能体来说,那只是一份文件的内容而已。

它到底有没有打开过这些文件?我无从得知。服务器的日志记录了每次请求,却没有记录它请求了哪个文件,也没记录是我的哪个 Claude 应用发起的。

我之所以觉得自己的链接安全,是因为它的地址又长又随机。但秘密地址的保密程度,取决于它被写下来的每一处地方,而我的地址被写在了四个我此前没想到的地方。


当天就修好

验证修复是否生效,有个办法你自己也能试:向连接要一个它不该给的文件。那天早上智能体把我的连接锁紧之后,它向在线链接索要了我的凭据文件和带密钥的设置文件,两个都被拒绝了,而一份普通笔记仍然能正常取回。

五行对比。读取范围:改前,可读取保险库内任意文件;改后,仅限笔记,凭据文件、设置文件和一个隐藏文件都已测试并被拒绝。日志:改前,完整地址出现在 47,818 行中;改后,每一行新日志都做了遮蔽。密钥缺失时:改前,启动时不做拦截;改后,设置为拒绝启动。地址:改前,被写在四个地方;改后,当天更换,旧地址打不开任何东西。锁:秘密网址保持不变。

如果你的链接或密钥曾被写到不该写的地方,光把锁拧紧还不够,得换掉密钥。我当天就换了地址。旧地址现在打不开任何东西,所以散落在各处的副本没法再用来进我的门。

把应用关掉并不等于解决问题。Anthropic 说:“断开某个应用只会阻止从那一刻起的新访问,但 Claude Duet 此前从它那里学到的东西会一直保留,直到你重置它的记忆”(Anthropic,Duet 安全说明,2026)。

连上之前,先过六道检查

下面这几项检查不需要读代码也能做。它们只是几项检查步骤,不能提供任何保证:任何一项不通过就该停下来;六项全过,也只能说明你愿意信任搭建这个连接的人。而我的情况,有五项没通过。

  1. 它能打开哪些文件?把一个假密钥放进与你真实密钥同类型、同位置的文件,然后让 AI 智能体(agent)去读这个文件。如果连接拒绝读取,这项就通过。AI 礼貌地拒绝不算通过,“找不到文件”也不算。

  2. 你共享的内容里有密钥吗?先显示隐藏文件(Mac 的 Finder 里按 Cmd+Shift+.),再在文件内容里搜索 key、token、secret 和 password。如果什么都没搜到,这项才通过。

  3. 哪些智能体能拿到它?打开你用的每个 AI 应用里的已连接应用列表,看看哪些智能体能访问其中的每个应用。把一个应用连到 Claude,Duet 也会拿到它。如果每个都是你确实想授权的智能体,这项才通过。

  4. 连接时授了什么权?如果权限界面只列了你打算共享的文件夹或某几类文件,没有给整个硬盘或整个账号的权限,而且你之后还能找回这条权限并收回,这项就通过。如果只是粘贴一个网址,没有权限确认步骤,那就不通过。

  5. 密钥记在哪?去你的笔记、邮件、聊天记录、代码和浏览器历史里搜它。如果只存在密码管理器和应用设置里,这项就通过。

  6. 你能让它失效吗?如果能让密钥本身停止工作,这项就通过。把应用关掉,并不能阻止别处保存的那份副本继续使用。

我的情况仍然在第四项上没通过:没有权限确认步骤,只有一个秘密网址。现在密钥已经换成了新的,服务器也不会再把它写进日志。

Duet 又拿到了链接。这次链接打开的是我的笔记,遇到带密钥的文件会拒绝读取。

资料来源

查看原文