Learning-Guided Fuzzing for Testing Stateful SDN Controllers
Saved in:
| Title: | Learning-Guided Fuzzing for Testing Stateful SDN Controllers |
|---|---|
| Authors: | Raphaël Ollando, Seung Yeob Shin, Lionel C Briand |
| Publication Year: | 2025 |
| Subject Terms: | Software testing, verification and validation, Software-defined Networking - SDN, Software Validation and Verification |
| Description: | SeqFuzzSDN Abstract Controllers for software-defined networks (SDNs) are centralised software components that enable advanced network functionalities, such as dynamic traffic engineering and network virtualisation. However, these functionalities increase the complexity of SDN controllers, making thorough testing crucial. Unlike traditional network components (e.g., switches), SDN controllers are stateful, maintaining a holistic view of the network and interacting with multiple network devices through sequences of control messages. Identifying stateful failures in an SDN controller is challenging due to the infinite possible sequences of control messages, which result in an unbounded number of stateful interactions between the controller and network devices. In this article, we propose SeqFuzzSDN, a learning-guided fuzzing method for testing stateful SDN controllers. SeqFuzzSDN aims to: efficiently explore the state space of the SDN controller under test, generate effective and diverse tests (i.e., control message sequences) to uncover failures, and infer accurate failure-inducing models that characterise the sequences of control messages leading to failures. In addition, we compare SeqFuzzSDN with three extensions of state-of-the-art (SOTA) methods for fuzzing SDNs, as none of them are directly comparable to SeqFuzzSDN. Our findings show that, compared to the extended SOTA methods, SeqFuzzSDN (1) generates more diverse message sequences (i.e., diverse stateful behaviours) that lead to failures within the same time budget, and (2) produces more accurate failure-inducing models, significantly outperforming the other extended SOTA methods in terms of sensitivity. Prerequisite In order to build and install SeqFuzzSDN, the following tools are required: Python >= 3.9 Maven >= 3.9 Java JDK >= 11 Mininet Build The source codes of the SeqFuzzSDN are implemented using Python3.9+ and Java11+. They can be compiled on any Linux distribution that supports Python3.9+ and Java11+, and the dependency libraries cited ... |
| Document Type: | article in journal/newspaper |
| Language: | unknown |
| DOI: | 10.6084/m9.figshare.27180477.v1 |
| Availability: | https://doi.org/10.6084/m9.figshare.27180477.v1 https://figshare.com/articles/journal_contribution/Learning-Guided_Fuzzing_for_Testing_Stateful_SDN_Controllers/27180477 |
| Rights: | GPL 3.0+ |
| Accession Number: | edsbas.2B7B5E1D |
| Database: | BASE |
| Abstract: | SeqFuzzSDN Abstract Controllers for software-defined networks (SDNs) are centralised software components that enable advanced network functionalities, such as dynamic traffic engineering and network virtualisation. However, these functionalities increase the complexity of SDN controllers, making thorough testing crucial. Unlike traditional network components (e.g., switches), SDN controllers are stateful, maintaining a holistic view of the network and interacting with multiple network devices through sequences of control messages. Identifying stateful failures in an SDN controller is challenging due to the infinite possible sequences of control messages, which result in an unbounded number of stateful interactions between the controller and network devices. In this article, we propose SeqFuzzSDN, a learning-guided fuzzing method for testing stateful SDN controllers. SeqFuzzSDN aims to: efficiently explore the state space of the SDN controller under test, generate effective and diverse tests (i.e., control message sequences) to uncover failures, and infer accurate failure-inducing models that characterise the sequences of control messages leading to failures. In addition, we compare SeqFuzzSDN with three extensions of state-of-the-art (SOTA) methods for fuzzing SDNs, as none of them are directly comparable to SeqFuzzSDN. Our findings show that, compared to the extended SOTA methods, SeqFuzzSDN (1) generates more diverse message sequences (i.e., diverse stateful behaviours) that lead to failures within the same time budget, and (2) produces more accurate failure-inducing models, significantly outperforming the other extended SOTA methods in terms of sensitivity. Prerequisite In order to build and install SeqFuzzSDN, the following tools are required: Python >= 3.9 Maven >= 3.9 Java JDK >= 11 Mininet Build The source codes of the SeqFuzzSDN are implemented using Python3.9+ and Java11+. They can be compiled on any Linux distribution that supports Python3.9+ and Java11+, and the dependency libraries cited ... |
|---|---|
| DOI: | 10.6084/m9.figshare.27180477.v1 |
Nájsť tento článok vo Web of Science