首页 理论教育云计算防护技术-计算机网络与信息安全

云计算防护技术-计算机网络与信息安全

【摘要】:分布式处理平台包括作为基础存储服务的分布式文件系统和分布式数据库、为大规模应用开发提供的分布式计算模式,以及作为底层服务的分布式同步设施。对PaaS来说,数据安全、数据与计算可用性、针对应用程序的攻击是主要的安全问题。数据冗余、并行控制、分布式查询、可靠性等是分布式数据库设计时需主要考虑的问题。

(一)IaaS架构安全策略与防护

1.网络虚拟化安全策略与防护

网络虚拟化安全主要通过在虚拟化网络内部加载安全策略,增强虚拟机之间以及虚拟机与外部网络之间通信的安全性,确保在共享的资源池中的信息应用仍能遵从企业级数据隐私及安全要求。

网络虚拟化的具体安全防护要求如下:

(1)利用虚拟机平台的防火墙功能,实现虚拟环境下的逻辑分区边界防护和分段的集中管理,配置允许访问虚拟平台管理接口的IP地址、协议端口、最大访问速率等参数。

(2)虚拟交换机应具有虚拟端口的限速功能,通过定义平均带宽、峰值带宽和流量突发大小,实现端口级别的流量控制。同时应禁止虚拟机端口使用混杂模式进行网络通信嗅探。

(3)对虚拟网络平台的重要日志进行监视和审计,以便及时发现异常登录和操作。

(4)在创建客户虚拟机的同时,在虚拟网卡和虚拟交换机上配置防火墙,提高客户虚拟机的安全性。

2.存储虚拟化安全策略与防护

存储虚拟化通过在物理存储系统和服务器之间增加一个虚拟层,将物理存储虚拟化成逻辑存储,使用者只用访问逻辑存储,从而把数据中心异构的存储环境整合起来,屏蔽底层硬件的物理差异,向上层应用提供统一的存取访问接口。虚拟化的存储系统应具有高度的可靠性、可扩展性和高性能,能有效提高存储容量的利用率,简化存储管理,实现数据在网络上共享的一致性,满足用户对存储空间的动态需求。

存储虚拟化的具体安全防护要求如下:

(1)能够提供磁盘锁定功能,以确保同一虚拟机不会在同一时间被多个用户打开。能够提供设备冗余功能,当某台宿主服务器出现故障时,该服务器上的虚拟机磁盘锁定将被解除,以允许从其他宿主服务器重新启动这些虚拟机。

(2)能够提供多个虚拟机对同一存储系统的并发读/写功能,并确保并行访问的安全性。

(3)保证用户数据在虚拟化存储系统中的不同物理位置有至少2个以上备份,并对用户透明,以提供数据存储的冗余保护。

(4)虚拟存储系统可以按照数据的安全级别建立容错和容灾机制,以克服系统的误操作、单点失效、意外灾难等因素造成的数据损失。

3.业务管理平台安全策略与防护

具备宿主服务器资源监控能力,可实时监控宿主服务器物理资源利用情况,在宿主服务器出现性能瓶颈时发出告警;具备虚拟机性能监控能力,可实时监控物理机上各虚拟机的运行情况,在虚拟机出现性能瓶颈时发出告警。

支持设置单一虚拟机的资源限制量,保护虚拟机的性能不因其他虚拟机尝试消耗共享硬件上的太多资源而降低。在虚拟机资源分配时,应充分考虑资源预留情况,通过设置资源预留和限制量,保护虚拟机的性能不会因其他虚拟机过度消耗宿主服务器硬件资源而降低。

业务管理平台应具备高可靠性和安全性,具备多机热备功能和快速故障恢复功能。

对管理系统本身的操作进行分权、分级管理,限定不同级别的用户能够访问的资源范围和允许执行的操作:对用户进行严格的访问控制,分别授予不同用户为完成各自承担的任务所需的最小权限。

(二)PaaS架构安全策略与防护

