alert ip any any -> any any (msg:"SURICATA Applayer Mismatch protocol both directions"; flow:established; app-layer-event:applayer_mismatch_protocol_both_directions; flowint:applayer.anomaly.count,+,1; classtype:protocol-command-decode; sid:2260000; rev:1;)
复制代码
b.rule
alert http any any -> any any (msg:"SURICATA HTTP unknown error"; flow:established; app-layer-event:http.unknown_error; flowint:http.anomaly.count,+,1; classtype:protocol-command-decode; sid:2260000; rev:1;)
复制代码
suricata.yaml
rule-files:
- a.rule
- b.rule
复制代码
二、 Suricata 规则去重
suricata 规则通过一个hashtable进行去重。
2.1 hashtable 建立
// src/suricata.c
PostConfLoadedDetectSetup
// src/detect-engine.c
-> DetectEngineCtxInit
// src/detect-engine.c
-> DetectEngineCtxInitReal
// src/detect-parse.c
-> DetectParseDupSigHashInit
// src/suricata.c
-> LoadSignatures
复制代码
int DetectParseDupSigHashInit(DetectEngineCtx *de_ctx)