云服务器内容精选

  • 告警管理概述 告警管理功能提供告警数据的收集、纳管和处理。 本功能支持集成多个现有或第三方等监控系统(比如 CES AOM 、Prometheus),并将业务下分散的告警信息进行统一收集,生成原始告警。用户可以在集成管理处启用或禁用已有告警源,或者接入第三方监控系统。 本功能还支持汇聚告警的管理。通过设置流转规则,用户可以将接收到的符合指定规则的多条原始告警汇聚成单条告警,或者转事件单处理,同时执行响应预案(脚本/作业/应急预案),并自动通知相应责任人。汇聚告警减少了重复告警,避免了告警风暴,提高用户处理告警的效率。 此外,本功能可以帮助用户高效创建和管理告警规则。其提供了跨账号、跨区域的告警规则配置能力,帮助用户提高批量配置的效率。告警规则目前仅支持CES告警的配置。 图1 告警管理流程 父主题: 告警管理
  • 请求示例 创建一条告警,告警名称为MyXXX,标签为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", "product_name" : "test", "product_feature" : "test" }, "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", "labels" : "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" : 123, "format_version" : 123, "dataclass_ref" : { "id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "name" : "MyXXX" } } }
  • 响应参数 状态码: 200 表17 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID,格式为:request_uuid-timestamp-hostname 表18 响应Body参数 参数 参数类型 描述 code String 错误码 message String 错误信息 data AlertDetail object 告警详情对象 表19 AlertDetail 参数 参数类型 描述 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 表20 Alert 参数 参数类型 描述 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 告警管理列表的布局字段 表21 environment 参数 参数类型 描述 vendor_type String 环境供应商 domain_id String 租户id region_id String 区域id,全局服务global cross_workspace_id String 数据投递前的源工作空间id,在源空间下值为null,投递后为被委托用户的id project_id String 项目id, 全局服务默认null 表22 data_source 参数 参数类型 描述 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 检测模块列表 表23 alert_type 参数 参数类型 描述 category String 类别 alert_type String 告警类型 表24 network_list 参数 参数类型 描述 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的地理位置信息 表25 src_geo 参数 参数类型 描述 latitude Number 纬度 longitude Number 经度 city_code String 城市编码,Beijing | Shanghai country_code String 国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG 表26 dest_geo 参数 参数类型 描述 latitude Number 纬度 longitude Number 经度 city_code String 城市编码,Beijing | Shanghai country_code String 国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG 表27 resource_list 参数 参数类型 描述 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字符,取值范围:字母数字,空格,+, -, =, ., _, :, /,@ 表28 remediation 参数 参数类型 描述 recommendation String 推荐处理方法 url String 链接,指向该事件的一般修复信息。该URL必须可以从公网访问,不需要提供凭证 表29 malware 参数 参数类型 描述 malware_family String 恶意家族 malware_class String 恶意软件分类 表30 process 参数 参数类型 描述 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。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 表31 user_info 参数 参数类型 描述 user_id String 用户uid user_name String 用户名称 表32 file_info 参数 参数类型 描述 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 文件属性 表33 dataclass_ref 参数 参数类型 描述 id String 数据类唯一标识,UUID格式,最大36个字符 name String 数据类名称 状态码: 400 表34 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID,格式为:request_uuid-timestamp-hostname 表35 响应Body参数 参数 参数类型 描述 code String 错误码 message String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) content-type 是 String 内容类型 表3 请求Body参数 参数 是否必选 参数类型 描述 data_object 是 Alert object 告警实体信息 表4 Alert 参数 是否必选 参数类型 描述 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 告警管理列表的布局字段 表5 environment 参数 是否必选 参数类型 描述 vendor_type 否 String 环境供应商 domain_id 否 String 租户id region_id 否 String 区域id,全局服务global cross_workspace_id 否 String 数据投递前的源工作空间id,在源空间下值为null,投递后为被委托用户的id project_id 否 String 项目id, 全局服务默认null 表6 data_source 参数 是否必选 参数类型 描述 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 检测模块列表 表7 alert_type 参数 是否必选 参数类型 描述 category 否 String 类别 alert_type 否 String 告警类型 表8 network_list 参数 是否必选 参数类型 描述 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的地理位置信息 表9 src_geo 参数 是否必选 参数类型 描述 latitude 否 Number 纬度 longitude 否 Number 经度 city_code 否 String 城市编码,Beijing | Shanghai country_code 否 String 国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG 表10 dest_geo 参数 是否必选 参数类型 描述 latitude 否 Number 纬度 longitude 否 Number 经度 city_code 否 String 城市编码,Beijing | Shanghai country_code 否 String 国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG 表11 resource_list 参数 是否必选 参数类型 描述 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字符,取值范围:字母数字,空格,+, -, =, ., _, :, /,@ 表12 remediation 参数 是否必选 参数类型 描述 recommendation 否 String 推荐处理方法 url 否 String 链接,指向该事件的一般修复信息。该URL必须可以从公网访问,不需要提供凭证 表13 malware 参数 是否必选 参数类型 描述 malware_family 否 String 恶意家族 malware_class 否 String 恶意软件分类 表14 process 参数 是否必选 参数类型 描述 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。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区 表15 user_info 参数 是否必选 参数类型 描述 user_id 否 String 用户uid user_name 否 String 用户名称 表16 file_info 参数 是否必选 参数类型 描述 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 文件属性
  • 操作场景 告警是运维中的一种异常信号的通知,通常是由监控系统或安全设备在检测到系统或网络中的异常情况时自动生成的。例如,当服务器的CPU使用率超过90%时,系统可能会发出告警。这些异常情况可能包括系统故障、安全威胁或性能瓶颈等。 告警通常有明确的指示性,能够明确指出异常发生的位置、类型和影响。同时,告警可以按照严重程度来进行分类,如紧急、重要、一般等,以便运维人员根据告警的严重程度来决定哪些需要优先处理。 告警的目的是及时通知相关人员,以便他们能够迅速响应并采取措施解决问题。 当 安全云脑 检测到的云资源中存在的异常情况(例如,某个恶意IP对资产攻击、资产已被入侵等)时,将以告警的形式将威胁信息展示在安全云脑告警管理界面中。 在安全云脑的告警管理页面,可以通过查看告警列表了解近360天的告警威胁的统计信息列表,列表内容包括告警事件的名称、类型、等级和发生时间等。并可通过自定义过滤条件,如告警名称、告警等级和发生时间等,快速查询到相应告警事件的统计信息。 本章节主要介绍如何查看告警信息。
  • 进入告警管理页面 登录 GaussDB (DWS) 管理控制台。 在左侧导航栏,单击“告警管理”,切换至“告警”页签。 进入 数据仓库 告警展示页面。该页面分为三个区域: 存量告警统计 最近7天的存量告警统计值(按告警级别分类),以柱状图的形式展示。用户可通过存量告警统计图,对过去一周告警发生的数量和分布有清晰的了解。 当日告警 当天的存量告警统计值(按级别分类),以列表的形式展示。重点向用户强调当天未处理的告警数量,帮助用户快速掌握目前告警的数量和分布。 告警详情 最近7天的所有告警(包括已处理和未处理)的明细信息,以表格的形式展示。可查看近7天内所有告警的告警名称、告警级别、集群名称、定位信息、详细信息、产生日期、状态等信息,帮助用户快速发现和定位问题。 告警展示页面的数据源来自EventService微服务,该微服务最多可以提供30天的告警缓存数据。
  • 创建订阅 登录GaussDB(DWS)管理控制台。 在左侧导航树,单击“告警管理”,切换至“订阅”页签。 在页面左上角单击“创建订阅”按钮。 在“订阅设置”区域,设置订阅基本信息及告警过滤。 表1 订阅参数 参数名 参数解释 是否开启 设置是否开启告警订阅。 关闭后停止发送已订阅告警的通知消息,但不会删除该订阅。 订阅名称 设置订阅告警的名称。 名称只能包含大写字母、小写字母、数字、-和_,且必须由大写字母、小写字母或数字开头。 名称长度为1~256字符。 告警级别 选择订阅告警的级别:紧急、重要、次要和提示。 “订阅告警列表”区域显示系统根据订阅设置筛选出的告警。在“ 消息通知 主题名称”下拉框中,选择一个消息通知主题。 如需创建新主题,请单击“创建新主题”按钮,系统将跳转到消息通知服务控制台页面,具体请参见《消息通知服务用户指南》中的创建主题章节。 所选择的消息通知主题,必须已授予GaussDB(DWS) 服务向该主题发布消息的权限。如果所选主题尚未给GaussDB(DWS) 授权,请前往消息通知服务的主题管理页面设置主题策略授权。详细操作请参见《消息通知服务用户指南》中的设置主题策略章节。设置主题策略时,“可发布消息的服务”需勾选“DWS”。 确认无误后,单击“确定”,完成创建订阅。
  • 响应示例 状态码: 200 请求成功 { "total" : 1, "items" : [ { "enabled" : true, "enterprise_project_id" : "0", "id" : "753231205d474fa78655760c8dbd9e6f", "is_all_enterprise_project" : true, "locale" : "zh-cn", "name" : "test-demo33", "nearly_expired_time" : 60, "notice_class" : "cert_alert_notice", "prefer_html" : false, "sendfreq" : 10080, "threat" : [ ], "times" : 1, "topic_urn" : "urn:smn:cn-north-7:550500b49078408682d0d4f7d923f3e1:ces_zyh_test", "update_time" : 1664347553944 } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 配置的告警通知总数量 items Array of AlertNoticeConfigResponse objects 配置的告警通知 表5 AlertNoticeConfigResponse 参数 参数类型 描述 id String ID name String 告警通知名称 enabled Boolean 是否开启 false: 不开启 true: 开启 topic_urn String 主题 sendfreq Integer 时间间隔,单位为分钟。当通知类型为防护事件时,该参数表示在该时间间隔内,攻击次数等于或者大于设定阈值时,将发送告警通知,支持的值:5、15、30、60、120、360、720、1440;当通知类型为证书到期时,该参数表示每隔多长时间发送一次告警通知,支持的值1天、1周(需要转换成分钟)。 locale String 语言 times Integer 当通知类型为防护事件时,需要填写该参数。在该时间间隔内,当攻击次数大于或等于您设置的阈值时才会发送告警通知 缺省值:1 threat Array of strings 事件类型 prefer_html Boolean 预留参数,可忽略 缺省值:false notice_class String 通知类型 nearly_expired_time String 提前通知天数 is_all_enterprise_project Boolean 是否是所有企业项目 缺省值:true enterprise_project_id String 企业项目ID update_time Long 更新时间 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 创建自定义告警规则 登录GaussDB(DWS) 管理控制台。 在左侧导航栏,单击“告警管理”,切换至“告警”页签。 单击左上角的“查看告警规则”按钮,进入告警规则页面。 单击右上角的“创建告警规则”按钮,进入创建告警规则页面。用户可自定义告警规则名称,规则描述,规则绑定集群,告警策略等配置项。 告警规则名称(规则名称长度为6到64个字符,且只能是首位非数字的中文、英文、数字、斜线组合。) 规则描述 规则绑定集群:用户可在该下拉框中选择当前租户下的集群作为告警模块的监控集群。 策略触发关系: 相互独立:各个告警策略之间互相独立触发。 按优先级:各个告警策略之间按照排列的先后顺序触发,当高优先级策略触发后低优先级策略就不会再做判断。 告警策略: 指标名称:GaussDB(DWS) 数据仓库的监控指标,告警引擎用来做阈值判断的数据源。 告警对象:当前选择的集群中包含的数据库,及其已选择的数据库中所包含的SCHEMA。 触发条件:定义对监控指标做阈值判断的计算规则。目前主要使用一段时间内的平均值来降低告警震荡的几率。 抑制条件:在指定的时间段内,抑制同类型告警的反复触发和消除。 告警级别:告警的严重程度,包含紧急、重要、次要和提示。 图1 新增自定义告警 目前GaussDB(DWS)只开放schema使用率的自定义告警规则指标。
  • Go 更新一条告警,告警名称为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("cn-north-4")). 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: ®ionIdResourceList, 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: ®ionIdDataSource, } 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: ®ionIdEnvironment, 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) } }
  • 请求示例 更新一条告警,告警名称为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" } } }
  • Python 更新一条告警,告警名称为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 # coding: utf-8 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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = SecMasterClient.new_builder() \ .with_credentials(credentials) \ .with_region(SecMasterRegion.value_of("cn-north-4")) \ .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)