当前位置:首页 >> 其它考试 >>

Snort-入侵检测系统规则集的优化


Snort-入侵检测系统规则集的优化
陈金柱 1 李逸波 2
朱乾坤
3

(1.海军航空工程学院学员旅,山东烟台,264001; 2.海军航空工程学院自动控制系,山东烟台,264001; 3.海军航空工程学院网络中心,山东烟台,264001) 摘要:随着网络的发展,入侵检测系统将成为一个重要瓶颈。本文根据 TCP/IP 协议的特点对 Snort-入侵检测系统规 则集进行了优化设计。 关键词:Snort,入侵检测系统,规则集 0 引言 入侵检测系统(IDS)从计算机网络系统的若干关键点收集信息(如系统日志、审计数据和网络数据包等) ,然 后通过分析这些信息来判断网络系统中是否有违反安全策略的行为和是否存在攻击。入侵检测依赖于两个假设:① 用户和程序的活动是可以观察的。例如:系统审计机制。②正常活动和入侵(异常)活动有截然不同的行为。异常 的活动被标识为入侵。入侵检测系统有多种分类。 根据检测方法,入侵检测分为两种类型①:误用检测(misuse detection)和异常检测(anomaly detection) 。误用 检测是将已知的攻击方式以某种形式存储在知识库中,然后通过判断知识库中的入侵模式是否出现来实施检测,如 果出现,说明发生了入侵。该方法的优点是检测准确率较高,缺点是只对已知攻击类型和已知系统安全漏洞进行检 测。而异常检测是指将用户正常的习惯行为特征存储到特征数据库中,然后将用户当前行为特征与特征数据库中的 特征进行比较,若两者偏差足够大,则说明发生了异常。这种方法的优点是能检测未知的攻击类型,缺点是误检率 较高。 根据检测的数据源,入侵检测系统可以分为基于主机的入侵检测系统和基于网络的入侵检测系统。基于主机的 入侵检测系统是通过分析审计数据和系统日志来发现可能的入侵。基于网络的入侵检测系统是通过分析网络数据包 来检测可能的入侵。下面介绍一个免费的轻量级的入侵检测系统——Snort。 1 Snort 入侵检测系统 Snort 是一种基于网络的入侵检测系统,通过误用检测规则来检测攻击。Snort 规则就是使用“一种简单的、轻量 级的描述语言”来描述网络上带有攻击标识的数据包。Snort 规则文件是 Snort 的核心,是 Snort 的攻击知识库。如果 只有 Snort 的可执行程序,而没有规则文件,那么 Snort 就不能真正实现入侵检测功能,即不能识别任何攻击。 Snort 规则在逻辑上分为两部分:规则头(Rule Header)和规则选项(Rule Option) 。规则头定义了规则的行为、 所匹配网络包的协议、源地址、目标地址及其网络掩码、源端口和目标端口等信息;规则选项则包含了所要显示给 用户查看的警告信息以及用来判定此数据包的其他信息(如:tcp 的 flags 字段,数据字段的内容等)②。 下面是一个简单的规则: alert tcp any any ->192.168.1.0/24 111(content:“|00 01 86 a5”|;msg:“mountd access”;) 上例中,括号左边部分为规则头,括号里面部分为规则选项,规则选项中冒号前的部分称为选项关键字(Option Keyword) ,这里需要注意的是规则选项并不是任何规则都必需的,它只是用来明确地定义表示的是某种攻击、需要 采取某种行为(如警告等) 。只有当组成规则的各个元素都为真时才能触发相应的操作。综合起来考虑,规则里限制 数据包的各元素的关系是逻辑与;同时规则库中的各条规则之间的关系可以被认为一个大的逻辑或(进行逻辑或操 作的各元素只要有一个为真时,整个表达式即为真) 。 如图 1,所有规则按照规则头排列成主链,然后根据规则选项把规则插入到这个链表中,构成规则集,这样每一 个选项节点就对应一条规则。规则头节点主要记录了规则头信息,包括源 IP/端口、目标 IP/端口,并用指针指向下一 个规则头节点、附属于它的规则选项列表和规则头列表结构。规则选项节点存放所有规则选项的信息和处理插件的 处理函数列表(option function) ,分别指向规则头节点的指针和关联选项节点的指针。

