查询攻击流量的详情日志列表,每条日志中包含了一条请求命中的详细信息。
接口说明
攻击流量指的是命中规则并且被判定为有风险的请求。如下三种数据不包含:
- 命中“白名单规则”的请求。
- 命中 bot 规则,但是规则动作为“回源标记”的请求。
- 命中规则并且规则动作为“动态令牌”/“滑块”/“严格滑块”/“js 验证”,但是用户校验通过并放行的请求。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
yundun-waf:DescribeSecurityEventLogs | get | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
InstanceId | string | 是 | WAF 实例的 ID。
您可以调用 DescribeInstance 查询当前 WAF 实例的 ID。
| waf_cdnsdf3**** |
Filter | object | 是 | 查询过滤条件,多个过滤条件之间是逻辑与的关系。 | |
DateRange | object | 是 | 查询时间范围。 | |
StartDate | long | 是 | 1713888000 | |
EndDate | long | 是 | 查询数据时使用的结束时间,使用 UNIX 时间戳表示,单位:秒。 | 1713888600 |
Conditions | array<object> | 否 | 过滤条件列表,每一个节点描述一个过滤条件。 | |
object | 否 | 单个查询条件配置,查询条件由字段名称、操作符和过滤内容组成。关于查询条件中支持的字段名称以及操作符请参见请求参数补充说明。 | ||
Key | string | 否 | 执行过滤操作的字段名称,该接口支持所有字段。 | matched_host |
OpValue | string | 否 | 操作符。 | eq |
Values | any | 否 | 过滤值。 | test.waf-top |
PageSize | long | 是 | 分页查询时每页的行数。最大值为 100。 | 10 |
PageNumber | long | 是 | 分页查询时,返回第几页数据。默认值为 1,表示返回第 1 页数据。 | 1 |
RegionId | string | 否 | WAF 实例所属地域。取值:
| cn-hangzhou |
ResourceManagerResourceGroupId | string | 否 | 阿里云资源组 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 |
host | http 头部的 host。 | contain、 not-contain、ne、eq、match-one、all-not-match、prefix-match、suffix-match |
http_cookie | http 头部的 cookie。 | contain、 not-contain、ne、eq、match-one、 all-not-match、prefix-match、suffix-match |
http_user_agent | http 头部获取的 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_id | http 请求源 IP 归属国家。 | ne、eq、 match-one、 all-not-match |
remote_region_id | http 请求源 IP 省市。 | ne、eq、 match-one、 all-not-match |
request_method | http 请求方法。 | ne、eq、 match-one、 all-not-match |
request_path | http 请求 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 |
返回参数
日志字段说明
字段名称 | 字段含义 | 取值示例 |
---|
字段名称 | 字段含义 | 取值示例 |
---|---|---|
dst_port | 被请求的目的端口。 | 443 |
host | 客户端请求头部的 Host 字段,表示被访问的域名(基于您的业务设置,也可能是 IP 地址)。 | api.example.com |
matched_host | 客户端请求匹配到的 WAF 防护对象(云产品实例、域名)。 | .aliyun**.com |
plugin_matched_detail_waf_group | 当前请求命中的 Web 核心防护详细信息,记录了数据命中规则的原因。 | |
plugin_matched_block_rule_detail | 记录请求命中的非观察模式规则的详细信息,包含了规则 id/动作/防护模块。 | |
plugin_matched_test_rule_detail | 记录请求命中的观察模式规则的详细信息,包含了规则 id/动作/防护模块。 | |
querystring | 客户端请求中的查询字符串,具体指被请求 URL 中问号(?)后面的部分。 | title=tm_content%3Darticle&pid=123 |
remote_region_id | IP 地址归属的省 ID。 | 410000 |
remote_country_id | 源 IP 所属国家 ID。 | CN |
remote_isp_id | 源 IP 所属 IDC 机房。 | 100098 |
request_method | 客户端请求的方法。 | GET |
request_traceid | WAF 为客户端请求生成的唯一标识。 | 7837b11715410386943437009***** |
real_client_ip | WAF 对客户端请求进行分析后,判定发起该请求的真实客户端 IP,便于您在业务中直接使用。 | 192.0.XX.XX |
request_path | 被请求的相对路径,具体指被请求 URL 中域名后面且问号(?)前面的部分(不包含查询字符串)。 | /news/search.php |
server_protocol | 客户端和 WAF 之间的协议。 | HTTP/1.1 |
timestamp | 请求被引擎处理的时间,使用 Unix 时间戳。 | 1742197109 |
返回数据示例
{
"SecurityEventLogsTotalCount": 1,
"SecurityEventLogs": [
{
"remote_region_id": "110000",
"plugin_matched_detail_waf_group": "{\"uri\":{\"hit\":[\"/.git/\"],\"raw\":\"/.git/\"}}",
"plugin_matched_block_rule_detail": "[{\"RuleId\":\"12***5\",\"Action\":\"block\",\"DefenseScene\":\"waf_base\",\"RuleType\":\"other\"}]",
"querystring": "-",
"matched_host": "i-8vbaazr2tboqsq******-443-ecs",
"remote_country_id": "CN",
"remote_isp_id": "100098",
"request_method": "GET",
"plugin_matched_test_rule_detail": "[]",
"request_traceid": "0b6261221742197109309484******",
"dst_port": "0",
"host": "39.99.***.109",
"real_client_ip": "47.92.***.14",
"request_path": "/.git/HEAD",
"server_protocol": "HTTP/1.1",
"timestamp": "1742197109"
}
],
"SecurityEventMetaData": {
"DateRange": {
"StartDate": 1742196600,
"EndDate": 1742197500
}
}
}
示例
正常返回示例
JSON
格式
{
"RequestId": "D827FCFE-90A7-4330-9326-******4C7726\n",
"SecurityEventLogs": [
"参见返回数据示例"
],
"SecurityEventMetaData": {
"DateRange": {
"StartDate": 1713888000,
"EndDate": 1713888600
},
"Units": "requests"
},
"SecurityEventLogsTotalCount": 1000
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | Waf.Report.%s | Invalid parameter:%s. | 无效的参数:%s |
400 | Waf.Report.InternalError | Server error occurred in report service. | 报表服务内部错误 |
访问错误中心查看更多错误码。