七月上半月与家人旅游(去了祖国宝岛台湾!),回来后一直忙于诸多事情,居然未能偷出一点时间登录博客写上一篇!好在所忙碌之事中毕竟有一件十分重要的:受云计算专家委员会重托写一篇有关云计算安全的文章作为云计算白皮书中的一章。专委会要求在月底前完成初稿,所以今天(31日)刚完成任务之时,便自赋特权将该章的第一节(少于全章10%的内容)在此登出,就算整个7月份没交白卷。白皮书其他章节由许多专家合作写成,希望此处登出的一小节能够起到推销全书的作用。
本章是与EMC中国实验室同事张京城,李俊合作写成,特在此致谢!
 
云计算安全  

1 引言

云计算通过对大规模可扩展的分布式计算资源(如CPU资源、存储资源、网络资源等)进行整合,通过互联网技术以按需使用的方式为用户提供计算和存储服务。云计算的核心是面向服务的体系架构。在该架构中,信息处理是以服务方式提供与获得的。信息就是财产,所有与信息处理有关的服务都可能对用户或服务提供者的信息财产带来安全风险,比如信息泄漏、破坏或丢失。本章要讨论与云计算相关的安全问题与技术。

1.1 面向服务的云计算架构

图1给出了以服务为中心的云计算架构、相关的安全技术以及我们将在本章何处介绍这些技术。
 
图1: 面向服务的云计算架构及相关安全技术[78]
 
云计算包含前端(客户端、用户端)和后端(服务器端、数据中心)。目前认为前端趋向于变“瘦”变“薄”,趋向于以网络浏览器的形式提供基本用户操作界面,通过网络连接使信息处理服务在后端发生完成。后端的服务架构从底向上可分为硬件基础架构作为服务(Infrastructure as a Service, IaaS)、平台作为服务(Platform as a Service, PaaS)、软件作为服务(Software as a Service, SaaS)和智能服务(Intelligence-aaS)。IaaS服务(如Amazon EC2[33])向用户提供基本的计算、存储和网络资源,用户基于这些资源,可安装任意的操作系统软件和应用软件以完成计算。PaaS服务(如App Engine[49], Azure[79])基于IaaS实现,它向用户提供特定的计算平台(其平台操作系统和平台中间件由PaaS提供商所控制),用户可以在该平台上部署自己编写或控制的应用软件以完成计算。SaaS服务(在一些特定软件应用上率先发生,如CRM、ERP、人力资源管理)基于IaaS和PaaS实现。SaaS仅仅向用户提供服务使用接口(其后端软件栈完全由SaaS服务提供商控制),用户在前端调用后端的SaaS服务以完成信息处理。智能服务是指前端用户使用网上在线服务的过程和结果所产生的一些新的、独立于网上在线服务本身价值之外的价值,而这些价值又产生了服务。图1用倒置的三角形来表示越上层的服务越被终端用户看好,被认为更有价值。
 

1.2  云服务的安全风险

由于云服务“把自家宝贵财富委托给他人处置”的特征,用户所担心的安全风险显然要比以前信息在自家处理(on-premises)的情形扩大了许多。。。。。。
 

1.3 与云服务相关的威胁模型

。。。。。。。

1.4 云计算相关安全技术

为了有效保护云用户的信息财产,云安全问题需要由前端和后端共同来解决。从后端的角度考虑,由于不同层次的服务提供者允许用户对后端资源的控制能力不同,这使得它们所面临的安全问题也不一样,所以每个层次的服务提供者需要使用不同的安全技术来保护自身的安全并满足用户的安全需求。同时前端也需要有效的安全方案来保护前端自身安全性以及和后端交互的安全性。

1.4.1 IaaS安全技术

对于IaaS服务来说,它为用户提供基础架构服务,如虚拟数据中心VDC、虚拟机器、虚拟网络等等[72],它需要对大规模的分布式物理资源进行整合,使以前计算服务与物理资源间的紧耦合变成了松耦合,从而使计算与服务器所在的位置无关。在这种场景下,资源的虚拟化是IaaS服务所使用的核心技术。所以我们根据IaaS服务的安全需求和特性,一方面从系统安全的角度,我们将讨论虚拟机的***检测和防护技术、虚拟机运行时的完整性保护技术、虚拟机的隔离技术、虚拟机映像文件的安全保护以及虚拟机的安全迁移技术;另一方面从网络管理的角度,我们还将讨论后端的网络隔离技术、基于×××的虚拟私有云技术以及前后端之间的网络安全技术。

