更新时间:2024-10-22 GMT+08:00

更新告警

功能介绍

编辑告警,根据实际修改的属性更新,未修改的列不更新

调用方法

请参见如何调用API

URI

PUT /v1/{project_id}/workspaces/{workspace_id}/soc/alerts/{alert_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目id

最小长度:32

最大长度:36

workspace_id

String

工作空间id

最小长度:32

最大长度:36

alert_id

String

告警ID

最小长度:32

最大长度:36

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)

最小长度:0

最大长度:2097152

content-type

String

内容类型

缺省值:application/json;charset=UTF-8

最小长度:0

最大长度:64

表3 请求Body参数

参数

是否必选

参数类型

描述

batch_ids

Array of strings

更新告警的ID列表

最小长度:0

最大长度:100

数组长度:0 - 999

data_object

Alert object

告警实体信息

表4 Alert

参数

是否必选

参数类型

描述

version

String

告警对象的版本,该字段的值必须为华为云SSA服务确定的官方发布版本之一

最小长度:0

最大长度:64

id

String

事件唯一标识,UUID格式,最大36个字符

最小长度:0

最大长度:36

domain_id

String

数据投递后,被委托用户的domain_id

最小长度:0

最大长度:36

region_id

String

数据投递后,被委托用户的region_id

最小长度:0

最大长度:36

workspace_id

String

当前的工作空间id

最小长度:0

最大长度:36

labels

String

标签,仅展示

最小长度:0

最大长度:1024

environment

environment object

告警产生的环境坐标信息

data_source

data_source object

首次上报数据源

first_observed_time

String

首次发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

last_observed_time

String

最近发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

create_time

String

记录时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

arrive_time

String

接收时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

title

String

告警标题

最小长度:0

最大长度:255

description

String

告警描述信息

最小长度:0

最大长度:1024

source_url

String

告警URL链接,指向数据源产品中有关当前事件说明的页面

最小长度:0

最大长度:1024

count

Integer

事件发生次数

最小值:0

最大值:999

confidence

Integer

事件的置信度。置信度的定义旨在说明识别的行为或问题的可能性。 取值范围:0-100,0表示置信度为0%,100表示置信度为100%

最小值:0

最大值:100

severity

String

严重性等级,取值范围:Tips | Low | Medium | High | Fatal 说明: 0: Tips – 未发现任何问题。 1: Low – 无需针对问题执行任何操作。 2: Medium – 问题需要处理,但不紧急。 3: High – 问题必须优先处理。 4: Fatal – 问题必须立即处理,以防止产生进一步的损害

最小长度:3

最大长度:6

枚举值:

  • Tips
  • Low
  • Medium
  • High
  • Fatal

criticality

Integer

关键性,是指事件涉及的资源的重要性级别。 取值范围:0-100,0表示资源不关键,100表示最关键资源

最小值:0

最大值:100

alert_type

alert_type object

告警分类,详细定义参考《告警类型定义》

network_list

Array of network_list objects

网络信息

数组长度:0 - 999

resource_list

Array of resource_list objects

受影响资源

数组长度:0 - 999

remediation

remediation object

补救措施

verification_state

String

验证状态,标识事件的准确性。可选类型如下: Unknown – 未知 True_Positive – 确认 False_Positive – 误报 默认填写Unknown

最小长度:32

最大长度:64

枚举值:

  • Unknown
  • True_Positive
  • False_Positive

handle_status

String

事件处理状态,可选类型如下: Open – 打开,默认 Block – 阻塞 Closed – 关闭 默认填写Open

最小长度:4

最大长度:5

枚举值:

  • Open
  • Block
  • Closed

sla

Integer

约束闭环时间:设置风险接受持续时间。单位:小时

最小值:0

最大值:999

update_time

String

更新时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

close_time

String

关闭时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

ipdrr_phase

String

周期/处置阶段编号 Prepartion|Detection and Analysis|Containm,Eradication& Recovery|Post-Incident-Activity

最小长度:0

最大长度:64

枚举值:

  • Prepartion
  • Detection and Analysis
  • Containm,Eradication& Recovery
  • Post-Incident-Activity

simulation

String

调试字段

最小长度:0

最大长度:64

actor

String

告警调查员

最小长度:0

最大长度:64

owner

String

责任人、服务责任人

最小长度:0

最大长度:64

creator

String

创建人

最小长度:0

最大长度:64

close_reason

String

关闭原因: 误检 - False detection 已解决 - Resolved 重复 - Repeated 其他 - Other

最小长度:0

最大长度:64

枚举值:

  • False detection
  • Resolved
  • Repeated
  • Other

close_comment

String

关闭评论

最小长度:0

最大长度:1024

malware

malware object

恶意软件

system_info

Object

系统信息

process

Array of process objects

进程信息

数组长度:0 - 999

user_info

Array of user_info objects

用户信息

数组长度:0 - 999

file_info

Array of file_info objects

文件信息

数组长度:0 - 999

system_alert_table

Object

告警管理列表的布局字段

表5 environment

参数

是否必选

参数类型

描述

vendor_type

String

环境供应商:HWCP/HWC/AWS/Azure/GCP

最小长度:0

最大长度:64

domain_id

String

租户id

最小长度:0

最大长度:64

