结合可满足性模理论与抽象解释的程序分析技术研究

来源 :国防科技大学 | 被引量 : 0次 | 上传用户:yuanmm123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件需求的不断增加,软件系统日趋复杂与庞大,软件的可信性要求越来越高,尤其是在航空、航天、医疗、金融等安全攸关领域。许多安全攸关软件特别是嵌入式软件的设计与运行,与硬件系统及其所处环境的数学模型和物理模型密不可分,不可避免地会涉及大量数值运算。许多可信性质或缺陷均与程序的数值性质密切相关,比如除零错、算术溢出、数组越界等常见的运行时错误。因此,对程序中数值相关性质进行分析,自动获取程序中变量之间的数值约束关系,对于整个安全攸关软件系统的可信性保证至关重要。抽象解释作为一种在程序分析和验证领域广泛使用的有效的静态分析方法,为程序数值性质的自动分析提供了一个通用框架。基于抽象解释的程序分析通过轻量级的抽象域表示和抽象域操作来刻画程序的状态和行为,具有较小的分析代价和较好的可扩展性。但基于抽象解释的轻量级分析常常会造成精度损失,甚至导致误报。另一方面,可满足性模理论(Satisfiability Modulo Theories,SMT)基于析取、量词等连接子和丰富的理论域可描述较强的约束表示,并可对基本程序块的迁移语义进行精确刻画。但基于SMT的方法计算复杂度较高,且难以有效处理循环。因此,本文将两者进行优势互补,研究结合SMT与抽象解释的程序分析技术,在分析精度和效率之间进行有效权衡。本文的主要贡献包括:1)提出了结合SMT的块级抽象解释框架。该框架针对语句级抽象解释存在的精度受限问题,将SMT与抽象域在框架内进行有效结合。块级抽象解释框架首先将程序划分成块,在程序块内使用表达能力更强的SMT刻画程序语义,在程序块间使用计算效率更高的抽象域传递程序语义,并在程序块的入口和出口处进行相互转换。该框架在整体上仍基于“迭代+加宽”的框架求解程序的不动点,即在加宽点处使用抽象域的加宽操作加速迭代收敛。此外,本文从精度和效率两个方面对块级抽象解释框架进行提升:在精度提升方面,设计了基于谓词划分的抽象域提升算子,向后续分析传递必要且更丰富的信息;在效率改进方面,提出了基于块级稀疏性的大块切割方法,有效地缓解复杂SMT公式的求解开销。对SV-COMP中程序进行分析的实验结果表明,基于结合SMT的块级抽象解释方法能够验证的性质大约是基于经典语句级抽象解释方法的两倍。2)提出了基于后向策略迭代的不动点求解算法。该算法针对策略迭代过程效率较低的问题,在“猜测+验证”的框架下对循环不动点进行求解。后向策略迭代算法首先基于SMT规划快速求得模版下的一个最小不动点候选;再基于SMT和线性规划技术验证其可行性;若该候选可行,则算法求得模版下的最小不动点;若该候选不可行,则算法重新求解一个新的最小不动点候选。然后本文对算法的正确性进行证明并对算法的复杂度进行分析。本文将此算法应用于面向性质验证的程序分析中,并提出了性质制导的后向策略迭代算法。性质制导的后向策略迭代算法在分析过程中优先选取与性质相关的模版和策略,在求解不动点的过程中可尽早发现性质是否为可验证的,并提前终止迭代过程,因而具有更好的分析效率。在验证SV-COMP的程序性质的实验中,性质制导的后向策略迭代算法可以更快地完成分析过程。3)设计和实现了区间线性模版约束抽象域。该抽象域针对凸抽象域表达能力不足的问题,对经典的模版抽象域进行了区间拓展,可推导变量间的区间线性关系。区间线性模版约束抽象域基于区间线性约束的“弱解”解语义刻画抽象域域元素,并基于区间线性规划技术设计其域操作。几何上域元素与每个象限的交均是一个凸的模版多面体(可以为空),因此域元素可以看作是一系列模版多面体的析取,从而可以表达非凸(甚至非联通)性质。此外,本文还研究了区间线性模版抽象域中区间模版的生成策略。实验结果表明,区间线性模版约束抽象域可以较好地刻画程序的非凸性质。
其他文献
多智能体编队控制是指多个智能体在向目标机动的过程中,形成并保持某种特定构型,同时能够躲避障碍以适应环境约束的控制技术,在工业、军事、航天等众多领域有着重要的应用价值。本文以此为研究背景,开展了相对位置约束型编队机动控制方法设计、相对方位约束型编队机动控制方法设计、智能体之间的碰撞规避以及编队控制建模与仿真分析等问题的研究,取得的主要成果如下:相对位置约束型编队机动控制方法设计。假设各跟随智能体能够
漏洞是危害计算机系统安全的主要因素之一,程序漏洞的自动检测具有非常重要的研究意义,也是一个非常具有挑战的研究问题。通常,漏洞检测需要分析不完整的程序(Partial Program),而传统基于规则的静态漏洞检测方法和工具在分析不完整程序上具有较高的漏报率和误报率。机器学习(特别是深度学习)为不完整程序漏洞检测提供了新的思路,但已有方法在真实程序上的效果仍然有待验证。我们提出了基于图神经网络的不完
近年来,伴随着大数据的兴起,大规模正则化经验风险极小化问题出现在各个领域中。作为一种求解此类大规模问题的途径,临近增量累积梯度方法(PIAG)得到了研究者的广泛关注。临近增量累积梯度方法可对应多种具体的算法实现,包括循环指标、随机指标、中心分布式等,因而有着广泛的应用前景。本文对PIAG将会涉及的研究工作进行了系统的设想和构建,从非精确算法、Bregman距离、加速格式、非凸分析、对偶算法、原对偶
惯性导航是一种自主导航方式,可以不依赖于任何外部信息支持而独立的完成导航任务,在军用与民用领域都有着广泛应用。加速度计与陀螺仪是惯性导航的核心器件。本文在对比分析了传统加速度计的优缺点基础上,针对基于双光纤光阱的光力加速度传感系统展开了初步的理论与实验研究。简单回顾了惯性导航技术的发展历程,比较了不同种类加速度计的原理和优缺点,重点分析了光力加速度传感技术的原理优势与前沿进展,指出了其高精度、小型
近年来,随着新媒体信息技术的飞速进步和传播手段的多样发展,各国国防部网站不断发展完善,网站面貌更迭焕新,但官方网站的权威属性和价值传播的实战效能始终位于核心增长点。作为最早建立的国防部门户网站,美国国防部网站几经改版,成为当今国际社会最具代表性的国防部网站之一,其重要功能之一是发布兼备机构话语、新闻话语、国防话语、军事话语的语类特征的军事新闻报道。这些报道表现出以网页为载体的多模态文本的形式特征,
随着人工智能技术的快速发展以及智能汽车应用需求的日益增长,车辆智能驾驶技术已成为当前的研究热点。智能驾驶关键技术包括环境感知、行为决策、路径规划、运动控制等,其中行为决策与运动控制技术是衡量智能驾驶车辆自主能力的关键指标,也是智能驾驶研究的重点和难点。目前,智能车辆环境感知技术已经取得了大量的研究成果,但车辆行为决策与运动控制方法仍较依赖人工先验知识来设计专家规则或模型,对复杂环境适应性不强。在动
视频是人类获取信息的重要来源。在当前信息时代,数据爆炸式的增长,随着各种视频拍摄设备的普及,人们日常拍摄并上传视频,互联网和社交媒体上已经积累了大量视频。据有关统计,每分钟上传到某知名视频网站上的视频就有300小时。如此大量的视频内容和播放量给我们带来了巨大的机遇的同时,也带了非常大的挑战。如此大量的视频,使用人力来逐个进行分析以及过滤几乎是不可能的,因此,我们迫切地需要开发能够自动理解分析视频内
干涉型光纤传感系统在水声探测、石油勘探、地震波监测等领域获得了广泛应用。随着干涉型光纤传感系统向远程化、大规模化方向发展,系统中各种非线性效应的影响日益凸显。目前,远程干涉型光纤传感系统中受激布里渊散射(SBS)已经得到了有效抑制,调制不稳定性(MI)在系统中的影响逐渐凸显。当MI发生时,系统相位噪声急剧增加,系统探测性能严重下降,故远程干涉型光纤传感系统最大输入功率必须限制在MI阈值以下,MI成
智能设备的大量普及和计算机计算能力的长足进步,为智慧城市的发展提供了强有力的基础。通过对无处不在的智能设备产生的城市大数据进行分析利用,智慧城市可以在城市规划、交通优化、环境改善、应急响应等方面提高资源利用效率,解决城市痛点问题。在多种智慧城市解决方案中,空间众包技术是一种应用非常广泛的基础性问题解决方案。其利用群体智慧和人所携带的智能设备,可以高效完成具有空间要求的任务,例如城市噪音地图的构建、
随着软件规模和复杂度的不断提高,软件缺陷问题不断出现。如何提高软件的可靠性已经成为软件工程领域的一个重要研究问题。程序验证技术被广泛应用于提高软件可靠性。当前的程序验证技术主要分为静态验证和动态验证两类。静态验证对程序进行抽象建模,然后验证模型是否满足给定性质,能够确保程序的覆盖率,但是受限于分析误报、自动化程度低或可扩展性差等问题。动态验证实际执行程序,基于程序的运行时信息来检查程序的正确性,能