论文标题
用于测试软件定义网络的学习失败模型
Learning Failure-Inducing Models for Testing Software-Defined Networks
论文作者
论文摘要
软件定义的网络(SDN)启用了由集中式软件控制器管理的灵活有效的通信系统。但是,这样的控制器可能会破坏基于SDN的系统的基础通信网络,因此必须仔细测试。当基于SDN的系统失败时,为了解决此类故障,工程师需要精确地了解其发生的条件。在本文中,我们介绍了一种名为FuzzSDN的机器学习引导的模糊方法,旨在(1)生成有效的测试数据,从而导致基于SDN的系统失败,以及(2)学习准确的失败诱导模型,这些模型表征了该系统失败的条件。据我们所知,没有现有的工作同时解决了SDN的这两个目标。我们通过将其应用于由两个开源SDN控制器控制的系统来评估fuzzSDN。此外,我们将FuzzSDN与两种用于模糊SDN的最新方法和两个用于学习失败模型的基准。我们的结果表明,(1)与最新方法相比,FuzzSDN在同一时间预算内产生的失败至少12倍,其控制器的模糊性相当强大,并且(2)我们的失败模型平均具有98%的精确度,召回了86%的召回86%,显着胜过基础的基础。
Software-defined networks (SDN) enable flexible and effective communication systems that are managed by centralized software controllers. However, such a controller can undermine the underlying communication network of an SDN-based system and thus must be carefully tested. When an SDN-based system fails, in order to address such a failure, engineers need to precisely understand the conditions under which it occurs. In this article, we introduce a machine learning-guided fuzzing method, named FuzzSDN, aiming at both (1) generating effective test data leading to failures in SDN-based systems and (2) learning accurate failure-inducing models that characterize conditions under which such system fails. To our knowledge, no existing work simultaneously addresses these two objectives for SDNs. We evaluate FuzzSDN by applying it to systems controlled by two open-source SDN controllers. Further, we compare FuzzSDN with two state-of-the-art methods for fuzzing SDNs and two baselines for learning failure-inducing models. Our results show that (1) compared to the state-of-the-art methods, FuzzSDN generates at least 12 times more failures, within the same time budget, with a controller that is fairly robust to fuzzing and (2) our failure-inducing models have, on average, a precision of 98% and a recall of 86%, significantly outperforming the baselines.