LMSM:受 Linux 安全模块启发的 LLM 安全框架 LMSM: LLM Security Framework Inspired by Linux Security Modules
把LSM的调解-策略-执行分离搬进LLM推理服务,让可解释性信号变成可运行的输出门禁。
前置知识
Linux 安全模块(LSM)与参考监控器
参考监控器原则要求所有安全相关操作必须先经过一个权威中介才能改变受保护状态。LSM 把这一原则实现为内核访问控制路径上的一组稳定钩子:内核在每个钩子处提供决策所需的上下文,可插拔的安全模块(如 SELinux、AppArmor)按部署者选定的规则解读上下文并给出允许/拒绝,最终仍由内核执行结果。其持久价值不在于任何一个具体策略,而在于策略可以演进、而调解路径本身无需重建。
本文的整个架构就是把这个'内核供上下文、模块供策略、内核执行'的分工照搬到 LLM serving,理解 LSM 是理解 LMSM 一切设计决策的前提。
稀疏自编码器(SAE)
一种无监督 dictionary 学习方法,把模型激活 $h \in \mathbb{R}^d$ 分解为大量稀疏、往往语义可解释的特征坐标(如 Gemma Scope 2 发布的 residual-stream SAE)。某个特征激活超过阈值常与特定行为(如拒绝、危险内容)相关,因此被广泛用于模型内部监测。它是'分析工件'而非安全控制本身。
SAE 是 LMSM 两类安全后端之一(artifact-backed),论文用 Gemma-3 的 SAE 坐标构建规则,读者需要知道 SAE 特征如何变成证据通道。
转码器(Transcoder)
与 SAE 类似的稀疏特征方法,但学习的是用一个稀疏中间表示去近似模型中某个位点(如 MLP 块)的输入到输出变换,从而暴露 MLP 计算的'中间特征'。在本文中 Qwen3 第 24 层 MLP 输入处的 transcoder 坐标被选作证据通道。
论文的 artifact-backed 案例在 Gemma/SAE 与 Qwen/transcoder 两种工件族之间切换,用以证明后端可替换而运行时不变。
连续批处理与 vLLM
vLLM 等现代推理引擎用 continuous batching 提高吞吐:每个调度步对当前所有活跃请求做一次 packed forward($H_t \in \mathbb{R}^{N_t \times d}$,一行对应一个请求),请求随时完成、在批内行位置间移动、新请求复用释放的槽位。这种调度器扰动(churn)意味着'第几行'是暂态的,只有主机分配的唯一请求 ID 是稳定的。
LMSM 的请求状态必须按稳定 ID 而非 packed 行位置键控,否则批处理扰动会串决策。这是论文正确性实验(Table 3)的全部意义所在。
线性探针(Linear Probe)与决策边距
在冻结的模型激活上训练的逻辑回归分类器。本文对 Qwen3-4B 第 24 层 MLP 输入激活 $h \in \mathbb{R}^{2{,}560}$ 做逐坐标标准化 $z_i(h) = (h - \mu_i) \oslash \sigma_i$,再用 $s_i(h) = w_i^{\top} z_i(h) + b_i$ 得到带符号决策边距,作为规则证据。边距相对校准阈值 $\tau$ 的符号决定规则是否触发。
task-fitted 后端就是这类探针;附录 B 的隔离证明(阈值穿越保持条件)也是围绕边距与阈值之差构建的。
越狱、ASR 与 FRR
越狱指诱导模型绕过拒绝行为输出有害内容。攻击成功率 ASR 衡量释放的回复被判为不安全的比例(本文用 HarmBench 602 条、WildJailbreak 2000 条,由 ThinkSafe 的 Llama-Guard-3 首 token 规则判定);误拒率 FRR 衡量把良性请求错判为拒绝的比例(XSTest 250 条难题,由 WildGuard 判定)。两者必须一起读:压低 ASR 往往推高 FRR。
论文所有安全实验都以这对指标报告,且明确区分'干预率'与'释放后被判率',误读会导致高估防御效果。
研究动机
LLM 上线后不再是'一问一答即消失'的预测器:一个请求由系统指令、多轮历史、检索文档、工具输出和应用内容拼装而成,生成结果在对外可见前还会被缓冲、过滤、传给其他工具。现有分层防御各有盲区:对齐改权重,只能给模型级宽泛默认,运营商自己的合规要求(如辖区禁止输出患者剂量建议)无法靠模型供应商满足;提示控制与不可信内容共享同一条上下文通道;外部 guard(Llama Guard、NeMo Guardrails 等)只见系统边界的文本,用不到模型内部状态。更关键的是工程病:把 SAE、transcoder、探针等可解释性信号改造成防御时,每个工件都自带一套校准、策略逻辑和干预代码,形成 $\text{backend} \to \text{policy logic} \to \text{intervention code}$ 的私有链条——换后端、换监控目标、改触发时机或加动作,往往意味着再写一套 guard 栈。更好的可解释性工件带来的不是防御的增量增强,而是又一个集成项目。
本文的目标是本文要把'用模型内部证据做安全'重新表述为一个运行时调解(runtime mediation)问题:把受保护的状态转变定义为'缓冲输出的外部释放',在其前建立一个可复用的强制基座。具体目标有五(G1–G5):每次 runner/wrapper 释放的响应都经强制门禁授权(mediated release);后端证据与策略状态在连续批处理下跟随主机分配的唯一请求 ID(request isolation);后端只出证据、策略只解析规则、只有门禁能改服务状态(separation);后端绑定、活动规则子集和时序策略可独立更换而无需重建整条链路(independent evolution);每次干预都能归因到策略、规则、证据、阈值、步骤和动作(attribution)。作者刻意把'调解正确性'(架构性质)与'策略有效性'(经验性质)分开声明——正确的调解路径救不了校准糟糕的规则。
与已有工作不同的是,独特切入是把操作系统安全领域最成熟的一条架构经验——LSM——搬进 LLM serving,但只搬'分离'而不搬内核的隔离保证。与每个可解释性方法各配一套防御的现状相反,LMSM 把 SAE、transcoder、稠密探针统统降格为'证据后端',把目标、规则、时序、动作解析提升为运营者可控的版本化策略层,把输出释放收敛为唯一受保护转变。相关工作里没有做过这个定位:vLLM Hook 解决的是推理引擎可编程性,NeMo Guardrails/LlamaFirewall/AgentSpec 调解的是应用可见事件,circuit breakers、refusal directions、HiddenDetect 则各自耦合校准与干预实现。作者还诚实地划出类比边界:LLM 运行时不是内核,服务进程被攻破不在威胁模型内,这套框架提供的是稳定的调解路径,而非内核级防篡改。
核心方法
直觉:安全检查应该像 LSM 钩子一样,在结果离开可信服务进程之前、于统一的位置被执行,而'查什么'由可替换的后端决定、'怎么判'由版本化策略决定、'谁来动手'只属于门禁。技术路线分两个平面。控制平面在服务前由部署运营者安装三类配置:一个后端绑定(指明观测哪个模型内部机制、在哪个激活位点)、一个版本化规则库、一个活动策略包。数据平面在 vLLM 的每个调度步执行:一次覆盖所有活跃请求的 packed forward 产出 $H_t \in \mathbb{R}^{N_t \times d}$,后端观察映射给出证据矩阵 $E_t = \text{Observe}_{\beta}(H_t) \in \mathbb{R}^{N_t \times K}$($K$ 个命名证据通道);随后按调度把 $E_{r,t}$ 融入请求键控状态 $x_{r,t} = U_P(x_{r,t-1}, E_{r,t})$,各规则在其通道子集上评估,固定 OR 组合加声明顺序解析出每请求决定 $d_{r,t} \in \{\text{allow}, \text{terminate}, \text{refuse}\}$;强制门禁逐请求应用决定,LMSM runner 缓冲所有生成输出直至请求完成才授权释放。整个过程中策略评估器无权追加 token、终止请求或授权释放——这是与'每个方法自带干预代码'的本质区别。
核心创新是把'模型内部信号 → 安全控制'的绑定从各方法私有实现中解耦为三段稳定接口。第一,后端契约:证据矩阵 $E_t$ 的每一行只依赖对应请求的激活行 $H_t$,且行与主机提供的唯一、不复用请求 ID 对齐——契约不规定证据如何构造,因此 SAE、transcoder、探针可以互换。第二,公共评估器接口:原子规则 $\rho_i = (g_i, K_i, c_i, a_i, v_i)$ 把一个目标 $g_i$、证据通道子集 $K_i$、校准条件 $c_i$、候选动作 $a_i$ 和版本 $v_i$ 绑在一起;策略 $P = (I_P, \{\rho_i\}, \text{sched}_P, \prec_P, \text{resolve}_P, v_P)$ 决定激活哪些规则、何时评估、多规则同时触发时按声明顺序 $\prec_P$ 解析。第三,唯一授权释放的强制门禁,内不含任何阈值、分类或后端逻辑。请求状态按稳定 ID 而非暂态 packed 行位置键控,是调度器 churn 下决定可复现的关键。这与 LSM 的分工完全同构:内核给上下文、模块给策略、内核执行。
方法步骤详情
第一步,控制面配置:运营者定义目标(记录策略意图,可在检测机制更换时保持稳定)、安装后端绑定(工件 ID/release、hook 与激活位点、后端配置、绑定版本)、装载规则库、激活策略包;builder 校验所有活动规则引用同一绑定与激活位点才准入。第二步,后端供给,分两条路:artifact-backed 直接绑定已发布表示——Gemma-3 读 residual-stream SAE 坐标、Qwen3 读第 24 层 MLP 输入 transcoder 坐标,特征坐标、逐特征阈值和特征组归并在规则条件 $c_i$ 中;task-fitted 则为部署目标现场拟合类平衡逻辑探针,证据为 $z_i(h) = (h - \mu_i) \oslash \sigma_i$、$s_i(h) = w_i^{\top} z_i(h) + b_i$ 的带符号边距。第三步,服务时每个解码步执行:packed forward → 一次批量后端调用得 $[B \times K]$ 证据 → 按调度更新请求键控状态(可累加、滑窗或首穿越)→ 规则评估 → 固定 OR + 顺序解析。第四步,强制与审计:allow 放行缓冲补全;terminate 只停该请求、批内其余继续;refuse 丢弃缓冲前缀、释放运营者配置的固定回复;每次干预同步创建记录(请求、规则/目标、分数/阈值、解码步、策略与规则库版本、动作、各 token 视图)。论文评估的两种时序:Checkpoint 固定在生成第 64 个 token 一次性评估 15 条规则;Anytime 每步评估、首个过阈即干预。
技术新颖性
新颖性可拆成四点。其一,受保护转变的明确化:raw vLLM 结果、激活、KV-cache 都算可信内部缓冲数据,只有 wrapper 的外部释放是被调解的转变——这给了'在生成路径上随时改变主意'(丢弃已生成前缀、换成固定拒绝)以安全语义。其二,两种claim分离:调解正确性是架构性质(对正确的请求、在正确时机、于释放前应用最终决定),策略有效性是部署经验性质(证据和阈值是否抓住意图),论文用不同实验分别检验,避免了'好架构掩盖差规则'的自欺。其三,连续批处理下的请求隔离:利用主机保证的唯一、不复用请求 ID 做状态 join,并用保守充分条件 $\min\{|u_0 - \tau|, |u_1 - \tau|\} > |u_0 - u_1|$ 认证阈值穿越结果在行移动前后一致(32 对中认证 31 对)。其四,变更局部性被显式化为设计目标(Table 2):换后端、换模型工件族、改活动规则数、换时序调度,各自只触碰清单内的组件,请求状态、决策、动作词汇、门禁与记录模式全部复用。
实验结果
主实验用 Qwen3-4B(开启 thinking)、离线 vLLM V1、单张 H100、最多 32 活跃序列。正确性(Table 3):在 64 请求、32 次槽复用、23 次行移动的压力负载下,32 对重复请求全部保持动作、类别、干预步和完整的逐规则阈值穿越向量;新入槽请求均以空状态启动;停掉 24 个请求时其余 40 个继续运行。后端可移植性(Table 4):(a) 在 264 条 held-out HarmBench、Transformers 路径上,Gemma-3+SAE 的 ASR 从不设防 46.2% 降到类别匹配单规则 5.3%、六规则包 4.2%;Qwen3+transcoder 从 48.1% 降到 7.2%、4.9%。(b) 固定 Qwen3/vLLM 路径仅换绑定(稠密探针 ↔ transcoder),两者均在 64/64 步给出有限证据,吞吐 2,439.96 对 2,487.63 tok/s,接口复用几乎零代价。策略有效性(Table 5):Matched Disabled 的 HarmBench/WildJailbreak ASR 为 39.20%/41.90%;Checkpoint 分别降到 3.32%/7.35%,Anytime 降到 6.81%/6.00%,相对降幅 82.5%–91.5%;代价是 XSTest 误拒从 2.40% 升到 4.40%(Checkpoint)和 5.60%(Anytime)。两策略数值低于 ThinkSafe 论文报告的全部训练时方法(外部最好为 ThinkSafe 的 6.63%,Checkpoint 达 5.02%)。时序权衡(Figure 3):Anytime 中位首干预步 15(p90 81.5),Checkpoint 固定在 64;被干预请求上 Anytime 中位避免 token 496 对 448,早 48 个 token。服务成本(Figure 4):Checkpoint 吞吐保持率宽 1 时 99.31%、宽 32 时 98.14%(每 token 开销 79.3→7.0 µs,批处理摊薄约 91%);Anytime 93.35%/83.91%(819.4→71.2 µs);1/6/15 条规则的中位保持率为 97.88%/98.31%/96.89%。执行路径分解:eager 模式使吞吐从编译原生 5,543 tok/s 掉到约 2,684(宽 1 慢 2.38 倍),其上 Checkpoint 仅增 1.86%、Anytime 因 CPU 评估探针增 16.09%;峰值显存几乎不变(中位 76.66 对 76.72 GiB)。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 有害输出防御(HarmBench,602 条提示,Qwen3-4B/vLLM) | 攻击成功率 ASR(Llama-Guard-3 首 token 规则判释放回复) | LMSM-Checkpoint 3.32%;LMSM-Anytime 6.81% | Matched Disabled(同监测路径、抑制状态改变动作)39.20% | 相对降低 91.5%(Checkpoint)/ 82.6%(Anytime) |
| 有害输出防御(WildJailbreak,2000 条有害提示) | ASR | Checkpoint 7.35%;Anytime 6.00% | Matched Disabled 41.90% | 相对降低 82.5%(Checkpoint)/ 85.7%(Anytime) |
| 过拒评估(XSTest,250 条安全难题) | 误拒率 FRR(WildGuard 判定) | Checkpoint 4.40%;Anytime 5.60% | Matched Disabled 2.40% | 代价项:FRR 上升 2.0–3.2 个百分点,仍远低于 DirectRefusal 的 32.00% |
| 跨模型 artifact-backed 部署(264 条 HarmBench,Transformers 路径) | ASR(六规则包) | Gemma-3+SAE 4.2%;Qwen3+Transcoder 4.9% | 同模型不设防:46.2% / 48.1% | 相对降低约 90% |
| 固定运行时后端替换(32 条固定提示,monitor-only) | 吞吐 tok/s(3 次重复,中位) | 稠密探针 2,439.96;transcoder 2,487.63 | 两者互为替换基线,接口与路径完全相同 | 差距 <2%,证明换后端不破坏服务路径 |
| 服务成本(宽 32、64 提示、每条 256 token) | 相对 Matched Empty Extension 的吞吐保持率 | Checkpoint 98.14%(15 规则时 96.89%);Anytime 83.91% | Matched Empty Extension 100%(无监测工作) | Checkpoint 监测开销仅 1.86%,批处理使每 token 增量时间降 91% |
局限与改进
作者承认的边界:评估是运营者可控的单进程内部部署(单 H100、eager vLLM);每个已部署策略只支持一个活动后端绑定;动作词汇仅 allow/terminate/refuse 三种;不覆盖任意 token 级流式释放;可用性与资源耗尽攻击不在目标内;调解正确不等于策略正确——校准差的规则仍会漏放或误拒;知道架构与目标分类的自适应攻击者可用混淆激活击败潜空间监控(引用 [5])。我自己的观察还有几条:Table 5 的外部训练时方法(ThinkSafe 等)取自文献而非同路径复跑,且对方用 LoRA 改权重、LMSM 不改权重,比较是'语境'而非受控实验;ASR/FRR 依赖 Llama-Guard-3 首 token 规则和 WildGuard 两个自动裁判,无人工校验;Checkpoint 的 token-64 决策点是先验固定的调度,对不同长度思维链未必最优;XSTest 仅 250 条,FRR 变化(2.4→4.4 个百分点即约 5–6 条之差)统计功效有限;每条 benchmark 格来自单次固定种子生成而非多次平均。
独立分析的弱点
第一,裁判单一性:释放回复只由 Llama-Guard-3 首 token 规则判 ASR、WildGuard 判 FRR,首 token 规则对'先道歉后照答'的回复可能系统性误判,改进方向是引入多裁判集成加分层人工抽检。第二,固定决策点与风险暴露不匹配:Checkpoint 在第 64 个 token 一次性决策,对 512+ token 的长思维链,风险可能在第 64 步之后才浮现,而对短回复又显得过晚,可改为按 token 预算或困惑度触发的自适应调度点。第三,单绑定限制:一个策略只能引用一个后端绑定和激活位点,无法融合残差流 SAE 与 MLP transcoder 的互补证据,需定义多绑定证据的组合与冲突消解语义(作者也承认这是扩展方向)。第四,Anytime 的 16.09% 开销来自每步把激活行搬到 CPU 上跑探针,把探针常驻 GPU 或改写为 CUDA-graph 兼容的 hook 可能把开销压回 Checkpoint 的量级。第五,固定 OR + 声明顺序的组合是确定性的但不按风险排序,多规则同时触发时最危险的类别未必优先,可用校准风险分排序。第六,未评估自适应对手:攻击者知道特征坐标和阈值后可探测并绕开证据通道,需要专门的红队协议与阈值随机化。
未来方向
作者明确提出:把多个绑定/激活位点的校准证据组合进一个策略;在 allow/terminate/refuse 之外增加 redaction(脱敏)、受控重生成、二次审查路由等更细粒度的动作,并为此定义组合与动作语义。基于本文成果可自然延伸的方向:其一,流式场景的部分释放语义——当前缓冲到完成才释放,可研究 token 级授权与事后撤回;其二,阈值与校准的在线更新、分布漂移检测,让'版本化策略包'真正滚动演进;其三,移植到其他推理运行时(SGLang、TensorRT-LLM)并恢复 CUDA graph 支持,检验'请求 ID、决定、释放不变量'在新引擎中的代价;其四,扩展到多模态模型的内部证据;其五,对混淆激活攻击的后端加固,例如集成多激活位点的冗余证据;其六,规则条件的形式化验证与策略即代码(policy-as-code)审计,把 G5 的归因记录接入持续合规流程;其七,多租户服务中按租户差异化激活策略包,检验隔离语义在共享批内的扩展。
复现评估
复现条件相当好。实现与工件开源于 github.com/xiuyuz/LMSM,包含库与测试、Hugging Face Transformers 和 vLLM 两套集成、四个开箱即用的部署配置(LMSM-Checkpoint、LMSM-Anytime、LMSM-SAE、LMSM-Transcoder),并附报告所用策略的已保存拟合参数与规则条件——固定策略评估工作流无需重跑探针拟合或阈值选择。复现指南逐项写明哪些结果应精确复现(批隔离决定、生成 token 与动作计数、XSTest 拒绝数、触发表),哪些只做协议匹配的近似比较(bfloat16 边界附近的裁判标签、采样 SAE/transcoder 率、吞吐),且保留原始输出、种子与计时供核对。门槛在于算力:主实验需单张 H100(中位显存约 76.7 GiB allocated / 80 GiB reserved)、vLLM V1 eager 模式;第三方模型权重、Gemma Scope 2 / transcoder 工件和基准数据不随仓库分发,需按脚本自行获取并遵守许可。总体难度中等:有系统与 vLLM 经验的团队可在单 GPU 上复跑核心表格,纯 ML 背景者需先补推理服务工程栈。
论文图表
对比图。(a) 现状:每个可解释性后端(SAE、transcoder、稠密探针、未来后端)各自带一套'策略 → 强制'的 guard 栈,加一个后端就重建整条链。(b) LMSM:把后端选项收拢到公共后端契约之后,由版本化规则库与策略评估器解析活动规则,再由独立的强制门禁做逐请求决定(allow/terminate/refuse),新后端只需绑定、校准、必要时拟合,无需重设计请求处理与强制路径。
这是全文的论点一图流:左半边是论文要消灭的碎片化现状,右半边是提出的共享基座,看懂它就看懂了 LMSM 与既有'每个方法一个防御'路线的本质区别。
按控制点把 LLM 安全手段分为六族并逐一给出优势与架构局限:外部 guard(模型无关、易更新,但只见边界文本)、提示控制(免运行时插桩,但与不可信内容共享上下文通道)、对齐(模型级宽泛默认,但编码在权重里、难以承载运营者特定义务)、内部运行时方法(可在缓冲输出释放前检视或改变计算,但常把单个后端、校准与干预耦合在一起)、以及 LMSM(在不重训模型、不改强制路径的前提下叠加运营者选定的规则层,代价是需要可信运行时集成与后端校准)。
这张表是第 2 节的骨架,把 LMSM 精确放进防御版图并点出它填补的'内部运行时'空白,是理解论文定位的钥匙。
上半块是本文内部匹配配置:Matched Disabled(HarmBench 39.20%、WildJailbreak 41.90%、XSTest 2.40%、safety avg 27.83%)、LMSM-Checkpoint(3.32%/7.35%/4.40%/5.02%)、LMSM-Anytime(6.81%/6.00%/5.60%/6.14%)。下半块引用 ThinkSafe Table 1 报告的训练时方法:DirectRefusal 33.75%、SafeChain 28.45%、STAR-1 25.22%、SafePath 27.25%、SafeKey 22.05%、ThinkSafe 6.63%。两个 LMSM 策略数值上低于所有外部行。
这是主结果表:既展示运行时调解能在已对齐模型上再削减 82.5%–91.5% 的有害释放,也如实呈现 FRR 代价,并把与训练时方法的比较明确标注为'语境参考'而非受控实验。