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

基于符号分析的静态缺陷检测技术研究

赵云山  
【摘要】:近年来,随着软件规模的扩大、复杂度的提升、应用领域的拓展,软件的可信性问题已成为用户、从业人员和研究人员共同关注的焦点。目前业界公认的一个观点是,如何在软件开发的早期尽可能地发现并排除软件缺陷以节省成本,是构建可信软件的重要途径。由于静态分析技术可以基于程序片段进行分析,无需执行程序,且可以针对小概率缺陷实施有效测试,因此成为构建可信软件的有效手段。静态分析的结果不可能做到既是可靠的(sound)又是完备的(complete),导致其分析结果不精确从而出现误报(false positive)或漏报(false negative)。误报率与漏报率是评价静态分析技术的主要指标,而如何提高静态分析的精度以降低缺陷检测中的误报率和漏报率已成为影响静态分析技术实用性的关键,也是国内外该领域的研究热点。 本文的研究工作受国家高技术研究发展计划“863”基金项目“软件的安全性缺陷模型及基于安全性缺陷模型的测试技术(2009AA012404)”、“勾化软件协同生产和运行演化集成平台及服务环境(2012AA010101)”及国家自然科学基金项目“航天嵌入式软件缺陷检测方法研究、系统研发及应用(91018002)”的支持,以提升静态缺陷检测工具的精度及效率为主要目标,主要做了以下四个方面的工作: 1、引入符号化三值逻辑以提高数据流分析的精度 基于抽象解释的数据流分析技术,通过各种数值抽象域表示变量的取值信息,通过抽象域上的计算来反映变量间的运算关系。区间抽象域是最简单、最直观的变量取值表示形式,具有较高的运算效率,因此己在静态分析及程序验证工具中广泛应用。然而,区间抽象域是典型的非关系型抽象域,只能表示变量的离散取值信息而无法表示变量间的关联关系,与其他关系型抽象域相比,其表示能力相对较弱,因此基于区间抽象域的静态分析技术其分析精度有限。 符号分析技术很好地克服了在静态分析时不能确定程序中变量取值的问题,且可以表示变量间的线性关联关系,从而弥补了基于区间抽象域的数据流分析技术的先天不足,一定程序上提高了分析精度。但对于程序中普遍存在的变量间的逻辑关联关系,经典的符号分析技术却无法表示,仍旧会产生精度损失;并且,符号分析技术主要处理对象为程序中数值类型的变量,对C语言中指针类型的变量及内存操作支持较少。 本文提出一种基于符号化三值逻辑模型(Symbolic Three-Valued Logic, STVL)的数据流分析万法,对经典的的符号分析技木进行扩展,从而可以统一描述变量间的线性及逻辑关系,提高数据流分析的精度;同时,STVL模型可以优化指针模型,对指针运算、内存建模提供支持,增强了缺陷检测系统对指针及内存相关缺陷的检测能力。 2、基于符号化函数摘要模型的上下文敏感的函数间分析技术 精确的程序分析技术都应包含两种基本的分析方式:分析单个函数语法语义行为的函数内分析(Intra-procedure Analysis),及分析函数调用等函数间交互行为的函数间分析(Inter-procedure Analysis)。经典的函数间分析方法包括内联展开(procedure inlining)、记录函数调用串(call string)及计算函数摘要(procedure summary)等方法。由于函数内联及调用串技术均属于穷尽计算方法(exhausitive computing),需要对函数进行重复展开或重复分析,因此复杂度相对较高。 本文提出一种基于符号化函数摘要模型(Symbolic Procedure Summary Model, SPSM)的上下文敏感的函数间分析技术:(1)在函数内分析过程中,生成统一的符号化函数摘要模型实例,包括后置摘要、函数特征摘要及前置约束摘要;(2)在函数调用点处,根据上下文的数据流值与SPSM中摘要条件的对比,获取对应的符号化函数摘要,并将调用点处的实际数据流值替换摘要信息中的符号值,即进行符号化函数摘要实例化,从而实现了上下文敏感分析;(3)对于存在多级函数调用的情况,通过自定义的摘要传递函数(summary transfer function)进行自下而上的摘要传递,精确地模拟了多级函数调用的实际运行时信息,从而可以检测由于函数调用引起的潜在缺陷。 3、基于缺陷模式的程序切片方法以提高路径敏感缺陷检测方法的效率及精度 路径敏感分析方法考虑不同数据流分支间的组合关系,可以记录控制流上的不同路径信息,从而有效减少静态分析时的误报。精确的路径敏感分析方法会记录程序中的所有路径信息,虽然该方式精度较高,但这种全路径分析方法由于存在路径爆炸的危险,会严重影响分析效率。因此,实用的路径敏感分析方法往往采用一些折衷策略,例如在控制流汇合处进行数据流合并,或者通过分析路径的可达性避免不可达路径上的数据流传递等。 本文将程序切片技术应用于缺陷检测,提出一种基于缺陷模式的程序切片方法,该方法基于缺陷特征和路径条件建立切片准则,根据控制流节点上的数据流信息与切片准则的包含关系进行程序切片,得到的切片程序在缺陷检测时不仅切片掉了缺陷无关节点,从而减少了数据流迭代时的计算量,而且与源程序完全等价从而保证了静态分析的保守性。为了进一步减少误报,提出一种基于切片程序的缺陷状态合并策略,根据控制流分支节点的路径条件,对缺陷状态添加状态属性,从而有选择地对控制流汇合节点进行状态合并,以提高检测精度。 4、前向数据流分析与逆向约束搜索相结合的误报消除技术研究 前文所述的数据流分析方法、函数间分析方法及路径敏感分析技术,均属于前向数据流分析范畴。在综合采用了各种提高数据流分析精度的技术后,静态缺陷检测仍然会存在一定数量的误报,因此对静态缺陷检测的初始结果进行进一步的求精,即进行误报消除,便成为提高缺陷检测精度的有效手段。 在对比分析了各种误报消除技术的基础上,本文提出了一种前向数据流分析结合逆向约束搜索技术的缺陷检测方法:前向数据流分析的保守数据流解可以用于缺陷状态迭代,并得到初始的缺陷检测结果;根据缺陷发生处的数据流特征,逆向搜索可能导致缺陷发生的约束条件,该约束条件可以作为通用约束求解器的输入判断缺陷的可满足性,从而对初始的缺陷检测结果进行精化。同时,在数据流分析过程中结合符号分析技术,不仅提高了数据流分析的精度,且便于约束表示及转化,提高了约束搜索的效率


