1.简介
现在的NIDS领域snort一枝独秀,而suricata是完全兼容snort规则的多线程IDS,无论在效率还是性能上都超过原有的snort,这个系列主要针对suricata的规则中的一些关键字进行了解和学习,参考suricata的文档,链接为为:https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Rules
2.基本关键字
所谓的基本关键字是指不对检测结果造成影响的关键字,也就是常说的Meta-Settings,虽然对匹配结果没影响,但是这些关键字往往对于检测结果的显示、规则的解释、版本等有着重要的作用。
首先来看一条用来检测CVE-2015-0235的规则,这条规则包含了msg、sid、reference、classtype、rev、gid这些基本关键字,这些关键字对于规则的匹配并没有任何影响:
2.1 msg (message)
msg关键字是通过这条规则检测出问题,然后显示在日志中的内容,作为这条规则最主要的解释。msg的格式为:
msg:"......";
比如在上述规则中msg字段为,表明这是一条针对glibc的ghost缓冲区溢出漏洞的EHLO包的攻击:
msg:"Glibc Ghost Attack - Buffer Overflow Attempt(EHLO)";
在检测结果中如下红色部分:
2.2 sid (signature id)
sid字段表示这条规则的id,值为一个数字,格式为:
sid:number;
在上述规则的表现为:
2.3 rev (Revision)
rev字段往往和sid字段一起使用,用于标注针对这条规则的版本,每修改一次rev数值加1,格式为:
rev:number;
在上述规则中的表现为:
2.4 gid (Group id)
gid表示这条规则所属的组,如果不指定默认为1,上述规则中格式表示所属组的id号为3:
gid:3;
在上述规则中表现为:
2.5 classtype
classtype用于对规则进行分类及匹配的优先级进行指定。这个定义一般是在classification.conf文件中指定,定义格式依次是短类型名,简短描述,匹配优先级: