云计算安全浅析

2010-06-27 02:29闻剑峰
电信科学 2010年6期
关键词:提供商服务提供商虚拟化

朱 源,闻剑峰

(中国电信股份有限公司上海研究院 上海 200122)

1 云计算概述

云计算是一种新兴的共享基础架构的方法,指由“资源池”化的计算、网络、信息和存储等组成的服务、应用、信息和基础设施等的使用。云计算具有按需自服务、宽带接入、虚拟化资源池、快速弹性架构、可测量的服务和多租户等特点,这些特点直接影响到了云计算环境的安全威胁和相关的安全保护策略。

云计算具备了众多的好处,从规模经济到应用可用性,其绝对能给应用环境带来一些积极的因素。如今,在广大云计算提供商和支持者的推崇下,众多企业用户已开始跃跃欲试。然而,云计算也带来了一些新的安全问题,由于众多用户共享IT基础架构,安全的重要性非同小可。

2 云计算安全参考模型

从IT网络和安全专业人士的视角出发,可以用统一分类的一组公用的、简洁的词汇来描述云计算对安全架构的影响,在这个统一分类的方法中,云服务和架构可以被解构,也可以被映射到某个包括安全、可操作控制、风险评估和管理框架等诸多要素的补偿模型中去,进而符合合规性标准。

云计算模型之间的关系和依赖性对于理解云计算的安全非常关键,IaaS(基础设施即服务)是所有云服务的基础,PaaS(平台即服务)建立在IaaS之上,而SaaS(软件即服务)又建立在PaaS之上,它们之间的关系如图1所示。

IaaS涵盖了从机房设备到硬件平台等所有的基础设施资源层面。PaaS位于IaaS之上,增加了一个层面用以与应用开发、中间件能力以及数据库、消息和队列等功能集成。PaaS允许开发者在平台之上开发应用,开发的编程语言和工具由PaaS支持提供。SaaS位于底层的IaaS和PaaS之上,能够提供独立的运行环境,用以交付完整的用户体验,包括内容、展现、应用和管理能力。

云安全架构的一个关键特点是云服务提供商所在的等级越低,云服务用户自己所要承担的安全能力和管理职责就越多。本文针对云计算安全领域中的数据安全、应用安全和虚拟化安全进行了重点阐述,如表1所示。

表1 云安全内容矩阵

另外,需要特别指出的是,本文在论述云计算安全内容矩阵的时候,始终遵循CIA三要素相结合的原则,即保密性、完整性和可用性。

3 数据安全

云用户和云服务提供商应避免数据丢失和被窃,无论使用哪种云计算的服务模式(SaaS/PaaS/IaaS),数据安全都变得越来越重要。以下针对数据传输安全、数据隔离和数据残留等方面展开讨论。

3.1 数据传输安全

在使用公共云时,对于传输中的数据最大的威胁是不采用加密算法。通过Internet传输数据,采用的传输协议也要能保证数据的完整性。如果采用加密数据和使用非安全传输协议的方法也可以达到保密的目的,但无法保证数据的完整性。

3.2 数据隔离

加密磁盘上的数据或生产数据库中数据很重要(静止的数据),这可以用来防止恶意的云服务提供商、恶意的邻居“租户”及某些类型应用的滥用。但是静止数据加密比较复杂,如果仅使用简单存储服务进行长期的档案存储,用户加密他们自己的数据然后发送密文到云数据存储商那里是可行的。但是对于PaaS或者SaaS应用来说,数据是不能被加密,因为加密过的数据会妨碍索引和搜索。到目前为止还没有可商用的算法实现数据全加密。

PaaS和SaaS应用为了实现可扩展、可用性、管理以及运行效率等方面的“经济性”,基本都采用多租户模式,因此被云计算应用所用的数据会和其他用户的数据混合存储(如Google的BigTable)。虽然云计算应用在设计之初已采用诸如“数据标记”等技术以防非法访问混合数据,但是通过应用程序的漏洞,非法访问还是会发生,最著名的案例就是2009年3月发生的谷歌文件非法共享。虽然有些云服务提供商请第三方审查应用程序或应用第三方应用程序的安全验证工具加强应用程序安全,但出于经济性考虑,无法实现单租户专用数据平台,因此惟一可行的选择就是不要把任何重要的或者是敏感的数据放到公共云中。

