购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3
云计算的脆弱性

2.2节从云计算的特点出发,分析了云计算面临的安全威胁,但这些安全威胁从根本上来说是云计算技术或管理方面存在的脆弱性造成的,因此本节对云计算的脆弱性进行详细分析,为云计算安全机制的设计提供思路。

2.3.1
云计算的层次架构

CSA(云安全联盟)描述了云计算架构的主要组件,主要包括3个层次:应用和接口层、平台层、基础设施层,其中基础设施层包括了虚拟化平台、网络、存储、硬件和物理设施等。保证与合规垂直面贯穿不同的层次,为不同层次的组件提供安全和管理服务,如图2-3所示。

图2-3 云计算技术架构

下面基于图2-3中的云计算技术架构,分析每个层次及每个组件存在的脆弱性。

2.3.2
应用和接口层的脆弱性

应用和接口层是用户访问云服务的入口,目前,大多数的云服务都是允许用户通过浏览器来访问云服务的。因此,应用和接口层的脆弱性主要来源于采用的Web技术。

1.Web服务和接口的脆弱性

Web服务和接口的脆弱性可能导致数据泄露和对云资源的非授权访问,例如跨站点脚本、命令注入和SQL注入,因为服务请求操作机制暴露了Web服务接口中的脆弱性。Web服务请求者的凭据可能被恶意窃取,会话处理程序的错误实现可能导致会话劫持。WSDL(Web服务描述语言)用于描述与Web服务相关的参数类型,其创建的元数据很容易受到欺骗攻击,而且伪造的WSDL文档可能允许通过Web接口调用未发布的操作。SOAP信封存储和维护所请求文件的有效签名(网络客户端),重写修改的SOAP消息是众所周知的包装攻击,即恶意用户可以使用执行过的保存了原件有效签名的SOAP信封文件。此外,利用Web服务和接口的漏洞,如SOAP Action欺骗(操作HTTP标题)、XML注入(伪造XML字段)和WSDL扫描(找到潜在攻击点)等。由于HTTP不提供事务中数据完整性验证,基于SOAP的方法在云中提供Web服务可能会导致服务器端数据受到攻击。

2.Web客户端数据操作的脆弱性

在用户的客户端应用程序与云服务提供商的服务器进行交互的过程中,Web浏览器组件的数据权限(如混聚技术及插件)是可以读取和修改的,从而导致客户端数据操作的脆弱性。当人们针对此类脆弱性进行攻击时,信息的机密性和完整性会受到影响。注入是云计算环境中最主要的安全漏洞之一,最常见的注入形式是SQL注入,攻击者在Web应用程序中事先定义好的SQL语句中额外添加SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取数据信息。HTTP隐藏字段,一般通过Web表单存储Web用户的登录信息,数据操纵漏洞的另一个来源是欺诈网站使攻击者有可能窃取用户凭据,著名的是“水坑攻击”(落入复制或伪造、欺诈网站的陷阱)。通过社交网站,攻击者利用用户的浏览器安装恶意软件,通过用户输入的用户凭据,操作Web浏览器的漏洞。

3.用户身份和访问的脆弱性

云计算的按需自服务、多租户的特征导致身份管理、认证和授权过程中存在脆弱性。身份管理(Identity Management,IdM)包括对云中实体的标识及对云中资源访问的控制,其脆弱性主要体现在两个方面:一是认证方式的脆弱性,主要来源于不安全的用户行为,如弱口令、重用凭据、使用单因素身份验证,以及薄弱的凭证生命周期管理;二是授权管理的脆弱性,来源于授权检查不足、用户权限管理薄弱。

4.加密和密钥管理的脆弱性

在云计算环境中,加密机制是保护数据机密性和完整性的重要机制。但是,不安全的或过时的加密算法,以及缺乏有效的密钥管理机制,都可能导致与加密算法和密钥管理相关的脆弱性,从而进一步威胁数据的机密性和完整性。

