技术简介
自动化漏洞挖掘技术,也被称之为fuzzing技术,是一种基于黑盒(或灰盒)的测试技术,它通过自动化生成并执行大量的随机测试用例来发现产品或协议中存在的未知漏洞。Fuzzing技术已成为软件测试、漏洞挖掘领域最有效的手段之一,特别适合用于发现0day漏洞,是众多黑客或黑帽子发现软件漏洞的首选技术。
现状和趋势
国外自动化漏洞挖掘领域涌现出很多优秀的漏洞挖掘工具,包括AFL,Honggfuzz,libfuzzer,peach等。这些自动化漏洞挖掘工具除了peach外,都采用了基于代码插桩和代码覆盖率反馈的漏洞挖掘方法,Peach则是基于样本生成的漏洞挖掘工具,这需要在漏洞挖掘之前准备较多前置知识,AFL,Honggfuzz,libfuzzer是基于样本变异的fuzz工具,需要较少的前置知识。国外漏洞挖掘技术发展较快,相对比较成熟,支持对C/C++等语言编写的程序进行漏洞挖掘,覆盖的平台包括linux,windows,macos,android等。
国外漏洞挖掘技术具有向平台化发展的趋势,以往的fuzz攻击架构上多为仅支持单机,现在的fuzz工具支持在云端做分布式部署,最为典型的代表当属谷歌的OSS-FUZZ。OSS-FUZZ在后端集成了多个fuzzing引擎,支持在多个节点上并行运行fuzz,大大提高了fuzz的效率。
目前,我国漏洞挖掘技术研究进展多为fuzz爱好者根据国外优秀在经验进行独立研究,尚未形成较成熟的漏洞挖掘平台。
<