1.4.2 PaaS安全技术

对于PaaS服务来说,它使客户能够将自己创建的某类应用程序部署到服务端运行,并且允许客户端对应用程序及其计算环境配置进行控制[72]。因为来自于客户端的代码可能会是恶意的,如果PaaS服务暴露过多的接口,可能会给***者带来机会。比如,用户可能会提交一段恶意代码,这段代码可能恶意抢占CPU时间、内存空间和其它资源,也可能会***其它用户,甚至可能会***提供运行环境的底层平台。所以我们根据PaaS服务的安全需求和特性,将主要讨论砂箱隔离技术和数据安全技术。

1.4.3 SaaS安全技术

SaaS服务,在目前某些特定应用上率先发生的,如CRM、ERP、人力资源管理等成功用例上,它的主要做法是采用同一个软件代码来处理不同用户的私有数据来提供多租客服务,以获得规模服务的低成本(Economies of Scale)。由于SaaS服务端暴露的接口相对有限并处于软件栈的顶端,即系统安全权限最低之处,它一般不会对其所处的软件栈层次以下的更高系统安全权限层次带来新的安全问题。至于用户私有数据在服务提供商处的安全保护问题,可以归类到IaaS的安全问题。
然而,随着SaaS技术的发展,安全本身作为服务(Security-aaS)也开始成为一种趋势,这些由后端提供的安全服务可用于解决前端存在的一些安全问题。所以,我们将讨论杀毒软件服务和防火墙作为服务。

1.4.4 前端安全技术

无论前端平台今后会变得有多瘦多薄多轻,云计算的目的毕竟是要让终端用户通过前端平台来体验信息处理的服务结果。所以在前端平台上也要做信息处理,也有服务架构的体现。前端信息处理平台的安全保护也当然非常重要。所以我们还将讨论在前端平台上的安全问题和技术:如病毒控制、防火墙、***检测、浏览器砂箱、系统升级管理、在线补丁、安全信道技术、客户端平台证明等等。

1.4.5 私有云,公用云及虚拟私有公用云的安全问题

私有云(Private Cloud)指的是一个企业内部自用的云计算技术。私有云采用云技术对企业的IT资源作整合以提高管理效益降低成本。由于是企业内部自用,私有云的安全问题是一个简化了的问题,企业内部传统使用的IT安全措施可以应用到私有云的保护上去。
公用云(Public Cloud)是更具有公用服务(如水、电、燃气服务)本质的云技术。在公用云的初期阶段(如现阶段),对数据安全问题不必太重视的用户(如大量web电子邮箱用户)在处理安全无关的应用或事物时会成为公用云的主要使用者。
虚拟私有公用云(Virtual Private Cloud)是一种既具有强安全保护又具有公用服务便利廉价性质的云技术。虚拟私有公用云可以从公用云或私有云中虚拟出一块私有云。解决其安全问题所需创新思路相比之私有云与公用云要高出不少。我们将本章第7节介绍一个虚拟私有公用云方面的研究课题。

1.5 本章组织结构

本章下文结构如下:
第2节讨论IaaS相关的安全技术,包括基础设施的安全技术(2.1节)、资源虚拟化的安全技术(2.2节)、网络管理技术(2.3节)、基于云的系统升级和补丁技术(2.4节)和防止内部***的技术(2.5节)。
第3节讨论PaaS相关的安全技术,它包括后端的隔离技术(3.1节)和数据安全技术(3.2节)。
第4节讨论了SaaS相关的安全技术,其中包括SaaS本身的安全(4.1节)和安全作为服务(4.2节)。
第5节讨论了前端的安全技术,包括基于后端集中管理的安全配置(5.1节)、安全的SaaS客户端(5.2节)、安全通道技术(5.3节)和成员资格证明(5.4节)。
第6节讨论了可信的云计算技术,它包括可信的虚拟化(6.1节)、可信的数据保护(6.2节)以及可信云计算架构(6.3节)。
第7节我们给出了一个实现云计算“行为规范”的研究案例(道里Daoli项目[69]),其中介绍了道里可信虚拟化体系结构(7.1节)和可信平台的可验证安全启动技术(7.2节)。
第8节我们给出了结论。