Skip to main content
QUICK REVIEW

[论文解读] SPIDER: Fuzzing for Stateful Performance Issues in the ONOS Software-Defined Network Controller

Ao Li, Rohan Padhye|arXiv (Cornell University)|Sep 8, 2022
Software System Performance and Reliability被引用 4
一句话总结

SPIDER 是一种新颖的模糊测试框架,结合语义分析、面向性能的分析以及依赖感知分析,可自动检测 SDN 控制器(如 ONOS 和 OpenDaylight)中的有状态性能问题(SPIs)。通过使用手工编写和基于类型的事件生成器进行事件驱动的语义模糊测试,轻量级性能监控仪器,以及模块化的依赖分析,SPIDER 发现了 9 个独特的 SPIs —— 其中一些导致指数级性能下降,证明了其在识别细微、状态依赖的资源耗尽漏洞方面的有效性。

ABSTRACT

Performance issues in software-defined network (SDN) controllers can have serious impacts on the performance and availability of networks. In this paper, we consider a special class of SDN vulnerabilities called stateful performance issues (SPIs), where a sequence of initial input messages drives the controller into a state such that its performance degrades pathologically when processing subsequent messages. Uncovering SPIs in large complex software such as the widely used ONOS SDN controller is challenging because of the large state space of input sequences and the complex software architecture of inter-dependent network services. We present SPIDER, a practical fuzzing framework for identifying SPIs in this setting. The key contribution in our work is to leverage the event-driven modular software architecture of the SDN controller to (a) separately target each network service for SPIs and (b) use static analysis to identify all services whose event handlers can affect the state of the target service directly or indirectly. SPIDER implements this novel dependency-aware modular performance fuzzing approach for 157 network services in ONOS and successfully identifies 10 new performance issues. We present an evaluation of SPIDER against prior work, a sensitivity analysis of design decisions, and case studies of two uncovered SPIs.

研究动机与目标

  • 为解决在 SDN 控制器中检测有状态性能问题(SPIs)的挑战,即在一系列初始输入后性能出现病理性的退化。
  • 克服现有程序分析和模糊测试技术在具有动态模块加载和语义状态依赖关系的大型复杂 SDN 控制器代码库中的局限性。
  • 设计一种实用且可扩展的工作流,整合静态分析、语义模糊测试和性能仪器化,系统性地发现 SPIs。

提出的方法

  • 采用轻量级仪器化的实用灰盒性能模糊测试,以最大化执行路径长度和 CPU 消耗。
  • 使用事件驱动的语义模糊测试,对关键路径使用领域特定的手工事件生成器,对剩余事件使用基于类型的合成方法。
  • 应用模块化、依赖感知的静态分析,将服务分解并分别分析,以降低复杂性。
  • 实现目标特定的适配器层,通过自定义测试框架和状态操作接口,支持不同控制器(如 ONOS、OpenDaylight)。
  • 在事件生成中集成语义约束,以提高代码覆盖度并减少误报。
  • 迭代生成事件序列,以触发并检测与内部状态变化相关的性能退化问题。

实验结果

研究问题

  • RQ1混合模糊测试框架是否能有效检测具有复杂内部状态和动态模块依赖关系的大规模 SDN 控制器中的有状态性能问题?
  • RQ2在事件生成中引入领域特定的语义知识,与完全自动化或黑盒方法相比,能否显著提升对细微、状态依赖性能错误的检测能力?
  • RQ3模块化、依赖感知分析在多大程度上能够降低在单体式 SDN 控制器代码库中搜索 SPIs 的复杂性?
  • RQ4约束感知事件生成对发现仅由随机输入或语法有效输入无法触发的性能问题有何影响?
  • RQ5与黑盒模糊测试、完全自动化事件生成以及 FindBugs 等静态分析工具相比,SPIDER 方法在检测效果和效率方面表现如何?

主要发现

  • SPIDER 在 ONOS 控制器中成功识别出 9 个独特的有状态性能问题,所有问题均通过手动重现和分析得到确认。
  • 一个关键漏洞允许攻击者仅通过以每秒 10 个包的速度发送 4,000 个伪造的 ARP 包,将控制器吞吐量降低至最低 1 Mb/s。
  • 发现拓扑服务存在缺陷,导致最坏情况下出现指数级性能下降,该问题由受 compromised 的网络交换机触发。
  • 手工编写、约束感知的事件模板的使用至关重要——若仅使用通用的基于类型的生成方法(移除手工模板),则无法发现任何新问题。
  • SPIDER 在检测效果上优于黑盒 OpenFlow 消息模糊测试、完全自动化事件生成以及 FindBugs 等静态分析工具,后者未能检测到 SPIDER 发现的任何 SPIs。
  • 仅报告了一个误报,表明该框架在区分真实性能问题与良性模式方面具有很高的精确度。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。