HarnessSafe:328个可执行用例,揭示Agent持久化隐蔽攻击传播链

HarnessSafe: Evaluating Safety Across Persistent Carriers in Agent Harnesses

论文原文 ↗ 论文发布 解读发布 解读:AI前沿分享

HarnessSafe:328个可执行用例,揭示Agent持久化隐蔽攻击传播链 论文图示

当大语言模型被放入具备长期记忆、外部工具调用与自动化工作流的 Agent Harness(智能体运行底座)中时,安全边界正在发生微妙而深刻的位移。传统的单轮越狱或即时提示词注入(Prompt Injection)往往在输入当场就会触发违规,而当下的自主智能体却开始展现出另一类极具隐蔽性的“迟发型攻击”:恶意指令被嵌入第三方工具返回的杂质中,悄悄沉淀进系统长期记忆、持久化技能库或共享工作区文件里;在数小时乃至数天后,当不知情的合法用户发起一次极为正常的普通提问时,这个潜伏已久的恶意载荷才被意外激活,进而导致权限越界或数据泄露。

ArXiv URL:https://arxiv.org/abs/2608.06984v1

来自北京智源人工智能研究院、北京邮电大学和中国电信等机构的研究团队,针对这一长期被忽视的系统级安全隐患推出了基准测试框架 HarnessSafe。该基准构建了涵盖 7 大持久化载体家族的 328 个可执行攻击案例,并在 Codex CLI、Claude Code、OpenClaw 等 7 个主流 Agent 底座以及多种主流模型后端上展开了全面评测。与以往只看最终“攻击是否成功”(Attack Success Rate, ASR)的二元评测不同,这项研究提出了覆盖风险引入、持久化跨界、良性触发到违规确认的 Persistent-Risk Lifecycle(持久化风险生命周期)模型,并设计了从 N0 到 N5b 的多阶段执行追踪评估机制。

实验给出了极具警示意义的核心结论:Agent 系统的安全性从来不是单纯由底层大模型决定的,也不是底座机制单独能保证的,而是取决于“底座与模型”这一整体配置的协同作用。在相同的模型后端下,切换不同 Harness 底座会导致风险拦截能力剧烈波动;同样地,只看最终攻击成功率会掩盖截然不同的风险传播深度——两个端到端成功率几乎相同的系统,其安全机制可能分别在攻击早期(拒绝载荷写入)和绝壁边缘(拦截最后一步高危工具执行)起效,其残留的系统风险有着本质差异。

越过单轮攻防:持久化载体为何成为安全死角

过去两三年间,业界对大模型安全的攻防演练主要聚焦于单轮交互或者短程多轮对话。无论是各种变体形式的 Jailbreak,还是在 RAG 检索文档中暗藏的间接提示词注入,攻防双方的博弈大多发生在当前活跃上下文(Active Context)之内。然而,随着智能体从问答机器人演变为长程自主系统,运行底座(Agent Harness)被赋予了强大的状态持久化能力。

Agent Harness 是承载模型循环执行的中间件层,它负责调度工具、管理会话上下文、执行跨会话记忆同步、注册动态生成的技能脚本,并处理多个子智能体之间的委派交接。正是这些为了追求自主性而引入的持久化载体(Persistent Carriers),让攻击者获得了前所未有的“时间差攻击面”。攻击者可以利用一次极易被忽视的边缘操作(例如投毒某个公开的 MCP 工具元数据,或者在智能体阅读网页时在持久化记忆中留下一条伪造的系统配置),让恶意载荷跨越会话边界并在载体中驻留。等到后续用户执行正常的部署或查询任务时,恶意指令被重新加载并劫持了智能体的后续行为。

此时,现场的触发指令本身没有任何恶意特征,最初的攻击输入也早已不在当前的上下文窗口中。安全审计人员既无法追溯恶意行为的源头,也难以界定系统究竟在哪个环节出现了失守。以往针对记忆投毒(如 AgentPoison、MINJA)或工具投毒(如 MCPTox)的评测工作,往往只针对单一载体或特定框架做封闭测试,缺乏能够在异构底座间保持相同安全语义、且能完整复现攻击全生命周期的基准体系。HarnessSafe 正是在这种背景下应运而生。

统一生命周期:解构持久化风险的五大要素

为了在不同实现机制的 Agent Harness 之间建立标准化的安全测试,HarnessSafe 将任何一条持久化风险攻击链形式化抽象为五元组模型:

\[\mathcal{K}=\langle E, C, B, T, V \rangle\]