2.3.3
平台层的脆弱性

平台层提供开发和部署的工具、中间件和操作系统,通过PaaS的形式为用户提供开发和部署的环境,允许用户通过云计算平台定制个性化的应用系统。平台层的脆弱性主要来源于开发的个性应用软件和底层的操作系统。

1.软件开发架构和实践的脆弱性

软件的质量很大程度上取决于软件开发过程中使用的软件开发架构,以及对软件生命周期的管理。传统的软件开发生命周期,往往重视功能实现而忽视安全性,在使用的过程中,再通过打补丁的方式来增强安全性。此种方式,在打补丁之前,软件存在的脆弱性会带来严重的安全威胁。因此,应当在软件设计之初就考虑安全性,并将对安全性的考虑贯穿整个软件生命周期,增强对安全性的测评环节,减少软件系统中存在的安全漏洞。

2.软件代码的脆弱性

软件代码的脆弱性来源于程序员不遵守最佳编码实践和指导原则,这可能引入代码漏洞。在PaaS平台中,云计算平台提供的代码可能存在脆弱性,当用户调用其存在脆弱性的代码时,用户定制的应用系统也就引入了脆弱性,而且针对该脆弱性,用户一般是没有办法发现并对其进行安全增强的。

此外,在云环境下,云服务API提供了对应功能的访问权限,同时也增加了云计算平台的受攻击面,攻击者可能会滥用或寻找主流云服务API代码中的漏洞,实现对用户和云服务的攻击,影响范围广泛。

3.操作系统的脆弱性

安装在虚拟机上的操作系统其本身可能存在安全漏洞,攻击者可以利用操作系统的漏洞来窃取用户的数据或控制用户的系统。操作系统的脆弱性主要体现在如下几个方面。

◆ 操作系统层的监控机制不足或不完整,导致不能及时发现恶意行为。

◆ 不恰当的系统资源配置和安全策略,可能对系统的性能和可用性产生影响。

◆ 不适当的内存隔离,可能会导致数据的泄漏。

2.3.4
基础设施层的脆弱性

1.虚拟化平台的脆弱性

虚拟化是云计算的核心支撑技术,虚拟化平台的脆弱性是云计算平台中应该重点关注的安全问题之一。

1)虚拟机的脆弱性

运行在同一台物理机上的多个虚拟机共享硬件资源,它们之间的通信不同于传统网络环境下物理机之间的通信机制,导致传统的基于系统边界的安全防护措施失效,如防火墙、网络分段、入侵检测等安全机制无法保障虚拟机的安全。此外,由于虚拟机之间共享硬件资源,攻击者还可能发动隐蔽通道攻击、侧通道攻击、跨虚拟机攻击及虚拟机跳跃攻击等。

2)虚拟机镜像的脆弱性

虚拟机镜像的脆弱性主要体现在如下3个方面。

◆ 虚拟机镜像不可信,云计算平台提供的虚拟机镜像,可以被恶意的管理员或攻击者植入后门、木马等恶意程序。

◆ 虚拟机镜像易于盗取,用户的虚拟机镜像就是存在云端的大文件,管理员或攻击者可以轻易地通过复制,盗取虚拟机镜像。从而,进一步读取和分析虚拟机镜像窃取用户的敏感信息。

◆ 虚拟机镜像管理不规范带来安全隐患,在云数据中心,一方面,由于某种原因废弃不再使用的虚拟机,其镜像文件没有及时删除,而是长期存储在云数据中心,成为“僵尸虚拟机”;另一方面,出于可靠性的考虑,一个虚拟机可能有多个虚拟机镜像备份或快照,在删除虚拟机时,并没有全部删除并彻底销毁其快照或备份。这些虚拟机镜像由于在其生命周期管理过程中的漏洞,导致长期存在于云数据中心中,给其中保存的用户数据带来严重的安全隐患。

3)虚拟机迁移和回滚的脆弱性

