浮点数程序静态分析与缺陷检测

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:ufod1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息技术产业日益蓬勃发展,软件作为信息技术产业的核心与灵魂,已经广泛渗透到社会的各行各业。与此同时,随着软件需求的不断增加,软件系统的规模和复杂性不断提高,软件质量越发难以保证。特别是越来越多应用在航天、国防以及汽车等安全攸关领域的浮点数程序,软件中存在的缺陷可能会造成重大的损失和灾难性的事故。  符号执行作为一种静态分析技术,它能自动化地根据程序的内部结构来对程序进行快速有效的分析,在现实中分析那些具有高可靠性要求的程序非常实用。然而,尽管符号执行技术日渐成熟,基于符号执行的浮点数程序分析还较少有人研究和探索。本文主要研究的是基于符号执行的浮点数程序静态分析和缺陷检测。根据浮点数程序中的缺陷种类不同,本文的研究工作包括两方面的内容,分别是浮点数程序中一般性缺陷的检测和浮点数程序中特有缺陷的检测。  首先,在浮点数程序中一般性缺陷的检测方面,我们研究了面向缺陷检测的符号执行引擎的浮点数语义扩充。一般性缺陷指的是程序中的通用缺陷,如值未定义使用,也存在于非浮点数程序中。针对现有的符号执行引擎大多不支持浮点数语义分析的现状,我们探索了如何有效扩充通用符号执行引擎以支持浮点数语义的分析,从而提高检测浮点数程序中一般性缺陷的效率和效益。为达到分析效益和分析代价的平衡,我们为浮点数库函数构造了一个轻量级的抽象模型。此外,为了加快分析,我们为约束求解引入了后验证求解策略。  其次,在浮点数程序中特有缺陷检测方面,我们主要探索基于符号执行的浮点数异常的检测。浮点数异常作为浮点数程序中最常见的特有缺陷之一,它的特殊性给基于符号执行的静态分析带来了极大的挑战。我们经过观察发现在真实程序中浮点数异常不常出现,变量的值往往会被加以限制来避免浮点数异常的发生。因此,我们可以利用变量的值区间信息来加速异常的检测。基于区间约束传播技术,我们研究了结合符号执行和值区间分析的浮点数异常检测的方法。在符号执行过程中,我们同时分析和维护变量的值区间信息,该信息用于浮点数异常的快速检测。此外,值区间信息还能用于浮点数库函数的建模,有助于消减误报。据我们所知,我们的工作是第一个结合符号执行和值区间分析的浮点数异常检测方法。随后,结合浮点数表示的特性以及浮点数各类异常的特性,我们还探索和初步实现了增强符号执行检测浮点数异常的三值区间分析方法。该方法为每个变量维护三个子区间,在真实程序分析中,既能缓解区间爆炸问题,又能够较好地应用于浮点数异常的检测。
其他文献
随着地理信息系统以及移动通讯的发展,对人员、车辆、事件以及其他移动目标的定位需求已经提到了日程,并且具有极为广阔的市场发展前景。近年来,对手机等无线定位技术的研究,
RFID应用系统中通常会采集到大量原始的RFID数据,如果将这些大量原始的RFID数据直接提交给业务系统处理,那么业务系统就会变得异常的复杂,不具有很好的扩展性和灵活性,不能适
随着市场竞争越来越激烈,企业对信息化的支撑系统的需求越来越高,变化也越来越大。因此,如何快速、准确、方便地适应信息化系统对需求的变化研究具有极其重大的意义。工作流
自90年代以来,客户机/服务器(C/S)计算模式逐渐成为主流技术。然而研究和实践表明,两层C/S结构有很多缺陷。人们进而将终端的功能进行分解,提出三层C/S结构,客户端作为表示层
随着3G(Three Generation)时代的到来,用户对移动通信有了更高的期望,用户不仅要求有稳定的语音通信,而且还要求能够以数据和多媒体等多种方式进行通信。针对这些需求,3GPP(T
现今,随着软件规模的扩大与软件需求的频繁变动,使得软件开发变得越来越复杂,敏捷开发思想的提出,在一定程度上减轻了开发人员的负担,但当软件所依赖的数据库结构发生变更时,
在移动互联网高速发展的今天,使用手机上网已经成为人们最重要的需求之一,而针对手机各个操作系统的第三方联网软件也越来越多。在人们享受移动互联网的便捷的同时,针对移动
随着近年来无线网络的迅速发展,无线网络中存在的瓶颈问题也不断的暴露,其中最主要的瓶颈就是频谱资源利用受限,且频谱分配不均。认知无线电技术的提出,为解决无线网络中的频
语义Web是当前Web的扩展,其目标是使Web上的信息可以被机器所理解,从而高效准确地查找信息。语义Web的发展将有助于计算机之间及其与人之间的协同工作,并实现数据的自动化处
信息控制系统是实现电视跟踪仪各分系统之间及外部设备的数据交换和控制显示,在电视跟踪仪系统中占有重要的地位。原有的信息控制系统是基于DOS操作系统,其单任务机制带来很