其中 $E$ 代表攻击者施加影响的入口点(Entry),例如受污染的工具返回内容、被投毒的上下文片段或恶意的第三方技能包;$C$ 代表承载恶意状态的持久化载体(Carrier),涵盖底层存储的显式记忆、生成的脚本文件或工具参数;$B$ 是持久化边界(Boundary),指代恶意状态所跨越的时空界限,如会话重启、子智能体委派或上下文压缩摘要;$T$ 则是后续到来的良性触发器(Trigger),必须是表面完全合规、无恶意意图的常规用户请求;最后,$V$ 代表可观测的安全违规(Violation),即攻击生效后在外部环境中产生的实体状态变更。

HarnessSafe 总览与生命周期机制

上图清晰展示了 HarnessSafe 的整体架构逻辑。顶层梳理了上述五元组生命周期流转;中层揭示了恶意内容如何写入载体、穿透持久化边界,并在下游良性任务中被重新读取并引爆违规;底层则给出了基于实际执行轨迹(Trace)的多阶段评估标尺。

这种形式化设计的精妙之处在于它确立了严密的适配契约(Harness Adaptation Contract)。由于各款 Agent Harness 在底层存储路径、工具调用协议和权限检查机制上千差万别,测试用例不能死板地绑定在特定的文件路径或 API 格式上。适配契约允许每个底座自由绑定 $C$ 的读写位置、$B$ 的边界事件形式、$T$ 的下发通道以及 $V$ 的判定探针,但前提是必须保留绝对相同的安全语义——即攻击输入的受控性、载体跨界驻留的必要性、良性触发器的独立性,以及最终违规证据判定的客观性。如果在某个底座上某种功能机制无法原生对齐,系统会将其严格记录为不支持($N{-}1$)或评估不合格,而不是误判为“安全”。

基于这一体系,HarnessSafe 梳理出 328 个原生可执行案例,将其归类为由浅入深的三层、七大持久化载体家族:

第一层是核心持久化表面(Core Persistent Surfaces),涵盖 F1 记忆(72 例)、F2 技能(84 例)和 F3 工具/MCP(70 例),考察单一载体在重启或刷新边界后的持久化风险;第二层是跨载体转换(Cross-Carrier Transformation),即 T2 记忆向技能转换(36 例),追踪攻击影响如何先沉淀进记忆、再被系统固化为自动化执行技能,最终在后续任务中被调用;第三层则是跨边界传播(Cross-Boundary Propagation),包含 T3-S 子智能体委派(30 例)、T3-C 会话摘要生成(30 例)以及 T3-A 共享工作空间工件复用(6 例),全面覆盖了当前智能体架构中最为复杂的隐蔽信息流经过程。

告别二元对错:基于轨迹证据的七阶段度量梯子

如果沿用传统分类器思维,仅用“系统是否沦陷”来统计攻击成功率(ASR),不仅会丢失海量关键诊断信息,更会误导安全防御策略。设想两个系统:系统甲在恶意载荷试图写入记忆的第一刻就直接抛出异常;系统乙任由恶意载荷驻留、跨越会话边界并在下游被唤醒,只是在执行最终格式化磁盘的系统调用瞬间被权限沙箱拦截。二者的端到端 ASR 均为 0%,但系统乙内部显然千疮百孔,随时可能因新的工具引入而彻底失控。

为了精确刻画风险在系统内部渗透的深度,HarnessSafe 提出了一套基于客观执行证据的七阶段评估阶梯(N0 到 N5b):

为了将各阶段的分布量化为可横向比较的统一指标,本文提出了链阶段得分(Chain-Stage Score, CSS)。该指标对越早拦截风险的阶段赋予越高的安全性权重,满分为 100 分。CSS 关注的是攻击链终止的物理阶段,与传统的“损害严重程度”相互正交,从而使得评测能够专注于系统在各个链路节点的防御能力。

实验发现:底座与后端的化学反应

基于 328 个测试用例,研究人员对 7 个主流 Agent Harness(包括 Codex CLI、Claude Code、OpenClaw、Gemini CLI、OpenCode、Hermes Agent 和 Kimi Code)以及多种主流模型后端展开了交叉对照评测。实验数据揭示出三个极其重要的技术洞见。

