Pretext 攻击绕过 NVIDIA SkillSpector 等 Agent 技能扫描器,成功率最高 97%
Pretext: Defeating Malicious Skill Detection Frameworks for AI Agents
作者提出白盒攻击 PRETEXT,在固定检测器下对 qwen3t 取得 96.7% 的 ASR(Table D.1)。
攻击者掌握 SkillSpector 的完整规则库与语义分析提示词(white-box),但不知晓具体分值算法与自适应启发式规则;仅通过修改技能文本与文件布局发起攻击,目标是绕过检测(评分<20)并诱导受害智能体执行 12 种木马行为且完成良性任务。
- 智能体依赖第三方技能扩展功能,但恶意技能可能造成危害;基于静态规则与大模型语义裁判的检测框架在面对知晓检测规则的攻击者时的有效性亟待验证。
- 提出白盒攻击框架 PRETEXT,将载荷以自然语言拆分至多个文件,结合跨世代两层反思记忆优化策略,并在固定检测器与攻防协同进化对抗两种模式下进行评估。
- 在固定检测器下对 qwen3t 取得 96.7% 的 ASR;在协同进化检测器下 ASR 为 31% 至 76%,但 gpt-oss 的误报率达到 62%,纯静态层对终代技能拦截率仅 5.6%。
- 未在闭源商业扫描器上实测迁移性;实验基于单一检测框架与 3 个开源模型栈,并在合成权限环境中对 12 种预设木马类型进行评测。
- 模型
- glm (z-ai/glm-5.1)qwen3t (qwen/qwen3-235b-a22b-thinking-2507)gpt-oss (openai/gpt-oss-120b)all-MiniLM-L6-v2
- 基准
- 12 Trojan attack types (Table B.1)Synthetic victim environmentsSkillSpector (commit a5092dd, v2.2.3)
- 指标
- ASRdetector FN ratedetector FP rateself-convergenceplasticitycoveragemean time-to-counter
研究者提出 Pretext,用于评估了解检测器内部机制的攻击者能否绕过 Agent 技能安装前的安全扫描。论文报告,这类白盒攻击可以在保留技能正常功能的同时逃过结合静态检查与语言模型判断的检测框架,并在三个开源模型上比较了检测器固定及与攻击者共同适应两种设置。作者报告两种设置下仍存在较高的绕过风险,指出安装前扫描不足以单独保证技能执行安全。这些结论来自论文作者的实验,不能视作所有技能扫描器或实际部署环境的普遍结果。
推荐理由论文给出针对技能扫描器的白盒绕过方法与两种检测器设定下的成功率,做 Agent 技能供应链安全的团队可据此评估现有扫描器的边界。
深度解读
这篇论文试图解决什么问题?
现有静态结合大模型的技能安全检测框架在面对知晓规则的白盒攻击者时易被绕过。
这篇论文试图解决基于“静态规则加语义大模型”的智能体技能安全检测框架在面对知晓规则的攻击者时易被绕过的问题。
- 背景与重要性:作者指出,智能体生态(如 OpenClaw 与 Claude Code)广泛使用第三方市场分发的技能,已有实证研究证实市场中存在携带隐蔽漏洞的行为恶意技能及提示注入风险,因而催生了技能安装前的安全审查检测器。
- 现有防御机制设计:以 NVIDIA SkillSpector 为代表的检测框架结合了确定性静态检查与大语言模型语义评判,通过静态特征匹配、语义分析器与元分析过滤两阶段流水线计算风险分数。
- 核心观察与假设:作者认为这类流水线存在设计缺陷,静态代码分析无法拦截纯自然语言描述的载荷,而语义分析模型容易被跨文件拆分和伪装成正当功能的指令所规避。
- 威胁模型:
- 攻击者目标:构造恶意技能,在规避安全扫描器拦截(风险评分低于 20 分)的同时,诱导受害智能体执行指定恶意行为,并正常完成预设良性任务。
- 攻击者知识:属于白盒攻击者(white-box),完全获知检测器的 64 条确定性基础规则与语义分析器提示词,但不知晓数值评分公式、拦截阈值以及自适应检测器学习到的启发式规则。
- 攻击者能力:攻击者仅能编写和修改技能包内的文本内容(包括 SKILL.md、文件结构、伪装用词与跨文件分散载荷),不能直接执行代码或篡改检测系统代码。
- 受害系统:受害智能体运行被测模型,并在提示词中挂载合成受害环境描述(如模拟 shell、出站 HTTP 或环境变量)。
有哪些相关研究?
相关研究涵盖恶意技能构建、静态分析及大模型审查,本文探讨跨世代自适应攻防。
- 恶意智能体技能攻击机制:
- 提示注入与自适应重写:Jia 等人(2026)的 Skillject 采用攻击者/受害者/评估者博弈自动重写技能提示词;作者指出该工作每次针对单个技能重新推导,未跨运行积累知识。
- 投毒与后门攻击:Qu 等人(2026)研究代码智能体技能生态中的供应链投毒;Feng 等人(2026)的 Skilltrojan 提出等待触发的加密后门载荷;Ning 等人(2026)的 Skillharm 提出固定载荷与自突变投毒攻击。
- 隐蔽漏洞与未修改技能利用:Saha 等人(2026)研究语义供应链攻击;Duan 等人(2026)的 Skillattack 探索利用未修改良性技能的潜在缺陷进行红队攻击。
- 智能体技能安全检测与验证框架:
- 静态分析框架:Shaikh(2026)的 ClawVet 针对 OpenClaw 生态进行技能审查;Payne(2026)的 SkillScan 针对技能与 MCP 工具包进行静态扫描(作者注明其已于 2026 年 7 月退役);Acharya(2026)提出针对信息物理系统智能体技能投毒的静态与防御分类。
- 大语言模型审查:LLMSecurity(2026)的 SkillGuard 和 Etteib 等人(2026)基于注意力机制的大模型审查;ClawHub 社区(2026)的技能审查工具采用大模型红线检查清单。
- 组合式多层防御:Cisco AI Defense(2026)的技能扫描器、Hou 与 Yang(2026)的 SkillSieve、Yang 等人(2026)的 SkillGate,以及商用工具(Snyk Labs, 2026; ESET, 2026)均结合静态信号与行为或模型分析。
- 基线方法与实验基准:
- 本文以 NVIDIA 的开源检测框架 SkillSpector(commit a5092dd,版本 2.2.3)为目标基线,包含 64 种确定性规则及 3 个大语言模型语义分析器与元分析器。
- 评测基准为涵盖 12 种木马攻击类型的合成环境任务集合(Table B.1)。
- 本文定位与区别:
- 作者指出,相比单次独立优化的攻击方法,PRETEXT 引入了跨世代累积经验的持久记忆;同时,作者称本文是首次在攻击者与防御者协同进化的自适应设定下评估技能攻击。
- 恶意智能体技能攻击机制:
论文如何解决这个问题?
通过自然语言载荷拆分、双层反思记忆及良性孪生对齐实现对检测器的迭代规避。
作者提出了 PRETEXT,一个通过迭代提炼载荷设计与跨世代反思记忆来规避技能检测框架的白盒攻击方法。
问题设定与评分形式化
检测器 SkillSpector 在不执行代码的前提下对技能包进行静态与语义分析并计算风险分数: score = min(100, ⌊ α ∑f ∈ F w(sev(f)) ⌋) 其中 F 为通过元分析器过滤后留存的违规项集合,严重性权重 w 对 CRITICAL、HIGH、MEDIUM、LOW 分别赋值 50、25、10、5,当技能包内包含可执行脚本时乘数 α = 1.3,否则 α = 1。若最终评分低于 20 则判定为安全(safe),即攻击成功规避检测。
单轮迭代优化流水线
- 初始设计与扫描:攻击者依据攻击类型生成包含伪装说明与载荷的技能文件(SKILL.md 及配套文件),提交给检测器扫描。
- 反馈与修改:单次运行最多进行 3 轮交互迭代(Figure 2);若被检测拦截(评分 ≥ 20),触发的规则与推理反馈给攻击者进行修改;若成功规避(评分 < 20),则交由受害智能体在合成环境中运行。
- 裁决与交付判定:独立的裁决模型(verdict LLM)检查受害智能体的文本输出,若载荷未执行,将受害者输出及裁决反馈给攻击者;若载荷执行且良性任务完成,单次运行判定为成功(success)。
跨世代持久记忆与反思机制
- 双层记忆架构:攻击者维护包含全局部分与 12 种攻击类型专有部分的持久记忆(MEMORY.md),条目带有假设
[hypothesis]、经验证的经验[confirmed×N]或冲突标记[conflict]。 - 世代反思:每一世代包含 12 种攻击类型并行运行;世代结束时,反思器模型汇总运行记录,对假说进行确认、合并、修改或标记冲突,更新记忆供下一世代使用(Figure 3)。
攻防协同进化模式
- 固定检测器模式(Mode A):检测器固定不变,攻击者单向进行跨世代经验积累与策略优化。
- 协同进化对抗模式(Mode B):检测器在固定基础检测之上增加一个学习启发式层(LLM 驱动),根据漏报归纳新规则,根据误报收窄或撤回规则。
- 良性孪生对齐:每代为每个恶意技能配备同领域同主题的良性孪生技能(benign twin),迫使检测器学习区分恶意意图而非主题相似性(Figure B.1)。附录 B.1 与 B.6 给出了完整提示词与知情说明。
论文做了哪些实验?
在固定与协同进化检测器下评估 3 个模型栈,固定检测器下最高达 96.7% ASR。
实验设置
- 被测模型:攻击者模型固定为 glm(z-ai/glm-5.1);检测器、受害者和良性技能生成者角色分别测试了三套模型栈:glm(z-ai/glm-5.1)、qwen3t(qwen/qwen3-235b-a22b-thinking-2507)和 gpt-oss(openai/gpt-oss-120b)。所有模型均通过 OpenRouter 调用;检测器的 LLM 阶段与裁决模型温度均设为 0。
- 数据集与攻击类型:覆盖 12 种木马攻击类型(如数据窃取、提示注入与泄露、内存投毒、危险代码执行等,详见 Table B.1),每种类型匹配预设的载荷目标、裁决准则与合成受害环境。
- 评测基线与工具:以 NVIDIA SkillSpector(commit a5092dd,版本 2.2.3)为目标检测框架;包含 64 种确定性规则及 SSD、SDI、SQP 语义分析器和元分析器。
- 指标定义:攻击成功率 ASR(规避检测且载荷执行且完成良性任务的比例)、检测器漏报率 FN(评分 < 20 的恶意技能比例)、检测器误报率 FP(评分 ≥ 20 的良性技能比例)、自收敛度 self-convergence(基于 all-MiniLM-L6-v2 嵌入的记忆余弦相似度)、塑性 plasticity(记忆规则调整比例)、覆盖度 coverage。
- 样本量与重复次数:Mode A 运行 10 世代,每代 N=12 次运行,迭代上限 iter=3,重复 R=5 次独立实验;Mode B 运行 6 世代,每代 N=12,iter=3,重复 R=5 次独立实验。扫描超时(900 秒)的样本作为无效样本剔除。
主结果
表格较宽,可左右滑动
目标模型栈 模式与条件 ASR (%) 检测器 FN (%) 检测器 FP (%) 记忆塑性 出处 qwen3t Mode A(固定检测器) 96.7 ± 4.6 未报告 未报告 0.09 ± 0.05 Table D.1 glm Mode A(固定检测器) 63.2 ± 7.1 未报告 未报告 0.28 ± 0.27 Table D.1 gpt-oss Mode A(固定检测器) 70.5 ± 14.2 未报告 未报告 0.24 ± 0.13 Table D.1 qwen3t Mode B(盲测 blind) 65 75 ± 11 40 ± 12 0.48 Table D.2, Fig 4 glm Mode B(盲测 blind) 39 52 ± 15 20 ± 8 0.53 Table D.2, Fig 4 gpt-oss Mode B(盲测 blind) 40 59 ± 14 62 ± 14 0.40 Table D.2, Fig 4 qwen3t Mode B(知情 informed) 76 78 ± 18 30 ± 9 0.44 Table D.2, Fig 4 - 固定检测器下的模型差异:作者称,PRETEXT 在固定检测器下对 qwen3t 取得了 96.7% 的 ASR,攻击者迅速锁定策略且塑性仅 0.09;而 glm 表现出更强的防御对齐,ASR 为 63.2%,攻击者保持持续探索状态。
- 协同进化下的防御代价:作者指出,在自适应防御下 ASR 虽然出现回落,但伴随着高误报率,gpt-oss 在盲测设定下误报率达到 62 ± 14%,说明自适应检测器倾向于通过过度拦截牺牲正常效用。
- 知情与盲测设定的表现:作者称,告知攻防双方自适应机制(informed)并未带来一致的性能改变,行为差异主要由模型本身而非对进化的知情驱动。
自适应检测器的覆盖度与滞后分析
- 测了什么:在 Mode B 下评估自适应检测器学习到的启发式规则对攻击者经验的覆盖比例(coverage)及反制延迟(mean time-to-counter,单位为世代数)(Table D.2)。
- 结果:在盲测条件下,glm 的检测器覆盖度为 0.61 ± 0.07,延迟为 0.30 ± 0.11;qwen3t 的覆盖度为 0.54 ± 0.06,延迟为 0.27 ± 0.04;gpt-oss 的覆盖度为 0.33 ± 0.05,延迟为 0.52 ± 0.16。
- 作者解读:作者称,gpt-oss 虽然压低了攻击曲线,但其启发式规则覆盖度仅为 0.33 且响应较慢,其防御效果并非来自精准反制,而是大范围误判良性技能。
纯静态检查层的独立拦截能力
- 测了什么:使用 SkillSpector 的纯确定性静态检查模式(--no-llm,跳过语义与元分析模型)对全部终代攻击技能进行重测(Table D.4)。
- 结果:在全部 178 个技能样本中,仅有 10 个(5.6%)被纯静态层拦截达到 20 分阈值,平均静态风险评分为 2.9;按模型划分,qwen3t 为 0/60(0.0%),glm 为 6/59(10.2%),gpt-oss 为 4/59(6.8%)。
- 作者解读:作者认为,静态规则并非主要约束,在攻击者掌握完整规则的前提下绕过静态检查在原理上是可行的。
其他消融与分析
- 成功攻击所需平均迭代次数(终代,Figure D.1):Mode A 下 qwen3t 约为 1.1 次,glm 约为 1.8 次,gpt-oss 约为 1.8 次;Mode B 各模型普遍高于 1.6 次。
- 攻击者记忆更新结构(Table D.3 全世代均值):删除旧经验比例在各模型和模式下为 0.8% 至 6.9%,新增经验比例为 8.9% 至 22.6%,改写经验比例为 15.3% 至 44.2%。
- 检测器超时剔除比例(Table C.1):gpt-oss 在 Mode A、Mode B blind、Mode B informed 分别为 10.0%、16.0%、17.3%,glm 为 2.0% 至 4.8%,qwen3t 为 0.2% 至 1.3%。
有什么可以进一步探索的点?
作者指出商业扫描器迁移性待验证,实验覆盖单一检测框架与 3 个开源模型栈。
作者指出的局限与后续方向
- 商业闭源扫描器的迁移性评估(Section 5 Limitations):作者指出未评估 PRETEXT 向商业扫描器的迁移表现,主要因为其闭源、专有性质及未公开规则与规范;尽管作者推测由于同属“静态加模型”架构可能具备迁移性,但将其明确归为推测而非实验结果。
- 代码与数据开源计划(Section 15, D.5):作者在附录中指出,计划随代码公开发布完整的终代反思记忆文件、各指标计算公式与测试示例。
实验覆盖范围
- 目标检测框架:实验以开源框架 NVIDIA SkillSpector(版本 2.2.3,commit a5092dd)及其规则库为测试对象。
- 模型栈覆盖:攻击者模型固定为 glm-5.1,检测器、受害者和良性生成者测试了 glm-5.1、qwen3-235b-a22b-thinking-2507、gpt-oss-120b 共 3 个开源模型。
- 攻击任务类型:实验覆盖了 12 种预设的木马攻击类型,并在合成环境中模拟受害权限(如伪 shell、HTTP、环境变量)。
- 进化轮次与规模:Mode A 设定为 10 世代,Mode B 设定为 6 世代,单轮迭代上限设为 3 次,每组设定进行 5 次重复实验。
- 纯静态规则测试:在消融实验中仅对终代生成的 178 个技能进行了纯确定性规则(--no-llm)复测。
总结一下论文的主要内容
论文提出了针对多阶段技能检测器的白盒攻击,揭示了单纯依赖大模型自适应检测的局限。
PRETEXT 是一项针对基于“静态规则加语义大模型”的智能体技能安全检测框架的白盒攻击与协同进化评估研究。
- 要解决的问题:智能体通过技能扩展功能时引入了恶意代码执行等安全风险;针对现有依赖多阶段检测来拦截恶意技能的工具,其在面对知晓检测规则与提示词的攻击者时的有效性与自适应防御代价尚不明确。
- 方法要点:通过将恶意载荷转化为自然语言并分散在多文件中以规避静态与孤立语义检测;利用跨世代两层反思记忆沉淀攻击经验;并在攻防协同进化(Mode B)中引入同领域良性孪生技能进行对抗。
- 关键实验结果:
- 在固定检测器(Mode A)下,对 qwen3t 的攻击成功率达到 96.7 ± 4.6%,对 glm 为 63.2 ± 7.1%,对 gpt-oss 为 70.5 ± 14.2%(Table D.1)。
- 在协同进化检测器(Mode B)下,攻击成功率降至 31% 至 76%(Figure 4),但伴随较高的良性技能误报率,如 gpt-oss 盲测下误报率达 62 ± 14%(Table D.2)。
- 纯静态规则层对终代技能的拦截率仅为 5.6%(Table D.4)。
- 作者的结论与启示:作者认为,单纯采用自适应或保守的大语言模型检测会损害正常技能的可用性,智能体安全需要在执行阶段建立沙箱、拦截与权限限制等多层防御。