ClawHub安全信号:当VirusTotal、静态分析与SkillSpector各执一词时 ClawHub Security Signals: When VirusTotal, Static Analysis, and SkillSpector Disagree
发布67,453个代理技能安全数据集,揭示三类扫描器攻击面上罕见重叠、分歧结构化,主张分层治理。
前置知识
Agent Skills(代理技能)
面向AI代理的可复用软件层,以SKILL.md指令文档为核心并附带脚本、参考资料与能力声明,打包成可安装bundle。安装后它成为代理有效程序的一部分,运行时整段载入上下文窗口,据此读文件、跑命令、调API。其风险常落在自然语言指令而非二进制中。
本文研究对象就是代理技能。理解技能是什么、风险分布在产物层/工具-MCP层/运行时层,才能明白三类扫描器为何'看的东西不同'从而产生结构化分歧。
弱监督(Weak Supervision)
数据编程范式:存在多个精度未知、各自带噪声的标注器(此处即三个扫描器)时,不把任一标注器当真值,而把它们作为可聚合的弱监督源去噪后得到银标准标签。本文据此把verdict视为银标准、把扫描器视为待比较的弱标注器。
弱监督是全文方法论框架。不掌握它会把扫描器分歧误当'缺陷'而非'发现',也无法理解作者为何刻意回避prevalence强主张、只研究检测器之间的一致性。
Cohen's κ 与 Jaccard(一致性度量)
Jaccard衡量两集合重叠占比 $J=|A\cap B|/|A\cup B|$,未经随机修正;Cohen's κ扣除随机一致后的机会修正一致性,按Landis-Koch量表分档(0-0.2为slight)。本文两者并用,Jaccard最高0.104、κ在0.045-0.082的slight区间。
论文核心结果都由这两个指标支撑。不读懂数学含义就无法判断'0.69%三重一致''81.9%单扫描器命中'算多严重,进而无法理解单一扫描器不可作allow/block甲骨文。
Model Context Protocol(MCP)与工具层
代理连接外部工具/API的协议,服务端暴露自然语言工具描述,代理可能把描述当指令执行。已知攻击含tool poisoning、tool-description-injection与rug pull(更新后变恶)。技能经MCP把代理路由到工具,故工具层是独立于技能产物的攻击面。
SkillSpector深入工具/MCP层做语义风险推理,而VirusTotal与静态分析基本只看产物层。理解MCP才能抓住'分歧结构化'根因——扫描器采样的是技能对象的不同栈层。
研究动机
代理技能已成为面向AI代理的可复用软件层:它把指令、工具调用模式、约束、依赖甚至可执行辅助代码打包,安装后直接改变代理的有效程序,运行时再被整段载入上下文窗口。这使得技能成为一种天然的可信内容通道——从文档到行动的链路意味着风险不仅落在可执行代码上,还落在意图、披露、授权与数据流向上。已有证据触目惊心:Koi Research的ClawHavoc报告审计2,857个ClawHub技能发现341个恶意技能,随市场扩张更新到824个,涉及安装器社工、混淆shell、信息窃取、反弹shell与凭证外泄。然而既往研究都聚焦于prevalence(在单一检测器下有多少技能脆弱或恶意),却回避更根本的问题:当注册中心同时部署多个独立检测器时,它们是否一致?单一检测器主导的注册中心会完整继承该检测器的盲点。
本文的目标是本文目标不是估算恶意技能流行率,而是公开、可复现地度量多个独立安全扫描器在同一批技能上的分歧,并解释分歧结构。具体地,作者从clawhub.ai在2026年5月31日做快照得到67,453个最新公开技能版本,每个技能附带ClawScan注册中心最终verdict(clean/suspicious/malicious)与三个独立扫描器家族的原始信号:VirusTotal(恶意软件信誉)、静态启发式分析、NVIDIA SkillSpector(语义化代理风险)。作者把verdict显式声明为银标准而非人类标注真值,把三个扫描器当作精度未知的弱监督源,量化成对重叠、机会修正一致性、三重一致率,并按攻击面解释分歧为何高度结构化,最终导出分层治理而非单一allow/block的设计原则。
与已有工作不同的是,本文切入角度有三。其一,既有agent-skill安全研究几乎都回答'有多少技能是坏的',而本文回答'多个检测器对同一技能看法是否一致'——前者预设单一检测器可靠,后者把检测器互为参照。其二,这是首个公开、registry-scale暴露多扫描器分歧的数据集:Ohm等人174个npm/PyPI/RubyGems包、Liu等人31,132与98,380规模技能研究要么只发单一信号、要么不公开(见Table 1)。其三,作者刻意把分歧当'发现'而非'缺陷',用产物层/工具-MCP层/运行时层的三层威胁模型解释分歧必然发生——这种把分歧结构化而非压扁成一个准确率数字的处理,是与以往工作最本质的区别。
核心方法
整体思路是先抓取真实注册中心快照而非自造合成数据,再让三套互补扫描器在完全相同的技能集合上各跑一遍,最后把'它们在哪里一致、在哪里分歧'本身作为研究对象。直觉上三个独立工具审查同一对象应给出大量重叠,作者预期重叠很高,实测却极低,于是转向解释'为何低'。技术路线遵循数据编程范式:把每个扫描器视为弱标注器,把ClawScan的LLM生成verdict视为银标准标签,计算两两Jaccard、Cohen's $\kappa$与三重一致模式,并按verdict条件做交叉表分析,把统计结果映射回三层威胁模型,给出'每个扫描器到底采样了技能对象的哪一层'的机制解释。
核心创新是把扫描器分歧重新框定为攻击面的分工,而非检测质量的优劣。VirusTotal与静态分析工作在产物层(捆绑代码、文件信誉),SkillSpector通过对指令与能力声明的语义推理触及工具/MCP层,而运行时层三者都没完整观测。因此分歧不是噪声而是信号:恶意verdict区域由捆绑代码恶意证据驱动(VirusTotal正向),审查待定区域由语义代理风险驱动(SkillSpector正向),主导扫描器在两个区域间反转。这与'用单一准确率评判检测器'有本质区别,并直接导出分层治理而非单一allow/block的设计原则。
方法步骤详情
方法分五步。第一步快照采集:从clawhub.ai在2026-05-31抓取,原始含187,423条源产物与67,478条规范化技能产物,校验得67,453条带verdict的viewer语料并确定式切分。第二步清洗脱敏:对SKILL.md脱敏、对58,516个捆绑文件(278.9 MB)做TruffleHog密钥扫描,redact 387个类密钥值且复扫零遗漏。第三步扫描执行:三套扫描器在约98%行上运行,VirusTotal覆盖65,640行、SkillSpector覆盖66,206行。第四步verdict聚合:ClawScan汇聚三套输出加provenance与审核上下文,由GPT-5.5 high(覆盖99.6%行)产出verdict与Skill Card,置信度高/中/低为87.1%/12.5%/0.4%。第五步分歧度量:统计35,600条至少一正向信号的行,按Table 4的upset分解与两两$\kappa$、Table 5的verdict条件交叉表,并算信号幅度分离(SkillSpector分数clean 22.1→suspicious 59.3→恶意正向82.4)。
技术新颖性
技术新颖性四点。一是首个公开的多信号配对:同一技能同时挂载registry verdict加三套独立扫描器原始信号,使分歧'直接可观测',而既有数据集只暴露单信号或不公开(Table 1)。二是显式银标准epistemics:作者拒绝把verdict包装成真值,而用Datasheets/Model Cards的文档优先信任传统,把标签谱系全部显式化,并明确LLM-as-judge偏置与circularity风险。三是surface-separation结果:把分歧从统计现象提升为可解释的攻击面分工,恶意区域VirusTotal正向72.8%而SkillSpector仅6.8%,suspicious区域SkillSpector 75.3%——这种'主导扫描器反转'是论文最有力论据。四是把弱监督范式引入安全领域,提议把相互分歧的扫描器聚合为去噪label model,作为后续triage模型基线。
实验结果
核心发现围绕'重叠极小、分歧结构化'。67,453行中35,600行(52.8%)至少一正向信号,但三重一致仅468行(占全部0.69%、占正向行1.31%),单一扫描器命中占正向行81.9%。两两重叠Jaccard介于0.065与0.104间,机会修正后的Cohen's $\kappa$全在Landis-Kock的slight档(0.045-0.082),仅略高于随机。结构化体现在Table 5:suspicious区域(25,504行)SkillSpector正向高达75.3%且是56.3%可疑技能的唯一正向源;malicious区域(206行)却反转——VirusTotal正向72.8%、SkillSpector仅6.8%(192行无issue)。更有24.3%的恶意verdict完全无任何扫描器正向,纯由provenance与审核上下文驱动。信号幅度也分离:SkillSpector分数从clean的22.1升到suspicious的59.3、恶意中正向者平均82.4。结论是任一单一扫描器都是糟糕的allow/block甲骨文,分层治理不可避免。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 两两扫描器原始一致性 | Jaccard(越高越一致) | VT∩Static 0.065、VT∩SkillSpector 0.094、Static∩SkillSpector 0.104,最高仅0.104 | 若三工具高度同质应接近1,或等于各正向率 | 证实重叠远低于'三工具应高度一致'的直觉 |
| 两两扫描器机会修正一致性 | Cohen's κ(Landis-Kock量表) | 0.045-0.082,全部落在slight档 | κ=1完全一致、κ=0等于随机 | 扣除随机后分歧依旧,证明一致性仅略高于随机 |
| 三重一致率 | 三扫描器同时正向的行占比 | 0.69%(468行),正向行中1.31% | 若独立约为三正向率乘积 | 量化了'三方共识'的稀缺 |
| verdict条件下的主导扫描器 | suspicious与malicious正向率反转 | SkillSpector 75.3%→6.8%,VirusTotal 12.7%→72.8% | 若扫描器同质则两区域正向率相近 | 用攻击面分工解释分歧,支撑分层治理结论 |
局限与改进
作者坦承多项威胁有效性。其一,verdict是银标准而非人类真值,由GPT-5.5 high生成(覆盖99.6%行),换模型或审核配置会移动clean/suspicious边界,故只研究分歧(对verdict误差稳健)而刻意回避prevalence强主张。其二,circularity:SkillSpector部分基于LLM,verdict也是LLM,二者相关性可能源于共享机制而非独立确认,LLM-as-judge还带位置/冗长/自我增强偏置——这是研究分歧而非'与verdict一致性'的理由。其三,单一注册中心、单一快照(2026-05-31)、英文偏重、仅最新版本,技能与扫描器版本都在漂移。其四,运行时层无人完整观测,最准确的风险信号需沙箱执行与工具调用遥测,但registry-scale成本高昂。我额外观察:脱敏阻止字节级复现扫描决策;Table 5中malicious仅206行统计功效有限;SkillSpector 49.6%正向率偏高,可能放大与VT的表观分歧。
独立分析的弱点
独立看,第一弱点是缺少人类adjudicated真值——25.6%可疑技能与24.3%恶意verdict依赖单一或零信号,无金标准就无法判定分歧里哪方'对';改进方向是构建过采样分歧样本的人工标注子集,并把标注者间一致性作为一等结果报告。第二弱点是运行时盲区:文本安全不迁移到工具调用安全,三者都没观测代理实际行为;改进方向是沙箱化技能执行、采集工具调用与数据流动遥测作为昂贵补充信号。第三弱点是LLM circularity:SkillSpector与verdict共享LLM机制致相关性虚高,可引入非LLM符号化代理风险检测器交叉验证。第四弱点是单registry/单快照/英文偏重,外部效度受限;改进方向是跨注册中心、跨时间窗、多语种复现。第五弱点是恶意集仅206行,分层统计功效弱,建议扩样或加权。
未来方向
作者明确提出三向。一是人类adjudication:过采样单扫描器正向、扫描器冲突、clean-but-advised、高代理风险类别与含代码bundle的行,记录declared purpose、observed behavior、privilege、external sinks、secret handling、persistence、hidden instruction等多维标签,而非强制单一标签;标注者分歧本身作为研究产物。二是skill-security triage模型:基于消毒后bundle内容加扫描器元数据,预测语义advisory是否触发审查、是否需补充文档、贡献何种registry posture,并起草Skill Card摘要;作者指出§6的分数分离证明模型有真实信号。三是弱监督聚合:把分歧的扫描器聚合成去噪label model作首个基线。基于成果我延伸:可把surface-separation结果迁移到浏览器扩展/语音技能/MCP服务市场做多生态对比,并引入对抗鲁棒性测试,因SkillSpector基于自然语言推理存在prompt-injection规避风险。
复现评估
复现性中等偏上。数据集在Hugging Face Hub公开发布(OpenClaw/clawhub-security-signals),MIT许可,附Gebru式datasheet与机读元数据,确定式split与分析脚本一同发布,清洗校验报告零遗漏,387个密钥值已redact且TruffleHog复扫为零。算力门槛低——本文是测量研究而非训练,读者可下载CSV直接复算κ/Jaccard。但有三处障碍:一是脱敏阻止字节级复现扫描器决策,需配套发布的扫描器元数据;二是VirusTotal、SkillSpector为外部商业/专有工具,其版本与策略随时间漂移;三是verdict由特定时点的GPT-5.5 high与审核配置生成,换模型会改变clean/suspicious边界。综合判断:统计分歧的结论可高度复现,绝对verdict标签与逐行检测结论难以精确复现。
论文图表