3.3 数据残留

数据残留是数据在被以某种形式擦除后所残留的物理表现,存储介质被擦除后可能留有一些物理特性使数据能够被重建。在云计算环境中,数据残留更有可能会无意泄露敏感信息,因此云服务提供商应能向云用户保证其鉴别信息所在的存储空间被释放或再分配给其他云用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中。云服务提供商应保证系统内的文件、目录和数据库记录等资源所在的存储空间被释放或重新分配给其他云用户前得到完全清除。

4 应用安全

由于云环境的灵活性、开放性以及公众可用性等特性,给应用安全带来了很多挑战。提供商在云主机上部署的Web应用程序应当充分考虑来自互联网的威胁。

4.1 终端用户安全

对于使用云服务的用户,应该保证自己计算机的安全。在用户的终端上部署安全软件,包括反恶意软件、防病毒、个人防火墙以及IPS类型的软件。目前,浏览器已经普遍成为云服务应用的客户端,但不幸的是所有的互联网浏览器毫无例外地存在软件漏洞,这些软件漏洞加大了终端用户被攻击的风险,从而影响云计算应用的安全。因此云用户应该采取必要措施保护浏览器免受攻击,在云环境中实现端到端的安全。云用户应使用自动更新功能,定期完成浏览器打补丁和更新工作。

随着虚拟化技术的广泛应用,许多用户现在喜欢在桌面或笔记本电脑上使用虚拟机来区分工作(公事与私事)。有人使用VMware Player来运行多重系统 (比如使用Linux作为基本系统),通常这些虚拟机甚至都没有达到补丁级别。这些系统被暴露在网络上更容易被黑客利用成为流氓虚拟机。对于企业客户,应该从制度上规定连接云计算应用的PC机禁止安装虚拟机,并且对PC机进行定期检查。

4.2 SaaS应用安全

SaaS应用提供给用户的能力是使用服务商运行在云基础设施之上的应用,用户使用各种客户端设备通过浏览器来访问应用。用户并不管理或控制底层的云基础设施,例如网络、服务器、操作系统、存储甚至其中单个的应用能力,除非是某些有限用户的特殊应用配置项。SaaS模式决定了提供商管理和维护整套应用,因此SaaS提供商应最大限度地确保提供给客户的应用程序和组件的安全,客户通常只需负责操作层安全功能包括用户和访问管理,所以选择SaaS提供商特别需要慎重,目前对于提供商评估通常的做法是根据保密协议,要求提供商提供有关安全实践的信息。该信息应包括设计、架构、开发、黑盒与白盒应用程序安全测试和发布管理。有些客户甚至请第三方安全厂商进行渗透测试(黑盒安全测试),以获得更为详实的安全信息,不过渗透测试通常费用很高而且也不是所有提供商都同意这种测试。

还有一点需要特别注意的是SaaS提供商提供的身份验证和访问控制功能,通常情况下这是客户管理信息风险惟一的安全控制措施。大多数服务,包括谷歌都会提供基于Web的管理用户界面。最终用户可以分派读取和写入权限给其他用户。然而这个特权管理功能可能不先进,细粒度访问可能会有弱点,也可能不符合组织的访问控制标准。用户应该尽量了解云特定访问控制机制,并采取必要步骤,保护在云中的数据;应实施最小化特权访问管理,以消除威胁云应用安全的内部因素。

所有有安全需求的云应用都需要用户登录,有许多安全机制可提高访问安全性,比如说通行证或智能卡,而最为常用的方法是可重用的用户名和密码。如果使用强度最小的密码(例如需要的长度和字符集过短)和不做密码管理(过期,历史)很容导致密码失效,而这恰恰是攻击者获得信息的首选方法,从而容易被猜到密码。因此云服务提供商应能够提供高强度密码;定期修改密码,时间长度必须基于数据的敏感程度;不能使用旧密码等可选功能。

在目前的SaaS应用中,提供商将客户数据(结构化和非结构化数据)混合存储是普遍的做法,通过惟一的客户标识符,在应用中的逻辑执行层可以实现客户数据逻辑上的隔离,但是当云服务提供商的应用升级时,可能会造成这种隔离在应用层执行过程中变得脆弱。因此,客户应了解SaaS提供商使用的虚拟数据存储架构和预防机制,以保证多租户在一个虚拟环境所需要的隔离。SaaS提供商应在整个软件生命开发周期加强在软件安全性上措施。

