收藏本站
收藏 | 论文排版

缓冲区溢出漏洞的静态检测方法研究

夏一民  
【摘要】: 程序运行时的缓冲区溢出将导致程序行为异常。恶意用户可以利用服务程序中的缓冲区溢出漏洞,攻击目标计算机系统,窃取或破坏其中的敏感信息,甚至控制该系统向其它主机发动攻击。在每年数十万的网络攻击事件中,大约50%与缓冲区溢出漏洞有关,每年给计算机用户造成的经济损失超过100亿美元。缓冲区溢出漏洞已经成为一种最危险和最常见的软件安全漏洞。 静态检测方法通过分析程序源码,发现其中的缓冲区溢出漏洞,可以从根本上提高软件的安全性。和动态检测方法相比,静态检测方法具有不降低程序执行效率、无兼容性问题、可在软件开发早期应用等优点。缓冲区溢出漏洞的静态检测正在成为信息安全领域的一个研究热点。 本文的目标是研究不依赖用户注释,同时具有高检测精度和高检测效率的缓冲区溢出漏洞静态检测技术。在已有的静态检测方法中,数据流分析和约束分析方法具有不依赖用户注释和高效的特点。数据流分析沿控制流传播约束变量的范围,当传播达到不动点时得到分析的结果。由于数据流分析不能跟踪控制条件,特别是传统的加宽/收窄技术不考虑循环控制条件中约束变量之间的数据依赖关系,导致采用数据流分析的缓冲区溢出漏洞检测方法的精度不高。约束分析通过约束状态的建立和求解发现程序性质。如果循环定义的约束变量之间存在相互依赖的关系,那么包含这些依赖关系的约束状态将无解。此外,基于约束分析的已有静态检测系统忽略指令执行条件的传播和求解,这也降低了它们的检测精度。 本文从提高缓冲区溢出漏洞静态检测的精度和效率入手,针对上述问题展开深入研究,主要研究工作和创新包括: (1)针对已有数据流分析方法不能精确分析循环的问题,提出一种基于反向路径的循环分析方法。缓冲区溢出和循环有着密切的联系。使用加宽/收窄操作能够快速建立循环的近似解,但是已有方法在分析循环控制条件时不考虑约束变量之间的数据依赖关系,分析精度不高。本文提出一个基于反向路径的循环分析框架和一组双向数据流方程,以及一个基于此框架和数据流方程的循环分析算法。对于循环内可能改进分析结果的控制转移节点,该算法首先进行后向数据流分析,并沿反向路径传播节点的控制条件,再进行前向数据流分析,改进控制转移节点的数据流状态,提高循环分析的精度。 (2)针对穷尽约束产生方法建立的约束状态中存在大量冗余约束条件的问题,提出一种需求驱动的约束产生方法。传统的穷尽约束产生方法计算每条语句的约束信息。由于程序中的许多指令是与内存访问无关的,所以这种方法产生了许多冗余的约束条件。本文提出的需求驱动约束产生方法仅为内存访问指令维护约束状态,并且仅考虑那些与缓冲区溢出漏洞检测有关的约束信息,从而减少了需要建立的约束状态和约束条件的数量,提高了约束产生的效率。 (3)针对已有约束状态安全检查方法求解精度不高的问题,提出一种范围约束和控制约束相互改进的约束状态检查方法。该方法通过一个“求解一检查一改进”的迭代过程,不断缩小约束变量在范围约束和控制约束下的取值范围,逐步提高溢出表达式的计算精度。由于迭代过程充分利用了控制约束,所以本方法能够获得比以往方法更精确的检测结果。同时,迭代可以在求解结果足以确定指令安全性时停止,避免不必要的改进。如果程序中存在循环或递归,那么本文的约束状态安全检查算法还通过打破范围依赖环路的方法,消除使得约束状态无解的约束条件,其效率明显高于使用IIS的传统方法。 (4)针对单一静态分析方法不能同时获得高检测精度和高检测效率的问题,本文提出一种基于反例的溢出漏洞静态检测方法。该方法是一种层次式检测方法,先通过流敏感和上下文敏感的快速检测,发现可能的缓冲区溢出漏洞,再在快速检测结果的指导下,进行路径敏感和上下文敏感的精确检测,消除快速检测引入的误报,建立可导致缓冲区溢出的具体反例。由于反例的建立是在快速检测结果的指导下完成的,因而这种方法比传统的精确检测方法更高效,又不会降低检测的精度。为了消除数据流分析或约束分析各自在检测缓冲区溢出漏洞时的不足,该方法还将数据流分析建立的循环分析结果和约束分析建立的约束状态合并,组成统一的约束状态。 (5)根据本文提出的分析算法,我们实现了一个缓冲区溢出漏洞静态检测的原型系统,并对它的总体和各个部分进行了性能讦测。实验结果表明,本原型系统具有非常高的检测精度和检测效率,总体性能优于已有的典型缓冲区溢出漏洞静态检测系统。 综上所述,本文针对缓冲区溢出漏洞静态检测的几个关键问题进行了探索,取得了一定的研究成果。对于提高溢出漏洞静态检测的精度和效率具有重要的理论意义和应用价值。


