AI Pulse

ClawHub安全信号:面向Agent技能安全研究的大规模多扫描器数据集

ClawHub安全信号:面向Agent技能安全研究的大规模多扫描器数据集

ClawHub Security Signals: Large Corpus Multi-Scanner Dataset for Agent Skill Security Research

📦 Dataset: OpenClaw/clawhub-security-signals · MIT License 📄 Research Publication: ClawHub Security Signals: When VirusTotal, Static Analysis, and SkillSpector Disagree

ClawHub Security Signals是一个银标准数据集,包含来自ClawHub注册表(OpenClaw官方技能平台)的67,453个公开Agent技能。每行将经过清理的技能内容与ClawScan注册表裁决以及来自三个扫描器家族(VirusTotal、静态启发式分析和NVIDIA SkillSpector)的支持性证据配对。

裁决由ClawScan注册表流水线根据扫描器证据、来源信号、元数据和审核上下文生成,并非人工标注。本次发布的目标是支持从事Agent供应链安全、多信号分类以及当AI Agent安装可复用技能和插件时出现的一类风险的研究人员。

为什么Agent技能是一个不同的安全问题

大多数安全工具始于一个熟悉的问题:这个工件是否包含恶意软件?这个问题对Agent技能同样重要,但它不足以确定风险。

一个Agent技能可以是Markdown指令文件、Python脚本、工作流定义、引用,或者这些的集合体。当Agent加载一个技能时,它可能获得调用工具、访问上下文、发出子任务、安装依赖或与外部服务交互的新方式。这种表面引入了经典恶意软件扫描器无法捕捉的故障模式:

- 要求远超其声称目的所需权限的技能, - 旨在在处理时引导或劫持Agent行为的指令, - 可能泄漏通过上下文传递的数据的代码路径, - 尽管描述无害但具有危险副作用的工作流, - 硬编码的凭证、不安全的TLS设置、动态执行或破坏性的Shell模式。

其中一些看起来像常规软件安全问题,另一些则特定于Agent系统——在这种系统中,一份文档可以变成操作指令,一个工作流可以改变自主助手的允许行为。ClawHub Security Signals旨在揭示这一边界。

数据集内容

该数据集涵盖67,453个最新的公开ClawHub技能版本,分为四个确定性的划分:训练集(47,262)、验证集(10,076)、测试集(6,747)和评估保留集(3,368)。评估保留集保留用于模型评估,不应用于训练。

每行包含经过脱敏的SKILL.md内容、清理后的捆绑文件(如果存在)、最终的ClawScan裁决以及汇总的扫描器证据。在准备过程中,从导出的捆绑内容中删除了387个类似秘密的值。经过验证的TruffleHog机密扫描在验证后未发现任何已验证的机密。

ClawScan为每个技能版本分配一个注册表裁决:

- clean: 41,743行(61.9%) - suspicious: 25,504行(37.8%) - malicious: 206行(0.3%)

suspicious裁决意味着该技能在受信任之前需要审查,并非确认有害的标签。malicious裁决仍然是银标准的注册表裁决,在现阶段并非人工验证的地面真相。

所有三个扫描器输入覆盖了约97-98%的语料库:

| 扫描器 | 包含源的行的数量 | 源覆盖率 | 阳性行数 | 占总行数的比例 | |---|---|---|---|---| | VirusTotal | 65,873 | 97.66% | 5,225 | 7.75% | | 静态分析 | 66,185 | 98.12% | 4,434 | 6.57% | | SkillSpector | 66,222 | 98.18% | 32,856 | 48.71% |

SkillSpector较高的建议阳性率反映了其更广的范围。它揭示的语义风险模式不一定表示恶意软件,但在Agent上下文中值得审查。SkillSpector信号是建议性的,而非指控,并且本身不阻止安装。

主要发现:结构性扫描器分歧

数据集中信息量最大的信号不是任何单个扫描器的报告,而是扫描器之间如何分歧。

扫描器之间的成对Jaccard相似度从未超过0.104,Cohen's kappa在0.045到0.082之间。这接近零,但并非随机噪声。它反映了三种工具检查不同表面:恶意软件声誉、静态代码模式和语义Agent风险。

在至少有一个阳性扫描器信号的35,600行中,26,527行是仅SkillSpector阳性:这些技能不会引发VirusTotal或静态分析阳性,但会引发关于权限、信息披露、数据流、工具投毒或过度智能体性的语义风险建议。只有468行(占数据集的0.69%)在所有三个扫描器家族上均为阳性。

