云计算安全关键技术分析云计算安全关键技术分析1云计算安全问题根据IDC在2009年年底发布的一项调查报告显示,云计算服务面临的前三大市场挑战分别为服务安全性、稳定性和性能表现。该三大挑战排名同IDC于2008年进行的云计算服务调查结论完全一致。2009年11月,ForresterResearch公司的调查结果显示,有51%的中小型企业认为安全性和隐私问题是他们尚未使用云服务的最主要原因。由此可见,安全性是客户选择云计算时的首要考虑因素。云计算由于其用户、信息资源的高度集中,带来的安全事件后果与风险也较传统应用高出很多。在2009年,Google、Microsoft、Amazon等公司的云计算服务均出现了重大故障,导致成千上万客户的信息服务受到影响,进一步加剧了业界对云计算应用安全的担忧。总体来说,云计算技术主要面临以下安全问题。(1)虚拟化安全问题利用虚拟化带来的可扩展有利于加强在基础设施、平台、软件层面提供多租户云服务的能力,然而虚拟化技术也会带来以下安全问题:·如果主机受到破坏,那么主要的主机所管理的客户端服务器有可能被攻克;·如果虚拟网络受到破坏,那么客户端也会受到损害;·需要保障客户端共享和主机共享的安全,因为这些共享有可能被不法之徒利用其漏洞;·如果主机有问题,那么所有的虚拟机都会产生问题。(2)数据集中后的安全问题用户的数据存储、处理、网络传输等都与云计算系统有关。如果发生关键或隐私信息丢失、窃取,对用户来说无疑是致命的。如何保证云服务提供商内部的安全管理和访问控制机制符合客户的安全需求;如何实施有效的安全审计,对数据操作进行安全监控;如何避免云计算环境中多用户共存带来的潜在风险都成为云计算环境所面临的安全挑战。(3)云平台可用性问题用户的数据和业务应用处于云计算系统中,其业务流程将依赖于云计算服务提供商所提供的服务,这对服务商的云平台服务连续性、SLA和IT流程、安全策略、事件处理和分析等提出了挑战。另外,当发生系统故障时,如何保证用户数据的快速恢复也成为一个重要问题。(4)云平台遭受攻击的问题云计算平台由于其用户、信息资源的高度集中,容易成为黑客攻击的目标,由于拒绝服务攻击造成的后果和破坏性将会明显超过传统的企业网应用环境。(5)法律风险云计算应用地域性弱、信息流动性大,信息服务或用户数据可能分布在不同地区甚至不同国家,在政府信息安全监管等方面可能存在法律差异与纠纷;同时由于虚拟化等技术引起的用户间物理界限模糊而可能导致的司法取证问题也不容忽视。2云计算安全参考模型从IT网络和安全专业人士的视角出发,可以用统一分类的一组公用的、简洁的词汇来描述云计算对安全架构的影响,在这个统一分类的方法中,云服务和架构可以被解构,也可以被映射到某个包括安全、可操作控制、风险评估和管理框架等诸多要素的补偿模型中去,进而符合合规性标准。云计算模型之间的关系和依赖性对于理解云计算的安全非常关键,IaaS(基础设施即服务)是所有云服务的基础,PaaS(平台即服务)一般建立在IaaS之上,而SaaS(软件即服务)一般又建立在PaaS之上,它们之间的关系。IaaS涵盖了从机房设备到硬件平台等所有的基础设施资源层面。PaaS位于IaaS之上,增加了一个层面用以与应用开发、中间件能力以及数据库、消息和队列等功能集成。PaaS允许开发者在平台之上开发应用,开发的编程语言和工具由PaaS支持提供。SaaS位于底层的IaaS和PaaS之上,能够提供独立的运行环境,用以交付完整的用户体验,包括内容、展现、应用和管理能力。云安全架构的一个关键特点是云服务提供商所在的等级越低,云服务用户自己所要承担的安全能力和管理职责就越多。下面对云计算安全领域中的数据安全、应用安全和虚拟化安全等问题(见表1)的应对策略和技术进行重点阐述。3云计算安全关键技术3.1数据安全云用户和云服务提供商应避免数据丢失和被窃,无论使用哪种云计算的服务模式(SaaS/PaaS/IaaS),数据安全都变得越来越重要。以下针对数据传输安全、数据隔离和数据残留等方面展开讨论。(1)数据传输安全在使用公共云时,对于传输中的数据最大的威胁是不采用加密算法。通过Internet传输数据,采用的传输协议也要能保证数据的完整性。如果采用加密数据和使用非安全传输协议的方法也可以达到保密的目的,但无法保证数据的完整性。(2)数据隔离加密磁盘上的数据或生产数据库中的数据很重要(静止的数据),这可以用来防止恶意的云服务提供商、恶意的邻居“租户”及某些类型应用的滥用。但是静止数据加密比较复杂,如果仅使用简单存储服务进行长期的档案存储,用户加密他们自己的数据后发送密文到云数据存储商那里是可行的。但是对于PaaS或者SaaS应用来说,数据是不能被加密,因为加密过的数据会妨碍索引和搜索。到目前为止还没有可商用的算法实现数据全加密。PaaS和SaaS应用为了实现可扩展、可用性、管理以及运行效率等方面的“经济性”,基本都采用多租户模式,因此被云计算应用所用的数据会和其他用户的数据混合存储(如Google的BigTable)。虽然云计算应用在设计之初已采用诸如“数据标记”等技术以防非法访问混合数据,但是通过应用程序的漏洞,非法访问还是会发生,最著名的案例就是2009年3月发生的谷歌文件非法共享。虽然有些云服务提供商请第三方审查应用程序或应用第三方应用程序的安全验证工具加强应用程序安全,但出于经济性考虑,无法实现单租户专用数据平台,因此惟一可行的选择就是不要把任何重要的或者敏感的数据放到公共云中。(3)数据残留数据残留是数据在被以某种形式擦除后所残留的物理表现,存储介质被擦除后可能留有一些物理特性使数据能够被重建。在云计算环境中,数据残留更有可能会无意泄露敏感信息,因此云服务提供商应能向云用户保证其鉴别信息所在的存储空间被释放或再分配给其他云用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中。云服务提供商应保证系统内的文件、目录和数据库记录等资源所在的存储空间被释放或重新分配给其他云用户前得到完全清除。3.2应用安全由于云环境的灵活性、开放性以及公众可用性等特性,给应用安全带来了很多挑战。提供商在云主机上部署的Web应用程序应当充分考虑来自互联网的威胁。(1)终端用户安全对于使用云服务的用户,应该保证自己计算机的安全。在用户的终端上部署安全软件,包括反恶意软件、防病毒、个人防火墙以及IPS类型的软件。目前,浏览器已经普遍成为云服务应用的客户端,但不幸的是所有的互联网浏览器毫无例外地存在软件漏洞,这些软件漏洞加大了终端用户被攻击的风险,从而影响云计算应用的安全。因此云用户应该采取必要措施保护浏览器免受攻击,在云环境中实现端到端的安全。云用户应使用自动更新功能,定期完成浏览器打补丁和更新工作。随着虚拟化技术的广泛应用,许多用户现在喜欢在桌面或笔记本电脑上使用虚拟机来区分工作(公事与私事)。有人使用VMwarePlayer来运行多重系统(比如使用Linux作为基本系统),通常这些虚拟机甚至都没有达到补丁级别。这些系统被暴露在网络上更容易被黑客利用成为流氓虚拟机。对于企业客户,应该从制度上规定连接云计算应用的PC机禁止安装虚拟机,并且对PC机进行定期检查。(2)SaaS应用安全SaaS应用提供给用户的能力是使用服务商运行在云基础设施之上的应用,用户使用各种客户端设备通过浏览器来访问应用。用户并不管理或控制底层的云基础设施,如网络、服务器、操作系统、存储甚至其中单个的应用能力,除非是某些有限用户的特殊应用配置项。SaaS模式决定了提供商管理和维护整套应用,因此SaaS提供商应最大限度地确保提供给客户的应用程序和组件的安全,客户通常只需负责操作层的安全功能,包括用户和访问管理,所以选择SaaS提供商特别需要慎重,目前对于提供商评估通常的做法是根据保密协议,要求提供商提供有关安全实践的信息。该信息应包括设计、架构、开发、黑盒与白盒应用程序安全测试和发布管理。有些客户甚至请第三方安全厂商进行渗透测试(黑盒安全测试),以获得更为详实的安全信息,不过渗透测试通常费用很高而且也不是所有提供商都同意这种测试。还有一点需要特别注意的是,SaaS提供商提供的身份验证和访问控制功能,通常情况下这是客户管理信息风险惟一的安全控制措施。大多数服务包括谷歌都会提供基于Web的管理用户界面。最终用户可以分派读取和写入权限给其他用户。然而这个特权管理功能可能不先进,细粒度访问可能会有弱点,也可能不符合组织的访问控制标准。用户应该尽量了解云特定访问控制机制,并采取必要步骤,保护在云中的数据;应实施最小化特权访问管理,以消除威胁云应用安全的内部因素。所有有安全需求的云应用都需要用户登录,有许多安全机制可提高访问安全性,比如说通行证或智能卡,而最为常用的方法是可重用的用户名和密码。如果使用强度最小的密码(如需要的长度和字符集过短)和不做密码管理(过期,历史)很容导致密码失效,而这恰恰是攻击者获得信息的首选方法,从而容易被猜到密码。因此云服务提供商应能够提供高强度密码;定期修改密码,时间长度必须基于数据的敏感程度;不能使用旧密码等可选功能。在目前的SaaS应用中,提供商将客户数据(结构化和非结构化数据)混合存储是普遍的做法,通过惟一的客户标识符,在应用中的逻辑执行层可以实现客户数据逻辑上的隔离,但是当云服务提供商的应用升级时,可能会造成这种隔离在应用层执行过程中变得脆弱。因此,客户应了解SaaS提供商使用的虚拟数据存储架构和预防机制,以保证多租户在一个虚拟环境所需要的隔离。SaaS提供商应在整个软件生命开发周期加强在软件安全性上的措施。(3)PaaS应用安全PaaS云提供给用户的能力是在云基础设施之上部署用户创建或采购的应用,这些应用使用服务商支持的编程语言或工具开发,用户并不管理或控制底层的云基础设施,包括网络、服务器、操作系统或存储等,但是可以控制部署的应用以及应用主机的某个环境配置。PaaS应用安全包含两个层次:PaaS平台自身的安全;客户部署在PaaS平台上应用的安全。SSL是大多数云安全应用的基础,目前众多黑客社区都在研究SSL,相信SSL在不久的将来将成为一个主要的病毒传播媒介。PaaS提供商必须明白当前的形势,并采取可能的办法来缓解SSL攻击,避免应用被暴露在默认攻击之下。用户必须要确保自己有一个变更管理项目,在应用提供商指导下进行正确应用配置或打配置补丁,及时确保SSL补丁和变更程序能够迅速发挥作用。PaaS提供商通常都会负责平台软件包括运行引擎的安全,如果PaaS应用使用了第三方应用、组件或Web服务,那么第三方应用提供商则需要负责这些服务的安全。因此用户需要了解自己的应用到底依赖于哪个服务,在采用第三方应用、组件或Web服务的情况下用户应对第三方应用提供商做风险评估。目前,云服务提供商借口平台的安全使用信息会被黑客利用而拒绝共享,尽管如此,客户应尽可能地要求云服务提供商增加信息透明度以利于风险评估和安全管理。在多租户PaaS的服务模式中,最核心的安全原则就是多租户应用隔离。云用户应确保自己的数据只能有自己的企业用户和应用程序访问。提供商维护PaaS平台运行引擎的安全,在多租户模式下必须提供“沙盒”架构,平台运行引擎的“沙盒”特性可以集中维护客户部署在PaaS平台上应用的保密性和完整性。云服务提供商负责监控新的程序缺陷和漏洞,以避免这些缺陷和漏洞被用来攻击PaaS平台和打破“沙盒”架构。云用户部署的应用安全需要PaaS应用开发商配合,开发人员需要熟悉平台的API、部署和管理执行的安全控制软件模块。开发人员必须熟悉平台特定的安全特性,这些特性被封装成安全对象和Web服务。开发人员通过调用这些安全对象和Web服务实现在应用内配置认证和授权管理。对于PaaS的API设计,目前没有标准可用,这对云计算的安全管理和云计算应用可移植性带来了难