获取告警详情
功能介绍
获取告警详情
调用方法
请参见如何调用API。
URI
GET /v1/{project_id}/workspaces/{workspace_id}/soc/alerts/{alert_id}
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目id |
workspace_id |
是 |
String |
工作空间id |
alert_id |
是 |
String |
告警ID |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) |
content-type |
是 |
String |
内容类型 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
X-request-id |
String |
请求ID,格式为:request_uuid-timestamp-hostname |
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
错误码 |
message |
String |
错误信息 |
data |
AlertDetail object |
告警详情对象 |
参数 |
参数类型 |
描述 |
---|---|---|
create_time |
String |
记录时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
data_object |
Alert object |
告警实体信息 |
dataclass_ref |
dataclass_ref object |
数据类对象 |
format_version |
Integer |
格式版本 |
id |
String |
事件唯一标识,UUID格式,最大36个字符 |
type |
String |
数据类型 |
project_id |
String |
当前项目的id |
update_time |
String |
更新时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
version |
Integer |
版本 |
workspace_id |
String |
当前的工作空间id |
参数 |
参数类型 |
描述 |
---|---|---|
version |
String |
告警对象的版本,该字段的值必须为云SSA服务确定的官方发布版本之一 |
id |
String |
事件唯一标识,UUID格式,最大36个字符 |
domain_id |
String |
数据投递后,被委托用户的domain_id |
region_id |
String |
数据投递后,被委托用户的region_id |
workspace_id |
String |
当前的工作空间id |
labels |
String |
标签,仅展示 |
environment |
environment object |
告警产生的环境坐标信息 |
data_source |
data_source object |
首次上报数据源 |
first_observed_time |
String |
首次发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
last_observed_time |
String |
最近发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
create_time |
String |
记录时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
arrive_time |
String |
接收时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
title |
String |
告警标题 |
description |
String |
告警描述信息 |
source_url |
String |
告警URL链接,指向数据源产品中有关当前事件说明的页面 |
count |
Integer |
事件发生次数 |
confidence |
Integer |
事件的置信度。置信度的定义旨在说明识别的行为或问题的可能性。 取值范围:0-100,0表示置信度为0%,100表示置信度为100% |
severity |
String |
严重性等级,取值范围:Tips | Low | Medium | High | Fatal 说明: 0: Tips – 未发现任何问题。 1: Low – 无需针对问题执行任何操作。 2: Medium – 问题需要处理,但不紧急。 3: High – 问题必须优先处理。 4: Fatal – 问题必须立即处理,以防止产生进一步的损害 |
criticality |
Integer |
关键性,是指事件涉及的资源的重要性级别。 取值范围:0-100,0表示资源不关键,100表示最关键资源 |
alert_type |
alert_type object |
告警分类,详细定义参考《告警类型定义》 |
network_list |
Array of network_list objects |
网络信息 |
resource_list |
Array of resource_list objects |
受影响资源 |
remediation |
remediation object |
补救措施 |
verification_state |
String |
验证状态,标识事件的准确性。可选类型如下: Unknown – 未知 True_Positive – 确认 False_Positive – 误报 默认填写Unknown |
handle_status |
String |
事件处理状态,可选类型如下: Open – 打开,默认 Block – 阻塞 Closed – 关闭 默认填写Open |
sla |
Integer |
约束闭环时间:设置风险接受持续时间。单位:小时 |
update_time |
String |
更新时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
close_time |
String |
关闭时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
ipdrr_phase |
String |
周期/处置阶段编号 Prepartion|Detection and Analysis|Containm,Eradication& Recovery|Post-Incident-Activity |
simulation |
String |
调试字段 |
actor |
String |
告警调查员 |
owner |
String |
责任人、服务责任人 |
creator |
String |
创建人 |
close_reason |
String |
关闭原因: 误检 - False detection 已解决 - Resolved 重复 - Repeated 其他 - Other |
close_comment |
String |
关闭评论 |
malware |
malware object |
恶意软件 |
system_info |
Object |
系统信息 |
process |
Array of process objects |
进程信息 |
user_info |
Array of user_info objects |
用户信息 |
file_info |
Array of file_info objects |
文件信息 |
system_alert_table |
Object |
告警管理列表的布局字段 |
参数 |
参数类型 |
描述 |
---|---|---|
vendor_type |
String |
环境供应商 |
domain_id |
String |
租户id |
region_id |
String |
区域id,全局服务global |
cross_workspace_id |
String |
数据投递前的源工作空间id,在源空间下值为null,投递后为被委托用户的id |
project_id |
String |
项目id, 全局服务默认null |
参数 |
参数类型 |
描述 |
---|---|---|
source_type |
Integer |
数据源类型,取值范围如下: 1 - 云上产品 2 - 第三方产品 3 - 租户私有产品 |
domain_id |
String |
数据源产品所属账号的id |
project_id |
String |
数据源产品所属项目的id |
region_id |
String |
数据源产品所在区域,具体取值范围查看云地区和终端节点定义,例如cn-north-1 |
company_name |
String |
数据源产品所属公司的名称 |
product_name |
String |
数据源产品的名称 |
product_feature |
String |
产品功能特性名称,用来指明检测到当前事件的产品的功能特性 |
product_module |
String |
检测模块列表 |
参数 |
参数类型 |
描述 |
---|---|---|
direction |
String |
方向,取值范围:IN | OUT |
protocol |
String |
协议,包含7层和4层的协议 参考:IANA registered name https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml |
src_ip |
String |
源IP地址 |
src_port |
Integer |
源端口,0–65535 |
src_domain |
String |
源域名 |
src_geo |
src_geo object |
源IP的地理位置信息 |
dest_ip |
String |
目的IP地址 |
dest_port |
String |
目的端口,0–65535 |
dest_domain |
String |
目的域名 |
dest_geo |
dest_geo object |
目标IP的地理位置信息 |
参数 |
参数类型 |
描述 |
---|---|---|
latitude |
Number |
纬度 |
longitude |
Number |
经度 |
city_code |
String |
城市编码,Beijing | Shanghai |
country_code |
String |
国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG |
参数 |
参数类型 |
描述 |
---|---|---|
latitude |
Number |
纬度 |
longitude |
Number |
经度 |
city_code |
String |
城市编码,Beijing | Shanghai |
country_code |
String |
国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
云服务资源id |
name |
String |
资源名称 |
type |
String |
资源类型;引用云RMS type字段 |
provider |
String |
云服务名称;引用云RMS provider字段 |
region_id |
String |
区域;按照云regionId填写,如cn-north-1等 |
domain_id |
String |
资源所属账号ID,UUID格式 |
project_id |
String |
资源所属项目ID,UUID格式 |
ep_id |
String |
企业项目id |
ep_name |
String |
企业项目名称 |
tags |
String |
资源标签 1、最多50个key/values对 2、values:最大255字符,取值范围:字母数字,空格,+, -, =, ., _, :, /,@ |
参数 |
参数类型 |
描述 |
---|---|---|
recommendation |
String |
推荐处理方法 |
url |
String |
链接,指向该事件的一般修复信息。该URL必须可以从公网访问,不需要提供凭证 |
参数 |
参数类型 |
描述 |
---|---|---|
process_name |
String |
进程名 |
process_path |
String |
进程执行文件路径 |
process_pid |
Integer |
进程id |
process_uid |
Integer |
进程用户id |
process_cmdline |
String |
进程命令行 |
process_parent_name |
String |
父进程名称 |
process_parent_path |
String |
父进程执行文件路径 |
process_parent_pid |
Integer |
父进程id |
process_parent_uid |
Integer |
父进程用户id |
process_parent_cmdline |
String |
父进程命令行 |
process_child_name |
String |
子进程名称 |
process_child_path |
String |
子进程执行文件路径 |
process_child_pid |
Integer |
子进程id |
process_child_uid |
Integer |
子进程用户id |
process_child_cmdline |
String |
子进程命令行 |
process_launche_time |
String |
进程启动时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
process_terminate_time |
String |
进程结束时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 |
参数 |
参数类型 |
描述 |
---|---|---|
file_path |
String |
文件路径/名称 |
file_content |
String |
文件内容 |
file_new_path |
String |
文件新路径/名称 |
file_hash |
String |
文件hash |
file_md5 |
String |
文件md5 |
file_sha256 |
String |
文件sha256 |
file_attr |
String |
文件属性 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
X-request-id |
String |
请求ID,格式为:request_uuid-timestamp-hostname |
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
错误码 |
message |
String |
错误描述 |
请求示例
无
响应示例
状态码: 200
获取告警详情返回body体
{ "code" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "message" : "Error message", "data" : { "data_object" : { "version" : "1.0", "environment" : { "vendor_type" : "MyXXX", "domain_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "region_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f" }, "data_source" : { "source_type" : 3, "domain_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "region_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f" }, "first_observed_time" : "2021-01-30T23:00:00Z+0800", "last_observed_time" : "2021-01-30T23:00:00Z+0800", "create_time" : "2021-01-30T23:00:00Z+0800", "arrive_time" : "2021-01-30T23:00:00Z+0800", "title" : "MyXXX", "description" : "This my XXXX", "source_url" : "http://xxx", "count" : "4", "confidence" : 4, "severity" : "TIPS", "criticality" : 4, "alert_type" : { }, "network_list" : [ { "direction" : { "IN" : null }, "protocol" : "TCP", "src_ip" : "192.168.0.1", "src_port" : "1", "src_domain" : "xxx", "dest_ip" : "192.168.0.1", "dest_port" : "1", "dest_domain" : "xxx", "src_geo" : { "latitude" : 90, "longitude" : 180 }, "dest_geo" : { "latitude" : 90, "longitude" : 180 } } ], "resource_list" : [ { "id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "name" : "MyXXX", "type" : "MyXXX", "domain_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "region_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "ep_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "ep_name" : "MyXXX", "tags" : "909494e3-558e-46b6-a9eb-07a8e18ca62f" } ], "remediation" : { "recommendation" : "MyXXX", "url" : "MyXXX" }, "verification_state" : "Unknown – 未知,True_Positive – 确认,False_Positive – 误报。默认填写Unknown", "handle_status" : "Open – 打开,Block – 阻塞,Closed – 关闭。默认填写Open", "sla" : 60000, "update_time" : "2021-01-30T23:00:00Z+0800", "close_time" : "2021-01-30T23:00:00Z+0800", "ipdrr_phase" : "Prepartion|Detection and Analysis|Containm,Eradication& Recovery| Post-Incident-Activity", "simulation" : "false", "actor" : "刘一博", "owner" : "MyXXX", "creator" : "MyXXX", "close_reason" : "误检;已解决;重复;其他", "close_comment" : "误检;已解决;重复;其他", "malware" : { "malware_family" : "family", "malware_class" : "恶意占用内存" }, "system_info" : { }, "process" : [ { "process_name" : "MyXXX", "process_path" : "MyXXX", "process_pid" : 123, "process_uid" : 123, "process_cmdline" : "MyXXX" } ], "user_info" : [ { "user_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "user_name" : "MyXXX" } ], "file_info" : [ { "file_path" : "MyXXX", "file_content" : "MyXXX", "file_new_path" : "MyXXX", "file_hash" : "MyXXX", "file_md5" : "MyXXX", "file_sha256" : "MyXXX", "file_attr" : "MyXXX" } ], "system_alert_table" : { }, "id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "workspace_id" : "909494e3-558e-46b6-a9eb-07a8e18ca620" }, "create_time" : "2021-01-30T23:00:00Z+0800", "update_time" : "2021-01-30T23:00:00Z+0800", "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "workspace_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "id" : "MyXXX", "version" : 11, "format_version" : 11, "dataclass_ref" : { "id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "name" : "MyXXX" } } }
SDK代码示例
SDK代码示例如下。
Java
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 48 49 |
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.secmaster.v2.region.SecMasterRegion; import com.huaweicloud.sdk.secmaster.v2.*; import com.huaweicloud.sdk.secmaster.v2.model.*; public class ShowAlertSolution { 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); SecMasterClient client = SecMasterClient.newBuilder() .withCredential(auth) .withRegion(SecMasterRegion.valueOf("<YOUR REGION>")) .build(); ShowAlertRequest request = new ShowAlertRequest(); request.withWorkspaceId("{workspace_id}"); request.withAlertId("{alert_id}"); try { ShowAlertResponse response = client.showAlert(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()); } } } |
Python
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 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdksecmaster.v2.region.secmaster_region import SecMasterRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdksecmaster.v2 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 = SecMasterClient.new_builder() \ .with_credentials(credentials) \ .with_region(SecMasterRegion.value_of("<YOUR REGION>")) \ .build() try: request = ShowAlertRequest() request.workspace_id = "{workspace_id}" request.alert_id = "{alert_id}" response = client.show_alert(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Go
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 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" secmaster "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/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 := secmaster.NewSecMasterClient( secmaster.SecMasterClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ShowAlertRequest{} request.WorkspaceId = "{workspace_id}" request.AlertId = "{alert_id}" response, err := client.ShowAlert(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
更多
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
获取告警详情返回body体 |
400 |
获取告警详情错误返回body体 |
错误码
请参见错误码。