收藏本站
《中国科学技术大学》 2007年
收藏 | 手机打开
二维码
手机客户端打开本文

编译过程安全性基础研究

胡燕  
【摘要】: 程序安全性已成为现代软件开发中必须重视的关键问题。在软件开发流程中,从设计到编码到编译为最终的可执行代码,任何一个阶段的安全隐患都可能导致最终软件的安全性问题。因此,对软件开发流程的各个阶段进行安全性测试是保证软件质量的一个必要部分。在软件开发过程中,编译器负责从软件源代码到目标代码的变换这一重要阶段,因此编译过程的正确性和安全性对软件的安全性有着非常大的影响。目前,针对软硬件系统的形式化验证技术发展迅速,相关工具的工具也逐步成熟,这些进步使得对编译器这类复杂的软件进行验证成为可能。由于编译验证在安全软件开发中的重要意义,它已经成为当前研究的一个热点。 本论文以编译过程验证为主要研究方向,针对编译验证的核心问题,对编译器安全性的验证方法进行了探索研究,其中包括对程序属性的描述与分析方法的研究,以及对基本的编译验证方案的探索。文中提出了一种基于程序分析的编译验证框架,该框架基于对编译过程中个阶段的编译中间表示形式的分析验证编译过程是否保证了特定的安全特性。文中研究了对源语言程序和中间代码的安全属性分析方法,提出了一种新颖的算法,并将利用其对重要的软件安全属性进行分析。另外,文中还提出了一种新颖有效的二进制代码的分析方案,将对高级语言程序的属性检查方法扩展到了可执行程序的领域,因此使得能够采用统一的分析方法完成程序在编译各个阶段的各种形式的安全属性验证,从而为本文提出的编译验证框架提供了有效的安全属性分析手段。 本文主要研究内容包括: (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)提出了基于反编译技术对汇编码和二进制程序进行分析的方法。该方法不需要编译器提供额外的调试符号信息,能够直接从二进制代码中恢复其控制流与数据流结构。这种方法的提出为底层代码安全属性提供了有效的方法,与基于源语言、中间语言的属性分析一起,为基于程序分析的编译验证框架提供了一整套有效的分析工具。
【学位授予单位】:中国科学技术大学
【学位级别】:博士
【学位授予年份】:2007
【分类号】:TP314

