2.1 云计算面临的技术风险
云计算不同的服务类型采用不同的技术来实现,IaaS采用虚拟化技术、PaaS采用分布式处理技术、SaaS采用应用虚拟化技术,所以每种服务类型面临的技术风险是不同的。另外,数据风险、接口风险和漏洞风险是IaaS、PaaS、SaaS这三种服务类型均面临的核心安全问题,所以本书构建了全新的云计算风险分析框架,在纵向上以云计算三种服务类型为分析出发点,体现云计算风险的继承关系,在横向上分析数据风险、接口风险、漏洞风险在云计算中的具体体现,如图2.1所示。
图2.1 云计算风险分析框架
2.1.1 IaaS的风险分析
由于虚拟化技术的应用,IaaS面临着设施和设备、主机、网络、数据存储与迁移等多方面的风险。
2.1.1.1 IaaS中的设施和设备面临的风险
在云计算中,IaaS的设施和设备等都处于自然环境中,自然环境的优劣直接决定了IaaS提供服务的安全性。在云计算中,IaaS中设施和设备会面临来自自然环境、硬件设备、人为事件的风险,因此本节从这三个方面对设施和设备面临的风险进行分析,如表2.1所示。
表2.1 IaaS的设施和设备面临的风险
(1)自然环境中的风险:在IaaS中,设施和设备保管在自然环境中,自然环境的优劣直接决定了设施和设备的安全。来自自然环境的风险主要分为两个方面。
① 自然灾害:自然灾害包括地震、洪水、火灾、雷击等对云计算数据中心的冲击,这些冲击往往是毁灭性的,它们能对设施和设备造成直接的破坏,这种破坏不仅会造成云服务提供商巨大的财产损失,而且保存在其中的用户数据也很难恢复。
② 供应系统面临的风险:要保证设施和设备的正常运行,不仅需要适宜的温度和湿度,也需要充足电力以及正常的通信等。一旦这些条件受到破坏,设施和设备无法正常运行,所提供的服务就面临着中断的风险。
(2)硬件设备中的风险。硬件设备主要有三个方面的风险。
① 硬件设备自身存在安全漏洞:硬件设备在工作时会产生电磁波,电磁波可被高灵敏度的接收设备接收并进行分析、还原,造成计算机的信息泄露。此外,硬件设备工作时产生的静电还会释放出电火花,不仅会增加发生火灾的概率,还会造成硬件设备自身的损害。
② 硬件设备被破坏:硬件设备的制造工艺或材料不达标,以及长时间使用硬件设备都会造成硬件设备的损坏。另外,由于硬件设备价值不菲,会使其成为偷窃者的目标,硬件设备存在被窃的风险。一旦硬件设备受到破坏,存储于其中的数据就会面临丢失的风险。
③ 硬件设备受到电磁环境的影响:在电磁环境下运行的硬件设备,不仅电子信号、传输速率、传输精准性受到严重影响,而且还会面临信号消失、信息获取和传输不顺畅等风险,尤其是在过强或者复杂的电磁环境下,硬件设备的使用性能可能会受到严重干扰,甚至无法工作。
(3)人为事件造成的风险:云计算提供服务的硬件设备需要由内部人员管理,然而内部人员也会成为风险。另外,有着利益纠纷的外部人员也会对硬件设备造成影响。
① 内部人员造成的风险:硬件设备会受到来自内部人员的威胁,包括内部人员的操作不当或由于某些原因对硬件设备进行报复性的破坏等。
② 外部人员造成的风险:偷窃者偷窃硬件设备,云服务提供商的竞争对手以及一些不怀好意的人员闯入云计算数据中心对硬件设备进行破坏等都是很严重的风险。
2.1.1.2 IaaS中的主机面临的风险
IaaS中的主机面临的风险主要来源于Hypervisor和虚拟机,如表2.2所示。
表2.2 IaaS中的主机面临的风险
(1)Hypervisor主要面临以下三种风险。
① 恶意代码通过API(应用程序接口)进行攻击:虚拟机通过调用API向Hypervisor发送请求,如果API中被植入了对虚拟机、宿主机进行攻击的恶意代码,则虚拟机调用该API之后,虚拟机和宿主机就会面临风险。
② 非法用户获取Hypervisor的访问权限:黑客或者恶意使用者可通过使用Rootkit获得管理员权限,一旦Rootkit控制了Hypervisor,就可以获得对宿主机的控制权,进行基于Rootkit的各种攻击。VM Escape(虚拟机逃逸)攻击就是通过获得对Hypervisor的访问权限来对其他虚拟机甚至宿主机进行的攻击。
③ Hypervisor自身存在的安全漏洞:攻击者可以利用Hypervisor自身存在的安全漏洞发起对虚拟机和宿主机的攻击,如跨站脚本攻击、SQL入侵等。
(2)虚拟机:虚拟机位于Hypervisor上,它主要面临以下五种风险。
① 风险扩散:在传统安全架构中,可以采用防火墙等技术对服务器进行有效隔离,对一台服务器的攻击不会对其他服务器造成影响。而在云计算中,即使基于主机的虚拟机进行了逻辑隔离,风险仍会从一台虚拟机扩散到其他虚拟机。
② 虚拟机之间相互攻击:无法通过传统的入侵检测设备来检测虚拟机之间通信流量,一旦攻击者控制了一台虚拟机,就有可能通过该虚拟机攻击其他虚拟机甚至宿主机。
③ 基于主机的安全策略难以部署:正常来讲,可以随时关闭闲置的虚拟机,等有业务系统运行时再开启虚拟机,这会导致在虚拟机关闭期间防病毒的代码无法更新,网络黑客和内部攻击者可以利用该脆弱性对虚拟机进行攻击。
④ 资源冲突:常规病毒扫描和防病毒的代码更新等会占用大量资源,并且会在很短的时间内导致系统负载过重。如果在所有虚拟机上同时启动病毒扫描或防病毒的代码更新,将会引起“防病毒风暴”,进而将影响上层软件(如操作系统和应用程序等)的正常运行。
⑤ 虚拟机自身存在的安全漏洞:在虚拟机中,Hypervisor提供了备份、快照还原等功能,在系统崩溃时可以通过快照还原,但还原以后旧系统的安全机制不再适用当前的环境,会产生很多可以攻击的漏洞。此外,虚拟机存在一种不受Hypervisor控制的数据传输方式—直接内存操作(Direct Memory Access,DMA)传输,攻击者可以通过DMA对没有安全防范的目标机进行攻击。
2.1.1.3 IaaS中的网络面临的风险
IaaS中的网络面临的风险主要来自虚拟机与外部系统之间的通信以及虚拟机之间的通信两个部分,如表2.3所示。
表2.3 IaaS中的网络面临的风险
(1)虚拟机与外部系统之间的通信风险:主要面临网络攻击和网络安全防护边界消失两种风险。
① 网络攻击:任何通过网络进行的攻击,如DoS(拒绝服务攻击)、DDoS(分布式拒绝服务攻击)等都会威胁到IaaS的安全。
② 网络安全防护边界消失:在IaaS中,用户不再和物理资源进行交互而是直接使用虚拟化资源,因此传统的存储、计算、网络等设备的安全边界已逐渐模糊,边界防火墙、入侵检测等传统的网络安全防护技术已不再适用。
(2)虚拟机之间的通信风险:虚拟化技术实现了物理硬件的池化,每个物理节点上都会运行一台或多台虚拟机,虚拟机之间可以相互通信,因此IaaS中的网络结构和传统IT架构下的网络结构有所不同,网络虚拟化技术带来了些新的风险,最典型的两种攻击是恶意虚拟机进行的网络攻击和虚拟机共享物理网卡引起的风险。
2.1.1.4 IaaS中的数据存储及迁移面临的风险
IaaS中的数据存储及迁移面临的风险如表2.4所示。
表2.4 IaaS中的数据存储及迁移面临的风险
续表
(1)数据存储面临的风险:在数据外包的服务模式下数据存储将面临多种风险。
① 存储位置不确定:在IaaS中,用户对自己的数据失去了管理与控制权,用户无法确定自己的数据由哪些服务器进行操作应用,因而用户无法采取有效的安全措施来保障数据的存储服务器、操作和管理服务器的安全性[23]。
② 数据难以有效隔离:由于云端存储的数据是海量的,且数据的类型、类别和安全级别存在巨大差异,同时用户的身份、用户的角色、用户的属性也都不尽相同,在复杂的IaaS中保证数据间的有效隔离是一项十分艰巨的工作。
③ 数据丢失:IaaS可能受到木马、病毒等人为攻击或者地震、火灾等不可控的自然灾害导致数据丢失。如果用户的原始数据丢失且原始数据没有备份,或者由于备份延迟等原因导致备份数据和原始数据不一致,或者备份出错,那么用户的数据就无法完全正确恢复。
④ 数据残留:在IaaS中,云服务提供商可以根据用户的指令来完成用户数据的删除。一方面,云服务提供商可能没有完全删除用户的数据,导致攻击者在数据被删除之后还可以通过有效技术手段恢复出这些数据;另一方面,云服务提供商可能只删除了用户的原始数据,而没有删除备份数据。这些行为都会导致数据残留,使用户数据的机密性无法得到保障。
(2)数据迁移面临的风险:数据迁移面临着很大的风险和技术难题。
① 数据传输过程中的安全性难以保障:数据迁移既可以使用物理迁移的方法,即直接通过存储设备将数据从旧平台复制到新平台,也可以通过网络进行数据迁移。由于物理迁移方法会受到地域上的约束,不适用于迁移大量实时的数据,因而云用户或云服务提供商通常通过网络进行数据迁移。但由于数据在传输过程中可能受到各种网络攻击,因而安全性无法得到保障。
② 数据安全迁移面临着很多技术难题:应根据数据量的大小、数据类型、数据类别及数据安全级别等属性的不同,采取不同的迁移措施;数据可能需要进行一些转换才能存储到IaaS中等。另外,随着需要迁移的数据量的增大,为了保证数据不泄露、不丢失而需要采取的安全控制措施和迁移所需的其他措施的严格性及复杂度也在逐渐增大。
2.1.2 PaaS的风险分析
PaaS为用户提供了包括中间件、数据库、操作系统、开发环境等在内的软件栈[24],可以使用云服务提供商支持的编程语言和工具,在云基础设施上部署用户所创建或购买的应用程序。用户无须管理和控制底层的云基础设施,仅需对已部署的应用程序进行控制,对应用程序所在的环境进行配置[3]。为了解决分布式存储和分布式计算问题,PaaS采用分布式处理技术,不仅能够使云计算数据中心的大量服务器集群协同工作,同时也屏蔽了底层复杂的分布式处理操作,把简单易用的编程接口和编程模型提供给用户[4,25]。分布式处理技术主要包括四个部分,如图2.2所示。
图2.2 分布式处理技术
2.1.2.1 PaaS中的数据处理面临的风险
PaaS是基于IaaS构建的,因而对PaaS来说,在数据层面除了面临IaaS中存在的数据存储和迁移风险,还面临着数据处理风险,如表2.5所示。
表2.5 PaaS中的数据处理面临的风险
数据处理面临的风险主要表现在数据与计算可用性无法保障,具体包括以下四个方面。
① 组件失效:为满足对海量数据进行存储和处理的需要,云计算部署的是大规模的廉价服务器集群,所以会经常发生组件失效的情况。存储服务器或者计算服务器的失效都会导致PaaS无法进行正常的数据存储和数据处理,从而可能导致数据丢失或者同一数据的多副本间数据不一致现象的发生。
② 处理速度过慢:属于同一逻辑区域的文件资源或者数据库资源,在物理上可能分散在网络上的不同节点,而且各个节点之间的间隔甚远,所以网络性能会直接影响数据处理的速度;而且,每个网络节点都可能存储大量数据,如何快速、准确地从海量数据中检索到需要的数据也是PaaS面临的技术难题。
③ 多用户并发访问:由于PaaS服务面向大量用户,因此用户访问文件系统或数据库的效率可能受到当前访问PaaS用户数量的直接影响;另外,在多用户并发访问时,需要对并发操作进行控制,否则可能导致数据处理错误。
④ 服务器频繁增减:为满足服务的需求,PaaS可能需要动态调整存储及计算服务器的数量,这样就会使PaaS面临另外一个技术难题,即如何解决动态扩展的问题,使分布式文件系统和分布式数据库能自动感知服务器的变化情况,并对相应的存储和处理操作进行一定的调整,使数据处理的性能不会因服务器的动态调整而受到影响。
2.1.2.2 PaaS中的应用安全
PaaS与IaaS在主机风险、网络风险方面并无本质区别,但在应用风险方面有很大的差异。根据应用风险来源的不同,可将PaaS中的应用风险分为两个方面,如表2.6所示。
表2.6 PaaS中的应用风险的分类
(1)应用开发面临的风险:在应用的开发阶段,用户利用PaaS提供的开发环境进行应用开发,开发环境的安全性及用户对该开发环境的了解和掌握程度都会对应用安全产生直接影响。
① PaaS提供的开发环境不安全:PaaS提供的开发环境包括编程接口、操作系统、数据库、第三方应用等,如果任何一项内容存在安全漏洞,那么攻击者就可以利用这个安全漏洞发起攻击。
② 用户不明确PaaS提供的编程模型:提供编程模型可以让用户了解到基于该云计算平台的用户可以解决什么类型的问题,以及如何利用云计算平台解决这些问题。如果PaaS没有提供关于编程模型的详细内容,用户就可能在耗费了许多时间和资金之后仍然开发不出能满足安全性需求的应用。
③ PaaS提供的编程接口过于复杂:如果编程接口过于复杂,不仅会加大用户基于云计算平台进行应用开发的难度,也会使用户难以编写用于进行安全防护的程序。
(2)应用部署面临的风险:在应用部署阶段,用户的应用部署措施不当及PaaS提供商的运营管理措施不当都会直接影响到应用的安全性。
① 用户对应用及其运行环境的配置不当:PaaS为应用提供的默认安装配置中只包含基本的安全保障措施,如果用户在部署自己的应用时直接使用默认安装配置,那么在使用过程中应用可能无法抵挡大多数的安全攻击。
② 多用户应用无法安全隔离:为保证应用程序的可靠运行,PaaS引入了沙盒隔离技术,让每个应用程序都在安全的沙盒环境中运行。但如果PaaS无法实时监控应用程序中出现的新的安全漏洞,那么攻击者就可能利用这些安全漏洞攻击PaaS。
③ 资源的分配和供给策略不当:如果PaaS的运营管理系统不能根据应用的实际运行情况动态地增加或减少资源供给,就有可能造成应用程序之间互相争夺资源、资源供给不足、资源浪费等问题,严重影响应用的可用性。
2.1.3 SaaS的风险分析
应用SaaS服务,用户仅需要对应用程序进行相应配置就可以实施操作,而无须管理和控制应用底层的网络、服务器、操作系统、存储等云基础设施[3]。所以,SaaS面临的风险主要来自应用本身的风险,而主机风险、网络风险和PaaS基本相同。
应用虚拟化技术是SaaS中的核心技术,它将应用作为一种服务交付给用户[25]。虚拟桌面是应用虚拟化技术的典型应用场景,我们以虚拟桌面为例来分析其面临的风险,按照风险来源可分为三个方面,如表2.7所示。
表2.7 基于SaaS架构的虚拟桌面的风险
(1)来自SaaS的风险。
① 多用户架构下的应用隔离:如果SaaS提供商不能采取有效的隔离手段来对各个用户的虚拟桌面系统进行隔离,那么恶意用户就可以通过技术手段对其他用户的虚拟桌面进行攻击。例如,非法访问其他用户的虚拟桌面,篡改虚拟桌面的设置、窃取其中的隐私数据等。
② 补丁管理复杂:补丁的安装依虚拟机和数据库版本的不同而不同,因此在对虚拟桌面系统进行补丁更新前,需先确认补丁的版本,并进行安全性测试[26]。另外,如果补丁和应用程序不兼容,那么补丁更新后还可能会影响应用程序的运行。
(2)来自用户的风险。
① 用户在虚拟桌面上自行安装软件:如果SaaS允许用户在虚拟桌面上自行安装未授权的软件,则未授权软件可能会威胁到虚拟桌面的安全性,比如若该软件包含后门程序,就为入侵者提供了隐蔽的入侵通道[26]。另外,如果用户安装的授权软件没有进行正确的配置或补丁更新,就可能存在可以被攻击者利用的安全漏洞。
② 客户端的外设接口引起数据泄露:对于配置有USB接口、可刻录光驱等外设接口的客户端,若SaaS允许客户端在使用虚拟桌面时启用这些外设接口,则虚拟桌面中的数据可能通过外设接口非法流出系统。
(3)来自传输链路的风险。虚拟桌面的应用大多是依靠网络来进行个人信息和应用数据传输的,在传输过程中可能面临着数据被窃取和修改的风险,一旦攻击者窃取了用户的身份信息,就可以非法访问用户的虚拟桌面。
2.1.4 数据风险分析
云计算和大数据存储技术的应用提高了人们的工作效率,优化了传统的数据处理方式。而在技术发展的同时,保障数据安全至关重要。一般来说,云计算中数据的生命周期可分为七个阶段,如图2.3所示。
图2.3 数据的生命周期
在数据生命周期的每个阶段,数据安全面临着不同方面和不同程度的风险。本节根据数据生命周期的各个阶段来分析云计算中数据的风险,如表2.8所示。
表2.8 数据风险分析
(1)数据生成阶段的风险。数据生成阶段即数据刚被数据所有者创建,且尚未被存储到云端的阶段。在这个阶段,数据所有者需要为数据添加必要的属性,如数据的类型、安全级别等一些信息。此外,数据的所有者为了防范云端不可信,在将数据存储之前可能要对数据做一些预处理。在数据生成阶段,根据不同的安全需求,某些用户可能还需要对数据的存储、使用等各方面情况进行跟踪审计。在数据生成阶段,数据面临以下风险:
① 数据的安全级别划分策略混乱:数据安全级别划分策略依用户类别的不同而不同,同一用户类别的不同用户对数据的敏感度分类也可能各不相同。在云计算中,多个用户的数据可能存储在同一个位置,因此若数据的安全级别划分策略比较混乱,云服务提供商就无法对海量数据制定出切实有效的保护方案。
② 数据的预处理风险:用户要存储在云端的数据可能是海量的,因此在对数据进行预处理前,用户必须考虑预处理的计算、时间和存储开销,否则会因为过度追求安全性而失去使用云计算带来的便捷性。
③ 审计策略难以制定:即使在传统IT架构下,审计员制定有效的数据审计策略往往也是很困难的。而在多用户共享存储、计算和网络等资源的云计算中,用户对自己数据进行跟踪审计更是难上加难。
(2)数据传输阶段的风险。数据通过网络传输到云端,在数据传输阶段,数据面临如下安全问题:
① 传输信道存在安全隐患:用户通过网络传输数据,如果网络中的传输信道不安全,数据可能会被非法拦截;传输信道也可能因遭受攻击而发生故障,导致云服务不可用。另外,数据传输需要通过云计算平台一系列的组件支持,硬件系统、通信协议等的失效均会导致数据在传输过程中丧失完整性和可用性[5]。
② 难以实现即时监控:数据在传输的过程中会使用不同的介质,不同介质下的安全控制措施有所不同,因此对数据进行即时的安全监控非常困难,若传输过程中数据出现了安全问题,相关技术操作人员很难及时察觉并进行补救[6]。
(3)数据存储阶段的风险。在云计算中,用户的数据都存储在云端,数据面临如下风险:
① 数据存放位置不确定:在云计算中,用户对自己的数据失去了物理控制权,不仅用户无法确定自己的数据存储在哪些服务器,更无法得知数据存储的地理位置。
② 数据隔离机制不健全:用户数据存储在云端,若云服务提供商没有采取有效的数据隔离机制,可能造成用户数据的泄露。
③ 数据丢失或被篡改:云服务器可能会遭受病毒、木马攻击;云服务提供商管理可能不可信或管理不当,操作违法;云服务器所在地可能遭受自然灾害、战争等不可抗力因素的影响。这些都会造成数据丢失或被篡改,威胁到数据的机密性、完整性和可用性。
(4)数据使用阶段的风险。用户访问云端的数据,并对数据进行增、删、改等操作。在数据使用阶段,数据面临如下风险:
① 访问控制策略不合理:如果云服务提供商制定的访问控制策略不合理、不全面,就有可能造成合法用户无法正常访问自己的数据或对自己的数据进行合规操作,有可能造成未授权用户非法访问甚至窃取、修改其他用户的敏感数据。
② 云服务性能:用户使用数据时,往往会对数据的传输速度、数据处理请求的响应时间等有一定的要求或期望,但云服务的性能受用户所使用的终端、网络环境等多方面因素的影响,因此云服务提供商可能无法切实保障云服务的性能。
(5)数据共享阶段的风险。数据共享即让在不同地方使用不同终端、不同软件的用户能够读取其他用户的数据并进行各种运算和分析。在数据共享阶段,数据除了面临云服务提供商的访问控制策略不当的风险,还面临着以下风险:
① 信息丢失:不同数据的内容、格式和质量千差万别,在数据共享阶段可能需要对数据的格式进行转换,而数据格式转换后可能面临数据丢失的风险。
② 应用存在漏洞:数据共享可以通过特定的应用实现,如果该应用本身有安全漏洞,则基于该应用实现的数据共享就有可能有数据泄露、丢失和被篡改的风险[27]。
(6)数据归档阶段的风险。数据归档就是将不再经常使用的数据迁移到一个单独的存储设备来进行长期保存的过程。在数据归档阶段,除了面临和数据存储阶段类似的风险,数据还面临法律和合规性风险。即某些特殊数据对归档所用的介质和归档的时间期限可能有特殊规定,而云服务提供商不一定支持这些规定,造成这些数据无法合规地进行归档。
(7)数据销毁阶段的风险。在云计算中,当用户需要删除某些数据时,最直接的方式就是向云服务提供商发送删除命令,依赖云服务提供商删除相应的数据。但这样会使数据面临多方面的风险:
① 销毁的数据被恢复:计算机数据存储基于磁介质形式(磁带和磁盘)或电荷形式(内存和固态磁盘),一方面可以采用技术手段直接访问这些已被删除数据的残留数据;另一方面可以通过对介质进行物理访问,确定介质上的电磁残余所代表的数据[7]。
② 云服务提供商不可信:一方面,用户无法确认云服务提供商是否真正执行了删除命令;另一方面,云服务提供商可能留有被删除数据的多个备份,在用户发送删除命令后,云服务提供商可能只将原数据删除而将备份数据据为己用。
2.1.5 接口风险分析
目前大数据企业的业务已经成功迁移到云计算中,并通过应用程序接口(Application Programming Interface,API)对业务系统进行管理、配置和监控,云计算平台的安全性和可用性依赖于每个基础API内置的安全性。此外,从身份认证和访问控制到加密和活动检测均需要依赖于API的安全性,安全性差的API无法进行有效的身份验证,也无法阻止非授权访问。基于上述现状,本节从外部攻击和设计风险两个方面分析接口风险,如表2.9所示。
表2.9 接口风险分析
(1)API面临的外部攻击。
① API缺乏安全保护:一些缺乏安全意识的云服务提供商在给用户提供接口时并没有进行安全保护,使得用户在调用API时,敏感数据以明文的形式在网络上传输,一旦被劫持或监听将面临严重的数据泄露风险。
② API滥用风险:当用户或者攻击者频繁调用API时会造成云服务器资源的浪费,严重时还会造成服务器瘫痪,使其他用户无法使用正常畅通的服务。
③ API凭证泄露:API凭证是用户访问云计算内部资源最重要的身份凭证,一旦被外部人员恶意获取或者被内部人员无意泄露,都将导致严重的数据泄露。
④ API截获攻击:通过中间人或代理技术,攻击者能够截获在网络中传输的API参数,然后利用SQL注入或信息遍历的攻击方式来改变参数,进而获取到大量的用户信息,造成越权访问甚至数据泄露。
⑤ API重放攻击:API重放攻击指攻击者利用网络监听或者其他方式盗取API请求,进行一定的处理后,再把它重新发给服务器,达到欺骗系统的目的。目前,虽然很多API采用HTTPS进行加密传输,但是仍然有一部分接口(如身份认证类、交易类)存在重放攻击的风险。如果关键的API数据被重放,有可能造成用户身份伪造或重复交易[8]。
(2)API的设计风险。
① API安全缺陷:开发人员在设计API时没有进行足够的安全考量,使得API可能存在一定的缺陷,例如云计算平台接收传输的数据时,开发人员没有构建数据清洗和验证例行程序,可能会带来标准注入漏洞和跨站请求伪造攻击的风险。
② API复杂化:一些第三方组织基于API为用户提供增值服务,使API层次化、复杂化,且要求用户的数据暴露给第三方组织,增加了数据泄露的风险[9]。
2.1.6 漏洞风险分析
安全漏洞是指计算机信息系统在需求、设计、实现、配置、运行等过程中,有意或无意产生的缺陷[10]。在云计算平台搭建及运行过程中也存在安全漏洞,这些漏洞以不同形式存在于云计算的各个层次和各个环节之中,一旦被恶意攻击者利用,就会对云计算数据中心的安全造成损害,从而影响云服务的正常提供。本节从关键的云特征漏洞以及云计算关键技术漏洞两个方面介绍云计算存在的安全漏洞风险[11],如表2.10所示。
表2.10 云计算漏洞风险分析
(1)关键云特征漏洞:NIST给出了云计算的五个基本特征,这些特征同时也给云计算安全带来了一些隐患和漏洞,下面是与这些特征相关的漏洞的例子。
① 未经授权的管理界面访问:云计算的按需自助服务需要一个管理界面,用户可以自行访问该界面,这就会产生未经授权访问管理界面的漏洞,而且这种漏洞产生的概率要高于传统系统[28]。
② 互联网协议漏洞:泛在的网络访问意味着云计算是通过使用标准协议的网络进行访问的,互联网协议的漏洞会给云计算带来风险,例如,互联网协议漏洞可能会造成中间人攻击[28]。
③ 数据恢复漏洞:分配给一个用户的资源将有可能在稍后的时间被分配给不同的用户。这样,对于内存或存储资源来说,有可能恢复出前面用户写入的数据,造成用户数据泄露的风险[28]。
④ 逃避计量和计费:云计算中可能会出现通过操纵计量和计费数据以逃避计费的漏洞。这会使得云服务提供商无法对所提供云服务收取相应费用,导致财产损失的风险[28]。
(2)云计算关键技术漏洞:云计算的关键技术包括虚拟化技术、分布式数据存储技术、分布式计算技术、海量数据管理技术、编程模型等,这些关键技术本身也存在漏洞,这些漏洞也会给云计算带来风险。
① 单点故障漏洞:在云计算中,使用虚拟化技术可以在一台主机上部署多台虚拟机,虽然提高了主机资源的利用率,但是会使该主机成为单点故障源,即当主机发生故障时,该主机上的所有虚拟机都将受到威胁,导致数据丢失或云服务不可用的风险。
② 副本重构漏洞:在云计算分布式数据存储环境中,一般数据进行多备份后存储在不同的服务器中,若一台服务器故障,系统会在另一台服务器上重构副本。这不仅会占用正常的数据存储流量,还会增加服务器的运行压力,导致服务器发生故障,面临云服务不可用的风险。
③ 最脆弱节点:云计算的分布式计算技术将计算任务分配到各个节点中,如果其中任何一个节点存在易于攻击的缺点,则可能因为分布式的特性迅速扩散到其他节点,给云计算带来巨大风险。