主链 链首 规则头 Src IP Des IP Src Port Des Port 规则头 Src IP Des IP Src Port Des Port

规则选项 CONTENT TCP Flags ICMP Codes/Type Payload Size etc 从链 规则选项 …

规则选项 CONTENT TCP Flags ICMP Codes/Type Payload Size etc

规则选项 …

图 1 规则集
Snort 就是这种基于规则匹配的网络入侵检测系统。而规则是根据源 IP、目标 IP、源端口范围和目标端口范围等 属性分类组织成为规则集的。这样,当一个数据包被检测时,Snort 检测每个规则集的上述四个参数以决定是检测该 规则集还是转移到下一个规则集。如果数据包与规则集的四个参数相匹配,该规则集中的规则依次得到检测,并且 每条规则中的其余的参数也按顺序检测。当该规则集中的所有规则被检测完以后,接着搜索下一条规则集中的四个 参数,检测过程重新开始。每一个数据包都必须经过从头到尾的匹配过程。 这样,入侵检测就是把从网络上捕获的数据包和规则集进行匹配的过程。如果存在一条匹配该数据包的规则, 就表示检测到了攻击,然后按照规则所指定的行为进行处理(如警告等) ;如果搜索完所有规则集都没有找到匹配的 规则,就认为该数据包正常。 通常,当规则数量很少时,上述检测方法是很高效的。可是,当规则集中有很多条规则时,标准检测方法会变 得非常低效。规则检测速度变慢,是由于每个数据包都必须检测每条规则集中的各个参数。 然而,根据规则集的结构和匹配过程的分析可知,许多匹配过程是根本不需要的,存在许多可优化的地方。另 外,随着目前网络带宽的不断加大,IDS 将成为网络带宽的一道瓶颈,入侵检测系统规则集的优化将给入侵检测系统 的提供了更大的机遇。 2 规则的优化 为了提高规则检测的处理速度,需要使用基于规则集检测方法。规则优化器必须进行规则集的构造和选择。 2.1 规则集的构造 使用规则优化器构造规则集对基于规则集检测方法是必要的。规则优化器必须满足两个要求: ( 1)尽可能构造 最小的、最高效的规则集; (2)构造离散化的规则集。这样,使得每个数据包仅需搜索一个规则集。 在初始化阶段,规则优化器利用最具独立性的 Snort 规则参数来构造规则集。因为每类传输协议有让其独立的不 同参数,所以所选的规则参数对于不同传输协议是不同的。例如:TCP 规则集可以根据源端口和目标端口来区别于 其它的 TCP 规则集,而 ICMP 规则集可以根据该规则的 ICMP 类型加以区别。规则优化器利用具有独立性的参数构 造规则子集。这样使得多规则检测引擎所需检测的规则集更小。更重要的是,它允许根据数据包的特征让其分别通 过相应的规则子集。

2.2 规则集的选择
当 Snort 运行时,规则优化器为每个数据包选择一个规则集。规则集的选择依赖于收到的数据包的一些参数和规 则集中参数的匹配结果。这样,规则优化器只选择那些能匹配该数据包的规则并且只过滤多规则搜索引擎需要处理 的规则。此后多规则搜索引擎可以进一步通过基于规则集的检测方法检测内容③。对于一些异常数据包,有可能会选 择两个规则集,这种情况称为“独立冲突” 。

