BNF范式
ATTACK::= ATTACK_NAME { SIGNATURES
MATCH
DESCRIPTION }
ATTACK_NAME::= <字符串>
SIGNATURES::= SIGNATURE SIGNATURES | ε
SIGNATURE::= IP_SIGNATURE | DIR | GET_SIGNATURE |
OPT_SIGATURE | EXP_SIGNATURE | PROTO | ε
PROTO::= tcp | ip | icmp | udp
IP_SIGNATURE::= (sip | dip) IP_ADDR [\ MASK] |ε
IP_ADDR::= <整数>.<整数>.<整数>.<整数> // 大于0小于255的自然数
MASK::= <整数> // 大于1小于32的自然数
OPT_SIGATURE::= opt: OPTS |ε
OPTS::= (OPT | !OPT) OPTS |ε
OPT::= cwr | ecn | urg | ack | push | reset | syn | fin |ε
DIR::= s2d | d2s |ε
EXP_SIGNATURE::= EXP_NAME : EXPS |ε
EXP_NAME::= sport | dport | udplen | tcplen | iplen |
tcpsequence |ε
EXPS::= EXP EXPS | Z
EXP::= <整数> : <整数>
EXP::= EXP (or | and) EXP
EXP::= !EXP
GET_SIGNATURE::= MatchGet
MATCH::= SUBSTR MATCH | Z
SUBSTR::= substr (匹配字符串,匹配起始点,匹配结束点,匹配模式)
匹配模式::= nocase | anamorphosis
DESCRIPTION::= ALARM CONFIDENCE SEVERITY CVE
ALARM::= @alarm=攻击代号,攻击类型
CONFIDENCE::= !Confidence= <整数>
SEVERITY::= !Severity= <整数>
CVE::= <字符串>