网易首页 > 网易号 > 正文 申请入驻

周一读的网页,周二把Agent带偏了

0
分享至

周一,Agent抓了一个网页,把内容存进 notes.md。周二,你开了一个新会话,让它看看昨天的笔记。它照做了,然后发了一条公开评论,里面是攻击者的链接。


整个过程里,ADTL 一次都没拦。周二的会话根本没碰过那个网页,而读取自己项目里的文件,在它看来是可信的。每一步单看都没问题。

会话标签会随会话结束而消失,但数据不会。这就是 ADTL v0.4 要补的洞。

问题出在"读"和"写"的组合上

AI Agent 会读大量不该信任的东西:陌生人写的 GitHub issue、网页、邮件。而同一个 Agent 通常还握着能把数据发出去的工具有:发评论、发邮件、抓 URL。

这个组合本身就是问题。2025 年 Invariant Labs 在 GitHub 官方 MCP 服务器上演示过:一个公开 issue 里藏着隐藏指令,让 Agent 去读私有仓库,再把内容当评论发出去。Agent 照做了。

你可以告诉模型"忽略工具返回结果里的指令",好的模型通常也会照做。但"通常"不是一种安全属性。作者想要的是不依赖模型自己发现攻击的机制。

给所有东西打标签,动手前先检查

ADTL 是一个 MCP 网关。你的 Agent(Claude Code、Cursor,任何说 MCP 的)跟 ADTL 对话,ADTL 再跟你真正的 MCP 服务器对话。

每个返回的结果都会被打上两部分标签:

  • 完整性(integrity):这个东西能不能影响 Agent 的行为?分为 trusted、unknown、untrusted
  • 机密性(confidentiality):谁可以看?分为 public、private、secret

会话会维护一个只收紧不放松的标签。读了一个 untrusted 的 issue,这个会话在结束前都是 untrusted。读了一个 private 文件,它就是 private。

然后每次工具调用前,策略会拿会话标签和工具的数据出口做比对。放到 GitHub 那个攻击里:Agent 读了 issue(untrusted),读了私有文件(private),然后试图 post_comment(public)。这一步被拦下,不管模型当时在想什么。

"询问"可以给你的手机推一条带 Allow / Deny 按钮的通知。对于 Claude Code 的内置工具,它则显示 Claude Code 自己的权限提示。

标签用的是 MCP 的 draft trust-annotations 格式,检查逻辑跑在 SEP-2624 草案的拦截器上。作者不想在已经有人在做的事情上另造一套格式。

先补上的缺口:内置工具

网关只能看到 MCP 流量。Claude Code 还有自己的工具:WebFetch、Bash、Read。用 WebFetch 抓的网页根本不经过 ADTL,也就永远不会污染会话。

所以 v0.3.1 加了一个 Claude Code hook,在每次工具调用前后运行,给输出打标签,跑同一套策略。网关和 hook 共享同一个会话标签,所以一次 WebFetch 会污染会话,让通过网关的 GitHub 发帖被拦,反过来也一样。

如果 ADTL 会放行某个调用,hook 就保持沉默,你原本的 Claude Code 权限照常生效。ADTL 从不自己批准任何事。

账本:标签跟着文本走,不跟着进程走

v0.4 加了一个标签账本。思路很简单:标签应该跟着文本走,而不是跟着进程走。

当一个读过 untrusted 或 private 数据的会话把文本发到任何地方——写文件、存进记忆服务器、交给子 Agent、甚至把一行 shell 命令追加进文件——ADTL 会对这段文本做哈希,把哈希和会话标签一起存下来。

当任何结果返回时,不管在哪个会话,ADTL 用同样的方式哈希再查一次。如果匹配上,旧的标签也跟着回来。

它会对整段文本、每个段落、每一行做哈希(大小写和空白做归一化,跳过像 } 这样的短行),所以一段被复制进更大文件的文字仍然能匹配。如果 Agent 用自己的话改写了,也没关系,因为被污染会话写出的任何东西都带着标签被记录了下来。

