10.29. SNMP 关键词

10.29.1. snmp.version

SNMP协议版本号(整数)。预期值为1、2(对应版本2c)或3。

snmp.version 使用 32位无符号整数

语法:

snmp.version:[操作符]<数值>

可通过精确匹配或_操作符_比较版本:

snmp.version:3    # 精确匹配3
snmp.version:<3   # 小于3
snmp.version:>=2  # 大于等于2

规则示例:

alert snmp any any -> any any (msg:"过时的SNMP版本(<3)"; snmp.version:<3; sid:1; rev:1;)

10.29.2. snmp.community

SNMP团体字符串相当于SNMPv1和v2c消息的密码。 在版本3中,团体字符串可能被加密。若值不可访问时此关键词不会匹配。

默认只读团体字符串通常为"public",读写团体字符串为"private"。

比对区分大小写。

语法:

snmp.community; content:"private";

规则示例:

alert snmp any any -> any any (msg:"SNMP团体字符串private"; snmp.community; content:"private"; sid:2; rev:1;)

snmp.community 是'粘性缓冲区'。

snmp.community 可用作 fast_pattern

10.29.3. snmp.usm

SNMP基于用户的安全模型(USM)用于版本3。 对应用户名。

比对区分大小写。

语法:

snmp.usm; content:"admin";

规则示例:

alert snmp any any -> any any (msg:"SNMP USM用户admin"; snmp.usm; content:"admin"; sid:2; rev:1;)

snmp.usm 是'粘性缓冲区'。

snmp.usm 可用作 fast_pattern

10.29.4. snmp.pdu_type

SNMP PDU类型(整数)。

snmp.pdu_type 使用 32位无符号整数

常见值包括:

  • 0: GetRequest

  • 1: GetNextRequest

  • 2: Response

  • 3: SetRequest

  • 4: TrapV1 (已废弃,SNMPv1中的旧Trap-PDU)

  • 5: GetBulkRequest

  • 6: InformRequest

  • 7: TrapV2

  • 8: Report

若值不可访问(如加密的SNMPv3消息),此关键词不会匹配。

语法:

snmp.pdu_type:<数值>

规则示例:

alert snmp any any -> any any (msg:"SNMP响应消息"; snmp.pdu_type:2; sid:3; rev:1;)