DescribeSecurityEventTopNMetric - 查询攻击流量top统计数据

查询攻击流量top统计数据,攻击流量按照一定维度聚合统计并排序后返回topN数据。

接口说明

攻击流量指的是命中规则并且被判定为有风险的请求。如下三种数据不包含:

  • 命中“白名单规则”的请求。
  • 命中 bot 规则,但是规则动作为“回源标记”的请求。
  • 命中规则并且规则动作为“动态令牌”/“滑块”/“严格滑块”/“js 验证”,但是用户校验通过并放行的请求。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用前面加 * 表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
yundun-waf:DescribeSecurityEventTopNMetricget
*全部资源
*

请求参数

名称类型必填描述示例值
InstanceIdstring

WAF 实例的 ID。

说明 您可以调用 DescribeInstance 查询当前 WAF 实例的 ID。
waf_cdnsdf3****
Filterobject

查询过滤条件,多个过滤条件之间是逻辑与的关系。

DateRangeobject

查询时间范围。

StartDatelong

查询的数据范围不超过过去 30 天。查询数据时使用的开始时间,使用 UNIX 时间戳表示,单位:秒。

说明 开始时间必须晚于当前时间减去 30 天。
1713888000
EndDatelong

查询数据时使用的结束时间,使用 UNIX 时间戳表示,单位:秒。

1713888600
Conditionsarray<object>

过滤条件列表,每一个节点描述一个过滤条件。

object

单个查询条件配置,查询条件由字段名称操作符过滤内容组成。关于查询条件中支持的字段名称以及操作符请参见请求参数补充说明

Keystring

执行过滤操作的字段名称,该接口支持所有字段。

matched_host
OpValuestring

操作符。

eq
Valuesany

过滤值。

test.waf-top
Limitlong

控制统计数据按照降序排序后返回数据条数,最大值为 10。

10
Metricstring

用于区分返回的数据内容,不同的 Metric 对应不同的数据内容,该接口支持的 Metric 如下:

说明 “攻击请求”的定义参见 API 接口描述,下面的描述中引用该概念
  • real_client_ip,把攻击请求的源 IP 聚合统计并降序排序后,返回前 N 条数据
  • http_user_agent,把攻击请求的 User-Agent 聚合统计并按照降序排序后,返回前 N 条数据
  • matched_host,把攻击请求命中的防护对象聚合统计并按照降序排序后,返回前 N 条数据
  • remote_region_id,把攻击请求的源 IP 所属的国家聚合统计并降序排序后,返回前 N 条数据
  • request_path,把攻击请求的 URL(不包含 query)聚合统计并按照降序排序后,返回前 N 条数据
  • block_defense_scene,把拦截请求(处置动作为非“观察”)的最终处置模块聚合统计并按照降序排序后,返回前 N 条数据
  • defense_scene,把攻击请求命中的所有防护模块进行聚合统计并按照降序排序后,返回前 N 条数据
  • defense_scene_rule_id,查询命中的非观察规则的 top rule id 以及规则对应的防护模块。该查询只返回非观察模式规则的统计。返回数据格式如下:
    { "Attribute": "waf_base", "Value": 140, "Name": "111034" }
  • defense_scene_with_rule_id,返回命中请求数排名前 N 的规则 id 以及规则所属防护模块,使用“-”连接。该查询不区分规则动作,包含了观察规则和拦截规则。返回格式如下所示:
    { "Attribute": "", "Value": 1, "Name": "120075-waf_base" }
  • defense_scene_top_rule_id,查询某个防护模块的 top 命中规则,需要在 Filter 的 Conditions 字段指定过滤条件,比如查询"自定义 acl"模块的 top 命中规则,Conditions 字段格式如下:
    { "Key": "defense_scene_map", "OpValue": "contain", "Values": "custom_acl" }
  • defense_scene_rule_type,查询 web 核心防护模块的 top 命中规则类型,只有 Web 核心防护模块支持该查询,因为只有 Web 核心防护有规则子类型。查询时需要在 Filter 的 Conditions 字段指定过滤条件。格式如下:
    { "Key": "defense_scene", "OpValue": "eq", "Values": "waf_base" }
real_client_ip
RegionIdstring

WAF 实例所属地域。取值:

  • cn-hangzhou:表示中国内地。
  • ap-southeast-1:表示非中国内地。
cn-hangzhou
ResourceManagerResourceGroupIdstring

阿里云资源组 ID。

rg-acfm***q

操作符说明