知网文化
【相似文献】
中国期刊全文数据库 前20条
1 叶红,安东升;计算机缓冲区溢出安全问题研究[J];计算机工程与科学;2004年11期
2 霍炬;;绿坝的技术错误及其可能导致的后果[J];软件工程师;2009年08期
3 蒋卫华,王文奇,杜君;在程序编码中防止缓冲区溢出[J];微电子学与计算机;2002年10期
4 朱虹;丁雁林;;缓冲区溢出检测模型研究[J];计算机工程与应用;2006年10期
5 莫尉;王国秋;;缓冲区溢出漏洞攻击的分析研究[J];计算机与现代化;2007年04期
6 刘永艳,殷肖川,邓军;缓冲区溢出机理及攻击分析[J];空军工程大学学报(自然科学版);2003年05期
7 Leep;;硬件与病毒对抗的故事——写在病毒肆虐时[J];电脑自做;2004年07期
8 李学忠;缓冲区溢出攻击的分析及防范措施[J];电子工艺技术;2005年05期
9 曾凤;缓冲区溢出攻击的防范策略[J];微电子学与计算机;2005年09期
10 康振华;周金刚;;基于Windows2000环境下的缓冲区溢出[J];中国现代教育装备;2006年08期
11 余俊松;张玉清;宋杨;刘奇旭;;Windows下缓冲区溢出漏洞的利用[J];计算机工程;2007年17期
12 小非;;浅谈溢出漏洞[J];电脑迷;2008年23期
13 葛小凯;白振兴;;基于关系数据库的静态分析研究[J];现代计算机(专业版);2008年12期
14 周虎生;文伟平;;基于Windows平台的RPC缓冲区溢出漏洞研究[J];信息网络安全;2009年05期
15 张实睿;许蕾;徐宝文;;一种防止缓冲区溢出的整数溢出检测方法(英文)[J];Journal of Southeast University(English Edition);2009年02期
16 李振汕;;缓冲区溢出类黑客攻击与防御措施研究[J];信息网络安全;2010年04期
17 张永,陆余良;Apache&OpenSSL远程缓冲区溢出机理研究[J];网络安全技术与应用;2003年02期
18 朱鸿宇,谢余强,刘瑰;基于故障注入发现缓冲区溢出漏洞的研究[J];微计算机应用;2005年06期
19 李频;江洁欣;;MS07-017动画光标处理漏洞的分析与利用[J];计算机工程;2008年17期
20 陈石坤;李舟军;黄永刚;邢建英;;一种基于SAT的C程序缓冲区溢出漏洞检测技术[J];清华大学学报(自然科学版);2009年S2期
中国重要会议论文全文数据库 前10条
1 姚欣洪;宫云战;杨朝红;;一种基于代码静态分析的缓冲区溢出检测算法[A];第六届中国测试学术会议论文集[C];2010年
2 杨洋;帅春燕;江建慧;;基于堆栈分析的缓冲区溢出漏洞检测方法[A];第六届中国测试学术会议论文集[C];2010年
3 黄文;黄玮;范文庆;;基于二进制代码的传感器网络缓冲区溢出检测模型[A];第十三届中国科协年会第11分会场-中国智慧城市论坛论文集[C];2011年
4 王泓;李洪敏;;防止缓冲区溢出——C/C++语言的安全问题[A];第十九次全国计算机安全学术交流会论文集[C];2004年
5 张婷婷;罗守山;;Windows缓冲区溢出保护机制及突破技术研究[A];第十三届中国科协年会第11分会场-中国智慧城市论坛论文集[C];2011年
6 杨文彬;贾卓生;;缓冲区溢出及其防护方法[A];全国计算机网络应用年会论文集(2001)[C];2001年
7 王立民;曾凡平;李琴;梁坤;陈剑;;针对缓冲区溢出攻击的随机化技术[A];第二十一次全国计算机安全学术交流会论文集[C];2006年
8 罗衡峰;杨晓明;;信息系统安全漏洞利用与防御——缓冲区溢出关键技术研究[A];2008第六届电子产品防护技术研讨会论文集[C];2008年
9 赵云霞;崔宝江;;缓冲区溢出漏洞攻击与防范技术研究[A];全国计算机安全学术交流会论文集(第二十四卷)[C];2009年
10 马俊;李根;卢凯;;基于模拟器的缓冲区溢出动态检测方法[A];全国第19届计算机技术与应用(CACIS)学术会议论文集(下册)[C];2008年
中国博士学位论文全文数据库 前8条
1 崔展齐;若干软件非功能属性相关的设计和实现技术研究[D];南京大学;2011年
2 宣蕾;网络安全定量风险评估及预测技术研究[D];国防科学技术大学;2007年
3 程绍银;需求驱动的软件安全缺陷自动测试生成[D];中国科学技术大学;2009年
4 王兰佳;基于网络的0-day多态蠕虫检测算法研究[D];清华大学;2009年
5 姚兰;基于欺骗的网络积极防御技术的研究与实现[D];西安电子科技大学;2007年
6 朱林;基于实时以太网的数字化变电站体系结构和新型应用[D];华中科技大学;2010年
7 张焕强;家庭网关中的资源管理[D];中国科学院研究生院(软件研究所);2003年
8 陈石坤;面向程序验证的循环不变式自动构造技术研究[D];国防科学技术大学;2010年
中国硕士学位论文全文数据库 前10条
1 宋奕青;基于动态二进制探测框架的缓冲区溢出检测研究[D];上海交通大学;2010年
2 谢地;基于内存段保护关键数据的缓冲区溢出防护方法研究与实现[D];电子科技大学;2011年
3 杨海军;一种防止堆缓冲区溢出的有效方法[D];西安电子科技大学;2009年
4 柳淑玉;缓冲区溢出漏洞挖掘技术研究[D];武汉纺织大学;2011年
5 苟鹏飞;缓冲区溢出漏洞检测技术研究[D];电子科技大学;2011年
6 陈楠;基于约束系统模型的缓冲区溢出漏洞检测系统[D];解放军信息工程大学;2010年
7 俞许;二进制代码缓冲区溢出检测技术研究[D];南京大学;2012年
8 李婷;混合式缓冲区溢出漏洞检测模型的研究[D];大连海事大学;2012年
9 周雷;数组缓冲区溢出分析和检测[D];上海交通大学;2010年
10 姚璐宁;程序缓冲区溢出漏洞检测方法的设计与验证[D];北京邮电大学;2012年
中国重要报纸全文数据库 前10条
1 静;认知缓冲区溢出[N];中国电脑教育报;2002年
2 ;缓冲区溢出与病毒攻击[N];网络世界;2003年
3 河南 本苯;杜绝缓冲区溢出?[N];电脑报;2004年
4 王振武;缓冲区溢出型漏洞分析及防护[N];网络世界;2002年
5 张少波;应对缓冲区溢出漏洞攻击[N];计算机世界;2003年
6 ;漏洞使QQ被攻击[N];计算机世界;2003年
7 张琦;全力打造安全主机 加固“脆弱”的IIS服务[N];中国电脑教育报;2005年
8 中科红旗软件技术有限公司工程师 俞戍远;“首例Linux病毒”并非病毒[N];网络世界;2001年
9 小新;QQ2003Ⅱ最新漏洞[N];中国电脑教育报;2003年
10 侯均;与漏洞捉迷藏[N];网络世界;2006年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978