文章目录
前言
模糊测试是当今主流的软件系统的安全性测试技术,通过模糊测试能挖掘出软件所存在的漏洞和攻击面,便于人发人员对软件系统进行良好的维护。
希望做这个课题的同时记录自己的学习历程,与各位共同进步~
本篇文章主要对模糊测试的背景知识做简要总结。
一、白盒测试
白盒测试是指从软件系统的内部进行测试,该方法是对源代码进行剖析,从而查找软件当前所存在的漏洞。它需要测试人员获取到全部源代码,从而清晰地了解软件的实现结构、对所有资源进行充分地访问,如软件的完整源代码、设计规约,甚至软件开发者本人。
1.白盒测试优点
(1)覆盖能力强:由于白盒测试能获取到所有的源代码,因此代码评审时能完整覆盖整个软件系统,所有可能的执行路径都能被查询到,以发现潜在的安全隐患(如栈溢出等)。
2.白盒测试缺点
(1)复杂性高:重要的软件项目包含的源代码可能有数万行,如果采用白盒测试的方式来查询软件的潜在隐患,需要大量的时间成本。
(2)可用性低:不能获取全部源代码时,则无法进行测试。这种情况普遍存在于商业软件。
二、黑盒测试
黑盒测试是从软件系统的外部进行观察。作为用户终端,我们只能控制每一次的输入,获取每次程序执行完毕时的输出,通过观察输出结果、比较输出与预期之间的差距,来进行测试。黑盒测试的典型特点是不知道软件的内部实现,且看不到每次输入后数据的处理过程。
1.黑盒测试优点
(1)可用性和可重现性高:黑盒测试在所有情况下都是可用的,并且每次黑盒测试的时候不需要提前