云服务器内容精选

  • 操作场景 应急策略作为告警一键阻断的止血手段,可根据告警来源选择相应的类型对攻击者进行阻断。表1中为推荐设置,除此之外,您也可以结合对多条告警的综合调查结果,对单个攻击源采用多种类型进行阻断。 表1 推荐阻断策略 告警类型 对应防线 推荐阻断策略 HSS告警 主机防线 建议优先采用VPC策略阻断 WAF告警 应用防线 建议优先采用WAF策略阻断 CFW告警 网络防线 建议优先采用CFW策略阻断 IAM 告警 身份防线 建议优先采用IAM策略阻断 OBS/DBSS告警 数据防线 当前可根据实际攻击场景和调查结果考虑使用VPC策略阻断/CFW策略阻断,隔绝防护资产和攻击源的网络通信等 本章节介绍如何执行一键阻断和一键解封操作。
  • 告警和事件关系说明 本部分介绍告警和事件的含义、区别,告警转事件的原因和告警关联事件的原因。 告警和事件的含义与区别 表1 告警和事件的含义与区别 类别 描述 定义 告警: 告警是运维中的一种异常信号的通知,通常是由监控系统或安全设备在检测到系统或网络中的异常情况时自动生成的。例如,当服务器的CPU使用率超过90%时,系统可能会发出告警。这些异常情况可能包括系统故障、安全威胁或性能瓶颈等。 告警通常有明确的指示性,能够明确指出异常发生的位置、类型和影响。同时,告警可以按照严重程度来进行分类,如紧急、重要、一般等,以便运维人员根据告警的严重程度来决定哪些需要优先处理。 告警的目的是及时通知相关人员,以便他们能够迅速响应并采取措施解决问题。 事件: 事件是一个更广泛的概念,可以包括告警,但不限于此。事件可以是系统正常操作的一部分,也可以是异常或错误。在运维和安全领域,事件通常指的是已经发生并需要被关注、调查和处理的问题或故障。事件可能由一条或多条告警触发,也可能由其他因素(如用户操作、系统日志等)引发。 事件的目的更广泛,可以是为了记录、分析、报告或审计,通常用于记录和报告系统的历史行为,以便于分析和审计。 处理流程 告警: 告警的处理流程通常包括接收、确认、分析、响应和关闭等步骤。当监控系统发出告警时,运维人员首先需要确认告警的真实性,然后分析告警的原因和影响范围,最后采取相应的措施来解决问题,并关闭告警。 事件: 事件的处理流程则更加复杂和全面。除了包含告警处理流程中的各个环节外,事件处理还需要进行事件调查、影响评估、风险分析、制定应急计划、执行应急响应、事后总结等步骤。事件处理的目标是彻底解决问题,防止类似事件再次发生,并减少事件对业务的影响。 重要性与紧急程度 告警: 告警一般需要立即评估和响应。 每条告警的紧急程度和重要性各不相同,取决于告警的类型、级别和影响的范围。一些告警可能只是简单的提醒或预警,而另一些告警则可能表示系统已经遭受严重攻击或面临重大故障风险。 事件: 事件可能需要记录、分析或在某些情况下采取行动,但不一定需要立即响应。 事件通常比告警具有更高的重要性和紧急程度。因为事件已经发生并产生了实际的影响,需要立即采取措施来应对和解决问题。如果事件得不到及时处理,可能会给组织带来重大的经济损失或声誉损害。 告警转事件或关联事件的原因 告警通常是在系统或服务出现异常或潜在故障时产生的通知。这些异常可能会直接影响业务的正常运行,因此告警需要被及时处理,以防止业务异常。告警通常需要采取相应的措施来清除故障,否则可能会因为这些异常或故障引起业务的异常。 事件则是在系统或服务在正常运行状态下产生的通知,它可能涉及到一些重要的状态变化,但不一定会引起业务异常。因此,事件一般不需要进行处理,主要用于帮助分析、定位问题。 表2 告警转事件或关联事件的原因 类别 说明 告警转事件原因 当告警的严重性达到一定程度,或者持续出现,或者其影响范围广泛时,它可能不再仅仅是一个需要关注的信号,也可能表明系统或网络中存在一个持续性的问题,此时,它已经演变成了一个需要立即处理的事件,这种情况下,可以将告警转化为事件来处理,以便深入调查问题的根源,并采取相应的措施来彻底解决。通常告警转事件的原因有以下几个方面: 信息聚合与分类 告警通常是对某个特定条件或阈值被违反的即时响应。随着时间的推移,大量的告警可能会被触发,如果直接处理这些独立的告警,可能会变得非常混乱和低效。将这些告警聚合成事件,可以帮助相关人员根据告警的类型、来源、影响等维度进行分类,从而更有效地处理它们。 简化工作流程 告警到事件的转换过程,通常伴随着对告警的过滤、去重、聚合等处理。这些处理使得原本可能触发多个相似告警的情况,被整合为一个更具代表性的事件。这样不仅减少了处理单个告警的工作量,也使得处理过程更加条理清晰,便于跟踪和记录。 提升问题解决效率 将告警转换为事件后,由于事件通常提供了比单个告警更全面的上下文信息,因此相关人员可以更容易地识别出问题的根本原因,有助于更快地定位问题,并采取有效的解决措施。 便于历史回顾与趋势分析 事件记录了问题的发生、发展、解决的全过程,这为后续的问题预防、系统优化等提供了宝贵的历史数据。通过对事件进行趋势分析,可以发现系统中潜在的薄弱环节,提前采取措施进行改进。 增强跨部门协作 在大型组织中,不同的部门可能需要共同参与问题的处理。将告警转换为事件后,可以更容易地在不同部门之间共享相关信息,促进跨部门协作,提高问题解决的效率。 总而言之,将告警转换为事件助于简化工作流程、提升问题解决效率、便于历史回顾与趋势分析。 告警关联事件原因 告警关联事件是监控和故障管理中的一个重要环节,它涉及到将多个独立但可能相互关联的事件或告警组合起来,以便更好地理解问题的根源和范围,从而更有效地进行故障排查和响应。通常告警关联事件的原因有以下几个方面: 依赖关系 在复杂的系统中,各个组件之间往往存在复杂的依赖关系。当一个组件出现故障时,可能会影响依赖它的其他组件的正常工作,进而引发一系列告警。例如,在微服务架构中,一个服务的崩溃可能导致调用该服务的其他服务也出现问题。 资源共享 当多个系统或服务共享同一资源(如服务器、数据库、网络设备等)时,该资源的问题可能导致多个系统或服务同时发出告警。例如,共享数据库服务器的性能下降可能会触发多个依赖该数据库的应用程序的性能告警。 连锁反应 某些情况下,一个初始的故障可能触发一系列连锁反应,导致更多的组件或系统受到影响。这种连锁反应可能由于系统设计不当、错误处理机制不完善或资源限制(如内存泄漏导致的性能下降)等原因引起。 配置错误 配置错误或不一致的配置可能导致系统行为异常,进而触发多个看似不相关的告警。例如,错误的路由配置可能导致流量被错误地路由到不稳定的服务器,从而引发多个与性能相关的告警。 软件缺陷 软件中的缺陷(如bug)可能导致程序在特定条件下表现异常,并触发告警。如果这些缺陷影响了多个组件或系统,则可能引发多个关联告警。 外部因素 外部因素如自然灾害(如地震、洪水)、网络攻击、基础设施故障(如电力中断、网络中断)等也可能导致多个系统或组件同时出现问题,并触发大量告警。
  • 进入告警管理页面 登录 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) } }
  • 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)
  • 响应示例 状态码: 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" } } }
  • 请求示例 更新一条告警,告警名称为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 表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 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 区域od,全局服务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 数据源产品所在区域,具体取值范围查看华为云地区和终端节点定义,例如cn-north-1 最小长度: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填写,如cn-north-1等 最小长度: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 资源标签 1、最多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
  • 请求参数 表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 区域od,全局服务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 数据源产品所在区域,具体取值范围查看华为云地区和终端节点定义,例如cn-north-1 最小长度: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填写,如cn-north-1等 最小长度: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 资源标签 1、最多50个key/values对 2、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
  • 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
  • 请求示例 { "ids" : [ "909494e3-558e-46b6-a9eb-07a8e18ca62f" ], "incident_id" : "909494e3-558e-46b6-a9eb-07a8e18ca621", "event_content" : { "handle_status" : "关闭" }, "incident_content" : { "title" : "xxx", "type_category" : "xxx", "evidence_list" : [ "909494e3-558e-46b6-a9eb-07a8e18ca62f" ], "note_list" : [ "909494e3-558e-46b6-a9eb-07a8e18ca62f" ], "attachment_list" : [ "909494e3-558e-46b6-a9eb-07a8e18ca62f" ], "incident_type" : { "id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "layoutId" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "incident_type" : "909494e3-558e-46b6-a9eb-07a8e18ca62f", "category" : "909494e3-558e-46b6-a9eb-07a8e18ca62f" }, "description" : "909494e3-558e-46b6-a9eb-07a8e18ca62f" }, "marked_evidence" : false}