一种软件源代码安全缺陷分析的方法和装置的制作方法

文档序号:6444935阅读:394来源:国知局
专利名称:一种软件源代码安全缺陷分析的方法和装置的制作方法
技术领域
本发明涉及源代码检测领域,更具体地说,涉及ー种软件源代码安全缺陷分析的方法和装置。
背景技术
随着社会信息化的不断加深,人们不得不开始面对日益突出的信息安全问题。研究表明,相当数量的安全问题是由于软件自身的安全漏洞引起的。软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。不同的软件缺陷会产生不同的后果,必须区别对待各类缺陷,分析原因,研究其危 害程度,预防方法等。建立ー个比较完整的缺陷分类信息,对预防和修复软件安全缺陷具有指导作用。软件缺陷一般按性质分类,目前已有很多不同的软件缺陷分类法,但在当前实际审查使用中,这些缺陷分类存在以下弊端(I)专门针对代码审查阶段发现缺陷的分类较少。现有的分类法一般包括动态测试发现的缺陷类型和文档缺陷等,而在代码审查中这些缺陷类型并不是审查关注的重点。(2)有些代码缺陷分类中的缺陷类型不适应当前代码审查实情,而ー些新的代码缺陷类型则没有被包括。(3)目前源代码缺陷分类种类繁多,标准不一,各有欠缺。没有一个专门针对源代码缺陷的,比较仔细,完善的分类。

发明内容
本发明要解决的技术问题在于,提供ー种对不同工具检测获得的软件源代码的缺陷用统一的尺度描述的软件源代码安全缺陷分析的方法和装置。本发明公开了ー种软件源代码安全缺陷分析的方法,包括SI.设定源代码缺陷类型多个缺陷数据组,所述的缺陷数据组包括缺陷原因数据组、缺陷结果数据组、缺陷表现形式数据组;S2.调取源代码并解析缺陷原因、结果、表现形式;S3.判断所述的缺陷原因、结果、表现形式是否处于所述的缺陷数据组中,若是,进入步骤S4,若否,进入步骤S31,将所述的缺陷原因和/或结果和/或表现形式加入到所述的缺陷数据组中;S4.生成所述的源代码原因、結果、表现形式并显示。在本发明所述的软件源代码安全缺陷分析的方法中,所述的缺陷原因包括内因、外因、主客观原因。在本发明所述的软件源代码安全缺陷分析的方法中,所述的缺陷原因数据组,具体是注入缺陷及验证、应用程序编程接ロ错误、访问控制及密码失效、资源共享与竞争、异常处理、不安全源码质量、边界处理、配置错误、恶意代码。
在本发明所述的软件源代码安全缺陷分析的方法中,所述的缺陷结果数据组,具体是缓冲区溢出、整数溢出、命令注入、跨站脚本、拒绝服务、路径操纵、进程控制、资源注入、配置操纵、SQL注入、内存溢出。在本发明所述的软件源代码安全缺陷分析的方法中,所述的缺陷表现形式数据组,具体是格式化字符串、赋值的目标存储空间不够、未使用括号保证操作的优先级、尝试修改常量、引用未初始化的变量。本发明公开了ー种软件源代码安全缺陷分析的装置,用于实现上述的方法,包括缺陷数据组设定单元设定源代码缺陷类型多个缺陷数据组,所述的缺陷数据组包括缺陷原因数据组、缺陷结果数据组、缺陷表现形式数据组;
源代码缺陷解析単元与所述的缺陷数据组设定単元相连,用于调取源代码并解析缺陷原因、结果、表现形式;源代码缺陷判断単元与所述的源代码缺陷解析単元相连,用于判断所述的缺陷原因、结果、表现形式是否处于所述的缺陷数据组中;源代码缺陷显示单元与所述的源代码缺陷判断単元相连,用于生成所述的源代码原因、结果、表现形式并显示。在本发明所述的软件源代码安全缺陷分析的装置中,所述的缺陷原因包括内因、外因、主客观原因。在本发明所述的软件源代码安全缺陷分析的装置中,所述的缺陷原因数据组,具体是注入缺陷及验证、应用程序编程接ロ错误、访问控制及密码失效、资源共享与竞争、异常处理、不安全源码质量、边界处理、配置错误、恶意代码。在本发明所述的软件源代码安全缺陷分析的装置中,所述的缺陷结果数据组,具体是缓冲区溢出、整数溢出、命令注入、跨站脚本、拒绝服务、路径操纵、进程控制、资源注入、配置操纵、SQL注入、内存溢出。在本发明所述的软件源代码安全缺陷分析的装置中,所述的缺陷表现形式数据组,具体是格式化字符串、赋值的目标存储空间不够、未使用括号保证操作的优先级、尝试修改常量、引用未初始化的变量。实施本发明的一种软件源代码安全缺陷分析的方法和装置,具有以下有益的技术效果I.不同工具检测的缺陷用统ー的尺度描述,清楚具体,直观性強;2.源代码缺陷检测工具检测能力的测评标准一致,有利于源代码缺陷检测工具的开发。


