文档首页/ 企业主机安全 HSS/ API参考/ API说明/ 应用防护/ 查询应用防护事件列表 - ListRaspEvents
更新时间:2025-12-26 GMT+08:00
分享

查询应用防护事件列表 - ListRaspEvents

功能介绍

查询应用防护事件列表:展示防护事件相关信息,包含告警级别、服务器名称、告警名称、告警时间、攻击源ip、攻击源url数据。

调用方法

请参见如何调用API

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限和授权项
  • 如果使用身份策略授权,当前API调用无需身份策略权限。

URI

GET /v5/{project_id}/rasp/events

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目ID,用于明确项目归属,配置后可通过该ID查询项目下资产。获取方式请参见获取项目ID

约束限制:

不涉及

取值范围:

字符长度1-256位

默认取值:

不涉及

表2 Query参数

参数

是否必选

参数类型

描述

enterprise_project_id

String

参数解释:

企业项目ID,用于过滤不同企业项目下的资产。获取方式请参见获取企业项目ID

如需查询所有企业项目下的资产请传参“all_granted_eps”。

约束限制:

开通企业项目功能后才需要配置企业项目ID参数。

取值范围:

字符长度1-256位

默认取值:

0,表示默认企业项目(default)。

offset

Integer

参数解释:

偏移量:指定返回记录的开始位置

约束限制:

不涉及

取值范围:

最小值0,最大值2000000

默认取值:

默认为0

limit

Integer

参数解释:

每页显示个数

约束限制:

不涉及

取值范围:

取值10-200

默认取值:

10

host_id

String

Host Id

start_time

Long

参数解释:

应用防护事件的查询起始时间(Unix时间戳),与end_time配合筛选指定时间段内的事件

时间格式

Unix时间戳(精确到毫秒,如1736414463000表示2024-12-10 10:41:03)

约束限制:

需小于end_time,否则返回空结果;时间戳需为有效时间(1970-01-01 00:00:00至今)

取值范围:

取值0-9223372036854775807

默认取值:

end_time

Long

参数解释:

查询时间段的终止时间,毫秒级时间戳(ms)

约束限制:

不涉及

取值范围:

取值0-9223372036854775807

默认取值:

app_type

String

参数解释

应用防护的应用类型,用于筛选指定类型应用的防护事件

约束限制

当前仅支持java类型,传其他值返回空结果,区分大小写

取值范围

  • java:Java语言开发的应用防护事件

默认取值

无(查询所有支持的应用类型事件)

severity

String

参数解释

应用防护事件的告警级别,用于筛选指定严重程度的事件

约束限制

取值必须在指定范围内,否则返回空结果

取值范围

  • Security:信息级

  • Low:低危

  • Medium:中危

  • High:高危

  • Critical:紧急

默认取值

attack_tag

String

参数解释

应用防护事件的攻击类型标识,用于筛选指定攻击类型的事件

约束限制

取值区分大小写,必须与指定格式一致,否则返回空结果

取值范围

  • Attack Success:攻击成功

  • Attack Attempt:攻击尝试

  • Attack Blocked:攻击被阻断

  • Abnormal Behavior:异常行为

  • Collapsible Host:主机失陷

  • System Vulnerability:系统脆弱性

默认取值

protect_status

String

参数解释

应用防护的启用状态,用于筛选指定防护状态下的事件

约束限制

取值区分大小写,必须在指定范围内,否则返回空结果

取值范围

  • closed:未开启防护

  • opened:已开启防护

默认取值

无(查询所有防护状态的事件)

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

用户Token,包含了用户的身份、权限等信息,在调用API接口时,可通过Token进行身份认证。获取方式请参见获取用户Token

约束限制:

不涉及

取值范围:

字符长度1-32768位

默认取值:

不涉及

响应参数

状态码:200

表4 响应Body参数

参数

参数类型

描述

total_num

Long

参数解释