4.3 PaaS应用安全

PaaS云提供给用户的能力是在云基础设施之上部署用户创建或采购的应用,这些应用使用服务商支持的编程语言或工具开发,用户并不管理或控制底层的云基础设施,包括网络、服务器、操作系统或存储等,但是可以控制部署的应用以及应用主机的某个环境配置。PaaS应用安全包含2个层次:PaaS平台自身的安全;客户部署在PaaS平台上应用的安全。

SSL是大多数云安全应用的基础,目前众多黑客社区都在研究SSL,相信SSL在不久的将来将成为一个主要的病毒传播媒介。PaaS提供商必须明白当前的形势,并采取可能的办法来缓解SSL攻击,避免应用被暴露在默认攻击之下。用户必须要确保自己有一个变更管理项目,在应用提供商指导下进行正确应用配置或打配置补丁,及时确保SSL补丁和变更程序能够迅速发挥作用。

PaaS提供商通常都会负责平台软件包括运行引擎的安全,如果PaaS应用使用了第三方应用、组件或Web服务,那么第三方应用提供商则需要负责这些服务的安全。因此用户需要了解自己的应用到底依赖于哪个服务,在采用第三方应用、组件或Web服务的情况下用户应对第三方应用提供商做风险评估。目前,云服务提供商借口平台的安全使用信息会被黑客利用而拒绝共享,尽管如此,客户应尽可能地要求云服务提供商增加信息透明度以利于风险评估和安全管理。

在多租户PaaS的服务模式中,最核心的安全原则就是多租户应用隔离。云用户应确保自己的数据只能有自己的企业用户和应用程序访问。提供商维护PaaS的平台运行引擎的安全,在多租户模式下必须提供“沙盒”架构,平台运行引擎的“沙盒”特性可以集中维护客户部署在PaaS平台上应用的保密性和完整性。云服务提供商负责监控新的程序缺陷和漏洞,以避免这些缺陷和漏洞被用来攻击PaaS平台和打破“沙盒”架构。

云用户部署的应用安全需要PaaS应用开发商配合,开发人员需要熟悉平台的API、部署和管理执行的安全控制软件模块。开发人员必须熟悉平台特定的安全特性,这些特性被封装成安全对象和Web服务。开发人员通过调用这些安全对象和Web服务实现在应用内配置认证和授权管理。对于PaaS的API设计,目前没有标准可用,这对云计算的安全管理和云计算应用可移植性带来了难以估量的后果。

PaaS应用还面临着配置不当的威胁,在云基础架构中运行应用时,应用在默认配置下安全运行的概率几乎为零。因此,用户最需要做的事就是改变应用的默认安装配置,需要熟悉应用的安全配置流程。

4.4 IaaS应用安全

IaaS云提供商(例如亚马逊EC2、GoGrid等)将客户在虚拟机上部署的应用看作是一个黑盒子,IaaS提供商完全不知道客户应用的管理和运维。客户的应用程序和运行引擎,无论运行在何种平台上,都由客户部署和管理,因此客户负有云主机之上应用安全的全部责任,客户不应期望IaaS提供商的应用安全帮助。

5 虚拟化安全

利用虚拟化带来的经济上的可扩展有利于加强在基础设施、平台、软件层面提供多租户云服务的能力,然而虚拟化技术也会带来其他安全问题。基于虚拟化技术的云计算引入的风险主要有两个方面:一个是虚拟化软件的安全,另一个使用虚拟化技术的虚拟服务器的安全。

5.1 虚拟化软件安全

该软件层直接部署于裸机之上,提供能够创建、运行和销毁虚拟服务器的能力。实现虚拟化的方法不止一种,实际上,有几种方法都可以通过不同层次的抽象来实现相同的结果,如操作系统级虚拟化、全虚拟化或半虚拟化。在IaaS云平台中,云主机的客户不必访问此软件层,它完全应该由云服务提供商来管理。

由于虚拟化软件层是保证客户的虚拟机在多租户环境下相互隔离的重要层次,可以使客户在一台计算机上安全地同时运行多个操作系统,所以必须严格限制任何未经授权的用户访问虚拟化软件层。云服务提供商应建立必要的安全控制措施,限制对于Hypervisor和其他形式的虚拟化层次的物理和逻辑访问控制。

