10.19. SSH关键词

Suricata提供了多个规则关键词来匹配SSH连接中的不同元素。

10.19.1. 钩子函数

SSH可用的钩子函数包括:

请求端(to_server):

  • request_in_progress

  • request_banner_wait_eol

  • request_banner_done

  • request_finished

响应端(to_client):

  • response_in_progress

  • response_banner_wait_eol

  • response_banner_done

  • response_finished

10.19.2. 帧结构

SSH解析器支持以下帧类型:

  • ssh.record_hdr

  • ssh.record_data

  • ssh.record_pdu

这些帧表示SSH记录在横幅之后、加密之前的头部+数据=协议数据单元(PDU)。SSH记录头部长度为6字节:4字节长度,1字节填充,1字节消息代码。

示例:

alert ssh any any -> any any (msg:"hdr帧新密钥"; frame:ssh.record.hdr; content: "|15|"; endswith; bsize: 6; sid:2;)

此规则匹配效果等同于Wireshark的``ssh.message_code == 0x15``。

10.19.3. ssh.proto

匹配使用的SSH协议版本。ssh.proto``是粘性缓冲区,可用作快速模式。``ssh.proto``取代了先前的缓冲区名称``ssh_proto。虽然旧名称仍可使用,但建议将现有规则转换为使用新名称。

格式:

ssh.proto;

示例:

alert ssh any any -> any any (msg:"匹配SSH协议版本"; ssh.proto; content:"2.0"; sid:1000010;)

上例匹配SSH版本为2.0的连接。

10.19.4. ssh.software

匹配SSH横幅中的软件字符串。``ssh.software``是粘性缓冲区,可用作快速模式。

格式:

ssh.software;

示例:

alert ssh any any -> any any (msg:"匹配SSH软件字符串"; ssh.software; content:"openssh"; nocase; sid:1000020;)

上例匹配软件字符串包含"openssh"的SSH连接。

10.19.5. ssh.hassh

匹配客户端的hassh值(客户端算法组合的MD5哈希)。

示例:

alert ssh any any -> any any (msg:"匹配hassh"; \
    ssh.hassh; content:"ec7378c1a92f5a8dde7e8b7a1ddf33d1";\
    sid:1000010;)

``ssh.hassh``属于'粘性缓冲区'。

ssh.hassh``可用作``fast_pattern

10.19.6. ssh.hassh.string

匹配Hassh字符串(客户端的算法组合)。

示例:

alert ssh any any -> any any (msg:"匹配hassh字符串"; \
    ssh.hassh.string; content:"none,zlib@openssh.com,zlib"; \
    sid:1000030;)

``ssh.hassh.string``属于'粘性缓冲区'。

ssh.hassh.string``可用作``fast_pattern

10.19.7. ssh.hassh.server

匹配服务端的hassh值(服务端算法组合的MD5哈希)。

示例:

alert ssh any any -> any any (msg:"匹配SSH服务端哈希"; \
    ssh.hassh.server; content:"b12d2871a1189eff20364cf5333619ee"; \
    sid:1000020;)

``ssh.hassh.server``属于'粘性缓冲区'。

ssh.hassh.server``可用作``fast_pattern

10.19.8. ssh.hassh.server.string

匹配服务端的hassh字符串(服务端算法组合)。

示例::
alert ssh any any -> any any (msg:"匹配SSH服务端哈希字符串";

ssh.hassh.server.string; content:"umac-64-etm@openssh.com,umac-128-etm@openssh.com"; sid:1000040;)

``ssh.hassh.server.string``属于'粘性缓冲区'。

ssh.hassh.server.string``可用作``fast_pattern