模糊测试技术目前在安全漏洞挖掘中是 非常 火 非常 有 效的一个测试活动,并且也是出论文非常火的一个研究方向

黑盒模糊测试技术

在研究黑盒模糊测试的时候我们曾提出过很多目前还没有实现的甚至看起来很天真的研究方向

通过协议文档自动生成测试模型套件

通过协议交互抓包自动生成测试模型套件

通过被测源代码静态解析自动生成测试套件

如何证明黑盒模糊测试的测试质量和完成度

作者认为因为黑盒模糊测试引擎和测试模型套件编写成本极高,逻辑及其复杂,因此学术界目前在黑盒模糊测试领域的研究不多

灰白盒模糊测试技术

灰白盒模糊测试工具大都架构相对简单,在学术界的研究比黑盒模糊测试更火,更多的技术被提出应用到灰白盒模糊测试过程当中

符号执行,污点跟踪

AI训练

静态分析

大多数研究的目标是帮助样本进化从而突破那些影响未覆盖代码的分支节点

作者看来,这些研究大多停留在论文或者简单demo阶段,在大量实际应用和发现漏洞过程中往往还是传统的基于pc覆盖率进化的方式更为有效

黑盒模糊测试因为模型的限制,使得变异围绕模型,很多千奇百怪的异常数据难以变异出来

灰白盒模糊测试的变异没有模型限制,但变异本身基于忙变异,虽然变异速度高且量大来弥补这一缺陷,但一些复杂结构比如涵盖checksum等场景往往使测试低效

灰白盒和黑盒模糊测试技术的融合

让黑盒模糊测试过程加入样本进化,甚至数据模型,状态模型也同样进化,这样可以极大降低初始模型的编写成本,克服模型变异的限制

让灰白盒变异不在盲目,将语法通过模型输入给灰白盒模糊测试工具,让灰白盒测试同样支持多状态,多交互测试

当然以上两个两者融合,就不在有黑灰白模糊测试的界限,但是相关研究比较复杂,工作量大,而且结合后可能不但继承了两个的优点,还会继承两者的缺点

模糊测试技术的发展目前无外乎两个主要的目的

覆盖更多代码和场景

黑盒模糊测试通过数据模型和状态模型的完整性覆盖更多的被测代码

灰白盒模糊测试通过样本进化以及各种各样的辅助技术覆盖更多的被测代码

发现更多的问题

实际上一般来说,单元功能测试覆盖的代码更多,但是缺乏有效的数据变异,使得单元功能测试过程遗漏了非常多的安全漏洞

因此更高的模糊测试代码覆盖率也只能从单一角度说明测试质量,充分的变异,有效的监控等同样需要更高的关注

在一些安全要求极为严格的目标的测试中,通常是黑盒模糊测试和灰白盒模糊测试尽量都要进行,辅助人工未覆盖代码分析等手段,人工补充模型和初始样本,使得测试更加充分,这样的测试过程在目前来说往往更加现实和有效

如何帮助人工更***的辅助测试也是一个需要探索的方向

青草莓科技

打开网易新闻 查看精彩图片