静态代码缺陷定位技术研究

静态代码缺陷定位技术研究

ID:21816373

大小:54.50 KB

页数:7页

时间:2018-10-24

静态代码缺陷定位技术研究_第1页
静态代码缺陷定位技术研究_第2页
静态代码缺陷定位技术研究_第3页
静态代码缺陷定位技术研究_第4页
静态代码缺陷定位技术研究_第5页
资源描述:

《静态代码缺陷定位技术研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、静态代码缺陷定位技术研究张亚楠谢冬红邵学彬中国汽车技术研宄中心摘要:随着计算机技术的飞速发展,软件安全缺陷也H益严重,软件测试也变得越来越重要。静态测试属于软件测试范畴,笔者对静态代码缺陷定位进行研究,并对几种静态代码静态分析工具进行/测试流程指导及实验分析,同时提出丫一种综合的静态代码缺陷定位技术改进方案并进行了实验对比分析,证明能够降低测试的误报率和漏报率。关键词:静态测试;静态分析技术;CheckStyle;FindBugsPMD;作者简介:张亚楠(1987-),女,河北保定人,硕士研究生,工程师。研宄方向:汽车行业软件研发与测试、智能网

2、联汽车信息安全。ResearchonStaticCodeDefectLocationTechnologyZhangYananXieDonghongShaoXuebinChinaAutomotiveTechnology&ResearchCenter;Abstract:Withtherapiddevelopmentofcomputertechnology,softwaresecuritydefectsarebecomingmoreandmoreserious,andsoftwaretestingisbecomingmoreandmoreimport

3、ant.Statictestingbelongstothecategoryofsoftwaretesting.Tnthispaper,thestaticcodedefectlocalizationisstudied,andseveralstaticcodestaticanalysistoolsarctestedandtheexperimentalanalysisisconducted.Atthesametime,acomprehensiveimprovementschemeofstaticcodedefectlocationtechnology

4、isproposed,andtheexperimentalcomparisonanalysisshowsthatitcanreducethefalsepositiverateandmissingreportrateofthetest.Keyword:statictest;staticanalysistechnique;CheckStyle;FindBugsPMD;1引言软件测试分为静态测试和动态测试,动态检测属于黑盒测试,指在程序运行过程中注入数据,测试结果与预期是否相符合,从而达到寻找程序漏洞的目的,动态检测技术优点是准确率高,缺点是效率较低

5、。静态缺陷检测不需要运行被测程序,在静态代码分析工具出现之前主要依靠人工审查代码,人工审查很大程度上依赖于评审人员的经验,需要积累足够多的相关知识并耗费大量的时间,成本较高,周期也比较长,因而静态代码分析工具的出现,受到大多数大型公司的欢迎。同时,在软件开发过程中就进行漏洞检测,不仅能够尽早地检测出软件的缺陷,从而减少系统的危害,也能够大大降低成本,减少软件的后期维护费用。2静态代码缺陷分类木文根据漏洞产生的方式和原理将静态代码缺陷分为缓冲区溢出漏洞、空指针引用异常、数据类型转换异常、整数溢出漏洞和内存泄漏等。2.1缓冲区溢出缓冲区溢出广泛存在

6、于软件中,据国家计算机网络入侵防范中心的安全漏洞监测报告显示,缓冲区溢出漏洞儿乎均居首位。攻击者利用缓冲区溢出漏洞来实施攻击,从而使计算机能够执行攻击者填入的恶意代码,例如改变程序的返回地址(或者返回值)为攻击者想要用户访问的地址等,从而控制计算机。缓冲区是一块连续的计算机N存区域,可保存相同数据类型的多个实例。缓冲区可以是堆栈(自动变量)、堆(动态内存)和静态数据区(全局或静态)。在C/C++语言中,通常使用字符数组和malloc/new之类的内存分配函数实现缓冲区。溢出指数据被添加到分配给该缓冲区的内存块之外。以下是一段示例代码段,最终编译

7、运行,结果输出Secondprintfcall,未输出Firstprintfcall。2.2空指针引用异常空指针引用异常是指软件运行过程中的一种状态,一般在编译或者链接等过程中不会被发现,因此,釆用动态检测方式需要大量的测试用例,耗费大量的人力和物力,而n一些隐蔽的空指针类型也很难发现。使用静态代码缺陷定位的方式能够快速准确定位到空指针引用故障的位置,省时省力。空指针指向异常通常给出的错误提示关键字是NullPointException,经常是因为编程过程中使用了未实例化的对象或者未实例化的引用实例类型而产生。如下列代码段:用户并没有输入任何内

8、容,因此导致userinput为空,调用equals()方法时,出现了空指针指向异常的问题。2.3数据类型转换异常在用户没有输入时,可能产生空指针异常

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。