面向二进制代码安全分析的反编译关键技术研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:Niujingniu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
系统安全领域有很多关键问题需要针对二进制代码进行安全特性的分析,比如安全脆弱性分析与利用,安全后门分析,恶意代码分析等等。对二进制代码进行分析的重要工程方法之一是反编译,但传统反编译的目标是将二进制代码逆向变换成C/C++等高级编程语言源码,受限于高级编程语言的复杂语法结构,这种方法不但要花费大量的代价(往往需要人工介入)以支持正确的语法结构,而且最终的输出结果并不利于后续计算机辅助安全分析;更进一步,高级编程语言无法精确描述安全敏感的低级操作,这样的反编译过程会造成安全相关敏感信息的丢失,从而直接影响安全分析的正确性。 本文从二进制代码安全分析的特殊需求出发,对现有反编译技术进行改进和完善,着重研究其中的控制流分析(包括复合条件结构识别、复合多路分支结构识别、嵌套循环结构识别等)、数据流分析(别名分析、变量重用等)和代码生成(规范化中间语言表达)等三方面的关键技术,以保全安全相关敏感信息为前提,将二进制代码里被编译优化或者混淆打乱并重组的控制流和数据流结构转变为结构化良好的规范化的中间语言表达,从而为各种安全分析应用提供支持。 本文的创新点主要体现在以下几个方面: (1)提出了基于复合分支子图的复合条件结构识别算法,该算法比经典的C.Cifuentes算法和E.Moretti算法在识别准确率和实现效率上都有显著提高; (2)首次提出基于级联分支子图的复合多路分支识别算法,可将零散分支簇准确识别构成多路分支结构(Switch); (3)在深入探讨嵌套循环和深度优先搜索(depth-first search,DFS)之间的相关属性的基础上,提出了基于单次遍历的识别算法,该算法比R.E.Tarjian等人多次遍历的算法快2-8倍; (4)在研究嵌套循环算法识别的同时,发现并首次提出程序控制流图的“低非结构化属性”(LoW Unstructuredness Property,LUP),该属性将控制流图和普通的单根有向连通图相区分,并可以为算法设计、优化和选择提供有效的指导。 (5)在控制结构分析、LuP属性的基础上提出了一种控制流图规范化算法,将二进制代码中杂乱分布的基本块转变为可归约(reducible)的结构良好的规范化序列表示; (6)数据流分析部分:引入了符号执行和编译领域的静态单一赋值(SSA),并根据反编译的特殊需求首次提出支持变量生成的静态单一赋值分析(VG-SSA)。该算法比传统反编译中采用的def-use分析方法更好地解决了二进制代码中的别名分析和变量重用等重要问题,并能更好地支持反混淆(de-obfuscating)和切片(slicing)等后续分析需求。 (7)提出了面向二进制代码安全分析的中间语言——PANDA语言,该语言兼顾低级语言和高级语言特性,在保持安全相关敏感信息不丢失的前提下,支持B.S.Baker的SL语言结构,将数百种不同的机器指令归结成不到二十种规范化指令,可以有效的为各种计算机辅助安全分析做支撑。在这些关键技术研究基础上,实现了BESTAR(Binary Executable S’rrucmrizerand AnalyzeR)反编译系统,并针对Windows XP平台和LJnux平台的典型应用程序做了大量实验,验证了这些技术的有效性和正确性,并已成功应用在二进制漏洞挖掘和恶意代码分析等研究课题中。 研究工作得到国家高技术研究发展计划专项(项目编号:2006AA012402)项目资助。
其他文献
目前国内、外均有商品化的基于Web平台的工程材料数据库在运行,但是,专门针对冷轧钢铁材料、特别是包含冷轧工艺设备及冷轧工艺性能的较完整的数据库几乎未见。为此,建立一个
数据容量的爆炸式增长,数据价值的日益增加,对存储系统的容量、成本、数据可靠性和数据访问性能等方面提出越来越高的要求。存储架构由传统的集中式存储逐步发展成为集群存储。
随着市场竞争的日益激烈,越来越多的企业深刻认识到:客户服务是赢得客户满意至关重要的手段。作为客户服务主要组成的呼叫中心,成为现代企业提高企业形象、与客户双向交流、
随着越来越多的成功软件系统变成了遗产系统(legacy system),软件演化的重要性和普及性变得越来越强。软件演化已成为软件生存周期中最重要的形态之一,进入了软件的各个领域,成
本文对搜索引擎技术进行了深入的研究,并且探讨和实现了搜索引擎在企业中的应用。分析了当前的几种中文分词技术,并在此基础上设计出了自己的中文分词算法,该算法达到了很好的中
面向服务软件体系结构(SOA)作为近年来软件工程领域出现的一个新兴研究方向,因其能够应对复杂多变的企业业务需求而得到迅速的发展和应用。面向服务以服务作为其核心元素,以Int
随着网络规模的日益增大,网络资源的急速膨胀,用户对数据安全性和获取速度有着越来越高的要求,这使得分布式存储技术面临着巨大的挑战。数据规模越来越大,查询也越来越复杂,
随着医学成像技术的发展和医院信息网络(如PACS,HIS,RIS)的普及,可供临床、研究、和教学使用的医学图像正在迅速膨胀。传统的基于文本的检索方法已经不能满足用户的需求。如何能方
目前,许多的公司和标准化组织提出了Web服务组装模型和特定描述语,然而,这些语言大部分比较复杂冗长,不易于理解。对于一些非常关键的基于Web服务的业务处理流程,任何设计错误都将
随着信息化技术的发展,及时有效地利用不断增长的信息资源已经成为信息服务的应用热点,而如何对大量异构的信息资源进行整合与共享是有效利用现有信息资源的关键技术问题.实