论文部分内容阅读
密码算法被广泛应用于信息安全领域,在维护网络安全方面发挥着重要作用。密码误用漏洞,是指在密码算法在自身安全的前提下,开发者对密码的使用违背了密码学的安全应用规则和策略,导致软件或系统的安全性缺陷。近年来,由于密码误用所引发的各类漏洞与安全事件层出不穷,使得网络安全面临着严峻挑战。目前对于密码误用漏洞检测所开展的研究还不够充分,主要存在以下几点问题:缺乏对误用漏洞机制的系统梳理,检测方法相对零散,没有充分发挥软件逆向分析技术在漏洞检测中的优势。针对这些问题,本文在系统地分析密码误用漏洞成因的基础上,提出了一种面向Windows应用程序,以动态数据流分析和静态控制流分析为支撑的密码误用漏洞检测方法,主要工作包括:1、提出一套密码误用漏洞分类模型。通过对CVE信息库中已有密码误用漏洞样本的分析,从产生原因、参数特点和识别特征等角度进行深入研究,并从漏洞检测的角度划分为两个主要类别:参数误用型漏洞和应用完整性误用漏洞,分别对应若干子类。2、针对参数误用型漏洞,提出一种基于规则匹配的漏洞检测方法。建立参数误用型漏洞检测规则模型,归纳出不同种类参数误用漏洞的具体检测规则。参照各检测规则所依赖的加解密过程信息,综合运用动态分析和静态分析的方法,进行信息提取与分析。在此基础上,进一步通过规则匹配实现误用漏洞的检测。3、针对应用完整性误用漏洞,提出一种基于密码函数支配树的漏洞检测方法。首先建立层次化、模块化的密码函数应用完整性模型,以密码模块来刻画不同功能对应的完整密码函数调用流程;然后设计动静结合的方法提取加密应用程序的密码函数调用图和密码函数支配树;最后,参照相应密码模块中的完整函数调用流程,判定提取出的密码函数调用是否存在缺陷。4、设计并实现了一个密码误用漏洞检测原型系统。系统由参数误用型漏洞检测和应用完整性误用漏洞检测两个子系统构成,分别依据参数检测规则与密码函数应用完整性模型,进行误用漏洞检测。实验表明,该系统能够检测出腾讯通RTX、知网阅读器CAJViewer和迅雷下载等软件中存在不同种类密码误用漏洞,验证了本文方法的可行性。