云服务器内容精选

  • 背景说明 攻击链路在网络安全领域中是一个重要的概念,它主要指的是攻击者为了达成攻击目的,在目标网络或系统中采取的一系列攻击步骤和路径。这些步骤和路径构成了攻击链路,通过它们,攻击者能够逐步深入目标系统,最终实现其攻击目标。 攻击链路对目标网络或系统的危害是巨大的。一旦攻击者成功构建了攻击链路,并突破了目标系统的防御措施,就可以对目标系统进行任意操作,包括窃取敏感信息、破坏系统数据、瘫痪系统服务等。这些危害不仅会导致经济损失,还可能对国家安全和社会稳定造成严重影响。
  • 事件响应 获取、保护、记录证据。 根据您华为云环境的配置,通过主机安全服务(HSS)以及 Web应用防火墙 (WAF)来源检测相关类型的告警。 可通过SSH等方法访问云服务器,查看实例状态和监控等信息,查看是否有异常。或者通过其他方式收到的告警信息。 一旦确认攻击是事件,需要评估受影响范围、攻击机器和受影响业务及数据信息。 通过 安全云脑 “转事件”能力,持续跟踪对应事件,记录所有涉及事件信息。详细操作请参见告警转事件。 同时可通过日志信息溯源,通过“安全分析”能力审核所有相关日志信息,在“事件管理”中记录存档,便于后续跟踪运营。 控制事件。 通过告警和日志信息,确定攻击类型、影响主机和业务进程信息。 通过隔离查杀,策略阻断等脚本对涉及进程软件进行进程查杀、软件隔离等操作,降低后续影响。 排查感染范围,有感染风险都需要进行排查,一旦有沦陷及时处理控制。 同时也可使用其他剧本流程进行风险控制,比如“主机隔离”,通过安全组策略,从访问控制方面隔离受感染机器,隔离网络传播风险。 消除事件。 评估受影响机器是否需要加固恢复。如果已经沦陷,需要通过溯源结果加固恢复机器。如安全凭证泄露造成的攻击,则删除任何未经授权的 IAM 用户、角色和策略,并吊销凭据等操作进行主机加固。 对受感染机器可以进行风险排查,排查是否有漏洞、过时的软件、未修补的漏洞等,这些都可能会造成后续机器的持续沦陷,可通过“漏洞管理”排查和修复处理对应机器漏洞;排查是否有风险配置,可以通过“基线检查”排查机器配置,针对有风险配置进行及时处理修复。 评估影响范围,如果已经有其他机器沦陷,需要同步处理所有影响主机。 从事故中恢复。 确定从备份执行的所有还原操作的还原点。 查看备份策略,以确定是否可以恢复所有对象和文件,这取决于在资源上应用的生命周期策略。 使用取证方法确认数据在恢复之前是安全的,然后从备份中恢复数据,或者恢复到E CS 实例的早期快照。 如果您已成功使用任何开源解密工具恢复数据,请从实例中删除该数据,并执行必要的分析以确认数据是安全的。然后,恢复实例,终止或隔离实例并创建新的实例,并将数据还原至新实例中。 如果从备份恢复或解密数据都不可行,请评估在新环境中重新开始的可能性。 事故后活动。 通过整个告警处理流程中分析告警发生详细信息,持续运营优化模型,提升模型告警准确率。如判断是业务相关的,无风险的告警可以直接通过模型进行筛选。 通过溯源告警发生,更好的了解事件的整个流程,持续优化资产防护策略,降低资源风险,收缩攻击面。 通过告警事件处理,结合自己业务实际场景,优化自动化处理剧本流程,例如,通过分析之后告警准确率提升可替换人工审核策略,以全自动化替代,提升处理效率,更快速的对风险进行处理。 通过风险分析,结合攻击链路告警分析,进行风险前置,在未发生事件之前进行风险控制处理。
  • 响应方案 攻击者攻击 域名 成功之后会对后端服务器进行攻击,因此针对此链路攻击的路径,安全云脑提供了攻击链路分析告警通知剧本。当攻击者通过层层攻击到主机之后,进行告警,通知运营人员进行处置。 “攻击链路分析告警通知”剧本已匹配“攻击链路分析告警通知”流程,该流程需要使用 消息通知 服务(Simple Message Notification, SMN )来创建安全云脑告警通知主题,并完成订阅即可接收到告警通知。 “攻击链路分析告警通知”流程是通过资产关联,查询对应HSS告警影响资产所关联的网站资产列表,流程预置默认查询最多3条网站资产。 如果有关联网站资产,则每条网站资产查询3小时前到现在这个时间段内对应的WAF告警数据(告警类型为XSS、SQL注入、命令注入、本地文件包含、远程文件包含、Webshell、漏洞攻击),同样的,最多查询3条告警数据。 如果有对应WAF告警,则将WAF告警数据与本条HSS告警数据进行关联,并通过SMN通知到邮箱。 图1 攻击链路分析告警通知
  • 操作步骤 登录管理控制台。 选择“支持与服务”,单击左下方“工单服务”。 选择问题所属产品:在输入框中输入“SMN”,单击“消息通知服务(SMN)”进入下一步。 选择问题类型:问题类型选择“其他问题”,单击下方“您可以选择下一步,描述我的问题”,进入下一步。 填写问题描述:选择您的云资源所在的区域,问题描述填入“申请开通企业微信、钉钉、飞书、语音通知协议公测”,填写您的联系方式(手机或邮箱),跟进工单处理进展,完成后单击“下一步”。 提交工单:单击下方“未解决,提交工单”,提交申请公测工单。 完成工单提交:等待系统回复,当出现华为云工程师系统角色提示您确认风险的回复后,输入“风险已知晓,继续开通”,等待系统回复,完成公测协议开通。 企业微信群消息,钉钉群消息,飞书群消息有发送条数限制和接收方系统故障情况,可能会导致消息发送失败。出现上述原因时,SMN不保证消息成功送达。
  • 请求示例 修改xxxxxxxxxxxxxxxxxxx为通知主题,项目ID为xxxxxxxxxxxxxxxxxxx,告警通知状态为开启。 PUT /v1/{project_id}/sdg/smn/topic { "id" : "xxxxxxxxxxxxxxxxxxx", "project_id" : "xxxxxxxxxxxxxxxxxxx", "status" : 1, "topic_urn" : "xxxxxxxxxxxxxxxxxxx" }
  • 请求示例 { "relation_type" : "DEFAULT", "relation_ids" : [ "al123232232341232132" ], "mask_id" : "nm1689737291469aj38xNVLK", "mask_name" : "mn_test", "mask_status" : "MASK_EFFECTIVE", "resource_id" : "dse23xw43", "namespace" : "SYS.ECS", "dimensions" : [ { "name" : "instance_id", "value" : "4270ff17-aba3-4138-89fa-820594c39755" } ] }
  • URI POST /v2/{project_id}/notification-masks/batch-query 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户ID。 最小长度:1 最大长度:64 正则匹配:^[a-zA-Z0-9-]{1,64}$ 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 分页偏移量 最小值:0 最大值:10000 缺省值:0 正则匹配:^([0]|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|10000)$ limit 否 Integer 分页大小 最小值:1 最大值:100 缺省值:100 正则匹配:^([1-9]|[1-9][0-9]|100)$
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。默认使用application/json; charset=UTF-8。 缺省值:application/json; charset=UTF-8 最小长度:1 最大长度:64 X-Auth-Token 是 String 用户Token。 最小长度:1 最大长度:16384 表4 请求Body参数 参数 是否必选 参数类型 描述 relation_type 是 String 关联类型。ALARM_RULE:关联告警规则,RESOURCE:关联资源,RESOURCE_POLICY_NOTIFICATION:关联资源策略屏蔽告警通知,RESOURCE_POLICY_ALARM:关联资源策略不计算告警,DEFAULT:默认包含RESOURCE、RESOURCE_POLICY_NOTIFICATION(查询告警屏蔽列表时使用)。 枚举值: ALARM_RULE RESOURCE RESOURCE_POLICY_NOTIFICATION RESOURCE_POLICY_ALARM DEFAULT relation_ids 是 Array of strings 关联编号(目前是告警规则ID) 数组长度:1 - 100 mask_id 否 String 屏蔽规则ID,可选 最小长度:1 最大长度:64 正则匹配:^nm([0-9A-Za-z]){0,62}$ mask_name 否 String 屏蔽规则名称,可选,只能为字母、数字、汉字、-、_,最大长度为64 最小长度:1 最大长度:64 正则匹配:^([\u4E00-\u9FFF]|[a-z]|[A-Z]|[0-9]|_|-)+$ mask_status 否 String 屏蔽状态,可选。MASK_EFFECTIVE:已生效,MASK_INEFFECTIVE:未生效。 最小长度:1 最大长度:32 枚举值: MASK_EFFECTIVE MASK_INEFFECTIVE resource_id 否 String 资源维度值,提供一个维度的资源ID即可,可选 最小长度:1 最大长度:700 namespace 否 String 资源命名空间,例如弹性云服务器命名空间(格式为service.item;service和item必须是字符串,以字母开头,可包含0-9/a-z/A-Z/_;长度范围[3,32]。) dimensions 否 Array of Dimension objects 资源的维度信息 数组长度:1 - 4 表5 Dimension 参数 是否必选 参数类型 描述 name 是 String 资源维度名,如:弹性云服务器,则维度为instance_id;目前最大支持4个维度,各服务资源的指标维度名称可查看:“服务指标维度”。 正则匹配:^([a-z]|[A-Z]){1}([a-z]|[A-Z]|[0-9]|_|-){1,32}$ value 是 String 资源维度值,为资源的实例ID,如:4270ff17-aba3-4138-89fa-820594c39755。 正则匹配:^((([a-z]|[A-Z]|[0-9]){1}([a-z]|[A-Z]|[0-9]|_|-|\.)*)|\*){1,256}$
  • 请求示例 修改告警规则告警通知信息 { "notification_enabled" : true, "alarm_notifications" : [ { "type" : "", "notification_list" : [ ] } ], "ok_notifications" : [ { "type" : "", "notification_list" : [ ] } ], "notification_begin_time" : "00:00", "notification_end_time" : "23:59" }
  • 响应示例 状态码: 200 修改告警规则告警通知信息成功 { "notification_enabled" : true, "alarm_notifications" : [ { "type" : "", "notification_list" : [ ] } ], "ok_notifications" : [ { "type" : "", "notification_list" : [ ] } ], "notification_begin_time" : "00:00", "notification_end_time" : "23:59" }
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 notification_enabled Boolean 是否开启告警通知 alarm_notifications Array of Notification objects 告警触发的动作 ok_notifications Array of Notification objects 告警恢复触发的动作 notification_begin_time String 告警通知开启时间 notification_end_time String 告警通知关闭时间 表6 Notification 参数 参数类型 描述 type String 通知类型, notification代表通过SMN通知 正则匹配:^(notification|autoscaling|ecsRecovery|contact|contactGroup|iecAction)$ notification_list Array of strings 告警状态发生变化时,被通知对象的列表。topicUrn可从SMN获取,具体操作请参考查询Topic列表。当type为notification时,notification_list列表不能为空。 说明:若alarm_action_enabled为true,对应的alarm_actions、ok_actions至少有一个不能为空。若alarm_actions、ok_actions同时存在时,notification_list值保持一致。 数组长度:0 - 20 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 请求异常内部业务状态码 最小长度:0 最大长度:256 error_msg String 请求异常信息 最小长度:0 最大长度:256 request_id String 请求ID 最小长度:0 最大长度:256 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 请求异常内部业务状态码 最小长度:0 最大长度:256 error_msg String 请求异常信息 最小长度:0 最大长度:256 request_id String 请求ID 最小长度:0 最大长度:256
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 否 String 发送的实体的MIME类型。默认使用application/json; charset=UTF-8。 缺省值:application/json; charset=UTF-8 最小长度:1 最大长度:64 X-Auth-Token 否 String 用户Token 最小长度:1 最大长度:16384 表3 请求Body参数 参数 是否必选 参数类型 描述 notification_enabled 是 Boolean 是否开启告警通知,值为true时,其他字段均必选,值为false时,其他字段可不选 alarm_notifications 否 Array of Notification objects 告警触发的动作 ok_notifications 否 Array of Notification objects 告警恢复触发的动作 notification_begin_time 否 String 告警通知开启时间 notification_end_time 否 String 告警通知关闭时间 表4 Notification 参数 是否必选 参数类型 描述 type 是 String 通知类型, notification代表通过SMN通知 正则匹配:^(notification|autoscaling|ecsRecovery|contact|contactGroup|iecAction)$ notification_list 是 Array of strings 告警状态发生变化时,被通知对象的列表。topicUrn可从SMN获取,具体操作请参考查询Topic列表。当type为notification时,notification_list列表不能为空。 说明:若alarm_action_enabled为true,对应的alarm_actions、ok_actions至少有一个不能为空。若alarm_actions、ok_actions同时存在时,notification_list值保持一致。 数组长度:0 - 20
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。默认使用application/json; charset=UTF-8。 缺省值:application/json; charset=UTF-8 最小长度:1 最大长度:64 X-Auth-Token 是 String 用户Token。 最小长度:1 最大长度:16384 表3 请求Body参数 参数 是否必选 参数类型 描述 mask_name 否 String 屏蔽规则名称,只能为字母、数字、汉字、-、_,最大长度为64 relation_type 是 String 关联类型。ALARM_RULE:关联告警规则,RESOURCE:关联资源,RESOURCE_POLICY_NOTIFICATION:关联资源策略屏蔽告警通知,RESOURCE_POLICY_ALARM:关联资源策略不计算告警。 枚举值: ALARM_RULE RESOURCE RESOURCE_POLICY_NOTIFICATION RESOURCE_POLICY_ALARM relation_ids 是 Array of strings 关联编号,relation_type为ALARM_RULE时填屏蔽的告警规则ID;relation_type为RESOURCE_POLICY_NOTIFICATION、RESOURCE_POLICY_ALARM时填屏蔽的告警策略ID; 数组长度:1 - 100 resources 否 Array of Resource objects 关联资源,relation_type为RESOURCE、RESOURCE_POLICY_NOTIFICATION、RESOURCE_POLICY_ALARM时填屏蔽的资源信息; 数组长度:1 - 100 mask_type 是 String 屏蔽类型。START_END_TIME:按起止时间屏蔽,FOREVER_TIME:永久时间屏蔽,CYCLE_TIME:按周期时间屏蔽。 枚举值: START_END_TIME FOREVER_TIME CYCLE_TIME start_date 否 String 屏蔽起始日期,yyyy-MM-dd。 start_time 否 String 屏蔽起始时间,HH:mm:ss。 end_date 否 String 屏蔽截止日期,yyyy-MM-dd。 end_time 否 String 屏蔽截止时间,HH:mm:ss。 表4 Resource 参数 是否必选 参数类型 描述 namespace 是 String 资源命名空间,例如弹性云服务器命名空间(格式为service.item;service和item必须是字符串,以字母开头,可包含0-9/a-z/A-Z/_;长度范围[3,32]。) dimensions 是 Array of Dimension objects 资源的维度信息 数组长度:1 - 4 表5 Dimension 参数 是否必选 参数类型 描述 name 是 String 资源维度名,如:弹性云服务器,则维度为instance_id;目前最大支持4个维度,各服务资源的指标维度名称可查看:“服务指标维度”。 正则匹配:^([a-z]|[A-Z]){1}([a-z]|[A-Z]|[0-9]|_|-){1,32}$ value 是 String 资源维度值,为资源的实例ID,如:4270ff17-aba3-4138-89fa-820594c39755。 正则匹配:^((([a-z]|[A-Z]|[0-9]){1}([a-z]|[A-Z]|[0-9]|_|-|\.)*)|\*){1,256}$
  • 响应参数 状态码: 201 表6 响应Body参数 参数 参数类型 描述 relation_ids Array of strings 创建成功的关联ID列表 数组长度:0 - 100 notification_mask_id String 屏蔽规则ID 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 请求异常内部业务状态码 最小长度:0 最大长度:256 error_msg String 请求异常信息 最小长度:0 最大长度:256 request_id String 请求id 最小长度:0 最大长度:256 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 请求异常内部业务状态码 最小长度:0 最大长度:256 error_msg String 请求异常信息 最小长度:0 最大长度:256 request_id String 请求id 最小长度:0 最大长度:256
  • 请求示例 { "mask_name" : "mn_test", "relation_type" : "ALARM_RULE", "relation_ids" : [ "al123232232341232132" ], "resources" : [ { "namespace" : "SYS.ECS", "dimensions" : [ { "name" : "instance_id", "value" : "4270ff17-aba3-4138-89fa-820594c39755" } ] } ], "mask_type" : "START_END_TIME", "start_date" : "yyyy-MM-dd", "start_time" : "HH:mm:ss", "end_date" : "yyyy-MM-dd", "end_time" : "HH:mm:ss" }