来源自我的博客
http://www.yingzinanfei.com/2017/02/01/snortguizebyte_testxiangxijieshi/
网上关于snort规则的解读不够详细,有些规则甚至没有具体的解释。
根据个人经验,介绍几个如下:
Byte_Test
测试一个字节的域为特定的值。能够测试二进制值或者把字节字符串转换成二进制后再测试。
格式:byte_test: , , , [[relative],[big],[little],[string],[hex],[dec],[oct]]
bytes_to_convert 从数据包取得的字节数。
operator 对检测执行的操作 (<,>,=,!)。
value 和转换后的值相测试的值。
offset 开始处理的字节在负载中的偏移量。
relative 使用一个相对于上次模式匹配的相对的偏移量。
big 以网络字节顺序处理数据(缺省)。
little 以主机字节顺序处理数据。
string 数据包中的数据以字符串形式存储。
hex 把字符串数据转换成十六进制数形式。
dec 把字符串数据转换成十进制数形式。
oct 把字符串数据转换成八进制数形式。
例子:
byte_test:4,>,1000,20
这里是从本规则内前面匹配的位置结尾开始,向后偏移20个字节,再获取后面的4个字节的数据,与十进制数据1000进行比较,如果大于1000,就命中。
其实byte_test这个规则与content这个规则相比大致就是增加了>和<这两个方法,因为对content来说其只能进行相等的比较。