APP下载

一种基于攻击特征描述的网络入侵检测模型

2010-10-25刘庆俞尹才荣

关键词:特征描述数据流数据包

刘庆俞, 叶 震, 尹才荣

(合肥工业大学 计算机与信息学院,安徽合肥 230009)

0 引 言

随着网络应用的日益普及,流经网络的信息流越来越多,各种网络入侵也随之增长。自文献[1]提出第一个入侵检测系统模型以来,入侵检测技术得到快速发展,成为继防火墙之后重要的一种安全技术。面对各种类型的网络入侵和高速流,传统的网络入侵检测方法变得力不从心。为了提高网络入侵检测的效率,减少漏报,本文结合集群负载均衡和攻击描述技术,利用二者的优点,提出一个新模型。

1 基于网络的入侵检测系统

入侵检测技术根据待检数据来源的不同可分为2类,分别是基于主机的入侵检测系统(Hostbased Intrusion Detection System,简称 HIDS)和基于网络的入侵检测系统(Network-based Intrusion Detection System,简称 NIDS)。基于主机的入侵检测方法作为最初的研究重点,已经取得一定发展,本文主要研究后者。

网络入侵检测系统以被检测网段的所有数据包为检测对象,通过把网卡设置为混杂模式,来抓取流经网卡的所有数据包。然后数据包送到检测引擎,通过相关方法的分析,如神经网络技术、模式匹配技术及免疫算法等来辨别数据流是否恶意的,从而做出相应反应,如报警、丢弃或者记录数据包。整个系统检测流程,如图1所示。

图1 入侵检测流程

图1中,数据分析是整个入侵检测的核心部分,分析算法的优劣直接影响到入侵检测系统的效率高低。由于模式匹配技术的发展相对成熟,现有的大多数商用入侵检测技术都采用匹配检测的方法。Snort[2]作为开源软件,就是运用此检测方法的典型,系统维护一个一定规模的入侵特征库,对数据包进行攻击特征匹配,如匹配某条检测规则就触发告警。显然,入侵检测规则的数量和待检数据包的数量对检测速度有着非常大的影响,本文以Snort系统为例做演示。

2 网络攻击特征的描述

随着网路资源的丰富,各种攻击工具变得更容易获得,从而网络上出现了各种类型的攻击。对于此,人们提出了很多种攻击分类的方法[3],如基于应用类型的攻击分类方法等。各种分类方法的提出,无非是使人们更好地认识攻击,从而更好地去预防和检测攻击。以文献[2]所提系统为例,为了检测某种网络攻击,首先必须去描述它,从来自网络的大量数据包中提取出攻击特征。

特征是对已知的攻击行为的描述,特征必须能够准确地描述某一种或一类攻击行为的特点。理想情况下,通过特征应该可以发现恶意攻击或攻击企图,同时不会对正常的网络流量产生影响。通过对攻击分类方法的研究,发现有以下几种攻击特征描述方法:

(1)从基本网络协议特征方面(如包头特征)描述攻击。TCP/IP协议作为实际的网络互连协议,由于其在设计之初未充分考虑到安全问题,使得黑客钻了协议的漏洞。黑客通过对包头各位属性值的设置达到某种攻击的企图。如Land攻击就是使用相同的IP和端口作为源地址和目的地址。因此,某些数据包头的特殊字段可以用来描述网络攻击特征。

(2)从负载内容描述攻击。有些攻击是基于内容实现的,仅检查数据包头是检测不出来的。此类的攻击检测时不仅要解析IP、TCP及 UDP等类型数据包头,也要提取包的负载数据,才能发现一些攻击代码。如对于攻击模式“GET/cgibin/./phf”,就是对负载数据进行检测。

(3)从网络流量特征描述攻击。有些网络攻击不是通过发送几个数据包就能够完成的,而是通过发送一定数量的数据包才能实现,这就需要分析一段时间内的网络流量来描述这些攻击行为的攻击特征。最典型的是DDOS攻击和端口扫描攻击,此类攻击需跨越多个数据流才能完成。

根据上述3种攻击描述方法,把Snort中入侵检测规则分为:包头检测规则、负载检测规则和跨流检测规则。

3 基于攻击特征描述的网络检测模型

面对高速的网络数据流,人们除了在改进检测算法方面给出很多应对措施[4],在体系结构方面也给出了一些方案。利用后端的低速设备组成并行集群系统[5],就是一种很好的方法。通过把高速的数据流均衡地分配到多台检测节点,使每个节点都可以在接受的能力范围内工作,来解决丢包问题。结合上述3种攻击特征描述方法,提出系统模型如图2所示。

