基于定理证明的内存安全性动态检测算法的正确性研究

来源 :南京航空航天大学 | 被引量 : 0次 | 上传用户:goodyoujun
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
计算机软件系统已经在国防、金融、通信、医疗等安全关键领域中得到大规模应用。这些领域中的许多软件是采用 C 语言开发,在享受 C 语言高效的运行效率的同时,还需要承担 C语言指针操作带来的内存安全风险。为了构建高可信的软件系统。许多面向C语言的内存安全检测工具被广泛使用,这些工具使用代码插桩来实现内存安全错误的运行时检测。但是,这些内存安全检测工具及其算法都没有经过严格的正确性证明,这带来了两个问题。第一,插桩过的程序有可能会改变原有程序的行为及语义,导致改变原有程序的执行结果。第二,我们不能确保检测算法能检测出它所针对的所有内存安全性错误。因此,如何证明内存安全检测工具及其算法本身的可靠性和有效性就成为至关重要的问题。
  针对以上两个问题,本文提出了一种基于定理证明的内存安全性动态检测算法的正确性证明方法,并使用该方法完成了对C语言内存安全性动态检测工具Movec的算法的正确性证明,具体而言,本文的工作主要包括以下三个部分:
  首先,我们形式化地定义了C语言核心子集的语法和语义、Movec内存安全性检测算法的插桩语义。我们通过Coq内置的函数式编程语言实现了对C语言类型、操作语法语义的形式化表示。基于这些形式化定义,我们可以证明检测算法的两个正确性属性:行为不变性和内存安全性。
  第二,我们证明了Movec算法的行为不变性,即所有的插桩行为不会改变原有程序的行为及语义,主要是通过对 Movec 包装函数的形式化规约来推导出 C 语言原有函数的方法来证明Movec算法的行为不变性。
  第三,我们证明了Movec算法的内存安全性,即该算法能够在运行时检测出典型的时间和空间内存安全错误。首先我们定义了满足内存安全规范的良构环境,再结合Movec插桩操作的性质、相关公理来证明内存操作及操作语义保持的内存安全性。
  最后,我们使用著名的Coq交互式定理证明器实现了以上所有的形式化定义,并自动化地证明了以上两个正确性属性,验证了本文方法的有效性。
其他文献
该文深入研究了异步电动机直接转矩控制方法的基本原理,在分析交流异步电动机数学模型的基础上,详细阐述了电压空间矢量、磁链加速与磁链幅值控制、转矩直接控制等直接转矩控制的基础理论,分析了直接转矩控制系统的系统结构,指明直接转矩控制方式下电机转矩性能的特点,提出一种系统的软启动方案和电流限制措施.该文对基于高速数字信号处理器TMS320F240的直接转矩数字化控制系统的软硬件设计作了初步的探讨,详细介绍
癌症是非常严重的疾病。癌细胞的快速生长侵袭是导致癌症致死率高的主要原因,因此分析癌细胞的侵袭特性非常有实用价值,能够作为指导抗癌药物研究的工具。当前称作器官芯片的细胞体外培养技术已经取得了非常大的进步,其中体外肿瘤模型可以模拟肿瘤在复杂的人体内环境的生长状态。分析体外肿瘤模型的相关的参数可以作为判断药物作用下癌细胞状态的重要指标。随着图像处理技术的发展,基于图像的癌细胞状态分析是一种简单快速的方式
学位
随着互联网及其应用的迅猛发展,新兴应用需求层出不穷,这对网络服务能力提出了新的挑战。传统网络协议的针对性开发部署、协议之间过多的功能性冗余、协议过高的开发及部署成本等都制约着网络实现服务扩展的能力。因此,网络能否实现服务可扩展成为未来网络发展的核心,也是未来网络体系结构研究的关键问题。  目前,针对未来网络服务可扩展的相关研究基本上都侧重于解决制约传统网络实现服务扩展的某些因素,缺乏对网络服务可扩
学位
协同过滤是目前最常用的推荐技术,其能够为用户提供个性化的推荐服务,从而有效缓解信息过载问题。然而,协同过滤需要用户上传个人历史数据,存在隐私泄露风险。即使通过传统的匿名技术对用户数据进行模糊处理,攻击者仍可通过去匿名等攻击手段推断用户的隐私。差分隐私是对于隐私的严格定义,能够对用户隐私提供保证。因此,设计面向协同过滤推荐的差分隐私机制已成为当前的研究热点。  现有研究工作从隐私保护机制的部署方式角
学位
随着云计算、社交网络、数据挖掘等信息技术的大规模应用,信息泄露等安全问题日益突出。作为现有的保密通信方法的补充,混沌保密通信成为保密通信的一个新的发展方向,主要解决传统加密方法对视频、图像等实时性要求高的大数据量的数据加密效率低的问题,在兼顾成本和实时性的前提下,具有更高的安全性,并且可以融合现有的加密机制建立跨层的联合安全保障体系。分数阶时滞混沌系统具有多个正的Lyapunov指数,时滞参数引入
学位
物联网(IoT)利用传感器感知技术、特征识别技术、和云计算等技术,将控制器、执行器、传感器、等智能部件和人连接在一起,实现物物互联,是智能网络的终极形态。其中,大量设备催生了大量的数据共享与数据融合的需求,可靠的数据共享能够促进不同设备之间的相互协作,对于物联网的智能化、帮助节点克服不确定性、提高对风险的感知具有十分重要的意义。本文以车联网(IoV)与无人机(UAVs)网络为例,分别提出了基于区块
学位
近年来中国民用飞机及系统的研制进展非常迅速,随着飞机功能及系统复杂度的快速增长,与飞机系统安全性紧密相关的航电系统及软件的设计与分析方法已经成为领域中的热点问题。在ARP4754以及DO-178C等民机研制标准中所定义的系统工程/软件工程过程中非常强调在软件产品生命周期开始时构造完整、一致且组织良好的系统/软件需求,并开始引入了基于模型的系统工程(Model Based System Engine
学位
由于信息技术的进步,人们越来越频繁地在社交网络中分享各种照片。其中,以人为主体的照片占据了极大比重,特别是那些围绕人脸的照片。人脸属性识别的任务是分析人脸的生物描述,在人脸搜索等众多领域有广泛应用,因此具有重要的研究意义。随着机器学习的发展,学界涌现出许多人脸属性识别相关研究。然而,目前很多研究割裂了人脸属性之间的关系,并采用单任务学习方式。虽然一些研究开始使用多任务学习,但大部分仅针对个别属性。
从大量数据中查找用户所需信息来协助用户制定多目标决策是数据库领域中一个重要的研究方向。Top-k查询和Skyline查询被广泛用来解决此类问题,但是它们有着本质的缺陷。遗憾最小化查询也能够很好地解决此类问题,它综合了Top-k查询和Skyline查询的优点,但是现有的遗憾最小化查询算法效率不高或者缺乏理论保证。论文针对已有算法存在的缺陷,设计出具有理论保证的高效的近似算法。论文主要工作和创新点如下
无人机应用越来越广泛,各种无人机服务于军事民事领域。有研究发现高度组织的蜂群可以完成远远大于单体所能完成的复杂任务。蜂群是今后无人机发展的必然趋势。考虑电力驱动无人机蜂群,蜂群是否稳定运行受限于成员无人机的可用状态。无人机不可用的原因一般是能量缺乏。本文考虑在蜂群执行任务期间,为其补充电力来维护稳定。基于这个问题,做了如下研究:(1)提出使用射频对蜂群无线充电。射频充电设备为低电量无人机充电以增加
学位