PaaS云服务把分布式软件开发、测试、部署环境作为服务提供给应用程序开发人员。因此,要开展PaaS云服务,需要在云计算数据中心架设分布式处理平台,并对该平台进行封装。分布式处理平台包括作为基础存储服务的分布式文件系统和分布式数据库、为大规模应用开发提供的分布式计算模式,以及作为底层服务的分布式同步设施。对分布式处理平台的封装包括提供简易的软件开发环境,简单的API编程接口、软件编程模型和代码库等,使之能够方便地为用户所用。对PaaS来说,数据安全、数据与计算可用性、针对应用程序的攻击是主要的安全问题。

1.分布式文件安全策略与防护

基于云数据中心的分布式文件系统构建在大规模廉价服务器群上,因此存在以下安全问题:服务器等组件的失效现象可能经常出现,需解决系统的容错问题;能够提供海量数据的存储和快速读取功能,当多用户同时访问文件系统时,需解决并发控制和访问效率问题;服务器增减频繁,需解决动态扩展问题;需提供类似传统文件系统的接口以兼容上层应用开发,支持创建、删除、打开、关闭、读/写文件等常用操作。

为了提高分布式文件系统的健壮性和可靠性,当前的主流分布式文件系统设置辅助主服务器(Secondary Master)作为主服务器的备份,以便在主服务器故障停机时迅速恢复。系统采取冗余存储的方式,每份数据在系统中保存3个以上的备份,来保证数据的可靠性。同时,为保证数据的一致性,对数据的所有修改需要在所有的备份上进行,并用版本号的方式来确保所有备份处于一致的状态。

在数据安全性方面,分布式文件系统需要考虑数据的私有性和冲突时的数据恢复。透明性要求文件系统给用户的界面是统一完整的,至少需要保证位置透明、并发访问透明和故障透明。另外,分布式文件系统还要考虑可扩展性,增加或减少服务器时,应能自动感知,而且不对用户造成任何影响。(www.chuimin.cn)

2.分布式数据库安全策略与防护

基于云计算数据中心大规模廉价服务器群的分布式数据库同样存在以下安全问题。

对于组件的失效问题,要求系统具备良好的容错能力;具有海量数据的存储和快速检索能力;多用户并发访问问题;服务器频繁增减导致的可扩展性问题等。

数据冗余、并行控制、分布式查询、可靠性等是分布式数据库设计时需主要考虑的问题。

数据冗余保证了分布式数据库的可靠性,也是并行的基础,但也带来了数据一致性问题。数据冗余有两种类型:复制型数据库和分割型数据库。复制型数据库指局部数据库存储的数据是对总体数据库全部或部分的复制;分割型数据库指数据集被分割后存储在每个局部数据库里。由于同一数据的多个副本被存储在不同的节点里,对数据进行修改时,须确保数据所有的副本都被修改。这需要引入分布式同步机制对并发操作进行控制,最常用的方式是分布式锁机制以及冲突检测。

在分布式数据库中,各节点具有独立的计算能力,具有并行处理查询请求的能力。然而节点间的通信使查询处理的时延变大,因此,对分布式数据库而言,分布式查询或称并行查询是提升查询性能的最重要的手段。可靠性是衡量分布式数据库优劣的重要指标,当系统中的个别部分发生故障时,可靠性要求对数据库应用的影响不大或者无影响。

3.用户接口和应用安全策略与防护

对于PaaS服务来说,不能暴露过多的接口。PaaS服务使客户能够将自己创建的某类应用程序部署到服务器端运行,并且允许客户端对应用程序及其计算环境配置进行控制。如果来自客户端的代码是恶意的,PaaS服务接口暴露过多,可能会给攻击者带来机会,也可能会攻击其他用户,甚至可能会攻击提供运行环境的底层平台。

在用户接口方面,包括提供代码库、编程模型、编程接口、开发环境等。代码库封装平台的基本功能如存储、计算、数据库等,供用户开发应用程序时使用。编程模型决定了用户基于云平台开发的应用程序类型,它取决于平台选择的分布式计算模型。PaaS提供的编程接口应该是简单的、易于掌握的,有利于提高用户将现有应用程序迁移至云平台,或基于云平台开发新型应用程序的积极性。一个简单、完整的SDK有助于开发者在本机开发、测试应用程序,从而简化开发工作,缩短开发流程。

