论文部分内容阅读
面向应用层的细粒度网络协议识别技术当前被广泛应用于上网行为管理、网络流量分析与控制和下一代防火墙等多种网络安全应用场景中,而随着网络应用数量的增长,待识别协议特征集合的规模也急剧增加,因此如何在保证协议识别准确率的前提下,对高速网络中的大量应用层协议进行细粒度识别,是当前协议识别领域研究的一个主要方向。 本文针对在构造正则表达式协议规则库过程中随着协议特征数量的增多而产生的状态图爆炸问题,对当前主流的正则表达式协议识别算法的匹配原理以及产生爆炸问题的原因进行研究,并对对高速网络协议的应用层协议特征进行提取和分析总结,设计并实现了基于改进AC算法的协议识别算法,并对算法进行了验证。本文的主要研究内容及创新如下: (1)提取并分析总结了100个典型的应用层协议所具有的规律和特点。通过wireshark工具对100个各类型的网络应用行为进行抓包分析,对不同场景下抓取的数据包进行对比得出正则表达式形式的应用层协议特征,对协议特征进行归纳总结,并与普通正则表达式进行对比说明正则协议特征所独具的特点。 (2)提出并详细设计基于改进AC算法的的正则协议特征匹配算法。在对AC算法原理进行分析的基础上,提出了基于两次改进的AC算法进行正则协议识别的算法整体结构,并对改进的协议规则规构建算法和协议匹配算法进行详细设计。 (3)基于Java语言实现了改进算法并对算法的有效性和正确性进行了评测和验证。通过Java语言对算法进行实现并通过数学方法对算法整体的时间空间复杂度进行分析,最后通过对比使用改进算法和基于D2FA的协议识别算法对100个协议特征进行协议规则库构建的结果,验证了算法可以有效的解决大规模正则协议进行规则库构建时面临的爆炸问题。 本文通过结合应用的具体场景对正则表达式的匹配提出新的思路,使用改进的字符串匹配算法完成正则协议特征的匹配,有效解决了面对大规模协议特征时,协议规则库无法构建的难题,为同类问题的分析提供新的思路。