首页 | 软件分类 | 网络安全 | 病毒防治 | 微软产品 | 病毒文件查询 | 振邦软件
- - 网络工具 - 图形图像 - 视听工具 - 系统工具 - 编程开发 - 行业软件 - 办公家庭 - 教育教学 - 游戏娱乐 - 安全保护 - 驱动程序 - -
新年快乐
 软件推荐下载
【系统保护】 白猫系统王v2008
【教育教学】 超级语霸V3.01
【办公家庭】 爱拼T6输入法3.10
【办公家庭】 爱拼T6输入法体验版
【系统工具】 白猫清理工V3.05
【压缩工具】 WinRAR 3.3中文版
【邮件处理】 Foxmail 5.0正式版
【媒体播放】 豪杰超级解霸V8
【下载工具】 网际快车 FlashGet
【图像工具】 ACDSee 6.03
【MP3 播放】 Winamp 5.03中文版
【媒体播放】 Realone2.0 中文版
【网上聊天】 BT下载软件 BitComet
   本周下载Top10
白猫系统王2008
白猫清理工V3.05
poco2007新版
变速齿轮
WinRAR 简体中文版
BitComet0.59
按键精灵(Quick Macro)
极品五笔6.20
傲游(MYIE2)
RealPlayer 10

   累计下载Top20
白猫系统王2008
白猫清理工V3.05
豪杰超级解霸3000
酷狗KuGoo
Flashget(网际快车)
poco2007新版
TOM-Skype 多国语言版
MSN Messenger简体中文
迷你迅雷
超级兔子魔法设置
腾讯QQ 2005 Beta 2 珊瑚虫版
变速齿轮
WinRAR 简体中文版
BitComet0.59
按键精灵(Quick Macro)
极品五笔6.20
傲游(MYIE2)
RealPlayer 10
PP点点通 2004
比特精灵(BitSpirit)

