云计算信息安全分析与实践
2013-06-28 13:52:05 - 行业资讯

1 引言

云计算(cloud computing)最早是2006年由Google工程师克里斯托夫·比希利亚提出的,2008年开始成为IT界最热门的技术和关键词之一,2009年各大IT厂商如IBM、微软、Google , Oracle等纷纷推出其云计算产品和服务,而各大院校、研究院、企事业单位也都参与到云计算的研究与实践中。

云计算因其资源整合高效和服务接口封闭等特性,被各行各业广泛应用于内部系统重整和外部服务应用。当前比较出名的云计算应用有Google App Engine,Amazon网络服务、IBM的“蓝云”、中国移动的“大云”等。国内的银行、电信、电力、政府行业也正在规划部署云计算服务。

站在企业的角度,是否要部署一个新技术或者新产品,最重要的一项指标是安全性,安全性不仅要考虑技术本身的安全因素,同时也要考虑连带影响,如承载在此技术平台之上的信息的安全性。尤其是那些涉及较多敏感信息,如用户数据、财务数据等保密级别较高的数据。对于云计算技术,安全性问题同样无法回避,实际上这也是目前云计算推广应用过程中所遇到的最大难题。虽然目前云计算服务提供商都在竭力淡化或避免此方面的问题,但对于消费者,这是其决定是否使用此技术或服务的关键因素。Gartner 2009年的调查结果显示,70%以上受访企业的CTO认为近期不采用云计算的首要原因在于存在数据安全性与隐私性的优虑。而近来云计算服务不断爆出各种安全事故更加剧了人们的担优。例如,2009年3月Google发生大批用户文件外泄事件,美国零售商TJX约有4 500万份用户信用卡号被黑客盗取,英国政府丢失2 500万人的社会保障号码等资料,在线软件公司salesforcecom也丢失了100万份用户的E-mail和电话号码,国内CSDN泄露用户账户数据同样引起了人们对公共信息服务安全方面的担优。

因此,云计算安全性已经成为云计算迈向部署应用必须要解决的问题,而信息安全是云计算安全性中仍未能很好解决的问题之一。无论是在公有云计算环境还是在私有云环境中,安全性问题都是需要攻克和解决的难题。

2 云计算技术概述

云计算是一套解决方案的名称,它并不是一个新兴技术,只是几种技术整合应用而推出来的概念,相关单一技术已经在多年前被提出,但由于现实环境各种各样的限制,缺乏大规模商用的契机。云计算可以看作融合了分布式计算(distributed computing)、虚拟化(virtualization)、网格计算(grid computing)、负载均衡(load balance)和并行计算(parallel computing)的产品。

云计算经过了几年的演变,从架构上可以分为如下3层。

·IaaS(infrastructure as a service,基础设施即服务),在基础平台设施上部署虚拟化等技术使得基础设施整合,提高利用率。

·PaaS (platform as a service,平台即服务),实现平台级的统一服务,在云计算平台级上提供企业开发/运行接口与环境,供企业实现自我服务。

·SaaS( software as a service,软件即服务),对用户提供统一的服务接口,如通过多用户架构,采用浏览器或其他客户端把服务提供出去。

这3层结构是自下而上构建的,IaaS是最底层的,SaaS是最高层的。云计算服务可以只部署IaaS,也可以部署IaaS+PaaS,也可以是IaaS+PaaS+SaaS模式。

云计算从应用角度上可以分为私有云、公共云和混合云。私有云是指部署在企业内部的云计算平台,旨在整合其公司内部IT资源的云计算系统;公共云泛指部署在公共计算平台中,对公众开放的云计算平台,通过收取服务费用运营云计算系统;混合云是指云计算平台既有私有云部分,也有公共云部分,是两者的融合。

云计算具有以下几个特点。

·动态可扩展性。云计算系统能通过实时监控,把每个服务按不同的策略动态分配到合适的设备上,而只需要把基础设备在云计算系统上做登记,就可以立即纳人云计算的服务分配资源上,方便实现可扩展。

·高可靠性和容错能力。云计算系统内部就是一个高度集群的系统,能轻松实现容灾备份功能,高可靠性和容错能力是必备的。

·高性价比。云计算系统的一个重要功能就是能极大地提高基础平台的利用率,全部设备都能被所有服务利用。

·服务封装。云计算系统所提供的服务,无论是使用服务还是部署服务,系统都是对外封装屏蔽的,用户不了解也不需要了解该服务具体部署在哪个设备上,由云计算系统统一动态自动予以分配。

云计算的目标是资源整合和服务化,云计算的远景是使IT成为普遍廉价的公共资源,如电力公司提供电力,自来水公司提供自来水,让IT资源和服务成为任何人能轻而易举享受到的公共资源。

3 云计算的信息安全问题

2009年CSA(cloud security alliance,云安全联盟)在云计算安全方面列举并分析了所面临的7个最大的安全威胁:对云的不良使用;不安全的API;恶意的内部人员;共享技术的问题;数据丢失或泄漏;账户或服务劫持;未知的风险。