干净的会话什么都不记录,所以账本保持很小,不会把你整个代码库都标上。

它是一个 SQLite 文件(~/.adtl/ledger.db),用的是 Node 内置的 node:sqlite。条目做了哈希链,所以 adtl-gateway ledger verify 能看出有没有人改过或删过条目。如果你检查过某个文件、想重新信任它,可以清掉它的标签。

hook 会在 Agent 自己执行这条命令前先问你,也不会让 Agent 直接编辑账本文件。

有一个 demo 会把真实流程跑两遍,一遍不带账本,一遍带:不带账本时,周二读 notes.md 返回 trusted,链接被发了出去;带上之后,这次读取返回 untrusted,标注由会话 mon 写入,发帖被拦下。

它做不到什么

作者更愿意把话说清楚,而不是让人自己踩坑:

  • 匹配靠内容哈希。如果有人手工改写文本,或者是二进制,或者 MCP 服务器返回的是 base64 编码,就匹配不上。
  • 账本是哈希链但还没签名。有 shell 权限的 Agent 可以重建整个文件,verify 抓不到。hook 让它更难,但不是不可能。
  • hook 会拿 shell 命令对照策略检查,但命令一旦被放行,shell 想干什么都行。留个沙箱。ADTL 是一层,不是唯一一层。
  • 它只认识你描述过的工具。未知工具走严格默认,安全,但意味着在你写规则之前会有更多"询问"提示。

接下来要做的是:带签名的会话回执,一份防篡改的调用摘要,让你能拿 Agent 声称做过的事和实际发生的事对照;把 GitHub demo 跑在真实的 github-mcp-server 上,而不只是作者自己写的假服务器;以及跨 Agent 传递标签(A2A),配合签名的账本条目。

作者也把"询问人类"这个想法作为 spec PR 提给了 MCP Interceptors 工作组,目前还在审。

需要说明的是,这是一个个人开源项目,实验性质,建立在仍是草案的 MCP 提案上。别把它放到任何重要的东西前面。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
俄罗斯专家把话挑明了:如果中国铁了心要对日本动手,那就只有两个选择,要么不出手,要么一击毙命!

俄罗斯专家把话挑明了:如果中国铁了心要对日本动手,那就只有两个选择,要么不出手,要么一击毙命!

回京历史梦
2026-10-11 16:35:06
别再同情她了!被教练性侵27次,却在奥运赛场上把队友撞出赛道

别再同情她了!被教练性侵27次,却在奥运赛场上把队友撞出赛道

小欣欣聊体育
2026-10-19 19:03:00
两性关系:别不信,寿命长的男人,大多都有这12个好习惯

两性关系:别不信,寿命长的男人,大多都有这12个好习惯

牛锅巴小钒
2026-10-19 18:19:29
过火面积等于3个东京!日企高管引燃边境草原大火,日媒集体沉默

过火面积等于3个东京!日企高管引燃边境草原大火,日媒集体沉默

行者聊官
2026-10-18 09:23:21
高市早苗表示,她可以赴华参加APEC会议,但是有一个前提条件!

高市早苗表示,她可以赴华参加APEC会议,但是有一个前提条件!

故事终将光明磊落
2026-10-19 09:42:41
官方:武网冠军赫瓦林斯卡因左腿伤势退出宁波网球公开赛

官方:武网冠军赫瓦林斯卡因左腿伤势退出宁波网球公开赛

懂球帝
2026-10-19 16:15:44
盘后利好!央行、证监会重磅,亚太股市反弹,anthropic、马斯克都开始捐股份了

盘后利好!央行、证监会重磅,亚太股市反弹,anthropic、马斯克都开始捐股份了

看财经show
2026-10-19 18:08:37
936球427助,千球倒计时64:全世界都在等,只有梅西自己不着急

936球427助,千球倒计时64:全世界都在等,只有梅西自己不着急