虚拟化层的完整性和可用性对于保证基于虚拟化技术构建的公有云的完整性和可用性是最重要,也是最关键的。一个有漏洞的虚拟化软件会暴露所有的业务域给恶意的入侵者。

5.2 虚拟服务器安全

虚拟服务器位于虚拟化软件之上,对于物理服务器的安全原理与实践也可以被运用到虚拟服务器上,当然也需要兼顾虚拟服务器的特点。下面将从物理机选择、虚拟服务器安全和日常管理三方面对虚拟服务器安全进行阐述。

应选择具有TPM安全模块的物理服务器,TPM安全模块可以在虚拟服务器启动时检测用户密码,如果发现密码及用户名的Hash序列不对,就不允许启动此虚拟服务器。因此,对于新建的用户来说,选择这些功能的物理服务器来作为虚拟机应用是很有必要的。如果有可能,应使用新的带有多核的处理器,并支持虚拟技术的CPU,这就能保证CPU之间的物理隔离,会减少许多安全问题。

安装虚拟服务器时,应为每台虚拟服务器分配一个独立的硬盘分区,以便将各虚拟服务器之间从逻辑上隔离开来。虚拟服务器系统还应安装基于主机的防火墙、杀毒软件、IPS(IDS)以及日志记录和恢复软件,以便将它们相互隔离,并与其他安全防范措施一起构成多层次防范体系。

对于每台虚拟服务器应通过VLAN和不同的IP网段的方式进行逻辑隔离。对需要相互通信的虚拟服务器之间的网络连接应当通过VPN的方式来进行,以保护它们之间网络传输的安全。实施相应的备份策略,包括它们的配置文件、虚拟机文件及其中的重要数据都要进行备份,备份也必须按一个具体的备份计划来进行,应当包括完整、增量或差量备份方式。

在防火墙中,尽量对每台虚拟服务器做相应的安全设置,进一步对它们进行保护和隔离。将服务器的安全策略加入到系统的安全策略当中,并按物理服务器安全策略的方式来对等。

从运维的角度来看,对于虚拟服务器系统,应当像对一台物理服务器一样地对它进行系统安全加固,包括系统补丁、应用程序补丁、所允许运行的服务、开放的端口等。同时严格控制物理主机上运行虚拟服务的数量,禁止在物理主机上运行其他网络服务。如果虚拟服务器需要与主机进行连接或共享文件,应当使用VPN方式进行,以防止由于某台虚拟服务器被攻破后影响物理主机。文件共享也应当使用加密的网络文件系统方式进行。需要特别注意主机的安全防范工作,消除影响主机稳定和安全性的因素,防止间谍软件、木马、病毒和黑客的攻击,因为一旦物理主机受到侵害,所有在其中运行的虚拟服务器都将面临安全威胁,或者直接停止运行。

对虚拟服务器的运行状态进行严密的监控,实时监控各虚拟机当中的系统日志和防火墙日志,以此来发现存在的安全隐患。对不需要运行的虚拟机应当立即关闭。

6 结束语

云计算安全是一个新兴的领域,通过上述这些重点领域安全的讨论分析,可能会降低云计算安全威胁的程度。但是,随着云计算技术的快速发展和更广泛地应用,将会面临更多的安全风险。云计算安全之路还很长,遵循已有的最佳安全实践可以加强云计算的安全。

1 闻剑峰,龚德志.虚拟化技术在电信灾难恢复计划中的应用研究.电信科学,2009,25(9)

2 石屹嵘,段勇.云计算在电信IT领域的应用探讨.电信科学,2009,25(9)

猜你喜欢
提供商服务提供商虚拟化
论品牌出海服务型跨境电商运营模式
基于OpenStack虚拟化网络管理平台的设计与实现
Miralago转变战略成为技术提供商
最新调查:约三成云服务提供商正迅速改变其业务模式
2018年Q1公共云提供商 基础设施支出持续增长
对基于Docker的虚拟化技术的几点探讨
铝合金自动化焊接解决方案提供商科盈,为企业高效助力
网络非中立下内容提供商与服务提供商合作策略研究
H3C CAS 云计算管理平台上虚拟化安全防护的实现
存储虚拟化还有优势吗?