3 规则优化器的实际应用
规则优化器根据传输协议的独立参数把规则分成可定义的、 小规则集, 以提高 Snort 检测速度。 经分析, 源端口、 目标端口可作为 TCP/UDP 数据包的独立参数;ICMP 类型可作为 ICMP 数据包的独立参数;传输协议 ID 可作为 IP 独立参数。下面将分别给予介绍: 3.1 TCP/UDP TCP/UDP 协议中最独立的属性是源端口和目标端口。 通常情况下端口有两种类型: 保留端口号和非保留端口号。 这意味着主机之间大部分通讯有一个保留端口 (通常是服务器端) 和另一是非保留端口 (大于 1024 且通常是客户端) 。 该属性允许规则优化器使用保留端口作为独立参数。大家都知道,TCP/UDP 在客户和服务器之间是双向通讯的。也 就是,Snort 所检测的数据包是从客户到服务器和从服务器到客户的。因此不必应用所有规则到客户通讯和服务器通 讯的每一个数据包。规则优化器根据独立端口位于源端口或还是位于目标端口来对规则分组。如果独立端口位于源 端口,通常数据流来自服务器,选择服务器响应规则。而当独立端口位于目标端口时,通常数据流来自客户端,选 择客户请求规则。如果源端口和目标端口都是非保留端口时,这样情况的比较少,使用通用规则对其进行处理。如 图 2 所示。

客户请求规则

服务器响应规则

已定义独立冲突规则

通用规则

图 2 TCP/UDP 规则的细化
可是,当源端口和目标端口都是保留端口,需要检测多个规则集,出现了独立冲突。独立冲突可分为两种类型: 已定义独立冲突和未定义独立冲突。已定义独立规则出现是很正常的,未定义独立冲突很少发生,而当它发生时可 能是恶意或异常事件。 对于已定义独立冲突通过检测由两个合法独立规则集合并而成的一个已定独立冲突规则集加以处理。一个合法 的独立冲突的例子是在服务器之间 DNS 查询中。此时,两个端口号都是 53,那么应该用哪一个规则集来处理这种数 据包?应该是两个。这种情况下,合法独立冲突通过协议加以定义,把处理源端口和目标端口都为 53 的 DNS 查询 规则合并,并加入到已定义独立冲突规则中。 当未定义的独立冲突发生时,也同样需要检测多个规则集。仿效已定义的独立冲突的处理那样处理所有的未定 义独立冲突产不可能,因为地址空间太大。例如,如果有 1000 个独立的源端口和 1000 个独立目标地址规则集,这 样将有 1000000 个独立冲突端口规则集。考虑到一个规则集需要的存储器,这是不现实的。现在,依赖于用户所需 要的性能,未定义的独立冲突有三种处理的方法:双重检测、首先命中检测和随机检测。

(1)双重检测
双重检测是处理未定义独立冲突的最基本类型。既然对应一个未定义独立冲突对两个规则集,双重检查就检查 两个规则集,大约花两倍的检查时间。双重检测保证发现一个数据包中的所有事件,但是,这种方法更容易通过构 造引起未定义独立冲突的数据包来强制双重检查而导致拒绝服务(DoS)攻击。 (2)首先命中检测 首先命中检测方法类似于双重检查方法,因为它也检查两个规则集。不同的是如果事件发生在首先被检测的第 一个规则集中,那么第二个规则集将不检测。如果在第一规则集有一个产生的事件,这相对于双重检测来说能改善 性能。 (3)随机检测 随机检查方法随机选择两个规则集中的一个。通过用这种方法,它阻止由于未定义独立冲突引起的 DOS 攻击。 但是这也不能保证发现所有的事件。 在三种不同的检查方法中,首先命中检查方法是一种中间方案。它有助于阻止由于双重检测方法而导致的 DoS 攻击,也可以产生为对每个未定义独立冲突(如果可能)产生事件。但是,它不能保证像随机方法不可能产生 DoS 攻击,也不能保证像双重检查方法被发现所有事件。

3.2 ICMP
ICMP 规则只用 ICMP 类型域来优化 ICMP 规则集。没有类型域的规则被认为是通用 ICMP 规则并且被加到规则 集后面。这样,当 ICMP 类型的某类数据包到来时,使用相应类型的规则进行处理,没有类型域则使用通用规则加 以处理。例如,类型代码 8(回显请求)的 ICMP 数据包把类型代码 8 作为参数选择类型 8 的规则集加以检测,而不 需要检测其它规则。如图 3 所示。

