IDS的规则建立(3)

发表于:2007-06-23来源:作者:点击数: 标签:
IDS的规则建立 五、公布最佳特征“得主” 从以上4个候选对象中,我们可以单独选出一项作为基于报头的特征数据,也可以选出多项组合作为特征数据。 选择一项数据作为特征有很大的局限性。例如一个简单的特征可以是只具有SYN和FIN标志的数据包,虽然这可以很好

   
  IDS的规则建立
    五、公布最佳特征“得主”

从以上4个候选对象中,我们可以单独选出一项作为基于报头的特征数据,也可以选出多项组合作为特征数据。

选择一项数据作为特征有很大的局限性。例如一个简单的特征可以是只具有SYN和FIN标志的数据包,虽然这可以很好地提示我们可能有一个可疑的行为发生,但却不能给出为什么会发生的更多信息。SYN和FIN通常联合在一起攻击防护墙和其他设备,只要有它们出现,就预示着扫描正在发生、信息正在收集、攻击将要开始。但仅仅这些而已,我们需要的是更多的细节资料。

选择以上4项数据联合作为特征也不现实,因为这显得有些太特殊了。尽管能够精确地提供行为信息,但是比仅仅使用一个数据作为特征而言,会显得远远缺乏效率。实际上,特征定义永远要在效率和精确度间取得折中。大多数情况下,简单特征比复杂特征更倾向于误报(false positives),因为前者很普遍;复杂特征比简单特征更倾向于漏报(false negatives),因为前者太过全面,攻击软件的某个特征会随着时间的推进而变化。

多也不行,少亦不可,完全应由实际情况决定。例如,我们想判断攻击可能采用的工具是什么,那么除了SYN和FIN标志以外,还需要什么其他属性?“反身”端口虽然可疑,但是许多工具都使用到它,而且一些正常通讯也有此现象,因此不适宜选为特征。TCP窗口尺寸1028尽管有一点可疑,但也会自然的发生。IP鉴定号码39426也一样。没有ACK标志的ACK数值很明显是非法的,因此非常适于选为特征数据。当然,根据环境的不同,及时地调整或组合特征数据,才是达到最优效果的不二法门。

接下来我们真正创建一个特征,用于寻找并确定synscan发出的每个TCP信息包中的以下属性:

只设置了SYN和FIN标志

IP鉴定号码为39426

TCP窗口尺寸为1028

第一个项目太普遍,第二个和第三个项目联合出现在同一数据包的情况不很多,因此,将这三个项目组合起来就可以定义一个详细的特征了。再加上其他的synscan属性不会显著地提高特征的精确度,只能增加资源的耗费。到此,判别synscan软件的特征如此就创建完毕了。

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

以上创建的特征可以满足对标准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数据包。

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

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

原文转自:http://www.ltesting.net