图2 基于攻击特征描述的网络入侵检测模型

3.1 分层检测

模型分为3个层次,每一层使用不同的入侵检测规则进行匹配检测。数据包到达后先进行包头规则检测,然后分流,再对各支流分别实施跨数据流的规则检测,最后是负载规则检测。

数据包匹配了则告警,丢弃该数据包;若没有匹配(前两层),则数据包传到下面一层,继续检测。3个层次分别对应使用上面的3种入侵检测规则,各自能够检测出恶意的数据包,结合起来完成整个入侵检测过程。

3.2 负载均衡

在入侵检测的过程中,检测节点由于处理速度跟不上前端数据流,而产生丢包,可能漏掉可疑的数据,从而对系统和网络造成危害。将高速数据按照某种策略进行分流,再采用均衡分配技术由多台低速设备联合检测可以在一定程度上解决此问题。

实现数据分流可以有多种策略[6],可以按应用层协议分类,如按HT TP、FTP协议等分流;也可以按 Snort检测规则类型分类,如按 TCP、UDP及ICMP等分流。在现实网络环境中,各种类型的网络流量可能存在较大差别,如H ttp流量很大,则再对此类大的网络支流运用负载均衡技术。根据各节点的性能和负载的差异[7],各节点可以接收相应比例的数据流,不至于使有的节点重载,而有的节点轻载或处于空闲状态,从而提高整体资源利用率,减少数据检测的时间。

考虑到系统是用于在大量数据包中检测入侵,在负载分配的时候不可能获得绝对的均衡,如果以单个数据包为单位分配就不可行。为了确保检测的准确性,必须尽量使属于同一个攻击的数据包发到后端同一个检测设备上。以一个TCP流为一个基本分配粒度,用(源IP、源 Port、目的IP及目的Port)来惟一标识一个数据流。在数据包分配过程中,采用动态反馈的方法,根据后端检测设备实际负载情况来分配数据流,如以链接数目为负载指标,将新来的数据流分配到链接数目最少的检测设备上。动态负载均衡很好地解决了在网络突发数据流时对数据包的控制问题,UDP包处理类似。

3.3 模型检测过程

(1)包头规则检测。在TCP/IP网络体系结构中,网络数据包是高度规则结构化的。数据包头的各位属性是确定的,因此对于包头的解析和规则检测变得相对快速和简单。

根据文献[8],在网络中可能高达60%的数据包是40~44 B的带各种标志位的空报文。在高速数据分流之前调用包头检测规则进行检测,过滤掉一部分数据包,减轻后续匹配检测的负担。在Snort 2.0.0版本中,据统计有165条只需要数据包头部检测的规则。

对于包头规则的检测有以下几种情形:①包头规则匹配,则告警,丢弃该包,不再传给后端节点。②包头规则不匹配,该包不含有负载数据,且不是后续连接控制包,则丢弃,不再传给后端节点。③包头规则不匹配,该包不含有负载数据,但是后续连接控制包,则传到后端节点。④包头规则不匹配,该包含有负载数据,则传给后端节点继续检测。

此处的连接控制包指在网络交互过程中的控制类型的包,如TCP 3次握手中的ACK包等,在后续检测过程中起着作用。

工作流程,如图3所示。

图3 包头规则检测流程

(2)跨流规则检测。前端数据经过分流以后,如按应用层协议分类有HT TP流,如FTP流等支流,此时各支流只包含同一种类型的数据包,给检测DDOS和扫描攻击等提供了可能。此时分流速度依然可能超过后段节点处理速度,考虑运用负载均衡策略再次细化数据流。以TCP流为分配单位,建立一张分配表,分别有源IP、源Port、目的IP、目的Port和目标检测节点等几项属性。对新来的包进行解析并对照此表,若已存在对应的项,则发送到相应Snort上;若是一个新链接,则按照节点负载最小分配原则发送到后端Snort上。

在分析跨越多个数据流的网络入侵时,如DDOS和扫描攻击,发现此类攻击有一个共同特点:在短时间内聚集大量的相似链接,或者发往同一个目的IP,或者来自同一个IP等。仅靠后端检测设备检测单个数据流是检测不出来的。结合上面分配表,对各属性进行统计计数,如果在一个小的时间段内出现具有上述特点的大量链接,超过某个阈值,就视为可疑流量,调用相应DDOS或者扫描检测的算法进行深入的检测分析。在检测出是恶意攻击后,阻断此类数据包进入后端检测设备,并产生告警。

