遇见数据集

Open Malicious-Code Benchmark (OMCBench)

收藏
github2026-06-01 更新2026-06-03 收录
官方服务:

资源简介:

OMCBench是一个用于评估恶意代码检测能力的基准测试套件。该基准测试包含一个标记的数据集,由800个Python和JavaScript包组成:每种语言包括400个良性包和400个恶意包。数据集提供了文件级的地面真值标签(file_labels.parquet),并用于比较不同恶意代码检测工具的性能。

OMCBench is a benchmark suite for evaluating malicious code detection capabilities. This benchmark includes an annotated dataset composed of 800 Python and JavaScript packages, with 400 benign packages and 400 malicious packages for each language. The dataset provides file-level ground-truth labels (file_labels.parquet) and is used to compare the performance of different malicious code detection tools.

创建时间:
2026-05-27
原始信息汇总

数据集概述:Open Malicious-Code Benchmark (OMCBench)

OMCBench 是一个用于评估恶意代码检测能力的基准测试套件。它由一组标记好的 800 个 Python 和 JavaScript 软件包组成,每个语言各包含 400 个良性400 个恶意 软件包。

该基准测试还发布了 MOLOT 系统卡,描述了其在恶意代码检测方面的进展。MOLOT 与三种开源工具进行了对比:OSSGadget BackdoorRules、bandit4mal 和 Semgrep。

核心性能指标

以下为各工具在软件包级别(400 个软件包/语言,良性与恶意各半)的表现:

Python 生态系统

工具 代码类型 精确率 召回率 F1 分数
MOLOT (ours) 商业使用 0.896 0.865 0.880
ossgadget 开源 0.554 0.770 0.644
bandit4mal 开源 0.519 0.885 0.654
semgrep 开源 0.557 0.685 0.614

JavaScript 生态系统

工具 代码类型 精确率 召回率 F1 分数
MOLOT (ours) 商业使用 0.912 0.885 0.898
ossgadget 开源 0.671 0.805 0.732
semgrep 开源 0.746 0.645 0.692

数据集构成

  • 来源:良性软件包从 PyPI 和 npm 下载量最高的包中采样,并限制为宽松许可证(如 MIT、BSD、Apache-2.0 等)。恶意软件包来自公开的恶意软件源。
  • 标签:每个软件包有真值标签,此外还提供了文件级别的标签(data/file_labels.parquet)。
  • 规模:总计 800 个包,每个生态系统(Python 和 JavaScript)各 200 个良性 + 200 个恶意。

仓库布局

路径 内容
benchmark/ 基准测试代码:工具运行器、输出解析器、指标计算、命令行接口
data/ 参考数据(file_labels.parquet — 文件级真值)
results/ 已发布的基准测试结果
packages/ 800 个软件包存档
tests/ 单元测试

安装与使用

  • 环境要求:Python >= 3.11

  • 安装命令: bash pip install -e .

  • 外部工具:扫描工具需要单独安装,包括:Application Inspector CLI (1.9.55)、OSSGadget BackdoorRules、bandit4mal、Semgrep (1.162.0) 和 Apiiro malicious-code-ruleset。

  • 主要命令

    • python -m benchmark run — 运行完整的基准测试
    • python -m benchmark recalculate — 从保存的原始输出重新计算指标
    • python -m benchmark recompute-ci — 计算自助法置信区间

结果文件

results/ 目录包含已发布的基准测试输出:

文件 内容
manifest.csv 800 个测试包的清单
predictions.parquet 每个工具在包和文件级别的预测结果
metrics.csv 精确率、召回率、F1 分数、ROC-AUC 指标
metrics_ci.csv 包含自助法置信区间的指标

注意事项与局限

  • bandit4mal 仅支持 Python 软件包。
  • Semgrep 在约 10 个大型良性软件包上可能超时(默认 600 秒),这会在 as_benign 模式下略微提高其精确率。
  • 错误处理metrics.csv 中报告了两种模式:as_benign(将工具错误视为良性预测)和 exclude(排除出错包)。
  • 基准测试中的恶意软件包包含真实的恶意负载,必须在隔离环境中处理,切勿安装或执行。
