我正在使用此规则跳过已知 SSL 证书上的 suricata tls 处理:
pass tls any any <> any any (msg:"known good mydomain cert"; tls.fingerprint:"40:.(trimmed for serverfault).:8b"; sid:1000000; rev:1)
即便如此,它也会进入正常的 tls 日志记录。
Jan 29 19:59:38 ip-10-11-12-13 suricata[17331]: {"timestamp":"2016-01-29T19:59:38.285296+0000","flow_id":139920047174784,"in_iface":"eth0","event_type":"tls","src_ip":"10.13.13.13","src_port":49479,"dest_ip":"10.11.12.13","dest_port":8443,"proto":"TCP","tls":{"subject":"C=U...CN=*.mydomain.com","issuerdn":"C=US...","fingerprint":"40:.(trimmed for serverfault).:8b","version":"TLS 1.2"}}
我先local.rules
列出了我的列表,并且我没有更改操作顺序,因此pass
应该首先处理消息。
发生这种情况是因为在配置中设置了“tls:extended:yes”吗?我的意思是,它记录了所有TLS 会话,所以pass
没关系?如果是这种情况,我该如何/应该记录未知/不匹配的 TLS 流量?
(我把它放在snort
标签中是因为没有suricata
标签而且我无法创建标签。我认为 suricata 与 snort 有关。)
TLS 日志记录和规则是完全独立的。Pass 仅确保没有针对此会话评估其他规则。
记录是无条件的。通过规则不会影响它。
但是,在 Suricata 3.0 中,您还可以将 TLS 记录添加到警报日志中。要启用此功能,请取消注释 eve-log 警报类型下的 'tls: yes':
然后,如果指纹不是您要查找的内容,您可能会有一个匹配的规则。例如
注意!在 tls.fingerprint 之前。
这将为您提供也包含 TLS 记录的警报记录。例如
然后,您可以禁用 yaml 中的常规 TLS 日志记录。
这种方法的一个问题是它实际上只适用于否定单个指纹。