二进制程序整数溢出检测:IntScope系统与脆弱性包络方法

需积分: 39 98 下载量 84 浏览量 更新于2024-08-10 收藏 2.93MB PDF 举报
"面向脆弱性包络的整合溢出漏洞挖掘技术-基于matlab的一维条形码检测" 这篇博士学位论文探讨了二进制程序整数溢出漏洞检测技术,特别是在MATLAB环境中对一维条形码检测的影响。整数溢出是一种常见的安全漏洞,发生在计算结果超出整数类型的最大值或最小值时,导致意外的行为,可能被攻击者利用。在源代码层进行检测可能无法捕获所有此类漏洞,因为编译器优化可能会改变原始代码的行为,导致二进制层出现未预期的漏洞。 二进制层漏洞挖掘的重要性在于,它能揭示那些源代码层面难以发现的安全问题。例如,C语言的有符号整数溢出被视为未定义行为,编译器如GCC在优化时可能忽略某些溢出检查,从而在二进制程序中引入潜在漏洞。论文中提到的Python库就是一个实例,源代码看似安全,但在GCC优化后的二进制版本中却存在整数溢出问题。 论文的第六章介绍了"面向脆弱性包络的整合溢出漏洞挖掘技术",这是一个名为IntScope的系统,它使用BESTAR反编译器作为前端,将二进制程序转换为PANDA中间表示,以便在中间代码层进行分析。IntScope的Pre-pruning模块利用脆弱性包络提取方法,自动识别最可能引发整数溢出的代码部分,以减少遍历空间的爆炸性增长。 论文还讨论了漏洞挖掘领域面临的挑战,包括静态分析的高误报率和动态分析对测试数据生成的依赖。它提出了一种校验和感知的模糊测试方法,以应对动态漏洞挖掘过程中遇到的校验和检测机制问题,这在处理包含完整性校验信息的复杂数据格式时尤为关键。 此外,论文指出,源代码级别的漏洞分析并不能保证二进制程序的安全,因为编译和链接过程可能导致新的漏洞。因此,直接在二进制层进行安全分析是必要的,以提高漏洞发现的覆盖率和准确性。该研究对提高二进制程序的安全性,尤其是对于那些不提供源代码的软件,具有重要的理论和实践意义。