region_id

String

区域id,全局服务global

最小长度:0

最大长度:64

cross_workspace_id

String

数据投递前的源工作空间id,在源空间下值为null,投递后为被委托用户的id

最小长度:0

最大长度:64

project_id

String

项目id, 全局服务默认null

最小长度:0

最大长度:64

表6 data_source

参数

是否必选

参数类型

描述

source_type

Integer

数据源类型,取值范围如下:

  • 1:华为云产品
  • 2:第三方产品
  • 3:租户私有产品

最小值:1

最大值:3

枚举值:

  • 1
  • 2
  • 3

domain_id

String

数据源产品所属账号的id

最小长度:0

最大长度:36

project_id

String

数据源产品所属项目的id

最小长度:0

最大长度:64

region_id

String

数据源产品所在区域,具体取值范围查看华为云地区和终端节点定义

最小长度:0

最大长度:64

company_name

String

数据源产品所属公司的名称

最小长度:0

最大长度:16

product_name

String

数据源产品的名称

最小长度:0

最大长度:24

product_feature

String

产品功能特性名称,用来指明检测到当前事件的产品的功能特性

最小长度:0

最大长度:24

product_module

String

检测模块列表

最小长度:0

最大长度:1024

表7 alert_type

参数

是否必选

参数类型

描述

category

String

类别

最小长度:0

最大长度:1024

alert_type

String

告警类型

最小长度:0

最大长度:1024

表8 network_list

参数

是否必选

参数类型

描述

direction

String

方向,取值范围:IN | OUT

最小长度:0

最大长度:3

枚举值:

  • IN
  • OUT

protocol

String

协议,包含7层和4层的协议 参考:IANA registered name https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

最小长度:0

最大长度:64

src_ip

String

源IP地址

最小长度:0

最大长度:64

src_port

Integer

源端口,0–65535

最小值:0

最大值:65535

src_domain

String

源域名

最小长度:0

最大长度:128

src_geo

src_geo object

源IP的地理位置信息

dest_ip

String

目的IP地址

最小长度:32

最大长度:64

dest_port

String

目的端口,0–65535

最小长度:0

最大长度:65535

dest_domain

String

目的域名

最小长度:0

最大长度:128

dest_geo

dest_geo object

目标IP的地理位置信息

表9 src_geo

参数

是否必选

参数类型

描述

latitude

Number

纬度

最小值:0

最大值:90

longitude

Number

经度

最小值:0

最大值:180

city_code

String

城市编码,Beijing | Shanghai

最小长度:0

最大长度:64

country_code

String

国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG

最小长度:0

最大长度:64

表10 dest_geo

参数

是否必选

参数类型

描述

latitude

Number

纬度

最小值:0

最大值:90

longitude

Number

经度

最小值:0

最大值:180

city_code

String

城市编码,Beijing | Shanghai

最小长度:0

最大长度:64

country_code

String

国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG

最小长度:0

最大长度:64

表11 resource_list

参数

是否必选

参数类型

描述

id

String

云服务资源id

最小长度:0

最大长度:36

name

String

资源名称

最小长度:0

最大长度:255

type

String

资源类型;引用华为云RMS type字段

最小长度:0

最大长度:64

provider

String

云服务名称;引用华为云RMS provider字段

最小长度:0

最大长度:64

region_id

String

区域;按照华为云regionId填写

最小长度:0

最大长度:36

domain_id

String

资源所属账号ID,UUID格式

最小长度:0

最大长度:36

project_id

String

资源所属项目ID,UUID格式

最小长度:0

最大长度:36

ep_id

String

企业项目id

最小长度:0

最大长度:128

ep_name

String

企业项目名称

最小长度:0

最大长度:128

tags

String

资源标签

  • 最多50个key/values对
  • values:最大255字符,取值范围:字母数字,空格,+, -, =, ., _, :, /,@

最小长度:0

最大长度:2048

表12 remediation

参数

是否必选

参数类型

描述

recommendation

String

推荐处理方法

最小长度:0

最大长度:128

url

String

链接,指向该事件的一般修复信息。该URL必须可以从公网访问,不需要提供凭证

最小长度:0

最大长度:2048

表13 malware

参数

是否必选

参数类型

描述

malware_family

String

恶意家族

最小长度:0

最大长度:64

malware_class

String

恶意软件分类

最小长度:0

最大长度:64

表14 process

参数

是否必选

参数类型

描述

process_name

String

进程名

最小长度:0

最大长度:64

process_path

String

进程执行文件路径

最小长度:0

最大长度:512

process_pid

Integer

进程id

最小值:0

最大值:65535

process_uid

Integer

进程用户id

最小值:0

最大值:655350

process_cmdline

String

进程命令行

最小长度:0

最大长度:128

process_parent_name

String

父进程名称

最小长度:0

最大长度:64

process_parent_path

String

父进程执行文件路径

最小长度:0

最大长度:512

process_parent_pid

Integer

父进程id

最小值:0

最大值:65535

process_parent_uid

Integer

父进程用户id

最小值:0

最大值:655350

process_parent_cmdline

String

父进程命令行

最小长度:0

最大长度:128

process_child_name

String

子进程名称

最小长度:0

最大长度:64

process_child_path

String

子进程执行文件路径

