IDS入侵特征库样本数据建立详解(一)

日期: 2008-07-09 来源:TechTarget中国

  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是一个流行的用于扫描和探测系统的工具,由于它的代码被用于创建蠕虫Ramen的头部片断而在2001年早期大出风头。Synscan的执行行为很具典型性,它发出的信息包具有多种可分辨的特性,包括:


不同的来源IP地址信息
TCP来源端口21,目标端口21
服务类型0
IP鉴定号码39426(IP identification number)
设置SYN和FIN标志位
不同的序列号集合(sequence numbers set)
不同的确认号码集合(acknowledgment numbers set)
TCP窗口尺寸1028


  下面我们对以上这些数据进行筛选,看看哪个比较合适做特征数据。我们要寻找的是非法、异常或可疑数据,大多数情况下,这都反映出攻击者利用的漏洞或者他们使用的特殊技术。以下是特征数据的候选对象:


只具有SYN和FIN标志集的数据包,这是公认的恶意行为迹象。
没有设置ACK标志,但却具有不同确认号码数值的数据包,而正常情况应该是0。
来源端口和目标端口都被设置为21的数据包,经常与FTP服务器关联。这种端口相同的情况一般被称为reflexive,除了个别时候如进行一些特别NetBIOS通讯外,正常情况下不应该出现这种现象。reflexive端口本身并不违反TCP标准,但大多数情况下它们并非预期数值。例如在一个正常的FTP对话中,目标端口一般是21,而来源端口通常都高于1023。


  TCP窗口尺寸为1028,IP鉴定号码在所有数据包中为39426。根据IP RFC的定义,这2类数值应在数据包间有所不同,因此,如果持续不变,就表明可疑。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