知网文化
【相似文献】
中国期刊全文数据库 前20条
1 肇劲松;;面向软件缺陷检测的静态分析技术[J];黑龙江科技信息;2009年02期
2 田硕;梁洪亮;;二进制程序安全缺陷静态分析方法的研究综述[J];计算机科学;2009年07期
3 杨朝红;刘海燕;肖庆;;基于扩展状态机的资源泄漏检测方法[J];装甲兵工程学院学报;2009年01期
4 周琼;安琦;方志宏;夏勇;;板坯边角裂纹的小波检测方法[J];华东理工大学学报(自然科学版);2008年04期
5 陈方林;刘彦;;基于支持向量机的X射线焊缝缺陷检测[J];机械工程与自动化;2010年02期
6 陈成;;基于新型电场传感器的绝缘子缺陷检测技术研究[J];数字技术与应用;2011年01期
7 王丽凤;李璟;洪治;;连续太赫兹波成像系统检测酚醛泡沫材料中的缺陷[J];光学仪器;2010年01期
8 何永珍;王斌;;基于机器视觉的液晶基板表面缺陷检测系统[J];现代计算机(专业版);2011年11期
9 李晓冬,康戈文;基于数字滤波器的镀锌板缺陷分割[J];电子科技大学学报;2005年03期
10 张强;应用安全的研究现状与发展趋势[J];信息技术;2005年06期
11 高;多传感器信号检测方法与系统[J];红外;2005年11期
12 舒坚;胡茂林;;基于Markov随机场模型的纹理图像的缺陷检测[J];计算机技术与发展;2006年05期
13 王昌达;鞠时光;;隐通道的仿真分析[J];系统仿真学报;2006年06期
14 温兆麟;陈新;郑德涛;;用快速归一化互相关进行缺陷检测[J];广州航海高等专科学校学报;2006年02期
15 屈晔;张昊;;bugscam自动化静态漏洞检测的分析[J];信息安全与通信保密;2007年03期
16 孙茜;宫云战;杨朝红;;基于静态检测的程序安全漏洞测试[J];北京化工大学学报(自然科学版);2007年S1期
17 覃颖;王岩;;自动化测试工具PanoramaVB的研究[J];软件导刊;2007年13期
18 刘毅;郑学仁;王亚南;梁志明;;MATLAB在TFT-LCD屏显示MURA缺陷检测的应用[J];液晶与显示;2007年06期
19 李吉;王雷;;C程序缓冲区溢出漏洞精确检测方法[J];北京航空航天大学学报;2008年03期
20 郑晓曦;严俊龙;;数学形态学在磁瓦表面缺陷检测中的运用[J];计算机工程与应用;2008年16期
中国重要会议论文全文数据库 前10条
1 王雅文;宫云战;肖庆;杨朝红;;区间运算在软件缺陷检测中的应用[A];第五届中国测试学术会议论文集[C];2008年
2 戴晓玮;张尧;向志海;;敲击扫描式桥梁缺陷检测车的数值模拟[A];北京力学会第15届学术年会论文摘要集[C];2009年
3 王晓光;;投资方案静态分析方法的改进[A];管理科学与系统科学进展——全国青年管理科学与系统科学论文集(第4卷)[C];1997年
4 杨德美;杨学志;;基于独立分量分析高阶统计量的纺织品缺陷检测[A];全国第21届计算机技术与应用学术会议(CACIS·2010)暨全国第2届安全关键技术与应用学术会议论文集[C];2010年
5 李兵;邓善熙;李焕然;;计算机图像处理技术应用于晶振元件缺陷检测[A];首届信息获取与处理学术会议论文集[C];2003年
6 邓昌宁;朱劲秋;王开波;;桥梁结构缺陷检测及功能评定的研究[A];中国公路学会2003年学术年会论文集[C];2003年
7 林锦滨;张晓菲;刘晖;;符号执行技术研究[A];全国计算机安全学术交流会论文集(第二十四卷)[C];2009年
8 张威;薛廷梅;卢庆龄;;软件内存泄漏缺陷分析与测试方法研究[A];第十届全国容错计算学术会议论文集[C];2003年
9 刘松林;陈杰;郝向阳;西勤;;玻壳缺陷检测与几何量测视觉系统的设计与实现[A];2009年全国测绘仪器综合学术年会论文集[C];2009年
10 刘今越;李铁军;郭丽华;;基于机器视觉的SMT钢网质量检测技术研究[A];2009中国仪器仪表与测控技术大会论文集[C];2009年
中国博士学位论文全文数据库 前10条
1 赵云山;基于符号分析的静态缺陷检测技术研究[D];北京邮电大学;2012年
2 肖庆;提高静态缺陷检测精度的关键技术研究[D];北京邮电大学;2012年
3 周文;IC互连中的缺陷检测方法及缺陷对电路可靠性的影响[D];西安电子科技大学;2010年
4 陆向宁;基于主动红外热成像的倒装焊缺陷检测方法研究[D];华中科技大学;2012年
5 崔扬;图像检测技术在皮革缺陷检测中的应用研究[D];浙江大学;2004年
6 苏彩红;墙地砖质量自动检测技术的研究[D];华南理工大学;2004年
7 李仁见;堆操作程序分析验证技术研究[D];国防科学技术大学;2011年
8 艾矫燕;基于计算机视觉的墙地砖颜色分类和缺陷检测研究[D];华南理工大学;2003年
9 程伟;基于机器视觉的旋切单板检测系统研究[D];南京林业大学;2007年
10 王祥根;自修改代码逆向分析方法研究[D];中国科学技术大学;2009年
中国硕士学位论文全文数据库 前10条
1 谢永华;基于分形理论木材表面缺陷识别的研究[D];东北林业大学;2006年
2 周捷;用于金属表面缺陷检测的激光声表面波的研究[D];南京理工大学;2008年
3 韩皖贞;计算机视觉玻壳缺陷检测方法的研究[D];天津科技大学;2002年
4 王涛;基于ICT仿真技术的涡轮叶片数字样品缺陷检测研究[D];西北工业大学;2003年
5 滕飞;基于时间反转法的兰姆波在铝合金板材缺陷检测中的应用[D];哈尔滨理工大学;2009年
6 尹力;木材表面缺陷模式特征提取的图像处理方法研究[D];东北林业大学;2002年
7 宋志东;超声导波技术在管道缺陷检测中的研究[D];天津大学;2006年
8 史维芳;考虑非线性的雷达天馈系统稳定平台的有限元分析[D];合肥工业大学;2005年
9 林文树;应力波与超声波在木材内部缺陷检测中的对比研究[D];东北林业大学;2005年
10 曲昌荣;汽车车架的轻量化设计[D];西华大学;2006年
中国重要报纸全文数据库 前10条
1 河北省石安高速公路管理处 高靖;企业偿债能力分析中存在的问题及对策[N];河北经济日报;2008年
2 宋昆;用机器视觉控制烟草质量[N];计算机世界;2007年
3 通讯员 李克彬 庆华 王彪;市地税部门纳税评估获双赢[N];咸宁日报;2006年
4 孙兆光;管道公司站场管网检测技术达到国内领先水平[N];石油管道报;2008年
5 孙兆光;中国石油站场管网检测技术国内领先[N];中国石油报;2008年
6 孙兆光;做管道发展的驱动器[N];中国石油报;2008年
7 夏 清;科技创新、智能化 许建筑业一个未来[N];中华建筑报;2006年
8 博乐市建明建筑安装工程有限责任公司 谭光俊;投标报价的分析方法[N];博尔塔拉报;2007年
9 樵世稳;山阳开展工业“质量效益年”活动[N];商洛日报;2008年
10 国泰君安 李质仙;纺织服装谨慎看待利好带来的影响[N];上海证券报;2008年
中国知网广告投放
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978