论文链接:PMPA: Persistent Memory Poisoning Attack | SkillSecurer | SkillAtlas 发表时间:2026年9月 机构:PMPA:复旦大学;SkillSecurer:独立团队;SkillAtlas:独立团队 领域标签:cs.CR / Agent Security
一、论文背景
harness 记忆机制的双刃剑:现代 Agent harness(OpenClaw、Claude Code 等)引入持久记忆——跨会话记住用户偏好、项目约定、已确认的事实。这极大提升了连续性体验,但也创造了新攻击面:如果恶意指令被写进持久记忆,它将在未来所有会话中持续生效。
skill 生态的信任缺口:Agent skill 正在形成共享生态(skills.sh 类市场),用户安装第三方 skill 如同安装浏览器扩展——但 skill 是自然语言+工具定义,其"恶意性"不体现在静态特征上,而体现在运行时与模型/上下文/工具的交互中(静态扫描天然不适配)。
安全研究的资源瓶颈:攻击研究(如 PMPA)产出私有报告,防御研究缺乏公共的对抗样本库——skill 安全缺少类似 CVE 的公共基础设施。SkillAtlas 补此空白。
二、论文定位和关联工作
| 研究脉络 | 代表工作 | 核心思想 | 与本文关键区别 |
|---|---|---|---|
| Agent 后门 | AgentPoison、BadAgent | 训练时/RAG 投毒 | PMPA 攻运行时记忆写入 |
| 提示注入防御 | AgentDojo、guard 系 | 输入内容过滤 | SkillSecurer 扫描 skill 包本身 |
| skill 检测 | NVIDIA SkillSpector | 静态+可选 LLM 扫描 | SkillSecurer 红蓝对抗+注入级评估 |
| 安全资源库 | CVE/MITRE ATT&CK | 漏洞共享基础设施 | SkillAtlas 的 skill 版 |
| 同日安全 | SWEADV、Enforcement Gap | 攻击与架构 | 互补拼图 |
定位结论:三篇构成 skill/记忆安全的攻-防-基建三件套:PMPA 证明攻击可行且强,SkillSecurer 提供系统化防御工具,SkillAtlas 提供评测资源底座——这是安全子领域走向成熟的标志形态。
三、问题定义
PMPA 的抽象问题:能否在不接触 Agent 框架本身的情况下,让恶意指令进入其持久记忆并在后续会话触发?——间接记忆写入攻击。约束:注入载体必须是良性外观的外部源(文档/PDF/图片)。
SkillSecurer 的抽象问题:如何系统化发现 skill 包中的提示注入漏洞?难点在评估——怎么知道"发现的是真漏洞":其方案是注入级评估(红队注入时记录精确修改,蓝队发现与记录对齐即可客观判分)。
SkillAtlas 的抽象问题:私有的 skill 安全报告如何转化为可检索、可复用的公共证据?关键洞察:攻击轨迹(而非攻击样本)才是可学习资源——轨迹包含模型决策、用户上下文、工具反馈的完整交互。
四、问题解法
PMPA 两阶段攻击:
- 注入阶段:恶意指令嵌入良性外部源(用户会正常阅读/引用的文档、PDF、图片),当用户把源交给 Agent 处理(“帮我总结这份 PDF”)时,指令诱导 Agent 把恶意内容写入持久记忆(伪装成"用户偏好"或"项目约定")。
- 触发阶段:后续会话中,与触发条件匹配的正常交互唤醒记忆中的恶意指令。跨会话攻击成功率(C-ASR)衡量持久化效果:OpenClaw 55.5%、Claude Code 81.7%。
SkillSecurer 三组件:红 Agent(生成 9 种威胁类型的上下文兼容注入,精确记录每次修改);蓝 Agent(分析完整 skill 包——描述+工具定义+触发逻辑,产出接地证据与补丁建议);验证器(受控场景下比对蓝队发现与红队注入记录——注入级客观评分)。流程:扫描→检测→定位→修补→验证。
SkillAtlas 资源转化管线:私有报告 bundle→审核→脱敏→结构化为可检索案例(每案例含轨迹、受影响 skill、风险类别)。规模:3014 案例、6589 轨迹、151131 步、233 受影响 skill、8 风险类别。衍生价值:轨迹接地标签把 pre-execution guard 精度提升到 0.770。
五、评估指标与实验证据
| 研究 | 指标 | 结果 | 证明什么 |
|---|---|---|---|
| PMPA | ISR(注入成功率) | OpenClaw 73.7% / Claude Code 66.9% | 写入记忆可行 |
| PMPA | C-ASR(跨会话触发) | OpenClaw 55.5% / Claude Code 81.7% | 持久化生效 |
| PMPA | 良性任务性能 | 保持 | 攻击隐蔽(不破坏正常功能) |
| PMPA | 防御评估 | 靶向提示防御降低但不消除 | 提示级防御不足 |
| SkillSecurer | 检测率 | 最佳后端唯一 100% 注入检测 | 红蓝对抗扫描的有效上限 |
| SkillSecurer | 真实生态 | skills.sh 热门 skill 17%+ 有潜在漏洞 | 真实威胁非理论 |
| SkillSecurer | 实测 | 触发实际事故 | 漏洞可利用性确认 |
| SkillAtlas | 反直觉发现 | 42.5% 成功案例首轮失败后才成功 | 单轮测试严重低估攻击面 |
| SkillAtlas | 资源效用 | guard 精度 0.770 | 轨迹标签的防御价值 |
证明力分析:PMPA 的"良性性能保持"是其杀伤力的隐藏证据——攻击不引起任何功能异常,用户完全无感;两平台(OpenClaw/Claude Code)的 ASR 差异(81.7% vs 55.5%)还揭示了不同 harness 记忆设计的风险梯度。SkillAtlas 的 42.5% 是对整个安全评测方法论的警告:如果近半成功攻击需要多轮交互才显形,所有单轮红队测试都在系统性低估漏洞。SkillSecurer 的 100% 是在"已知注入"的受控评测下的数字(红队注入的漏洞当然能被找到),其真实价值在 17% 的真实生态发现。
六、效果优势的根源解释
根源机制与证据链
- 记忆的信任不对称(PMPA 论文实验已支持):harness 把持久记忆当作"已确认的可信知识"(用户偏好级信任),但其写入路径(外部源处理时的提取)未经过同等审查——低保障写入+高信任读取的错位是 C-ASR 高的机制根源。
- 良性外观的载荷穿透(PMPA 与 SWEADV 同日互证):恶意内容以"合理偏好/约定"的语义形态写入(不是可检测的 payload),内容过滤失效——与 SWEADV 的合理化措辞共享同一穿透机制。
- 多轮攻击的累积效应(SkillAtlas 证据):42.5% 成功案例需多轮——机制上,攻击的成功常需"上下文铺垫+时机匹配",单轮测试的对抗预算不足以触发;这解释了为什么静态与单轮扫描(SkillSpector 21-35% recall)系统性漏检。
- 红蓝对抗的覆盖优势(SkillSecurer 论文实验已支持):静态扫描只看特征(21-35% recall),LLM 蓝队语义理解可达 98% recall——因为 skill 的恶意性是语义交互属性,只有语义级分析能看见。
相关工作检索与对照
| 研究 | 相似尝试 | 相关结论 | 与本文差异 | 影响 |
|---|---|---|---|---|
| AgentPoison | RAG/记忆投毒(训练时) | 后门有效 | PMPA 纯运行时 | 支持:记忆攻击面真实 |
| NVIDIA SkillSpector | 静态+LLM 扫描 | 静态 21-35% recall | 单轮扫描 | 对照:本文证明其不足 |
| AgentDojo | 注入评测框架 | 动态评测框架 | 通用注入非 skill | 支持:动态评测必要性 |
| SWEADV(同日) | 语义合理化攻击 | judge 失效 | APR 域 | 支持:语义穿透跨域 |
| Enforcement Gap(同日) | 检测-执行断裂 | 审计不等于阻止 | 架构层 | 补充:检测后的执行链 |
综合判断与未决问题
多研究共同支持:自然语言层的语义攻击穿透内容过滤(PMPA+SWEADV+SkillSecurer 三方);单轮/静态测试系统性低估攻击面(SkillAtlas 42.5% + SkillSpector recall)。仍属推测:SkillSecurer 的补丁有效性长期性——补丁后的 skill 是否会被进化的注入绕过(攻防是迭代博弈)。适用边界:PMPA 需要用户主动把恶意源交给 Agent(钓鱼前置);SkillAtlas 的案例库依赖研究者愿意提交(竞争性披露问题)。可能的失效条件:harness 引入"记忆写入审查层"(新组件检查每条写入的来源信任级)后 PMPA 类攻击的 ISR 会结构性下降——但写入审查的误报(正常偏好被拒)会成为新的体验成本。
七、必要知识反推
领域知识层:harness 记忆机制的实现(写入触发条件、记忆的组织与读取优先级——不懂实现就无法设计注入路径);skill 包的构成(描述/工具定义/触发逻辑的三元结构)。
方法论知识层:红蓝对抗评估学(注入级评分的客观性设计——记录修改并比对);多轮攻击的实验设计(轮次预算、触发条件的构造);资源库的脱敏与审核流程(隐私与效用的平衡)。
工程知识层:多模态载荷构造(PDF/图片中的指令隐藏);skills.sh 生态的爬取与合规分析;轨迹数据的结构化存储(15 万步的可检索索引)。
知识融合关键节点:PMPA 的核心融合是"把社会工程的’植入信任’技巧翻译为记忆写入攻击"——需要同时理解 harness 记忆的信任模型(哪些内容被当作偏好存下)与钓鱼攻击的载体设计。SkillAtlas 的融合是"漏洞数据库传统×轨迹数据科学"——CVE 存漏洞描述,skill 安全需要存交互轨迹(因为恶意性在交互中显现)。
八、通用性灵感
- 信任等级与写入保障必须匹配:被高信任读取的数据必须经同等保障的写入审查——低保障写入+高信任读取是普适漏洞模式(论文证据:PMPA 的 ISR 73.7%)。推广:企业知识库(任何人可写入的 wiki 被当作权威引用)、缓存系统(不可信源的缓存投毒)。
- 交互性风险需要多轮测试:只在交互序列中显现的风险(近半)无法被单次测试捕获(论文证据:42.5% 多轮成功)。推广:渗透测试的多阶段化、用户研究的纵向设计。
- 红蓝对抗的注入级客观评分:安全工具评测用"已知注入的找回率"替代主观判定(论文证据:SkillSecurer 验证器设计)。推广:任何检测系统的金标准构造(植入已知缺陷测召回)。
- 攻击轨迹是最优学习资源:安全知识的最佳载体不是"漏洞描述"而是"完整攻击轨迹"(论文证据:轨迹标签把 guard 精度提到 0.770)。推广:事故复盘的完整时间线(而非结论摘要)、debug 教学的复现环境。