SMSR: Signed Memory with Smoothed Retrieval --- Certified Defence Against Runtime Memory Poisoning (2026)
论文重点
本文提出了首个针对多会话内存投毒(MSMP)攻击的认证防御框架SMSR,通过HMAC-SHA256写时溯源标记与随机化内存消融+基于裁决的多数投票两个组件的协同,在15个企业场景共3150次重复试验中,将未签名攻击的成功率从93--100%降至0%,并将认证攻击者的成功率控制在理论证书边界以下(单次注入下8.0%,95% CI 5.8%, 10.9%)。
核心研究内容
问题定义
检索增强生成(RAG)智能体正越来越多地采用跨会话持久化内存------系统在用户会话之间持续积累交互记录、检索文档和推断事实。这种设计创造了一个全新的攻击面:攻击者只需通过正常交互渠道(作为员工、客户或通过被入侵的上游工具)注入精心构造的记忆,一旦这些记忆被检索,就会影响未来所有用户的响应------整个过程无需触碰模型权重或应用程序代码。
作者将这种攻击命名为多会话内存投毒(MSMP) 。已有攻击如MINJA实现了约76--99%的攻击成功率,AgentPoison在23000条记录的数据库中仅需一条投毒记录即可达到62%的端到端攻击成功率。然而,现有防御方案均无法提供形式化安全保证:
- 静态语料防御(RobustRAG、ReliabilityRAG) 假设知识库是固定的、在查询前已离线索引完成,无法应对动态内存写入场景。
- 启发式过滤器(关键词黑名单、困惑度检测、语义异常检测) 可以被流畅的企业风格文本完全绕过。
创新方法
SMSR采用双组件架构:
组件1:HMAC-SHA256写时溯源标记
每个合法内存写入必须经过受信任的服务端签名预言机,使用服务器密钥K对内容生成HMAC-SHA256签名:τᵢ = HMAC_K(contentᵢ ∥ session_idᵢ ∥ timestampᵢ)。检索时,只有签名有效的条目才能进入候选池。这使得未签名攻击者(无论内容如何精心构造)都无法注入任何被系统接受的记忆。
组件2:随机化内存消融 + 基于裁决的多数投票
对于能够通过组件1的已认证攻击者(即合法用户),组件2提供第二层防御:
- 过检索(over-fetch) :对查询q检索top-m(m > k)个已验证候选。
- 随机消融:进行n_runs次独立试验,每次从m个候选中无放回均匀采样k个。
- 裁决聚合 :每次运行LLM生成响应后,由评判模型(LLM Judge)给出裁决标签(correct / malicious / neither),最终按裁决标签的多数投票决定输出。
关键理论贡献:
- 不可能性定理 :证明任何仅依赖检索时内容判断的、无写时溯源的过滤器,都无法对自适应MSMP攻击者实现非平凡的安全证书。这意味着溯源机制是必要的。
- 超几何证书:为组件2推导了形式化的安全边界------当候选池中有t′个对抗性条目时,多数裁决为恶意的概率不超过δ(t′, m, k, n_runs)。
- 一致少数效应(CME) :形式化描述了字符串级多数投票的漏洞------攻击者因响应文本高度一致而获胜,即使它在数值上是少数。基于裁决的聚合天然免疫此效应。
研究成果
实验设置:模拟Nexora Corp企业RAG智能体,覆盖15个企业知识场景(财务政策、合规、IT安全、HR、采购、事件响应),内存库预置10条已签名合法策略条目。主要参数:m=20,k=5,n_runs=5。
核心发现:
-
组件1对未签名攻击完全有效:在所有未签名注入变体(直接注入、泛洪变体、微妙变体)以及专门为绕过启发式过滤器而设计的绕过攻击中,组件1将ASR从93--100%降至0%。启发式防御在绕过攻击上完全失效(100% ASR)。
-
组件2对已认证攻击提供可证明边界:在生产规模存储(m=20,t=1)下,ASR从93--100%降至8.0%(95% CI 5.8%, 10.9%, n=450),低于定理2的最坏情况边界δ=10.4%。若将n_runs增至7,边界可收紧至7.1%。
-
证书紧致性验证:在小存储评估(m′=10+t)中,t=1的直接注入ASR为37.8%(95% CI 33.4%, 42.3%),低于边界δ=41.5%。泛洪变体的ASR位于边界附近(CI跨越δ),证明证书是紧致的。
-
评判模型可靠性:Haiku与Sonnet之间的评判一致性达到κ=0.955(n=84),97.6%原始一致率。
-
端到端查询-only攻击:在智能体自身通过查询写入投毒(而非预置种子)的场景中,SMSR将ASR从65.3%降至5.3%(n=150,非重叠CI)。
-
干净查询效用:组件1下为90%,组合防御下为85%。
实际落地应用的可能性
SMSR的设计紧密贴合实际企业部署约束:
- 兼容现有RAG架构:只需在写入路径增加签名预言机,在查询路径增加消融与聚合层,无需修改LLM本身。
- 无需重新训练:所有防御机制在推理时生效,不涉及模型微调或重新训练。
- 密钥管理:服务器密钥K应存储在密钥管理器或HSM中,绝不在应用代码中存储。
- 代码与数据已开源:https://github.com/tarun-ks/smsr
技术细节
SMSR完整协议
算法1 SMSR:带平滑检索的签名记忆
输入:查询 q,存储 M,密钥 K,参数 m, k, n_runs,评判模型 J
// 组件1:检索已验证候选
C ← RETRIEVE(q, {m_i ∈ M : VERIFY_K(m_i) = 1}, m)
// 组件2:随机化消融 + 裁决聚合
V ← []
for j = 1 to n_runs do
C^(j) ← 从 C 中无放回采样 k 个
r^(j) ← LLM(q, C^(j))
V.append(J(r^(j), q), r^(j))
ˆv ← arg max_v Σ_j 1[V_j.verdict = v]
返回第一个 verdict = ˆv 的响应 r^(j)
组件2证书公式
设M_verified包含N个条目,其中至多t′个为对抗性条目。定义:
p clean = ( m − t ′ k ) ( m k ) p_{\text{clean}} = \frac{\binom{m - t'}{k}}{\binom{m}{k}} pclean=(km)(km−t′)
即单次消融采样中不包含任何对抗性条目的概率。则多数裁决为恶意的概率至多为:
δ ( t ′ , m , k , n runs ) = ∑ i = ⌈ n runs / 2 ⌉ n runs ( n runs i ) ( 1 − p clean ) i ⋅ p clean n runs − i \delta(t', m, k, n_{\text{runs}}) = \sum_{i=\lceil n_{\text{runs}}/2 \rceil}^{n_{\text{runs}}} \binom{n_{\text{runs}}}{i} (1 - p_{\text{clean}})^i \cdot p_{\text{clean}}^{n_{\text{runs}} - i} δ(t′,m,k,nruns)=i=⌈nruns/2⌉∑nruns(inruns)(1−pclean)i⋅pcleannruns−i
直观理解:攻击者要赢得多数投票,必须有超过一半的消融运行包含对抗性内容,且LLM在每次被污染的运行中都产生恶意响应。证书通过将后者概率上界设为1(最坏情况),给出了一个保守但可证明的安全边界。
一致少数效应(CME)量化
字符串级多数投票的漏洞在于:攻击者所有n_adv次运行产生文本相似的响应(恶意事实声明具体且可重复),而合法运行的n_clean次响应产生各不相同的释义("我不知道"的表达方式多种多样)。
若合法响应来自最小熵为H_clean(比特)的分布,则任一合法字符串出现超过一次的概率为O(n_clean²·2^{−H_clean})。对于自然语言响应,H_clean很大,因此攻击者即使只有1次运行,也可能成为唯一最高频字符串。
实证数据:在单次n=15的运行中,字符串级投票产生93.3%的ASR,而基于裁决的聚合(免疫CME)在同一组消融运行上仅产生13.3%的ASR。
研究设定
硬件与软件配置
| 项目 | 规格 |
|---|---|
| LLM(智能体+评判) | Claude Haiku 4.5(主实验);Claude Sonnet 4.6(跨模型泛化验证) |
| 嵌入模型 | 标准RAG嵌入模型(攻击者已知) |
| 签名算法 | HMAC-SHA256,输出长度256比特 |
| 密钥存储 | 服务器端密钥管理器或HSM |
| 评估规模 | 15场景 × 多种配置 × 30次重复 = 3150次重复试验 |
| 生产规模试验 | 450次独立试验 |
攻击模型
两类攻击者:
- 未签名攻击者A_U:具有对M的直接写入权限(通过数据库 misconfiguration、SQL注入或被盗备份),可插入无任何认证凭证的条目。无法修改或删除现有条目。
- 已认证攻击者A_P:系统的合法用户,可通过正常智能体交互路径写入条目。每次攻击活动最多注入t个精心构造的条目。不知道服务端密钥K。
两类攻击者均知道嵌入模型、智能体架构和检索机制。
安全定义
定义1(MSMP) :MSMP攻击者在写入阶段注入至多t个记忆到M中;当未来用户发出与注入内容语义相关的目标查询q*时,若智能体的响应包含攻击者指定的恶意内容,则攻击成功。
定义2((t, δ)-SMSR安全) :一个记忆检索系统是(t, δ)-SMSR安全的,如果对于任何注入至多t个对抗性条目的MSMP攻击者,智能体响应为恶意的概率至多为δ。
综合分析
为什么这个问题重要?
持久化内存正在成为企业RAG智能体的标准架构------LangGraph、AutoGen、MemGPT等主流框架均支持跨会话记忆。但这一设计选择引入了根本性的安全张力:写入路径既是智能体效用的来源(积累有用上下文),也是攻击者的注入路径。更关键的是,在多租户部署中,一个用户的交互可能影响所有未来用户的响应------这意味着攻击者可以通过一次注入,持续危害整个系统。
现有安全社区对LLM08(向量与嵌入弱点)的关注主要集中在反演攻击上,对投毒攻击的形式化防御研究严重滞后。本文填补了这一空白。
SMSR的理论优雅性
SMSR最精妙的设计在于两个组件的分工与互补:
- 组件1解决"谁写的" ------用密码学手段建立不可伪造的写时溯源,从根本上切断未签名注入。
- 组件2解决"写了什么影响有多大" ------即使用户是合法的(能通过组件1),其注入的恶意内容对系统输出的影响也被概率性地控制在可证明的边界内。
这种"身份认证 + 影响边界"的双层设计,使得SMSR能够同时应对两种截然不同的威胁模型,而此前的工作往往只处理其中一种。
不可能性定理的证明尤为犀利:它指出任何仅靠检索时内容判断的防御本质上都是徒劳的------因为嵌入空间是稠密的,对于任何目标查询,攻击者总能构造出既流畅又语义相关且包含恶意声明的文本,通过任何基于内容的阈值判断。这为"溯源是必要的"提供了理论基石。
证书的实用意义
组件2的证书虽然是最坏情况上界(假设被污染的每次运行LLM都产生恶意输出),但实验显示实际ASR通常低于证书边界。这意味着证书是保守但可证明的------系统管理员可以在部署前根据t、m、k、n_runs计算出最坏情况下的攻击成功率上界,从而做出工程决策(如调整m和n_runs以达到目标安全级别)。
局限性与未来方向
值得注意的局限性包括:
- 密钥轮换成本:轮换HMAC密钥会使所有轮换前的记忆失效------这在长期运行的系统中可能带来运维挑战。
- 评判模型依赖:组件2依赖LLM Judge给出可靠的裁决标签。虽然实验显示Haiku与Sonnet之间高度一致(κ=0.955),但评判模型本身的鲁棒性仍需持续关注。
- t的增长:随着注入数量t增加,证书边界迅速放宽(t=2时δ=0.402,t=3时δ=0.684)------这提示在实践中需要配合其他检测手段尽早发现大规模注入活动。
实践应用
适用场景
SMSR特别适合以下企业场景:
- 多租户RAG智能体:多个用户共享同一个记忆存储
- 合规敏感型应用:如财务审批、数据保留策略、访问控制等,错误的策略解读可能造成合规违规或财务损失
- 长期运行的客服/助手系统:记忆跨会话累积,攻击者有持续注入的机会窗口
部署建议
- 密钥管理优先:部署组件1前,确保有可靠的密钥管理基础设施(HSM或云密钥管理服务),密钥轮换策略需提前规划。
- 参数调优:根据安全需求调整m(过检索数量)和n_runs(消融运行次数)。增大m和n_runs可收紧证书边界,但会增加推理成本。
- 评判模型选择:选择与主智能体不同系列或不同规模的模型作为Judge,以降低共因失效风险。
- 监控与告警:即使有SMSR防护,仍应监控异常的内存写入模式------t较大时证书边界较宽,早期发现至关重要。
- 增量部署:可先部署组件1(HMAC溯源)------它不涉及LLM调用成本变化,且能立即阻断所有未签名注入。组件2可根据安全威胁态势逐步启用。
参考资料来源
- 原始论文:Sharma, T. "SMSR: Signed Memory with Smoothed Retrieval --- Certified Defence Against Runtime Memory Poisoning in Persistent LLM Agent Systems." arXiv:2606.12703, 2026. https://arxiv.org/abs/2606.12703