二进制程序漏洞挖掘:roBDD技术与模糊测试新方法

需积分: 39 98 下载量 157 浏览量 更新于2024-08-10 收藏 2.93MB PDF 举报
"这篇博士学位论文主要探讨了基于roBDD( Reduced Ordered Binary Decision Diagram)的集合表达在细颗粒度污点分析技术中的应用,特别是在一维条形码检测中的使用。roBDD是一种优化后的二元决策图,常用于布尔函数的表示。论文指出,在x86指令层进行细颗粒度污点分析时,简单的二元操作可能导致复杂的集合合并,影响性能。BDD由一个根节点和两个终节点(标记为0和1)组成,其余节点的出度为2,分别代表变量的True和False状态。一条路径从根节点到终节点1表示布尔函数为真的变量赋值组合。roBDD通过优化减少了存储和操作的复杂性。论文还提到了软件安全漏洞的重要性,尤其是针对二进制程序的漏洞挖掘,因为许多软件不公开源代码,且编译过程可能引入新的漏洞。静态分析误报率高,动态模糊测试则受限于测试数据生成,论文提出了校验和感知的模糊测试方法来解决这些问题。" 在软件安全领域,漏洞挖掘是关键任务,因为软件安全漏洞是信息安全风险的主要来源。面向源代码的漏洞挖掘虽然取得了进展,但面对商业利益和知识产权保护,许多软件的源代码不对外公开,这促使人们转向二进制程序的安全漏洞挖掘。然而,这带来了新挑战,如静态分析的误报率和动态模糊测试的数据生成难题。 roBDD在此背景下作为一种有效的工具,它能够简洁高效地表示布尔函数,特别适合处理x86指令层的复杂集合操作。roBDD相比于基本的BDD,通过排序和压缩减少了冗余,提高了效率。在二进制程序分析中,roBDD可以帮助实现更精确的污点分析,从而更好地理解代码执行路径和潜在的漏洞。 论文的主要贡献在于提出了校验和感知的模糊测试技术,以应对那些包含校验和检查的复杂数据格式,这是现有模糊测试方法的局限。通过这种方式,动态漏洞挖掘能够更有效地穿透程序,提高发现漏洞的可能性,降低了误报率,增强了测试覆盖率,从而有助于提升软件安全性。