模糊测试技术是如何挖掘软件漏洞的?

首图.gif


模糊测试是当今比较热门的一种测试技术,深受广大软件开发人员的喜爱。当然也有很多人对于模糊测试技术没有太多的了解,今天我们就来简单谈谈模糊测试技术。


说起模糊测试技术,就不得不先说说软件缺陷。软件缺陷是影响软件质量的关键因素,同时它也是软件开发过程中不可避免的。软件缺陷也叫bug,指计算机软件或程序存在某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。


在软件缺陷中,有一种类型正逐步受到广泛的关注和重视,即软件漏洞。它是程序中可以被攻击利用的缺陷,也被称为软件安全性缺陷。经常被提及的有已知漏洞、未知漏洞和0-day漏洞。

图片.png


作为当今热门的测试技术,模糊测试是一种自动化的测试技术,它会根据一定的规则自动或半自动地生成随机数据,然后将这些产生的随机数据输入到动态运行的被测程序入口,同时监控被测程序是否有异常情况出现,如系统崩溃、断言失败等来发现软件的缺陷。总的来说,模糊测试技术可发现那些使程序运行异常的缺陷,同时它也特别适合发现未知/0-day漏洞。简单来说,模糊测试技术是一种针对软件漏洞的一种技术。


那么模糊测试技术有什么优势呢?


1、模糊测试是一种自动化的测试方式,测试用例是由测试工具自动产生的,其测试效率高,且不依赖于测试人员的经验;


2、目前普遍使用的测试方式,大部分集中在功能测试,并结合一些非功能测试,如压力测试。但这些测试都是正面测试,很少有工具专注于负面测试(即验证软件不执行其不应该完成的工作)。而模糊测试的出现,正弥补了其他测试方法的不足,比如易侦协议模糊测试系统,就是专注于负面测试,可以与其他测试技术联合使用来全面保障软件的安全性和稳定性;


3、模糊测试是动态测试技术,因此查找到的缺陷几乎没有误报。而目前市面上流行的基本都是静态分析工具,其误报率远远高于模糊测试工具;


4、目前市面上的自动化测试工具更注重已知漏洞的发现,忽视了未知漏洞的危害,易侦协议模糊测试系统正是发现未知漏洞的利器;


5、模糊测试变异的测试用例,是有一定规则的随机,相较于随机自动化测试工具,模糊测试的测试用例能达到更好的效果。


相信通过以上介绍,大家对模糊测试技术已经有了简单的了解。模糊测试技术通过其特定的测试方法可以发现程序代码中隐藏的、很难通过常规测试方法发现的缺陷和漏洞,在现实中的意义巨大。


相关推荐:模糊测试技术在嵌入式设备漏洞挖掘方面的应用