资源描述:
《软件源代码安全缺陷检测技术研究进展综述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件源代码安全缺陷检测技术研究进展综述摘要:软件安全缺陷检测已经成为软件行业非常重要的一项工作。安全关键软件设计使用的C/C++语言含有大量未定义行为,使用不当可能产生重大安全隐患。本文将根据八篇前沿论文,总结提出八种比较新的软件安全缺陷检测技术和算法。设计和实现了一个可扩展的源代码静态分析工具平台,并通过实验表明,相对于单个工具的检测结果而言,该平台明显降低了漏报率和误报率。关键字:源代码;安全缺陷;静态检测工具;缺陷描述Abstract:Softwaresecuritydetectionhasbecomeaveryimportantworki
2、nthesoftwareindustry.FatalsecurityvulnerabilitiesarecausedbyundefinedbehaviorsofC/C++languageusedinSafety-Criticalsoftware.Thispaperwillgiveouteightkindsofnewtechnologyaboutthesoftwaresecuritydetectionbasedoneightcutting-edgepapers.design.Keywords:sourcecode;safetydefects;sta
3、tictesttools;statisticalanalysis;defectivesdescription1引言:近年来,随着软件事业的发展,人们逐渐的认识到,想要开发出高质量的软件产品,必须对软件的开发过程进行改善。研究表明,相当数量的安全问题是由于软件自身的安全漏洞引起的。软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。软件源代码安全性缺陷排除是软件过程改进的一项重要措施。当前,与源代码安全缺陷研究相关的组织有CWE、Nist、OWASP等。业界也出现了一批优秀的源代码安全检测工具,但是这些机构、组织或者公司对源代码发中缺表1C
4、WE中缺陷描述字段表2SAMATE中评估实例描述方法陷的描述方法不一,业界没有统一的标准。在实际工作中,经过确认的缺陷需要提取,源代码需要用统一的方法描述。本文根据实际工作的需要,调研国内外相关资料,提出一种源代码缺陷描述方法。通常意义上的网络安全的最大威胁是程序上的漏洞,程序漏洞检测主要分为运行时检测和静态分析方法。运行时检测方法需要运行被测程序,其检测依赖外部环境和测试用例,具有一定的不确定性。开发人员在开发过程中会引入一些源代码缺陷,如SQL注入、缓冲区溢出、跨站脚本攻击等。同时一些应用程序编程接口本身也可能存在安全缺陷。而这些安全缺陷轻则
5、导致应用程序崩溃,重则导致计算机死机,造成的经济和财产损失是无法估量的。目前的防护手段无法解决源代码层面的安全问题。因而创建一套科学、完整的源代码安全缺陷评价体系成为目前亟待解决的问题。目前与源代码安全缺陷研究相关的组织有CWE等,业界也出现了一批优秀的源代码安全检测工具,但是这些机构和组织对源代码中缺陷的描述方法不一,没有统一的标准。本文借鉴业界对源代码缺陷的描述,结合实际工作需要,提出了一种计算机源代码缺陷的描述方法。随着社会信息化的不断加深,人们不得不开始面对日益突出的信息安全问题。研究表明,相当数量的安全问题是由于软件自身的安全漏洞引起的
6、。软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。不同的软件缺陷会产生不同的后果,必须区别对待各类缺陷,分析原因,研究其危害程度,预防方法等。建立一个比较完整的缺陷分类信息,对预防和修复软件安全缺陷具有指导作用。软件缺陷一般按性质分类,目前已有很多不同的软件缺陷分类法,但在当前实际审查使用中,这些缺陷分类存在以下弊端:(1)专门针对代码审查阶段发现缺陷的分类较少。现有的分类法一般包括动态测试发现的缺陷类型和文档缺陷等,而在代码审查中这些缺陷类型并不是审查关注的重点。(2)有些代码缺陷分类中的缺陷类型不适应当前代码审查实情,而一些新的代
7、码缺陷类型则没有被包括。(3)目前源代码缺陷分类种类繁多,标准不一,各有欠缺。没有一个专门针对源代码缺陷的,比较仔细,完善的分类。2软件源代码安全缺陷分析方法:一种软件源代码安全缺陷分析的方法,其特征在于,包括:设定源代码缺陷类型多个缺陷数据组,所述的缺陷数据组包括:缺陷原因数据组、缺陷结果数据组、缺陷表现形式数据组;调取源代码并解析缺陷原因、结果、表现形式;判断所述的缺陷原因、结果、表现形式是否处于所述的缺陷数据组中,若是,进入步骤S4,若否,进入步骤531,将所述的缺陷原因和/或结果和/或表现形式加入到所述的缺陷数据组中;生成所述的源代码原因
8、、结果、表现形式并显示。所述的软件源代码安全缺陷分析的方法,其特征在于,所述的缺陷原因包括内因、外因、主客观原因。具体是:注入缺陷及验证