生活新鲜市
2026-10-18 20:11:28
宏远速递!陈老板正式上诉,亚帅透露输球原因,胡明轩深夜发声!

宏远速递!陈老板正式上诉,亚帅透露输球原因,胡明轩深夜发声!

体坛卡卡说
2026-10-19 19:22:22
萨里:我今天才知道,原来球员是可以对裁判说“滚蛋”的

萨里:我今天才知道,原来球员是可以对裁判说“滚蛋”的

懂球帝
2026-10-19 03:33:20
儿童心脏病每百人1例,基因疗法新突破

儿童心脏病每百人1例,基因疗法新突破

娱圈观察员
2026-10-18 05:23:49
被传上午被免职,下午被带走,登 24 年春晚却忽然消失的黄宏今咋样

被传上午被免职,下午被带走,登 24 年春晚却忽然消失的黄宏今咋样

星娱叨叨社
2026-10-08 14:52:34
“通便冠军”来了!隔天吃一次,清热去火,缓解便秘一身轻松!

“通便冠军”来了!隔天吃一次,清热去火,缓解便秘一身轻松!

荷兰豆爱健康
2026-10-19 03:50:52
45岁仍拍三级片还债,36E巨乳,被称香港妖女,60岁直播翻身破亿

45岁仍拍三级片还债,36E巨乳,被称香港妖女,60岁直播翻身破亿

轩逸阿II
2026-10-17 07:39:17
彻底不藏了?马英九曾言:我不希望台湾成为第二个香港!

彻底不藏了?马英九曾言:我不希望台湾成为第二个香港!

原来仙女不讲理
2026-10-19 14:18:22
江门市医疗保障局党组书记简锦聪主动投案

江门市医疗保障局党组书记简锦聪主动投案

南方都市报
2026-10-19 18:18:32
踢到铁板!披旭日旗留学生被处罚,面临3窘境,军媒批评字字诛心

踢到铁板!披旭日旗留学生被处罚,面临3窘境,军媒批评字字诛心

安珈使者啊
2026-10-19 14:28:57
图灵奖得主称Roadster放屁车!马斯克回怼:我朝你放屁

图灵奖得主称Roadster放屁车!马斯克回怼:我朝你放屁

快科技
2026-10-19 15:53:12
南京籍留学生披旭日旗后续:过往行为更恶劣,校方立案,使馆介入

南京籍留学生披旭日旗后续:过往行为更恶劣,校方立案,使馆介入

牛锅巴小钒
2026-10-19 09:08:27
体制内外退休金的巨大差距引起老百姓的很大不满!

体制内外退休金的巨大差距引起老百姓的很大不满!

逍遥论经
2026-10-08 14:57:40
2026-10-19 20:00:49
全栈遛狗员
全栈遛狗员
白天跟需求对线,晚上在小区遛狗。
234文章数 122关注度
往期回顾 全部

科技要闻

王晟:近千亿资金涌入后 具身智能开始退烧

头条要闻

女子生龙凤胎起诉已婚董事长确认亲子关系 遭男方起诉

头条要闻

女子生龙凤胎起诉已婚董事长确认亲子关系 遭男方起诉

体育要闻

从NBA退役10年后,他真去警局上班了

娱乐要闻

奚梦瑶回应重返维密:还是很开心的

财经要闻

黄奇帆之子往事:从广微系到魏桥的跳跃

汽车要闻

不知道二代海鸥多好玩? 上赛道跑两圈 很过瘾的

态度原创

旅游
健康
教育
本地
军事航空

旅游要闻

“这点粉丝报什么名”网友报名参选景区体验官被怼懵

看着很健康的人,怎么会突然猝死?

教育要闻

北京市中小学校园安全知识竞赛收官,获奖名单来了——

本地新闻

因新荣记出圈,这座浙东小城才是吃货天堂

军事要闻

泽连斯基:若乌“被要求”举行战时选举 他将竞选连任

无障碍浏览 进入关怀版