The statefulness property of network protocol implementations poses a unique challenge for testing and verification techniques, including Fuzzing. Stateful fuzzers tackle this challenge by leveraging state models to partition the state space and assist the test generation process. Since not all states are equally important and fuzzing campaigns have time limits, fuzzers need effective state selection algorithms to prioritize progressive states over others. Several state selection algorithms have been proposed but they were implemented and evaluated separately on different platforms, making it hard to achieve conclusive findings. In this work, we evaluate an extensive set of state selection algorithms on the same fuzzing platform that is AFLNet, a state-of-the-art fuzzer for network servers. The algorithm set includes existing ones supported by AFLNet and our novel and principled algorithm called AFLNetLegion. The experimental results on the ProFuzzBench benchmark show that (i) the existing state selection algorithms of AFLNet achieve very similar code coverage, (ii) AFLNetLegion clearly outperforms these algorithms in selected case studies, but (iii) the overall improvement appears insignificant. These are unexpected yet interesting findings. We identify problems and share insights that could open opportunities for future research on this topic.
翻译:网络协议执行的状态特性对测试和核查技术(包括 Fuzzing ) 提出了独特的挑战。 状态模糊者通过利用国家模型分割国家空间和协助测试生成过程来应对这一挑战。 由于并非所有国家都同等重要,模糊运动都有时间限制,模糊者都需要有效的国家选择算法来优先考虑进步状态。 已经提出了若干国家选择算法,但在不同平台上分别实施和评价了这些算法,使得难以得出结论性结论。 在这项工作中,我们评估了同一个模糊平台,即AFLLNet 上的一系列广泛的州选择算法,即AFLNet,这是网络服务器最先进的模糊工具。 算法集包括了由AFLNet支持的现有算法,而我们的新颖和有原则的算法叫AFLNetLegion。 ProFuzzBench基准的实验结果表明, (i) ALLNetNetLegion现有的州选择算法可以实现非常相似的代码覆盖, (ii) ALLNetegion在选定的案例研究中明显超越了这些算法,但是(iii) 总体改进似乎微不足道。 这些是无法预料的。 这些是未来发现的机会。