2008年咨询公司Gartner从供应商的安全能力角度出发,分析云计算面临的安全风险,发布了一份名为《云计算安全风险评估》的报告,报告中列出了云计算技术存在的7大风险:特权用户的接人、可审查性、数据位置、数据隔离、数据恢复、调查支持、持久服务。

云计算安全性的范围很广,包括技术、管理、立法、商业、企业持续服务等层面,而本文讨论的云计算信息安全问题是云计算安全性其中的一个问题。在这里不讨论云计算的可用性、持久性问题,也不涉及系统或者件基础本身的安全性,因为这些安全性问题已有很多成熟的解决方案。本文主要讨论云计算所带来的新技术而产生的新的信息安全风险问题。

云计算的信息安全问题,主要是指部署在云端的数据的安全问题。作为用户,第一感觉是以前系统的所有数据都是自己掌控的,但是实施云之后,数据有很大一部分层面是对用户屏蔽了,用户自己掌控不了其中的安全性。云计算系统俨然成为一个黑盒子,那把数据放在这个黑盒子是否安全呢?

排除本文讨论范围以外的,如可用性、内部管理、运营等问题,总结出云计算信息安全存在如下风险。

(1)应用部署安全风险

任何一个持有有效信用的人都可以注册并立即使用云平台,网络犯罪分子可以基于云平台部署各种攻击服务或各种恶意软件,攻击互联网上的任何用户,更严重的是,在云计算平台内部部署的恶意软件能直接从内部对云计算平台进行服务攻击、信息窃取等安全攻击。

(2)API安全风险

云平台的安全性很大程度上取决于API的安全性。用户使用这些API管理和交互相关服务,这些API的设计必须能够防御意外和有恶意企图的行为,避免产生安全漏洞以被网络犯罪分子所利用进行攻击。

(3)虚拟化环境安全风险

在IaaS层均需要充分利用虚拟化和共享技术实现动态可扩展功能,用户数据在云平台中是被动态分配的,利用这些技术并不能很安全地在多用户架构中提供强有力的隔离能力,这样就给攻击者带来了很多便利,利用不完善的访问控制、过度使用的共享技术,能把恶意程序传播到云平台的其他服务中。

(4)数据访问权限风险

从云计算的整体技术架构来看,除了中央数据服务器外,用户数据存储在哪片“云”上无人知晓,精准盗取数据的难度很大,但云计算的数据访问权限存在漏洞,就很容易产生风险。当用户把数据交给云计算服务商后,服务商则拥有了该数据的访问权限,云计算平台供应商由于自身管理原因,会导致偷窥、泄漏用户的数据和程序的风险。而由于云计算提供的服务面向所有公众,允许各种各类用户进行操作,若因为某些权限漏洞,致使非法用户得到数据,也将会使数据的安全性受到致命威胁。

(5)数据存储与传输安全风险

由于云服务面向所有公众,其中不乏涉密信息,如果数据存储与传输得不到严格加密,一旦丢失,将会造成更严重的损失。另外在云计算中也无法像以前传统系统部署中通过安全域定义来实施安全边界和数据保护。

4 云计算的信息安全方案

上述分析的云计算信息安全风险,是自上而下,从应用到存储来分析的,需要对这些风险进行安全加固和规避,以提高云计算信息安全的保障。下面将从3个层面对云计算的信息安全风险进行安全方案的描述,分别是数据安全、应用安全、虚拟化安全网,然后再给出当前国内外关于云计算信息安全相关解决方案的成果。

数据安全是指保存在云服务系统上的原始数据信息的相关安全方案,包括数据传输、数据存储、数据隔离、数据加密和数据访问。

(1)数据传输

在云计算内部,除了服务本身需要的数据传输外,还有更多因动态调整而引起的数据传输。这部分数据面临的最大威胁是直接通过明文传输,而没有采用任何加密措施。在云计算内部的传输协议也应该能满足数据的完整性,因此应采取安全传输协议,但其当前的相关研究并不因云计算而有所改动,在这里就不再描述。

(2)数据加密

为了更好地加强云计算的安全性,需在数据存储上增加数据的私密性,既能保证文件的隐私性,又能实现数据的隔离和安全存储。如亚马逊的S3系统会在存储数据时自动生成一个MDS散列,免除了使用外部工具生成校验的繁冗,有效保证数据的完整性;如IBM设计出一个“理想格(ideal lattic)”的数学对象,可以对加密状态的数据进行操作。基于这些技术,企业可以根据不同的情况,选择不同的加密方式来满足不同的加密需要。

(3)数据隔离

云计算中并不是所有数据都适合进行数据加密,加密数据会影响数据服务的效率。对于PaaS和SaaS应用来说,为了强调运行效率等方面的“经济性”,非法访问还是会发生的,因此需要通过实施数据隔离来解决。在云计算环境下,系统的物理安全边界将会逐步消失,转而替代的是逻辑安全边界,因此应该采用VLAN或者分布式虚拟交换机等技术来实现系统数据的安全隔离。

