传统入侵检测的不足
传统的入侵检测方法分为两种:基于误用检测(misused-based)方法和基于异常检测(anomaly-based)方法。前者需要攻击样本,通过描述每一种攻击的特殊模式来检测。该方法的查准率很高,并且可提供详细的攻击类型和说明,是目前入侵检测商业产品中使用的主要方法。然而经过长时间的研究和应用,该方法也暴露出一定的弱点,由于基于特征的入侵检测系统是依靠人为的预先设定报警规则来实现,所以在面对不断变化的网络攻击时有其本身固有的缺陷,比如,利用这种方法时需要维护一个昂贵的攻击模式库、只能检测已知的攻击等。另一方面,攻击者可以通过修改自己的攻击特征模式来隐藏自己的行为,而且有些攻击方法根本没有特定的攻击模式。异常检测方法主要针对解决误用检测方法所面临的问题。因而本文主要探讨的是基于网络流量异常的入侵检测方法。
基于流量异常的检测方法有很多,较常用的有基于域值的检测方法,基于统计的检测方法,基于小波的检测方法,基于马尔可夫等随机过程模型的方法和一些基于机器学习、数据挖掘和神经网络等检测方法,但是这些方法主要存在以下问题。
(1)报警意义不明确:由于上述入侵检测方法只检测了网络流量中的一种或几种特征向量,而且选取的特征向量没有特定的攻击含义,因而检测系统报警时只知网络中某些特征向量出现了异常,但是不能判断出现了什么样的攻击。
(2)由于Internet是没有集中管理的多个管理域的互联网络,但是入侵检测要求各个检测系统之间是协同运行的,因而作为协同运行的主要内容的共享数据的提供就显得非常重要。
(3)可扩展性较差:由于现有的异常检测系统大多采用一种或几种单一的网络特征向量作为学习和判断的依据,对网络流量的异常描述较为单薄;其次在入侵检测系统协同运行中网络特征向量选取得较少就可能会影响检测系统的可扩展性。
基于会话的保存状态信息的异常检测方法由于现有网络流量的不断变大将逐步受到限制。因而在DARPA1998年总结出的判断每一个正常与异常TCP/IP连接的41个特征向量的实时使用就变得越来越难以实现。
针对以上问题本文提出了一种较为通用的基于网络流量模型的异常检测方法。该方法采用无状态保留的方式,采用基本特征向量来描述网络流量实时的运行状态,并且利用基于攻击特点的流量特征组合使报警的意义更加明确。同时鉴于流量基本特征数据的大小以及安全性等特点,也为各个管理域之间的异常检测信息的交流提供了一个较为通用的平台。该基于网络流量的异常检测方法已经实际运用在清华大学校园网出口监测点上,取得了比较显著的检测结果。
基于网络流量进行异常检测的原理
本文中的异常检测是基于将网络流量特征向量分层划分的思想实现的。将流量特征分为两个层次:基本特征集合和组合特征集合。其中基本特征集合是实时从网络流量中提取的一些网络流量的基本特征数据,比如流量的大小、包长的信息、协议的信息、端口流量的信息、TCP标志位的信息等。这些基本特征比较详细地描述了网络流量的运行状态。
组合特征集合是可以根据实际需要实时改变设置的。针对某种特定的攻击行为,将涉及该攻击行为的基本特征的子集作为描述该种攻击行为的特征。比如对于 SYN FLOOD攻击,组合特征就可以选取pkts/s、平均包长、SYN包的个数等信息。利用以往基本特征集合的数据对该种攻击行为的特征进行学习和训练,就可以实时得到该攻击行为组合特征的正常和异常模型。用此模型就可以实时地对网络上该种攻击行为进行检测。
另一方面对于已知攻击种类和行为的数据集进行学习还能对人为选取的攻击组合特征进行优化,使之更能反映该攻击行为的特点。由于数据集是通过对网络流量实时提取获得的,真实地反映了网络的实时状态,因而通过共享该数据集可以为网络中不同管理域之间异常检测系统提供一个协同运行和控制的平台。
网络流量基本特征数据集是整个网络流量异常算法的基础。为了保证该算法的可靠性和比较强的可扩展性,就要求基本特征能够比较完备地描述网络流量的特征。但同时由于网络的异常检测有实时性的要求,以及考虑到现有计算机的计算能力等问题,基本特征的选取不能对所有流量信息进行提取,而必须对之进行选择。
除此以外在基本特征集中还预留了大约100个保留项,以便将来的扩展之需。由这些保留项以及上述各个提取的内容共同组成了一个有256项的基本特征集。该基本特征集有以下几方面的特点:
(1)比较详细地涵盖了现有网络中主要流量的各种统计信息。
(2)不含敏感信息,比如IP地址,包内容信息等。
(3)其存储空间完全有限,如果每隔30秒统计一次,一个月大约有30×24×60×2=86400条记录,每条记录由256个数字组成,如按照文本格式保存大约是2048个字节。因而按照这种方式保存一年的数据所需空间大约是 2048×8×86400×12=16986,931200bits,这大约是17GB的空间。
实验过程
本试验采用的试验数据为1999 DARPA提供的试验数据。其中第一周由于不含攻击,因而可以作为训练数据进行训练,第二周的数据作为检测数据。
我们选取其中的MailBomb和Neptune作为试验检测的项目。将试验数据按五分钟分割成各个数据点,我们可以得到1280个数据点。
其中L1~L5表示的是包长分布在32~63、64~127、128~255、256~511和512~1023各个段落中的包的个数。
在整个基于网络流量模型的异常检测框架下,能比较方便地通过组合不同的基础特征实现对不同种类的异常攻击的检测,并能取得比较好的检测效果。同时我们还可以看到,针对某种攻击如果选取不同的特征组合,其检测的结果之间还是有区别的,选取过程中如果缺少必要的基础特征将导致漏报率的变大,而选取过多的无关基础特征则会降低检测误报率的性能。这就要求我们在选取标示某种攻击的特征组合时必须在必要基础特征的基础上根据检测的网络的实际流量模型,对特征组合进行具体的优化。
方法评测
基于网络流量的异常检测方法通过组合不同的基础特征能比较灵活地检测不同的网络攻击,同时每种组合特征又标示着某种攻击,所以能使网络流量异常的报警更具实际意义。
基于网络流量的异常检测方法提供了一个压缩比较高且能比较全面反映实际网络流量的基础特征,这为将来的异常检测提供了一个较好的数据平台,具有比较好的可扩展性,同时该数据集还能为不同域之间异常检测信息的交互提供一种可能。
【编辑推荐】