欢迎来到天天文库
浏览记录
ID:5605698
大小:34.00 KB
页数:11页
时间:2017-12-19
《基于fuzzing软件漏洞发掘技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于Fuzzing软件漏洞发掘技术 摘要:随着社会信息化的不断发展,软件的安全问题也越来越突出了。目前,绝大多数的软件都或多或少的存在着一些安全漏洞,而这些漏洞一旦被那些不怀好意的黑客利用,将会给软件公司和使用这些软件的人造成巨大的损失。所以,对软件的漏洞发掘工作就显得十分有必要,本文在总结Fuzzing技术的一些缺陷后,在测试数据生成、异常定位和自动分析方面对其进行了改进,设计了基于Fuzzing的漏洞发掘框架,并对一些核心模块加以实现,达到了预期目的。Abstract:Withthecontinuou
2、sdevelopmentofsocietyinformatization,thesecurityproblemsofsoftwarearemoreandmorehighlighted.Atpresent,thevastmajorityofsoftwarehassecurityvulnerabilitiesmoreorless.Oncethesevulnerabilitiesareexploitedbymalicioushackers,hugelosseswillbecausedforsoftwarecomp
3、aniesandpeoplewhousingthesoftware.Therefore,theexcavationsofsecurityvulnerabilitiesareverynecessary.Thispaperimprovestheaspectsoftestdatageneration,abnormalpositioningandautomated11analysisaftersummarizedsomedefectsofFuzzingtechniques,designsavulnerability
4、excavationmodelbasedonFuzzingandrealizessomecoremodulestoachievethedesiredpurpose.关键词:安全漏洞;漏洞发掘;Fuzzing;FuzzerKeywords:securityvulnerabilities;vulnerabilityexcavation;Fuzzing;Fuzzer中图分类号:TP311.5文献标识码:A文章编号:1006-4311(2014)03-0197-030引言近年来,随着软件产业的高速发展,软件的安全漏
5、洞问题也愈发的暴露出来,越来越多的网络黑客行为起源于软件中存在的安全漏洞。虽然大部分的软件企业在编写软件的过程中,有着严格的质量控制过程,但现在的软件体积越来越大,逻辑结构越来越复杂,使得软件漏洞不可避免。所以,如何高效的检测出软件中存在的漏洞就显得尤为重要。目前,软件测试可以分为两大类:白盒测试和黑盒测试。白盒测试是指按照程序内部的结构测试程序,通过测试来检测软件内部是否按照预期正常进行。黑盒测试则不用了解程序的内部结构,通过构造大量的测试用例,来监测并分析软件的异常。Fuzzing技术就是一种典型的黑盒
6、测试。1Fuzzing技术概述11Fuzzing又被称为模糊测试,最早在1989年由Wisconsin-Madison大学的BartonMiller教授提出[1],用于测试UNIX系统的健壮性。Fuzzing是一种自动化或半自动化的软件测试技术,通过给程序提供恶意的输入迫使程序异常,然后分析异常发生的位置和原因,从而对程序内部的缺陷做出判断。由于在程序设计开发的过程中,很难预见程序所有可能的输入数据,尤其对于文件数据分析程序和网络数据分析程序,通常要处理大量的外部数据,程序的输入域很大。因此通过向程序注入不
7、符合规则的外部数据,程序内部的缺陷就会被检测出来。根据不等同的因素,Fuzzing方法也灵活多变。Fuzzing方法的选取取决于目标应用程序、研究者的技能水平和测试数据的格式,但不论对何目标进行测试,也不论选择了那种方法,Fuzzing的过程都是差不多的[2]。Fuzzing的一般测试流程如图1所示。现在的Fuzzing使用针对性的Fuzzing工具(Fuzzer)来实现软件安全漏洞的自动挖掘.目前,比较常用的Fuzzer[3]包括:SPIKEProxy、ParosProxy、FILEFuzz。测试人员对这
8、些工具的评价都很高,因为它们能比较高效的寻找漏洞。11尽管传统的Fuzzing技术得到了不断发展且效率比较显著,但其仍然具有一定的局限性,具体表现在以下几个方面[4]:①Fuzzing是黑盒测试技术,对软件的内部结构不熟悉,这就存在着一定的盲目性;②Fuzzing需要大量的测试用例,而处理这些数据也需要花费一定的时间,并且生成的测试用例并不能保证能够涵盖软件可能输入的所有情况;③误报几率高。在Fuzzing过程中
此文档下载收益归作者所有