传统入侵检测的不足
随着Internet的不断发展,网络安全已经逐渐成为人们越来越关心的问题,而入侵检测系统是继防火墙之后逐渐兴起的防护手段之一,也越来越受广大学者和工程人员的重视。
传统的入侵检测方法分为两种:基于误用检测(misused-based)方法和基于异常检测(anomaly-based)方法。前者需要攻击样本,通过描述每一种攻击的特殊模式来检测。该方法的查准率很高,并且可提供详细的攻击类型和说明,是目前入侵检测商业产品中使用的主要方法。然而经过长时间的研究和应用,该方法也暴露出一定的弱点,由于基于特征的入侵检测系统是依靠人为的预先设定报警规则来实现,所以在面对不断变化的网络攻击时有其本身固有的缺陷,比如,利用这种方法时需要维护一个昂贵的攻击模式库、只能检测已知的攻击等。另一方面,攻击者可以通过修改自己的攻击特征模式来隐藏自己的行为,而且有些攻击方法根本没有特定的攻击模式。异常检测方法主要针对解决误用检测方法所面临的问题。因而本文主要探讨的是基于网络流量异常的入侵检测方法。
基于流量异常的检测方法有很多,较常用的有基于域值的检测方法,基于统计的检测方法,基于小波的检测方法,基于马尔可夫等随机过程模型的方法和一些基于机器学习、数据挖掘和神经网络等检测方法,但是这些方法主要存在以下问题。
(1)报警意义不明确:由于上述入侵检测方法只检测了网络流量中的一种或几种特征向量,而且选取的特征向量没有特定的攻击含义,因而检测系统报警时只知网络中某些特征向量出现了异常,但是不能判断出现了什么样的攻击。
(2)由于Internet是没有集中管理的多个管理域的互联网络,但是入侵检测要求各个检测系统之间是协同运行的,因而作为协同运行的主要内容的共享数据的提供就显得非常重要。
(3)可扩展性较差:由于现有的异常检测系统大多采用一种或几种单一的网络特征向量作为学习和判断的依据,对网络流量的异常描述较为单薄;其次在入侵检测系统协同运行中网络特征向量选取得较少就可能会影响检测系统的可扩展性。
基于会话的保存状态信息的异常检测方法由于现有网络流量的不断变大将逐步受到限制。因而在DARPA1998年总结出的判断每一个正常与异常TCP/IP连接的41个特征向量的实时使用就变得越来越难以实现。
针对以上问题本文提出了一种较为通用的基于网络流量模型的异常检测方法。该方法采用无状态保留的方式,采用基本特征向量来描述网络流量实时的运行状态,并且利用基于攻击特点的流量特征组合使报警的意义更加明确。同时鉴于流量基本特征数据的大小以及安全性等特点,也为各个管理域之间的异常检测信息的交流提供了一个较为通用的平台。该基于网络流量的异常检测方法已经实际运用在清华大学校园网出口监测点上,取得了比较显著的检测结果。
基于网络流量进行异常检测的原理
本文中的异常检测是基于将网络流量特征向量分层划分的思想实现的。将流量特征分为两个层次:基本特征集合和组合特征集合。其中基本特征集合是实时从网络流量中提取的一些网络流量的基本特征数据,比如流量的大小、包长的信息、协议的信息、端口流量的信息、TCP标志位的信息等。这些基本特征比较详细地描述了网络流量的运行状态。
组合特征集合是可以根据实际需要实时改变设置的。针对某种特定的攻击行为,将涉及该攻击行为的基本特征的子集作为描述该种攻击行为的特征。比如对于SYN FLOOD攻击,组合特征就可以选取pkts/s、平均包长、SYN包的个数等信息。利用以往基本特征集合的数据对该种攻击行为的特征进行学习和训练,就可以实时得到该攻击行为组合特征的正常和异常模型。用此模型就可以实时地对网络上该种攻击行为进行检测。
另一方面对于已知攻击种类和行为的数据集进行学习还能对人为选取的攻击组合特征进行优化,使之更能反映该攻击行为的特点。由于数据集是通过对网络流量实时提取获得的,真实地反映了网络的实时状态,因而通过共享该数据集可以为网络中不同管理域之间异常检测系统提供一个协同运行和控制的平台。