符合所有筛选条件的应用防护事件总数,用于分页计算总页数

取值范围

取值0-9223372036854775807

data_list

Array of RaspProtectHistoryResponseInfo objects

参数解释

包含查询到的应用防护事件详细信息,每个元素对应一个防护事件的完整数据

取值范围

数组长度0-limit(每页显示个数),元素结构符合RaspProtectHistoryResponseInfo定义,数组为空表示无匹配结果

表5 RaspProtectHistoryResponseInfo

参数

参数类型

描述

host_name

String

参数解释

应用防护事件所属云服务器的名称,用于标识事件来源主机

取值范围

字符长度1-64位,支持中文、英文、数字、短横线、下划线,符合华为云ECS命名规范

private_ip

String

参数解释

应用防护事件所属云服务器的私有IP地址,用于定位事件来源主机的网络位置

取值范围

符合IPv4格式的字符串(如192.168.0.97),支持多个私有IP用逗号分隔

alarm_time

Long

参数解释

应用防护事件的发生时间,以Unix时间戳(毫秒级)表示

时间格式

可转换为YYYY-MM-DD HH:MM:SS格式(如1736414463000对应2024-12-10 10:41:03)

取值范围

Unix时间戳(毫秒级),取值0-为当前系统时间戳

event_name

String

参数解释

应用防护事件的具体名称,标识事件对应的攻击类型(如ExpressionInject表示表达式注入攻击)

取值范围

字符长度1-128位,支持英文、数字、下划线,为系统预定义的攻击类型标识

severity

String

参数解释

应用防护事件的告警级别,用于筛选指定严重程度的事件

约束限制

取值必须在指定范围内,否则返回空结果

取值范围

  • Security:信息级

  • Low:低危

  • Medium:中危

  • High:高危

  • Critical:紧急

默认取值

req_src_ip

String

参数解释

发起攻击的源IP地址,可能是公网IP或内网IP,用于定位攻击来源

取值范围

符合IPv4或IPv6格式的字符串,支持单个IP或IP段(如127.0.0.1、2001:db8::1)

app_stack

String

参数解释

应用防护事件发生时的应用程序调用堆栈信息,用于定位漏洞触发点

取值范围

字符长度0-4096位,支持英文、数字、符号等堆栈信息常见字符,为空表示无堆栈数据

attack_input_name

String

参数解释

攻击请求中的附属字段名称(如请求头字段、表单字段等),用于标识攻击载荷的传入字段

取值范围

字符长度0-256位,支持英文、数字、符号等HTTP请求字段常见字符,为空表示无相关字段

attack_input_value

String

参数解释

攻击请求中包含的恶意载荷数据(如注入脚本、恶意命令等),用于分析攻击手段

取值范围

字符长度0-2048位,支持各类字符(含特殊字符),为空表示无恶意载荷

query_string

String

参数解释

攻击请求的URL查询字符串部分(即?后的参数),用于分析攻击请求的参数传递方式

取值范围

字符长度0-1024位,支持URL编码后的字符,为空表示无查询字符串

req_headers

String

参数解释

攻击请求的HTTP请求头信息,以JSON格式存储,包含User-Agent、Host等字段

取值范围

字符长度0-4096位,为JSON格式字符串,字段名和值支持常见HTTP头字符,为空表示无请求头信息

req_method

String

参数解释

攻击请求使用的HTTP方法(如GET、POST),用于分析攻击的请求类型

取值范围

字符长度3-10位,支持标准HTTP方法(GET、POST、PUT、DELETE等),区分大小写

req_params

String

参数解释

攻击请求的请求体参数(如POST请求的表单数据),用于分析攻击的参数传递内容

取值范围

字符长度0-2048位,支持表单编码或JSON格式字符,为空表示无请求体参数

req_path

String

参数解释

攻击请求的URL路径部分(不含查询字符串),用于定位攻击的目标接口

取值范围

字符长度0-512位,支持URL路径字符(如/、字母、数字、短横线、下划线),为空表示根路径

