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

形状分析符号执行引擎中的状态合并

邓维  
【摘要】:C语言以其对底层机器操控的灵活性,在操作系统、嵌入式软件、底层驱动等要求高效的软件设计领域得到广泛应用。然而出于灵活性和效率的考虑,C语言赋予程序员对计算机完全掌控的能力同时,牺牲了一定的安全性:非法指针解引用、内存泄漏、缓冲区溢出等内存安全问题在C语言程序中尤其突出。提高软件的可靠性一直是软件开发过程中所追求的目标之一。程序动态测试、程序静态分析和程序验证是目前确保软件安全质量的主要方法。程序验证作为保证程序正确性的最严格的手段,通过形式化方法对程序的各种性质给出严格的数学证明,从而保证了程序的可靠性;然而程序验证目前还未实现自动化证明,需要大量的人工证明,因此未能在工业界得到广泛的应用。程序动态测试的测试结果依赖于给定的测试集,面对复杂的软件系统测试集很难做到代码的高覆盖率,而且动态测试的成本和风险较高。程序静态分析在程序运行之前对代码进行分析,可以较早并且低成本地发现代码中可能存在的缺陷。符号执行技术以其良好的精度控制和代码覆盖率,被广泛用于程序静态分析之中。对一个程序进行分析时,符号执行引擎以模拟真实的程序执行过程的方式,分析程序的数据流和控制流信息,并检查程序执行过程中可能出现的所有状态,得到程序的分析结果。高精度和高覆盖率要求对程序状态描述具体而完备,这会导致符号执行过程中常见的状态爆炸问题,使得符号执行技术的可伸缩性(Scalability)较差。笔者所在项目组基于符号执行技术实现了一个带形状分析功能的C程序分析工具,该工具同样存在路径爆炸、可伸缩性较差的问题,本文的主要工作是设计和实现状态合并功能及其优化,主要贡献有:·针对带形状分析的符号执行引擎,设计并实现了状态合并的算法,这其中主要的难点在于如何确保状态合并的引入不会造成程序分析结果精度的下降,尤其是在引入形状分析之后,在特定的状态抽象规则之上,如何判定状态是否可以合并,以及合并规则对分析精度的保证。·根据状态合并在符号执行引擎中的实际效果,考虑约束求解器的求解能力以及求解时间开销,引入了约束求解器求解代价驱动的优化,在LLVM中间代码上实现了精确的数据依赖分析,并根据求解代价的变化,驱动合并操作是否执行,以取得工具整体性能的最优。·参与ShapeChecker程序分析工具原型系统的实现,该程序分析工具能够自动发现C程序中常见的安全相关的错误,并且支持对单链表、双链表和二叉树等递归定义数据结构的分析。