图I是本发明实施例一种软件源代码安全缺陷分析的方法流程图;图2为本发明实施例一种软件源代码安全缺陷分析的装置模块方框图。
具体实施例方式为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。源代码,也可以称作为源程序,是指未编译的文本代码。是ー系列人类可读的计算机语目指令。我们可以把它理解成源文代码,就拿我们当前看到的这个网页来说吧,其实它是由一大堆的源代码组成,通过我们的IE (Microsoft Internet Explorer)浏览器(或服务器)翻译成现在我们所看到的这个样子。源代码就是用汇编语言和高级语言写出来的代码。主要对象是面向开发者;我们平常使用的应用程序都是经过源码编译打包以后发布的,呈现的最后结果是面向使用者,最终客户的。而随着互联网应用的不断创新与发展,信息与网络安全也面临着前所未有的严峻问题,网络安全领域所面临的挑战日益严峻,网络安全问题也日益被人们重视。通常意义上的网络安全的最大威胁是程序上的漏洞,程序漏洞检测主要分为运行时检测和静态分析方 法。几乎所有的源代码程序都存在或大或小的缺陷,如何及早发现缺陷,成为人们经常面临的问题。请參阅图1,本发明实施例一种软件源代码安全缺陷分析的方法,包括SI.设定源代码缺陷类型多个缺陷数据组,所述的缺陷数据组包括缺陷原因数据组、缺陷结果数据组、缺陷表现形式数据组;S2.调取源代码并解析缺陷原因、结果、表现形式;S3.判断所述的缺陷原因、结果、表现形式是否处于所述的缺陷数据组中,若是,进入步骤S4,若否,进入步骤S31,将所述的缺陷原因和/或结果和/或表现形式加入到所述的缺陷数据组中;S4.生成所述的源代码原因、結果、表现形式并显示。本发明的方法中,我们将缺陷原因数据组、缺陷结果数据组、缺陷表现形式数据组看作是“三棵树”,请參阅下表1,本发明提出的“三棵树”缺陷分类法,从三个角度对软件源代码缺陷进行分类。第一棵树缺陷产生的原因(兼顾内因、外因和主客观原因);第ニ棵树缺陷造成的结果;第三棵树缺陷的表现形式。其中,按缺陷产生的原因划分有注入缺陷及验证、应用程序编程接ロ错误、访问控制及密码失效、资源共享与竞争、异常处理、不安全源码质量、边界处理、配置错误、恶意代码。按缺陷造成的结果分类缓冲区溢出、整数溢出、命令注入、跨站脚本、拒绝服务、路径操纵、进程控制、资源注入、配置操纵、SQL注入、内存溢出等。按照表现形式分类格式化字符串、赋值的目标存储空间不够、未使用括号保证操作的优先级、尝试修改常量、引用未初始化的变量、使用Class Loader、错误的clone()方法、Equals O方法错误、多次调用exit O函数等。表I 三棵树”式缺陷信息
权利要求
1.一种软件源代码安全缺陷分析的方法,其特征在于,包括 51.设定源代码缺陷类型多个缺陷数据组,所述的缺陷数据组包括缺陷原因数据组、缺陷结果数据组、缺陷表现形式数据组; 52.调取源代码并解析缺陷原因、结果、表现形式; 53.判断所述的缺陷原因、结果、表现形式是否处于所述的缺陷数据组中,若是,进入步骤S4,若否,进入步骤S31,将所述的缺陷原因和/或结果和/或表现形式加入到所述的缺陷数据组中; 54.生成所述的源代码原因、结果、表现形式并显示。
2.如权利要求I所述的软件源代码安全缺陷分析的方法,其特征在于,所述的缺陷原因包括内因、外因、主客观原因。
3.如权利要求I所述的软件源代码安全缺陷分析的方法,其特征在于,所述的缺陷原因数据组,具体是注入缺陷及验证、应用程序编程接口错误、访问控制及密码失效、资源共享与竞争、异常处理、不安全源码质量、边界处理、配置错误、恶意代码。
4.如权利要求I所述的软件源代码安全缺陷分析的方法,其特征在于,所述的缺陷结果数据组,具体是缓冲区溢出、整数溢出、命令注入、跨站脚本、拒绝服务、路径操纵、进程控制、资源注入、配置操纵、SQL注入、内存溢出。
5.如权利要求I所述的软件源代码安全缺陷分析的方法,其特征在于,所述的缺陷表现形式数据组,具体是格式化字符串、赋值的目标存储空间不够、未使用括号保证操作的优先级、尝试修改常量、引用未初始化的变量。
6.一种软件源代码安全缺陷分析的装置,用于实现权利要求I所述的方法,其特征在于,包括 缺陷数据组设定单元设定源代码缺陷类型多个缺陷数据组,所述的缺陷数据组包括缺陷原因数据组、缺陷结果数据组、缺陷表现形式数据组; 源代码缺陷解析单元与所述的缺陷数据组设定单元相连,用于调取源代码并解析缺陷原因、结果、表现形式; 源代码缺陷判断单元与所述的源代码缺陷解析单元相连,用于判断所述的缺陷原因、结果、表现形式是否处于所述的缺陷数据组中; 源代码缺陷显示单元与所述的源代码缺陷判断单元相连,用于生成所述的源代码原因、结果、表现形式并显示。
7.如权利要求6所述的软件源代码安全缺陷分析的装置,其特征在于,所述的缺陷原因包括内因、外因、主客观原因。
8.如权利要求6所述的软件源代码安全缺陷分析的装置,其特征在于,所述的缺陷原因数据组,具体是注入缺陷及验证、应用程序编程接口错误、访问控制及密码失效、资源共享与竞争、异常处理、不安全源码质量、边界处理、配置错误、恶意代码。
9.如权利要求6所述的软件源代码安全缺陷分析的装置,其特征在于,所述的缺陷结果数据组,具体是缓冲区溢出、整数溢出、命令注入、跨站脚本、拒绝服务、路径操纵、进程控制、资源注入、配置操纵、SQL注入、内存溢出。
10.如权利要求6所述的软件源代码安全缺陷分析的装置,其特征在于,所述的缺陷表现形式数据组,具体是格式化字符串、赋值的目标存储空间不够、未使用括号保证操作的优先级、尝试修改常量、引用未初始化的变量 。
全文摘要
本发明公开了一种软件源代码安全缺陷分析的方法,包括S1.设定源代码缺陷类型多个缺陷数据组;S2.调取源代码并解析缺陷原因、结果、表现形式;S3.判断所述的缺陷原因、结果、表现形式是否处于所述的缺陷数据组中,若是,进入步骤S4,若否,进入步骤S31,将所述的缺陷原因和/或结果和/或表现形式加入到所述的缺陷数据组中;S4.生成所述的源代码原因、结果、表现形式并显示。本发明还公开了一种软件源代码安全缺陷分析的装置。本发明使不同工具检测的缺陷用统一的尺度描述,清楚具体,直观性强。
文档编号G06F11/36GK102750220SQ201110460378
公开日2012年10月24日 申请日期2011年12月31日 优先权日2011年12月31日
发明者吴世忠, 张*, 王眉林, 童小刚, 郭恒, 郭涛 申请人:中国信息安全测评中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1