本章节介绍一下Emerging Threats rules中针对suricata的那些规则的功能。
ET的规则是业内比较知名的规则集,下载地址见这里,这其中提供了防火墙以及入侵检测系统的规则。IDS/IPS的规则主要是在open目录下,包括snort以及suricata的规则。像et这样的规则集,追求的是大而全,很多规则在我们的实际使用场景下无需使用,另外像et这种老美的企业,往往很多的规则是针对于美国等西方网站的漏洞的。本次就简单分析下et open规则集中的suricata规则集。
suricata的规则集下载之后,可以看到其中分为了很多个文件,如图1:
图1
对上述规则集的功能将一一介绍,先从那些不太常用的规则集开始。
deleted.rules
该规则集是用于存放废弃的规则,可以看到所有的规则都是#开头的。具体查看这个规则集可以发现,废弃的规则很多是针对于特定的网站的,很有可能当该网站修复了一个特定的威胁之后,这样的规则就失效了,因此这个规则集一般我们用不到,但是可以用来追溯之前曾经有过的威胁。
games.rules
针对有一些知名游戏的威胁规则,但是在通常的生产环境中,尤其IDS/IPS 通常在一些企业内网或者政府内网,这些规则优先级很低,可以不要,这些规则数量基本在十几个左右。
inappropriate.rules
一般是针对成人网站的规则,规则数量很少,针对的是英文网站。这种网站的分类功能往往不是IDS的强项,一般DPI可以做这方面的事情。IDS/IPS的主要目标是识别威胁,因此这些规则通常关注较少。
chat.rules
这类的规则主要是针对一些聊天软件,主要是国外的聊天软件,例如MSN,facebook,google talk ,yaohoo Im等。在国外的一些场景中,这类规则很重要,但是在过内很少使用这类聊天软件。国内使用的较多的往外是国外的优秀框架或者服务器框架例如weblogic,Apache等,集成在诸多的产品中。因此这类规则是否使用,要看需求。
policy.rules
策略类规则,这里规则对于通用的IDS/IPS来说也不具有通用性。通过查看规则发现,这类规则中有很多是用于检查用户是否访问了某个网站,比如Tiktok,谷歌音乐,NBC视频等等。这类规则整体上来看是一些企业内部限制用户访问一些站点的策略,具体哪些策略是一个定制化的问题。而且这种应用业务的识别,让DPI来做更好一点。这其中有的规则可能还是非常有借鉴意义额,比如其中classtype不是policy-violation对于我们定制规则可以进行参考企业内部往往需要哪些规则。
icmp_info.rules
针对于icmp的规则,关于icmp规则还以一个icmp.rules这样一个文件。查看icmp_info.rules文件发现,其中很多事关于ping命令的一些异常告警,例如目的主机不可达,ping一个具体的操作系统。通常来说ping的异常往往事攻击者的初期试探,因此IDS可以使用这类规则进行初步的发现。但是Ping的异常其实事网络中非常常见的流量,因此如何平衡误报,是一个重要的考量。对于该类规则IPS一般不会使用,同时可以看到icmp.rules的规则都被注释了,猜测原因可能是这类规则的误报概率较大。但是当我们定制一些ICMP规则的时候,可以参考这类的规则。
current_events.rules
通过名称可以看出,这些规则针对的是当前的热点事件规则,通过查看该规则集发现,这些规则更新频率较高。很多的规则是针对于钓鱼的识别,由于钓鱼攻击制作成功本低,这些有威胁的url,一般来说会从专门的威胁研究机构获得一些情报进行规则的制作。由于该集合中的规则存在时间短,因此一般的IDS和IPS规则也不建议采用,当然如果需要跟踪热点时间,可以作为一些参考。一般来说,热点威胁国外研究机构比较成熟,因此这些热点威胁往往也正对于国外的网站,比如美国银行的钓鱼链接。
web_specific_apps.rules
这个分类和前面的chat类似,针对是特定的web应用或者网站的漏洞利用方式。与chat类似,都是针对一些国外网站的漏洞利用手法的规则,出现这些漏洞的原因在于这些网站的程序员编写的业务逻辑存在漏洞,属于业务逻辑漏洞。因此这个规则集在国内的IDS规则集中也是不建议添加的,主要是其作用有限,而且企业内网的IDS主要目的事防护内网的主机和服务器的。同样的,作为一些参考学习是可以的。
一些IP规则集
tor.rules,ciarmy.rules,botcc.rules,drop.rules,compromised.rules,botcc.portgrouped.rules,dshield.rules
这几个规则是et提供的用来描述有威胁IP 的规则,可以看到这些规则的rev字段都是非常的大,代表这些IP地址是会频繁的更新的。那么这些有威胁的IP地址来源是哪里的?比如ciarmy.rules就是ciArny.com标记的攻击源;dshield.rules即dshield标记的攻击源;botcc即一些知名的僵尸网络和cc服务器地址。通常来说IDS/IPS是针对于流量行为的识别,像这种只有IP地址的往往在安全公司内部放在了基于信誉识别的模块。当然如果没有划分那么详细,在IDS/IPS也是可以加入一些IP地址的规则,这些规则对于性能的影响也不是很大。
下面的规则集通常来说比较重要,我将其分为几个类别,如下:
- 按照威胁的分类的规则
- 按照网络协议的规则
- 其他规则
按照威胁的分类的规则
木马,恶软,蠕虫,sql注入,端口扫描,shellcode,dos攻击,dns攻击,邮件服务等等,对应的规则集名称为
trojan.rules,malware.rules,mobile_malware.rule,worm.rules,sql.rules,scan.rules,shellcode.rules,dos.rules,dns.rules,smtp.rules,pop3.rules,imap.rules
trojan.rules规则集是et提供的数量最多的一个规则集,从名字可以看出,其中的规则针对的是木马活动的检测。木马活动可能是从网络中传输一个木马文件,也可能是木马工具的流量特征,还有可能是木马运行前的一些配合行为。由于该规则集过于庞大,可以从其中按照关键字选取一些代表性的规则,比如cve。同样的malware.rules以及mobile_malware.rules是分别针对于非手机端的恶意软件以及手机端的恶意软件的识别。其他的规则集从名称上非常容易区分其目的,可以根据实际的部署环境进行筛选。上述这种基于攻击类型的分类是业内常见的分类,当然如果一种攻击没有确切的分类,一般归为exploit。
exploit.rules
从名称可以看出该规则集主要是识别一些漏洞利用手法的规则,往往这些漏洞利用手法对应着个一个具体的漏洞,可以看出这个规则集中的规则都有对应的cve编号。如果没有特定的cve编号,一般可能是一些漏洞利用工具的利用行为。这个是一个大杂烩,通常不太好分类的都放在该规则集中。
除此之外et还将规则分为了服务端和客户端。这样的分类其实与前面的是有冲突的,但带来的好处也是显而易见的,即编写规则的人员在决定该规则是属于哪个文件的时候,能够更好的选择,有利于使用者来进行规则的筛选。
web_server.rules
这个规则集中的规则针对的是web服务器的的威胁行为,这个并不是针对一个具体的网站威胁的识别。针对的是通用的web服务器攻击行为,比如文件上传漏洞,文件包含漏洞,XSS漏洞。例如一些PHP网站的服务端很有可能存在文件包含漏洞,而利用这类漏洞是固定的方式的,将这些固定的方式进行总结形成的规则,例如:
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET WEB_SERVER PHP Possible file Remote File Inclusion Attempt"; flow:established,to_server; content:".php?"; http_uri; content:"=file|3a|//"; http_uri; reference:cve,2002-0953; reference:url,diablohorn.wordpress.com/2010/01/16/interesting-local-file-inclusion-method/; classtype:web-application-attack; sid:2013002; rev:5; metadata:created_at 2011_06_10, updated_at 2020_04_20;)
通常来说如果相应的检测部署在网关的位置,这个规则集是非常重要的,但是要注意的是例如上述的检测可能对于正常的访问可能出现一些误报行为,对于IPS来说可能需要考虑进行裁剪或者增强。
web_client.rules,attack_response.rules
同样的,该规则集针对的是客户端威胁的识别,对于服务器来说威胁的目的是提权,信息泄露,对于客户端来说威胁是导致客户端软件崩溃,造成一些信息泄露,例如xss等等。
按照协议分类的规则
具体包括:
rpc.rules,tftp.rules,ftp.rules,snmp.rules,icmp.rules,p2p.rules,voip.rules,telnet.rules,netbios.rules
与上述协议关联的攻击方式相对较多,因此针对每一种协议单独形成一个规则集,通过名称应该很容易明白各个规则集的含义。
其他规则
scada.rules,scada_special.rules,misc.rules,user_agents.rules,attack_response.rules
scada是一个工业控制软件威胁拦截规则,user_agents是对于协议有威胁的UA的收集,mis规则是一些混合威胁流量的拦截规则。
一般针对企业的IDS规则,可以从一下几个方面进行考虑:
1,针对客户端,拦截windows家族软件的漏洞,包括windows操作系统,office系列,IE 系列,pdf系列等版本软件。
2,针对服务器,包括Java框架和服务器,python框架,数据库等常见的通用漏洞,例如weblogic,apache,mysql等等。
3,当下比较常见的威胁类型,比如webshell,暴力破解,文件上传,RCE,SQL诸如等等,可以参考CWE。
上述就是个人对于IDS/IPS规则的一些理解。
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。