Next Article in Journal
E-DNet: An End-to-End Dual-Branch Network for Driver Steering Intention Detection
Previous Article in Journal
A Comprehensive Review of dc/ac Single-Phase Differential-Mode Inverters for Low-Power Applications
Previous Article in Special Issue
Interpretability and Transparency of Machine Learning in File Fragment Analysis with Explainable Artificial Intelligence
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
This is an early access version, the complete PDF, HTML, and XML versions will be available soon.
Article

StructuredFuzzer: Fuzzing Structured Text-Based Control Logic Applications

1
Department of Computer Science, University of Idaho, 1776 Science Center Dr suite 304, Idaho Falls, ID 83402, USA
2
Department of Information Security and Communication Technology, Norwegian University of Science and Technology, 2802 Gjøvik, Norway
3
Idaho National Laboratory, Idaho Falls, ID 83415, USA
*
Author to whom correspondence should be addressed.
Electronics 2024, 13(13), 2475; https://doi.org/10.3390/electronics13132475
Submission received: 11 May 2024 / Revised: 31 May 2024 / Accepted: 15 June 2024 / Published: 25 June 2024
(This article belongs to the Special Issue Information Retrieval and Cyber Forensics with Data Science)

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.
Keywords: PLC; fuzzing; structured text; AFL; AFL++; ICS PLC; fuzzing; structured text; AFL; AFL++; ICS

Share and Cite

MDPI and ACS Style

Koffi, K.A.; Kampourakis, V.; Song, J.; Kolias, C.; Ivans, R.C. StructuredFuzzer: Fuzzing Structured Text-Based Control Logic Applications. Electronics 2024, 13, 2475. https://doi.org/10.3390/electronics13132475

AMA Style

Koffi KA, Kampourakis V, Song J, Kolias C, Ivans RC. StructuredFuzzer: Fuzzing Structured Text-Based Control Logic Applications. Electronics. 2024; 13(13):2475. https://doi.org/10.3390/electronics13132475

Chicago/Turabian Style

Koffi, Koffi Anderson, Vyron Kampourakis, Jia Song, Constantinos Kolias, and Robert C. Ivans. 2024. "StructuredFuzzer: Fuzzing Structured Text-Based Control Logic Applications" Electronics 13, no. 13: 2475. https://doi.org/10.3390/electronics13132475

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop