论文部分内容阅读
随着互联网和软件工程技术的快速发展,针对软件在线升级的劫持攻击,已经成为影响网络空间安全最具威胁的手段之一。目前针对软件升级漏洞检测问题,大多集中在手工逆向调试分析和升级网络流量分析等方面,效率普遍较低。由于存在升级劫持漏洞的软件数量十分庞大,针对软件升级漏洞的快速自动化检测已经成为一个迫切的课题。为解决上述问题,本文研究基于程序逆向分析的软件升级漏洞快速检测方法,通过对软件升级行为的安全性分析,实现对软件升级漏洞的快速检测。首先深入研究软件升级的基本流程及相应保护机制,构建软件升级漏洞分类模型,作为漏洞检测的支撑。然后为实现对软件升级功能的快速逆向分析,通过升级语义信息与程序静态分析结合的方法,对软件中的升级代码进行快速静态逆向定位。最后,提出了基于软件升级行为链分析的漏洞自动化分析与检测方法,对升级漏洞进行快速检测。同时,在前面研究基础之上设计并实现了软件升级漏洞检测系统,最终实现对一定数量的软件升级漏洞进行快速检测。本文的创新点如下:1、构建软件升级漏洞分类模型。在深入研究软件升级一般流程及安全机制的基础上,定义了软件升级漏洞分类模型。并根据软件升级的不同阶段将软件升级漏洞分为软件升级过程中通信协议安全漏洞和软件升级包校验漏洞。为说明软件升级漏洞模型划分的合理性,深入跟踪实际存在相关漏洞的软件的升级行为,研究每种漏洞的形式及原理。该模型为升级漏洞的分析检测提供了关键支撑。2、提出一种基于软件升级语义信息导向的升级功能逆向定位的方法。对软件升级功能的逆向定位是实现快速分析软件升级行为的重要提前。本文借助自然语言处理和机器学习文本分类方法,对软件的升级语义信息建立分类模型,自动预测软件中升级相关的语义信息。并在此基础上,借助升级语义信息利用程序静态分析方法在升级程序中对升级功能进行逆向定位。该方法解决了在复杂软件中对升级功能逆向定位的难题,同时也是对软件升级行为逆向分析的重要基础。3、提出基于软件升级行为链分析的漏洞快速检测方法。基于软件升级漏洞本身的特点,提出软件升级行为链分析的漏洞检测方法。首先定义了软件升级行为链,包含若干个网络通信行为和密码行为节点。在升级功能逆向定位的基础上,利用动静结合的程序分析方法对软件升级行为链进行提取,并在此基础上借助漏洞匹配规则检测升级行为链的漏洞。实验证明,该检测方法能自动化对升级行为漏洞进行检测,在保证可靠性的情况下,较大提高了检测速度。4、设计并实现了软件升级漏洞分析与检测系统。该系统主要由静态分析模块和动态分析模块构成。静态分析模块对输入的软件进行升级功能逆向定位和静态提取软件升级行为;动态分析模块利用动态二进制插桩技术及数据流分析技术对软件升级行为进行跟踪,并根据漏洞匹配规则检测升级行为漏洞。为验证该系统快速检测软件升级漏洞的能力,从互联网搜集安装了涵盖16个种类共486个软件,利用原型系统进行分析,发现了197个软件存在升级漏洞。最后对该系统的性能进行了详细的对比分析,结果显示了系统检测升级漏洞的可靠性与高效性,证明本文方法能够较好地解决软件升级漏洞快速检测的问题。