基于裁决的条件模式表明为什么单个扫描器是不够的:

- 在clean行中,VirusTotal阳性率为4.4%,静态分析为3.2%,SkillSpector为32.7%。 - 在suspicious行中,VirusTotal阳性率为12.7%,静态分析为12.0%,SkillSpector为75.3%。 - 在malicious行中,VirusTotal阳性率为72.8%,静态分析为12.6%,SkillSpector为6.8%。

VirusTotal在malicious裁决区域最强。SkillSpector在需要审查的中间区域最强。这正是关键点:恶意软件声誉与语义风险审查是不同的任务,技能注册表两者都需要。

SkillSpector风险类别

排名靠前的SkillSpector建议类别包括:MCP最小权限(9,641行)、MCP工具投毒(5,084)、数据外泄(2,192)、危险代码执行(1,629)、恶意Agent(1,428)和供应链(1,336)。

这些不是滥用标签。它们描述了权限、范围、工具语义、执行风险、数据流和信息披露属性——当这些属性被记录并限定范围时,可能是合法的。

静态分析原因代码

最常见的静态发现包括:suspicious.dangerous_exec(1,428)、suspicious.env_credential_access(1,298)、suspicious.exposed_secret_literal(1,219)和suspicious.dynamic_code_execution(451)。静态分析还在433行中发现了suspicious.prompt_injection_instructions,其中指令文本与提示注入模式相匹配,独立于SkillSpector的语义分析。

加载数据集

`python from datasets import load_dataset

dataset = load_dataset( "OpenClaw/clawhub-security-signals", name="default", )

train = dataset["train"] print(train[0]["skill_slug"], train[0]["clawscan_verdict"]) `

扫描器摘要与最终的注册表裁决保持分离,因此你可以直接研究分歧:

`python positive = {"suspicious", "malicious"}

vt_flagged = train.filter( lambda row: row["virustotal_status"] in positive )

has_bundle = train.filter( lambda row: len(row["skill_bundle_content"] or []) > 0 )

all_three = train.filter( lambda row: row["virustotal_status"] in positive and row["static_status"] in positive and row["skillspector_status"] in positive ) `

捆绑内容以清理后的文本形式包含(如果存在)。类似秘密的值已在导出前删除。

研究方向

我们希望为研究社区提供支持,并乐于帮助推动安全Agent系统的开发。我们已经确定了若干可能的途径:

- 多信号分类。低扫描器间一致性表明,基于恶意软件声誉、静态分析和语义风险的集成方法可能优于任何单一扫描器。 - 技能文本中的提示注入检测。suspicious.prompt_injection_instructions的433个静态发现和5,084个SkillSpector MCP工具投毒行为为在真实Agent指令内容上评估检测器提供了起始信号。 - 最小权限策略学习。9,641个MCP最小权限发现可以支持从技能声明和捆绑内容推断最小所需权限的工作。 - 弱监督与标签精炼。ClawScan裁决可以被视为有噪声的操作标签,而扫描器输出作为独立的弱信号。有争议的中间区域是感兴趣的部分,而非需要平滑掉的内容。 - 信任工件。技能需要面向用户的安全解释:技能宣称了什么、请求了什么权限、扫描器发现了什么,以及为什么注册表建议安装、审查或阻止。

注意事项

- 银标准标签。注册表裁决由自动化流水线生成,而非由人工标注者分配。将其视为操作标签,而非安全地面真相。 - SkillSpector信号为建议性。SkillSpector阳性意味着检测到语义风险模式,技能值得审查。它不是裁决,不是恶意意图的证据,也不应单独用作阻止或移除决策的输入。 - suspicious意味着需要审查。suspicious裁决是一个信号,表明在敏感上下文中信任该技能之前需要审查。它并不表示该技能被确认有害。 - 经过清理但并非完美。此次发布删除了秘密并排除了私有标识符和可运行的私有工件,但没有自动化的清理过程是完美的。在使用捆绑内容于意外暴露至关重要之前,请检查其内容。 - 时间快照。数据集反映了导出时(截至发布时的2026年5月31日)的公开ClawHub目录。技能可能此后已被更新、移除或裁决被修订。

链接

- 数据集:OpenClaw/clawhub-security-signals - OpenClaw: openclaw.ai - ClawHub: clawhub.ai

阅读原文
📚 相关主题 安全研究

📬 订阅 AI Pulse

每天三次更新,不错过重要信号

▲ 回到顶部