CWE-502 Insecure Deserialization Benchmark Samples
收藏官方服务:
资源简介:
该文件夹包含一个基准数据集,包含PHP、Java和C#的源文件,用于针对CWE-502(不安全反序列化)测试SAST(静态应用程序安全测试)工具。
This folder contains a benchmark dataset comprising source files in PHP, Java, and C#, designed for testing Static Application Security Testing (SAST) tools against CWE-502 (Insecure Deserialization).
创建时间:
2026-07-19
原始信息汇总
数据集概述
该数据集是一个针对 CWE-502(不安全的反序列化) 的基准测试样本集,旨在用于测试 SAST(静态应用程序安全测试)工具。
编程语言与结构
数据集中包含 PHP、Java 和 C# 三种语言的源代码文件,并按照语言和复杂度(large、medium、small)进行分类:
- php/:包含使用
unserialize及相关魔术方法(__wakeup、__destruct、__toString)的 PHP 类。 - java/:包含通过
ObjectInputStream、XMLDecoder、Jackson、Fastjson 和 XStream 演示不安全反序列化的 Java 类。 - cs/:包含使用
BinaryFormatter、JsonSerializerSettings(TypeNameHandling)、LosFormatter、NetDataContractSerializer和JavaScriptSerializer演示不安全反序列化的 C# 类。
数据集地址
https://github.com/LahsenAitOiahmane/CWE-502-300-scripts-samples-php-java-dotnet
搜集汇总
数据集介绍

构建方式
该数据集以CWE-502(不安全的反序列化)安全漏洞为核心,系统性地收集了PHP、Java和C#三种语言的反序列化缺陷样本。构建方式依据语言类型和代码复杂度(大、中、小)进行分层组织。PHP样本聚焦于unserialize函数及其相关的魔术方法(如__wakeup、__destruct、__toString);Java样本覆盖了ObjectInputStream、XMLDecoder、Jackson、Fastjson和XStream等多种反序列化框架;C#样本则包含BinaryFormatter、JsonSerializerSettings、LosFormatter、NetDataContractSerializer及JavaScriptSerializer等典型不安全反序列化场景。样本均源自真实或模拟环境,确保具有代表性。
特点
该数据集具备三大显著特点。其一,多语言覆盖性极强,囊括了Web开发领域主流的PHP、Java和C#,便于跨语言安全工具的基准测试。其二,层级化的复杂度设计(大、中、小)使得评估过程能够精准度量静态应用安全测试(SAST)工具在不同难度下的检测能力。其三,样本实例高度贴合行业实践,涵盖了各语言中最常见的不安全反序列化库和函数,为安全研究人员提供了一个真实且全面的测试基准,有助于识别工具在复杂业务逻辑下的漏报与误报。
使用方法
用户可直接通过GitHub仓库获取数据集,利用目录结构按需选取特定语言或复杂度的样本。推荐将数据集作为测试套件集成至CI/CD流水线中,通过运行SAST工具扫描各样本并对比检测结果,评估工具对CWE-502缺陷的敏感度。对于PHP样本,应重点观察工具对unserialize结合魔术方法的链式调用检测能力;Java样本可测试多框架下的反序列化识别;C#样本则可用于验证对基于类型控制的序列化漏洞捕获效果。此外,数据集还可用于对比不同工具的性能与准确率,辅助安全选型。
背景与挑战
背景概述
CWE-502(不安全的反序列化)是由MITRE维护的通用弱点枚举体系中的一类关键安全漏洞,常见于PHP、Java和C#等广泛使用的编程语言中。该数据集由安全研究团队创建,旨在构建一个标准化基准,用于评估静态应用安全测试(SAST)工具在检测此类漏洞时的效能。研究背景聚焦于反序列化操作中未经验证的用户输入所引发的远程代码执行风险,这一问题长期困扰着软件开发与安全审计领域。通过涵盖多种编程语言及复杂度的样本,该数据集为工具间的横向比较提供了可靠参考,推动了自动化漏洞检测技术的进步,在软件供应链安全领域具有重要影响力。
当前挑战
领域层面面临的挑战在于:反序列化漏洞常因不同语言特性(如PHP的魔术方法、Java的反射机制)而表现形式各异,且攻击向量随框架演进(如Fastjson、BinaryFormatter)不断演化。构建过程中的挑战包括:需人工设计覆盖多种序列化库(如Java的XStream、C#的LosFormatter)及现实攻击链的样本,同时确保不同语言间样本的可比性。此外,样本复杂度的分层(大、中、小)需精确反映实际代码中的隐蔽性差异,这对样本的真实性与多样性构成了严苛考验。
常用场景
经典使用场景
在软件安全领域,CWE-502(不安全的反序列化)漏洞因其普遍性与破坏性而备受关注。该数据集精心构建了涵盖PHP、Java和C#三种主流编程语言的源代码样本,并按照大、中、小三种复杂度层级进行组织,为静态应用安全测试(SAST)工具提供了标准化的评估基准。研究者可利用这些样本系统性验证SAST工具在不安全反序列化模式检测上的准确率、召回率以及误报率,从而推动检测算法的优化与迭代。
解决学术问题
该数据集的核心价值在于解决了反序列化漏洞检测研究中长期缺乏高质量、结构化基准测试集的痛点。学术界此前对SAST工具的评估多依赖零散且不具代表性的样本,难以公平比较不同工具的检测能力。通过提供跨语言、涵盖多种反序列化框架(如Java的ObjectInputStream、Fastjson及C#的BinaryFormatter等)的合成样本,该数据集使研究人员能够严谨地量化工具在复杂真实场景下的局限性,并揭示不同语言与框架下漏洞模式的差异性特征。
衍生相关工作
基于该数据集,研究者已衍生出多项经典工作。例如,有学者利用其中的PHP样本深入分析了魔术方法链与反序列化漏洞触发条件之间的关联,提出了基于调用图分析的增强检测策略。另有工作集中在Java反序列化领域,针对Fastjson与XStream等库特有的序列化协议,设计了细粒度的污点传播算法以减少误报。在C#方面,研究人员也结合该数据集的样本探索了不同格式化器(如BinaryFormatter与NetDataContractSerializer)的语义差异,并开发了基于类型白名单的轻量级防御方案。
以上内容由遇见数据集搜集并总结生成



