话题引入:云上的安全问题,究竟该企业负责还是云厂商负责?


大家好,我是来自火线安全的刘对。今天主要聊聊租户在多云环境下责任边界的划分。
我这边的分享是比较新手向的,也希望通过我的分享,大家能够对多云下的安全责任边界划分和云上的一些概念有更深的理解。


根据 IDC 的数据,在短短 16 年内,全球整体云计算市场规模从零增长到 2021 年的 7050 亿美元,到 2025 年将预计达到 1.3 万亿。
中国作为全球云计算市场中增长最快的区域,2020 年市场规模达到 487.3 亿美元,预计 2021-2025 年复合增长率为26.0%,云将重塑整个 IT 硬件、软件和服务生态。
在《电子政务》2020年第3期中刊登了《东数西算:我国数据跨域流通的总体框架和实施路径研究》,在 2022 年 2 月份,国家发改委等部门联合印发文件,“东数西算”工程正式全面启动。
可以看到,不论是从云计算市场来看还是从国家战略来看,云计算都必将是未来的趋势。

多云即在多个云服务供应商上部署云环境,多云可以为企业节约成本、提高灵活性、提高可靠性等等,根据《Flexera Releases 2021 State of the Cloud Report》中的统计信息,有 92% 的企业采用了多云的策略。
由于安全行业是一个伴生行业,在云计算蓬勃发展、绝大多数企业都采用多云策略的背景下,多云中的安全势必会越来越被关注。
云上的安全和传统的安全在某些地方有所不同,其中不可忽视的一点就是:云上的安全有些地方是由云服务商负责的,而有些是地方则是由租户自己去负责的,那么这个边界该如何划分?这是个问题。

在企业上云之前,也许有的企业会认为云上的安全问题应该都是云服务商的责任,什么服务器的安全、数据库的安全都应该由他们来负责。然而实际上并不全是如此,这就好比一个人租了一辆车,这个人在开车的时候,他的安全不全是由租车公司负责一样。
开车的安全边界是很容易区分的,例如疲劳驾驶、开车接打电话这些都是属于驾驶者本身的问题。这时也许有人会想,那么如果我打车或者坐公交,那么这个时候的安全边界又在哪里?各位可以自己去思考一下。那么其实在云上,也是有“租车”、“打车”、“公交”之分的,不过它们是另一套叫法。

IaaS 也就是基础设施即服务,云服务商提供服务器、操作系统、硬盘等等,然后自己在上面部署应用。这就类似于租车,租车公司提供车辆,然后自己开到目的地。
PaaS 也就是平台即服务,云服务商提供已经安装好应用的服务,比如 RDS、EKS等等,这就类似于出租车,不用自己开车了,直接跟司机说到哪里就行。
SaaS 就是软件即服务,这个是面向最终用户的,用户只需要使用已经成型的软件即可,比如电子邮箱、火线的安全云产品、钉钉等等,这就好比坐公交车,用户只需要上车就行,连自己打车的这一步都省了。
当这三种模式理解了,云上责任边界划分也就容易了。

根据国家现行标准 GB/T 31167-2014《信息安全技术 云计算服务安全指南》中的内容,在 IaaS 服务类别下,虚拟化计算资源层的安全措施由租户和云服务商分担。租户负责自己部署的操作系统、运行环境和应用的安全。云服务商负责虚拟机监视器及底层资源的安全。
在PaaS服务类别下,软件平台层的安全措施由租户和云服务商分担。租户负责自己开发和部署的应用及其运行环境的安全,其他安全措施由云服务商实施。
在SaaS服务类别下,应用软件层的安全措施由租户和云服务商分担,其他安全措施由云服务商实施。其实说到这里是有些抽象的,所以接下来,将以 TerraformGoat 靶场中的阿里云 SSRF 场景为例,详细讲解责任的区分。

TerraformGoat 是一个多云靶场搭建工具,通过 TerraformGoat 的演示我们可以对多云场景下的风险以及责任边界有个更清晰的认识。这里将以 TerraformGoat 中的阿里云 SSRF 场景为例,首先搭建靶场,这里直接使用 docker 搭建即可。

