3.5.7 depth
depth
3.5.26 pcre
pcre能够让采用perl兼容的正则表达式来书写规则,关于pcre正则表达式的更多细节,请查阅 PCRE网址。
- i 大小写敏感
- s
- A
- E
- G
格式
pcre:[!]"(/<regex>/|m<delim><regex><delim>)[ismxAEGRUBPHMCOIDKYS]";
Note
Example
此例是要大小写不敏感的匹配HTTP URL foo.php?id=<some numbers>
alert tcp any any -> any 80 (content:"/foo.php?id="; pcre:"/\/foo.php?id=[0-9]{1,10}/iU";)
Note
最好将pcre和content配合使用。这将会使得fast-pattern 匹配程序去过滤掉那些不符合的包从而使pcre不至于去匹配所有经过网口的包。
Note
Snort使用pcre不支持对于多个URI的匹配,如果不和uricontent配合使用 的话,PCRE只会去匹配第一个URI。为了使pcre去检查所有的URI,需要使用content或者uricontent。
- R 从最近一次匹配结果的末尾开始匹配
- U 匹配被预处理器解码后的URI(类似于uricontent和http_url)。这个修饰符不能与非格式化的HTTP请求URI缓存(I)修饰同一个content。
- I 匹配未规范化(也就是未被预处理器处理的)的原始HTTP请求URI(类似http_raw_uri)。这个修饰符不能与(U)修饰同一个content。
- P 匹配未规范化的HTTP请求体(类似于http_client_body)。对于SIP消息,匹配SIP请求或者相应的消息体(类似于sip_body)。
- H 匹配规范化的HTTP请求或者响应头部(类似于http_header)。这个修饰符不能和(D)修饰同一个content。对于SIP消息,匹配SIP请求或者响应头部(类似于sip_header)。
- D 匹配未规范化的HTTP请求或者响应头部(类似于http_raw_header)。这个修饰符不能和(H)修饰同一个content。
- M 匹配规范化的HTTP请求方法(类似于http_method)。
- C 匹配规范化的HTTP请求或者响应的cookie(类似于http_cookie)。此修饰符不能和(K)修饰同一个content。
- K 匹配未规范化的HTTP请求或者响应的cookie(类似于http_raw_cookie)。此修饰符不能和(C)修饰同一个content。
- S 匹配HTTP响应状态码(类似于http_stat_code)。
- Y 匹配HTTP响应状态消息(类似于http_stat_msg)。
- B 不使用解码缓存(类似rawbytes)。
- O 不管已经配置的pcre匹配限制和pcre匹配在这个表达式的递归限制(参见2.1.3)。它在评估pcre指定字符的时候完全忽略其限制。