Bounded model checking (BMC) and fuzzing techniques are among the most effective methods for detecting errors and security vulnerabilities in software. However, there is still a shortcoming in detecting these errors due to the inability to cover large areas in the target code. Coverage standards and measures are also an excellent way to ascertain the effectiveness of the test suite. We propose FuSeBMC v4, a test generator that relies on smart seeds to improve the hybrid fuzzer to achieve high C programs coverage. First, FuSeBMC analyses and incrementally injects goal labels into the given C program to guide BMC and Evolutionary Fuzzing engines. Also, It ranks these goal labels according to the given strategy. After that, the engines are employed to produce smart seeds quickly to use later. Then, FuSeBMC coordinates between the engines and seed distribution by the Tracer. This Tracer generally manages the tool to record the goals covered and transfer the information between the engines by providing a shared memory to harness the power and take advantage of the power of each engine. So that the BMC engine helps give the seed that makes the fuzzing engine not struggle with complex mathematical guards. Furthermore, Tracer evaluates test cases dynamically to convert high-impact cases into seeds for subsequent test fuzzing. As a result, we received three awards for participation in the fourth international competition in software testing (Test-Comp 2022), outperforming all state-of-the-art tools in every category, including the coverage category.
翻译:测试模型检查( BMC) 和 模糊技术是发现软件错误和安全弱点的最有效方法之一。 但是,由于无法覆盖目标代码中的大片区域,检测这些错误仍然有缺陷。 覆盖标准和措施也是确定测试套件有效性的极好方法。 我们提议FOSBMC v4, 一个依靠智能种子的测试生成器, 来改进混合模糊器, 以达到高 C 程序覆盖率。 首先, FOSBMC 分析并逐步将目标标签输入给给给定的 C 程序, 以引导 BMC 和 进化模糊引擎。 另外, 它根据特定战略排列目标标签。 之后, 引擎被用来生产智能种子, 以便很快使用。 然后, FUSBMC 协调引擎与 Tracer 的种子分布。 这个 Tracer通常管理工具, 以记录所涵盖的目标, 并在引擎之间传递信息, 提供共享记忆, 利用每个引擎的力量和优势。 因此, BMC 引擎有助于给种子提供种子, 使Fuzzr 类别 的种子在每类中快速测试中, 包括 快速测试中 3 。