知网文化
【相似文献】
中国期刊全文数据库 前20条
1 洪宇;陈光;于见平;韩柯;;处理符号执行中数组元素混淆的一种新方法[J];计算机应用;2005年S1期
2 过辰楷;姬秀娟;许静;;基于分支混淆算法的符号执行技术[J];计算机科学;2012年09期
3 刘杰;曹琰;魏强;彭建山;;符号执行中的循环依赖分析方法[J];计算机工程;2012年22期
4 黄晖;陆余良;夏阳;;基于动态符号执行的二进制程序缺陷发现系统[J];计算机应用研究;2013年09期
5 翁子盛;王宝生;林锦滨;;程序符号执行中的数组分析[J];长江大学学报(自然科学版)理工卷;2010年01期
6 贾春福;王志;刘昕;刘昕海;;路径模糊:一种有效抵抗符号执行的二进制混淆技术[J];计算机研究与发展;2011年11期
7 周孔伟,蔡经球;符号执行—介于程序验证和程序调试之间的方法[J];小型微型计算机系统;1982年04期
8 高仲仪 ,梁霞;符号执行和测试数据辅助生成的实验系统[J];北京航空学院学报;1988年04期
9 程绍银;蒋凡;林锦滨;唐艳武;;基于有限回溯符号执行的软件疑似缺陷的自动验证[J];清华大学学报(自然科学版);2009年S2期
10 梁娟娟;刘久富;朱丹丹;陈柯;;基于符号执行的软件静态测试研究[J];计算机技术与发展;2013年06期
11 钟金鑫;魏更宇;安靖;杨义先;;恶意代码的符号执行树分析方法[J];重庆大学学报;2012年02期
12 曹琰;欧阳永基;魏强;王清贤;;基于混合输入的环境交互问题研究[J];计算机应用研究;2013年11期
13 牛伟纳;丁雪峰;刘智;张小松;;基于符号执行的二进制代码漏洞发现[J];计算机科学;2013年10期
14 范彧;;基于符号执行和数据挖掘的路径可达性检测研究[J];计算机与现代化;2013年03期
15 易晓东;杨学军;;一种C程序断言的全自动静态验证方法[J];计算机科学;2006年09期
16 崔宝江;国鹏飞;王建新;;基于符号执行与实际执行的二进制代码执行路径分析[J];清华大学学报(自然科学版);2009年S2期
17 赵跃华;阚俊杰;;基于符号执行的测试数据生成方法的研究与设计[J];计算机应用与软件;2014年02期
18 代子营;毛晓光;马晓东;王瑞;;基于抽象符号表的内存模型[J];计算机工程与科学;2011年06期
19 邵巳航;苏亭;顾斌;王政;杨孟飞;;基于过程间动态符号执行的C语言测试框架[J];计算机工程与设计;2014年08期
20 陆萍萍;李慧;穆文思;韩青;;基于混合符号执行的Fuzzing测试技术[J];计算机应用研究;2014年07期
中国重要会议论文全文数据库 前3条
1 林锦滨;张晓菲;刘晖;;符号执行技术研究[A];全国计算机安全学术交流会论文集(第二十四卷)[C];2009年
2 范海虹;;俄汉姓名称呼对比[A];外语语言教学研究——黑龙江省外国语学会第十一次学术年会论文集[C];1997年
3 刘峻宇;李强;余祥;何海洋;;基于符号执行的指挥信息系统软件缺陷检测技术[A];2014第二届中国指挥控制大会论文集(上)[C];2014年
中国博士学位论文全文数据库 前6条
1 张羽丰;符号执行可扩展性及可行性关键技术研究[D];国防科学技术大学;2013年
2 范文庆;分段符号执行模型及其环境交互问题研究[D];北京邮电大学;2010年
3 安靖;动态符号执行关键技术研究[D];北京邮电大学;2014年
4 曹琰;面向软件脆弱性分析的并行符号执行技术研究[D];解放军信息工程大学;2013年
5 陈厅;动态程序分析技术在软件安全领域的研究[D];电子科技大学;2013年
6 邢学智;基于TTCN-3语言的测试理论与技术研究[D];中国科学技术大学;2010年
中国硕士学位论文全文数据库 前10条
1 李奇军;基于符号执行的代码静态检测方法研究与实现[D];电子科技大学;2015年
2 柯明敏;动态符号执行在软件漏洞自动化发掘领域的应用研究[D];电子科技大学;2015年
3 康文涛;符号执行工具KLEE约束求解优化设计与实现[D];电子科技大学;2014年
4 吴情彪;基于符号执行的软件污点分析研究[D];武汉邮电科学研究院;2016年
5 陈冰;符号执行技术研究与改进[D];南京大学;2014年
6 李景曦;基于控制流分析的模糊测试技术研究[D];北京理工大学;2016年
7 鲍铁匀;符号执行制导技术及其应用研究[D];南京大学;2016年
8 邓维;形状分析符号执行引擎中的状态合并[D];中国科学技术大学;2016年
9 蒋思远;基于动态符号执行的测试工具设计与实现[D];华东师范大学;2012年
10 闫晓伟;基于符号执行的软件脆弱性测试技术[D];电子科技大学;2012年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978