关于Snort的网络入侵防御功能研究
作者:蒋玉国 杨明欣 郭文东
[摘 要] 当前,入侵检测系统已经成为安全解决方案的一个必要条件,然而,入侵检测不能主动地阻断具有攻击特征的数据流。它往往是被动的监视局域网,让网络管理员对攻击行为采取相应的措施。本文讨论了入侵防御系统(ips)的概念、优点和弱点,并根据著名的开放源代码网络入侵检测系统snort的内部组织特点,提出了一种让snort实现主动阻断攻击数据流的方法。
[关键词] 网络入侵检测系统 网络入侵防御系统 snort
一、让snort实现主动防御功能
1.设计思路。通过分析snort的整体结构可知,它充分利用了插件机制,这种特点使它更灵活,更容易系统功能的增加,使程序具有很强的可扩展性。ips与ids的主要区别就是ips实现了主动的阻断攻击。利用snort的这种内部组织结构和ips的特点,可以设想,只要为snort增加一个能够阻断数据包的模块(假设称该模块为“在线处理模块”),并把snort置于在线的位置,当snort检测到某种入侵行为时,通过对该模块的调用,就可以达到阻断含有入侵倾向数据流的目的。
snort的检测引擎主要是基于规则的匹配。snort规则类型(规则行为)包括:alert、log、pass、activate和dynamic。我们就让snort做拒绝与该规则匹配的数据包的处理。剩余的任务就是,当snort找到了和被捕获的数据包相匹配的规则时,snort通过什么条件来判断该数据包是否符合做拒绝处理,在snort源文件rules.h中定义了opttreenode的数据结构。为该结构中增加标志位。当snort进行规则解析时,通过判断规则的类型和priority、classtype参数的值,当符合一定的条件时,给相应的标志位置“1”。 这样,当检测引擎触发了某条规则,则通过判断这些标志位,决定是否阻断相对应的数据包。
为了使snort更具有灵活性,还可以为之增加一个可选的功能:通过用户的选择,即可使snort以ids方式工作,也可以使其以ips方式工作。
2.实现阻断数据包的条件。为了实现snort的ips功能,需要特定的底层库iptables来代替原有的libpcap(libpcap是snort的底层库)。iptables用于计算和控制在linux平台上的外部连接。netfilter /iptables支持linux2.4内核,能够进行数据包过滤,网络地址转换及其它的数据包处理。
3.实现方法。(1)给snort源文件snort.h中定义的pv结构增加标志位。在pv结构中增加一个标志位:inline。如果期望snort以在线的(ips)方式工作,则设该标志被置“1”,否则snort工作在普通的ids工作方式。(2)在opttreenode(规则选项)结构中增加两个标志位:reject和drop。当某规则的规则类型为alert,且classtype关键字属于1级优先级,或者priority大于9,则当程序进行规则解析时,为属于该规则的opttreenode结构标志位reject置“1”。当某规则的规则类型为alert,且classtype关键字属于2级优先级,或者priority为7或8,则当程序进行规则解析时,为属于该规则的opttreenode结构标志位drop置“1”。
4.如果被捕获的数据包与某规则相匹配,这时说明snort已经发现攻击行为。此时判断该规则的opttreenode结构中两个标志位的值,如果drop为1,调用在线处理模块,对该包做阻断处理并输出报警信息。如果reject为1,调用在线处理模块,阻断该包、输出报警信息,如果该包协议类型为tcp,向数据源发送reset报文,终止该连接;如果协议类型是udp,向数据源发送icmp端口不可达报文,终止该连接。图1是snort以在线方式运行的响应处理过程。
二、结束语
本文提出的使snort增加主动阻断攻击数据流功能的方法具有以下优点:
1.该方法简单、灵活,不需要改动整体结构和snort原有的规则,只需在其原有的系统和规则的基础上给pv结构和opttreenode结构增加了几个标志位,为之添加现有的iptables底层库和libnet,增加一些函数即可实现。
2.只有符合某种严重级别的数据流才对之采取阻断处理的策略,而并不是所有的符合报警的具有攻击特征的包均采取这种响应处理方式,减少了因误检而阻断正常的数据流的可能性。
3.只是在snort原有的功能上增加了主动防御功能,没有改变原有系统的功能。
参考文献:
[1]r.g bace:入侵检测[m]. 陈明奇,吴秋新,张振涛等译. 北京:人民邮电出版社,2001,6
[2]韩东海 王 超 李 群:入侵检测系统及实例剖析[m]. 北京:清华大学出版社, 2002,4
[3]joel snyder. ips: a technology, not a product. network world, 2002,11
[4]joel snyder. what is an ips, anyway? network world,2002,8
[5]张悦连 郭文东:snort规则及规则处理模块分析. 河北科技大学学报,2003,12
上一篇:计算机网络故障管理智能化研究
下一篇:计算机网络安全与防范探讨