论文部分内容阅读
互联网已经成为人们日常生活中不可或缺的一个部分。伴随而来的是日趋猖獗的网络犯罪对网络节点上主机的信息安全的威胁。出于不同的目的,网络使用者可以利用一定的技术或者社会手段,非法进入个人主机、盗取个人账户密码甚至是对网站进行协作攻击。建立一个坚固的预防、阻断网络犯罪的安全体系至关重要。入侵检测系统就是网络安全体系中不可或缺的重要组组成部分,其主要处理对象就是来自网络的数据包。入侵检测系统会对网络数据包和已知的数据库进行比对,根据已掌握的数据将数据包中的信息归类为入侵行为或者安全行为。针对入侵检测系统监测到的入侵行为,还可以将这些入侵告警进行分析进一步挖掘告警之间的逻辑联系,揭示隐含的攻击过程用于定位攻击源或者为后续检测提供知识储备。为了确保能有效地提取网络数据包中的信息需要高效的串匹配算法提供技术支持。然而随着网络技术的发展,各种新的攻击类型也层出不穷,这也使得串匹配自动机需要维护的特征集的规模越来越大,直接降低了入侵检测系统的性能。基于这样的背景,本文的研究目标是构造支持大规模特征集合的串匹配算法,并且能够找到对现有串匹配算法进行速度提升的方法。具体地,本文着重从以下几个方面、不同层次对串匹配的优化方法进行了深入的研究:(1)特征集规模过大导致匹配自动机无法正常构建限制了入侵检测系统能够识别的有害信息的数量。本文特别针对大特征集文本匹配问题,提出一种混合匹配自动机模型。该模型旨在通过长度对特征进行分类,构造更加紧凑的匹配自动机。通过将具有不同长度范围的特征分布到不同的自动机中,可以采用不同的方式对文本进行匹配。本文同时依据混合匹配自动机的结构特点设计了两种独立的文本过滤策略,即逆向状态映射状态转移方法(SLSPM算法)和二级AVL过滤策略(BCHDFA算法)。两种技术分别利用“将‘自动机状态-读入文本信息’的映射关系进行翻转”和“借助AVL树对特征段中特定位置上的双字符文本进行两次过滤”达到减少将文本块与特征块进行验证的次数的目的,从而抑制混合自动机匹配速度降低的趋势。(2)针对URL等长特征,本文结合SSE指令提出了两种专门面向16字节数据的匹配算法SSEHash和RTRIE,这两种算法旨在提高长特征的匹配速度。SSEHash算法中,通过2个指令周期共16个加法运算和一个24比特模运算能够将16字节文本比较均匀地分布到24比特的数据中。由于采用SSE指令进行计算,使得SSEHash算法和常规意义的散列算法相比需要更短的处理时间,能够更快地过滤文本信息。为了解决大规模特征集环境下Wu-Manber类算法的移动距离较短的问题,本文结合SSE指令提出了一种反转自动机RTRIE。该算法提取每条长特征(长度至少16)的16字节前缀中的所有后缀子串的逆向串的指纹,并为每个指纹计算其安全移动距离。该算法和通常的Wu-Manber类算法相比在计算文本指针移动距离时考虑的文本字符数目更多,这样可以尽量避免由于特征规模增加而导致的指针移动距离的降低。(3)为了提高表达式匹配性能消除无用表达式对内存的占用,本文分析了表达式的各种包含关系并提出了BitCount算法的优化算法MaskVeri以及表达式冗余消除算法KPGEM。为了不遗漏任何可能的表达式的包含关系,本文借助表达式中出现的各个短关键字的位置以及关键字的长度等信息限定了各关键字的前驱后继关系。借助这种关系可以定义针对每条表达式的关键字路径图。通过对关键字路径图的遍历KPGEM算法可以分析出当前表达式中隐含的其它表达式,并正确地删除表达式中冗余的关键字或者包含其它表达式的表达式。(4)基于串匹配算法的数据包检测部件是入侵检测系统中的重要功能部件。在此基础上才能对通过串匹配模块获得的网络告警日志进行告警关联分析。本文在最后一部分实现了一个入侵告警事件关联系统。该系统通过对告警中的重复结构进行保持语义的序列最小化处理,使得串匹配算法捕获的告警得到大幅精简。系统中采用D-S证据理论对宏观分析方法(序列挖掘)和微观分析方法(权能提升推理)二者处理的结果进行融合,并通过信任能量计算公式对经过D-S融合后的告警序列进行再处理,从获得的频繁序列中得到更能体现前后关系的攻击告警序列。该系统能够获得有效的攻击场景,并达到自动提取关键攻击序列的目的。