美文网首页
SSL/TLS 关键字

SSL/TLS 关键字

作者: lx_jian | 来源:发表于2019-06-20 14:07 被阅读0次

    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)指定多个状态以检查任何指定的状态。

    相关文章

      网友评论

          本文标题:SSL/TLS 关键字

          本文链接:https://www.haomeiwen.com/subject/imklqctx.html