[发明专利]一种基于序列模式挖掘的软件安全漏洞检测方法无效
申请号: | 200910235658.X | 申请日: | 2009-10-10 |
公开(公告)号: | CN101710378A | 公开(公告)日: | 2010-05-19 |
发明(设计)人: | 胡昌振;任家东;王崑声;马瑞青;孟丽丽;王立波;张冬梅 | 申请(专利权)人: | 北京理工大学;燕山大学;中国航天科技集团公司第七一○研究所 |
主分类号: | G06F21/22 | 分类号: | G06F21/22;G06F17/30 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 付雷杰 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 序列 模式 挖掘 软件 安全漏洞 检测 方法 | ||
技术领域
本发明涉及一种软件安全漏洞静态检测技术,特别涉及一种基于序列模式挖掘的软件安全漏洞检测方法,属于信息安全技术领域。
背景技术
随着计算机技术的迅速发展,人类社会的信息化程度越来越高,整个社会的政治、经济、军事、文化以及其他领域对计算机信息系统的依赖程度也越来越高。在这种情况下,计算机系统的安全性得到了人们越来越多的关注。然而,大型软件、系统的编写需要许许多多程序员共同完成,他们将一个软件或系统分成若干板块,分工编写,然后再汇总,测试;最后再修补、发布,因此在软件中存在安全漏洞几乎是不可避免的。软件安全漏洞指软件设计实现过程中被引入的、在数据访问或行为逻辑等方面的缺陷。这些漏洞常常被攻击者利用,从而使程序行为违背一定的安全策略。基于上述原因,目前对软件安全漏洞检测技术的研究越来越受到重视。
按照检测过程中是否需要执行程序的标准,软件安全漏洞检测技术分为动态检测和静态检测。
(1)动态测试
动态测试是在程序运行过程中注入测试数据,通过对程序的运行环境(包括环境变量、内存、堆和栈等)进行分析,观察程序运行是否正常、程序行为是否满足要求,来检测程序是否存在漏洞。动态检测技术的优点是不直接面对源代码,不需要修改目标程序源代码,这在一定程度上提高程序的保密性。但其缺点是仅关注程序运行的外部表现,因此,定位不准确、漏报率高,不能很好地发现隐藏在程序中的漏洞。动态测试主要应用于软件生命周期的测试阶段。
(2)静态检测
静态检测主要应用于软件生命周期的编码阶段。静态检测不编译运行程序,而是通过对程序源代码进行分析以发现其中的错误。静态检测的目标不是证明程序完全正确,而是作为动态测试的补充,在程序运行前尽可能多地发现其中隐含的错误,提高程序的可靠性和健壮性。对一些状态有限且对稳定性要求很高的软件来说,采用适当的静态检测技术是非常有必要的。但静态检测也有局限性,对于程序的某些性质(比如和指针运算、动态存储分配等相关的性质),用静态检测难以奏效。因此,静态检测并不能完全替代动态测试。
静态检测包括静态分析和程序验证。其中静态分析方法主要包括三种检测方法:词法分析,规则检查和类型推导。
静态分析方法直接扫描程序代码,提取程序关键语法,解释其语义,理解程序行为,根据预先设定的漏洞特征、安全规则等检测漏洞。各种静态分析工具的不同点主要体现在扫描程序的过程中所采用的算法不同,以及在与预先设定的漏洞特征进行比对时所采用的方法不同。静态分析方法的缺点是:①只关注程序表面特征,过于简单;②很多静态分析工具需要人工辅助定义类型和规则安全漏洞的检测,其扩展性和自动性差,可检查的漏洞也有限。
程序验证方法通过抽象程序得到形式化程序或模型,然后使用形式化验证技术进行检验证明,通过验证正确性的方式来检测漏洞。各种程序验证工具的不同点主要体现在从程序中抽象得到的模型不同,以及针对安全特性建立的模型不同。静态分析方法采用的是模拟扫描,而程序验证方法采用的是严谨的证明。与静态分析方法相比,程序验证方法的理论基础更加严格,在程序全局性的检测上,效果更加突出。程序验证方法的自动化程度高,可扩展性好。
静态检测中的程序验证方法包括模型检验,定理证明和符号执行。
安全特性模型检验程序MOPS(MOdel Checking Programs for Securityproperties)和SLAM是两个典型的模型检验工具。H.Chen,D.Wagner在文献《MOPS:an Infrastructure for Examining Security Properties of Software》(Technical Report,2002.)中介绍了MOPS,MOPS是一种检测软件安全特性的体系结构。MOPS利用硬件设计领域中的模型检验方法来检测软件安全特性,它分别对源程序和安全特性建模。安全特性模型用有穷自动机表示,源程序模型用下推自动机来表示。MOPS检验的基本思想是:通常程序都会执行一些与安全相关的操作,而安全特性则定义了这些操作的顺序,违背该顺序的操作序列可能导致潜在的安全漏洞。软件安全检验的目标就是验证程序是否很好的满足了安全特性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学;燕山大学;中国航天科技集团公司第七一○研究所,未经北京理工大学;燕山大学;中国航天科技集团公司第七一○研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910235658.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种教学用挖掘机及其回转台传动机构
- 下一篇:一体式圆柱形充电电池