req_protocol

String

参数解释

攻击请求使用的HTTP协议版本(如HTTP/1.1),用于分析攻击的协议环境

取值范围

字符长度5-10位,支持HTTP/1.0、HTTP/1.1、HTTP/2等标准协议版本

req_url

String

参数解释

攻击请求的完整URL地址(含协议、主机、路径、查询字符串),用于完整还原攻击请求

取值范围

字符长度0-1024位,符合URL格式规范,为空表示无完整URL信息

attack_tag

String

参数解释

应用防护事件的攻击类型标识,与请求参数的攻击标识对应(格式为小写下划线)

取值范围

  • Attack Success:攻击成功

  • Attack Attempt:攻击尝试

  • Attack Blocked:攻击被阻断

  • Abnormal Behavior:异常行为

  • Collapsible Host:主机失陷

  • System Vulnerability:系统脆弱性

chk_probe

String

参数解释:

检测到该攻击事件的RASP探针标识,用于定位探针类型和检测模块

取值范围:

字符长度1-128位,支持英文、数字、点号、短横线、下划线,为系统预定义的探针标识

chk_rule

String

参数解释

触发该防护事件的检测规则唯一标识,用于关联具体的防护规则配置

取值范围

字符长度1-64位,支持英文、数字、下划线,为系统预定义的规则标识(如ExpressionInject)

chk_rule_desc

String

参数解释

触发该防护事件的检测规则详细描述,说明规则的检测逻辑和目的

取值范围

字符长度0-512位,支持中文、英文、数字、常用标点符号,为空表示无规则描述

exist_bug

String

参数解释

标识该防护事件是否因应用存在漏洞导致(yes表示存在漏洞,no表示不存在)

取值范围

  • yes:存在漏洞

  • no:不存在漏洞

  • unknown:未知

请求示例

响应示例

状态码:200

请求已成功

{
  "total_num" : 21,
  "data_list" : [ {
    "severity" : "High",
    "host_name" : "test-lmh-003",
    "private_ip" : "192.168.0.97",
    "alarm_time" : 1736414463000,
    "event_name" : "ExpressionInject",
    "req_src_ip" : "127.0.0.1",
    "app_stack" : "com.huawei.hisec.secshield.vulnsblock.**********shieldAndEscapeReturn(*******:225)",
    "query_string" : "",
    "req_headers" : "{\"accept\":[\"*/*\"],\"host\":[\"127.0.0.1:8080\"],\"user-agent\":[\"curl/7.81.0\"]}",
    "req_method" : "GET",
    "req_params" : "",
    "req_path" : "",
    "req_protocol" : "HTTP/1.1",
    "req_url" : "/fileless",
    "attack_tag" : "abnormal_behavior",
    "chk_probe" : "EI-TemplateAwareExpressionParser.parseExpression",
    "chk_rule" : "ExpressionInject",
    "chk_rule_desc" : "the length of the expression over max length, length: 2908",
    "exist_bug" : "yes"
  } ]
}

SDK代码示例

SDK代码示例如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.hss.v5.region.HssRegion;
import com.huaweicloud.sdk.hss.v5.*;
import com.huaweicloud.sdk.hss.v5.model.*;


public class ListRaspEventsSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        HssClient client = HssClient.newBuilder()
                .withCredential(auth)
                .withRegion(HssRegion.valueOf("<YOUR REGION>"))
                .build();
        ListRaspEventsRequest request = new ListRaspEventsRequest();
        try {
            ListRaspEventsResponse response = client.listRaspEvents(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkhss.v5.region.hss_region import HssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkhss.v5 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = HssClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(HssRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListRaspEventsRequest()
        response = client.list_rasp_events(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := hss.NewHssClient(
        hss.HssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListRaspEventsRequest{}
	response, err := client.ListRaspEvents(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

请求已成功

错误码

请参见错误码

相关文档