基于值依赖分析的C程序缺陷静态分析方法研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:koel
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在程序静态分析中,为达到精度与效率的有效平衡,基于缺陷模式的分析方法在大规模程序开发、维护中得到了广泛的应用。目前研究机构和业界普遍采用的缺陷分析方法主要包括;以控制流模型为基础的流敏感缺陷分析方法以及以值流模型为基础的流不敏感缺陷分析方法。后者虽不能直接给出全部程序语句的控制流顺序,但分析效率更高,误报漏报率与前者相似并且具有较大的提升潜力。  本文从应用需求出发,主要针对值流模型为基础的流不敏感缺陷分析方法进行深入的研究,以达到可用的精度与效率的平衡。为此,在程序建模阶段,完善值流模型,以便完全准确地描述程序,支持有关缺陷的正确检测;在缺陷模式的描述阶段,关注缺陷模式的表达,以提高可检测的缺陷范围;在缺陷检测阶段,基于守卫分析概念,以提高缺陷检测精度。  针对上述解决问题的基本途径,本文研究并提出了相应技术手段/方法,并进行了验证。本文的主要研究工作与创新点包括;  1、基于值依赖分析的程序建模技术  在值依赖模型中,增加了更多的程序元素类型,以增强模型的表达能力;并且完善了传统值流模型中守卫条件的生成及表达方法,以便精确表达模型节点之间的到达条件;通过融入内存指向关系计算结果,在值依赖模型中引入了别名指针与变量值的影响关系;此外,设计一种新的基于值依赖分析的区间分析算法,给出了模型与实际程序逻辑的映射关系。  实验结果表明通过使用值依赖模型,降低了约50%的误报率。  2、基于依赖约束的缺陷模式描述语言  为了增强缺陷检测的范围,发现更多的缺陷,本文提出了一种基于依赖约束的缺陷模式描述语言VDPL,该语言基于本文提出的值依赖程序模型,以变量值的依赖关系为基础,采用谓词逻辑的表达方式,描述了缺陷语法及语义特征。并对CWE(Common Weakness Enumeration)中严重程度为1-2级的全部缺陷进行了描述,证明了该语言的描述能力。  3、基于守卫关系分析的缺陷检测技术  为提高缺陷检测的精度,本文提出了一种守卫分析方法,包括;跨函数定值使用分析算法以及基于值依赖分析必然别名分析算法。其中,基于本文提出的值依赖模型中生成的守卫,以及本文提出的缺陷模式描述,发现别名和变量值之间逻辑问题,并进行相应的物理变量替换,以此确定程序所存在的缺陷。  实验证明,误报率降低了40%左右。  4、静态分析工具COBOT的开发  基于上述研究成果,设计并实现了一款静态分析工具COBOT,并针对三种类型的项目即中等规模开源项目、大规模开源项目和实际项目,开展了COBOT的应用实践。实践结果表明,COBOT的漏报率约10%-15%,低于国际同类工具,但误报率稍高。  该项目的研究成果已在航天某部门得到应用,应用效果良好。
其他文献
随着能源日益紧缺,节能已成为国家和企业的迫切要求。建筑能耗作为“三大能耗”之一,即是能耗的重要部分,也是污染的主要来源。建筑能源管控系统对整个建筑的所有公用机电设备,包
数字信息资源的加工和整理是数字图书馆建设的一个重要方面,为了使大量的文本型文献以一个更加有效的方式组织和利用,自动标引的概念被提出.自动标引技术可以自动提取表示文
随着智能卡应用的不断推广,不同行业、不同领域对智能卡的需求都日益增加,仅仅适用于某一种应用的单应用卡已不再能够满足实际应用的需求.这是因为,为了实现多种应用用户不得
论文主要对协作型防火墙的包过滤和通信安全进行设计与实现.包过滤是防火墙的基本功能,通信安全是防火墙进行网络安全保护的前提条件.论文通过下面的方法,设计与实现协作型防
随着中国加入WTO和2008年奥运会的临近,我国政府的职能需要由管理型向服务型过渡,电子政务成为中国政务改革最核心的内容之一。综合资源信息服务平台作为政府部门面向公众提供
利用离线大数据统计分析的方法进行自然语言处理任务的研究是目前非常有潜力的一种研究范式,尤其是Google,Twitter等大公司在这类应用上的成功经验,引领了目前大数据研究的浪潮
该文主要进行了一幅未知文件格式的军用数字地图的逆向工程分析,并在此基础上开发出了基于MFC的ActiveX地图控件.该文针对所要分析的地图的特殊性,利用国内数字地图通用和专
随着社交网络分析、生物信息网络分析、交通导航等新兴应用的快速增长,不同领域出现了规模庞大、内部结构复杂、查询需求多样的大图数据。传统的单机计算模式难以满足大图数据
本文针对钢铁公司带钢生产线对于带钢表面缺陷实时检测的需求,在各种图像处理算法的支持下,对传统算法进行优化,首先对所采集的带钢原始图像预处理操作,随后定位缺陷部位边缘
机器人足球比赛是近年来在国际上迅速开展起来的高技术对抗活动。作为高科技研究发展的产物,机器人足球比赛融入了机器人技术、智能控制、通信、计算机技术、传感器技术、图像