论文部分内容阅读
随着网络技术的高速发展,网络带宽不断增加,网络协议层出不穷,对于网络安全需求日益明显。在此环境下对网络流量识别和分类提出需求。网络流量识别可以用来监测网络运行情况、检测网络入侵、分析网络应用构成、限制网络应用等功能。随着新协议的大量出现和P2P技术的广泛使用,网络应用不再严格遵循特定应用使用特定端口的规则。在此背景下传统基于端口特征的网络流量分类方法变得无能为力。为了准确识别网络流量,人们提出了对网络数据包载荷进行深度检测分析的识别方法。该方法首先对网络数据进行流量恢复,然后提取数据流中的应用层数据载荷。通过应用层数据载荷与各种网络协议规则的匹配,确定该网络数据流的协议类型。该方法被称作深度包检测(Deep Packet Inspection, DPI)。由于正则表达式比精确字符串表达能力更强,在深度包检测方法中,各种网络协议规则多用正则表达式来表示。虽然深度包检测技术对于网络数据流的识别准确性较高,但其识别速度较低,不能满足高速网络带宽环境下识别的要求。在传统深度包检测匹配引擎中,正则表达式规则采用NFA模式来实现,匹配时存在着大量的回溯现象,因而匹配速度较低。为了提高匹配速度可以使用确定型有穷自动机(DFA)方式来实现正则表达式规则。该方法不存在回溯现象且可以通过一次扫描匹配多条正则表达式规则。但确定型有穷自动机规模会随着规则的条数的增加而呈指数倍上升。当规则条数较多时,该引擎甚至由于规模较大而无法实现。本文根据网络上各种网络应用流量分布不均衡这一特点,提出了对网络协议加权设置优先级的识别方法,并提出了具体的加权分组算法。该方法根据协议流量在网络上分布比例的不同,通过分组算法对网络协议进行分组、设置不同的优先级。对于高优先级的网络协议组,采用DFA的形式来实现,对于大量的低优先级的协议组采用混合自动机(Hybrid-FA)的方式来实现。由于DFA分组内规则的条数较少,则与之对应的引擎规模较小。同时由于DFA分组对应的网络流量比重较大,因而大量的未知数据流量经过DFA部分就可以被识别出来。在混合自动机分组内,由于混合自动机使用了DFA头部,则回溯匹配大量减少。该算法可以使网络数据流识别引擎在维持一个较小规模的基础上,大大提高识别速度。通过对实验结果分析可知,该算法相比于传统识别引擎,匹配速度可以提高29倍左右。以本文所提出的加速算法为核心,我们构造了一个网络流量识别系统。该系统分为数据镜像模块,数据识别模块,数据库模块和显示交互模块四部分。该系统通过镜像模块获得网络内的数据,并将镜像数据传送到网络系统的核心模块:网络数据流识别模块。识别模块将识别结果写入数据库模块供显示交互模块使用。系统显示交互模块通过对数据库的操作可以将网络流量识别结果和网络运行情况直观展现给用户。