手机知网App
【参考文献】
中国期刊全文数据库 前3条
1 胡荣贵,陈意云,郭帆;机器语言的类型化及代码的安全检查[J];计算机研究与发展;2004年06期
2 吕江花,金成植;语义转换——直接指称语义到接续指称语义[J];计算机研究与发展;2004年06期
3 王贵林;卿斯汉;倪惜珍;冯登国;;安全计算机系统的Bell-LaPadula形式化模型[J];计算机科学;2001年12期
【共引文献】
中国期刊全文数据库 前7条
1 刘斌;;BLP模型的研究与并发控制改进[J];工业控制计算机;2011年08期
2 李中学;陈旺;;基于BLP的Web系统多级安全策略模型[J];后勤工程学院学报;2008年01期
3 傅德月;;一种基于SAGE的高性能PIM的解决策略[J];华中师范大学学报(自然科学版);2008年04期
4 吕江花;马世龙;潘静;金成植;;接续到直接的指称语义转换[J];计算机研究与发展;2006年07期
5 钟亮,王小铭;一种基于对象关系的数字图像隐藏方法[J];计算机工程与应用;2005年32期
6 张凯;杨晓艳;沈宁;;堆栈溢出的BLP形式化研究及实现[J];计算机工程与设计;2007年04期
7 张明德;郑雪峰;蔡翌;;应用安全模型研究[J];信息网络安全;2012年08期
中国重要会议论文全文数据库 前1条
1 张明德;郑雪峰;蔡翌;;应用安全模型研究[A];第27次全国计算机安全学术交流会论文集[C];2012年
中国博士学位论文全文数据库 前2条
1 姚剑波;基于句法分析的安全信息流[D];贵州大学;2006年
2 於光灿;协作环境中访问控制模型研究[D];华中科技大学;2008年
中国硕士学位论文全文数据库 前7条
1 陈戈;企业信息化程度和安全需求水平的研究及两者关系模型的探索[D];重庆大学;2004年
2 张凯;安全操作系统中反Linux ELF病毒研究[D];华中师范大学;2006年
3 阮小黎;基于模型检测的C语言安全信息流研究[D];清华大学;2007年
4 王燕飞;电信自助服务终端访问控制应用研究[D];中南大学;2008年
5 任维武;基于数据挖掘和知识框架的入侵警报关联研究[D];吉林大学;2010年
6 叶肇恒;基于MIC理论的嵌入式系统安全模型的设计与研究[D];西华大学;2010年
7 孔德兰;基于信息流的隐通道自动检测的研究与实现[D];西安电子科技大学;2011年
【同被引文献】
中国博士学位论文全文数据库 前1条
1 雷杰;网络安全威胁与态势评估方法研究[D];华中科技大学;2008年
中国硕士学位论文全文数据库 前1条
1 雷涛;可执行程序的反编译[D];华中科技大学;2004年
【相似文献】
中国期刊全文数据库 前10条
1 田宇;陈松乔;;基于EJB的构件组装编译技术研究与实现[J];辽宁工学院学报;2006年01期
2 赵丽;齐兴斌;;浅谈高级语言的执行方式——编译过程[J];电力学报;2008年03期
3 覃安,符红光;GiNaC编译器设计中双向循环的归一化处理[J];计算机应用;2005年09期
4 涂文斌;张诤;;一种新型NC代码编译器的设计方法[J];装备制造技术;2010年02期
5 王海鹏;VB编译过程故障一例[J];电脑爱好者;1999年15期
6 邹辉辉;;简述新闻编译的实践特点[J];才智;2009年13期
7 胡慧;张海;余玛俐;;类C语言词法分析器的设计与实现[J];软件导刊;2006年21期
8 赵培元;;成功编译LINUX内核的一种方法[J];潍坊教育学院学报;2007年04期
9 宁华华;王慧;;浅谈《编译原理》学习中的几个问题[J];光盘技术;2009年05期
10 田宇;陈松乔;;一种基于XML的构件组装编译技术研究[J];计算机技术与发展;2006年09期
中国重要会议论文全文数据库 前10条
1 陆首博;谢瑾奎;黄林鹏;;并行编译线程的设计与分析[A];2005年全国开放式分布与并行计算学术会议论文集[C];2005年
2 张晓梅;;一种用于网格上的物理软件管理机制[A];第13届全国计算机、网络在现代科学技术领域的应用学术会议论文集[C];2007年
3 肖本强;张鑫;林之光;姜宇;;基于CC2430的Tinyos实现[A];计算机技术与应用进展·2007——全国第18届计算机技术与应用(CACIS)学术会议论文集[C];2007年
4 王广忠;何青;;开源Qt开发环境的建立和波形显示程序的编译及移植[A];全国冶金自动化信息网2009年会论文集[C];2009年
5 李荣;佟雨兵;常青;张其善;;uClinux操作系统在ADSP-BF533上的应用[A];全国第十届信号与信息处理、第四届DSP应用技术联合学术会议论文集[C];2006年
6 周杰;李齐;邵惠鹤;;基于MC9328MXL的MiniGUI的移植与开发[A];第16届中国过程控制学术年会暨第4届全国故障诊断与安全性学术会议论文集[C];2005年
7 张颖超;叶小岭;李泽安;高连军;吴平;;基于VC++的ATS软件平台的设计[A];第16届中国过程控制学术年会暨第4届全国故障诊断与安全性学术会议论文集[C];2005年
8 张文明;邓庆绪;;软硬件任务转换模型的设计与实现[A];全国第19届计算机技术与应用(CACIS)学术会议论文集(下册)[C];2008年
9 葛铁鹰;;前人栽树,后人乘凉——简评《一千零一夜》中译本[A];国际交流学院科研论文集(第三期)[C];1996年
10 刘明;蔡启先;周兵;;基于newlib的通用嵌入式交叉编译工具的构建[A];广西计算机学会2009年年会论文集[C];2009年
中国重要报纸全文数据库 前10条
1 柳坚;Ghost 2003速度变缓之谜[N];电脑报;2003年
2 山东经济学院 尹植平;轻松安装、卸载Linux软件[N];中国计算机报;2001年
3 唐川;Linux要投靠Windows应用平台?[N];中国计算机报;2005年
4 周舟洪;会计电算化企业审计中的问题及对策[N];中国审计报;2001年
5 沪专;电算化条件下会计信息质量检查的新特点[N];中国财经报;2007年
6 北京 怪力;Perl——21世纪的语言[N];电脑报;2001年
7 晨曦 遥远;单片机仿真调试软件Keil μVision2的使用(一)[N];电子报;2005年
8 中央编译局 李京洲;新版《列宁全集》译校的重要一环[N];社会科学报;2003年
9 重庆 SunnyMan;LaTeX——国际通用的科技论文投稿软件[N];电脑报;2002年
10 记者 计亚男、邢宇皓;《现代汉语词典》有了汉英双语版[N];光明日报;2003年
中国博士学位论文全文数据库 前7条
1 周凡利;工程系统多领域统一模型编译映射与仿真求解研究[D];华中科技大学;2011年
2 胡燕;编译过程安全性基础研究[D];中国科学技术大学;2007年
3 沈英哲;可重构计算系统中软硬件代码划分技术研究[D];中国科学技术大学;2007年
4 王志;二进制代码路径混淆技术研究[D];南开大学;2012年
5 田红丽;可重构计算系统芯片中的动态数据调度模型及部件的研究[D];河北工业大学;2011年
6 李小强;CPU-GPU异构系统上的高层编程模型及其编译优化技术[D];中国科学技术大学;2013年
7 薛婷婷;我国对外报道新修辞情境理论研究[D];上海外国语大学;2011年
中国硕士学位论文全文数据库 前10条
1 郑洁;汉英新闻编译过程实证研究[D];浙江大学;2014年
2 李林虎;基于编译中间代码的关键变量容错技术[D];国防科学技术大学;2011年
3 刘晓锋;MIB编译及自动实现[D];四川大学;2005年
4 钱向红;TTCN-3编译技术研究与实现[D];西南交通大学;2004年
5 陈超;基于Web的GPU服务平台的实现[D];北京化工大学;2013年
6 胡奇明;VxWorks操作系统的重新编译和优化研究与实现[D];国防科学技术大学;2008年
7 陈功;无线传感器网络中编译优化工具的研究及实现[D];浙江大学;2010年
8 康丹丹;《传媒编译》翻译报告[D];四川外语学院;2012年
9 李再银;基于Windows的车床开放式数控系统研究与设计[D];电子科技大学;2006年
10 唐志刚;基于linux-QT的嵌入式医用监护仪开发[D];南京大学;2011年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62791813
  • 010-62985026