基于协议分析的网络入侵检测系统

2014-10-14 09:27赵洪宋岳雨俭
计算机与现代化 2014年2期
关键词:模式匹配数据包规则

杨 阳,赵洪宋,岳雨俭,杜 源

(安徽理工大学计算机科学与工程学院,安徽 淮南 232001)

0 引言

随着计算机网络应用范围的不断扩大,网络中的不安定因素也越来越凸显,尤其是网络安全问题,已越来越受到人们的重视。计算机网络从出现到现在,发展成果是令人瞩目的,与之相伴的,网络中的攻击手段也层出不穷,越来越呈现多样化[1]。所以,单纯的防火墙的预防性安全策略对抵御网络之中的威胁与入侵已愈发无力,不能满足人们对网络安全防护的需求,因此,入侵检测系统(Intrusion Detection System,IDS[2])就应运而生了[3-4]。目前,入侵检测系统按检测数据的来源分类主要有基于网络的入侵检测系统(Network-based IDS,NIDS)和基于主机的入侵检测系统(Host-based IDS,HIDS)。而入侵检测的方法主要有异常入侵检测(Anomaly Detection)和误用入侵检测(Misuse Detection)两种[5-6]。

现有的网络入侵检测系统就检测方法来看主要分为以下3类。

(1)模式匹配检测法[7-8]。此种模式下,系统的攻击特征数据库中存储有已知攻击的特征规则。当采集到数据包时,系统将数据库中的各个规则读出,并依次用规则中包含的特征串与目标数据包一一进行匹配,当所有特征串都匹配成功,即该数据包中包含这一规则中所有的特征串时,认为该数据包包含这个规则描述的攻击行为,触发对应的入侵事件。

(2)简单协议分析(Simple Protocol Analysis,SPA)检测法[9]中包含一个协议栈模拟分析器,在对数据包进行检测之前先对其进行协议分析,然后采用检测规则对分析后的单个数据包中的协议首部和负载数据部分进行检测。其检测规则根据协议标准和已知的攻击特征构造,存储于系统内部或数据库中。简单协议分析具体区域的检测方法与前面提到的模式匹配模型中的类似,但是其大大减小了检测区域,从而提高了检测效率。

(3)复杂协议分析检测法。其实现方式与简单协议分析检测法很类似,但与之不同的是,复杂协议分析检测在系统中为不同的协议增加了不同的数据结构,用以存储之前若干个数据包的分析信息,从而解决简单协议分析不能实现多数据包综合检测的问题。

然而目前基于协议分析的网络入侵检测系统普遍存在以下缺点(以著名的网络入侵检测系统Snort[10]为例):

(1)模式匹配规则表示不友好,在没有特定知识背景的情况下很难看懂,加大了其与普通用户之间的距离,减小了入侵检测系统的受众面。

(2)模式匹配规则内部各个子规则中的逻辑关系单一,只能是“与”关系,削弱了检测能力。

(3)由于原因(1),用户难以自定义规则。

(4)简单协议检测方法对含有状态的协议(如TCP)的某些入侵类型难以实现。

(5)某些复杂的入侵行为无法用简单的规则描述。

(6)检测所有数据包带来的性能开销。

综合以上问题,在文献[11]的基础上,本文提出了一种改进的NIDS系统设计。

1 相关工作

文献[11]主要介绍了“下一代网络入侵检测系统的研究和实现”,该系统模型分为3个模块:Bottom Module、Middle Module和 Top Module。其中:Bottom Module实现信息的采集功能,Middle Module实现数据包的协议分析和检测,Top Module实现响应和数据存储的功能。

Middle Module是该系统的核心,文献[11]中只是简述了数据包的分析流程,并未详述其检测流程。而且在检测时采用的是单一的Pattern Matching方式,也就是模式匹配法,对许多包含状态的攻击方式无法检测。

总之,该系统有很大的拓展和改进空间。

2 改进的NIDS设计

2.1 总体设计

该系统主要由信息采集模块、信息处理模块和响应模块组成,各个模块的功能介绍如下。

(1)信息采集模块。

实现从数据链路层或*.Cap文件中得到数据包并存入“处理数据包缓存”中,功能主要依靠SharpP-cap[12]提供的函数接口来实现。

(2)信息处理模块。

此模块中包含2个子模块:协议分析模块和数据包检测模块。

①协议分析模块。

完成对数据包的协议栈模拟分析工作,获取相关的协议属性值以供检测模块使用。

②数据包检测模块。