接着开始部署场景,首先切换到对应场景的目录下,配置好阿里云的AK,然后初始化 Terraform,再应用场景即可。
稍等一会儿,在 Outputs 里就可以看到 SSRF 靶场的地址了,使用浏览器就可以访问这个靶场了。
在这个部署靶场的过程中,TerraformGoat 会在阿里云上创建一个实例,并允许 8080 端口的请求,接着开始在实例上部署 SSRF 靶场。
在这个场景中,租户所面临的风险以及责任又该如何划分呢?我们下面来好好讨论一下。

我们先来看看这个场景中存在的风险,在这个场景中,主要的风险点是站点存在 SSRF 漏洞,导致了攻击者可以进行读取实例元数据、内网探测等等操作。
这样的一个风险是应该归租户还是云厂商呢?首先我们需要确定这个场景是属于 Iaas 还是 PaaS 或 SaaS 模式。
由于在这个场景中,需要在阿里云上创建实例,并在实例上部署应用,所以不难判断出这是一个 IaaS 模式,接着再根据之前 IaaS 下的责任划分图表去判断对应的责任边界。
在这个图表中,云厂商负责底层硬件设施,例如服务器、交换机、硬盘等等的安全,而租户则负责上层的应用软件部分,其中虚拟化计算资源是由两者分担的。那么这就很容易判断了,这里的 SSRF 漏洞很明显是产生在应用软件层的,因此这个是属于租户的责任。
那么也许会有风险产生在虚拟化计算资源层的场景出现,这时又该如何划分,其实也很简单,举个例子就很清楚了。
比如在实例所关联的虚拟专有网络 VPC 中创建了一条允许 22 端口访问的的安全组规则,那么这个开放 22 端口的风险其实就是属于租户的,但如果在安全组里 22 端口是禁止访问的,但攻击者却绕过了安全组策略,那么这或许就是云厂商的责任了。
再比如租户的控制台密码泄露是属于租户的责任,但由于控制台存在 XSS 漏洞导致租户的账号被盗取,这就是云厂商的责任。
相信通过以上的内容,对于租户和云厂商的责任边界划分,心里已经有个大概的轮廓了,总的来说,不管这些风险是属于租户的责任还是云厂商的责任,整体业务的安全都是需要租户和云厂商共同的努力才行。
最后,我们来简单看一下对于这些云上的风险租户一般是如何去发现以及应对的。

目前比较常见的云安全工具主要有 CASB、CWPP、CSPM 等等,这里将简单分别介绍一下每种工具,企业可以根据自己的情况去选择对应的云安全工具。
CASB 云访问安全代理,本质上是云服务的防火墙,CASB 可以解决识别企业影子资产以及满足监管合规的需求。通过 CASB 的跟踪、报告、记录和事件监控功能,CASB 可以识别企业中所有的云服务,包括一些可能客户自身都不知道的云服务,CASB 可以对这些影子服务进行风险评估并在必要的时候触发警报。通过 CASB 的审计和报告功能,还可以满足一些监管合规的需求。
CWPP 云工作负载保护平台,CWPP 可以解决在企业既有多云、混合云又有物理机、虚拟机、容器等等的情况下,如何统一管理的问题。CWPP 可以为所有类型的工作负载提供安全保护,包括物理服务器、虚拟机、容器、serverless 等等,CWPP 可以为这些工作负载提供统一的可视化和管控能力。
CSPM 云安全态势管理,也有的翻译成云安全配置管理,CSPM 主要是解决多云环境中企业错误配置的问题,在企业中,一个云上的错误配置可能就会产生极大的安全隐患,尤其是在云服务越来越来的情况下。CSPM 可以对这些云服务的配置进行分析与管理,从而帮助企业发现存在的安全风险。企业也可以通过 CSPM 去检测自己的云服务配置是否合规,通过 CSPM 企业可以降低被攻击时所产生的影响。
对于租户,可以根据自身的情况以及需求去选择对应的云安全工具,从而提高自身的安全能力。

这是给大家提供的一些参考资料,欢迎探讨。