最小长度:0

最大长度:512

process_child_pid

Integer

子进程id

最小值:0

最大值:65535

process_child_uid

Integer

子进程用户id

最小值:0

最大值:655350

process_child_cmdline

String

子进程命令行

最小长度:0

最大长度:128

process_launche_time

String

进程启动时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

process_terminate_time

String

进程结束时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

表15 user_info

参数

是否必选

参数类型

描述

user_id

String

用户uid

最小长度:0

最大长度:36

user_name

String

用户名称

最小长度:32

最大长度:64

表16 file_info

参数

是否必选

参数类型

描述

file_path

String

文件路径/名称

最小长度:0

最大长度:128

file_content

String

文件内容

最小长度:0

最大长度:1024

file_new_path

String

文件新路径/名称

最小长度:32

最大长度:64

file_hash

String

文件hash

最小长度:0

最大长度:128

file_md5

String

文件md5

最小长度:0

最大长度:128

file_sha256

String

文件sha256

最小长度:0

最大长度:128

file_attr

String

文件属性

最小长度:0

最大长度:1024

响应参数

状态码: 200

表17 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

表18 响应Body参数

参数

参数类型

描述

code

String

错误码

最小长度:0

最大长度:64

message

String

错误信息

最小长度:0

最大长度:1024

data

AlertDetail object

  
表19 AlertDetail

参数

参数类型

描述

create_time

String

记录时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

data_object

Alert object

告警实体信息

dataclass_ref

dataclass_ref object

数据类对象

format_version

Integer

格式版本

最小值:0

最大值:999

id

String

事件唯一标识,UUID格式,最大36个字符

最小长度:0

最大长度:36

type

String

数据类型

最小长度:0

最大长度:64

project_id

String

当前项目的id

最小长度:0

最大长度:64

update_time

String

更新时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

version

Integer

版本

最小值:0

最大值:999

workspace_id

String

当前的工作空间id

最小长度:0

最大长度:36

表20 Alert

参数

参数类型

描述

version

String

告警对象的版本,该字段的值必须为华为云SSA服务确定的官方发布版本之一

最小长度:0

最大长度:64

id

String

事件唯一标识,UUID格式,最大36个字符

最小长度:0

最大长度:36

domain_id

String

数据投递后,被委托用户的domain_id

最小长度:0

最大长度:36

region_id

String

数据投递后,被委托用户的region_id

最小长度:0

最大长度:36

workspace_id

String

当前的工作空间id

最小长度:0

最大长度:36

labels

String

标签,仅展示

最小长度:0

最大长度:1024

environment

environment object

告警产生的环境坐标信息

data_source

data_source object

首次上报数据源

first_observed_time

String

首次发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

last_observed_time

String

最近发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

create_time

String

记录时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

arrive_time

String

接收时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

title

String

告警标题

最小长度:0

最大长度:255

description

String

告警描述信息

最小长度:0

最大长度:1024

source_url

String

告警URL链接,指向数据源产品中有关当前事件说明的页面

最小长度:0

最大长度:1024

count

Integer

事件发生次数

最小值:0

最大值:999

confidence

Integer

事件的置信度。置信度的定义旨在说明识别的行为或问题的可能性。 取值范围:0-100,0表示置信度为0%,100表示置信度为100%

最小值:0

最大值:100

severity

String

严重性等级,取值范围:Tips | Low | Medium | High | Fatal 说明: 0: Tips – 未发现任何问题。 1: Low – 无需针对问题执行任何操作。 2: Medium – 问题需要处理,但不紧急。 3: High – 问题必须优先处理。 4: Fatal – 问题必须立即处理,以防止产生进一步的损害

最小长度:3

最大长度:6

枚举值:

  • Tips
  • Low
  • Medium
  • High
  • Fatal

criticality

Integer

关键性,是指事件涉及的资源的重要性级别。 取值范围:0-100,0表示资源不关键,100表示最关键资源

最小值:0

最大值:100

alert_type

alert_type object

告警分类,详细定义参考《告警类型定义》

network_list

Array of network_list objects

网络信息

数组长度:0 - 999

resource_list

Array of resource_list objects

受影响资源

数组长度:0 - 999

remediation

remediation object

补救措施

verification_state

String

验证状态,标识事件的准确性。可选类型如下: Unknown – 未知 True_Positive – 确认 False_Positive – 误报 默认填写Unknown

最小长度:32

最大长度:64

枚举值:

  • Unknown
  • True_Positive
  • False_Positive

handle_status

String

事件处理状态,可选类型如下: Open – 打开,默认 Block – 阻塞 Closed – 关闭 默认填写Open

最小长度:4

最大长度:5

枚举值:

  • Open
  • Block
  • Closed

sla

Integer

约束闭环时间:设置风险接受持续时间。单位:小时

最小值:0

最大值:999

update_time

String

更新时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

close_time

String

关闭时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

ipdrr_phase

String

周期/处置阶段编号 Prepartion|Detection and Analysis|Containm,Eradication& Recovery|Post-Incident-Activity

最小长度:0

最大长度:64

枚举值:

  • Prepartion
  • Detection and Analysis
  • Containm,Eradication& Recovery
  • Post-Incident-Activity

simulation

String

调试字段

最小长度:0