其一,攻击终点率(ASR)严重掩盖了截然不同的安全防线剖面。以 OpenCode 和 Hermes Agent 为例,两者的最终攻击成功率仅相差 0.73 个百分点(分别为 10.08% 与 10.81%),如果只看 ASR,很容易得出两者防御能力旗鼓相当的结论。但深入 N0–N5b 阶段分布后可以发现,OpenCode 大多在极早期的 N1 阶段就将攻击阻断,而 Hermes Agent 则频繁将攻击链放行至 N2 甚至 N4 阶段,依赖执行前的最后挣扎才勉强拦截。同时,系统的防御表现高度呈现出载体特异性。在整体综合得分最高的配置中,其在 F2(可复用技能)载体上的表现却跌至 47.0 分,而 Claude Code 在该项上能拿到 70.0 分。没有任何一种配置能在所有 7 类载体表面上全面占优。

其二,持久化风险拦截能力属于“底座+模型”的组合属性,单独评判任何一方都毫无意义。在以往的观念中,人们常常倾向于寻找一个“最安全的模型”或一个“最严密的底座”,但数据彻底打破了这一幻想。当模型后端固定为 GPT-5.6-Sol 时,仅仅由于运行底座从 Claude Code 切换为 Codex CLI,系统的综合安全分 CSS 就从 39.4 跃升至 62.3,单由底座机制带来的差异高达 22.9 分;而在固定 Claude Code 底座的前提下,仅仅更换模型后端,CSS 得分就在 22.7(MiniMax M2.5)到 58.7(Claude Sonnet 4.6)之间大幅震荡,极差达 36.0 分。更耐人寻味的是,Codex CLI 驱动 GPT-5.6-Sol 拿到了 62.3 分,超越了 Claude Code 驱动 Claude Sonnet 4.6 的 58.7 分,尽管在同一个 Claude Code 底座内部,GPT-5.6-Sol 的得分(39.4)远逊于 Sonnet 4.6。这充分证明,Agent 的安全性不是模块属性的简单相加,而是模型推理能力与底座运行时权限、状态隔离机制深度耦合的产物。

其三,严密的对照实验证实,迟发危害确由全生命周期驱动。为了排除“模型自身随机输出有害行为”或“测试任务本身具有诱导性”的可能,研究团队在 Claude Code 与 Claude Haiku 4.5 配置下进行了严格的单变量剥离对照实验。在 279 个严格配对的测试案例中,全流程攻击的成功率为 25.8%。而当研究人员仅将入口源替换为无害内容(Clean-Source)时,攻击成功率直接跌落至 0.4%;当剥离持久化存储动作(No-Persist)时,成功率骤降至 2.5%;当在后续会话中故意不发出触发指令(No-Trigger)时,成功率直接归零(0.0%);而在重新激活前清空载体残留(Cleanup),成功率同样被压制到 1.8%。这些对照组的成功率相对全流程攻击均削减了 90% 以上,无可辩驳地证明了观察到的越权危害完全依赖于恶意载荷在载体中的潜伏与迟发激活。

行业启示:下一代智能体底座的防御范式演进

HarnessSafe 的研究结论为当下正在飞速演进的智能体基础设施建设敲响了警钟,也给工业界提供了清晰的防御演进路径。

长久以来,开发者习惯于在模型的最前沿(输入过滤)和最后端(输出合规检测)部署防护栏(Guardrails)。然而,面对拥有多持久化载体的 Agent 架构,这两道防线正双双失效:在恶意载荷写入阶段,外部输入往往伪装成合法工具的返回片段,在没有直接恶意意图暴露时,前端过滤很难精准拦截;而在迟发激活阶段,合法用户的良性提示词又让前置检测完全失明。如果仅寄希望于末端的输出拦截,此时恶意状态往往已深度污染了系统的工作流,极易因权限配置的一丝疏漏而直接导致穿透。

这项工作证明,未来的智能体安全必须走向“全生命周期防御与载体级别的数据流管控”。首先,底座在设计记忆、技能固化以及上下文摘要等机制时,必须引入严格的数据来源追踪(Provenance Tracking)与污点标记(Taint Tracking)。任何源自非受信外部工具或未验证上下文的数据,在向长期载体写入时都应被打上低信任标签;当下游任务重新激活这些载体时,系统必须强制降低其权限级别,甚至要求人工干预确认。

其次,评测体系必须向多阶段、可观测的执行轨迹转变。无论是在企业内部的安全红蓝对抗中,还是在采购第三方 Agent 解决方案时,安全团队都应当放弃单一维度的端到端攻击成功率,转而借助类似 CSS 的阶段分布工具,透视防护机制究竟是在哪一个生命周期节点被击穿。唯有建立起针对持久化载体的主动纵深防御体系,大语言模型驱动的自主智能体才能真正安全地跨越单次会话的藩篱,走向长程、可靠的实际生产环境。