Snort入侵检测系统中TCP流重组的研究解析_第1页
Snort入侵检测系统中TCP流重组的研究解析_第2页
Snort入侵检测系统中TCP流重组的研究解析_第3页
Snort入侵检测系统中TCP流重组的研究解析_第4页
Snort入侵检测系统中TCP流重组的研究解析_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【中图分类号】TP393【文献标识码】A【文章编号】1009-学术研究n t c R e a rc h收編仃期t 2005-9-7卜-U作祎简介:V79M7的匚牛.广东潍圳人硕士砂究 生*主要硏究方向为】鞫堆安全。范明铤.1M2年生女* 四川富噸人.教授上要研覽方肉曲宿且安金、安全药片 设汁王Jt卫.】958年坐,男.河厳刑华人,匚程禅.主昼 研究方囱信息赛全朱大勇.1975生男四川茂且人, 讲肺,博士. *婪研究方睡网堵与信J&安全、轶杵工程.A c a d e信息安全与通信保密? 2007. 265邓子宽,范明钰,王光卫,朱大勇(电子科技大学计算机科学与工程学院,四川成都610054【摘

2、要】文章通过分析Snort入侵检测系统的源代码,剖析了 snort入侵检 测系统的TCP流重组的原理及实现,给出了相关数据结构和算法流程,介绍了针对 流重组模块的攻击及Snort对此的防御策略,最后指出现有TCP流重组技术几点不 足及若干新的研究方向。【关键词】TCP重组;Snort;Hash表;Splay树;入侵检测8054(2007 02-0065-03Research On TCP reassembly in Snort IDSDENG Zikua n, FAN Min gYu, WANG Gua ngwei, ZHU dayo ng(School of Computer Scie ne

3、e and Engineering UESTC, Che ngdu 610054, Chi na【Abstract 】 Base on the study on the source code of Snort, analyze the principle and impleme ntati on of TCP assembly inSnort IDS, prese nt related data structures and arithmetic. In troduce attacks that towards TCP assembly module and theprotecti on m

4、ethods Snort adopted. In dicate several weak nesses of TCP assembly and some new research fields of it.【Keywords 】 TCP reassembly; Snort; Hash table; Splay tree; In trusi on detecti onSn ort入侵检测系统中TCP流重组的研究在网络安全领域,将分散的TCP包按其所隶属的会话重组成一个连续的TCP 会话流再与攻击特征库进行匹配是发现和防御某些攻击的有效方法。1 Snort工作流程Snort是一款开源的跨平台、轻量

5、级的分布式入侵检测 系统1,其4种工作方 式如下:嗅探器模式(sniffer mode、包记录模式(packet logger、网络入侵检测模 式(Network In-trusion Detection System Mode、线内模式(Inline mode。入侵检测和线内模式集成了重组IP fragme nt、重组TCP会话及状态协议分析的功能。线内模式通过iptables替代libcap获得数据包,从而使系统变成具有过滤和放行数据包能力的IPS(Intrusion PreventionSystem 2。图1是Snort的工作流程。2 流重组S n o r t使用s t r e a m

6、4模块进行T C P流的重组和状态 分析3。 Stream4由 Martin Roesch于2001年公布,包含两个可配置预处理模块stream4和stream4_reassemble发布的初衷是为解决snort 针对snot攻击报警过于频繁的问题3。由于TCP重组的实现 依赖于TCP/IP协议, 在应用中受到TCP/IP协议先天安全性不足的局限。因此,Martin Roesch在这两个 模块中增添了许多抗攻击的功能,并设计成可供用户通过配置选择使用。配置选项 的说明请参照snort用户手册1。下面分析TCP流s e a r c h学术研究|11|.c n66重组的过程及使用的数据结构。目前S

7、nort通过两种方式缓 存重组前的数据包:Hash 表与 Splay Tree。2.1 Hash表方式H a s h表方 式是snort的默 认方式,其以会 话的源IP、目的IP、源端口、目 的端口 4个参数为key计算得出一个table index,该tableindex指向一个双向链表,链表 的每一个节点即为一 个Hash节点。一个Hash节点里面包含有一个会话的信息,若需要查找一个会话的 信息只需根据 该会话或者该会话中的一个 TCP包的key计算table index得出 tableindex,再利用table index中所存地址找到双向链表,遍历该链表,查找与key 匹配的节 点即

8、可找到会话信息。数据包与 会话的匹配流程如图2所示,Hash表用 作储存会话信息的数据结构 如图3(a,Hashnode节点的内部 数据结构如图3(b, session节点的内部数据结构如图3(c, stream流的内部数据结构如图3(d。使用 Hash表及双链表结构的形式来存储及查找可以加快重组时数据包匹配会话的速度 在高流量的环境下,对每一个T C P包的快速处理是十分必要的。重组过程中,当下述三种情况之一出现时(对以Splay Tree储存的情形同样适用 Snort将会把Hash表或二叉树中属于一次会话的所有数据包组合成一个大数据包 (仍以Packet结构定义:当一个会话结束、当内存耗尽

9、、当收集了某个数量大小的数据(该大小值为随机数,以免被攻击者识破。组合大数据包时,Snort将遍历Hash表节点中指向的双 向链表的每一节点(以 StreamPacketData结构定义,将节点 中的payload拷贝到大数据包中data指向的缓 存(在 Stream4模块初始化时Snort已分配一特定大小的内存于该缓存中,并将大数 据包传递给余下的预处理模块处理,当所有的预处理模块处理完毕,Snort才将该会话包交给规则检测引 擎作规则匹配。2.2 Splay Tree形式Splay Tree也叫伸展树,当Splay Tree的一个 节点被访问时,该节点经过一系 列的旋转被搬移到树 根,这样

10、可以让计算机执行尽量少的访问即到达目标节点。由于该特性,它特别适用于TCP重组中对每个TCP包进行会话匹配。图4为使用 Splay Tree进行会话匹配的流程。注意snort在存储一个会话的所有数据包时也 使用了 Splay tree结构。使用Splay Tree方式重组流所使用的数据结构仍有 Session、Stream和StreamPacketData不过在相应域中将指针成员改成了 ubi_btRoot 或者 ubi_trNode 结构。无论是Hash表或Splay Tree形式,Snort均使用了三 个独立的内存块来储存 每一个被重组的TCP包:一是Packet结构定义的p数据包中的da

11、ta成员指向的空间 二是将数据 包p存进Stream中以StreamPacketData结构定义的数据包节点时,数据包节点中pkt成员指向的空 间;三是存放同一会话包的大数据包中 data成员指向的空间。Hash表的插入和 删除的算法复杂度为0(1,而Splay Tree 的复杂度为O(log(n。Hash表的查找复杂度为O(n/m,其中n为Hash表中会话 的个 数,m为H a s h表的桶个数,当对象在H a s h表中均匀分布和H a s h表的桶个 数与 对象个数一样多时,Hash表查找复 杂度可接近O(1,这也是Snort优先使用Hash表 作为会话储存结构的原因之一。3流重组对攻击

12、的防御策略针对重组的攻击分五类:图2Hash表作储存方式的TCP重组流程图 4SplayTree作储存方式的TCP重组流程学术研究n i c R o s e a rc h uic Researc h主元统计的音频隐写甘桁力法对D6SS隐写技术m恨 入强唆粧0. 0005以上.LSB龜丐技术修改低4位現上, 3tehideM. Hid屛POW St年戡whit叭 9-=ibols4D 隐9 技术嵌入存诫在B0站以匕隐耳分析芬类推确率均可达 95而1L它适用尸所毎皋压编音频栽体.槎咼丁推 确性和适川件鳌蔚文猷DO AJ tun Q Sliatms G MirphulogicaJ steeanaly

13、i s电inal distort ions ICESR 200h1?H242 To!injin M K l.y u S Fa rid Fl Si rganH I ys( of recorded spcecK Proc SfJK 艺UCih voL 56Hi, Ki(M- H72J K lfct/J S Slghido http /steghide sourcerorge net A 2U()at Repp H Hide IKSH htwwa* heinz renpon j nelKire de/Hide4FCf! html 2U0QI5 Ril c ini G Stcgtwa Brown A

14、SHFoot s4 http /www jj tc c(m;stceoarchivc / stego.; 20L?A伍Lt ii Cli l trJe L.i hs*u hi I ft .Kwak cs i e, X.j _ E i . Ii 上t 占 fA c a d e信息安全与通信保密? 2007. 267对DS主机或者IDS软件缺陷的攻击。 一躲避攻击(e v a s io n。插入 攻击(I n s e r t i o n。干扰攻击,该类攻击利用大量攻击来使ID S疯狂报 警,而使真正有威胁的 攻击未能被及时处理。拒绝服务攻击(Dos,包括所有类型资源的耗尽,如硬盘、内存、CPU等。

15、由于Snort的开源性,使第一类攻击能及早被发现而排除。躲避攻击的一个例 子是TCP SYN包可包含数据,当IDS不处理这些数据时,就造成遗漏包。插入攻击 包括checksum攻击(利用某些IDS不检测checksum的漏洞和TTL攻击(让 数据包 刚好到达IDS而不能到达受保护主机。Snort已有专门的流程来抵御这几类攻击。防御躲避和插入攻击是一对矛盾,如何找到合适的切入点,是今后需要考虑的问 题。干扰攻击是攻击者利用IDS自身的攻击规则产生的攻击,一旦这些攻击包被发 送到IDS所在的网段,IDS会陷入报警洪流。Snort采用状态检 测和非法包检测机制 使根本不被受保护主机接受的包无 法进入

16、TCP重组流程。拒绝服务攻击包括很 广的范畴,攻击者可以:发送大量数据包到IDS网段,让IDS主机网卡读不 过来。发送大量会被IDS接收并送至内核处理的包,耗尽IDS缓存。制造大量攻击让采用记录攻击模式运作的ID S不断往硬盘写记录,耗尽硬盘。找出对ID S主机C P U时间消耗量最大的包,制造大量该类包,发送到IDS网段。拒绝服务攻击不仅妨碍流重组,也是对整个IDS的攻击。对于该类攻击,Snort 的状态检测和非法包检测机制能筛出垃圾包,内核中对会话池定期按规则的清理也 能有效降低此 类攻击的危害。第2、3、4类攻击是由于IDS与受保护系统 处理包 的策略不一致造成的,而如果针对每一类操作系统制 定独立数据包处理入口及处理 流程又将大大增加IDS的软件复杂性并降低其处理速度。如何比较完善地解决这 个问题,目前还没有有效的方案。4 结束语本文分析了 Snort入侵检测系统的TCP流重组的原理和 实现流程,给出了重组 过程中使用的关键数据结构。并对针 对重组模块的各种攻击做了介绍,同时研究了 Snort对这些攻击的防御策略。文章最后提出 Snort存在的一些问题,为研究发展 Snort作了一些探讨。参考文献1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论