最大长度:64

actor

String

告警调查员

最小长度:0

最大长度:64

owner

String

责任人、服务责任人

最小长度:0

最大长度:64

creator

String

创建人

最小长度:0

最大长度:64

close_reason

String

关闭原因: 误检 - False detection 已解决 - Resolved 重复 - Repeated 其他 - Other

最小长度:0

最大长度:64

枚举值:

  • False detection
  • Resolved
  • Repeated
  • Other

close_comment

String

关闭评论

最小长度:0

最大长度:1024

malware

malware object

恶意软件

system_info

Object

系统信息

process

Array of process objects

进程信息

数组长度:0 - 999

user_info

Array of user_info objects

用户信息

数组长度:0 - 999

file_info

Array of file_info objects

文件信息

数组长度:0 - 999

system_alert_table

Object

告警管理列表的布局字段

表21 environment

参数

参数类型

描述

vendor_type

String

环境供应商:HWCP/HWC/AWS/Azure/GCP

最小长度:0

最大长度:64

domain_id

String

租户id

最小长度:0

最大长度:64

region_id

String

区域id,全局服务global

最小长度:0

最大长度:64

cross_workspace_id

String

数据投递前的源工作空间id,在源空间下值为null,投递后为被委托用户的id

最小长度:0

最大长度:64

project_id

String

项目id, 全局服务默认null

最小长度:0

最大长度:64

表22 data_source

参数

参数类型

描述

source_type

Integer

数据源类型,取值范围如下:

  • 1:华为云产品
  • 2:第三方产品
  • 3:租户私有产品

最小值:1

最大值:3

枚举值:

  • 1
  • 2
  • 3

domain_id

String

数据源产品所属账号的id

最小长度:0

最大长度:36

project_id

String

数据源产品所属项目的id

最小长度:0

最大长度:64

region_id

String

数据源产品所在区域,具体取值范围查看华为云地区和终端节点定义

最小长度:0

最大长度:64

company_name

String

数据源产品所属公司的名称

最小长度:0

最大长度:16

product_name

String

数据源产品的名称

最小长度:0

最大长度:24

product_feature

String

产品功能特性名称,用来指明检测到当前事件的产品的功能特性

最小长度:0

最大长度:24

product_module

String

检测模块列表

最小长度:0

最大长度:1024

表23 alert_type

参数

参数类型

描述

category

String

类别

最小长度:0

最大长度:1024

alert_type

String

告警类型

最小长度:0

最大长度:1024

表24 network_list

参数

参数类型

描述

direction

String

方向,取值范围:IN | OUT

最小长度:0

最大长度:3

枚举值:

  • IN
  • OUT

protocol

String

协议,包含7层和4层的协议 参考:IANA registered name https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

最小长度:0

最大长度:64

src_ip

String

源IP地址

最小长度:0

最大长度:64

src_port

Integer

源端口,0–65535

最小值:0

最大值:65535

src_domain

String

源域名

最小长度:0

最大长度:128

src_geo

src_geo object

源IP的地理位置信息

dest_ip

String

目的IP地址

最小长度:32

最大长度:64

dest_port

String

目的端口,0–65535

最小长度:0

最大长度:65535

dest_domain

String

目的域名

最小长度:0

最大长度:128

dest_geo

dest_geo object

目标IP的地理位置信息

表25 src_geo

参数

参数类型

描述

latitude

Number

纬度

最小值:0

最大值:90

longitude

Number

经度

最小值:0

最大值:180

city_code

String

城市编码,Beijing | Shanghai

最小长度:0

最大长度:64

country_code

String

国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG

最小长度:0

最大长度:64

表26 dest_geo

参数

参数类型

描述

latitude

Number

纬度

最小值:0

最大值:90

longitude

Number

经度

最小值:0

最大值:180

city_code

String

城市编码,Beijing | Shanghai

最小长度:0

最大长度:64

country_code

String

国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG

最小长度:0

最大长度:64

表27 resource_list

参数

参数类型

描述

id

String

云服务资源id

最小长度:0

最大长度:36

name

String

资源名称

最小长度:0

最大长度:255

type

String

资源类型;引用华为云RMS type字段

最小长度:0

最大长度:64

provider

String

云服务名称;引用华为云RMS provider字段

最小长度:0

最大长度:64

region_id

String

区域;按照华为云regionId填写

最小长度:0

最大长度:36

domain_id

String

资源所属账号ID,UUID格式

最小长度:0

最大长度:36

project_id

String

资源所属项目ID,UUID格式

最小长度:0

最大长度:36

ep_id

String

企业项目id

最小长度:0

最大长度:128

ep_name

String

企业项目名称

最小长度:0

最大长度:128

tags

String

资源标签

  • 最多50个key/values对 2、values:最大255字符,取值范围:字母数字,空格,+, -, =, ., _, :, /,@

最小长度:0

最大长度:2048

表28 remediation

参数

参数类型

描述

recommendation

String

推荐处理方法

最小长度:0

最大长度:128

url

String

链接,指向该事件的一般修复信息。该URL必须可以从公网访问,不需要提供凭证

最小长度:0

最大长度:2048

表29 malware

参数

参数类型

描述

malware_family

String

恶意家族

最小长度:0

最大长度:64

malware_class