(3)负载规则检测。以Snort系统作为后端的检测设备,对进入的数据进行解析和规则匹配检测。经过分流的数据是属于同一类型的网络包,因此各Snort只是需要维护相应的检测规则,而剔除其他类型的规则和前两层使用过的规则,大大减轻了系统匹配检测时的负担。此时的入侵检测,不仅要解析包头属性,还要对负载内容进行检测,检测出入侵则产生告警等。

4 性能测试

在Snort系统中,采用匹配技术检测入侵,其工作量相当大。计算量=(攻击特征字节数)×(网络数据包字节数)×(每秒的数据包数)×(特征库的攻击特征数)。假设一个攻击特征有20字节,平均数据包大小为300字节,每秒20 000个数据包,特征库有2 000个攻击特征,每秒就需要有2.4×1011字节的计算量。本文以特征库的攻击特征数和网络数据包数为解决问题的出发点,进行模型设计。在考虑攻击特征描述方法的基础上,充分利用分布式体系结构的优点,对攻击进行分层检测,逐层过滤数据包,分割攻击特征库和细化数据流,以后端低速设备很好地解决了高速流的检测问题。

系统测试采用 Snort2.0.0,测试数据使用MIT林肯实验室的DARPA 1999IDS测试数据集[9]的第4个星期周二的数据,以TCPREPLAY为重发工具。测试主机为Inter奔腾4处理器,1.79 GHz,内存为512 M。对测试数据分别用带有头部检测规则的Snort和常规Snort检测,进行3次测试,取其平均值。

检测时间对比,如图4所示。

图4 检测时间对比

图4中实验结果表明,带有头部规则检测的Snort可以减少运行时间,提高检测速度,在一定程度上提高检测效率。

当TCPREPLAY以不同速度发送测试数据时,由于数据流和检测规则相同,报警数则反应了入侵检测系统丢包的状况。

图5所示表明当发送数据包速度接近100 Mbps时,常规Snort报警数急剧下降。报警数越少,说明丢包越严重,相对准确率就低,反之则准确率就高,检测入侵的效率就高。

图5 报警数对比

5 结束语

在目前已出现的入侵检测系统中,模式匹配技术是运用比较多的一种方法,但其带来的计算量大也是其固有的缺点。本文综合利用了分层检测和分布式负载均衡方法,很好地提高了网络入侵检测的效率。

[1] Denning D E.An intrusion-detection model[J].IEEE Transactions on Software Engineering,1987,13(2):222-232.

[2] Roesch M.Sno rt-lightweight intrusion detection for networks[EB/OL].http://www.snort.org,1999-05-04.

[3] 刘欣然.一种新型网络攻击分类体系[J].通信学报,2006,27(2):160-167.

[4] 杨 武,方滨兴,云晓春,等.入侵检测系统中高效模式匹配算法的研究[J].计算机工程,2004,30(13):92-94.

[5] Andreolini M,Casolari S,Colajanni M,et al.Dynamic load balancing for network intrusion detection sy stems based on distributed architectures[C]//A rlat J,Livadas C,Atig hetchi M.Six th IEEE International Symposium on Network Computing and Applications.Washing ton:IEEE Computer Society,2007:153-160.

[6] 彭 芸,刘 琼.Internet流分类方法的比较研究[J].计算机科学,2007,34(8):58-61.

[7] 蒋文保,郝 双,戴一奇,等.高速网络入侵检测系统负载均衡策略与算法分析[J].清华大学学报(自然科学版),2006,46(1):106-110.

[8] 蒋卫华.网络安全检测与协同控制技术[M].北京:机械工业出版社,2008:156-157.

[9] Graf I,Cunningham R.Results of DARPA 1998 offline intrusion detection evaluation[EB/OL].http://ideval.ll.mit.edu/results-html-dir,1999-03-20.

猜你喜欢

特征描述数据流数据包
船舶尾流图像的数字化处理和特征描述技术
基于Jpcap的网络数据包的监听与分析
汽车维修数据流基础(上)
汽车维修数据流基础(下)
SmartSniff
目标鲁棒识别的抗旋转HDO 局部特征描述
用于三维点云表示的扩展点特征直方图算法*
基于数据流聚类的多目标跟踪算法
基于差异的图像特征描述及其在绝缘子识别中的应用
北医三院 数据流疏通就诊量