Suricata附带了几个规则关键字,以匹配TLS / SSL握手的各种属性。匹配是字符串包含匹配。
1.tls_cert_subject
匹配TLS / SSL证书主题字段。
示例:
tls_cert_subject; content:"CN=*.googleusercontent.com"; isdataat:!1,relative;
tls_cert_subject; content:"google.com"; nocase; pcre:"/google.com$/";
说明:
tls_cert_subject 是一个'粘性缓冲'。
tls_cert_subject可以用作fast_pattern。
2.tls_cert_issuer
匹配TLS / SSL证书颁发者字段。
示例:
tls_cert_issuer; content:"WoSign"; nocase; isdataat:!1,relative;
tls_cert_issuer; content:"StartCom"; nocase; pcre:"/StartCom$/";
说明:
tls_cert_issuer 是一个'粘性缓冲'。
tls_cert_issuer可以用作fast_pattern。
3.tls_cert_serial
匹配证书中的序列号。
示例:
alerttlsanyany->anyany(msg:"match cert serial";tls_cert_serial;content:"5C:19:B7:B1:32:3B:1C:A1";sid:200012;)
说明:
tls_cert_serial 是一个'粘性缓冲'。
tls_cert_serial可以用作fast_pattern。
4.tls_cert_fingerprint
匹配证书的SHA-1指纹。
示例:
alerttlsanyany->anyany(msg:"match cert fingerprint";\tls_cert_fingerprint;content:"4a:a3:66:76:82:cb:6b:23:bb:c3:58:47:23:a4:63:a7:78:a4:a1:18";\sid:200023;)
说明:
tls_cert_fingerprint 是一个'粘性缓冲'。
tls_cert_fingerprint可以用作fast_pattern。
5.tls_sni
匹配TLS / SSL服务器名称指示字段。
示例:
tls_sni; content:"oisf.net"; nocase; isdataat:!1,relative;
tls_sni; content:"oisf.net"; nocase; pcre:"/oisf.net$/";
说明:
tls_sni 是一个'粘性缓冲'。
tls_sni可以用作fast_pattern。
6.tls_cert_notbefore
匹配证书中的NotBefore字段。
示例:alerttlsanyany->anyany(msg:"match cert NotBefore";tls_cert_notbefore:1998-05-01<>2008-05-01;sid:200005;)
7.tls_cert_notafter
匹配证书中的NotAfter字段
示例:alerttlsanyany->anyany(msg:"match cert NotAfter";tls_cert_notafter:>2015;sid:200006;)
8.tls_cert_expired
如果证书过期,匹配返回true。它从证书中评估有效日期。
用法:tls_cert_expired;
9.tls_cert_valid
如果证书未过期,则匹配返回true。它只评估有效日期。它并没有做证书链验证。它是相反的tls_cert_expired。
用法:tls_cert_valid;
10.tls.version
匹配协商的TLS / SSL版本。
支持的值:“1.0”,“1.1”,“1.2”,“1.3”
也可以使用十六进制字符串匹配版本。
示例:
tls.version:1.2;
tls.version:0x7f12;
第一个示例匹配TLSv1.2,而最后一个示例匹配TLSv1.3草案16
11.SSL_VERSION
匹配SSL / TLS记录的版本。
支持的值“sslv2”,“sslv3”,“tls1.0”,“tls1.1”,“tls1.2”,“tls1.3”
示例:
alerttlsanyany->anyany(msg:"match TLSv1.2";ssl_version:tls1.2;sid:200030;)
也可以同时匹配多个版本:
alerttlsanyany->anyany(msg:"match SSLv2 and SSLv3";ssl_version:sslv2,sslv3;sid:200031;)
12.tls.subject
匹配TLS / SSL证书主题字段。
示例:tls.subject:"CN=*.googleusercontent.com"
区分大小写,不能使用'nocase'。
旧版关键字。tls_cert_subject是替代品。
13.tls.issuerdn
匹配TLS / SSL证书IssuerDN字段。
示例:tls.issuerdn:!"CN=Google-Internet-Authority"
区分大小写,不能使用'nocase'。
旧版关键字。tls_cert_issuer是替代品。
14.tls.fingerprint
匹配TLS / SSL证书SHA1指纹。
示例:
tls.fingerprint:!"f3:40:21:48:70:2c:31:bc:b5:aa:22:ad:63:d6:bc:2e:b3:46:e2:5a"
区分大小写,不能使用'nocase'。
tls.fingerprint缓冲区是小写的,因此您必须使用小写字母才能匹配。
15.tls.store
在磁盘上存储TLS / SSL证书
16.ssl_state
该ssl_state关键字匹配SSL连接的状态。可能的状态是client_hello,server_hello,client_keyx,server_keyx和unknown。您可以使用 |(OR)指定多个状态以检查任何指定的状态。
网友评论