Cross-Session 攻击正在绕过所有 AI 安全防线,Magnet 这篇论文想堵上这个洞

Magnet: Detecting Cross-Session AI Misuse Through Capability Accumulation

今天在 arXiv 上刷到一篇 2026 年 8 月的论文,两位作者 Natalie Isak 和 Matthew Dressman。读完摘要我缓了一下——这个攻击路径太朴素了,朴素到我们大概率已经漏了很久。

现在的主流 AI 滥用检测,大多数 SOTA 方案都盯着单轮对话,最多覆盖多轮同一次会话。它们假设攻击行为会在一次会话里露出马脚:提示词异常、工具调用越界、某个 response 踩了红线。这套逻辑在工作流单一的聊天场景里够用,但到了 Agent 场景,有一个致命盲区。

攻击者可以把一个有害目标拆碎。

假设我想干一件明确不该做的事。我不在一个会话里全说出来,而是分解成 10 个步骤,每个步骤单独开一个 agentic session。Session 1 让 Agent 查某个 API 的接口格式,Session 2 让它抓一份公开数据集,Session 3 让它写一段看起来完全无害的数据处理函数……每一段对话单独审查都是干净的。Agent 本身不记上下文——它不记上一次 session 里干了什么。但攻击者是记的。他手里攥着完整拼图,Agent 每次只帮他完成一小块。

论文里管这个叫 cross-session goal decomposition,实验结果很有意思:这种跨会话拆解法在某些场景下比单次多轮攻击更能 elicit 出有害能力。原因也好理解——单次会话里要绕过检测,提示词往往得别扭地包装,Agent 可能拒绝或降质执行。但每个 session 只拿到一个清爽的子任务,Agent 的正常能力反而释放得更充分。

怎么防?

每个 session 单独看都是清白的。10 个清白 session 拼在一起就是一条完整的攻击链。逐个 session 审查,每一把都是无害的螺丝刀、绝缘胶带和电线——只有看到最后被拼接起来的东西,才知道它们在干什么。

Magnet 的思路是换一个聚合层级。它按用户 ID 做跨会话的 capability 追踪,把每个 session 里产生的 artifact——model response、tool-call 结果、文件输出——全部拉到用户层做关联。单个 session 里这些东西看起来很正常,但放在一个用户的时间线上,它们开始呈现出功能上的递进关系:先拉数据、再写处理脚本、再调模型、再输出特定格式……组合起来指向一个明确的恶意目标。

作者用了「从干草堆里吸出针」这个比喻。Magnet 不一根一根翻稻草,它的名字就是干这个的:像磁铁一样把散落在不同 session、不同时间点上的相关 needle 吸到一起,聚成一个紧凑的证据包,交给检测器做最终裁决。这套做法的核心挑战也在这里——证据太稀疏,大多数 session 都是真良性,针的比例极低,聚合层的信噪比设计才是门槛。

这篇论文目前还是 arXiv preprint,源码和实验细节在 PDF 里。我没有跑过它的代码,但光这个 threat model 的识别本身就值得关注。Agent 产品越来越多,multi-agent orchestration、sessionless stateless 的设计也在普及,但安全检测层的思路大多还停留在「每段对话单独安检」的阶段。Magnet 相当于在安检口之外又加了一层情报关联系统——不管怎么分批入境,最终都在一张图上连得起来。

这种跨会话追踪也有自己的新问题。按用户 ID 聚合意味着需要长期维护用户粒度的证据状态,存储开销、隐私边界、误报累计都是待解决的工程债。论文里主要论证了检测有效性,离生产部署还有距离。

Agent 没有记忆,不代表攻击者没有。安全架构不能只防看得见的尖刀,还得防那些拆成零件的刀片。