RSS订阅
RSS订阅TT安全

Snort:修改和编写自定义Snort规则

2008-10-31  选择字号:  | |
打印本文章

导读:Snort规则强大灵活,且编写简单。最好从VRT认证的规则开始,因为他们的编写最好,但是还有其他的规则资源。如果已经下载了已有的IDS规则,就可以根据需要修改规则。

关键词:Snort 规则 编写 IDS IDS规则 修改

正在加载数据...

【TechTarget中国原创】Snort规则强大而灵活,而且编写相对简单。最好从VRT(Sourcefire Vulnerability Research Team)认证的规则开始,因为他们的编写最好,但是还有其他的规则资源。如果已经下载了已有的IDS规则,就可以根据需要修改规则。在开始前,先查看Snort.org的……

【TechTarget中国原创】Snort规则强大而灵活,而且编写相对简单。最好从VRT(Sourcefire Vulnerability Research Team)认证的规则开始,因为他们的编写最好,但是还有其他的规则资源。如果已经下载了已有的IDS规则,就可以根据需要修改规则。

  在开始前,先查看Snort.org的常见疑难问答,可以在这里下载最新的VRT规则。(查阅How to decipher the Oinkcode)。阅读这些规则、修改并实验(当然是在测试环境中)。如果已有的Snort规则不能按照想要的方式工作,就可以做些修改。下面是如何做。

  所有的Snort规则都遵循一个简单的格式,这个格式应该检查一下。首先是SID和Rev(revision)的笔记。SID是Snort规则ID(也就是Signature ID)。Snort.org保留了不到一百万条的“官方”规则,而Bleeding Snort使用的SID超过了两百万。如果修改一条规则,就在SID中增加了一百万,所以可以跟踪到原始的。如果要创建新规则,使用起点是九百万的SID。当做出改变或者规则更改控制完成时增加修订。

  有些Snort规则是空地址规则文件。不要使用它,或者你的自定义IDS规则可以在下一次安装新的规则的时候重写空文件。创建一个或者两个文件,例如company_prod.rules和company_test.rules,并在snort.conf文件中增加包含语句。可以在一台计算机和接口上运行多个Snort,这对于测试规则很有用,但是在和产品平行的旧的PC上运行测试版的Snort可能会更早、也更安全。

  下面是一条简单的Snort规则:
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ICMP PING NMAP"; dsize:0; itype:8; reference:arachnids,162; classtype:attempted-recon; sid:469; rev:3;)

