编译过程安全性基础研究

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:login_action
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序安全性已成为现代软件开发中必须重视的关键问题。在软件开发流程中,从设计到编码到编译为最终的可执行代码,任何一个阶段的安全隐患都可能导致最终软件的安全性问题。因此,对软件开发流程的各个阶段进行安全性测试是保证软件质量的一个必要部分。在软件开发过程中,编译器负责从软件源代码到目标代码的变换这一重要阶段,因此编译过程的正确性和安全性对软件的安全性有着非常大的影响。目前,针对软硬件系统的形式化验证技术发展迅速,相关工具的工具也逐步成熟,这些进步使得对编译器这类复杂的软件进行验证成为可能。由于编译验证在安全软件开发中的重要意义,它已经成为当前研究的一个热点。本论文以编译过程验证为主要研究方向,针对编译验证的核心问题,对编译器安全性的验证方法进行了探索研究,其中包括对程序属性的描述与分析方法的研究,以及对基本的编译验证方案的探索。文中提出了一种基于程序分析的编译验证框架,该框架基于对编译过程中个阶段的编译中间表示形式的分析验证编译过程是否保证了特定的安全特性。文中研究了对源语言程序和中间代码的安全属性分析方法,提出了一种新颖的算法,并将利用其对重要的软件安全属性进行分析。另外,文中还提出了一种新颖有效的二进制代码的分析方案,将对高级语言程序的属性检查方法扩展到了可执行程序的领域,因此使得能够采用统一的分析方法完成程序在编译各个阶段的各种形式的安全属性验证,从而为本文提出的编译验证框架提供了有效的安全属性分析手段。本文主要研究内容包括:(1)在深入分析编译验证的根本问题和研究方法的基础上,提出了一种基于程序分析的编译验证框架。在该验证框架中,编译验证与分析作为一个独立的大模块集成到一个已有编译器实现中,通过对编译各个阶段中的程序形式的安全属性检查,验证编译器实现的正确性与安全性。(2)针对基于程序分析的编译验证框架的基本需求,在深入分析程序基本属性的形式化描述方法的基础上,研究了内存安全属性与信息流安全属性这两种重要的安全属性的描述方法,提出了基于类型精化方法的内存安全性的统一表示方法。类型精化是基于对已有类型进行扩展的一种方法,这种方法对于描述程序的安全属性有着重要的意义。另外,还将类型扩展技术应用在信息流安全属性描述方面,并以SSA中间语言作为载体进行了信息流安全属性描述的一个实例研究。(3)在分析了编译器的典型实现技术的基础上,提出了对编译几个主要阶段的正确性验证方法。在分析了parse(从具体语法到抽象语法的语法解析技术)与unparse(从抽象语法到具体语法,将抽象语法树线性化)之间的关系,提出基于parse-unparse的编译前端验证方案。基于对代码实现算法的分析与研究,提出了基于对树重写条件检查的正确性验证方案,对树模式匹配的条件进行检验,从而验证代码生成算法的正确性。基于对编译优化算法实现的深入分析,提出了一种能够有效地表示程序中的数据流属性以及控制流属性的扩展属性文法,并基于此提出了基于属性文法计算程序属性并生成程序的抽象模型,进而利用模型检测工具检验编译优化正确性的验证方案。(4)在深入研究了程序分析方法之后,提出了基于类型分析与模型检测方法相结合的混合式分析方法TCMC(Type Checking and Model Checking),并将其应用于程序的内存安全属性以及信息流安全性分析。其中特别针对内存泄漏的静态分析方法,说明了TCMC算法的应用,及其相对于类型分析方法的优势。(5)在深入分析底层代码的验证问题及其研究方法的基础上,提出了一种新的目标机器代码分析方法。该方法基于反编译技术恢复程序中的控制流,并基于恢复的控制流图对程序进行数据流分析和类型分析,也可以将控制流图转换到SSA形式,进而利用TCMC算法进行程序安全属性的分析。综上,本论文做出的主要贡献如下:(1)提出一个基于程序分析的编译验证框架。该框架建立在一个具有良好模块化结构的编译器实现之上,各个主要验证模块作为对编译器的扩展很方便地集成到编译器的编译过程中。该框架利用SSA形式作为统一的编译中间表示形式,便于程序属性分析,也便于向框架中添加自定义的分析模块。(2)提出基于类型精化的内存安全性统一表示,同时提出了在SSA中间表示形式上基于类型扩展进行信息流安全编码的方法。这部分程序属性描述方法的研究为验证框架中的属性检测方法研究打下了基础。(3)提出了类型分析与模型检测方法相结合的TCMC算法,并将其应用于程序安全属性的分析过程中。该算法避免了类型分析算法对控制流不敏感的不足,利用模型检测算法对类型分析的结果进行分析,提高了分析的精度,同时也避免了单纯使用模型检测算法进行分析可能造成的较大时间开销。(4)提出了基于反编译技术对汇编码和二进制程序进行分析的方法。该方法不需要编译器提供额外的调试符号信息,能够直接从二进制代码中恢复其控制流与数据流结构。这种方法的提出为底层代码安全属性提供了有效的方法,与基于源语言、中间语言的属性分析一起,为基于程序分析的编译验证框架提供了一整套有效的分析工具。
其他文献
我国柑橘产量位居世界第三,每年产生大量的橘皮,其中只有少部分的橘皮用于饲料和中药,大部分被抛弃或填埋,这不仅造成了饲料资源大量浪费,也严重地污染了环境。为深入了解陈皮在动
城市绿地作为城市生态系统的重要生命支持系统,在保护和恢复绿色环境,维持城市生态平衡和改善提高城市生态环境质量方面起着巨大作用。因此提高城市绿地系统的生态功能,建立完善
辽河油田齐40块进行全面蒸汽驱开采已经6年,暴露出蒸汽超覆、蒸汽沿高渗层的窜流、粘性指进及含水上升等不足。为此2013年进行了泡沫辅助蒸汽驱试验,试验前对注入参数进行了
筹资行为是纺织企业进行一系列经营活动的先决条件,也是财务管理活动的重要内容之一。财务管理的对象是现金(或资金)的循环和周转,而税收支出正是纺织企业现金流出的构成部分
常德自张若建到今已有两千三百多年,历史上是兵家必争的湘西重镇、五省通衢的重要商埠、人文渊薮的名城,积淀了厚重的文化资源。本文共分三部分,第一部分论述常德近百年来的
目的观察甘利欣和5-ASA联合用药对采用2,4-二硝基氯苯和乙酸联合法诱发的溃疡性结肠炎大鼠TNF-α、IL-8、NF-κB的影响,探讨甘利欣和5-ASA联合治疗溃疡性结肠炎的分子机制。
<正>弥漫性大B细胞淋巴瘤(diffuse large B-celllymphoma,DLBCL)占临床所有B细胞淋巴瘤的50%左右,占非霍奇金淋巴瘤(non-Hodgkin’s lympho-mas,NHL)的30%~40%,是NHL中最常见
针对高精度的频率测量,分析了相位检测法的测量误差,根据分析结果提出并实现了一种基于FP-GA实现的频率测量方法。该方法利用FPGA器件门时延小、电路稳定的特性,采用相位重合
孔子诗教中包涵着丰富的人文素质教育思想:注重对弟子的品格塑造和审美教育,并实施了以人为本的教学方法。当今的古典诗歌教学现状不容乐观,表现在教师的教育观念保守,教学方法陈
<正>苏打绿的"韦瓦第计划"是个好的题材,但并不是一个好的选择。从已经上路的《春日光》以及《夏狂热》来看,整体的概念特色鲜明而突出,用概念包装了音乐,在音乐中体现出概念