论文部分内容阅读
随着信息化技术的不断发展,软件的应用范围也越加广泛,同时软件中出现的漏洞也越来越多,而软件漏洞在软件安全方面是一个不容忽视的问题,因此一直都受到国内外政府部门、相关组织和学者们的高度重视。目前国内外的研究人员已经研究出各种安全工具来防御入侵以及分析漏洞,在漏洞研究方面取得了较大的进展。世界上很多国家都建立了自己的漏洞数据库,一些从事安全领域研究的组织和企业也建立了各自的漏洞数据库。虽然大量安全工具的使用以及漏洞数据库的建立能够有效的防御以及分析漏洞,但安全工具通常自定义各自的输出格式规范,因此用不同的安全工具检测同一个安全漏洞得到的输出结果形式就会出现不同,不同的漏洞数据库中对该安全漏洞的描述也会出现不同,这些不同的描述就很难关联起来,大大降低了安全工具之间的协同工作效率。同时,大量的漏洞数据目前都以非结构化的方式存储在漏洞数据库中,不利于计算机的处理以及对漏洞信息的进一步研究。针对如上问题,本文所做的主要工作如下:1.针对当前对软件漏洞源代码的通用描述语言研究的不足,本文基于XML(Extensible Markup Language)提出并实现了一种形式化漏洞代码语义描述语言VCSDL(Vulnerability Code Semantic Description Language)用于将非结构化的漏洞源代码转化为结构化的XML文件。在对漏洞数据库中的漏洞信息特征进行分析后,确立了漏洞信息由漏洞基本描述信息和漏洞源码本身两部分构成,根据这两个组成部分的特征设计了VCSDL的框架结构。为了增强VCSDL的描述能力,本文还实现了增强关键字的设计并考虑了与特定工程相关以及与类结构相关的描述设计。2.基于本文所提的VCSDL的组成结构,针对该语言中的漏洞基本描述信息和漏洞源代码描述信息两部分提出一种基于VCSDL的漏洞源代码语义标注方法。针对漏洞基本描述信息的标注方法,通过获取原始漏洞文件,对原始文件进行分析处理以及属性筛选,提取出与VCSDL文档结构中相对应的属性,实现对漏洞基本信息的标注;针对漏洞源代码信息,提出了基于VCSDL的漏洞代码标注算法(Vulnerability Code Labling Algorithm Based on VCSDL,记为VCLBV算法),并基于此算法实现了对漏洞源代码信息的语义标注工作,其中重点研究了VCLBV算法中抽象语法树的设计。3.设计并实现了一个原型系统——基于VCSDL的软件漏洞代码标注及查询系统(Software Vulnerability Code Labeling and Query System,记为SVC-LQS)。系统主要包括漏洞代码文件处理模块、基于VCSDL的漏洞代码标注模块、漏洞信息查询模块以及方法对比分析模块。该原型系统能够很好地完成对漏洞源代码的标注工作并生成对应的VCSDL文件,具有良好的可操作性。