这  些代码的意思是:如果发现了定义为(default = any)的$EXTERNAL_NET ICMP内容到定义为(default = any)的$HOME_NET的ICMP包就发送一个警告;如果数据大小(dsize)是0,而ICMP类型(itype)是8(就是echo(request))。(还可以查看http://www.snort.org/pub-bin/sigs.cgi?sid=469)除“警告”外的其他动作包括,但不止是,登录和通过。这种情况下的协议是ICMP,但是也支持IP, TCP和UDP。变量需要在配置文件中定义,并添加美元符号前缀。

  SID469不是很好的规则。它会产生很多的假阳性,因为它相当“宽容”。除了NMAP外的其他应用发送没有任何负载的echo request包,而且没有其他标准可以是这条规则“更严格”或者更详细。下面是一条较好的规则:
alert udp $EXTERNAL_NET any -> $SQL_SERVERS any (msg:"MS-SQL probe response overflow attempt"; content:"|05|"; depth:1; byte_test:2,>,512,1; content:"|3B|"; distance:0; isdataat:512,relative; content:!"|3B|"; within:512; reference:bugtraq,9407; reference:cve,2003-0903; reference:url,www.microsoft.com/technet/security/bulletin/MS04-003.mspx; classtype:attempted-user; sid:2329; rev:6;)

  由于空间限制,我不能解释这条规则的每个细节,但是你只要看看就可以发现它很详细。你还可能注意到这些例子包括对外部资源的参考。查看Snort“etc”目录下的“reference.config”文件中的url,或者查看Snort网站上的SID中的规则文件,包括这些参考资料的连接。

  Snort 2.1.0版本引入了PCRE(Perl Compatible Regular Expressions)、thresholding和suppression,所有的这些对适当的调制都很严格。PCRE允许在规则中使用Regular Expression,所以你搜索的很详细。三种类型的thresholding允许限制“噪杂”规则以各种方式发送的警告的数量,而且可以写入自定义规则,或者放置在单独的配置文件中,例如threshold.conf。特别是,你可以使用外部文件 “调制”官方Snort.org规则。而不需要实际修改这些规则,这就使更新更加简单了。Suppression命令允许在哪些设备允许或者不允许触发警告上更加细致具体。例如,如果你在10.1.1.54上有网络管理工作站,使用“public”社区字符串选择SNMP设备(这样很不好,对吧?)。你可以使用下面的规则来抑制这个情况:suppress gen_id 1, sig_id 1411, track by_src, ip 10.1.1.54

  我们只是提到了表面。更全面的信息请查看Snort.org上的Snort用户手动指南,并从Snort.org和BleedingSnort.com上获取目前的规则。“readme”文件中包括Snort的源代码,这些源代码可以下载、检查来学习更多。如果你不想下载源代码,可以访问Snort CVS Repository网页上的Snort源代码、文档和废弃的规则。注意CVS库中的规则没有像2005年四月那样做维护,虽然有一些这方面的讨论,也可能会做出一些改变。可以阅读Snort.org上的文档或者加入Snort的Sigs(Special Interest Group)邮件表。


Snort入侵检测和防御
 Snort:为什么IDS值得关注?
 Snort:入侵检测后如何识别和监控网络端口
 Snort:如何使用交换器和分段处理网络设计
 Snort:IDS网络传感器应该配置在哪里?
 Snort:为Snort IDS传感器确定操作系统
 Snort:如何确定IDS的网络适配器
 Snort:修改和编写自定义Snort规则
 Snort:如何配置Snort变量
 Snort:在哪里查找Snort IDS规则
 Snort:如何自动更新Snort规则
 Snort:使用IDS规则测试Snort

还没有登录? 阅读全文请先登录或注册
用户名:(请填写您的E-mail做为登录账号)
  • 获取最新的IT业界资讯、市场动态、行业趋势等独家原创内容。
  • 分享国内外技术专业人士提供的技巧经验。
  • 利用专注IT的技术资源中心,不断更新专业知识。
  • 享受白皮书、Webcast等系列特色增值服务。
  • 免费参加TT中国举办的各种会员活动。
  • 更多的精彩服务,在不断开发中……
用户名:(请填写您的E-mail)
密 码:
 永久登录
请输入您的登录email:
问:我们公司正在寻找一些可以全线识别网络入侵的方法,并且已经试验了一些。可能继续使用的一种是在DMZ中把蜜罐和IDS合并使用。有更好的低预算的测试网络入侵的方法吗?
问:IPS传感器用“自上而下”的方式搜索特征文件是什么意思呢? 答:你可能对防火墙的“自上而下”的匹配方法比较熟悉。IPS传感器使用同样的方法……
自己使用的电脑经常受到别人攻击,其实很多时候并不是入侵者的技术本领有多高,而是因为我们自己主动打开无数扇大门,让入侵者自由出入。那么如何防御入侵呢?
安装的Snort是购正常运行了呢?本文中提供一些在线测试Snort的方法,确保它在你的环境中正常运行……
Sourcefire已经变更了Snort规则的许可和分布,而且创建了VRT认证规则。VRT认证规则是由Sourcefire漏洞研究小组测试和认证的。终端用户可以通过三种方法获取规则……

当身份窃取猖獗的时候,有力地用户认证、客户认证和合作伙伴认证是至关重要的措施。有了用户名和密码就足够了吗?双因素认证是有效的方法吗?还是无力应对新出现的威胁呢?本专题将提供全面的信息,帮助理解目前的认证方式和面临的挑战,并且介绍如何采用安全的认证系统。

本专题将介绍一款免费的、开源的、可移动的适用于笔记本电脑的加密软件TrueCrypt。TrueCrypt适用于个人或者小型企业和团队,可以在任何系统上运行而不需要安装。TrueCrypt可以采用多种加密算法,有效地保护机密数据。
本专题可以帮助理解在无线网络中,无线入侵检测/防御系统(WIDS/WIPS)的价值,及时您所在的公司不支持无线局域网。此外,本专题还将介绍如何为公司环境选择合适的WIDS,以及如何防御无线拒绝服务攻击。
最新更新
专家答疑
技巧
Michael Cobb
渗透测试的目标不仅是要评估电脑系统或者网络的安全性,还要决定成功攻击的可行性和商业影响。那么如果选择合适的渗透测试人员呢?
Mike Chapple
渗透测试可以提供安全防御的有价值的信息,但是成本很高。为了渗透测试的可信性,通常必须要有独立的外部公司进行。如果使用内部人员和测试示范漏洞……
Ed Skoudis
问:社会工程应该是渗透测试的一部分吗?这样做是道德的吗?   答:这个问题的答案还在争论之中。