im电竞
安全系统零部件
名称:一文掌握!九大提升 ECS 实例操作系统安全性技巧
发布时间:2024-05-18 02:17:04 来源:IM电竞官网注册 作者:im电竞平台官网



说明:

  引言:【弹性计算技术公开课——ECS 安全季】第二节课程由阿里云弹性计算技术专家陈怀可带来,本文内容整理自他的课程,供各位阅览。

  第一个安全事件:国外某政务官员,他是一非常喜欢发推特的人,可能不知道的是,他在就任期间,他的推特账号曾经被人盗用过。像这类知名的公众人物,他们的一言一行都会对社会产生重大的影响,可想而知,他们的账号被盗用的影响会有多大。整个安全事件的过程比较简单,简单梳理一下。

  在 2012 年 LinkedIn 网站被攻击,2016 年,相关的数据库被泄露出去,泄露的数据库中有包含这位官员的账号和密码,通过这个账号密码,攻击者攻击了他的推特账号。这就是典型的撞库攻击,因为在大多数人的行为习惯中,习惯性的会在所有的产品中长期使用一个或几个固定的密码。而不会特意去修改。这位官员同大多数人一样,使用同一套密码,最终导致了他的推特账号被入侵。回过头看整个安全事件,导致这一起事件的根本原因在于长期使用一套固定的密码,而且没有进行修改。

  详细看一下这个事件的前后因果,斯里兰卡国家政务云中使用一款软件叫做Microsoft exchange 2013 版本,这款软件其实已经过期不再被维护,并且软件中存在着致命的安全漏洞,因为财政方面的问题,没有得到及时升级维护,攻击者通过这软件漏洞发起了勒索软件攻击,最终导致近四个月数据的永久丢失。可以清晰的知道,导致这一起安全事件的根本原因在于使用了停服的软件,软件没有得到及时的升级更新安全补丁。

  回顾刚刚的两个安全案例,在案例 1 中,用户用于登录系统的账密泄露了以后,攻击者利用泄露的账密攻击系统,导致系统被入侵,如果访问操作系统常用的账密泄露了,攻击者能够很轻易的登录到操作系统,部署勒索键,导起关键数据信息等等危害。

  案例 2 中,系统未及时更新安全补丁,导致攻击者利用漏洞进行入侵并部署勒索软件,攻击者经常使用操作系统内未及时修复的安全漏洞实施入侵攻击。那么该如何保护我们的操作系统呢?

  我们来将操作系统的安全分为三个部分,第一部分是访问操作系统的安全性,它定义了谁能够来访问操作系统,用怎样的方式来访问。第二部分操作系统内部的安全性,包括安全补丁以及技术的安全能力等等。第三部分是涉及到法律法规的一些要求,比如审计、合规要求等等,提升操作系统安全性的办法,我们根据上述的操作系统安全性的三个组成部分,分别是提升访问操作系统的安全性、安全加固操作系统以及操作系统安全进阶这个三部分。

  在提升访问操作系统安全性上,快速提升访问 ECS 实例操作系统的安全性。内容主要分三个部分,使用密钥对登录实例、使用会话管理免密登录实例以及避免端口0.0.0.0/0 的授权。

  如何使用密钥对登录实例,可能这里会有部分的同学存在疑问,什叫做密钥对?密钥对实现的原理是什么?使用密钥对登陆实力有什么样的优势?阿里云的密钥对默认采用的是 RSA 2048 位的加密算法生成了包括公钥和私钥,使用公钥和私钥认证的方式进行登录,是一种安全便捷的登录方式。由用户生成一组密钥对将公钥推送到目标服务器中的公钥默认存储路径下,阿里云默认公钥存储路径是 ~/.ssh/authorized_keys 文件。它的登录实现原理如右图所示,用户发起登录请求,服务器端生成一串随机数,使用公钥进行加密,返回用户端加密的信息,用户端使用私钥本地进行解密,并发送服务器端解密后的信息,服务器端对比解密后的信息,对比验证信息有效才允许用户登录。

  这种方式相对于传统的账密的登录方式的优点,它的优点主要有两个,一是相对于常规的用户口令容易被爆破的风险,密钥对杜绝了暴力破解的危险,另外一个是密钥对登录方式更加简便,一次配置,后续再也不需要输入密码。但是也要求需要保护好私钥不被丢失泄露,因为拥有您的私钥的任何人可以解密的登录信息。需要注意的是,阿里云不会存储私钥文件,也就是在创建密钥对时仅有一次下载密钥对的机会。

  常用密钥对登录 ECS 实例的方法,主要有四种,第一种是使用 ECS 提供的Workbench,在 Workbench 中导入私钥连接 ECS 实例,若您的私钥在本地是加密的,如图所示的 Workbench 还可以支持传入私钥口令的方式解密访问。

  第二种是使用第三方的密钥对工具,使用第三方密钥对登录工具时,需要遵循该工具的使用规则,比如 PuTTYgen 需要转化私钥文件的格式。第三种是需要支持密钥对的控制台命令的环境,需要 SSH 命令的方式进行连接实例。第四种同样是需要支持密钥对控制台命令环境,如右图所示的需要配置 config 文件的 ECS 别名以及一些比如端口号,登录账号,以及私钥地址、还有公网信息等等这信息,这种方式适合多台实例登录的场景,这里需要注意的是以上四种常规的密钥对登录方法,后面三种都是需要用户开启公网的 IP 才能够进行访问的。

  对需要使用密钥对的用户,如何更好更安全的使用密钥对,我们有两方面的建议,第一是保护好本地私钥,第二是可以优化密钥对的服务配置。如何保护好本地私钥?常规方案会推荐用户使用密码的方式进行保护私钥。需要保证持有正确的密码的人才能够访问到私钥。在使用私钥时,每次都是需要输入密码。

  一是控制台 Workbench 也是支持输入口令密码的方式访问到您的私钥。另外,尽可能的不使用默认的密钥对的存储位置,将私钥保存在自定义的目录中。在保存私钥的目录中设置正确的访问权限,只允许特定的用户能够访问。在保存私钥的系统上,还需要及时的安装最新的补丁和安全更新,以保护系统不受知名漏洞的影响。同时,为了防止私钥的丢失和误操作删除,还可以定期备份私钥。

  在使用密钥对服务配置时,我们建议可以修改连接端口为非标准端口,密钥对的默认连接端口为 22 端口,很多黑客工具会针对 22 端口进行扫描攻击,修改端口为非标端口可以提高安全攻击的门槛,非标端口一般为 1024~65535。使用密钥对登录.建议使用非 root 的账号登录,根据权限最小原则,对登录 ECS 实例的用户应该做到权限控制,避免受益过大的权限。建议您在新购实例时选择使用 ecs-user 的普通账号,并且在密钥对服务中配置禁止 root 的账号身份的登录。另外,在启用密钥对登录 ECS 实例的时候,建议及时关闭 ECS 是实例,通过密码方式的登录,以进一步提高安全性。

  ECS 生产密钥对默认采用的是 RSA2048 的加密方式。如果需要修改加密算法,可以使用自定义的密钥对导入的方式,在您的本地环境使用密钥对生成器生成以再导入到 ECS 中。目前支持的加密算法涵盖了大部分主流的密钥对算法,如右图所示的,比如 RSA、DSA、DSS 等等。需要注意的是,在您的本地环境密钥对生成之后,需要导入 ECS 是公对,请注意检查,避免导入私钥。要使用密钥对登录 ECS 实例目前也存在一些限制,比如当前仅支持 Linux 实例,不支持 Windows 实例,使用密钥对登录时,通常还需要开启操作系统的 22 端口,并允许指定端口在本地客户端公网 IP 进行访问连接。

  除了使用密钥对登录 ECS 是实例外,还可以使用会话管理免密登录实例,使用会话管理登录时具有更高的安全性。接下来我将详细介绍会话管理。

  会话管理是由云助手提供的功能,相比于密钥对、VNC 等方式,可以更便捷的远程连接 ECS 实例,且兼具安全性。从一开始的安全升级案例中,使用常规账密的登录对密码的复杂度要求比较高,并且需要定期进行修改,防止密码泄露后的风险,很难进行管理。或许大家可能会想到使用密钥对登录一些实例不就解决问题了?答案是肯定的。不过使用密钥对登录实例的时候也会存在一些因素限制,比如常用的密钥对登录实例,通常需要开放公网 IP,并且开放 22 端口。一旦公网 IP 开放之后,允许更多的人访问的 ECS 也就增加了对应的攻击面。

  另外,无论是使用密钥对还是使用账密登录,都不能做到记录和审计,很难发现攻击者的入侵行为。相比于传统账密的登录方式,云助手登录它有几个优点,第一它是不需要分配公网 IP 的就可以直接访问,避免了 ECS 实例暴露到公网环境,第二也不需要设置管理密码,直接免密登录,避免了账密泄露的风险。它还可以通过管理授权,可以比较灵活的分配和回收权限。另外它可以记录、审计,通过订阅对应的审计日志进行定期的安全分析,能够及时发现一些非易侵内的访问行为。

  会话管理登录实例是如何做到这些,会话管理建立链接的原理,如右图所示,首先,会话管理客户端发起会话,云助手服务端通过 RAM 访问控制权限进行健全,健全通过后会生成用于发起链接的 WebSocket URL 以及 10 分钟内有效的 token,返回给会话管理客户端。会话管理客户端通过web socket URL以及 token 与云助手的服务端建立了 web socket 的链接,云助手的服务端控制 ECS 实例内部的云助手agent 建立 web socket 连接。云助手的 agent 和云助手的服务端建立了 Web Socket 的链接。

  在建立 Web Socket 链接后,可以在会话管理客户端输入命令,该命令以流式传输的方式输入到 ECS 并执行,最终在会话管理客户端显示执行的结果。会话管理的安全性主要在于会话管理客户端与云助手服务端的 agent 间的通信是使用 Web Socket 协议建立的。Web Socket 的连接使用了 SSO 加密的方式保障数据的安全,使用会话管理能够远程连接指令,不需要密码,也没有泄露密码的风险,能够通过RAM权限安全策略进行管理,云助手与云助手服务器端通过 Web Socket 连接,不需要通过 SSH VNC 等方式登录实例,所以也就不需要打开入防线端口,进一步提高了 ECS 安全性。

  常用的会话管理链接方式主要有四种,最常用的是直接使用会话管理连接实例,另外也支持了使用会话管理端口转发连接实例。例如 ECS 实例中部署了不对外开放的web 服务,可以通过端口转发指的方式直接连接外部服务,还有一些客户希望在使用会话管理的基础上再次进行鉴权 ECS 也支持使用会话管理,以密钥对以及临时密钥对方式进行连接实例。

  如表格所示的,各自都存在一些优势以及不足,优点是使用会话管理都不需要用户开启公网 IP、会话管理、端口转发以及直连和临时密钥对都不需要再管理密钥以及密码。端口转发以及直连也不需要开放端口,不足的地方是其中使用会话管理密钥对以及临时密钥对连接实例的时候,都是需要开放 22 端口的,使用会话管理密钥对连接实例的场景,同时用户还需要自己保存对应的私钥。

  使用会话管理还可以很灵活的管理权限,通过权限的 RAM 权限策略配置,可以允许子账号连接所有的实例,也可以允许子账号连接指定的一个或者多个实例,或者使用绑定的实例标签进行筛选,只允许子账号访问到指定标签的实例,也可以限制通过指定的 IP 进行连接实例。

  如图所展示的 RAM 权限配置的案例,配置也比较方便简单,对于大规模的企业产品,强烈建议使用标签的方式进行批量管理权限,便于权限的回收以及收予。会话管理也存在一些权限的限制,比如需要一些授权 StartTerminalSession 的方式,以及DescribeUserBusinessBehavior 等等权限。会话管理的使用还存在一些限制,必须要授予一些权限,比如StartTerminalSession以及DescribeUserBusinessBehavior 等等权限。

  除了使用密钥对登录实例以及使用会话管理免密登录实例外,还需要避免端口 0.0.0授权对象的访问。

  众所周。


im电竞
im电竞官网注册_im电竞平台官网 版权所有  沪icp备12037774号-14