虚拟机迁移是实现云计算灵活性的关键支撑技术之一。例如,当云数据中心单个物理节点负载过重时,可以通过虚拟机迁移技术将该物理节点上的虚拟机迁移至其他空闲的物理节点上,从而减轻该物理节点的负载,如图2-4(a)所示;当云数据中心中多个物理节点的负载都比较少时,可以通过虚拟机迁移技术,将不同物理节点上的虚拟机合并到一台物理机节点上,关闭多余的物理节点,以实现节省资源的目的,如图2-4(b)所示。

在虚拟机迁移的过程中,需要考虑两个问题:一是虚拟机所要迁移的目标物理节点是否可信;二是所要迁移的虚拟机是否可信。如果虚拟机迁移到一台恶意的物理节点上,则会对用户的虚拟机带来严重的安全威胁;如果将一台恶意的虚拟机迁移到目标物理节点,则会对物理节点及其上面运行的其他虚拟机造成严重的安全威胁,事实上,在这种情况下,虚拟机迁移会助长和加快恶意软件在云数据中心的蔓延。

图2-4 虚拟机迁移示例

4)VMM漏洞

虚拟机监视器(Virtual Machine Monitor,VMM)负责管理所有其运行的虚拟机并对底层的硬件资源进行调度和管理,VMM如果存在漏洞,那么影响将是非常广泛的。事实上,VMM作为一个软件系统,其漏洞是难以避免的,所以VMM的漏洞成为构建云数据中心安全的一大挑战。

2.网络的脆弱性

云网络通信可以分为2类:外网和内网。外网,是指通过互联网连接用户与云数据中心组件之间的通信和交互;内网,是指在云数据中心内部,不同服务组件之间的通信,以及虚拟机之间通过虚拟网络的通信。因此,云基础设施中网络的脆弱性主要来自互联网和虚拟网络的脆弱性。

1)网络通信协议和技术的脆弱性

用于访问云服务的网络协议和技术本身存在固有的脆弱性。例如,基于TCP/IP的协议栈,如DHCP、IP和DNS,由于其固有的脆弱性可能遭受IP欺骗、DNS缓存中毒、DNS欺骗,甚至可能导致跨租户的攻击。此外,泛洪攻击是云计算的一大威胁,可以导致直接DoS攻击、间接DoS攻击或可计量性问题。

2)共享网络组件的脆弱性

虚拟机实例之间常常会共享DHCP服务器、DNS服务器和路由器,而这些共享的网络设施是存在固有的脆弱性的,而且共享资源可能会导致跨租户的攻击。最后,共享资源如果配置不正确,那么可能会成为云数据中心网络的瓶颈。

3)虚拟网络的脆弱性

服务器虚拟化引入一种新型的访问层(虚拟网络层)来提供虚拟机内部和虚拟机之间的连接。通常情况下,用户通过管理接口来人工配置运行在同一物理节点上不同虚拟机之间的通信信道。而通过这些虚拟信道通信,对于任何监控均是隐式的和不可追踪的,容易被攻击者利用。虚拟化平台的虚拟网络可能导致恶意虚拟机的嗅探和欺骗攻击,从而实现网络的虚拟机攻击。

3.存储的脆弱性

云数据存储的脆弱性包括:数据加密存储的脆弱性,数据访问的脆弱性,数据存储位置、备份和恢复的脆弱性,数据删除的脆弱性。

1)数据加密存储的脆弱性

密钥管理不善、不安全或过时的密码算法使得数据存储容易受到安全攻击。

2)数据访问的脆弱性

一方面,存储在云中的数据可能受到外部人员和内部人员篡改的威胁;另一方面,由于共享环境、弱密钥和应用程序漏洞的存在,存储在云中的数据更容易出现未授权的访问。

3)数据存储位置、备份和恢复的脆弱性

(1)为了满足成本效益、可扩展性、容灾性等要求,云计算系统一般分布在多个地理位置,于是不同国家和地区的法律法规和政策则会影响用户数据的安全性和隐私性,因此,云数据中心对其数据存储及其备份的物理定位能力成为用户关心的问题。

