BlackHatUSA2026:GAVEL激活层防御"

admin 2026-10-16 12:59:35 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

Black Hat USA 2026:GAVEL激活层防御

原创

Max Luo
Max Luo

白帽子罗棋琛

2026年10月15日 08:18
中国香港

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

给大模型装上“神经流量规则”:GAVEL 的激活层防御

Black Hat USA 2026 议题笔记:Rules for Neural Traffic: A New Defensive Layer for LLMs

大模型安全控制大多盯着两端:输入侧检查 Prompt,输出侧审核文本和工具调用。问题是,真正危险的意图未必以稳定词面出现。诈骗可以写成角色扮演,数据外泄可以被包装成合法邮件动作,提示注入还会要求 Agent 完成隐藏目标后对用户保持沉默。

Gilad Gressel、Shir Rozenfeld 等人的公开课件介绍了 GAVEL。它不把模型当成只进出文本的黑盒,而是读取推理过程中间层激活,把“冒充真人”“威胁”“税务”“要求转账”等细粒度概念表示为 Cognitive Elements(CE,认知元素),再用类似 Snort/YARA 的逻辑规则组合这些元素。

图 1:GAVEL 试图在提示词过滤和输出审核之外增加一层可编程、可审计的激活监测

它不是通用的“读心术”,也不是可以替代权限控制的万能护栏。GAVEL 需要访问模型内部激活,当前更适合自托管或能暴露推理 Hook 的模型;检测效果依赖 CE 数据、模型版本、层选择、窗口和阈值。本文会同时说明它能解决什么、如何工程化,以及不能承诺什么。

1、Agent 外壳再复杂,决策核心仍是 LLM

今天的 Agent 系统可以订机票、写代码、管理基础设施和发送邮件。拆掉工具、记忆、路由器和编排包装后,决定下一步动作的仍是 LLM。传统控制通常只观察用户输入、最终输出和结构化 ToolCall,却看不到模型在生成动作之前激活了哪些内部表示。

图 2:工具决定动作边界,LLM 决定如何选择和组合动作;两层都需要独立控制

这会产生三个检测盲区:

  • 词面规避:同一意图可以换语言、隐喻、拼写或编码,关键词规则迅速失效;
  • 合法动作承载恶意目标:send_email、grant_access 本身并不恶意,危险取决于内容、对象和上下文;
  • 外部行为与用户可见文本分离:Agent 先调用工具泄露数据,最后只回复一个表情或正常说明,输出审核看不到前一阶段影响。

激活监测的价值,是在文本和动作之外增加一组观测信号。它不是授权来源:即使监测器判断“安全”,工具网关仍必须做身份、参数、资源和审批校验。

text

用户 / 网页 / 工具结果           |           v        LLM 推理 -------> 中间层激活 -----> CE Probe -----> 规则引擎           |                                        |            |           v                                        |            v    Token / ToolCall -------------------------------+------> 放行、告警、拒绝                                                                |                                                                v                                                     工具策略与最小权限

把 GAVEL 放在图中可以看出,它应是纵深防御的一层,而不是绕过工具策略的快捷方案。

2、宽泛分类器为什么容易误报,又难以维护

常见激活检测方法用一批“诈骗”“网络犯罪”“仇恨”等宽泛数据训练分类器。课件以税务电话诈骗为例:训练集包含大量自称税务机关、追缴欠税、要求付款的对话。模型一旦看到小说、培训材料或安全演练中相似表达,也可能被宽泛的 Scam 分类器判为恶意。

图 3:真实诈骗与无害角色扮演共享大量语义特征,单一大类标签很难表达业务允许的上下文

第二个问题是缺少可组合性。“诈骗”下面还包括税务冒充、投资诈骗、恋爱诱导、电商退款等场景。新增一种风险时,如果只能重新收集整类数据、重训完整分类器,安全策略很难跟上业务变化。

图 4:大类检测器给出一个总分,却无法让策略编写者复用“威胁”“付款”“冒充”等基础信号

GAVEL 的思路是把复杂风险拆成稳定、细粒度的 CE。税务诈骗不等于“出现 tax”,而是多个元素共同成立,例如:

yaml

name:tax_authority_impersonationversion:3groups:identity: [masquerade_as_human]   domain: [taxation]   pressure: [threaten, coercion] condition:all:-any:identity-any:domain-any:pressureaction:mode:stopseverity:high

业务如果允许税务知识问答,单独激活 taxation 不会触发;允许角色扮演,也不会因 masquerade_as_human 之外的普通 Roleplay 立即阻断。规则表达的是特定组合,而不是主题禁词。