搜集汇总
数据集介绍
Open Malicious-Code Benchmark (OMCBench) 数据集图片
构建方式
在软件供应链安全日益严峻的背景下,恶意代码检测能力的客观评估需求愈发迫切。OMCBench基准数据集应运而生,旨在为恶意代码检测技术提供一个标准化的评估平台。该数据集精心构建了800个软件包,涵盖Python与JavaScript两大生态系统,每个生态系统均包含400个良性与400个恶意软件包,实现了严格的类别平衡。良性包选自PyPI与npm中下载量最高的项目,并严格限定于MIT、Apache-2.0等宽松许可证,以确保数据的分发合法性;恶意包则采集自公开的恶意软件源。此外,数据集还结合了专家标注与大语言模型标注的双重策略,对每个文件进行了精细的标签化处理,并经过近重复样本剔除与人工审查替换等严谨流程,最终形成包含文件级标签和完整清单的标准化评估集合。
特点
OMCBench最突出的特点在于其精心设计的结构化评估架构。它提供了一套高度可控且可复现的基准测试框架,通过统一的预测格式和评分机制,能够对包括OSSGadget BackdoorRules、bandit4mal、Semgrep在内的多款开源检测工具进行公平、客观的性能比对。该基准深度涵盖了包级别与文件级别的双层评估粒度,并提供了精准率、召回率、F1值及ROC-AUC等多维度量化指标。尤为独特的是,其内部搭载了商业级检测系统MOLOT的度量结果作为参考锚点,使研究者能够直观洞见现有开源工具与前沿技术之间的性能鸿沟。同时,数据集的构建遵循了严格的许可筛选与安全隔离原则,确保在科研与教育场景下能够安全使用。
使用方法
使用者可以轻松通过OMCBench的标准化命令行接口启动完整的评估流程。首先,依照安装指南配置所需的外部检测工具及其精确版本,随后利用`run`子命令指定待测包清单与工具路径,框架便会自动执行多工具并行扫描、原始输出解析并即时生成详尽的预测与度量报告。对于已存储的原始扫描结果,可使用`recalculate`子命令在无需重新运行工具的情况下高效地重算度量值;而`recompute-ci`子命令则能基于保存的预测数据,通过非参数自助法计算度量指标的置信区间,为结果的统计显著性提供佐证。所有分析结果均以整洁的parquet和CSV格式输出,便于后续的深入研究与可视化展示。整个流程设计兼顾了灵活性与可扩展性,使得研究者能够便捷地将新的恶意代码检测工具纳入该统一评估体系。
背景与挑战
背景概述
在开源软件生态蓬勃发展的当下,Python与JavaScript两大语言的包管理器(PyPI与npm)已成为恶意代码投递的重灾区。针对这一严峻形势,Open Malicious-Code Benchmark(OMCBench)应运而生,由falseposi团队于近年创建。该基准测试集旨在系统评估恶意代码检测工具的实际效能,其核心研究问题聚焦于如何在Python与JavaScript的软件包中精准识别嵌入的恶意载荷。OMCBench精心构建了包含800个软件包的标注数据集(每语种400个,良性与恶意各半),并发布了MOLOT系统卡作为参考基线。该基准的推出填补了该领域缺乏标准化评测平台的空白,为安全社区提供了一个可复现、可对比的检测能力评估框架,显著推动了恶意包检测技术的发展。
当前挑战
恶意代码检测面临的核心挑战在于攻击手法的隐蔽性与多样性。恶意代码常隐藏于安装钩子(如package.json中的preinstall脚本)或经过混淆的代码片段中,传统静态扫描工具难以覆盖此类非代码文件中的攻击向量,部分恶意包仅通过安装钩子执行恶意行为,而代码主体本身并无异常。此外,基准构建过程本身亦充满挑战:需从海量开源包中筛选出许可合规的良性包,并从未公开的恶意软件源中采集恶意样本,同时确保样本覆盖各类攻击模式;更需处理近重复样本去重、文件级标注依赖专家与LLM协同等复杂任务,最终形成可公开分发的标准化评测集合。
常用场景
经典使用场景
在软件供应链安全领域,OMCBench为评估恶意代码检测工具的性能提供了标准化的基准测试平台。该数据集精心构建了800个Python与JavaScript软件包,各包含400个良性样本与400个恶意样本,覆盖了两种主流编程语言的生态。研究者可借助该基准,将自家检测算法与OSSGadget、bandit4mal、Semgrep等开源工具进行横向对比,通过统一的评测脚本与标准化指标(精确率、召回率、F1分数),在包级别与文件级别两个粒度上系统性地衡量工具对恶意代码的识别能力。
衍生相关工作
OMCBench的问世催生了一系列衍生研究。以MOLOT系统卡为代表,研究者基于该基准评估了机器学习模型在恶意代码检测中的表现,其高精度与高召回率的均衡结果为后续深度学习方法提供了性能上限参考。工具对比数据揭示了不同检测策略在文件级与包级粒度下的效能差异,启发了研究人员探索规则引擎与学习模型混合的检测架构。同时,基准中Timeouts、Hook-based恶意攻击等特殊案例的详细记录,促使学界提出了针对复杂攻击模式的检测增强方案,进一步拓展了从静态代码分析到运行时行为监控的跨层检测研究方向。
数据集最近研究
最新研究方向
随着软件供应链安全威胁日益严峻,恶意代码检测已成为网络安全领域的核心议题。开源生态系统中Python和JavaScript包的泛滥式分发,使得传统的基于签名或规则的检测方法在应对持续演化的恶意载荷时显得力不从心。OMCBench作为首个专门面向恶意代码检测的标准化基准套件,系统性地评估了机器学习模型与开源工具在800个带标签包上的表现。其最新研究方向聚焦于弥合学术研究与工业实践之间的鸿沟,通过发布详尽的基准测试框架和MOLOT系统卡,推动了跨语言、跨工具的公平性能对比。这一工作不仅揭示了当前检测工具的局限性,还为未来开发更鲁棒、可迁移的恶意代码检测模型奠定了可复现的评估基础,对提升开源软件生态的整体安全韧性具有里程碑式的意义。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务