论文部分内容阅读
模式串匹配技术广泛应用于网络和内容安全领域,是网络内容安全分析和深度检测的关键技术之一。在近几十年的网络飞速发展中,网络安全分析始终是影响众多领域的研究热点。随着网络空间成为继海陆空之后的第四空间,网络安全已经上升至国家安全的高度,全球范围内随之掀起了一场网络安全及其相关研究的浪潮。面对当前日趋严峻的网络安全问题,已有算法的存储空间和运算速度已经难以满足高速网络环境下特征串实时匹配的应用需求。 本文重点研究模式串匹配技术中的空间压缩算法和加速技术。针对大规模模式串匹配算法中存储空间开销大、匹配速度慢、在线匹配实时性低等问题,分别从算法层、逻辑层、数据层出发,设计并实现了三种高效的模式串匹配技术。包括:精确串匹配的空间压缩技术、布尔表达式匹配的空间压缩和加速技术、大规模URL(Uniform/Universal Resource Locator)过滤加速技术,以减少大规模复杂规则检测的计算开销和存储开销,提高检测的实时性。本文的研究成果可以广泛应用于高速网络和信息内容安全等领域,可以大幅度地加强我国信息安全基础设施建设,对提升网络空间的安全性,具有重要的理论研究意义和实际应用价值。 本文的主要贡献总结如下: (1)研究了精确串匹配的空间压缩技术,提出一种基于哈希的空间高效的多模式串匹配算法——HashTrie。 经典多模式串匹配算法AC(Aho-Corasick)的内存开销巨大,无法满足当前高速网络环境下大规模模式串实时匹配的应用需求。针对这一问题,提出一种空间高效的多模式串匹配算法——HashTrie。该算法运用递归哈希函数,将模式串集合的信息存储在位向量中,以取代状态转移表来减少空间消耗,并利用Rank操作进行快速匹配校验。理论分析表明,HashTrie算法的空间复杂度为O(|P|),与模式串集合的规模|P|线性相关,与字符集大小σ无关,优于经典多模式串匹配算法AC的空间复杂度O(|P|σlog|P|)。在合成数据集和真实数据集(Snort、ClamAV和URL)上的测试结果表明,HashTrie算法比AC算法节约高达99.6%的存储空间,匹配速度约为AC算法的一半左右。HashTrie算法适合于解决模式串集合规模较大、模式串长度较短的多模式串匹配问题,是一种空间高效的多模式串匹配算法。 (2)研究了布尔匹配的空间压缩和加速匹配技术,提出了基于位图的布尔匹配算法。 针对当前布尔表达式匹配算法中遍历次数多的问题,本文研究了布尔匹配的空间压缩和加速匹配技术,提出了基于位图的布尔表达式系统。利用位图结构存储布尔表达式,并对文本项进行一次查询就可命中相对应的布尔表达式。采用位图技术,即bitmap,用一个比特位来标记某个元素对应的值,采用比特作为单位存储数据,可大大节省存储空间。同时在算法实现时,将算法扩展至多线程模式,进一步加速了文本的匹配速度、提高了查询效率。算法的时间复杂度为O(r+M)。当布尔表达式的个数r较少时,算法效率非常高。实验结果表明,该方法能够有效地降低布尔表达式匹配的存储空间,并且具有线性的扩展能力。 (3)研究了一类大规模(百万级别)URL实时匹配问题,提出了一种基于数据去重的URL匹配算法。 针对大规模(千万级)URL过滤,现有算法存在存储空间大或匹配速度低的问题,是制约URL过滤的一个关键瓶颈。通过对在线URL数据流量采样统计分析可知,待匹配的URL数据存在大量重复,重复率约在50%-80%之间。通常URL数据量越大,重复率越高,当前URL过滤中存在着大量的重复性工作。针对这一现象,本文提出了一种基于数据去重的URL过滤算法。该算法对读入的URL数据,利用哈希表构造URL缓存池,将首次访问的非重复URL进行缓存。对新读入的URL依据之前构造的URL缓存池实施数据去重。在合成数据集和真实数据集上的测试结果表明,该算法具有较高的匹配速度和消耗较少的存储空间,能够有效地支持大规模URL的实时匹配。与实施去重策略之前的算法相比,本文算法的匹配速度有显著的提高。在真实数据集上,效果提高更加明显,最高达60%。由于数据去重策略的构造,使得算法更加适应超大规模URL在线实时匹配的要求,可处理的数据规模达到千万级。本文提出的基于数据去重的URL过滤算法,是建立在传统串匹配算法之上的一种通用模式,即底层匹配引擎中的模式串匹配算法可以是任意一种精确串匹配算法。 本文的上述研究内容和结果不仅在精确串匹配技术的理论方面具有一定的参考价值,对于设计实现高性能模式串匹配引擎和网络内容过滤系统也具有一定的借鉴意义。