String

恶意软件分类

最小长度:0

最大长度:64

表30 process

参数

参数类型

描述

process_name

String

进程名

最小长度:0

最大长度:64

process_path

String

进程执行文件路径

最小长度:0

最大长度:512

process_pid

Integer

进程id

最小值:0

最大值:65535

process_uid

Integer

进程用户id

最小值:0

最大值:655350

process_cmdline

String

进程命令行

最小长度:0

最大长度:128

process_parent_name

String

父进程名称

最小长度:0

最大长度:64

process_parent_path

String

父进程执行文件路径

最小长度:0

最大长度:512

process_parent_pid

Integer

父进程id

最小值:0

最大值:65535

process_parent_uid

Integer

父进程用户id

最小值:0

最大值:655350

process_parent_cmdline

String

父进程命令行

最小长度:0

最大长度:128

process_child_name

String

子进程名称

最小长度:0

最大长度:64

process_child_path

String

子进程执行文件路径

最小长度:0

最大长度:512

process_child_pid

Integer

子进程id

最小值:0

最大值:65535

process_child_uid

Integer

子进程用户id

最小值:0

最大值:655350

process_child_cmdline

String

子进程命令行

最小长度:0

最大长度:128

process_launche_time

String

进程启动时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

process_terminate_time

String

进程结束时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

最小长度:0

最大长度:30

表31 user_info

参数

参数类型

描述

user_id

String

用户uid

最小长度:0

最大长度:36

user_name

String

用户名称

最小长度:32

最大长度:64

表32 file_info

参数

参数类型

描述

file_path

String

文件路径/名称

最小长度:0

最大长度:128

file_content

String

文件内容

最小长度:0

最大长度:1024

file_new_path

String

文件新路径/名称

最小长度:32

最大长度:64

file_hash

String

文件hash

最小长度:0

最大长度:128

file_md5

String

文件md5

最小长度:0

最大长度:128

file_sha256

String

文件sha256

最小长度:0

最大长度:128

file_attr

String

文件属性

最小长度:0

最大长度:1024

表33 dataclass_ref

参数

参数类型

描述

id

String

数据类唯一标识,UUID格式,最大36个字符

最小长度:0

最大长度:36

name

String

数据类名称

最小长度:0

最大长度:36

状态码: 400

表34 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

表35 响应Body参数

参数

参数类型

描述

code

String

错误码

最小长度:0

最大长度:64

message

String

错误描述

最小长度:0

最大长度:1024

请求示例

更新一条告警,告警名称为MyXXX,URL为http://xxx,发生次数为4次,置信度为4,严重等级为tips。

{
  "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"
  }
}

响应示例

状态码: 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代码示例如下。

更新一条告警,告警名称为MyXXX,URL为http://xxx,发生次数为4次,置信度为4,严重等级为tips。

  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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
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.*;

import java.util.List;
import java.util.ArrayList;

public class ChangeAlertSolution {

    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");

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

