论文部分内容阅读
互联网的全球性普及和发展,使得计算机网络与人们的生活紧密相关,信息安全逐渐成为信息技术的核心问题,软件漏洞检测是信息安全的重要组成部分,漏洞带来的危害日益严重,恶意攻击者可以利用软件漏洞来访问未授权的资源,导致敏感数据被破坏,甚至威胁到整个信息安全系统。本文针对软件漏洞产生的机理和已有漏洞检测技术的不足,结合数据挖掘技术,设计了适用于软件漏洞检测分析的挖掘算法,从大量的数据中获取潜在有用的信息形成漏洞信息知识库,对知识库中数据的属性和对象的集合进行有效的描述,生成具有指导性的关联规则,提高了软件漏洞检测的质量。首先,将数据挖掘中的关联规则挖掘技术和聚类分析技术应用于软件漏洞检测分析中,用以解决现存软件安全检测分析模型误报率和漏报率高的问题,提出了一种基于数据挖掘技术的软件漏洞检测分析模型。该模型主要分为漏洞知识库的形成和疑似软件漏洞匹配两个模块,对收集到的漏洞信息进行数据预处理之后形成漏洞序列数据库,通过序列模式挖掘算法对数据库中的数据进行频繁序列模式挖掘,在此基础上,采用聚类分析技术通过相似度度量方法对频繁序列进行聚合分簇,形成漏洞信息知识库。待测软件中疑似漏洞的匹配是先采用聚类分析技术确定疑似漏洞所在知识库中的簇,再根据序列匹配算法将疑似漏洞序列与所在簇中的序列进行匹配,最终生成软件漏洞检测报告。其次,根据软件漏洞检测模型的需要,针对不同的数据来源特点,提出了三种用于漏洞知识库构建的序列模式挖掘算法。基于主存索引的时间间隔加权序列模式算法适用于带有时间约束的序列模式,它将序列数据库加载到内存中,不产生候选集或构造投影数据库,充分考虑了时间间隔的因素并体现了权重的意义;基于前缀序列树的数据流闭合序列模式算法适用于数据以流形成到来的情况,它利用数据流滑动窗口技术,对数据流中的窗口进行分片段挖掘,提出一种新的数据结构,可以有效的克服前缀树深度过高的情况,减少了树的搜索时间;基于模式衰减的增量式加权数据流序列模式算法则适用于数据流中根据具体需求对数据进行相应的加权操作,它是采用双权重方法,由用户设定数据流中的单项的权重,而通过时间约束对单个序列的权重进行模式衰减运算。再次,漏洞信息数据库中存储了的大量漏洞序列,经过频繁序列模式挖掘之后数量依然庞大,这就增加了疑似漏洞匹配的时间开销。因此,为了缩减匹配过程的搜索空间,在漏洞知识库的形成和疑似漏洞的匹配阶段分别采用了同一种聚类分析技术,它是基于DBSCAN的属性相关子空间聚类算法,通过计算属性值的均方差确定活跃属性,降低维度,定义阈值并加权,在漏洞知识库的形成阶段用以将频繁序列根据相似度度量分簇,在疑似漏洞序列匹配阶段用以确定疑似漏洞所属的簇。调用DBSCAN算法在每个活跃属性上生成一维簇,利用簇相似度来合并簇,进而得到子空间簇,待匹配序列可以通过搜索所属空间簇,定位大概的搜索范围避免不必要的搜索时间开销。最后,疑似漏洞序列的匹配算法采用基于前缀索引集的带通配符的序列模式匹配算法,该算法是在确定的所属空间簇的基础上执行。将待测软件中的疑似漏洞序列与所属簇中的全部序列进行匹配,避免产生大量候选集和投影数据库,减少运行时间的浪费。该算法基于内存索引策略,根据通配符约束限制定义了一个新的前缀索引集,采用增量式挖掘以及查找索引的方法,带通配符约束的前缀索引集可以直接给出序列模式的出现集位置信息。算法的整个挖掘过程采用分而治之的思想,可以根据不同的漏洞定位需求调整通配符的个数和位置,对被索引集标记的序列和未被标记的序列分别进行处理,避免了序列模式的疏漏。