论文部分内容阅读
随着网络通信技术的发展,在线应用程序被越来越广泛地使用,其中可能存在的安全问题也被人们越来越重视,因此对网络通信协议的分析变得至关重要。而为了保护自身数据不被破坏或泄露,大多数计算机程序使用加密技术来保障其安全性。但与此同时,加密技术也被很多恶意程序用来防止自身被检测或分析,从而实现其恶意目的,对安全的网络环境造成了严重的威胁。因此,对恶意程序的通信协议尤其是加密通信协议的分析变得至关重要。通过对加密方案的分析,安全研究人员能够更容易地理解恶意程序的行为和内部结构,从而实现对于恶意程序的防范。自动化协议分析在网络安全研究中扮演重要角色,在协议逆向、入侵检测、网络防护、模糊测试以及程序特征识别等方面发挥了最为重要的作用。然而,目前对于加密协议的自动化分析方法仍然难以满足目前的需求。比如,已有的分析方法要求程序中解密和消息处理分阶段进行,这在目前日益复杂的恶意程序中几乎是不可能实现的。已有分析方法所依赖的指令密度特征在如今恶意程序被程序混淆等手段所保护的情况下也常常被消除。同时,已有方法通常无法提取出诸如密码算法类型、密钥以及明密文等参数,这对恶意程序的深入分析造成了较大的障碍。这些存在的问题要求我们提出新的分析方法来应对目前对加密协议的分析需求。针对已有分析方法的不足之处,本文提出了一种新的加密网络协议分析方法,能够有效地解决当前存在的问题。本文所述方法的主要贡献如下:(一)以污点分析和数据依赖分析为基础,检测和分析加密协议消息处理中的加解密、编解码和数据校验等算法,消除了已有方法中对于解密和处理分阶段执行和对指令密度特征的要求;(二)对恶意程序中常见的多层加密结构提出了子消息重建方法,解决了已有方法中仅能对单层加密进行分析的缺陷,为分析人员提供最全面的分析结果;(三)提出了使用数据模式分析对算法的动态参数进行提取的分析方法,弥补了已有方法中无法对算法参数进行有效提取的弱点,极大减轻了分析人员的负担;(四)开创了针对加密协议的私有算法分析方法,并建立了适用于私有算法的数据依赖关系分析方法,使恶意程序中常见的私有算法能够被有效分析;同时提出了针对私有算法的熵度量判据,为私有算法的分类和特征提取提供了依据;(五)使用近年来具有较大威胁的恶意程序对本文方法进行了测试和评估,已验证本方法的可行性、有效性和可靠性。