        SecMasterClient client = SecMasterClient.newBuilder()
                .withCredential(auth)
                .withRegion(SecMasterRegion.valueOf("<YOUR REGION>"))
                .build();
        ChangeAlertRequest request = new ChangeAlertRequest();
        ChangeAlertRequestBody body = new ChangeAlertRequestBody();
        List<AlertFileInfo> listDataObjectFileInfo = new ArrayList<>();
        listDataObjectFileInfo.add(
            new AlertFileInfo()
                .withFilePath("MyXXX")
                .withFileContent("MyXXX")
                .withFileNewPath("MyXXX")
                .withFileHash("MyXXX")
                .withFileMd5("MyXXX")
                .withFileSha256("MyXXX")
                .withFileAttr("MyXXX")
        );
        List<AlertUserInfo> listDataObjectUserInfo = new ArrayList<>();
        listDataObjectUserInfo.add(
            new AlertUserInfo()
                .withUserId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
                .withUserName("MyXXX")
        );
        List<AlertProcess> listDataObjectProcess = new ArrayList<>();
        listDataObjectProcess.add(
            new AlertProcess()
                .withProcessName("MyXXX")
                .withProcessPath("MyXXX")
                .withProcessPid(123)
                .withProcessUid(123)
                .withProcessCmdline("MyXXX")
        );
        AlertMalware malwareDataObject = new AlertMalware();
        malwareDataObject.withMalwareFamily("family")
            .withMalwareClass("恶意占用内存");
        AlertRemediation remediationDataObject = new AlertRemediation();
        remediationDataObject.withRecommendation("MyXXX")
            .withUrl("MyXXX");
        List<AlertResourceList> listDataObjectResourceList = new ArrayList<>();
        listDataObjectResourceList.add(
            new AlertResourceList()
                .withId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
                .withName("MyXXX")
                .withType("MyXXX")
                .withRegionId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
                .withDomainId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
                .withProjectId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
                .withEpId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
                .withEpName("MyXXX")
                .withTags("909494e3-558e-46b6-a9eb-07a8e18ca62f")
        );
        AlertDestGeo destGeoNetworkList = new AlertDestGeo();
        destGeoNetworkList.withLatitude(java.math.BigDecimal.valueOf(90))
            .withLongitude(java.math.BigDecimal.valueOf(180));
        AlertSrcGeo srcGeoNetworkList = new AlertSrcGeo();
        srcGeoNetworkList.withLatitude(java.math.BigDecimal.valueOf(90))
            .withLongitude(java.math.BigDecimal.valueOf(180));
        List<AlertNetworkList> listDataObjectNetworkList = new ArrayList<>();
        listDataObjectNetworkList.add(
            new AlertNetworkList()
                .withDirection(AlertNetworkList.DirectionEnum.fromValue("{}"))
                .withProtocol("TCP")
                .withSrcIp("192.168.0.1")
                .withSrcPort(1)
                .withSrcDomain("xxx")
                .withSrcGeo(srcGeoNetworkList)
                .withDestIp("192.168.0.1")
                .withDestPort("1")
                .withDestDomain("xxx")
                .withDestGeo(destGeoNetworkList)
        );
        AlertDataSource dataSourceDataObject = new AlertDataSource();
        dataSourceDataObject.withSourceType(3)
            .withDomainId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withProjectId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withRegionId("909494e3-558e-46b6-a9eb-07a8e18ca62f");
        AlertEnvironment environmentDataObject = new AlertEnvironment();
        environmentDataObject.withVendorType("MyXXX")
            .withDomainId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withRegionId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withProjectId("909494e3-558e-46b6-a9eb-07a8e18ca62f");
        Alert dataObjectbody = new Alert();
        dataObjectbody.withVersion("1.0")
            .withId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withWorkspaceId("909494e3-558e-46b6-a9eb-07a8e18ca620")
            .withEnvironment(environmentDataObject)
            .withDataSource(dataSourceDataObject)
            .withFirstObservedTime("2021-01-30T23:00:00Z+0800")
            .withLastObservedTime("2021-01-30T23:00:00Z+0800")
            .withCreateTime("2021-01-30T23:00:00Z+0800")
            .withArriveTime("2021-01-30T23:00:00Z+0800")
            .withTitle("MyXXX")
            .withDescription("This my XXXX")
            .withSourceUrl("http://xxx")
            .withCount(4)
            .withConfidence(4)
            .withSeverity(Alert.SeverityEnum.fromValue("TIPS"))
            .withCriticality(4)
            .withNetworkList(listDataObjectNetworkList)
            .withResourceList(listDataObjectResourceList)
            .withRemediation(remediationDataObject)
            .withVerificationState(Alert.VerificationStateEnum.fromValue("Unknown – 未知,True_Positive – 确认,False_Positive – 误报。默认填写Unknown"))
            .withHandleStatus(Alert.HandleStatusEnum.fromValue("Open – 打开,Block – 阻塞,Closed – 关闭。默认填写Open"))
            .withSla(60000)
            .withUpdateTime("2021-01-30T23:00:00Z+0800")
            .withCloseTime("2021-01-30T23:00:00Z+0800")
            .withIpdrrPhase(Alert.IpdrrPhaseEnum.fromValue("Prepartion|Detection and Analysis|Containm,Eradication& Recovery| Post-Incident-Activity"))
            .withSimulation("false")
            .withActor("刘一博")
            .withOwner("MyXXX")
            .withCreator("MyXXX")
            .withCloseReason(Alert.CloseReasonEnum.fromValue("误检;已解决;重复;其他"))
            .withCloseComment("误检;已解决;重复;其他")
            .withMalware(malwareDataObject)
            .withSystemInfo(new Object())
            .withProcess(listDataObjectProcess)
            .withUserInfo(listDataObjectUserInfo)
            .withFileInfo(listDataObjectFileInfo)
            .withSystemAlertTable(new Object());
        body.withDataObject(dataObjectbody);
        request.withBody(body);
        try {
            ChangeAlertResponse response = client.changeAlert(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());
        }
    }
}