(2)数据备份如果管理不善,容易受到未授权的访问和篡改。

(3)云资源共享导致存在大量的数据残留,加之云存储提供的数据恢复能力都可能存在安全隐患。

4)数据删除的脆弱性

当用户不再需要云端数据或用户服务合同终止时,云服务提供商需要销毁用户的相关数据,尤其是敏感的数据。如果云服务提供商对数据删除处理不当,则可能存在数据泄露的风险。

4.硬件的脆弱性

在云数据中心,硬件都是共享的,硬件出现的任何小问题都可能影响部分甚至整个云计算系统。例如,硬件某部件出现故障或其有限的容量,可能影响云计算系统的可用性;基于硬件的加密如果存在漏洞,则可能会影响数据的完整性等。云数据中心共享的硬件资源与专用的硬件资源相比,存在更多的安全风险。

5.物理设施的脆弱性

云计算的资源存放在云数据中心,云数据中心可能存在恶意内部人员、自然灾害、支撑基础设施不够(如冷却系统不给力,电力系统不可靠)等脆弱性,大致可以分为2类:物理设施访问的脆弱性和自然灾害。

(1)物理设施访问的脆弱性:恶意内部人员可能拥有一些控制特权,对云数据中心具有物理访问权限,可能威胁数据的机密性,甚至通过对云数据中心的物理访问进行硬件设置篡改和冷启动攻击等。

(2)自然灾害:如洪水、地震等自然灾害,会破坏云数据中心,进而导致数据丢失和服务不可用。

2.3.5
保证与合规垂直面的脆弱性

保证与合规提供了一个架构,用来评估云服务提供商在交付云服务时提供的安全性水平。在云计算环境中,保证是指,确保SLA 得到履行,监控有效,事件响应及时,以及应用程序得到验证。合规是指,按照规定的标准、法律法规、隐私保护条例,以及对审计开放的原则提供服务。云服务提供商提供的安全保证级别越高,用户对其的信任程度就越高。

1.保证的脆弱性

云服务提供商在SLA中对云服务的可用性、响应时间和安全保障等方面做出了相应的承诺,但在实际运行过程中,云服务提供商可能无法完全履行SLA中的全部承诺。一方面,用户可能因此遭受重大损失,如2018年8月,一家创业公司声称,其在使用某品牌云服务8个月后,其存储在该品牌云服务器上的数据全部丢失,给公司业务带来了灾难性的损失。另一方面,云服务和云服务提供商的信任度也会受到负面影响。云监控作为必要的措施,来确保云计算资源的高效利用,同时确保云服务不间断、持续地为用户提供服务,然而云计算的新特点对传统的监控技术提出了挑战。

2.合规的脆弱性

几乎云计算的所有关键特征,如服务外包、虚拟化等,对法律法规的遵守带来了疑问。用户数据存储在云端,用户隐私泄露的风险增大。此外,云服务提供商的隐私保护策略还可能与某些国家法律的相关规定存在矛盾。例如,云服务提供商为了保护用户隐私,必须保证非授权用户不能获取用户的隐私信息,然而,有的国家出于对国家安全的考虑,其隐私保护法明确规定,一些执行部门和政府成员在没有授权的情况下可以查看国民的隐私信息。

云服务提供商的云数据中心可能在全球范围内进行部署,用户的数据可能存在跨境存储和跨境传输的情况。跨境数据很容易被境外国家的政府、其他人员轻易获取,存在很大的安全隐患,因此,很多国家都对跨境数据制定了相关的法律法规 。跨境存储方便云服务提供商提供更加可靠、灵活和经济的云服务,但是可能面临违规的风险。 rR8wDun13e33Vn368r9UyH2k1C/uOcN2evzlEqyUqA+APZ03kgEsIkEtqcctRLJS

点击中间区域
呼出菜单
上一章
目录
下一章
×