收藏本站
收藏 | 手机打开
二维码
手机客户端打开本文

分段符号执行模型及其环境交互问题研究

范文庆  
【摘要】: 高代码覆盖率的软件自动化测试是开发高质量软件的关键性技术。符号执行是一种重要的形式化和自动化的程序分析理论,是一种生成能够覆盖特定执行路径测试用例的方法模型,能够与程序的抽象和推理、模型检测等理论相互结合,在程序的自动化测试、缺陷检测、程序的验证与确认、正确性证明等方面有较好的应用前景。 符号执行的基本原理是通过输入数据符号化,将运算过程表示为路径执行条件的符号表达式,从而将测试数据生成问题转换为可满足性(Satisfiability)理论的约束求解问题。 近几年来符号执行技术发展快速,在早期只能分析简单数据类型和简单数据运算的单过程程序,目前向着能够应用于复杂数据类型、复杂运算操作、多过程程序的方向发展。 但是符号执行技术向实用化方向发展的过程中仍然存在如下三方面困难。其一,对于任意功能外部过程调用的处理方法存在局限性(外部调用承担了目标程序与执行环境交互的功能,因此这种局限性也称为环境交互问题)。实际情况中或由于外部调用黑盒的特性,或由于外部调用会极大增加程序体积,而无法进行有效符号执行分析。现有的以实际执行值替换符号变量的方法具有严重的片面性,而基于环境建模的方法不具备实用性。其二是路径爆炸问题,符号执行存在程序路径数量会随着程序体积呈指数性增长的现象。这造成对大型程序的分析很难在可容忍的时间消耗和资源消耗内完成。而现有的函数摘要等解决方法存在不精确性和无法处理递归调用等问题。其三,对具有复杂数据结构、基于指针运算、内存动态分配等复杂数据运算的程序的处理模型不健全,对任意形式的数据结构不能完全处理。这些问题是当前符号执行理论发展的最大障碍,已经成为学界研究的热点。 本文的研究工作试图解决上述问题,主要包括以下几个方面: 第一项工作也是论文中最重要的工作是针对路径爆炸问题,提出了分段符号执行模型。分段符号执行是一种新的符号执行模型,基本思路是将大型程序的分析拆分为多个程序单元的分析,可分多次选择性的执行目标程序中的不同单元。其中每一分析单元内的路径数量都在可控制的范围内,不会造成持续的路径爆炸,但是如果需要满足总的分析时间仅为各部分分析时间的总和,前提是能够处理外部调用和环境交互的问题,使得实际执行的时间消耗要大大小于符号执行的时间消耗。在分段符号执行中,各目标单元间的调用也成为了外部调用,因此环境交互问题就成为了分段符号执行模型的关键性问题。 论文通过对外部调用的参数属性判断、实际执行过程的程序行为分析及IO对象建模的方法来处理环境交互问题。 论文的第二项工作是在数据流分析理论和方法的基础上,定义并判断外部过程调用的参数属性。通过参数属性抽象描述了外部过程中的数据输入与输出等行为,从而能够检测到并符号化输入的数据。这将程序分析过程中对外部调用的处理转换为了函数内部分析。论文中所采用数据流分析是一种成熟的程序分析方法,对符号执行的时间消耗影响很小。 第三是提出了实际执行过程的程序行为分析及IO对象建模的方法,这两种方法在分段符号执行系统框架中体现。系统框架包括一种适用于分段符号执行模型的中间语言和一个执行引擎。通过设立内置的堆块数据类型、监控内存分配与释放操作、符号化系统对象、监控实际执行过程中的I0操作、使用函数调用序列等方法,建立了外部过程的程序实行行为与目标单元中符号执行行为的联系,化解了程序表示的缺失所造成的无法进行符号执行分析的问题,从而能够有效处理外部调用过程中的环境交互性。这使得在分析目标的程序内,任意的选择若干过程作为一次分析的目标单元成为了可能,是分段符号执行能够正确进行的基础。 第四,论文研究了分段符号执行模型的一个典型应用——检测程序中缓冲区溢出等内存相关缺陷。在任意形式的数据结构的抽象表示方法的基础上,研究了使用分离逻辑推导规则和约束求解等方法在分段符号执行结果中检测程序的潜在安全缺陷,以提高复杂程序的安全性。 论文实验验证了分段符号执行模型解决符号执行中路径爆炸问题和环境交互问题的有效性。


