Snort规则编写求助:匹配HTTP GET且URI含gif的规则校验失败
Snort HTTP GET匹配规则校验失败排查
你的规则同时存在语法硬错误和逻辑疏漏,整体偏差很小,修正后即可通过校验。
语法层面错误(直接导致规则解析失败)
- 流量方向符书写错误:Snort规则中单向流量的匹配方向符为
->,你使用的单大于号>不符合语法规范,会直接触发解析报错。 - 引号格式错误:规则中包裹匹配字符串使用了中文全角双引号
“”,Snort仅识别英文半角双引号""包裹的匹配内容,全角符号无法被规则引擎解析。 - 修订号格式不规范:
rev(规则版本号)字段取值不需要前导补0,写为rev:1即可,部分严格的校验环境会将带前导零的版本号判定为格式错误。 - 缺失标准必填字段:标准Snort告警规则要求配置
msg(告警描述)字段,部分校验环境会将缺失该字段的规则判定为不合规。
逻辑层面优化点(避免漏报误报)
现有规则未配置大小写不敏感匹配:HTTP协议的请求方法、URI字段不强制区分大小写,若流量中出现方法为小写get、URI中为大写GIF的场景,现有规则会产生漏报,建议添加nocase修饰符适配通用场景。
修正后可通过校验的规则参考
alert tcp any any -> any 80 (msg:"HTTP GET request with gif in URI"; content:"GET"; http_method; content:"gif"; http_uri; nocase; sid:1000001; rev:1;)
如果题目明确要求严格匹配小写字符、不允许忽略大小写,直接删除规则中的nocase字段即可。
内容的提问来源于stack exchange,提问作者PeanutBudha
相关产品推荐
相关产品推荐