更新一条告警,告警名称为MyXXX,URL为http://xxx,发生次数为4次,置信度为4,严重等级为tips。

  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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# 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"]

    credentials = BasicCredentials(ak, sk)

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

    try:
        request = ChangeAlertRequest()
        listFileInfoDataObject = [
            AlertFileInfo(
                file_path="MyXXX",
                file_content="MyXXX",
                file_new_path="MyXXX",
                file_hash="MyXXX",
                file_md5="MyXXX",
                file_sha256="MyXXX",
                file_attr="MyXXX"
            )
        ]
        listUserInfoDataObject = [
            AlertUserInfo(
                user_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
                user_name="MyXXX"
            )
        ]
        listProcessDataObject = [
            AlertProcess(
                process_name="MyXXX",
                process_path="MyXXX",
                process_pid=123,
                process_uid=123,
                process_cmdline="MyXXX"
            )
        ]
        malwareDataObject = AlertMalware(
            malware_family="family",
            malware_class="恶意占用内存"
        )
        remediationDataObject = AlertRemediation(
            recommendation="MyXXX",
            url="MyXXX"
        )
        listResourceListDataObject = [
            AlertResourceList(
                id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
                name="MyXXX",
                type="MyXXX",
                region_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
                domain_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
                project_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
                ep_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
                ep_name="MyXXX",
                tags="909494e3-558e-46b6-a9eb-07a8e18ca62f"
            )
        ]
        destGeoNetworkList = AlertDestGeo(
            latitude=90,
            longitude=180
        )
        srcGeoNetworkList = AlertSrcGeo(
            latitude=90,
            longitude=180
        )
        listNetworkListDataObject = [
            AlertNetworkList(
                direction="{}",
                protocol="TCP",
                src_ip="192.168.0.1",
                src_port=1,
                src_domain="xxx",
                src_geo=srcGeoNetworkList,
                dest_ip="192.168.0.1",
                dest_port="1",
                dest_domain="xxx",
                dest_geo=destGeoNetworkList
            )
        ]
        dataSourceDataObject = AlertDataSource(
            source_type=3,
            domain_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            project_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            region_id="909494e3-558e-46b6-a9eb-07a8e18ca62f"
        )
        environmentDataObject = AlertEnvironment(
            vendor_type="MyXXX",
            domain_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            region_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            project_id="909494e3-558e-46b6-a9eb-07a8e18ca62f"
        )
        dataObjectbody = Alert(
            version="1.0",
            id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            workspace_id="909494e3-558e-46b6-a9eb-07a8e18ca620",
            environment=environmentDataObject,
            data_source=dataSourceDataObject,
            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,
            network_list=listNetworkListDataObject,
            resource_list=listResourceListDataObject,
            remediation=remediationDataObject,
            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=malwareDataObject,
            system_info={},
            process=listProcessDataObject,
            user_info=listUserInfoDataObject,
            file_info=listFileInfoDataObject,
            system_alert_table={}
        )
        request.body = ChangeAlertRequestBody(
            data_object=dataObjectbody
        )
        response = client.change_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)

