基于中间表示的二进制软件漏洞分析技术研究
发布时间:2022-10-30 19:29
随着软件安全事件的不断涌现,各种软件漏洞被接连曝光,软件漏洞已成为影响软件安全的重要因素,漏洞检测则成为信息安全领域的主要研究方向。现有的漏洞检测方法分为面向源代码的漏洞检测和面向二进制软件的漏洞检测,其中前者已经较为成熟,但是二进制代码的设计特点和结构特征都与源代码不同,并且由于二进制语义信息的缺乏以及分析的复杂性,目前少有成熟的二进制漏洞检测工具可以使用。同时,越来越多的软件以二进制的形式发布,因此,对二进制程序的漏洞检测的方法和技术进行研究是十分迫切且必要的。本文以Android平台上的二进制软件动态链接库为研究对象,提出了一种可用于漏洞检测的二进制程序中间语言BinaryLift以及一种全新的二进制程序语义特征表示形式ProF,并实现了一种基于BinaryLift和ProF的漏洞分析方案。本文的主要研究工作及成果如下:1.中间语言BinaryLift的设计与实现:本文分析了已有的二进制程序中间语言的局限性,提出了一种类源码级中间语言BinaryLift。BinaryLift是对底层语言的进一步转化,其准确、完整的反映了程序信息,并且还原了程序的部分高级语义信息,弥补了直接对底层...
【文章页数】:97 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
第一章 绪论
1.1 研究背景及意义
1.2 国内外研究现状
1.2.1 人工分析
1.2.2 模糊测试
1.2.3 符号执行
1.2.4 二进制代码比对
1.2.5 代码特征识别
1.3 研究目标及内容
1.4 论文主要工作及组织结构
第二章 二进制程序的中间形式研究
2.1 中间形式构建过程
2.2 中间语言
2.2.1 REIL
2.2.2 VEX IL
2.2.3 Vine IL
2.2.4 局限性分析
2.3 中间表示
2.3.1 树型中间表示
2.3.2 图型中间表示
2.3.3 文本型中间表示
2.3.4 局限性分析
2.4 本章小结
第三章 中间语言BinaryLift的设计与实现
3.1 设计原则
3.2 BinaryLift转化过程
3.3 预处理
3.3.1 反汇编
3.3.2 基本块划分
3.4 指令翻译
3.4.1 指令副作用
3.4.2 跳转指令处理
3.4.3 条件表达式构造
3.5 形式化处理
3.5.1 函数栈帧分析
3.5.2 条件选择模式识别
3.5.3 循环模式识别
3.5.4 BinryLift语法定义
3.6 BinaryLift转化示例
3.7 BinaryLift特点及适用性分析
3.8 本章小结
第四章 中间表示ProF的设计与实现
4.1 二进制程序高危漏洞
4.1.1 缓冲区溢出漏洞
4.1.2 整数溢出漏洞
4.1.3 UAF漏洞
4.2 BinaryLift漏洞表现形式
4.2.1 高危函数调用
4.2.2 循环内存写入
4.3 ProF转化过程
4.3.1 定义
4.3.2 转化过程
4.4 动作筛选
4.5 结果计算
4.5.1 数据流分析
4.5.2 折叠计算
4.6 条件生成
4.7 ProF特点及适用性分析
4.8 本章小结
第五章 漏洞检测及有效性验证
5.1 漏洞检测模型
5.2 BinaryLift有效性验证
5.2.1 BinaryLift vs Assembly Instructions
5.2.2 BinaryLift vs Vine IL
5.3 ProF有效性验证
5.3.1 ProF vs BinaryLift
5.3.2 ProF vs系统调用链
5.4 Android Stagefright漏洞分析
5.5 本章小结
第六章 总结与展望
6.1 工作总结
6.2 工作展望
参考文献
致谢
攻读学位期间发表的学术论文
【参考文献】:
期刊论文
[1]基于遗传算法的二进制程序模糊测试方法[J]. 焦龙龙,罗森林,刘望桐,潘丽敏,张笈. 浙江大学学报(工学版). 2018(05)
[2]二进制程序中的use-after-free漏洞检测技术[J]. 韩心慧,魏爽,叶佳奕,张超,叶志远. 清华大学学报(自然科学版). 2017(10)
[3]二进制程序漏洞挖掘关键技术研究综述[J]. 王夏菁,胡昌振,马锐,高欣竺. 信息网络安全. 2017(08)
[4]Cppcheck的软件缺陷模式分析与定位[J]. 张仕金,尚赵伟. 计算机工程与应用. 2015(03)
[5]二进制程序安全缺陷静态分析方法的研究综述[J]. 田硕,梁洪亮. 计算机科学. 2009(07)
硕士论文
[1]二进制代码漏洞静态检测研究[D]. 章亮.华侨大学 2017
本文编号:3699347
【文章页数】:97 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
第一章 绪论
1.1 研究背景及意义
1.2 国内外研究现状
1.2.1 人工分析
1.2.2 模糊测试
1.2.3 符号执行
1.2.4 二进制代码比对
1.2.5 代码特征识别
1.3 研究目标及内容
1.4 论文主要工作及组织结构
第二章 二进制程序的中间形式研究
2.1 中间形式构建过程
2.2 中间语言
2.2.1 REIL
2.2.2 VEX IL
2.2.3 Vine IL
2.2.4 局限性分析
2.3 中间表示
2.3.1 树型中间表示
2.3.2 图型中间表示
2.3.3 文本型中间表示
2.3.4 局限性分析
2.4 本章小结
第三章 中间语言BinaryLift的设计与实现
3.1 设计原则
3.2 BinaryLift转化过程
3.3 预处理
3.3.1 反汇编
3.3.2 基本块划分
3.4 指令翻译
3.4.1 指令副作用
3.4.2 跳转指令处理
3.4.3 条件表达式构造
3.5 形式化处理
3.5.1 函数栈帧分析
3.5.2 条件选择模式识别
3.5.3 循环模式识别
3.5.4 BinryLift语法定义
3.6 BinaryLift转化示例
3.7 BinaryLift特点及适用性分析
3.8 本章小结
第四章 中间表示ProF的设计与实现
4.1 二进制程序高危漏洞
4.1.1 缓冲区溢出漏洞
4.1.2 整数溢出漏洞
4.1.3 UAF漏洞
4.2 BinaryLift漏洞表现形式
4.2.1 高危函数调用
4.2.2 循环内存写入
4.3 ProF转化过程
4.3.1 定义
4.3.2 转化过程
4.4 动作筛选
4.5 结果计算
4.5.1 数据流分析
4.5.2 折叠计算
4.6 条件生成
4.7 ProF特点及适用性分析
4.8 本章小结
第五章 漏洞检测及有效性验证
5.1 漏洞检测模型
5.2 BinaryLift有效性验证
5.2.1 BinaryLift vs Assembly Instructions
5.2.2 BinaryLift vs Vine IL
5.3 ProF有效性验证
5.3.1 ProF vs BinaryLift
5.3.2 ProF vs系统调用链
5.4 Android Stagefright漏洞分析
5.5 本章小结
第六章 总结与展望
6.1 工作总结
6.2 工作展望
参考文献
致谢
攻读学位期间发表的学术论文
【参考文献】:
期刊论文
[1]基于遗传算法的二进制程序模糊测试方法[J]. 焦龙龙,罗森林,刘望桐,潘丽敏,张笈. 浙江大学学报(工学版). 2018(05)
[2]二进制程序中的use-after-free漏洞检测技术[J]. 韩心慧,魏爽,叶佳奕,张超,叶志远. 清华大学学报(自然科学版). 2017(10)
[3]二进制程序漏洞挖掘关键技术研究综述[J]. 王夏菁,胡昌振,马锐,高欣竺. 信息网络安全. 2017(08)
[4]Cppcheck的软件缺陷模式分析与定位[J]. 张仕金,尚赵伟. 计算机工程与应用. 2015(03)
[5]二进制程序安全缺陷静态分析方法的研究综述[J]. 田硕,梁洪亮. 计算机科学. 2009(07)
硕士论文
[1]二进制代码漏洞静态检测研究[D]. 章亮.华侨大学 2017
本文编号:3699347
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3699347.html