10.36. HTTP2 关键词

HTTP2帧会基于流标识符进行事务分组(当标识符不为0时)。对于流标识符为0的帧(其影响对连接是全局性的),每个帧都会创建一个独立的事务。

10.36.1. 帧类型

HTTP2解析器支持以下帧类型(按Suricata定义),这些帧会为每个HTTP2帧(按HTTP2 RFC定义)创建:

  • http2.hdr

  • http2.data

  • http2.pdu

10.36.2. http2.frametype

匹配事务中出现的帧类型。

示例:

http2.frametype:GOAWAY;

10.36.3. http2.errorcode

匹配GOAWAY或RST_STREAM帧中的错误码。

示例:

http2.errorcode: NO_ERROR;
http2.errorcode: INADEQUATE_SECURITY;

10.36.4. http2.priority

匹配PRIORITY或HEADERS帧中的HTTP2优先级字段值。

http2.priority使用 8位无符号整数

该关键词在冒号后接受数字参数,并支持以下修饰符:

  • ``>``(大于)

  • ``<``(小于)

  • ``x-y``(值范围介于x和y之间)

示例:

http2.priority:2;
http2.priority:>100;
http2.priority:32-64;

10.36.5. http2.window

匹配WINDOWUPDATE帧中的HTTP2窗口值字段。

http2.window使用 32位无符号整数

该关键词在冒号后接受数字参数,并支持以下修饰符:

  • ``>``(大于)

  • ``<``(小于)

  • ``x-y``(值范围介于x和y之间)

示例:

http2.window:1;
http2.window:<100000;

10.36.6. http2.size_update

匹配HTTP2动态头部表的大小。 协议详情参见: https://tools.ietf.org/html/rfc7541#section-6.3

http2.size_update使用 64位无符号整数

该关键词在冒号后接受数字参数,并支持以下修饰符:

  • ``>``(大于)

  • ``<``(小于)

  • ``x-y``(值范围介于x和y之间)

示例:

http2.size_update:1234;
http2.size_update:>4096;

10.36.7. http2.settings

匹配SETTINGS帧中的HTTP2配置项名称和值。

该关键词在冒号后接受数字参数,并支持以下修饰符:

  • ``>``(大于)

  • ``<``(小于)

  • ``x-y``(值范围介于x和y之间)

示例:

http2.settings:SETTINGS_ENABLE_PUSH=0;
http2.settings:SETTINGS_HEADER_TABLE_SIZE>4096;

10.36.8. http2.header_name

匹配HEADER帧(或PUSH_PROMISE、CONTINUATION帧)中的HTTP2头部名称。

示例:

http2.header_name; content:"agent";

http2.header_name 是'粘性缓冲区'。

http2.header_name 可作为 fast_pattern 使用。

http2.header_name 支持多缓冲区匹配,参见 多缓冲区匹配

10.36.9. 补充信息

协议详情参见: https://tools.ietf.org/html/rfc7540