随着几年来上云程度日渐增高,针对云计算服务的攻击也变多了,对于个人用户来说,云上的资源、数据以及财务安全就变得尤为重要了。这次受邀对阿里云云产品的安全体检功能进行评测,正好自己有着一台ECS和几台轻量云服务器,所以就顺道体验了以下,发现这个功能确实是挺实用的,下面我来分享一下我自己个人使用这个功能的方法,流程以及一些建议。
发起体检
- 首先我们先登录我们的阿里云控制台,进入【安全管控控制台】我们可以迎面看到下面这张图,我们可以很果断的点下【开始体检】

开始体检之后我们需要等待一会(大概15-30分钟),之后我们就可以看到类似以下的图片了:

查看漏洞
从上面的图片我们可以看到我们有 6 条待处理风险漏洞,我看了看挺多人也是有 6 条待处理风险漏洞的,但在我们开始看是什么漏洞之前,我们先来了解以下安全体检具体能检查出什么漏洞吧!我们可以在《安全体检说明》里面查看文档。
我们可以看到,安全体检功能可以检查出2类攻击告警,分别是云安全中心告警以及AK泄露告警,前者文档中写的是“攻击告警是疑似的黑客入侵或木马病毒,需要您重点关注。”,也就是当你的 ECS 云服务器中被攻击者上传了如 webshell 等恶意后门文件的时候,会提示攻击告警,后者则是当你的 RAM 用户的 AccessKey 信息泄露的时候会提醒,这个通常是开发者会遇到的问题(把自己的 AccessKey 放到源码中然后分享出去了)。
除了攻击告警之外,安全体检功能还能检查出云服务器漏洞以及云产品风险配置,前者一般是云服务器中的操作系统出现了一些漏洞的时候会提示的,比如一些进击的 0day 漏洞或攻击,如果遇到了一定要立马修复!后者则是我们自身的云产品配置产生的一些风险提示,从账号、云资源、网络、数据以及备份五个维度为我们进行了检查。
现在我们可以点开我们的 6 条待处理风险漏洞了,点开之后可以看到这个页面:

我们可以看到我们的 6 条待处理风险漏洞都是属于云产品风险配置类型的漏洞,我们往下滑可以查看具体的一些漏洞:

我们现在有3条高风险漏洞,1条中风险漏洞,2条低风险漏洞,我们首先最要紧的就是处理我们的高风险漏洞,分别是:
- 安全组开放了风险端口
- API 网关中开启公网访问的 API 请求方式不为 HTTPS
- 阿里云主账号未开启 MFA
这里我的建议是 表单中检查规则名称更换为具体风险简述 或者 检查规则名称取反一下,这样能够让用户更直观清楚地了解到到底是什么风险,而不是还要再思考一下,比如我一开始看到的时候就在想:“API 网关用 HTTPS 应该挺安全的吧?”,结果点开才发现其实是自己使用了 HTTP 而非 HTTPS,如果检查规则名称那边写的比如是【API 网关未开启公网访问的 API 请求方式为 HTTPS】,就能省去这一步的误会。
回到正题,这里我们看到了 6 条待处理风险漏洞,我们如果不知道从何下手进行修复的话,可以点击旁边的【查看详情】,会弹出如下视窗:

可以看到阿里云安全体检功能不仅帮我们检查了相关的漏洞,也为我们修复漏洞匹配了相关的文档,我们可以按照相关的文档,或者通过漏洞的描述进行漏洞修复。当然,我们也可以通过阿里云提供的【云安全态势管理CSPM】来进行一键修复。
修复漏洞
- 高危漏洞 1:安全组开放了风险端口
针对这个漏洞,我个人认为是十分有必要修复的,因为开放了 22,3389等连接服务器的端口可能会遭受攻击者的爆破攻击,除了在云服务器内进行防护(如 Linux 云服务器可以安装 fail2ban),我们也应该谨慎处理这些端口的规则。我们可以通过进入到 ECS 控制台 中,找到【网络与安全】中的【安全组】进行修改或者删除对应规则。 - 高危漏洞 2:API网关中开启公网访问的API请求方式不为HTTPS
同理,我们可以进入到 API 网关控制台 中,找到对应的 API 分组添加证书,根据提供的文档进行修复 - 高危漏洞 3:阿里云主账号未开启MFA
我们可以在我们的 个人中心 中,找到【账号安全】,并且添加 MFA 绑定即可修复。但是这里我们不知道为什么可能是时间没有调好导致绑定失败暂时无法修复。
在修复好之后我们稍等一会刷新页面,即可看到列表出现了改变,之后我们可以发现如果成功修复了列表就会清空,十分的方便我们判断是否成功修复相关漏洞。

至于上面提到的中风险和低风险漏洞,我个人目前暂且选择先不处理,因为首先有时候我需要跨设备登录到云服务器中,绑定 SSH 密钥可能会造成一定的不便,其次就是自动快照策略,我个人使用那台 ECS 主要是为了测试一些程序,并不是为了要进行生产,数据也不会长期保存在云服务器上,并且要经常重装不同的系统,故也没有必要进行快照策略的设置;最后就是限制的 AccessKey,这个其实也是无伤大雅,因为只要不泄露,AccessKey 基本上不会构成什么太大的问题。
一些给阿里云安全体检的建议
1. 更改检查规则名称
正如我在【查看漏洞】部分所提到的,建议更改优化检查规则名称来让用户有一个更直观的了解和认知,而非是要通过点开查看详情才能知道具体的漏洞,下面列出了经过我本人更改的在《安全体检说明》中的部分规则名称。
| 云产品风险配置 | 更改前 | 更改后 |
|---|---|---|
| 账号安全 | 阿里云主账号开启MFA | 阿里云主账号未开启MFA |
| 账号安全 | RAM用户开启MFA | RAM用户未开启MFA |
| 账号安全 | 不为RAM用户赋予超级管理员权限 | RAM用户被赋予了超级管理员权限 |
| 账号安全 | 不使用主账号AccessKey | 主账号有 AccessKey 被使用 |
| 账号安全 | RAM用户不存在闲置AccessKey | RAM用户存在闲置AccessKey |
2. 详情页实例ID直接链接实例控制台
从我在【查看漏洞】部分的最后一张图中可以看到,我有 7 个安全组实例具有风险漏洞,但这些安全组分布在不同地域,然而 ECS 控制台 智能按地域管理安全组,从而我要一个一个地域的去查看匹配实例 ID,如果可以把实例 ID 的部分加上超链接到对应实例的控制台,则能大大提高效率。

3. 统一整合安全检查
我深知阿里云十分重视用户的云上资源安全,但是对于目前存在在阿里云控制台中的安全检查功能可能有些过多并且零散。举个例子,在此次安全体检中检查出了 6 个风险漏洞,但是我在阿里云控制台首页上的【安全与合规】部分从始至终都是 100 分没有改变过,这可能导致用户认为自己没有太大的风险从而忽略了做安全体检,所以建议把这些安全检查的功能全部整合放到一个控制台上就好了。

总结
这次通过阿里云安全体检服务发现了我自己账号上的一些高风险漏洞,并且得到了很好的修复。在检查过程中是十分容易操作以及轻松的,但是在修复的过程中可能是因为刚上线所以打磨的有些欠缺,但整体上是让人满意的,详情页面也有附上修复的相关文档,当修复好了之后也能清楚地知道自己已经修复好了。随着这些年云计算的重要日增,云上安全是十分重要的,所以我们一定要注意好及时修复相关的漏洞。