更新一条告警,告警名称为MyXXX,URL为http://xxx,发生次数为4次,置信度为4,严重等级为tips。

  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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
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")

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

    client := secmaster.NewSecMasterClient(
        secmaster.SecMasterClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ChangeAlertRequest{}
	filePathFileInfo:= "MyXXX"
	fileContentFileInfo:= "MyXXX"
	fileNewPathFileInfo:= "MyXXX"
	fileHashFileInfo:= "MyXXX"
	fileMd5FileInfo:= "MyXXX"
	fileSha256FileInfo:= "MyXXX"
	fileAttrFileInfo:= "MyXXX"
	var listFileInfoDataObject = []model.AlertFileInfo{
        {
            FilePath: &filePathFileInfo,
            FileContent: &fileContentFileInfo,
            FileNewPath: &fileNewPathFileInfo,
            FileHash: &fileHashFileInfo,
            FileMd5: &fileMd5FileInfo,
            FileSha256: &fileSha256FileInfo,
            FileAttr: &fileAttrFileInfo,
        },
    }
	userIdUserInfo:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	userNameUserInfo:= "MyXXX"
	var listUserInfoDataObject = []model.AlertUserInfo{
        {
            UserId: &userIdUserInfo,
            UserName: &userNameUserInfo,
        },
    }
	processNameProcess:= "MyXXX"
	processPathProcess:= "MyXXX"
	processPidProcess:= int32(123)
	processUidProcess:= int32(123)
	processCmdlineProcess:= "MyXXX"
	var listProcessDataObject = []model.AlertProcess{
        {
            ProcessName: &processNameProcess,
            ProcessPath: &processPathProcess,
            ProcessPid: &processPidProcess,
            ProcessUid: &processUidProcess,
            ProcessCmdline: &processCmdlineProcess,
        },
    }
	malwareFamilyMalware:= "family"
	malwareClassMalware:= "恶意占用内存"
	malwareDataObject := &model.AlertMalware{
		MalwareFamily: &malwareFamilyMalware,
		MalwareClass: &malwareClassMalware,
	}
	recommendationRemediation:= "MyXXX"
	urlRemediation:= "MyXXX"
	remediationDataObject := &model.AlertRemediation{
		Recommendation: &recommendationRemediation,
		Url: &urlRemediation,
	}
	idResourceList:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	nameResourceList:= "MyXXX"
	typeResourceList:= "MyXXX"
	regionIdResourceList:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	domainIdResourceList:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	projectIdResourceList:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	epIdResourceList:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	epNameResourceList:= "MyXXX"
	tagsResourceList:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	var listResourceListDataObject = []model.AlertResourceList{
        {
            Id: &idResourceList,
            Name: &nameResourceList,
            Type: &typeResourceList,
            RegionId: &regionIdResourceList,
            DomainId: &domainIdResourceList,
            ProjectId: &projectIdResourceList,
            EpId: &epIdResourceList,
            EpName: &epNameResourceList,
            Tags: &tagsResourceList,
        },
    }
	latitudeDestGeo:= float32(90)
	longitudeDestGeo:= float32(180)
	destGeoNetworkList := &model.AlertDestGeo{
		Latitude: &latitudeDestGeo,
		Longitude: &longitudeDestGeo,
	}
	latitudeSrcGeo:= float32(90)
	longitudeSrcGeo:= float32(180)
	srcGeoNetworkList := &model.AlertSrcGeo{
		Latitude: &latitudeSrcGeo,
		Longitude: &longitudeSrcGeo,
	}
	directionNetworkList:= model.GetAlertNetworkListDirectionEnum().{}
	protocolNetworkList:= "TCP"
	srcIpNetworkList:= "192.168.0.1"
	srcPortNetworkList:= int32(1)
	srcDomainNetworkList:= "xxx"
	destIpNetworkList:= "192.168.0.1"
	destPortNetworkList:= "1"
	destDomainNetworkList:= "xxx"
	var listNetworkListDataObject = []model.AlertNetworkList{
        {
            Direction: &directionNetworkList,
            Protocol: &protocolNetworkList,
            SrcIp: &srcIpNetworkList,
            SrcPort: &srcPortNetworkList,
            SrcDomain: &srcDomainNetworkList,
            SrcGeo: srcGeoNetworkList,
            DestIp: &destIpNetworkList,
            DestPort: &destPortNetworkList,
            DestDomain: &destDomainNetworkList,
            DestGeo: destGeoNetworkList,
        },
    }
	sourceTypeDataSource:= int32(3)
	domainIdDataSource:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	projectIdDataSource:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	regionIdDataSource:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	dataSourceDataObject := &model.AlertDataSource{
		SourceType: &sourceTypeDataSource,
		DomainId: &domainIdDataSource,
		ProjectId: &projectIdDataSource,
		RegionId: &regionIdDataSource,
	}
	vendorTypeEnvironment:= "MyXXX"
	domainIdEnvironment:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	regionIdEnvironment:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	projectIdEnvironment:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	environmentDataObject := &model.AlertEnvironment{
		VendorType: &vendorTypeEnvironment,
		DomainId: &domainIdEnvironment,
		RegionId: &regionIdEnvironment,
		ProjectId: &projectIdEnvironment,
	}
	versionDataObject:= "1.0"
	idDataObject:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	workspaceIdDataObject:= "909494e3-558e-46b6-a9eb-07a8e18ca620"
	firstObservedTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	lastObservedTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	createTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	arriveTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	titleDataObject:= "MyXXX"
	descriptionDataObject:= "This my XXXX"
	sourceUrlDataObject:= "http://xxx"
	countDataObject:= int32(4)
	confidenceDataObject:= int32(4)
	severityDataObject:= model.GetAlertSeverityEnum().TIPS
	criticalityDataObject:= int32(4)
	verificationStateDataObject:= model.GetAlertVerificationStateEnum().UNKNOWN__未知,TRUE_POSITIVE__确认,FALSE_POSITIVE__误报默认填写UNKNOWN
	handleStatusDataObject:= model.GetAlertHandleStatusEnum().OPEN__打开,BLOCK__阻塞,CLOSED__关闭默认填写OPEN
	slaDataObject:= int32(60000)
	updateTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	closeTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	ipdrrPhaseDataObject:= model.GetAlertIpdrrPhaseEnum().PREPARTION|DETECTION_AND_ANALYSIS|CONTAINM,ERADICATION&_RECOVERY|_POST_INCIDENT_ACTIVITY
	simulationDataObject:= "false"
	actorDataObject:= "刘一博"
	ownerDataObject:= "MyXXX"
	creatorDataObject:= "MyXXX"
	closeReasonDataObject:= model.GetAlertCloseReasonEnum().误检;已解决;重复;其他
	closeCommentDataObject:= "误检;已解决;重复;其他"
	var systemInfoDataObject interface{} = make(map[string]string)
	var systemAlertTableDataObject interface{} = make(map[string]string)
	dataObjectbody := &model.Alert{
		Version: &versionDataObject,
		Id: &idDataObject,
		WorkspaceId: &workspaceIdDataObject,
		Environment: environmentDataObject,
		DataSource: dataSourceDataObject,
		FirstObservedTime: &firstObservedTimeDataObject,
		LastObservedTime: &lastObservedTimeDataObject,
		CreateTime: &createTimeDataObject,
		ArriveTime: &arriveTimeDataObject,
		Title: &titleDataObject,
		Description: &descriptionDataObject,
		SourceUrl: &sourceUrlDataObject,
		Count: &countDataObject,
		Confidence: &confidenceDataObject,
		Severity: &severityDataObject,
		Criticality: &criticalityDataObject,
		NetworkList: &listNetworkListDataObject,
		ResourceList: &listResourceListDataObject,
		Remediation: remediationDataObject,
		VerificationState: &verificationStateDataObject,
		HandleStatus: &handleStatusDataObject,
		Sla: &slaDataObject,
		UpdateTime: &updateTimeDataObject,
		CloseTime: &closeTimeDataObject,
		IpdrrPhase: &ipdrrPhaseDataObject,
		Simulation: &simulationDataObject,
		Actor: &actorDataObject,
		Owner: &ownerDataObject,
		Creator: &creatorDataObject,
		CloseReason: &closeReasonDataObject,
		CloseComment: &closeCommentDataObject,
		Malware: malwareDataObject,
		SystemInfo: &systemInfoDataObject,
		Process: &listProcessDataObject,
		UserInfo: &listUserInfoDataObject,
		FileInfo: &listFileInfoDataObject,
		SystemAlertTable: &systemAlertTableDataObject,
	}
	request.Body = &model.ChangeAlertRequestBody{
		DataObject: dataObjectbody,
	}
	response, err := client.ChangeAlert(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

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

状态码

状态码

描述

200

更新告警返回body体

400

更新告警错误返回body体

错误码

请参见错误码