我想问一个关于snort的问题。
我有不同的 snort 规则,一些属于 v2.9.1(大约 3 年前),一些属于 v2.9.5.6。
我还有一个数据集,其中也包含一些恶意流量。
现在,当我使用规则 v2.9.1 运行 snort 时,它会为我的数据集的 %17 发出警报。另一方面,使用规则 2.9.5.6,它只对我数据集的 0.02% 发出警报。这是什么原因?我期待得到更好的结果,但它几乎无法检测到恶意数据包。
有人对此有想法吗?
提前致谢。
真挚地。
埃雷
我想问一个关于snort的问题。
我有不同的 snort 规则,一些属于 v2.9.1(大约 3 年前),一些属于 v2.9.5.6。
我还有一个数据集,其中也包含一些恶意流量。
现在,当我使用规则 v2.9.1 运行 snort 时,它会为我的数据集的 %17 发出警报。另一方面,使用规则 2.9.5.6,它只对我数据集的 0.02% 发出警报。这是什么原因?我期待得到更好的结果,但它几乎无法检测到恶意数据包。
有人对此有想法吗?
提前致谢。
真挚地。
埃雷
从 2.9.1 到 2.9.5.6 有很多变化。这些是自定义规则吗?您有任何示例吗?这是非常广泛的,如果没有任何例子,就不可能解释为什么会发生这种情况。如果您提供一个仍在提醒的规则和不再触发的规则的示例,那将是一个好的开始。
想到的一件事是您是否使用主机属性表,以及规则是否包含“元数据服务”关键字。有关更多信息,请参阅 snort 手册 ( http://manual.snort.org/node22.html )。如果您没有使用 2.9.1 中的主机属性,但您现在使用了并且没有正确配置,您可能会看到此行为。由于 17% 到 0.02% 是一个相当大的变化,这当然是可能的。
使用主机属性时,如果 snort 识别服务,它将忽略规则头中的端口。例如,如果您指定如下规则标头:
删除 tcp $HOME_NET 任何 -> $EXTERNAL_NET 80
这正在寻找目标端口为 80 的流量。如果您在规则中指定“元数据服务:http”并且您正在使用主机属性,则所有将服务标识为 http 的 snort 流量都将通过此规则发送,无论目标如何港口。这也适用于其他方式(如果 snort 识别流上的服务,它只会将该流中的数据包发送到包含也匹配它识别的服务的元数据服务关键字的规则)。即,如果您的规则不使用“元数据服务:http”,并且您正在使用主机属性,并且 snort 将流标识为 http,它将永远不会通过您的规则发送该流。
所以这真的取决于现在如何配置 snort,如果规则没有改变,那么你使用的预处理器可能会改变。这只是一种可能的解释,也可能是完全不同的东西,但您没有提供足够的信息来确定这一点。