系统:运行中
← 返回所有攻击
DEFENSE MEDIUM NEW

SkillVetBench:用「LLM 充当评审」发现技能扫描器漏掉的风险

2026 年 6 月 14 日的一篇 arXiv 论文显示,代码层技能扫描器会漏掉 89%–100% 的指令层威胁,而 LLM 评审能标记出全部 78 个恶意测试技能且零误报。

2026-06-18 // 6 min affects: llm-agents, agent-skills, skill-marketplaces, coding-agents

这是什么?

SkillVetBench 是一套面向 AI 智能体*技能(skill)*的安全评估系统,于 2026 年 6 月 14 日发表在 arXiv(arXiv:2606.15899),作者为美国得克萨斯大学埃尔帕索分校 SUPREME 实验室的 Ismail Hossain、Sai Puppala、Md Jahangir Alam、Tanzim Ahad 与 Sajedul Talukder。它是一篇基准框架论文(arXiv:2606.00925)的公开配套版本,该论文提供了支撑其数据的带标注语料。

技能是现代智能体的扩展单元——一个打包了自然语言指令、脚本以及工具/权限声明的组件(SKILL.md 家族)。ClawHub、OpenClaw 等开放市场如今已托管数以万计的社区贡献技能。论文的核心论点令人不安:这些市场所依赖的扫描器看错了地方。恶意技能的危险往往藏在其指令中,而非可检视的代码里——而这恰恰是代码层工具的盲区。这与 MalSkillBench 所测量、语义合规劫持所利用的,是同一条供应链攻击面。

工作原理

SkillVetBench 让一个 LLM 评审(LLM-as-Judge) 处理完整的技能产物(指令、代码、配置、工具声明——拆分为带类型的片段),并为每个技能输出三个有意分开、绝不融合为单一数字的信号:

  • 三级裁决——良性 / 可疑 / 恶意——并带有位于 [0,1] 区间的置信度分数。
  • 完整的 CVSS v4.0 向量:由评审给出各项指标的分类值(AV、PR、VC 等),再由标准评分函数确定性地算出数值。
  • SARS(Skill Agentic Risk Score,技能智能体风险评分):一个为遵循指令的系统设计的 0–10 原创指标。

SARS 对五个维度按 0–3 打分并加权:

SARS = (2·IFR + 1.5·DG + 1.5·AI + 2·BR + 2·CA) / 2.7   # 0–10

IFR  Instruction Fidelity Risk  — 用户文本能否覆盖技能自身的指令?
DG   Data Gravity               — 公开 → 内部 → 机密 → 受限密钥
AI   Action Irreversibility     — 只读 → 可逆 → 困难 → DELETE/发送/支付
BR   Blast Radius               — 自身 → 团队 → 平台 → 跨系统 / 可蠕虫传播
CA   Chain Amplification        — 与其他技能链接时是否成为放大器?

IFR、BR、CA 之所以承担更高的 2× 权重,正是因为它们是代码层扫描器无法看到的维度——指令劫持的易感性、危害传播的范围,以及在多技能链中的放大效应。等级标签:严重 ≥9.0;高 7.0–8.9;中 4.0–6.9;低 <4.0。

把 CVSS 与 SARS 分开的意义在于:二者之间的差距本身就是信号。在论文数据中,「Data Exposure」技能仅得 CVSS 1.84,「Supply Chain」仅得 2.30——都低于「中」档——但每个都带有偏高的 SARS 维度,并获得可疑裁决。同一个产物作为代码看似无害,作为智能体行动者却很危险。

关键一点:作者对适用范围保持坦诚。评审只读取静态内容。它不执行技能、不在沙箱中运行、不观察运行时参数。每一个裁决评估的都是已声明、可检视的行为,而非实际观测到的行为。

为什么重要

最重要的结果是对检测器盲点的量化测量。在一个受控的 100 个技能集合(78 个确认恶意、22 个良性)上,LLM 评审阶段达到零漏报、零误报,而最强的静态基线(SkillSieve)仍漏掉 15%。在指令层类别上差距更是鸿沟:传统工具漏掉 89% 到 100% 的威胁,CodeBERT 对九个内存投毒技能一个都没检出。如果你的技能审查流水线是签名匹配或静态分析器,那么无论调校得多好,它在结构上都无法看到最常见的技能攻击——提示注入与内存投毒

保持清醒的一个结果:检测率在四个不同 LLM 评审之间从 35% 波动到 95%。LLM 评审并非万灵药;一个弱评审本身就是盲点。这一方差正是论文主张采用集成打分、而非信赖单一模型裁决的依据。

防御

在指令层而不只是代码层审查技能。 把每个第三方技能同时视为可执行代码一条驱动你智能体的指令。一次干净的静态扫描几乎不能告诉你提示注入或内存投毒的风险。增加一个语义审查环节,把自然语言指令、声明的工具与权限一并阅读。

对智能体爆炸半径(blast radius)打分,而不只看 CVSS。 即便不采用该工具,也可借用 SARS 的各个维度:对每个技能,问用户文本能否覆盖其指令(IFR)、它接触的数据有多敏感(DG)、其动作是否可逆(AI)、危害传播多远(BR)、链接后是否放大(CA)。一个爆炸半径大、链式放大高却 CVSS 低的技能是陷阱,而非放行信号。

使用评审集成,并记录由哪个模型裁决。 鉴于评审之间 35%–95% 的差距,把高风险技能交由不止一个模型评审,并将分歧视为升级至人工复核的信号。固定并记录评审者身份,使裁决在时间上保持可比。

对「高/严重」保留人工关卡,且不要信任纯静态裁决。 由于评审只读静态内容,意志坚定的攻击者仍可把行为藏在运行时条件之后。把语义审查与运行时控制结合——如 SkillGuard 那样的默认拒绝权限与运行时监控——这样即便技能溜过审查,也无法在其声明范围之外行动。

不要信任市场的「已审核」徽章。 SkillVetBench 的 ClawHub 双视图之所以存在,正是因为市场官方裁决与独立审查经常分歧。在安装前自行重新审查技能,并在每次版本升级时再审一次。

现状

项目参考日期备注
论文(排行榜)arXiv:2606.158992026-06-14LLM 评审,SARS + CVSS v4.0 + 裁决
配套基准arXiv:2606.009252026-06带标注语料 / 检测结果
受控检测78 恶意 + 22 良性LLM 评审:0 漏报、0 误报
最强静态基线SkillSieve仍漏 15%
指令层差距提示注入、内存投毒传统工具漏 89%–100%
评审者方差4 个 LLM 评审检测 35%–95% → 建议集成
范围限制仅静态分析不执行 / 不观察运行时

结论不是「去用这个排行榜」,而是:技能审查必须移到指令层——并且,对于你的智能体即将运行的代码,任何单一评审(无论是人还是模型)都不应是唯一的关卡。

Sources