速率过滤器

速率过滤器概述

类型

模块(基本)

使用方式

情景

实例类型

单例对象

已启用

false

基于速率的攻击通过向网络或主机发送过多的流量,企图让网络或主机不堪重负,导致其速度下降或拒绝合法请求。您可以使用基于速率的防御来更改入侵规则的动作,以响应对该规则的过多匹配。

rate_filter 检测在给定间隔内何时发生规则匹配过多。此功能可以用于内联部署的受管设备上,先在指定时间内拦截基于速率的攻击,然后恢复为规则匹配项仅生成事件而不丢弃流量的规则状态。

您可以配置 rate_filter 以响应任何入侵规则,但必须为 rate_filter 启用您指定的规则才能检测攻击和响应。例如,要建立针对 DDOS/SYN 泛洪攻击的防御,请启用规则 135:1(已接收 TCP SYN),并将 rate_filter 配置为对规则 135:1 的触发次数过多发出警报。

基于速率的攻击防御可确定异常流量模式,并可将这些流量对合法请求的影响降至最低。您可以识别出发往一个或多个特定目标 IP 地址或者由一个或多个特定源 IP 地址发出的流量中存在的过多规则匹配项。也可以对检测的所有流量中符合特定规则的过多匹配项作出响应。

下图显示的例子中,攻击者正在尝试访问主机。反复尝试查找密码触发了配置有基于速率的攻击防御的规则。当在 10 秒的时间跨度内发生五次规则匹配之后,基于速率的设置会将规则属性更改为“丢弃并生成事件”(Drop and Generate Events)。新的规则属性在 15 秒之后超时。

请注意,到达超时时间后,在接下来的基于速率的采样周期内,系统仍然丢弃数据包。如果采样速率高于当前或前一个采样周期的阈值,新操作将继续。只有在采样周期完毕而采样速率低于阈值速率之后,新操作才会恢复为“生成事件”(Generate Events)。

基于速率的攻击防御

可以对同一规则以及不同规则定义多个基于速率的过滤器。在定义了多个基于速率的过滤器的入侵策略中,策略中列出的第一个过滤器具有最高优先级。当两个基于速率的过滤器的操作相冲突时,系统将执行第一个基于速率的过滤器的操作。

rate_filter 设置的配置参数适用于部署中的所有流量。但是,系统为系统监控的每个唯一连接维护一个单独的计数器,用于记录采样期间内的匹配项数量。系统还会针对每个连接将更改应用到操作。



基于速率的操作无法启用禁用的规则,也无法丢弃与禁用的规则匹配的流量。


速率过滤器参数

rate_filter[]

指定 rate_filter 信息的数组。每个 rate_filter 包括一组字段,如果流量包含基于速率的攻击,这些字段可以更改规则操作。

类型: 数组(对象)

示例:
{
    "rate_filter": {
        "data": [
            {
                "apply_to": "[10.1.2.100, 10.1.2.101]",
                "count": 5,
                "gid": 135,
                "new_action": "alert",
                "seconds": 1,
                "sid": 1,
                "timeout": 5,
                "track": "by_src"
            }
        ],
        "enabled": true,
        "type": "singleton"
    }
}

rate_filter[].gid

指定标识要匹配的规则的生成器 ID (GID)。

类型: 整数

有效范围: 04,294,967,295(最大 32)

默认值: 1

rate_filter[].sid

指定标识要匹配的规则的签名 ID (SID)。

类型: 整数

有效范围: 04,294,967,295(最大 32)

默认值: 1

rate_filter[].track

指定过滤器以匹配源地址或目标地址。

类型: enum

有效值:

  • by_src:仅过滤与 rate_filter[].gidrate_filter[].sid指定的规则匹配的流量,且源地址与 rate_filter[].apply_to匹配。

  • by_dst:仅过滤与 gidsid指定的规则匹配且目标地址与 rate_filter[].apply_to匹配的流量。

  • by_rule:过滤与 rate_filter[].gidrate_filter[].sid指定的规则匹配的所有流量。

默认值:by_src

rate_filter[].count

指定在应用替代操作 (rate_filter[].new_action) 之前,在采样期 (rate_filter[].seconds) 内允许的规则匹配数。

类型: 整数

有效范围: 04,294,967,295(最大 32)

默认值: 1

rate_filter[].seconds

指定与流量匹配的采样周期中的秒数。 rate_filter[].seconds 表示将匹配项的内部计数器重置为零之前经过的时间量。

类型: 整数

有效范围: 04,294,967,295(最大 32)

默认值: 1

rate_filter[].new_action

指定为响应超过 rate_filter[].secondsrate_filter[].count指定的限制的流量中的匹配项而采取的操作。

类型: 字符串

有效值:以下字符串之一: alertblockdroplogpassreactrejectrewrite

默认值: alert

rate_filter[].timeout

指定为响应匹配流量而执行由 rate_filter[].new_action 指定的操作的秒数。

类型: 整数

有效范围: 04,294,967,295(最大 32)

默认值:0

rate_filter[].apply_to

指定要根据流量源或目标地址匹配的网络地址列表,具体取决于 rate_filter[].track的值。

类型: 字符串

有效值: 有效的 IPv4 地址或 CIDR 格式的 IPv4 地址块。

默认值: None

速率过滤器规则

rate_filter 没有任何关联规则。

您可以配置 rate_filter 以响应任何入侵规则。启用规则的 rate_filter 以检测攻击和响应。

速率过滤器入侵规则选项

rate_filter 没有任何入侵规则选项。