操作符含义说明
all-not-match不等于任一值字段值和数据集合中的任意数据都不相等,例如过滤 real_client_ip 不等于集合中任一值:
{"Key":"real_client_ip","OpValue":"all-not-match","Values":["1.1.1.1","2.2.2.2","3.3.3.3"]}
contain包含字段值包含某个字符串,例如过滤 URL 包含"test"的数据:
{"Key":"request_path","OpValue":"contain","Values":"test"}
eq等于字段值等于某个字符串,例如过滤 URL 等于"/testcase"的数据:
{"Key":"request_path","OpValue":"eq","Values":"/testcase"}
match-one等于多值之一字段值和数据集合中的任意一数据相等,例如过滤 real_client_ip 等于集合中任一值:
{"Key":"real_client_ip","OpValue":"match-one","Values":["1.1.1.1","2.2.2.2","3.3.3.3"]}
ne不等于字段值不等于某个字符串,例如过滤 URL 不等于"/testcase"的统计数据:
{"Key":"request_path","OpValue":"ne","Values":"/testcase"}
not-contain不包含字段值不包含某个字符串,例如过滤 URL 不包含"test"的数据:
{"Key":"request_path","OpValue":"not-contain","Values":"test"}
prefix-match前缀匹配字段值以某个字符串作为前缀,例如滤 URL 前缀是"/testcase"的数据:
{"Key":"request_path","OpValue":"prefix-match","Values":"/testcase"}
suffix-match后缀匹配字段值以某个字符串作为后缀,例如过滤 URL 后缀是"/testcase"的数据:
{"Key":"request_path","OpValue":"suffix-match","Values":"/testcase"}

过滤条件支持的 Key

字段名称字段含义支持的操作符
action防护动作,即该请求最终被处置的动作。ne、eq
cluster防护集群。ne、eq、
match-one、
all-not-match
defense_scene防护模块,一条请求可能命中多个防护模块,使用该字段过滤出的请求可能也会同时命中其它模块。ne、eq
hosthttp 头部的 host。contain、
not-contain、ne、eq、match-one、all-not-match、prefix-match、suffix-match
http_cookiehttp 头部的 cookie。contain、
not-contain、ne、eq、match-one、
all-not-match、prefix-match、suffix-match
http_user_agenthttp 头部获取的 User-Agent。contain、
not-contain、ne、eq、match-one、
all-not-match、prefix-match、suffix-match
matched_host防护对象。ne、eq、
match-one、
all-not-match
real_client_ip请求源 IP,操作符后跟随的参数只能是 IP 地址字符串或者 IP 地址字符串列表,不支持网段查询。ne、eq、
match-one、
all-not-match
remote_country_idhttp 请求源 IP 归属国家。ne、eq、
match-one、
all-not-match
remote_region_idhttp 请求源 IP 省市。ne、eq、
match-one、
all-not-match
request_methodhttp 请求方法。ne、eq、
match-one、
all-not-match
request_pathhttp 请求 URL,不包含 query。contain、
not-contain、ne、eq、match-one、
all-not-match、prefix-match、suffix-match
request_traceid标识请求的唯一 ID。ne、eq、
match-one、
all-not-match
rule_id规则 ID,一条请求可能命中多条规则,使用该字段过滤出的请求可能也会同时命中其它规则。ne、eq

返回参数

名称类型描述示例值
object

返回的数据结果,格式样例参见示例

RequestIdstring

请求 ID。

D827FCFE-90A7-4330-9326-*****B4C7726
SecurityEventTopNValuesarray<object>

返回的 top 统计数据数组。

TopNValueobject

每一个点对应一条 top 统计数据。

Namestring

某个字段的值,根据查询的 Metric 不同,代表不同的含义。

10000
Attributestring

用于返回额外的信息,比如返回规则 ID 所属的防护模块。

waf_base
Valuelong

用于 top 排序的统计计数。

1111
TopNMetaDataobject

返回数据的元信息。

DateRangeobject

查询时使用的时间范围。

StartDatelong

查询数据时使用的开始时间,使用 UNIX 时间戳表示,单位:秒。该值和入参数重的 StartDate 一致。

1713888000
EndDatelong

查询数据时使用的结束时间,使用 UNIX 时间戳表示,单位:秒。该值和入参数重的 EndDate 一致。

1713888600
Unitsstring

返回的统计数据的单位。

requests

示例

正常返回示例

JSON格式

{
  "RequestId": "D827FCFE-90A7-4330-9326-*****B4C7726\n",
  "SecurityEventTopNValues": [
    {
      "Name": "10000",
      "Attribute": "waf_base\n",
      "Value": 1111
    }
  ],
  "TopNMetaData": {
    "DateRange": {
      "StartDate": 1713888000,
      "EndDate": 1713888600
    },
    "Units": "requests\n"
  }
}

错误码

HTTP status code错误码错误信息描述
400Waf.Report.%sInvalid parameter:%s.无效的参数:%s
400Waf.Report.InternalErrorServer error occurred in report service.报表服务内部错误

访问错误中心查看更多错误码。