使用内部规则和外部规则对分析后的数据进行入侵检测,包含模式匹配检测、简单协议分析检测和复杂协议分析检测。一旦检测到入侵,则生成对应的入侵事件并存入缓存,供响应模块使用。

(3)响应模块。

对检测出的入侵事件做出响应,比如告警、弹窗、重置TCP链接等。

由于信息采集模块和响应模块与传统NIDS中的功能相近,本文中就不再复述,而是将重点放在信息处理模块中。

2.2 信息处理模块

信息处理模块(如图1所示)由2个部分组成:协议分析模块和检测模块。

图1 信息处理模块

当采集到数据包时,先经过协议分析模块的分析处理,提取出相关协议的属性值并存入缓存,然后由专门的类负责将数据包信息在缓存中的位置转发给检测模块,从而使得模块解耦,之间相互独立,方便并行处理的引入,同时也方便了测试。另一方面,此处协议分析模块由于耦合性低,在后期可以通过增加支持协议的数目来增加系统的检测能力,可拓展性好。如在文献[13]中提到的关于在IPv6环境下的检测,直接新增IPv6的分析文件到系统中即可实现(目前实现的系统中已支持IPv6的分析与检测)。

图2 检测模块

检测模块(如图2所示)中主要包含两个部分:内部规则检测和外部规则检测。当检测模块收到分发来的数据包时,查看内部规则是否启用,若是,则先用内部规则进行检测,若否,则直接使用外部规则进行检测。若是检测出了满足规则的入侵事件,则生成对应的入侵事件类,存入对应缓存由响应模块处理。

2.3 内部规则

内部规则是预先定义在系统源代码中的规则,用以实现对某些复杂攻击的检测,比如Ping of Death、TCP Sync Flood等。其工作流程见图3。

图3 内部规则工作流程

由图3中可以看到,针对不同的协议由不同的规则类负责,每个类中包含一种或多种攻击的检测函数。这样方便对不同的协议,不同的攻击方式采用不同的方法去检测。比如对IPv4的Checksum的检测直接按照相关定义,计算出Checksum的应有值与实际值相比较即可。而在对TCP Sync Flood的检测中,则可以运用状态协议分析的检测手法[9],根据TCP的状态转移分析[14],通过检测一段时间内处于SYN_RCVD状态的链接数目达到检测的目的,十分高效。

2.4 外部规则

外部规则是存储于数据库中的规则,它的设计将简单协议分析检测与模式匹配检测融合到一起,其格式见表1。

表1 外部规则格式

表1中各列含义如下:

(1)RuleName:规则名称。

(2)Protocols:规则涉及的协议。

(3)Message:规则触发时系统给出的提示信息。

(4)Action:响应编号,为32-bit值,各位对应不同含义。响应操作由响应模块处理。

(5)ConditionString:规则的条件串,用来描述入侵事件的特征。

(6)PatternRecognitionOptimization:是否优化。主要针对多模式匹配规则。

通过表1不难发现,这种外部规则的设计具有以下特点:

(1)形式简单,方便理解。这种设计使得用户在增加、删除、修改外部规则时得心应手,同时,对有自定义规则需求的用户来说也提供了方便。

(2)在ConditionString中除了可以使用“=”之外还可以使用“>”,“<”和“@”。其中“@”符号表示包含的意义,这样,就将模式匹配方法融入了进来。另外,使用“>”和“<”这两个符号时会优先将两个值转换成长整形进行比较,若转换失败则改用字符串比较方法进行比较。

(3)在ConditionString中引入了逻辑关系“|”、“&”,同时“(”和“)”也可以使用,增强了外部规则的检测能力。

(4)类似“Ipv4.SourceAddress=Ipv4.Destination-Address”这种表达式也是支持的,如果是特殊值,则需加上双引号。这种判断的引入为检测一些特殊的入侵威胁提供了方便。

外部规则检测的流程如图4所示。

图4 外部规则工作流程

3 实验结果及分析

本文的实验环境如下:

(1)网络环境:由5台计算机组成的最大负载为10 Mb/s的局域网。

(2)检测端硬件环境。个人计算机,CPU:Intel(R)Core(TM)i5-3210M 2.5 GHz,内存:2 GB RAM。

(3)检测端软件环境:Microsoft Visual Studio 2010。

为验证系统设计的可行性,进行了4次模拟攻击检测,每次模拟5种不同的攻击方法,分别为TCP Sync Flood,简称Sync Flood(内部规则);Ping of Death(内部规则);错误的IP版本号(外部规则);IP源地址等于目的地址(外部规则);ARP欺骗(外部规则)。各次攻击的频率分别为5帧/秒、50帧/秒、500帧/秒、5000帧/秒,实验结果如表2所示。