(4)数据访问

数据访问tee的策略,也就是数据访问权限控制,可以通过安全认证的技术来解决。通过统一单点登录认证、资源认证、协同认证、不同安全域之间的认证或者多种认证方式相结合的形式,对用户身份进行严格审查,对数据进行操作前,一定要对操作者身份进行严格核查。另外在权限的合理分配方面也要做好规划和管理。而数据访问的监视和日志审计也必不可少,特别是对敏感信息的操作,要做到可溯源。

4.2应用安全

从云计算提供商的角度出发,描述从应用层面应当如何充分考虑来自外部的风险。

(1)IaaS应用—虚拟化安全

IaaS云计算提供商将用户在虚拟机上部署的所有应用都看成一个黑盒子,他们完全不会干涉所部署应用的管理工作和运维工作,仅负责提供基础资源。在IaaS应用中,用户应负责其应用程序的部署和管理,程序的安全性也应由用户考虑。IaaS应用提供商利用虚拟化等技术,根据用户的需求提供基础资源,虚拟化的安全性是云服务商负责的,在4.3节将讨论到。

(2)PaaS应用—API安全、应用部署安全

PaaS云计算提供商给用户提供在IaaS之上,依照平台的接口规范,部署由用户开发的平台化应用或采购现成的中间件产品。PaaS云计算提供商关注的安全问题包括两个方面:PaaS平台自身的安全风险和用户部署在PaaS平台上的应用的安全风险。

PaaS平台自身的安全风险,主要包括对外提供API的安全和PaaS应用管理的安全。对于PaaS的API安全问题,目前国际上并没有统一的标准,这对云计算API的安全管理带来了不确定性;而PaaS应用管理方面,核心的安全原则就是确保用户的数据只有用户自身才能访问和授权,实行多用户应用隔离,不能被非法访问和窃取。在这种环境下,PaaS平台应提供平台的保密性和完整性,云服务提供商应负责监控PaaS平台的缺陷和漏洞,及时发布补丁更新,解决安全漏洞。

用户部署在PaaS平台上的应用安全风险,对于云提供商来说主要是对客户部署程序的安全审查,排除有意或无意的恶意程序甚至病毒的部署。因为用户申请要部署的程序,无论是自行开发的还是采购的,均有安全的不确定性,因此云服务提供商需要对申请部署的程序进行严格的安全审计,包括非法代码、不安全代码、存在漏洞的代码的检测,并需与用户一起对审计的结果进行分析和修正。当前这方面没有标准,因此需要各云服务商提供此安全审计要求。

(3)SaaS应用—服务安全

SaaS云计算提供商给用户提供的是灵活方便地使用在云计算服务端中的各种应用。SaaS云计算提供商应必须确保提供给用户的应用程序的安全性,而用户只需对访问云端应用的终端的安全负责,如终端自身安全、客户端的访问管理等。在SaaS平台层,云服务提供商应重点关注所提供服务的安全性,可参考当前对软件安全性的相关考虑方案进行评估和审查。

4.3虚拟化安全

虚拟化安全是云计算最基础部分IaaS的重要技术手段,对虚拟化技术的安全性进行分析,对整个云计算的安全性来说是坚实的一步。基于虚拟化技术的云计算信息安全风险主要有两个方面:虚拟化软件产品的安全和虚拟主机系统自身的安全。

(1)虚拟化软件产品安全

虚拟化软件产品是直接部署在裸机之上,提供创建、启动和销毁虚拟主机的能力,对虚拟主机进行管理的一种软件。实现虚拟化的技术不止一种,可以通过不同层次的抽象来实现,如操作系统级虚拟化、半虚拟化和全虚拟化。

虚拟化软件产品保证用户的虚拟主机能在多用户环境下相互隔离,可以安全地在一台物理服务器上同时运行多个虚拟主机系统,因此云服务提供商必须建立安全控制措施,严格限制任何未经授权的用户访问虚拟化软件层,限制对虚拟化层次的访问。

另一方面,虚拟化具有动态性,即所虚拟的服务系统会根据整个云的情况进行动态调整,如把虚拟服务器进行动态切换、挂起等。虚拟化软件层必须考虑由此带来的安全风险,如切换是否完整、是否存在数据残留、是否存在数据丢失、在切换的过程中是否会被利用共享内存攻击而导致数据被窃取等,这些问题都是虚拟化软件层要解决的。

(2)虚拟主机系统安全

虚拟主机系统位于虚拟化软件产品之上,普通的物理服务器主机系统的安全原理与实践完全可以运用到虚拟主机系统上,同时也需要补充虚拟主机系统的特点。应当对虚拟主机系统的运行状态进行实时监控,对各虚拟主机系统的系统日志和防火墙日志进行分析,以此来发现存在的安全隐患。对于发现存在安全隐患的虚拟主机系统,应立即进行隔离,避免危害扩散,而对于已经不需要运行的虚拟主机,应当立即关闭。物理服务器的安全原理不再赘述。