收藏本站
《北京邮电大学》 2010年
收藏 | 手机打开
二维码
手机客户端打开本文

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

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

手机知网App
【引证文献】
中国博士学位论文全文数据库 前1条
1 钟金鑫;恶意代码二进制程序行为分析关键技术研究[D];北京邮电大学;2012年
中国硕士学位论文全文数据库 前1条
1 赵慧娟;基于符号执行与遗传算法的单元测试研究与应用[D];北京交通大学;2011年
【参考文献】
中国期刊全文数据库 前1条
1 梅宏;王千祥;张路;王戟;;软件分析技术进展[J];计算机学报;2009年09期
【共引文献】
中国期刊全文数据库 前10条
1 刘兆存;范玮佳;;软件过程中可复用需求分析[J];重庆理工大学学报(自然科学);2012年01期
2 刘震;缪力;;Java程序模型检查方法与实现框架[J];长沙铁道学院学报(社会科学版);2009年04期
3 黄超;江国华;;一种Ada并发程序的模型检测方法[J];电子科技;2012年03期
4 钟金鑫;魏更宇;安靖;杨义先;;恶意代码的符号执行树分析方法[J];重庆大学学报;2012年02期
5 陆晶晶;骆翔宇;;基于ZING的Web服务建模与验证[J];桂林电子科技大学学报;2011年03期
6 袁志斌;;软件开发的形式化方法[J];电脑与电信;2008年07期
7 付世敏;;基于综合模型的核电程序理解[J];电脑知识与技术;2013年04期
8 俞东进;闫大强;;基于执行模式和扇入分析的横切关注点识别[J];华中科技大学学报(自然科学版);2012年01期
9 孙涛;叶新铭;刘靖;杨蒙;;一种基于CPN的协议测试序列生成方法[J];解放军理工大学学报(自然科学版);2012年02期
10 ;Research on trusted computing and its development[J];Science China(Information Sciences);2010年03期
中国重要会议论文全文数据库 前3条
1 高静;兰雨晴;金茂忠;郭树行;李红娟;赵同;;基于动态分析构件接口交互约束建模[A];第二十七届中国控制会议论文集[C];2008年
2 周志远;张大方;缪力;赵丹;黄谷;;基于Java内存模型的并发程序模型检测[A];第五届中国测试学术会议论文集[C];2008年
3 周傲;王雅文;宫云战;;基于区间缩减的自动化打桩技术研究[A];第十四届全国容错计算学术会议(CFTC'2011)论文集[C];2011年
中国博士学位论文全文数据库 前10条
1 崔展齐;若干软件非功能属性相关的设计和实现技术研究[D];南京大学;2011年
2 陶红伟;基于属性的软件可信性度量模型研究[D];华东师范大学;2011年
3 赵常智;基于运行时验证的软件监控关键技术研究[D];国防科学技术大学;2011年
4 李仁见;堆操作程序分析验证技术研究[D];国防科学技术大学;2011年
5 刘志锋;模型检测中关键技术的研究及其应用[D];南京大学;2011年
6 陈晓江;分布式系统软件体系结构建模与开发方法研究[D];西北大学;2010年
7 沈胜宇;模型检验的反例解释[D];国防科学技术大学;2005年
8 夏一民;缓冲区溢出漏洞的静态检测方法研究[D];国防科学技术大学;2007年
9 金仙力;实时服务构件的语义特征和行为组装形式化技术研究[D];北京邮电大学;2008年
10 陈圣波;Web应用建模和验证方法研究[D];上海大学;2008年
中国硕士学位论文全文数据库 前10条
1 韩月;魔力平台中调试系统的研究与实现[D];哈尔滨工程大学;2010年
2 陶荣;依赖分析在程序验证和遗留系统改造中的应用[D];长沙理工大学;2010年
3 王志兵;软件行为运行时验证研究[D];湖南工业大学;2010年
4 张军宝;基于域描述语言的Java规则引擎实现方法[D];华东理工大学;2011年
5 郑姜;基于WS-CDL的贸易协同流程建模工具的研究与实现[D];华东理工大学;2011年
6 聂世超;PHP程序静态分析系统的设计与实现[D];吉林大学;2011年
7 原义盈;嵌入式软件堆栈溢出的静态测试方法研究[D];北京交通大学;2011年
8 赵国善;GMDSS模拟器中设备实操评估系统的研究[D];大连海事大学;2011年
9 叶可可;BPEL缺陷测试系统的设计和实现[D];北京邮电大学;2011年
10 姚欣洪;基于线程摘要的C/C++数据竞争检测研究[D];北京邮电大学;2011年
【同被引文献】
中国期刊全文数据库 前10条
1 王祥根;司端锋;冯登国;苏璞睿;;基于代码覆盖的恶意代码多路径分析方法[J];电子学报;2009年04期
2 陈世哲;刘国栋;浦欣;浦昭邦;胡涛;刘宛予;;基于优势遗传的自适应遗传算法[J];哈尔滨工业大学学报;2007年07期
3 李朝君;蒋凡;;符号执行中高语句覆盖率的路径调度[J];计算机工程与应用;2010年14期
4 陈建敏;舒辉;熊小兵;;基于符号化执行的Fuzzing测试方法[J];计算机工程;2009年21期
5 苏璞睿;杨轶;;基于可执行文件静态分析的入侵检测模型[J];计算机学报;2006年09期
6 张健;;精确的程序静态分析[J];计算机学报;2008年09期
7 梅宏;王千祥;张路;王戟;;软件分析技术进展[J];计算机学报;2009年09期
8 陈亮;郑宁;郭艳华;徐明;胡永涛;;基于Win32 API的未知病毒检测[J];计算机应用;2008年11期
9 陈平;王成耀;;基于AST的程序静态分析工具的研究与实现[J];微计算机信息;2007年24期
10 李雨军;李淼;;软件测试技术探讨[J];现代经济信息;2010年07期
中国博士学位论文全文数据库 前3条
1 文伟平;恶意代码机理与防范技术研究[D];中国科学院研究生院(软件研究所);2005年
2 王祥根;自修改代码逆向分析方法研究[D];中国科学技术大学;2009年
3 刘西洋;演化测试中面向分支到达的适应度函数设计研究[D];西安电子科技大学;2007年
中国硕士学位论文全文数据库 前4条
1 徐辰;基于符号执行和约束求解的程序验证与测试工具[D];中国科学院研究生院(软件研究所);2002年
2 乐鑫喜;基于退火遗传算法的测试用例自动生成[D];武汉理工大学;2005年
3 翁子盛;基于符号执行的C程序单元测试研究与实现[D];国防科学技术大学;2010年
4 黄全伟;基于N-Gram系统调用序列的恶意代码静态检测[D];哈尔滨工业大学;2009年
【二级引证文献】
中国硕士学位论文全文数据库 前1条
1 周晓波;构件回归测试方法研究与实现[D];昆明理工大学;2012年
【二级参考文献】
中国期刊全文数据库 前3条
1 杨芙清;吕建;梅宏;;网构软件技术体系:一种以体系结构为中心的途径[J];中国科学(E辑:信息科学);2008年06期
2 李必信,郑国梁,王云峰,李宣东;一种分析和理解程序的方法──程序切片[J];计算机研究与发展;2000年03期
3 张健;;精确的程序静态分析[J];计算机学报;2008年09期
【相似文献】
中国期刊全文数据库 前10条
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期
中国重要会议论文全文数据库 前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年
中国重要报纸全文数据库 前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年
中国博士学位论文全文数据库 前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年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62791813
  • 010-62985026