转自https://www.cnblogs.com/luxiaojun/p/8779956.html

1、msg(对匹配到的规则的说明,第一部分约定用大写字母表示,msg始终是签名的第一个关键字)

1

注意:msg中必须转义以下字符: ; \ "

1

2

msg :“ATTACK-RESPONSES 403 Forbidden” ;

msg :“ET EXPLOIT SMB-DS DCERPC PnP绑定尝试” ;

2、Sid(对此规则的一个编号,以数字表示)

1

sid:123;

3、rev(Rev代表签名的版本,规则每改变一次,rev加一次1,与msg向对,rev总是签名的最后一个关键字)

1

rev :123 ;

4、gid(gid表示这条规则所属的组,如果不指定默认为1,通常情况下它会被改变,改变它没有技术含义。您只能在警报中注意到它)

1

[1:2010935:2] 其中1位置表示sid,2010935位置表示sid,2位置表示rev

5、Classtype(提供有关规则和警报分类的信息)

这个定义一般是在classification.conf文件中指定,定义格式依次是短类型名,简短描述,匹配优先级

在匹配规则中定义的是短类型名,而在匹配到的日志文件中显示的这是分类的简短描述

1

匹配规则中 classtype:misc-attack

1

匹配日志文件中 [Classification: Misc Attack] [Priority: 2]

6、Reference(字段表明这条规则相关信息所在url,规则的出处)

1

请注意,不能在url之前使用http

1

reference: url, www.info.nl

