我正在尝试生成一些可以触发snort警报以测试snort性能的跟踪。但是某些规则中有一些包含/ R的pcre选项,我不理解。
例如,一个snort规则pcre中有一个pcre选项:"/^(\x75|\x2d|\x2f|\x73|\xa2|\x2e|\x24|\x74)/sR"
,我不知道“ R”在这里的含义。我知道“ s”是可以设置PCRE_DOTALL的pcre修饰符。但是“ R”呢?它也是修饰符还是其他?
我已经搜索了pcre文档,但没有找到“ R”修饰符。因此,我认为这不是修饰符。
这是一个示例示例,其中包含带/ R的pcre选项,我从snort3的社区规则中获得了此规则。
警报udp $ EXTERNAL_NET任意-> $ HOME_NET 138(msg:“ OS-WINDOWS Microsoft Windows SMB unicode andx无效的服务器名称共享访问”;内容:“ | 11 |”,深度1;内容:“ | 00 |”,距离13 ;内容:“ | 00 |”,距离0;内容:“ | FF | SMB”,在4,距离3之内; pcre:“ / ^(\ x75 | \ x2d | \ x2f | \ x73 | \ xa2 | \ x2e | \ x24 | \ x74)/ sR“; byte_test:1,&,128,6,relative;内容:” u“,深度1,偏移量39; byte_jump:2,0,little,relative; byte_jump:2,7 ,little,relative; content:“ | 5C 00 5C 00 |”,距离2,nocase; pcre:!“ / ^([^ \ x5C \ x00]。| [\ x5c \ x00] [^ \ x00])+ \ x5C \ x00 / sR“;元数据:策略max-detect-ips丢弃;参考:cve,2010-0022;参考:url,technet.microsoft.com / zh-cn / security / bulletin / MS10-012;类类型:协议命令解码; sid:16403; rev:12;)
该R
修改是不是原生PCRE改性剂,它是一个用于PCRE Snort的具体修改正则表达式,使Snort3武力特定行为模式。
R相对于最后一个模式匹配结束的匹配。(类似于distance:0;)
...
修饰符R(相对)和B(原始字节)不允许与任何HTTP修饰符一起使用,例如U,I,P,H,D,M,C,K,S和Y。
请注意,以规则作者介绍了如何编写Snort的规则3:
在Snort的2,后重新调节剂(
B
,U
,P
,H
,M
,C
,I
,D
,K
,S
,Y
),用于将正则表达式集合编译时间标志。例如,用于pcre U的Snort特定修饰符用于匹配解码的URI缓冲区。
在Snort的3,一些后重新修饰的(B
,U
,P
,H
,M
,C
,I
,D
,K
,S
,Y
)一直赞成粘缓冲区删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句