PLC-BEAD
收藏arXiv2025-02-27 更新2025-03-01 收录
下载链接:
https://github.com/AICPS/PLCBEAD
下载链接
链接失效反馈官方服务:
资源简介:
PLC-BEAD数据集是一个全面的工业控制系统程序二进制执行文件数据集,包含700多个使用四大主流工业编译器编译的PLC程序产生的2431个二进制文件。每个二进制文件都配备了其原始的结构化文本源代码和标准化功能标签,可用于机器学习研究的二进制级和源代码级分析。该数据集涵盖了使用CoDeSys、GEB、OpenPLC-V2和OpenPLC-V3编译器编译的二进制文件,用于功能分类和编译器起源鉴定等任务。
The PLC-BEAD dataset is a comprehensive dataset of binary executable files for industrial control system (ICS) programs. It contains 2431 binary files generated from more than 700 PLC programs compiled by four mainstream industrial compilers. Each binary file is paired with its original Structured Text (ST) source code and standardized functional labels, which can be used for both binary-level and source code-level analysis in machine learning research. This dataset covers binary files compiled using CoDeSys, GEB, OpenPLC-V2 and OpenPLC-V3, and supports tasks such as function classification and compiler origin identification.
提供机构:
加州大学欧文分校, 西门子技术
创建时间:
2025-02-27
搜集汇总
数据集介绍

构建方式
PLC-BEAD数据集的构建主要依托于工业控制系统中广泛使用的可编程逻辑控制器(PLCs)的编译过程。该数据集包含了从700多个PLC程序中编译出的2431个二进制文件,这些程序使用了四个主要的工业编译器(CoDeSys、GEB、OpenPLC-V2、OpenPLC-V3)。每个二进制文件都与其原始的Structured Text源代码和标准化的功能标签相匹配,从而实现了在二进制级和源代码级上的分析。为了确保数据集的多样性和代表性,研究人员从OSCAT库中选取了涵盖从基本控制机制到复杂算法的PLC程序,并对它们进行了编译。在编译过程中,由于不同编译器的内置库和基本函数的差异,一些程序无法在所有编译器上编译。因此,研究人员对程序进行了必要的调整,以确保它们能够在不同的编译器上编译成功。此外,为了支持功能分析,每个Structured Text代码片段都被分配到22个功能类别中,这些类别是从OSCAT文档和常见工业实践中提取的。为了确保标签的一致性,至少有两名团队成员对标签进行了确认。
特点
PLC-BEAD数据集的特点在于其全面性和多样性。它不仅包含了大量的PLC二进制文件,而且还提供了相应的源代码和功能标签,这对于机器学习研究尤其有价值。此外,该数据集覆盖了四个不同的编译器,这有助于研究人员探索不同编译器之间在二进制文件结构和功能实现上的差异。此外,PLC-BEAD数据集的组织结构清晰,便于研究人员导航和重用。数据集分为源代码、二进制文件和元数据三个主要部分,每个部分都按照编译器进行了分组。这种组织方式使得研究人员可以轻松地在不同的编译器和功能类别之间进行切换,并清楚地了解哪些文件和二进制文件属于每个类别。
使用方法
PLC-BEAD数据集的使用方法包括两个方面:一是作为机器学习模型训练的数据集,二是作为PLC二进制文件分析的工具。作为训练数据集,PLC-BEAD可以用于开发能够识别编译器来源和功能类别的机器学习模型。这些模型可以应用于工业控制系统(ICS)的数字取证、漏洞扫描和异常检测等领域。作为分析工具,PLC-BEAD可以帮助研究人员探索PLC二进制文件的结构和功能实现,并开发新的分析方法和技术。此外,PLC-BEAD还可以用于评估现有的静态分析工具和机器学习模型,并确定改进的方向。为了方便研究人员使用,PLC-BEAD数据集还提供了详细的文档,包括数据集的创建过程、标签分类法和基准协议等。
背景与挑战
背景概述
PLC-BEAD数据集的研究背景源于工业控制系统(ICS)对可编程逻辑控制器(PLC)的依赖,以及分析PLC可执行文件的挑战。由于不同厂商的专用编译器和有限访问源代码的问题,分析PLC可执行文件一直是一项艰巨的任务。PLC-BEAD数据集旨在填补这一空白,它包含来自四个主要工业编译器(CoDeSys、GEB、OpenPLC-V2和OpenPLC-V3)的700多个PLC程序的2431个编译后的二进制文件。该数据集的独特之处在于,它将每个二进制文件与其原始的结构化文本源代码和标准化的功能标签配对,从而能够进行二进制级别和源代码级别的分析。PLC-BEAD数据集的创建不仅为PLC安全性、逆向工程和ICS法医学研究提供了新的基准,而且为数据驱动方法在工业网络安全中的应用奠定了基础。
当前挑战
PLC-BEAD数据集和相关研究面临的主要挑战包括:1) 解决PLC二进制分析领域的挑战,特别是由于专用编译器和缺乏源代码导致的挑战;2) 构建过程中遇到的挑战,例如编译器优化级别、代码模式和对模型性能影响的类分布。PLC-BEAD数据集的多样性和深度使得研究人员能够探索编译器之间的差异,以及开发能够在不同PLC系统之间通用的二进制分析工具。然而,该数据集的构建和使用仍然存在一些局限性,例如,某些功能类别仍然难以准确分类,需要进一步的研究来开发更先进的分析技术。
常用场景
经典使用场景
PLC-BEAD 数据集主要被用于工业控制系统(ICS)中的可编程逻辑控制器(PLC)的二进制代码分析。该数据集包含来自四个主要工业编译器的超过700个PLC程序的2431个编译二进制文件,每个二进制文件都与原始的Structured Text源代码和标准化的功能标签配对。这使得研究人员能够在二进制级别和源代码级别进行机器学习研究,从而分析PLC程序的执行行为和潜在的安全漏洞。
衍生相关工作
PLC-BEAD 数据集的发布推动了PLC二进制代码分析领域的研究。基于PLC-BEAD 数据集,研究人员开发了一系列的机器学习模型和工具,如PLCEmbed,用于分析PLC二进制代码。这些工具可以帮助安全分析师识别PLC程序中的潜在漏洞和安全威胁,从而增强工业控制系统的安全性。此外,PLC-BEAD 数据集还促进了PLC安全、逆向工程和ICS法医学等领域的研究,推动了该领域的进一步发展。
数据集最近研究
最新研究方向
PLC-BEAD数据集的推出,为工业控制系统(ICS)的二进制代码分析开辟了新的研究方向。该数据集涵盖了来自四大工业编译器的700多个PLC程序编译的二进制文件,为机器学习模型提供了丰富的训练资源。通过将每个二进制文件与其原始结构化文本源代码和标准化功能标签配对,PLC-BEAD支持在二进制级别和源代码级别进行深入分析。PLCEmbed框架的引入,一个基于Transformer的二进制代码分析框架,实现了93%的编译器起源识别准确率和42%的细粒度功能分类准确率,展示了数据集在工业控制系统安全、逆向工程和取证分析方面的巨大潜力。PLC-BEAD的发布为数据驱动的方法在工业网络安全中的应用树立了新的基准,对于推动PLC安全、逆向工程和取证分析领域的研究具有重要意义。
相关研究论文
- 1Bridging the PLC Binary Analysis Gap: A Cross-Compiler Dataset and Neural Framework for Industrial Control Systems加州大学欧文分校, 西门子技术 · 2025年
以上内容由遇见数据集搜集并总结生成