另外一种不同的表示方法(其中的2013-2135为参数,引用的url就是http://cve.mitre.org/cgi-bin/cvename.cgi?name=2015-0235)

1

reference:cve,2013-2135

定义引用的地方则是在reference.config配置文件中

7、Priority(priority字段表示此条规则或class的匹配优先级,即使在classification.config文件中指定了每个class的priority,还是可以在规则中重新制定priority字段进行覆盖)

1

priority:1;

该字段的值范围从1-255,在suricata中数字越小表示优先级越高,也就是说如果两条规则都能匹配,则优先匹配priority字段小的规则。

8、metadata(主要原因是当suricata遇到metadata字段便会忽略这个字段的值,还能在规则中使用是为了兼容之前的snort规则)

1

metadata:......;

有效字段匹配关键字(Payload)

1、content(content关键字在suricata规则中非常重要,大部分规则都要使用这个关键字来匹配数据包中的内容,可以在签名中使用多个内容)

1

content: ”............”;

content中的内容是按字节匹配的,能匹配ASCII码从0-255的字节,可打印字符比如a-z可以直接写,而某些特殊符号或是不可打印的字符则需要使用十六进制来表示

1

2

3

4

5

6

|0a|和|0A| 表示空格,十六进制表示时不区分大小写

|61| 表示字母a

|21| 表示!

b 表示字母b

B 表示字母B(直接写a-z的字符则区分大小写)

|61|b 表示字母ab,十六进制描述可以和字符混着写

有些字符不能在内容中使用,因为它们在签名中已经很重要。为了匹配这些字符,你应该使用十六进制符号(用大写字符编写十进制符号是一种惯例)

1

2

3

4

“| 22 |

; | 3B |

:| 3A |

| | 7C |

2、Nocase(nocase关键字是用来修饰content字段的,在content字段后加上nocase表示content中的内容不区分大小写)

3、Depth(depth也是修饰content的关键字,表示从payload开始多少个字节与content中的内容进行匹配,格式如下表示的是匹配’abc’)

4、Offset(与depth不同的是offset是从payload开头先偏移指定字节再对content进行匹配,下图表示的是从开头偏移3字节,从第四字节开始匹配字符串”def”)

5、distance(distance表示从上一个content匹配的末尾偏移指定数量字符再进行本次的content匹配。如下所示,第一次匹配”abc”之后的位置在字符’d’处,distance为0表示不偏移,直接从’d’开始匹配’def’)

6、within(within也是一个修饰content的关键字,他表示从上一个content匹配位置之后的指定字节内对当前的content进行匹配,within的值不能为0。下面这个例子比较清楚的描述了within的用法,匹配完”abc”之后位置在’d’处,从’d’开始的3字节内对”def”进行匹配,而”fgh”明显已经超出了3字节的偏移)

同样,within也可以和distance一起使用,如下所示匹配完”abc”,distance:1向后移动1字节从’d’开始的4个字节以内匹配’def’:

7、isdataat(isdataat关键字是用来判断指定偏移处的字符是否是数据。下面是两个例子,第一个表示从payload开头偏移512个字节的地方是否为数据,第二个则表示从上一次匹配完成之后偏移50字节的地方是否为数据)

1

2

isdataat:512;

isdataat:50, relative;

8、dsize(dsize是用来检测数据包中的payload长度是否在符合要求的范围内,这样可以有效的组织一些缓冲区溢出的攻击。格式如下)

1

2

dsize:min<>max;

dsize:[<|>]<number>;

来看两个例子,第一个表示payload的长度在200-400字节之间,第二个表示不能超过300字节

1

2

dsize:200<>400;

dsize:<300;

9、replace(replace关键字是用来替换匹配到的content中的字符,下面这个表示将匹配到的”abc”替换成”def”)

10、pcre(pcre关键字使用PCRE来匹配payload中的内容,用法一般是首先使用content匹配到指定字符串,然后根据pcre对相应的payload进行正则匹配)

1

pcre:”/[0-9]{6}/”;

11、fast_pattern(suricata对只有一个content关键字的规则使用多模匹配,而对于多个content的规则就对最长对复杂的一个进行多模匹配,而fast_pattern则可以改变这个状况,如果在较短较简单的content字段后加上fast_pattern关键字则会优先匹配这个content,有时这种方法可以有效提升效率。下面这个例子就是这种情况,如果第二个content没有fast_parttern关键字的话便会先去匹配”User-Agent:”,而这个在数据包中的出现频率是远远高于”Badness”的,这样就会导致大量的多余时间浪费到无用的匹配上,使用了fast_pattern之后便大大提高了匹配的效率)

1

2

content:”User-Agent|3A|”;

content:”Badness”; distance:0; fast_pattern;

不仅如此,fast_parttern还支持部分content多模匹配,比如下面这个例子,表示从content的第8字节开始之后的4字节进行多摸匹配以提高效率:

1

content: “aaaaaaaaabc”; fast_pattern:8,4;

snort 基本关键字相关推荐

  1. SNORT入侵检测系统

    0x00 一条简单的规则 alert tcp 202.110.8.1 any -> 122.111.90.8 80 (msg:"Web Access"; sid:1) ale ...

  2. Snort日志输出插件详解

    Snort日志输出插件详解 Snort是一款老×××的开源***检测工具,本文主要讨论他作为日志分析时的各种插件的应用.Snort的日志一般位于:/var/log/snort/目录下.可以通过修改配置 ...

  3. 【转载】用Snort巧妙检测SQL注入和跨站脚本攻击

    脚本攻击是最近网络上最疯狂的攻击方法了,很多服务器配置了先进的硬件防火墙.多层次的安全体系,可惜最后对80端口的SQL注入和跨站脚本攻击还是没有办法抵御,只能看着数据被恶意入侵者改的面目全非而毫无办法 ...

  4. Snort规则检测引擎--架构解析

    1. 规则头和规则选项 snort将所有已知的攻击以规则的形式放在规则库中,规则库中的每条规则条目分为两个部分:规则头(RuleHeader)和规则选项(RuleOption). 规则头包括:规则行为 ...

  5. 「干货」Snort使用手册「详细版」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 前言 1.1 IDS是什么? IDS(intrus ...

  6. 基于Snort的入侵检测系统_相关论文

    摘 要 随着网络技术的发展,中小型企业已建设了属于自己的信息化业务平台与系统.中小型企业只有实现信息互通,资源共享,才能够在当今的竞争中生存下去,但信息的互通会面临一些安全问题,对此需要对其采取一些措 ...

  7. 网络入侵检测--Snort软件规则编写

    Snort规则编写 今天主要来讲一下Snort中的规则编写规则,还有些绕口,就是编写他们的rules的方法,可以帮助我们理解他们提供的rules和定义我们自己的rules. 首先我们来看一条规则 al ...

  8. Snort 入侵检测系统简介

    0x00 snort 简介 Snort (开源) 基于 libpcap,它是一种基于特征检测的入侵检测系统. 一.体系结构   Snort 由四大模块组成:数据包嗅探模块.预处理模块.检测模块.报警/ ...

  9. Snort 用户手册

    Snort 用户手册<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&g ...

最新文章

  1. php 复选框 单选 全选,复选框全选/不全选,选择结果提交
  2. 三星最新屏幕黑科技:可拉伸的OLED屏,能贴在皮肤上
  3. 计算机实验书,[计算机软件及应用]实验书.doc
  4. 单词接龙pascal程序
  5. 10.8.5如何升级(app store 出错 请稍后重试 100)
  6. key位置 win10生成的ssh_Windows 10:如何在OpenSSH中生成SSH密钥
  7. 2021巨量引擎UGC互动营销白皮书
  8. ubuntu apt命令
  9. yii 使用 有赞sdk_有赞 App 动态化配置中心实践
  10. 【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲
  11. 『WPF』DataGrid的使用
  12. 算法求100以内的质数
  13. 新型基础测绘与实景三维中国建设技术文件【2】基础地理实体分类、粒度及精度基本要求
  14. ASPUpLoad 文件上传
  15. [渝粤教育] 岭南师范学院 文学创意写作 参考 资料
  16. jquery怎么读(jquery怎么读音英语)
  17. 34岁程序员面试谈薪资被砍5K,网友:这么降不如在家睡觉
  18. blockly -- 颜色(Block colour)
  19. python数据类型:字符串
  20. Netty学习开发之路

热门文章

  1. input 起止时间_给表单验证控件添加结束时间不得小于开始时间的验证方法
  2. 《大圣归来》电影海报原创作者张浩:如何驾驭灵感作品
  3. 2021-10-24 解决8080端口占用、软件开机自启、C盘清理
  4. CodeForces 622F
  5. http错误500.21解决方法
  6. 计算机工程学院文艺部,计算机系学生会文艺部工作计划
  7. ECCV 2016 A Deep Learning-Based Approach to Progressive Vehicle Re-identification
  8. jQuery对象与js对象之间的转换
  9. git 配置公钥与私钥
  10. mybatis之foreach用法