3、把神经激活当成“流量”,但不要把类比当成等价

课件把 GAVEL 称为“LLM 的 Snort”:网络侧由安全人员编写开源规则,NIDS 检查数据包流并判定威胁;模型侧由 AI 安全人员共享规则,监测器检查 Activation Flow 并作出决策。

图 5:类比的核心是把检测知识从模型权重中分离出来,变成可版本化、可组合、可共享的规则

这是一种有用的产品抽象,但两者并不等价。网络字段具有协议定义,源地址和端口可以精确解析;CE 是从高维向量学习出的概率信号,会随模型、层、量化、微调、上下文和语言发生漂移。Snort 规则中的字节条件通常是确定的,GAVEL 规则的输入却先经过一个统计分类器。

因此生产规则不能只保存逻辑表达式,还必须绑定模型与校准条件:

json

{\"rule_id\":\"tax-scam-3\",\"model\":{\"name\":\"Mistral-7B-Instruct-v0.2\",\"revision\":\"sha256:model-digest\",\"quantization\":\"bf16\",\"selected_layers\":[13,27]},\"probe_bundle\":\"sha256:probe-digest\",\"ce_schema\":4,\"threshold_profile\":\"prod-cn-en-2026-08\",\"window_tokens\":24,\"rule_revision\":3,\"action\":\"monitor\"}

模型权重升级、LoRA 变化、量化方式改变或推理引擎替换,都应触发重新校准。不能把旧 Probe 在新模型上正常加载当作效果不变的证据。

4、CE 是可复用信号,不是模型思维的事实标签

课件把诈骗场景拆成 Threat、Taxation、Roleplay、Coercion、Click Directives、Payment Processing 等 CE。

图 6:风险规则不直接依赖完整诈骗语料,而是组合多个更细粒度的内部表征

论文的 CE 还覆盖购买、点击、下载、授权、提供信息、转账、冒充真人、SQL 构造、说服等行为或主题。每个 CE 都有一份 Excitation Dataset:用正负文本让基础模型处理目标概念,采集中间层表示,形成该 CE 的激活数据。

图 7:文本数据先经过被冻结的基础模型,再从选定层提取特征,训练轻量 Probe 识别 CE

论文选择 Attention Output,并报告在消融实验中平均 TPR 为 95.5%,高于 MLP Output 的 82.3%;Mistral-7B 上中后段第 13—26 层效果最好。这些是特定实验设置的结论,不应直接推广到任意架构。

CE 的名称具有可解释性,Probe 的分数仍是统计估计。安全日志应该写“coercion Probe 在此 Token 窗口得分 0.91”,而不是“模型正在胁迫用户”。这一区别很重要:前者可以回放、校准和质疑,后者容易把研究工具包装成不可证伪的心理判断。

一个最小的 CE 元数据 Schema 应保留数据来源和评测边界:

python

from pydantic import BaseModel, ConfigDict, Field   classCognitiveElement(BaseModel):     model_config = ConfigDict(extra=\"forbid\")      ce_id: str = Field(pattern=r\"^ce_[a-z0-9_]{2,64}$\")     title: str     definition: str     excitation_dataset_digest: str = Field(pattern=r\"^sha256:[0-9a-f]{64}$\")     probe_digest: str = Field(pattern=r\"^sha256:[0-9a-f]{64}$\")     model_digest: str = Field(pattern=r\"^sha256:[0-9a-f]{64}$\")     layers: tuple[int, int]     calibration_dataset: str     threshold: float = Field(ge=0.0, le=1.0)     measured_tpr: float = Field(ge=0.0, le=1.0)     measured_fpr: float = Field(ge=0.0, le=1.0)

没有数据摘要、模型摘要和阈值来源的 CE,不应进入生产规则库。

5、规则引擎组合 CE,动作必须与置信度和业务风险解耦

课件示例把税务冒充规则写成:冒充真人,并且涉及税务,同时出现威胁或胁迫时停止生成。

图 8:逻辑规则把多个概率信号组合成具体场景,比单个 Scam 分数更容易解释和修改

课件列出的动作包括 Stop、Disclose、Steer、Refuse 和 Remediate。工程上不能让规则文件直接执行任意 Python,也不要用 eval() 解释布尔表达式。可把条件限制为 all/any/not 的闭合 AST,再把检测结论交给独立策略层映射动作。

python

from dataclasses import dataclass from typing importAny@dataclass(frozen=True)classSignal:     score: float     threshold: float    @propertydefactive(self) -> bool:         returnself.score >= self.threshold   defevaluate(node: dict[str, Any], signals: dict[str, Signal]) -> bool:     ifset(node) == {\"ce\"}:         name = node[\"ce\"]         if name notin signals:             raise ValueError(f\"unknown CE: {name}\")         return signals[name].active     ifset(node) == {\"all\"}:         returnall(evaluate(child, signals) for child in node[\"all\"])     ifset(node) == {\"any\"}:         returnany(evaluate(child, signals) for child in node[\"any\"])     ifset(node) == {\"not\"}:         returnnot evaluate(node[\"not\"], signals)     raise ValueError(\"invalid rule AST\")   TAX_SCAM = {     \"all\": [         {\"ce\": \"masquerade_as_human\"},         {\"ce\": \"taxation\"},         {\"any\": [{\"ce\": \"threaten\"}, {\"ce\": \"coercion\"}]},     ] }

检测逻辑与响应动作要分离。同一条规则在客服草稿模式可只告警,在面向用户的语音机器人中可披露“这是自动系统”,在具备资金或门锁工具的 Agent 中则应停止工具调用并转人工。Probe 不应自己决定能否转账。

yaml

enforcement_policy:tax_authority_impersonation:chat_drafting: {mode:monitor, create_case:true}     public_voice_bot: {mode:disclose_and_terminate}     payment_agent: {mode:block_tools, require_human:true}   data_exfiltration:default: {mode:block_tools, revoke_pending_approvals:true}

这样才能在不改检测规则的情况下,根据业务影响调整处置强度。

6、实时检测要解决窗口、抖动和 ToolCall 竞态

GAVEL 对 Token 级激活进行分类,得到每个 CE 随生成过程变化的分数。新样例进入模型后,分类器输出 Threat、Payment、Roleplay、SQL、Persuasion 等多路信号,再由规则集判断。

图 9:规则引擎消费的不是文本标签,而是一组随 Token 变化的 CE 概率序列

单个 Token 超阈值很容易抖动。生产系统应使用滑动窗口、最小持续长度和迟滞阈值:进入告警使用高阈值,退出使用低阈值;对“转账 + 胁迫”可要求两个信号在相邻窗口内共现,而不是同一 Token 精确对齐。

python

from collections import deque   classHysteresisWindow:     def__init__(self, size: int, enter: float, exit: float, min_hits: int):         ifnot0 <= exit < enter <= 1:             raise ValueError(\"require 0 <= exit < enter <= 1\")         self.samples: deque[float] = deque(maxlen=size)         self.enter = enter         self.exit = exit         self.min_hits = min_hits         self.active = Falsedefupdate(self, score: float) -> bool:         self.samples.append(score)         threshold = self.exit ifself.active elseself.enter         hits = sum(sample >= threshold for sample inself.samples)         self.active = hits >= self.min_hits         returnself.active

更关键的是 ToolCall 竞态:如果 Agent 采用流式输出,工具执行器可能在规则完整触发前就收到参数。正确顺序是先缓冲并校验完整 ToolCall,再等待当前窗口的策略判决,最后才提交外部副作用。

text

模型流式 Token -> 激活监测 -> 规则状态        |        +---- ToolCall 草稿(不可执行)                          |                          v                  完整参数 + 最终规则判决                          |              允许 ------+------ 拒绝 / 人工审批                |                v           幂等工具执行器

否则监测器虽然在最后一个 Token 命中,邮件、付款或权限授予已经发生。

7、评测数字要读对:ROC-AUC 不是线上拦截率

课件针对四类 Agent 风险给出 ROC-AUC:提示注入后门 0.800、隐藏议程 0.933、数据外泄 0.940、安全防护绕过 0.840。正负样本数量分别约为 632/2562、250/2944、154/3040、294/2900,课件注明精确数量以数据集发布为准。

图 10:四项结果都高于随机分类,但提示注入后门的 0.800 也说明它并非可靠到可以单独承担阻断

ROC-AUC 衡量所有阈值上的排序能力,不等于某个生产阈值的 Precision、Recall,也不包含真实流量中的基率。假设线上危险请求占比只有万分之一,即使 TPR 为 90%、FPR 为 1%,每一个真阳性周围也可能出现上百个误报。

上线前必须在本业务分布上计算混淆矩阵和告警负担:

python

from dataclasses import dataclass   @dataclass(frozen=True)classMetrics:     precision: float     recall: float     false_positive_rate: float     alerts_per_million: floatdefmetrics(labels: list[int], scores: list[float], threshold: float) -> Metrics:     pred = [int(score >= threshold) for score in scores]     tp = sum(p == 1and y == 1for p, y inzip(pred, labels))     fp = sum(p == 1and y == 0for p, y inzip(pred, labels))     tn = sum(p == 0and y == 0for p, y inzip(pred, labels))     fn = sum(p == 0and y == 1for p, y inzip(pred, labels))     return Metrics(         precision=tp / max(tp + fp, 1),         recall=tp / max(tp + fn, 1),         false_positive_rate=fp / max(fp + tn, 1),         alerts_per_million=1_000_000 * (tp + fp) / max(len(labels), 1),     )

阈值选择不能只最大化 Youden's J。高风险 ToolCall 可接受更高误报并转人工,普通聊天则可能只能监测。评测集还应覆盖真实业务语言、长上下文、工具结果、无害角色扮演、引用恶意文本的安全分析和攻击者针对 CE 的规避。

8、性能开销不大,但部署前提并不轻

论文在 RTX 6000 Ada 上用 Mistral-7B 测得基础推理平均每 Token 31.8 ms,加入 RNN CE 检测增加约 0.21±0.01 ms,约 0.6%,并报告 Probe 占用约 150 MB GPU 显存。

图 11:在论文测试硬件和模型上,分类条很窄;实际系统仍需重新测量批处理、并发和 Hook 带来的开销

开源仓库当前建议至少 16 GB GPU 显存、32 GB 内存,并以 Mistral-7B 为示例。更重要的限制不是显存,而是必须取得中间层表示。普通闭源模型 API 只返回 Token、Logprob 或 ToolCall,无法直接部署这种监测。

适用场景包括:

  • 自托管开源模型,推理引擎允许注册层级 Hook;
  • 私有模型服务,模型团队能把选定激活通过同机 Sidecar 交给监测器;
  • 高风险小流量任务,可以接受专用推理池和严格版本绑定。

不适用或需要替代方案的场景包括:

  • 仅能调用闭源文本 API;
  • 服务端持续自动换权重,调用方无法固定版本;
  • 激活跨网络传输会产生不可接受的隐私和带宽风险;
  • 延迟预算极窄,却没有针对真实批量和并发做验证。

推荐让 Probe 与推理进程同机,只输出 CE 分数和版本摘要,不把原始激活长期写盘:

yaml

activation_monitor:placement:same_gpu_noderaw_activation_export:falseretained_fields:-request_id-model_digest-probe_bundle_digest-rule_revision-ce_scores_quantized-decisionretention_days:30network:allowed_egress: [policy-gateway]   failure_mode:high_risk_tools:fail_closedtext_only_chat:monitor_and_degrade

激活也可能泄露输入或模型特征,不能因为人眼不可读就按普通指标处理。

9、共享规则能提升速度,也会引入规则供应链

GAVEL 设想公共仓库共享 CE Excitation Dataset 和规则集,组织下载后在私有模型上训练所需 Probe,并同时维护内部规则。

图 12:真正可迁移的是 CE 定义、激励数据和逻辑规则;模型相关 Probe 仍需在目标权重上训练和校准

课件展示的 Romance Baiting 规则,把情感吸引、要求采取动作以及建立信任或角色扮演组合起来。

图 13:规则文件可读、可评审,适合纳入安全工程的版本控制与变更流程

开放共享也带来类似检测规则供应链的风险:贡献者可能提交偏置数据、极易误报的 CE、隐藏触发样本或过宽动作。公共规则不能下载后直接获得阻断权限,至少要经过:

  1. 内容与许可证扫描,确认数据不包含秘密、个人信息或不允许再分发的语料;
  2. 数据集摘要、发布者签名和版本锁定;
  3. 独立训练与可复现评测;
  4. 本地良性流量回放和红队规避测试;
  5. Monitor-only 灰度,测量每百万请求告警量;
  6. 双人审批后才允许 block_tools 或 stop 动作。

yaml

rule_supply_chain_gate:require:publisher_signature:trueimmutable_dataset_digest:truelicense_review:passedpii_scan:passedreproducible_probe_training:passedlocal_benign_replay_samples:100000adversarial_suite:passedmonitor_only_days:14prohibit:-executable_rule_code-remote_dataset_url_at_runtime-unsigned_threshold_change-automatic_blocking_on_first_install

规则 DSL 必须声明式、无网络、无文件访问。Studio 的 AI 自动生成能力只能生成草稿,不能自己批准自己的 CE、阈值和动作。

10、落地从一个高价值场景开始,不从“全模型安全”开始

GAVEL Studio 提供公共规则库、CE 管理、规则编辑、训练、测试和实时触发视图。课件还展示了用自然语言说明目标行为,由 AI 生成规则与所需 CE 的流程。

图 14:可视化工具降低了编写规则的门槛,但规则质量仍取决于数据、评测和审批

图 15:自动生成适合加速候选规则设计,不应替代安全所有者对定义、样本与业务影响的审查

合理的首个场景应同时满足:影响高、语义明确、样本可获得、存在可执行的响应。例如“Agent 调用外发邮件或权限授予工具时,检测隐藏目标与数据外泄”,比“检测所有不安全内容”更适合起步。

上线分四个阶段:

yaml

rollout:phase_1_offline:action:noneexit:calibrated_on_business_distributionphase_2_shadow:action:log_onlyexit:analyst_precision_and_alert_budget_metphase_3_guarded:action:require_human_for_high_risk_toolsexit:false_block_rate_within_slophase_4_enforced:action:block_selected_tool_classessafeguards:-deterministic_tool_authorization-emergency_rule_disable-signed_rule_releases-per_model_canary

SOC 侧应把规则命中与实际动作串起来,而不是只存 CE 分数:

sql

FROM agent_security_events |WHERE event_type ='gavel_rule_decision'|JOIN agent_tool_calls ON request_id | STATS     hits =COUNT(),     blocked_tools = COUNT_IF(tool_decision ='blocked'),     executed_tools = COUNT_IF(tool_decision ='executed'),     avg_score =AVG(max_ce_score)   BY model_digest, rule_id, rule_revision, tool_name |WHERE executed_tools >0AND rule_action IN ('stop', 'block_tools')

如果规则要求阻断,而工具仍被执行,应按控制失效而非普通模型告警处置。

GAVEL 最有价值的贡献不是宣称模型内部已经透明,而是把激活安全从一个大分类器,改造成可组合的检测工程:CE 像检测原子,规则像 Sigma/YARA,规则库像社区情报,动作由本地策略决定。与此同时,安全工程师必须保留对概率信号的基本克制:绑定模型版本,记录阈值和数据来源,计算真实基率下的 Precision,保护激活遥测,并始终用确定性的工具授权兜底。

课件最后也把它定位为“额外的一层安全”。这个措辞很准确。神经流量规则可以帮助发现表面文本遗漏的行为,但不会替代身份、最小权限、参数校验、人工审批和审计。它的最佳位置,是在模型已经决定做什么、外部世界尚未受到影响的那一段狭窄窗口里。


资料来源

  • Black Hat 官方 Session 页面
  • GAVEL 论文:Towards Rule-Based Safety Through Activation Monitoring
  • GAVEL 官方开源仓库
  • Black Hat USA 2026 Session 页面

原始会议材料(仓库内)

  • 演讲课件 PDF

开源资料与原始议题 PDF

本文对应的 Markdown 原稿、Black Hat 原始议题 PDF 与配图已整理到 GitHub,可按文章编号查找和下载。

https://github.com/cybermaxluo/black-hat-usa-2026-talks

也可以点击文末“阅读原文”进入仓库。欢迎 Star、提交 Issue 或参与勘误。

BlackHatUSA2026:GAVEL激活层防御" 网络安全文章

BlackHatUSA2026:GAVEL激活层防御"

本文介绍BlackHatUSA2026上提出的Gavel激活层防御方法,通过读取LLM推理中间层激活,将细粒度概念表示为认知元素(CE),并用类似Snort的规则组合检测威胁,弥补输入提示过滤和输出审核的盲区。文章详述了CE定义、规则引擎、实时检测的工程化要点,强调其作为纵深防御一层而非万能护栏,需绑定模型与校准条件,并区分检测逻辑与响应动作。
从专有LLMAPI中窃取推理轨迹:跨会话、跨用户、跨模型的加密推理漏洞解析" 网络安全文章

从专有LLMAPI中窃取推理轨迹:跨会话、跨用户、跨模型的加密推理漏洞解析"

该研究揭示影响Anthropic、OpenAI、Google等主流LLMAPI的严重架构漏洞:无状态API将加密推理轨迹返回客户端,且加密块在同一提供商生态内可跨会话、跨用户、跨模型互换。攻击者可将强模型生成的加密推理块注入同提供商弱模型,诱导其作为解密预言机逐字转录明文,实现蒸馏攻击、隐私提取、隐藏有害信息与提示注入。研究发现可恢复367个PII、182个凭证,且Kimi-K3、GLM-5.2对专有推理存在行为兼容性异常但无法因果证明蒸馏。缓解方案包括服务器端存储推理轨迹、密码学绑定、API网关强制跨模
评论:0   参与:  0