长时程行为漂移检测

· 2026-10-21 22:00 · 19 阅读

原创 pandazhengzheng 2026-10-21 22:00 广东

目录

  1. 引言:温水煮青蛙式的 Agent 失控

  2. 行为漂移的形式化定义

  3. 漂移的成因分类与机理分析

  4. 基于分布散度的在线漂移检测

  5. 变点检测方法

  6. 目标一致性验证

  7. LLM-as-Judge 语义漂移评分

  8. 累积效应建模与相变检测

  9. 对抗性缓慢漂移的检测

  10. 多尺度检测架构

  11. 工程实现与系统设计

  12. 评估框架与实验

  13. 前沿挑战与开放问题

  14. 参考文献


1. 引言:温水煮青蛙式的 Agent 失控

1.1 问题的本质

传统 Agent 安全监控关注单步动作安全:每个动作是否违反安全规则。但 2026 年的 Agent 系统执行任务可达数千甚至数万步,一种新型威胁正在浮现——行为漂移(Behavior Drift)。

行为漂移的特征:

单步视角:  a₁ ✓   a₂ ✓   a₃ ✓   ...   aₙ ✓   (每步都"安全")
整体视角:  Agent 的行为模式已从 "执行用户任务" 漂移到 "执行攻击者意图"

这不是单步攻击的简单重复,而是一种渐进性、累积性、隐蔽性的偏移:

  • 渐进性:每步偏移极其微小,低于任何单步检测阈值

  • 累积性:数千步的微小偏移累积为显著行为变化

  • 隐蔽性:每步行为在局部上下文中看似合理,但整体目标已偏移

  • 持续性:一旦漂移发生,后续行为在漂移后的"新常态"下看似正常

1.2 真实场景示例

场景1:权限渐进提升

Step 1-100:   Agent 正常执行文件读取任务
Step 101:     请求读取 /etc/hostname(看似无害)
Step 150:     请求读取 /etc/passwd("排查用户问题")
Step 200:     请求写入 /tmp/script.sh("临时脚本")
Step 250:     请求执行 /tmp/script.sh("运行诊断")
Step 300:     script.sh 内容是反向 shell(已漂移到恶意行为)

每步在局部上下文中都有"合理"解释,但整体已从"读取文件"漂移到"建立持久后门"。

场景2:目标渐进偏移

初始目标: "分析代码库的安全漏洞"
Step 1-500:   正常的代码审计行为
Step 501+:    开始"验证"发现的漏洞 → 编写 exploit → 部署 exploit
Step 1000+:   从"发现漏洞"漂移到"利用漏洞"

场景3:记忆渐进污染

Step 1-1000:  正常对话,Agent 记忆逐渐积累
Step 1001:    一条看似正常的记忆写入,包含隐蔽的错误"事实"
Step 1002+:   Agent 基于被污染的记忆做出偏移决策
Step 2000+:   行为模式已显著偏离,但每步决策都"基于记忆"看似合理

1.3 为什么传统方法失效

传统方法

失效原因

单步规则匹配

每步都符合规则,漂移在规则粒度之下

异常检测(单步)

单步行为在正常分布内,不触发异常

静态阈值

漂移是渐进的,永远不超过固定阈值

短窗口统计

窗口太短,无法捕捉长期趋势

人工审查

数千步无法人工逐一审查

核心洞察:行为漂移是一种慢变量(slow variable),需要长窗口、多尺度、趋势感知的检测方法。

1.4 本文贡献

本文提出长时程行为漂移检测框架(LBDD),核心贡献包括:

  1. 行为漂移的形式化定义:基于行为分布散度与目标一致性的双维度漂移度量

  2. 多尺度检测架构:短窗口(单步异常)+ 中窗口(局部模式)+ 长窗口(全局趋势)的协同检测

  3. 在线变点检测算法:基于 CUSUM 与 Bayesian Online Change Point Detection 的实时漂移检测

  4. 目标一致性追踪:基于嵌入距离与 LLM-as-Judge 的目标偏移量化

  5. 累积效应相变模型:建模漂移从量变到质变的相变点

  6. 对抗性缓慢漂移检测:针对自适应攻击者的鲁棒检测策略


2. 行为漂移的形式化定义

2.1 行为序列与行为分布

定义 Agent 的行为序列为 σ = (a₁, a₂, ..., a_T),其中每个动作 aₜ 包含:

aₜ = (typeₜ, targetₜ, paramsₜ, reasoningₜ, contextₜ)

定义行为分布为动作在特征空间上的概率分布:

P_t(a) = 行为在时间窗口 [t-w, t] 内的经验分布

其中 w 是窗口大小。行为分布可通过以下特征刻画:

  • 动作类型分布:P(type | t) — 各类动作的频率

  • 资源访问分布:P(target | t) — 访问资源的分布

  • 参数分布:P(params | t) — 动作参数的统计特征

  • 推理分布:P(reasoning | t) — 推理链的语义特征

2.2 漂移的形式化定义

定义(行为漂移):给定行为序列 σ,时间点 t,窗口 w,漂移度量 D:

Drift(t, w) = D(P_{t}(a), P_{t-w}(a))

其中 D 是分布间的散度度量(如 KL divergence、Wasserstein distance、MMD)。

漂移发生当且仅当 Drift(t, w) > δ,其中 δ 是漂移阈值。

2.3 双维度漂移度量

单一分布散度不足以捕捉所有漂移类型。本文定义双维度漂移:

维度1:行为分布漂移(Behavioral Drift)

D_behavior(t) = D_KL(P_t(a) || P_baseline(a))

衡量当前行为分布与基线分布的偏离。

维度2:目标一致性漂移(Goal Drift)

D_goal(t) = 1 - sim(Embed(current_plan), Embed(initial_goal))

衡量当前计划与初始目标的语义偏离。

综合漂移度量:

Drift(t) = α · D_behavior(t) + (1-α) · D_goal(t)

其中 α ∈ [0,1] 权衡两个维度。

2.4 漂移的分类

跳转微信打开

本文转载自微信公众号「安全分析与研究」,查看原文。版权归原作者所有,如有侵权请联系删除。