长时程行为漂移检测
原创 pandazhengzheng 2026-10-21 22:00 广东

目录
引言:温水煮青蛙式的 Agent 失控
行为漂移的形式化定义
漂移的成因分类与机理分析
基于分布散度的在线漂移检测
变点检测方法
目标一致性验证
LLM-as-Judge 语义漂移评分
累积效应建模与相变检测
对抗性缓慢漂移的检测
多尺度检测架构
工程实现与系统设计
评估框架与实验
前沿挑战与开放问题
参考文献
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),核心贡献包括:
行为漂移的形式化定义:基于行为分布散度与目标一致性的双维度漂移度量
多尺度检测架构:短窗口(单步异常)+ 中窗口(局部模式)+ 长窗口(全局趋势)的协同检测
在线变点检测算法:基于 CUSUM 与 Bayesian Online Change Point Detection 的实时漂移检测
目标一致性追踪:基于嵌入距离与 LLM-as-Judge 的目标偏移量化
累积效应相变模型:建模漂移从量变到质变的相变点
对抗性缓慢漂移检测:针对自适应攻击者的鲁棒检测策略
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 漂移的分类
本文转载自微信公众号「安全分析与研究」,查看原文。版权归原作者所有,如有侵权请联系删除。