IDS入侵特征库创建实例解析
日期:2006-11-03


 IDS要有效地捕捉入侵行为,必须拥有一个强大的入侵特征数据库,这就如同公安部门必须拥有健全的罪犯信息库一样。但是,IDS一般所带的特征数据库都比较死板,遇到“变脸”的入侵行为往往相逢不相识。因此,管理员有必要学会如何创建满足实际需要的特征数据样板,做到万变应万变!本文将对入侵特征的概念、种类以及如何创建特征进行介绍,希望能帮助读者尽快掌握对付“变脸”的方法。

  一、特征(signature)的基本概念

  IDS中的特征就是指用于判别通讯信息种类的样板数据,通常分为多种,以下是一些典型情况及识别方法:

  来自保留IP地址的连接企图:可通过检查IP报头(IP header)的来源地址轻易地识别。

  带有非法TCP 标志联合物的数据包:可通过对比TCP报头中的标志集与已知正确和错误标记联合物的不同点来识别。

  含有特殊病毒信息的Email:可通过对比每封Email的主题信息和病态Email的主题信息来识别,或者,通过搜索特定名字的附近来识别。

  查询负载中的DNS缓冲区溢出企图:可通过解析DNS域及检查每个域的长度来识别利用DNS域的缓冲区溢出企图。还有另外一个识别方法是:在负载中搜索“壳代码利用”(exploit shellcode)的序列代码组合。

  通过对POP3服务器发出上千次同一命令而导致的DoS攻击:通过跟踪记录某个命令连续发出的次数,看看是否超过了预设上限,而发出报警信息。

  未登录情况下使用文件和目录命令对FTP服务器的文件访问攻击:通过创建具备状态跟踪的特征样板以监视成功登录的FTP对话、发现未经验证却发命令的入侵企图。

  从以上分类可以看出特征的涵盖范围很广,有简单的报头域数值、有高度复杂的连接状态跟踪、有扩展的协议分析。一叶即可知秋,本文将从最简单的特征入手,详细讨论其功能及开发、定制方法。

  另外请注意:不同的IDS产品具有的特征功能也有所差异。例如:有些网络IDS系统只允许很少地定制存在的特征数据或者编写需要的特征数据,另外一些则允许在很宽的范围内定制或编写特征数据,甚至可以是任意一个特征;一些IDS系统只能检查确定的报头或负载数值,另外一些则可以获取任何信息包的任何位置的数据。

  二、特征有什么作用?

  这似乎是一个答案很明显的问题:特征是检测数据包中的可疑内容是否真正“不可就要”的样板,也就是“坏分子克隆”。IDS系统本身就带有这个重要的部分,为什么还需要定制或编写特征呢?是这样:也许你经常看到一些熟悉的通讯信息流在网络上游荡,由于IDS系统的特征数据库过期或者这些通讯信息本身就不是攻击或探测数据,IDS系统并没有对它们进行关注,而这时你的好奇心升起,想在这些可疑数据再次经由时发出报警,想捕捉它们、仔细看看它们到底来自何方、有何贵干,因此,唯一的办法就是对现有特征数据库进行一些定制配置或者编写新的特征数据了。

  特征的定制或编写程度可粗可细,完全取决于实际需求。或者是只判断是否发生了异常行为而不确定具体是什么攻击名号,从而节省资源和时间;或者是判断出具体的攻击手段或漏洞利用方式,从而获取更多的信息。我感觉,前者适用于领导同志,后者需要具体做事者使用,宏观加微观,敌人别想遛进来!

  三、首席特征代表:报头值(Header Values)
  
  报头值的结构比较简单,而且可以很清楚地识别出异常报头信息,因此,特征数据的首席候选人就是它。一个经典的例子是:明显违背RFC793中规定的TCP标准、设置了SYN和FIN标记的TCP数据包。这种数据包被许多入侵软件采用,向防火墙、路由器以及IDS系统发起攻击。异常报头值的来源有以下几种:

  因为大多数操作系统和应用软件都是在假定RFC被严格遵守的情况下编写的,没有添加针对异常数据的错误处理程序,所以许多包含报头值的漏洞利用都会故意违反RFC的标准定义,明目张胆地揭发被攻击对象的偷工减料行为。

  许多包含错误代码的不完善软件也会产生违反RFC定义的报头值数据。

  并非所有的操作系统和应用程序都能全面拥护RFC定义,至少会存在一个方面与RFC不协调。

  随着时间推移,执行新功能的协议可能不被包含于现有RFC中。

  由于以上几种情况,严格基于RFC的IDS特征数据就有可能产生漏报或误报效果。对此,RFC也随着新出现的违反信息而不断进行着更新,我们也有必要定期地回顾或更新存在的特征数据定义。
  
  非法报头值是特征数据的一个非常基础的部分,合法但可疑的报头值也同等重要。例如,如果存在到端口31337或27374的可疑连接,就可报警说可能有特洛伊木马在活动;再附加上其他更详细地探测信息,就能够进一步地判断是真马还是假马。

  六、拓宽特征的“社会关系”,创建识别更多异常通讯的特征

  以上创建的特征可以满足对标准synscan软件的探测了。但synscan可能存在多种“变脸”,而其它工具也可能是“变化多端”的,这样,上述建立的特征必然不能将它们一一识别。这时就需要结合使用特殊特征和通用特征,才能创建一个更好、更全面的解决方案。如果一个入侵检测特征既能揭示已知“坏蛋”,还能预测“潜在的罪犯”,那么它的魅力将大大提高。

  首先看一个“变脸”synscan所发出的数据信息特征:

  只设置了SYN标志,这纯属正常的TCP数据包“长相”。

  TCP窗口尺寸总是40而不是1028。40是初始SYN信息包中一个罕见的小窗口尺寸,比正常的数值1028少见得多。

  “反身”端口数值为53而不是21。老版本的BIND使用“反身”端口用于特殊操作,新版本BIND则不再使用它,因此,经常看到这个信息会让我们睁大怀疑的眼睛。

  以上3种数据与标准synscan产生的数据有很多相似出,因此可以初步推断产生它的工具或者是synscan的不同版本,或者是其他基于synscan代码的工具。显然,前面定义的特征已经不能将这个“变脸”识别出来,因为3个特征子项已经面目全非。这时,我们可以采取三种方法:

  再单独创建一个匹配这些内容的特殊特征。

  调整我们的探测目标,只关注普通的异常行为,而不是特殊的异常行为,创建识别普通异常行为的通用特征。

  1和2都创建,既全面撒网,也重点垂钓,真实的罪犯必抓,可疑的分子也别跑。

  通用特征可以创建如下:

  没有设置确认标志,但是确认数值却非0的TCP数据包。
  只设置了SYN和FIN标志的TCP数据包。
  初始TCP窗口尺寸低于一定数值的TCP数据包。

  使用以上的通用特征,上面提到过的两种异常数据包都可以有效地识别出来。看来,网大好捞鱼啊。

  当然,如果需要更加详细地探测,再在这些通用特征的基础上添加一些个性数据就可以创建出一个特殊特征来。还是那个观点,创建什么样的特征、创建哪些特征,取决于实际需求,实践是检测创建何种特征的唯一标准吗!

  七、报头值关键元素小结,信息包种类检查分析

  从上面讨论的例子中,我们看到了可用于创建IDS特征的多种报头值信息。通常,最有可能用于生成报头相关特征的元素为以下几种:

  IP地址,特别保留地址、非路由地址、广播地址。
  不应被使用的端口号,特别是众所周知的协议端口号和木马端口号。
  异常信息包片断。
  特殊TCP标志组合值。
  不应该经常出现的ICMP字节或代码。

  知道了如何使用基于报头的特征数据,接下来要确定的是检查何种信息包。确定的标准依然是根据实际需求而定。因为ICMP和UDP信息包是无状态的,所以大多数情况下,需要对它们的每一个“属下”都进行检查。而TCP信息包是有连接状态的,因此有时候可以只检查连接中的第一个信息包。例如,象IP地址和端口这样的特征将在连接的所有数据包中保持不变,只对它们检查一次就可放心。其他特征如TCP标志会在对话过程的不同数据包中有所不同,如果要查找特殊的标志组合值,就需要对每一个数据包进行检查。检查的数量越多,消耗的资源和时间也就越多。

  另外我们还要了解一点:关注TCP、UDP或者ICMP的报头信息要比关注DNS报头信息更方便。因为TCP、UDP以及ICMP都属于IP协议,它们的报头信息和载荷信息都位于IP数据包的payload部分,比如要获取TCP报头数值,首先解析IP报头,然后就可以判断出这个载荷的“父亲”是TCP。而象DNS这样的协议,它又包含在UDP和TCP数据包的载荷中,如果要获取DNS的信息,就必须深入2层才能看到真面目。而且,解析此类协议还需要更多更复杂的编程代码,完全不如TCP等简单。实际上,这个解析操作也正是区分不同协议的关键所在,评价IDS系统的好坏也体现在是否能够很好地分析更多的协议。

  八、结语

  本文对如何定制IDS的关键部件特征数据库做了详细地介绍,相信你已经对此有了进一步的认识。入侵者总是狡猾多变的,我们不能让手中的钢刀有刃无光,要经常地磨砺它、改装它,才可能以万变应万变,让入侵者胆战心惊!



  六、拓宽特征的“社会关系”,创建识别更多异常通讯的特征

  以上创建的特征可以满足对标准synscan软件的探测了。但synscan可能存在多种“变脸”,而其它工具也可能是“变化多端”的,这样,上述建立的特征必然不能将它们一一识别。这时就需要结合使用特殊特征和通用特征,才能创建一个更好、更全面的解决方案。如果一个入侵检测特征既能揭示已知“坏蛋”,还能预测“潜在的罪犯”,那么它的魅力将大大提高。

  首先看一个“变脸”synscan所发出的数据信息特征:

  只设置了SYN标志,这纯属正常的TCP数据包“长相”。

  TCP窗口尺寸总是40而不是1028。40是初始SYN信息包中一个罕见的小窗口尺寸,比正常的数值1028少见得多。

  “反身”端口数值为53而不是21。老版本的BIND使用“反身”端口用于特殊操作,新版本BIND则不再使用它,因此,经常看到这个信息会让我们睁大怀疑的眼睛。

  以上3种数据与标准synscan产生的数据有很多相似出,因此可以初步推断产生它的工具或者是synscan的不同版本,或者是其他基于synscan代码的工具。显然,前面定义的特征已经不能将这个“变脸”识别出来,因为3个特征子项已经面目全非。这时,我们可以采取三种方法:

  再单独创建一个匹配这些内容的特殊特征。

  调整我们的探测目标,只关注普通的异常行为,而不是特殊的异常行为,创建识别普通异常行为的通用特征。

  1和2都创建,既全面撒网,也重点垂钓,真实的罪犯必抓,可疑的分子也别跑。

  通用特征可以创建如下:

  没有设置确认标志,但是确认数值却非0的TCP数据包。
  只设置了SYN和FIN标志的TCP数据包。
  初始TCP窗口尺寸低于一定数值的TCP数据包。

  使用以上的通用特征,上面提到过的两种异常数据包都可以有效地识别出来。看来,网大好捞鱼啊。

  当然,如果需要更加详细地探测,再在这些通用特征的基础上添加一些个性数据就可以创建出一个特殊特征来。还是那个观点,创建什么样的特征、创建哪些特征,取决于实际需求,实践是检测创建何种特征的唯一标准吗!

  七、报头值关键元素小结,信息包种类检查分析

  从上面讨论的例子中,我们看到了可用于创建IDS特征的多种报头值信息。通常,最有可能用于生成报头相关特征的元素为以下几种:

  IP地址,特别保留地址、非路由地址、广播地址。
  不应被使用的端口号,特别是众所周知的协议端口号和木马端口号。
  异常信息包片断。
  特殊TCP标志组合值。
  不应该经常出现的ICMP字节或代码。

  知道了如何使用基于报头的特征数据,接下来要确定的是检查何种信息包。确定的标准依然是根据实际需求而定。因为ICMP和UDP信息包是无状态的,所以大多数情况下,需要对它们的每一个“属下”都进行检查。而TCP信息包是有连接状态的,因此有时候可以只检查连接中的第一个信息包。例如,象IP地址和端口这样的特征将在连接的所有数据包中保持不变,只对它们检查一次就可放心。其他特征如TCP标志会在对话过程的不同数据包中有所不同,如果要查找特殊的标志组合值,就需要对每一个数据包进行检查。检查的数量越多,消耗的资源和时间也就越多。

  另外我们还要了解一点:关注TCP、UDP或者ICMP的报头信息要比关注DNS报头信息更方便。因为TCP、UDP以及ICMP都属于IP协议,它们的报头信息和载荷信息都位于IP数据包的payload部分,比如要获取TCP报头数值,首先解析IP报头,然后就可以判断出这个载荷的“父亲”是TCP。而象DNS这样的协议,它又包含在UDP和TCP数据包的载荷中,如果要获取DNS的信息,就必须深入2层才能看到真面目。而且,解析此类协议还需要更多更复杂的编程代码,完全不如TCP等简单。实际上,这个解析操作也正是区分不同协议的关键所在,评价IDS系统的好坏也体现在是否能够很好地分析更多的协议。

  八、结语

  本文对如何定制IDS的关键部件特征数据库做了详细地介绍,相信你已经对此有了进一步的认识。入侵者总是狡猾多变的,我们不能让手中的钢刀有刃无光,要经常地磨砺它、改装它,才可能以万变应万变,让入侵者胆战心惊!







关于我们 | 版权声明 | 联系我们 | 刊登广告 | 使用说明 | 豁免条款  | 软件发布

版权所有 © [
天下软件]
如有任何问题,请联系: a66169@hotmail.com