IDS中的数据分析技术简述
2006-10-11 16:39
337 查看
数据分析是入侵检测系统的核心。各种分析方法各有利弊,但基于规则的检测方法因为事先将各种入侵方式表示为规则存放于规则库中,因此在规则库比较完备的基础上,可以有很好的检测效率,所以我们在该系统的实现中主要考虑了基于规则的检测方法。
基于规则的检测方法是误用检测的一种。规则一般都是文本的、高层协议的过滤规则,如“目标地址为xxx.xxx.xxx.xxx的http协议包”。规则所能描述的入侵行为的范围和准确程度影响着探测引擎的效率和准确度。每一种基于规则的入侵检测方法都需要一个确定的入侵模式库,即规则库,其中存放着描述入侵方法和行为的规则。规则通常是在探测引擎初始化时被读入内存,形成一个链表或决策树。入侵检测系统需要从以往的攻击入侵活动中,归纳识别出对应的入侵模式,并将这些入侵模式存放于规则库中,然后将系统现有的活动与规则库中的规则进行模式匹配,从而决定是否有入侵行为发生。
规则库的匹配流程如下:
在我们的系统中,采用了与SNORT兼容的入侵行为描述方法。SNORT是一个开放源代码的轻量级的基于网络的入侵检测系统,这种描述方法简单、易于实现,能够描述绝大多数的入侵行为。由于其简单,因此检测速度比较快。
Snort在真正执行检测之前会对规则集进行初始化,它会把规则按头部信息(主要是动作、源目标IP、源目标端口信息)及选项信息初始化成链表头和链表选项。在链表头中包含的是多个规则中的共有属性,而不同的检测属性选项则包含在不同的链表选项中。Snort作者提供的图示如下:
Rule Chain logical structure
-------------------------------------------------------------------------------
------------------------ ------------------------ -----
| Chain Header | | Chain Header | | Chai
| | | | |
| Source IP Address | | Source IP Address | | Sour
| Destination IP Address |--------->| Destination IP Address |--------->| Dest
| Source Port | | Source Port | | Sour
| Destination Port | | Destination Port | | Dest
| | | | |
------------------------ ------------------------ -----
| |
| |
| |
/|/ /|/
-----------V--------- -----------V---------
| Chain Option | | Chain Option |
| | | |
| Content |
| TCP Flags |
| ICMP Codes/types |
| Payload Size |
| etc. |
| |
---------------------
|
|
|
/|/
-----------V---------
| Chain Option |
| |
| Content |
| TCP Flags |
| ICMP Codes/types |
| Payload Size |
| etc. |
| |
---------------------
|
这样做的好处是所有规则头信息相同的规则都被链入同一个规则链,比如所有CGI漏洞的攻击很可能都有相同的规则头信息(可能都是"alert any any -> HOME-NET 80"这种模式),一个包的一旦匹配了这种规则头模式,就会顺着相应的链继续匹配选项部分,这样就极大的减少了匹配的次数,提高了效率。
对于每一个数据包,系统都会在二维方向上对此规则链进行递归搜索工作。系统的检测引擎将只检查那些在运行时已经由规则解析器设定好的链表选项。一旦检测引擎搜索到一个检测属性与解析后数据包相匹配的规则,则触发定义好的规则动作并返回。
基于规则的检测方法是误用检测的一种。规则一般都是文本的、高层协议的过滤规则,如“目标地址为xxx.xxx.xxx.xxx的http协议包”。规则所能描述的入侵行为的范围和准确程度影响着探测引擎的效率和准确度。每一种基于规则的入侵检测方法都需要一个确定的入侵模式库,即规则库,其中存放着描述入侵方法和行为的规则。规则通常是在探测引擎初始化时被读入内存,形成一个链表或决策树。入侵检测系统需要从以往的攻击入侵活动中,归纳识别出对应的入侵模式,并将这些入侵模式存放于规则库中,然后将系统现有的活动与规则库中的规则进行模式匹配,从而决定是否有入侵行为发生。
规则库的匹配流程如下:
在我们的系统中,采用了与SNORT兼容的入侵行为描述方法。SNORT是一个开放源代码的轻量级的基于网络的入侵检测系统,这种描述方法简单、易于实现,能够描述绝大多数的入侵行为。由于其简单,因此检测速度比较快。
Snort在真正执行检测之前会对规则集进行初始化,它会把规则按头部信息(主要是动作、源目标IP、源目标端口信息)及选项信息初始化成链表头和链表选项。在链表头中包含的是多个规则中的共有属性,而不同的检测属性选项则包含在不同的链表选项中。Snort作者提供的图示如下:
Rule Chain logical structure
-------------------------------------------------------------------------------
------------------------ ------------------------ -----
| Chain Header | | Chain Header | | Chai
| | | | |
| Source IP Address | | Source IP Address | | Sour
| Destination IP Address |--------->| Destination IP Address |--------->| Dest
| Source Port | | Source Port | | Sour
| Destination Port | | Destination Port | | Dest
| | | | |
------------------------ ------------------------ -----
| |
| |
| |
/|/ /|/
-----------V--------- -----------V---------
| Chain Option | | Chain Option |
| | | |
| Content |
| TCP Flags |
| ICMP Codes/types |
| Payload Size |
| etc. |
| |
---------------------
|
|
|
/|/
-----------V---------
| Chain Option |
| |
| Content |
| TCP Flags |
| ICMP Codes/types |
| Payload Size |
| etc. |
| |
---------------------
|
这样做的好处是所有规则头信息相同的规则都被链入同一个规则链,比如所有CGI漏洞的攻击很可能都有相同的规则头信息(可能都是"alert any any -> HOME-NET 80"这种模式),一个包的一旦匹配了这种规则头模式,就会顺着相应的链继续匹配选项部分,这样就极大的减少了匹配的次数,提高了效率。
对于每一个数据包,系统都会在二维方向上对此规则链进行递归搜索工作。系统的检测引擎将只检查那些在运行时已经由规则解析器设定好的链表选项。一旦检测引擎搜索到一个检测属性与解析后数据包相匹配的规则,则触发定义好的规则动作并返回。
相关文章推荐
- 硬盘损坏和数据恢复的技术分析
- 数据集市层——论为什么随着技术分析的深入,决策数据报表问题越来越多
- 测试数据创建管理及源代码分析技术研讨会
- 数据分析的方法与技术
- 大数据分析所需要的十大技术
- 十道海量数据处理面试题 - 数据分析与数据挖掘技术-炼数成金-Dataguru专业数据分析社区
- 数据挖掘技术在信用卡业务中的应用及实例分析
- 提升大数据数据分析性能的方法及技术(一)
- 数据分析之A股市场技术分析是否可行 推荐
- 运营级视频技术平台离不开用户体验数据分析
- 微软开放技术、聚合数据、阿里 JStorm、开源社 – 大数据实时分析编程黑客松
- 精细分析Oracle分布式系统数据复制技术
- 大数据数据库技术简介与分类分析
- 技术角度分析:中国谁能玩转大数据
- web网站无埋点技术,分析数据。
- App竞品技术分析 (5)数据采集工具
- [转]利用数据挖掘技术分析用卡行为
- 大数据分析技术生态圈一览
- ”微软开放技术、聚合数据、阿里 JStorm、开源社 – 大数据实时分析编程黑客松“圆满收官
- 学习分析技术——大数据时代数据和信息的转换