类型 0

类型 3

类型 4

类型 5



类型 X

通用规则

图 3 ICMP 规则的细化 3.3 IP
规则优化器使用 IP 传输协议域作为独立参数来对 IP 协议进 行优化。包括 TCP/UDP 或 ICMP 在内的所有 IP 规则被分解成特 殊的协议规则集。而除 TCP/UDP 或 ICMP 之外的其它协议根据 传输协议域被分解成的 IP 规则集。而不包括 IP 协议域的规则被 认为是通用 IP 规则并被添加到 TCP/UDP、IP 和 ICMP 规则集后 面。如图 4 所示④。 TCP/UDP ICMP IP 通用 IP

图 4 规则优化设计
数据包

有 IP 域
是否包含 IP 协议域

无 IP 域

是 TCP/UDP

是 TCP/UDP、 ICMP 或其它

其它

通用 IP 规则

是 ICMP
如图 2 如图 3

IP

图 5 优化规则集的总体结构
如图 5,这样就构造了一个规则集优化的总体结构,其实只是比图 4 的更详细一些。当获得一个数据包后,首先 判断是否具有 IP 协议域, 如果没有, 使用通用 IP 规则加以处理; 如果有 IP 协议域, 则进一步判断是 TCP/UDP, ICMP 和其它,如果是 TCP/UDP 则根据独立参数据使用相应规则集予以处理,如图 2 所示;如果是 ICMP 类型则根据其独 立参数,使用相应规则集予以处理,如图 3;否则使 IP 规则加以处理;最后根据检测结果,判断是否是恶意的数据 包或发生了入侵。 4 结论 规则优化器是通过构造最小的规则集,然后根据数据包的独立参数来选择合适的规则集,消除了对大量无关规 则集的检测,大大提高了 Snort 入侵检测系统的检测效率,对解决其瓶颈问题大有帮助。 参考文献
① ②
③ ③

戴英侠 连一峰 王航 系统安全与入侵检测[M]清华大学出版社 2002 年 3 月 第 33 页 韩东海 王超 李群 入侵检测系统实例剖析[M]清华大学出版社 2003 年 5 月第 54、108 页

Marc Norton,Daniel Roelker. SNORT 2.0 RULE OPTIMIZER Sourcefire.Inc 2003.2 Douglas E.Comer 著 林瑶 蒋慧 杜蔚轩译 谢希仁校 用 TCP/IP 进行网际互联 第一卷:原理、协议与结构[M]电子 工业出版社科院 2001 年 12 月 第四版 406 页


