Snort:使用IDS规则测试Snort

日期: 2008-11-03 作者:JP Vossen翻译:Tina Guo 来源:TechTarget中国 英文

新的Snort系统的运行是不是太安静了?不论你是使用新的Snort,还是在新的平台上配置的——你所担心的低噪音等级。它可能会是严谨的调制(或者过分调制)的系统,或者你可能在一个平静的网段上拥有IDS,还好还有一些在线测试Snort的方法,确保它在你的环境中正常运行。   可以从命令行中用嗅探的方式开始运行,这样可以确认网卡运行正常,span端口被激活了(查阅如何使用交换器和分段处理网络设计),而且Snort实际可以查看到流量。在你使用多个网络适配器的情况下(请查阅如何如何确定IDS的网络适配器),你需要确定Snort使用那一个。

为了在Linux/Unix中找到适配器的名称,可以使用ifconf……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

新的Snort系统的运行是不是太安静了?不论你是使用新的Snort,还是在新的平台上配置的——你所担心的低噪音等级。它可能会是严谨的调制(或者过分调制)的系统,或者你可能在一个平静的网段上拥有IDS,还好还有一些在线测试Snort的方法,确保它在你的环境中正常运行。

  可以从命令行中用嗅探的方式开始运行,这样可以确认网卡运行正常,span端口被激活了(查阅如何使用交换器和分段处理网络设计),而且Snort实际可以查看到流量。在你使用多个网络适配器的情况下(请查阅如何如何确定IDS的网络适配器),你需要确定Snort使用那一个。为了在Linux/Unix中找到适配器的名称,可以使用ifconfig;在Windows中,使用Snort –W。然后使用snort –vi(适配器名称);例如,在Linux中的snort –vi eth1或者Windows中的snort –vi 2,告知Snort嗅探哪个网络适配器。如果所有的都可以正常工作,信息包标头流量的信息(和tcpdump/windump相似)屏幕翻动的速度比阅读的速度快。按CTRL-C,停止捕获或者查看信息包数据,例如分析的信息包数据、协议的崩溃、分裂以及其他。还要使用–d (dump)和–q (quiet)试验,查看他们如何影响发动流量。

  你可以使用一些简单的测试规则手动检查Snort。为了测试工作,你需要再设置中增加一条或者多条规则。最简单的方法是在snort.conf文件的末尾增加,虽然你也可以创建test.rules文件,并包括到snort.conf中。你必须有从定义为$EXTERNAL_NET的网络向定义为$HOME_NET(查阅如何配置Snort变量)的网络发动信息包的能力。

  • alert ip any any -> any any (msg:"Got an IP Packet"; classtype:not-suspicious; sid:2000000; rev:1;)
  • alert icmp any any -> any any (msg:"Got an ICMP Packet"; classtype:not-suspicious; sid:2000001; rev:1;)
  • alert icmp any any -> any any (msg:"ICMP Large ICMP Packet"; dsize:>800; reference:arachnids,246; classtype:bad-unknown; sid:2000499; rev:4;)

  前面两条snort规则应该产生对查看任何IP或者ICMP信息包的警告。因为他们可以触发网络上的几乎每个单独的信息包,没有你想要在网络上运行超负载的产品的规则。如果需要就在较小的或者测试网段上运行。最后一条规则是SID (规则) 499(注意Snort.org的“官方”规则的SID是1-1000000。查看Snort.org 的Snort用户手册)的复本,它已经修改的更松散,这样可以为我们测试的目的增加警告的产生。正常情况下,你可能需要避免松散的规则,因为可能导致假阳性。还有,原始的规则已经不被重视,而且放入了deleted.rule文件中。为了使用上面提到的规则,ping -s 1024 {target host} (Linux)或者ping -l 1024 (target host) (Windows)。如果这些测试都没有起作用,那么Snort可能没有工作和/或信息包没有通过。不要忘了在结束的时候删除测试规则。

  最后,Snort的测试交换机(-T)可以允许简单的测试配置中提出的变化。可以运行这样的命令snort -c /etc/snort/snort.conf –T,并阅读发送流量查看配置是否起作用了。Snort还可以在起作用的时候返回0代码,而在失败的时候返回其他(通常是1)。这可以通过运行下面两条命令中的一条表示出来:snort -c /etc/snort/snort.conf -T & echo "Return code: $?" (Linux)或者snort -c ./Snort.conf -T & echo Return code: %ERRORLEVEL% (Windows)。因为总是可以运行不止一条的Snort复本,你可以使其中一个保持运行,使用另一个改变配置并测试,然后停止生产过程并快速重启,在测试后安装变化。

  在线测试Snort还要注意:有些旧规则使用TCP header flag查看信息包是购使已经建立的TCP会话。新的规则使用已经创建的关键词(查阅在哪里查找Snort IDS规则)。在这两种情况中,你不能简单地使用Netcat把预期的TCp信息包负载放置在外面,而期待Snort可以查看到它——负载必须要显示为已经常见的TCp会话的一部分,在合适的方位,这需要在Snort触发警告之前。“已经常见的”关键词对于减少假阳性很重要,但是在测试Snort时,可能会混乱,这也是我们使用ICMP或者上面说到的自定义规则的原因。

翻译

Tina Guo
Tina Guo

相关推荐