知网文化
【相似文献】
中国期刊全文数据库 前20条
1 高仲仪 ,梁霞;符号执行和测试数据辅助生成的实验系统[J];北京航空航天大学学报;1988年04期
2 刘宗田,朱逸芬;符号执行技术在68000C反编译程序中的应用[J];计算机学报;1988年10期
3 王成,郝忠孝;基于一个新的主动数据库模型的系统执行模型的研究[J];齐齐哈尔大学学报;2004年03期
4 高耀清,胡守仁;并行推理机RAP/LOP-WAM的方案设计和性能评价[J];微电子学与计算机;1991年02期
5 徐凯,章萃;基于CCS执行模型的逻辑式语言POLYLOG的设计与实现[J];软件学报;1992年02期
6 翁子盛;王宝生;林锦滨;;程序符号执行中的数组分析[J];长江大学学报(自然科学版)理工卷;2010年01期
7 卢虹,徐宝文;一种Web应用的状态测试方法[J];计算机工程与应用;2002年02期
8 洪宇;陈光;于见平;韩柯;;处理符号执行中数组元素混淆的一种新方法[J];计算机应用;2005年S1期
9 崔宝江;国鹏飞;王建新;;基于符号执行与实际执行的二进制代码执行路径分析[J];清华大学学报(自然科学版);2009年S2期
10 刘云生,陈世俊;AQEM:一种抽象的查询执行模型[J];计算机工程与应用;2004年22期
11 史桂红;一种基于对象状态的软件测试方法[J];电脑与信息技术;2005年02期
12 娄坚波;刘久富;李金奎;王伟;;基于条件值的C/C++预处理测试算法[J];计算机工程;2011年14期
13 陈福安,刘宗田,李力;8086 C语言反编译系统的设计及实现技术[J];小型微型计算机系统;1993年04期
14 朱根江,谢立,孙钟秀;一个面向对象的并行执行模型[J];电子学报;1998年02期
15 刘晓燕;张云生;字天文;李俊昌;;实时多任务执行模型到Windows NT的映射[J];计算机工程与应用;2008年08期
16 林梦香;陈胤立;陈睿;周刚;;基于懒替换的C符号执行[J];北京航空航天大学学报;2009年06期
17 林锦滨;蒋凡;;错误模式和程序切片的软件漏洞检测[J];信息安全与通信保密;2009年11期
18 林锦滨;蒋凡;;执行路径建模进程化代码分析[J];计算机工程;2010年09期
19 代子营;毛晓光;马晓东;王瑞;;基于抽象符号表的内存模型[J];计算机工程与科学;2011年06期
20 时志伟;李小军;;基于信息流分析的源代码漏洞挖掘技术研究[J];信息网络安全;2011年11期
中国重要会议论文全文数据库 前10条
1 何英华;冯玉才;;主动规则的语法定义和语义执行模型研究[A];第十六届全国数据库学术会议论文集[C];1999年
2 林锦滨;张晓菲;刘晖;;符号执行技术研究[A];全国计算机安全学术交流会论文集(第二十四卷)[C];2009年
3 李波;李钢;;软件性能工程建模技术研究[A];中国电子学会第十六届信息论学术年会论文集[C];2009年
4 段紫辉;唐世渭;杨冬青;李红燕;;基于状态与规则集的工作流执行模型[A];第十九届全国数据库学术会议论文集(研究报告篇)[C];2002年
5 郑利平;张冬艳;刘晓平;;V&V活动管理方法研究[A];全国第19届计算机技术与应用(CACIS)学术会议论文集(上册)[C];2008年
6 姚铎;刘亚萍;;一种基于多线程的BGP策略并行模型的研究方法[A];2009年研究生学术交流会通信与信息技术论文集[C];2009年
7 邓宏钟;殷建平;谭跃进;;一种用于构造DAI系统模型的扩展时态信念逻辑[A];1999年中国智能自动化学术会议论文集(下册)[C];1999年
8 吴庆;;中国青年政策执行过程的初步研究——史密斯模型的一个解释[A];青少年事务与政策研究报告——中国青少年研究会优秀论文集(2002)[C];2002年
9 万琳;张威;马雪雁;陈曼青;;基于路径的测试用例自动生成技术[A];第十届全国容错计算学术会议论文集[C];2003年
10 高海昌;冯博琴;侯芸;;测试数据自动生成的研究进展[A];2006中国控制与决策学术年会论文集[C];2006年
中国博士学位论文全文数据库 前10条
1 范文庆;分段符号执行模型及其环境交互问题研究[D];北京邮电大学;2010年
2 程绍银;需求驱动的软件安全缺陷自动测试生成[D];中国科学技术大学;2009年
3 高鹰;代码迷惑及其语义研究[D];中国科学技术大学;2007年
4 龚锐;多核微处理器容软错误设计关键技术研究[D];国防科学技术大学;2008年
5 方维;面向数据通信优化的并行程序执行模型[D];中国科学技术大学;2011年
6 王嘉捷;多重循环程序内存访问越界增量检测方法[D];中国科学技术大学;2009年
7 许牧;可重构众核流处理器体系结构关键技术研究[D];中国科学技术大学;2012年
8 李仁见;堆操作程序分析验证技术研究[D];国防科学技术大学;2011年
9 刘圆;多核结构上高效的线程级推测及事务执行模型研究[D];中国科学技术大学;2007年
10 梁博;多核结构上的线程级推测关键技术研究[D];中国科学技术大学;2008年
中国硕士学位论文全文数据库 前10条
1 王卓;基于符号执行的二进制代码动态污点分析[D];上海交通大学;2011年
2 肖戌;基于符号执行的软件脆弱性分析技术研究[D];电子科技大学;2011年
3 倪康奇;基于二进制代码的动态符号执行工具[D];上海交通大学;2011年
4 闫晓伟;基于符号执行的软件脆弱性测试技术[D];电子科技大学;2012年
5 国鹏飞;基于动态符号执行的二进制代码漏洞挖掘系统研究与设计[D];北京邮电大学;2011年
6 余啸;基于动态符号执行的并行化测试数据自动生成[D];华东师范大学;2011年
7 娄坚波;面向宿主的嵌入式软件符号执行技术研究与实现[D];南京航空航天大学;2011年
8 蒋思远;基于动态符号执行的测试工具设计与实现[D];华东师范大学;2012年
9 丁保贞;基于动态符号执行的代码分析工具的研究[D];上海交通大学;2012年
10 翁子盛;基于符号执行的C程序单元测试研究与实现[D];国防科学技术大学;2010年
中国重要报纸全文数据库 前9条
1 江南计算技术研究所 王飙 陈皖苏;多核处理器的九大关键技术[N];计算机世界;2006年
2 ;Ruby on Rails[N];计算机世界;2006年
3 NCR(中国)有限公司数据仓库事业部 张新宇;开放标准提升数据挖掘效率[N];通信产业报;2006年
4 ;BPM标准的发展与推动[N];计算机世界;2003年
5 ;SPML简化信息交换[N];网络世界;2003年
6 田;让嵌入式系统的开发更有效率[N];计算机世界;2007年
7 侯丽坤编译;安全策略关注三大要素[N];计算机世界;2004年
8 李笑薇;量化投资:从“投资的艺术”到“投资的科学”[N];中国证券报;2009年
9 北京航空航天大学电子信息工程学院 毛峡 李峥;情感计算能实现吗[N];科技日报;2011年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978