相关文章:
Snort-入侵检测系统规则集的优化.doc
Snort-入侵检测系统规则集的优化 - Snort-入侵检测系统规则集的优化 陈金柱 1 李逸波 2 朱乾坤 3 (1.海军航空工程学院学员旅,山东烟台,264001; 2.海军航空工程...
snort入侵检测系统的规则改进.doc
snort入侵检测系统的规则改进 - 课题名称:snort 入侵检测系统的规则改进 课题简述:本课题主要研究 snort 规则,在 window 或者 linux 下搭建 snort 入侵检测系...
SNORT规则集匹配的优化策略研究_论文.pdf
SNORT规则集匹配的优化策略研究 - SNORT作为一种受人关注的开源NIDS系统,为入侵检测系统的研究提供了很好的平台.SNORT采用基于规则匹配的入侵检测方法,其规则集大小与...
Snort规则集优化算法研究_论文.pdf
Snort规则集优化算法研究 - 对入侵检测系统Snort的检测引擎进行了系统的分析,为了进一步提高Snort的规则匹配效率,提出一种对Snort庞大的规则集进行分级处理的方法,克服...
Snort规则检测及其优化分析.pdf
Snort规则检测及其优化分析_IT/计算机_专业资料。...系统 的性能 本文 对 开放 源码入侵检测 系统 S ...则集来 括. S n o rt 规则 解析 和 S n o...
入侵检测系统Snort工作原理简析.pdf
+86-551-5690963 5690964 入侵检测系统 Snort 工作...中不同形式的 URL , 除非使用无限大的规则集 。 ...可以很容易地调整配置减少误报 , 也容易进行优化 ...
基于snort的入侵检测系统的研究.doc
基于snort的入侵检测系统的研究 - 摘要 随着网络技术的快速发展和网络应用环
:snort入侵检测系统配置使用.doc
还是作为网络入侵检测系统(NIDS),使用下面命令行可 以启动这种模式: ./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf snort.conf 是规则集文件...
Snort入侵检测系统的规则库的分析和研究毕业论文.doc
Snort 入侵检测系统的规则库的 分析和研究 Snort 入侵检测系统的规则库的 分析和研究 Analysis and Research in Rule Base of Snort Intrusion Detection System ...
Snort入侵检测系统实验_图文.doc
Snort入侵检测系统实验 - 在ubuntu系统下入侵检测系统Snort检测非法流量... -c /etc/snort/snort.conf -i eth0 D 10、检查入侵检测系统工作状况,更改入侵检测...
基于Snort的入侵检测系统分析和规则配置_论文.pdf
基于Snort的入侵检测系统分析和规则配置 - 本文分析了较通用的Snort入侵检测系统,介绍了该系统的整体架构和工作过程,详细分析了其特征规则,并从规则头和规则选项上...
Snort入侵检测系统的配置与使用.doc
的安装与配置 (7)jpgraph 库的安装 学会搭建 Snort+Windows+Mysql+Php+Acid 的网络入侵检测系统平台, 并学习简单 Snort 规则的编写与使用,了解 Snort 的检测原理...
一种Snort规则的优化方法_论文.pdf
一种Snort规则的优化方法 - Snort是一款基于规则发现入侵行为的网络入侵检测系统,为了提高入侵检测系统中检测引擎的速度和效益,在分析Snort的规则组织结构和规则匹配...
入侵检测系统中高效模式匹配算法的研究_杨武.pdf
在该数据集上运行snort-1.8.3并选用完整的规则集,使用工具 gprof来剖析snort ...因此针对基于特征匹配的网络入侵检测 系统的性能优化工作,主要是研究如何提高和...
Snort中字符匹配算法的分析与改进_图文.pdf
实验表明,改进算法后的 Snort 系统 在规则集数目不等的情况下,入侵检测的 时间...利用轻量级网络入侵检测系统 Snort在Linux操作系统下, 针对提出的优化后的 BM ...
snort+vmware+centos搭建网络入侵检测系统(rkk新).pdf
snort+vmware+centos搭建网络入侵检测系统(rkk新)_互联网_IT/计算机_专业资料。...8.tar.gz Acid-0.9.6b23.tar.gz Adodb468.tgz 入侵检测规则集 图形化界面 ...
snort入侵检测_图文.ppt
snort入侵检测_计算机软件及应用_IT/计算机_专业资料。snort入侵检测系统介绍及...Snort规则规则头由规则动作、协议、IP地址、端口号、 方向操作符组成。 动作:...
入侵检测系统分类Snort_图文.ppt
入侵检测系统分类Snort - SNORT原理简介与优化及 GNORT初探 刘斐然 主要内容 ? ? ? ? Snort原理是什么? Snort在实际应用中的缺陷有哪些? 如何对Snor...
snort分析评估.pdf
进行优化 Gnort初探。 入侵检测系统的基本结构入侵...流,如将Unicode或hex翻译成snort可以识别的 字符集...预处理 Snort原理分析--规则简介 S t原理分析 规则...
SNORT原理探讨_图文.pdf
如何对Snort进行优化 进行优化? Gnort初探。 入侵检测系统的基本结构入侵检测系统...Snort规则分为Rules Headers和Rules Options,格式为: 格式为 rule headers (...
更多相关标签: