当前位置: 代码迷 >> 综合 >> 2016-SeededFuzz: Selecting and Generating Seeds for Directed Fuzzing
  详细解决方案

2016-SeededFuzz: Selecting and Generating Seeds for Directed Fuzzing

热度:80   发布时间:2023-12-14 02:26:56.0

摘要:作为对传统随机模糊的一种改进,定向模糊利用动态污点分析来定位种子输入中可能影响安全敏感程序点的区域,并重点对这些已识别区域进行变异,以生成揭示错误的测试用例。种子输入对于定向模糊非常重要,因为它们本质上决定了我们可以测试的安全敏感程序点的数量。在这篇文章中,我们提出了一种种子选择方法,作为对定向模糊的种子生成方法的补充。通过使用静态分析、动态监控和符号执行,我们的方法可以提供带有种子的定向模糊,以经济高效的方式覆盖更安全敏感的程序点。我们实现了一个名为SeedFuzz的原型,并将其应用于五个实际应用程序。实验结果表明,使用我们精心选择和生成的种子启动定向模糊,SeedFuzz可以测试更关键的程序站点并检测更多的bug。

一、引言

在本文中,我们提出了一种基于Scand选择和生成有向模糊种子的方法,并在一种新的有向模糊工具SeedFuzz中实现了该方法。我们为自己设定的目标是一种有效的种子供应方法,以改进定向模糊,从而尽可能多地测试关键站点。
为了让这种方法发挥作用,我们需要解决两个主要挑战。第一个问题是如何从候选种子(即Scand)中选择合适的种子。我们利用静态分析和动态监控来选择Scand的最小子集,其特点是能够覆盖Scand可以覆盖的所有关键站点(即CScand)。我们用Ssel表示这些精心挑选的种子,用CSsel表示Ssel可以覆盖的关键位点。我们的种子选择方法背后有两个直觉:1)关键位点是定向模糊的关键因素。如果种子能覆盖更多关键部位,它们可能会产生更多的虫子;2) 有些种子覆盖着同样的关键站点,并且此类种子在定向模糊测试期间可能会产生相同的错误。
种子选择后,set CSall-CSsel 中可能存在许多所选种子无法到达的关键站点。我们的第二个

  相关解决方案