6.32. 通用应用层关键字¶
6.32.1. 应用层协议¶
与检测到的应用层协议匹配。
语法::
app-layer-protocol:[!]<protocol>;
实例:
app-layer-protocol:ssh;
app-layer-protocol:!tls;
app-layer-protocol:failed;
特殊值“failed”可用于匹配协议检测失败的流。如果Suricata不知道协议或某些“救市”条件发生,就会发生这种情况。
6.32.1.1. 救助条件¶
在某些情况下,协议检测会放弃:
两边都检查过,没有发现匹配
A端检测失败,B端完全没有流量(如ftp数据通道)
A面检测失败,B面数据检测太少没有结论
在最后两个案例中, app-layer-event:applayer_proto_detection_skipped
被设置。
6.32.2. 应用层事件¶
匹配应用层解析器和协议检测引擎生成的事件。
语法::
app-layer-event:<event name>;
实例:
app-layer-event:applayer_mismatch_protocol_both_directions;
app-layer-event:http.gzip_decompression_failed;
6.32.2.1. 协议检测¶
6.32.2.1.1. applayer_mismatch_protocol_both_directions¶
toserver和toclient方向有不同的协议。例如,客户机与ssh服务器进行HTTP对话。
6.32.2.1.2. applayer_wrong_direction_first_data¶
Suricata中的一些协议实现对第一个数据方向有要求。HTTP解析器就是一个例子。
6.32.2.1.3. applayer_detect_protocol_only_one_direction¶
协议检测只在一个方向上成功。对于ftp和smtp,这是预期的。
6.32.2.1.4. applayer_proto_detection_skipped¶
由于,跳过了协议检测 救助条件 .