模式匹配可以跨TCP包吗?

时间:2015-08-20 01:58:36

标签: regex tcp pattern-matching snort intrusion-detection

我是入侵检测系统的新手。据我所知,似乎模式匹配(例如,Snort中的PCRE)仅搜索数据包内的匹配。

模式匹配可以跨数据包吗?

在实践中,人们是否关心跨包模式?

1 个答案:

答案 0 :(得分:1)

如果您正在进行流重组(默认情况下应在标准snort.conf中启用),那么是。这称为伪数据包(或重新组合的数据包),它从多个数据包构建并重新组装。您可以阅读here的此功能和配置。这可能是snort最重要的部分(也是最昂贵的),没有流重组,许多漏洞都会被遗漏。如果没有重新组装,snort只能检查原始数据包。例如:

TCP数据包包含2000个字节的数据,网络上的MTU为1500,因此必须将此数据包斩波为单独的数据包才能发送。假设在数据包1中发送了1400个字节,在数据包2中发送了另外600个字节。如果此数据包中存在漏洞,并且snort正在查找的内容包含在字节1360-1500中,则snort将错过该漏洞并且不会发出警报。使用流重组snort会重新组装数据包:

假设你有一个snort规则寻找内容"这是一个开发"。

原始数据包1:....数据......这是一个 原始数据包2:EXPLOIT ....数据......

没有流重组snort会错过这个漏洞。使用流重组snort将重建伪数据包,它将针对该数据包运行规则内容,因此它将显示:

伪包:......数据......这是一个开发......数据......

规则将匹配。