学年论文(文献检索及专业写作常识2015-2016 第二学期)题目:软件安全漏洞检测*者:***所在学院:信息科学与工程学院专业年级:信息安全14-1 指导教师:***职称:副教授2016年5月25 日摘要互联网的全球性普及和发展,使得计算机网络与人们的生活紧密相关,信息安全逐渐成为信息技术的核心问题,软件漏洞检测是信息安全的重要组成部分,漏洞带来的危害日益严重,恶意攻击者可以利用软件漏洞来访问未授权的资源,导致敏感数据被破坏,甚至威胁到整个信息安全系统。
计算机软件安全漏洞,计算机系统的一组特性,这些特性一旦被某些恶意的主体利用,通过已授权的手段,来获取对计算机资源的未授权访问,或者通过其他办法对计算机的系统造成损害。
首先定义了软件漏洞和软件漏洞分析技术,在此基础上,提出了软件漏洞分析技术体系,并对现有技术进行了分类和对比,归纳出了该领域的科学问题、技术难题和工程问题,最后展望了软件漏洞分析技术的未来发展。
关键词:软件安全,漏洞检测,信息安全ABSTRACTGlobal popularity and development of the Internet so that the computer network is closely related to people's lives, information security has gradually become the core of information technology, software, information security vulnerability detection is an important part of the growing vulnerability harm, malicious attackers You can take advantage of software vulnerabilities to access unauthorized resources, resulting in destruction of sensitive data, even a threat to the entire information security system. A set of characteristics of computer software security vulnerability of computer systems, these features once exploited by some malicious body through authorized means to gain unauthorized access to computer resources, or through other means cause damage to computer systems.First, the definition of software vulnerabilities and vulnerability analysis software technology, on this basis, the proposed software vulnerability analysis technology system, and the prior art are classified and contrast, sums up the problem in the field of scientific, technical problems and engineering problems, Finally, the prospect of future development of the software vulnerability analysis technology.Keywords: software security; vulnerability detection; information security目录1 绪论 (5)1.1 背景 (5)1.2国内外研究现状 (5)2 软件安全漏洞概述 (7)2.1漏洞的定义 (7)2.2 计算机软件所面临的主要安全威胁 (8)2.3 漏洞的分类 (8)2.4 漏洞的特征 (9)2.5 常见的计算机软件安全漏洞 (9)2.6 软件安全漏洞产生的原因 (10)3 软件安全漏洞检测方法 (12)3.1静态分析 (12)3.2动态检测 (14)3.3 混合检测技术 (15)4 软件漏洞分析技术 (17)4.1漏洞分析技术分类 (17)4.2软件架构分析 (17)4.3代码静态分析 (19)4.4 代码动态分析 (21)4.5 动静结合分析 (22)4.6漏洞定位 (22)5 软件漏洞分析中的关键性问题 (24)5.1 科学问题 (24)5.2技术难题 (25)5.3工程问题 (25)6 计算机软件漏洞检测技术的实践应用 (26)7 总结与未来展望 (27)致谢 (28)参考文献 (29)附录 (30)1 绪论1.1 背景计算机技术的发展促进了信息全球化的进程,提高了计算机的普及,人类的各个领域都已经离不开计算机应用。
然而,计算机软件安全漏洞对人类的生产活动是一个巨大的隐患。
即使是防火墙的设置,入侵检测技术和杀毒软件也不能避免计算机软件自身漏洞带来的威胁[1]。
这些漏洞的存在直接给多数网络黑客侵入的机会,直接给计算机软件使用者带来巨大的信息安全威胁。
如今计算机更新速度异常迅速,那些漏洞的出现频率也越来越高。
所以,就必须不断地提升计算机软件当中的安全漏洞检测技术,这项技术成为寻找和弥补漏洞的主要方式,也是保障计算机安全、稳定运行的关键[2]。
1.2国内外研究现状传统的漏洞发掘一般是安全分析人员通过阅读源代码或者对软件进行反汇编分析,在理解软件工作原理的情况下,通过手工对目标软件进行分析,从而发现软件中的安全漏洞。
随着软件安全性需求的不断增强,这种手工作坊式的方法难以满足快速和准确地找出软件漏洞的要求。
在这种形势下,利用自动化方法或者半自动化的辅助工具发现漏洞成为研究的重点。
目前利用自动化方法发现漏洞基本上可以归为两类,一类是基于软件测试中的黑盒测试原理,这类方法主要针对软件提供的接口,而不是针对软件的实现进行测试。
另外一类是使用编译技术,对软件的源代码进行扫描,针对不安全的库函数使用以及内存操作进行语义上的检查,从而发现安全漏洞。
[3]上个世纪七十年代中期,美国南加州大学对操作系统保护错误的安全缺陷研究PA( Protection Analysis Project)计划是第一项与软件漏洞相关的研究,这个研究开启了对软件安全漏洞及其脆弱性方面的研究。
随后,如美国的国家标准局、联邦调查局、国防部等国家权力机关, Stanford、Harvard、Purdue 等著名高校以及 Microsoft、IBM 等国际性的大公司等也加入了这个研究方向。
该领域不断出现创新研究成果,包括RISOS 计划、SDC渗透分析方法、Brian Marick 的软件漏洞分析、Landwher的漏洞分类以及 Purdue的COAST 实验室的计算机漏洞研究。
2003 年,美国国防部收到美国国家科学院提交的报告《用于反恐中的信息技术报告》。
该报告评估了项目“编写更少漏洞的代码”的研究,而这个研究被定义为“高”迫切性和“非常困难”的难度,而该项目的关键即为“软件安全漏洞测试”。
由此可见,软件安全的重要性和迫切性是世界的共识。
而这方面的研究力度也在不断加大,随后几年出现了很多令人鼓舞的成果。
(1) 模型检查是一种软件安全漏洞测试形式化方法。
该方法因为长期无法解决状态爆炸的问题导致无法对超过五千行的数据进行有效检测。
2005 年,Bell 实验室)发布的 VeriSofl 测试软件,弥补了上述缺陷,实现了对超过五千行的C/C++源程序的有效测试。
尽管该方法存在一定的漏报率,但它见证了形式化方法取得的进展。
(2) Purdue在软件漏洞检测方面一直有突出的贡献。
其计算机系的CERIAS 在2005年的技术报告中提出将预测的方法和概率统计应用到软件安全中,该方法在一定程度上有希望解决软件漏洞测试中状态组合爆炸的问题。
(3) 2005年,Purdue教育和信息安全研究中心提出进程完整性的测试方法。
这种方法在现有入侵检测方法的基础上,提出一种脆弱性检测机制。
它采用系统调用的进程入侵检测方法把程序的缺陷按照错误种类分成有限的数目并得到精确解决错误种类的方法,这些方法是以组件方式产生并与目标错误种类的特性进行了严格的匹配,能够找出为多种错误种类的错误特性来保证检测方法的覆盖率。
(4) 2006 年,Purdue 计算机系的 CERIAS 在技术报告中将数据挖掘与静态分析与相结合的方法用于软件漏洞检测分析工具FaultMiner 中,应用FaultMiner 测试四个常用的软件,发现了的软件安全漏洞中有两个是新的,取得了很显著的效果。
与国外的研究状况相比较,漏洞挖掘方面的研究在国内起步较晚。
2000 年起,国内的很多高校和科研机构开始重视软件缺陷和脆弱性等方面的研究工作。
取得成果并投入较大的有国防科技大学、装甲兵工程学院、解放军电子工程学院等军方院校以及南京大学、东南大学、中国科学技术大学、北京理工大学等地方院校。
其中大部分研究是在已经公开的漏洞信息的基础上进行的并且其漏洞信息数据库也基本来自国外开放的信息安全研究机构。
在软件漏洞检测领域,很多国内研究者已经取得了相当的成果,朱扬勇等人将序列相似性查询技术用于软件漏洞分析中,王考杰等人提出了一种数据流相似性查询算法,在子窗口采用小波分解和系数约简。
汤春蕾等人提出了一种适用于数值型序列的匹配算法,利用了区间的单调趋势融合策略实现匹配算法的查询。
通过分析已有软件漏洞检测方法,在数据挖掘的视角对漏洞信息加以分析使用,对漏洞数据库中信息进行整理形成漏洞知识库,为快速检测分析漏洞提供了前提依据。
胡昌振等人在此基础上提出建立了基于序列模式挖掘的软件漏洞检测模型和方法,降低漏洞检测漏报率。
与此同时,国内也有一些模式匹配工具,如FlawFinde 等,它将漏洞缺陷进行分级匹配,但是它不能对源代码和注释进行区分,误报率较高,ITS4 是基于语法分析的工具,针对FlawFinde的缺点,通过对源代码进行语法分析实现了漏洞模式的匹配。
漏洞挖掘辅助工具的比较有代表的公司有 Fortify Software、Coverity Software和Mu Dynamics,它们都是 2000年以后新兴的公司。