由于PaaS和用户基于PaaS云平台开发的应用程序都运行在云数据中心,因此,PaaS运营管理系统需解决用户应用程序运营过程中所需的存储、计算、网络基础资源的供给和管理问题,需根据应用程序实际运行情况动态增加或减少运行实例。为保证应用程序的可靠运行,系统还需要考虑不同应用程序问的相互隔离问题,防止其影响到PaaS底层承载平台或系统。

在技术层面上,目前PaaS对底层资源的调度和分配机制设计方面还有所不足,PaaS应用基本是采用尽力而为的方式来使用系统的底层计算处理资源。如果同一平台上同时运行多个应用,则会在优化多个应用的资源分配、优先级配置方面无能为力。要解决这个问题,需要借助更底层的资源分配机制,如将PaaS应用承载在虚拟化平台上,借助虚拟化平台的资源调度机制来实现多个PaaS应用的资源调度。

(三)SaaS架构安全策略与防护

由于SaaS服务端暴露的接口相对有限,并处于系统安全权限最低之处,一般不会给其所处的软件栈层次以下的更高系统安全权限层次带来新的安全问题。对于SaaS服务而言,SaaS底层架构安全的关键在于如何解决多租户共享情况下的数据安全存储与访问问题,主要包括多租户下的安全隔离、数据库安全和应用程序安全等方面的问题。

1.多租户安全策略与防护

在多租户的典型应用环境下,可以通过物理隔离、虚拟化和应用支持的多租户架构等三种方案实现不同租户之间数据和配置的安全隔离,以保证每个租户数据的安全与隐私保密。

物理分隔法为每个用户配置其独占的物理资源,实现在物理层面上的安全隔离,同时可以根据每个用户的需求,对运行在物理机器上的应用进行个性化设置,安全性较好,但该模式的硬件成本较高,一般只适合对数据隔离要求比较高的大中型企业等。

虚拟化方法通过虚拟技术实现物理资源的共享和用户的隔离,但每个用户独享一台虚拟机,当面对成千上万的用户时,为每个用户都建立独立的虚拟机是不合理和没有效率的。

应用支持的多租户架构包括了应用池和共享应用实例两种方式。应用池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。每个应用池都有一系列的操作系统进程来处理应用请求,通过设定每个应用池中的进程数目,能够控制系统的最大资源利用情况和容量评估等。在某个应用池中的应用程序不会受到其他应用池中应用程序所产生的问题的影响。这种方式被很多的托管商用来托管不同客户的Web应用。共享应用实例是在一个应用实例上为成千上万个用户提供服务,用户间是隔离的,并且用户可以用配置的方式对应用进行定制。这种技术的好处是由于应用本身对多租户架构的支持,所以在资源利用率和配置灵活性上都较虚拟化的方式好,并且由于是一个应用实例,在管理维护方面也比虚拟化的方式方便。

2.数据库安全策略与防护

在数据库的设计上,SaaS服务普遍采用大型商用关系型数据库和集群技术。多重租赁的软件一般采用三种设计方法:每个用户独享一个数据库instance;每个用户独享一个数据库instance中的一个schema;多个用户以隔离和保密技术原理共享一个数据库instance的一个schema。

出于成本考虑,多数SaaS服务均选择后两种方案,从而降低成本。数据库隔离的方式经历了instance隔离、schema隔离、partition隔离、数据表隔离,到应用程序的数据逻辑层提供的根据共享数据库进行用户数据增删修改授权的隔离机制,从而在不影响安全性的前提下实现效率最大化。

3.应用程序安全

应用程序的安全主要体现在提升Web服务器安全性上,可以采用特殊的Web服务器或服务器配置以优化安全性、访问速度和可靠性。身份验证和授权服务是系统安全性的起点,J2EE和.NET自带全面的安全服务。J2EE提供Servlet Presentation Framework,.NET提供.NET Framework,并持续升级。应用程序通过调用安全服务的API接口对用户进行授权和上下文继承。

在应用程序的设计上,安全服务通过维护用户访问列表、应用程序Session、数据库访问Session等进行数据访问控制,并需要建立严格的组织、组、用户树和维护机制。

平台安全的核心是用户权限在各SaaS应用程序中的继承,一些厂商的产品自带权限树继承技术。ACL和密码保护策略也是提高SaaS安全性的重要方面,用户可以在自己的系统中修改相关策略。有些厂商还推出了浏览器插件来保护客户登录安全。