表2 模拟攻击检测数据

由表2数据可以看出,该系统对于外部规则描述的入侵的检测有效率近乎100%,而对于包含状态的,由内部规则实现检测的入侵,此处为Sync Flood和Ping of Death,在单位时间内处于SYN_RCVD状态的TCP链接数目和ICMP Echo Request数据包的数目超过设定值时,系统都给出了正确的响应。

而对于Sync Flood的检测,在攻击频次较低时,由于时间较长,检测期间局域网内产生了其他的TCP Sync噪音,导致检测到的TCP Sync Flood攻击次数多于实际攻击次数,使得有效率高于100%,产生误报。随着攻击频次的提高,时间的缩短,TCP Sync Flood的检测逐渐达到正常值。

4 结束语

本文提出的改进的NIDS设计,将模式匹配检测方法、简单协议分析检测方法和复杂协议检测方法融合到了一起,充分利用了协议相关信息来检测异常与攻击,提高了检测的准确性和效率。同时,随着设计中外部规则的不断丰富,对已知攻击的检测能力将不断提高;而随着内部规则的不断丰富,将引入各种新的检测手法来检测复杂的攻击如变体攻击、拒绝服务攻击等。最后,该新设计下的NIDS的成功运行也表明了这种新系统设计的可行性和高效性。

[1]Anderson J P.Computer Security Threat Monitoring and Surveillance[DB/OL].http://csrc.nist.gov/publications/history/ande80.pdf,1980-02-26.

[2]Lee W,Stolfo S J,Mok K W.A data mining framework for building intrusion detection models[C]//Proceedings of the 1999 IEEE Symposium on Security and Privacy.1999:120-132.

[3]Proctor P E.Practical Intrusion Detection Handbook[M].Prentice Hall,2001.

[4]张博,李伟华,史兴键,等.IPv6环境下的入侵检测系统模型设计[J].西北工业大学学报,2005,23(1):79-83.

[5]Julia Allen,Alan Christie,William Fithen,et al.State of the Practice of Intrusion Detection Technologies[R].Carnegie Mellon University,2000.

[6]Kumar S.Classification and Detection of Computer Intrusions[D].Purdue University,1995.

[7]蒋建春,马恒太,任党恩,等.网络安全入侵检测:研究综述[J].软件学报,2000,11(11):1460-1466.

[8]宋志鹏.基于协议分析的网络入侵检测系统的研究与设计[D].济南:山东师范大学,2007.

[9]景蕊,刘利军,怀进鹏.基于协议分析的网络入侵检测技术[J].计算机工程与应用,2003,39(36):128-133.

[10]Brian Caswell.Snort[EB/OL].http://www.snort.org,2013-09-19.

[11]Yao Guoxiang,Guan Quanlong,Lin Liangchao,et al.Research and implementation of next generation network intrusion detection system based on protocol analysis[C]//Proceedings of the 2008 International Colloquium on Computing,Communication,Control,and Management.2008,2:353-357.

[12]Tamir Gal,Chris Morgan.SharpPcap:A Packet Capture Framework for .NET[EB/OL].http://www.codeproject.com/Articles/12458/SharpPcap-A-Packet-Capture-Framework-for-NET,2011-09-14.

[13]Shen Zihao,Wang Hui.Research on IPv6 intrusion detection system based on state protocol analysis[C]//Proceedings of the 2nd International Conference on Communication Systems,Networks and Applications.2010,1:90-93.

[14]Shan Zheng,Chen Peng,Xu Ying,et al.A network state based intrusion detection model[C]//Proceedings of the 2011 International Conference on Computer Networks and Mobile Computing.2001:481-486.

[15]Abbes T,Bouhoula A,Rusinowitch M.Protocol analysis in intrusion detection using decision tree[C]//Proceedings of the 2004 International Conference on Information Technology:Coding and Computing.2004,1:404-408.

[16]谢希仁.计算机网络(第5版)[M].北京:电子工业出版社,2008.

猜你喜欢
模式匹配数据包规则
撑竿跳规则的制定
数独的规则和演变
基于模式匹配的计算机网络入侵防御系统
具有间隙约束的模式匹配的研究进展
SmartSniff
OIP-IOS运作与定价模式匹配的因素、机理、机制问题
让规则不规则
TPP反腐败规则对我国的启示
基于散列函数的模式匹配算法
视觉注意的数据包优先级排序策略研究