Engineering PapersSearch

DOE OSTI · 2438034

StructuredFuzzer: Fuzzing Structured Text-Based Control Logic Applications

Abstract

Rigorous testing methods are essential for ensuring the security and reliability of industrial controller software. Fuzzing, a technique that automatically discovers software bugs, has also proven effective in finding software vulnerabilities. Unsurprisingly, fuzzing has been applied to a wide range of platforms, including programmable logic controllers (PLCs). However, current approaches, such as coverage-guided evolutionary fuzzing implemented in the popular fuzzer American Fuzzy Lop Plus Plus (AFL++), are often inadequate for finding logical errors and bugs in PLC control logic applications. They primarily target generic programming languages like C/C++, Java, and Python, and do not consider the unique characteristics and behaviors of PLCs, which are often programmed using specialized programming languages like Structured Text (ST). Furthermore, these fuzzers are ill suited to deal with complex input structures encapsulated in ST, as they are not specifically designed to generate appropriate input sequences. This renders the application of traditional fuzzing techniques less efficient on these platforms. To address this issue, this paper presents a fuzzing framework designed explicitly for PLC software to discover logic bugs in applications written in ST specified by the IEC 61131-3 standard. The proposed framework incorporates a custom-tailored PLC runtime and a fuzzer designed for the purpose. We demonstrate its effectiveness by fuzzing a collection of ST programs that were crafted for evaluation purposes. We compare the performance against a popular fuzzer, namely, AFL++. The proposed fuzzing framework demonstrated its capabilities in our experiments, successfully detecting logic bugs in the tested PLC control logic applications written in ST. On average, it was at least 83 times faster than AFL++, and in certain cases, for example, it was more than 23,000 times faster.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Koffi, Koffi Anderson, Kampourakis, Vyron, Song, Jia, Kolias, Constantinos, Ivans, Robert Christopher. 2024-06-25. StructuredFuzzer: Fuzzing Structured Text-Based Control Logic Applications. https://doi.org/10.3390/electronics13132475

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related reports

High Multiplicity Trigger for long-lived particles in CMS detector

Searches for long-lived particles (LLPs) at the CMS experiment often involve unconventional event topologies that are difficult to efficiently select using standard trigger strategies. To improve sensitivity to such signatures during LHC Run 3 operation, a dedicated High Multiplicity Trigger (HMT) has been developed and deployed in the CMS trigger system. The trigger targets events containing unusually large numbers of hits in the CMS cathode strip chamber (CSC) muon detectors, a characteristic signature of several LLP scenarios involving displaced decays in the muon system. The HMT implementation, trigger logic, rate dependence with pileup, and operational stability are described. Optimized hit multiplicity thresholds are used to maintain acceptable trigger rates under high-luminosity and high-pileup conditions while preserving high efficiency across a broad range of LLP lifetimes and kinematic regimes. The trigger performance is evaluated using both simulated event samples and proton-proton collision data collected during Run 3 of the LHC. The HMT substantially extends the CMS sensitivity to non-standard signatures associated with LLP decays and provides a flexible platform for future searches for physics beyond the Standard Model.

47 OTHER INSTRUMENTATION