1概述
基于互联网的新技术、新应用模式及需求,为网络的管理带来了挑战:(1)关键应用得不到保障,OA, ERP等关键业务与BT,QQ等争夺有限的广域网资源;(2)网络中存在大量不安全因素,据CNCERT/CC获得的数据表明,2006年上半年约有14万台中国大陆主机感染过Beagle和Slammer蠕虫;(3)传统流量分析方法已无法有效地应对新的网络技术、动态端口和多会话等应用,使得传统的基于端口的流量监控方法失去了作用。
如何有效地掌握网络运行状态、合理分配网络资源,成为网络管理者们的当务之急。针对以上需求,作者设计并实现了一套网络应用流分析与风险评估系统(Traffic Analysis and Risk Assessment System, TARAS)。
当前,网络流量异常监测主要基于TCP/IP协议。文献[5]提出使用基于协议签名的方法识别应用层协议。本系统采用了应用层协议签名的流量分析技术,这是目前应用流分析最新技术。然而,简单的流量分析并不能确定网络运行状态是否安全。因此,在流量分析的基础上,本文提出了应用流风险评估模型。该模型使用流量分组技术从定量和定性两方面对应用流进行风险评估,使网络运行状态安全与杏这个不确定性问题得到定性评估,这是当前网络管理领域需要的。
2流量分析模型
目前应用流识别技术有很多,本文提出的流量识别方法是对Subhabrata Sen提出的应用协议特征方法的改进。针对种类繁多的应用层协议采用了两级匹配结构,提高效率。
应用识别模块在Linux环境下使用Libpcap开发库,通过旁路监听的方式实现。在设计的时候考虑到数据报文处理的效率,采用了类似于Linux下的NetFilter框架的设计方法,结构见图1。
采取上述流量识别框架的优点:(1)在对TCP报文头的查找中使用了哈希散列算法,提高了效率;(2)借鉴状态防火墙的技术,使用面向流(flow)的识别技术,对每个TCP连接的只分析识别前10个报文,对于该连接后续的数据报文则直接查找哈希表进行分类,这样避免了分析每个报文带来的效率瓶颈;(3)模式匹配模块的设计使得可扩展性较好。
在匹配模块设计过程中,笔者发现如果所有的协议都按照基于协议特征的方式匹配,那么随着协议数量的增大,效率又会成为一个需要解决的问题。
因此,在设计应用流识别模块时,笔者首先考虑到传输层端口与网络应用流之间的联系,虽然两者之间没有绝对固定的对应关系,但是它们之间存在着制约,比如:QQ协议的服务器端口基本不会出现在80, 8000, 4000以外的端口;HTTP协议基本不会出现在80, 443, 8080以外的端口等,因此,本文在流量分析过程中首先将一部分固定端口的协议使用端口散列判断进行预分类,提高匹配效率。
对于端口不固定的应用流识别,采用两级的结构。将最近经常检测到的业务流量放在常用流量识别子模块里面,这样可以提高查找的速度。另外,不同的网络环境所常用的网络应用流也不同,因此,也没有必要在协议特征库中大范围查找。两级查询匹配保证了模型对网络环境的自适应性,它能够随着网络环境的改变以及网络应用的变化而改变自己的查询策略,但不降低匹配效率。应用流识别子模块的设计具体结构见图2。
3风险评估模型
本文采用基于流量分组技术的风险评估方法。流量分组的目的是为流量的安全评估提供数据。
3.1应用流的分组
网络应用种类多、变化频度高,这给应用流的评估带来了麻烦,如果要综合考虑每一种应用流对网络带来的影响,显然工作量是难以完成的。因此,本文引入应用流分组的概念。应用流分组的目的是从网络环境和安全角度的考虑,将识别后的流量进行归类分组。笔者在长期实验过程中,根据应用的重要性、对网络的占用率、对网络的威胁性等因素得到一个较为合理的分组规则,即将网络流量分为:关键业务,传统流量,P2P及流媒体,攻击流,其他5类。应用流分组确定了流量评估的维度,这样有利于提高评估的效率。表1列举了部分应用流的分组。
应用流分组模块有2个功能。首先是将检测到的各种应用流量按照表1中的分组归类,并计算各分组应用流量的大小、连接数目、通信主机数目3个方面的信息,并以一定的时间周期向流量安全评估模块传送数据。另外一个是在安全事件出现时,向安全响应模块提供异常应用流名称和其他相关信息。应用流分组模块的输入是各应用流的流量大小,而输出有2个:
(1)整个网络的流量分布矩阵。
(2)异常主机流量分组中的成份。
笔者引入流量矩阵的概念。流量矩阵A的数学定义为 教研论文发表
其中,aij表示第i台主机的第j组流量的大小,aij的单位为实际流量的单位大小。流量矩阵反映了网络中信息流动的整体情况。
由于TCP/IP协议的广泛应用,网络流量中的绝大部分使用基于TCP的传输层协议,因此传输层的网络连接数也在一定程度上反映了网络流量的情况。定义网络连接数矩阵为
其中,Lij表示第i台主机第J组应用流的网络连接数。
在网络通信过程中,每个流量分组的通信主机数量具有参考价值,在此引入通信主机数量矩阵,数学描述为
其中,hij为表示某一分组流量的通信主机数目。
另外,流量分组模块在接收到安全响应模块的请求时,会向其发送该异常网络节点的应用流类别信息。
信息内容为:主机IP地址,主机应用流分组名,应用流名称列表。
3.2应用流的风险评估 教研论文发表
网络流量的特征是网络安全性的重要表现。本节主要描述网络用户流量的安全评估过程和机制。流量的安全评估实际上是网络风险评估过程的一部分。风险评估的方法有定量评估、定性评估和定性与定量结合的评估方法。在此本文借鉴风险评估定性与定量结合的方法设计流量的安全评估子模型。
本节首先确定该模型的评估的对象、指标和目标,评估的具体方法如下:
(1)流量安全评估的对象是每个网络节点的应用流分组。
(2)评估对象的定量指标分别是网络流量大小、网络连接数和网络通信主机数。
(3)评价的目标是确定各应用流的安全性。
(4)评估方法是以先定量后定性的方法为原则,具体方法如下:
1)制定各分组流量的安全评估规则,为量化评估提供依据。
2)参照安全评估规则,根据3个量化指标评价网络用户流量的安全性,并得到安全评分。
3)根据安全性评价集,将量化后的安全评分指标定性化。另外,对于攻击流进行特别评估,并且当出现攻击流时,攻击流安全等级代表主机安全等级。
安全评估子模型的结构如图3所示。
3.2.1各分组流量的安全定量评价
对于不同分组的通信行为和流量特点,本模块采用分指标量化评估的方法进行安全评估。表2中各指标的安全性划分是根据实验得出的结论。