发布日期:2013-04-28 16:06 来源:中国电信网络安全实验室 标签: 核心 架构 安全
 

SaaS核心架构安全(2)

作为"描述数据的数据",元数据是一种对信息资源进行有效组织、管理、利用的基础和工具。在SaaS模式的服务行业中,元数据有着广泛应用,例如,Salesforce.com通过采用元数据的开发模式,把应用程序的基本功能(选项卡、链接等)以元数据的形式存储在数据库中,这样当用户在SaaS平台上选择自己的配置时,SaaS系统就会根据用户的设置,把相应的元数据组合并呈现在用户的界面上。

(3)Web 2.0

Web 2.0是2004年在O'Reilly Media公司和MediaLive公司举行的一次会议上提出的。对于Web 2.0,业界并没有一个明确的定义。它包含了两个方面的含义:首先,它并不是一个具体的事物,而是一个阶段,是由Web 1.0单纯通过网络浏览器浏览HTML网页模式向内容更丰富、联系更紧密、工具性更强的互联网模式发展的一个阶段;其次,它是促成这个阶段的过程中各种技术和相关互联网应用的一个总称。因此,Web 2.0也被认为是以Flickr、Craigslist、linkedIn、Tribes、Del.icio.us、43things.com等网站为代表,以Blog、tag、SNS、RSS、Wiki等应用为核心,依据六度分割、XML、AJAX等新理论和技术实现的新一代互联网模式。作为新一代的互联网技术的Web 2.0,可以用来实现SaaS界面层的功能。

Ajax、Blog、Wiki、RSS和P2P是Web 2.0中被广泛采用的技术。Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种创建交互式网页应用的网页开发技术,它采用远程脚本调用技术,通过JavaScript语言与XMLHttpRequest对象来实现数据请求,将处理由服务器转移到客户端,减少了服务器的资源占用,加快了数据处理的速度。Blog(网络日志)是一种新的网络信息发布方式,简单易用,在隐性知识的挖掘和共享上有重要意义。Wiki包含一套能简易创造、改变HTML网页的系统,容许任何造访网站的人能快速轻易地加入、删除、编辑所有的内容。RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,包含了一套用于描述Web内容的元数据规范,能够实现内容整合者、内容提供商和最终用户之间的Web内容的互动。P2P使得人们可以直接连接到其他用户的计算机、交换文件,而不用像过去那样连接到服务器去浏览与下载。

2.SaaS核心架构安全防护

由于SaaS服务端暴露的接口相对有限,并处于软件栈的顶端,即系统安全权限最低之处,因此一般不会给其所处的软件栈层次以下的更高系统安全权限层次带来新的安全问题。

对于SaaS服务而言,SaaS底层架构安全的关键在于如何解决多租户共享情况下的数据安全存储与访问问题,主要包括多租户下的安全隔离、数据库安全和应用程序安全等方面的问题。

(1)多租户安全

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

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

虚拟化方法通过虚拟技术实现物理资源的共享和用户的隔离,但每个用户独享一台虚拟机,不足之处是当面对成千上万的用户时,给每个用户都建立独立的虚拟机是不合理和没有效率的。虚拟机的主要目的是减少为达到隔离目的而产生的独占性资源。与对操作系统做整体的虚拟化不同,多个虚拟服务可以共享一些基本的操作系统内核,如各类驱动程序等。和虚拟机一样,虚拟化方法难以支持成千上万的用户,但其在SaaS运营商优化机器资源分配等方面,却是一项很有用的技术。

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

(2)数据库安全

SaaS服务普遍采用大型商用关系型数据库和集群技术,在数据库的设计上,多重租赁的软件一般采用三种设计方法。

1)每个用户独享一个数据库instance。

2)每个用户独享一个数据库instance中的一个schema。

3)多个用户以隔离和保密技术原理共享一个数据库instance的一个schema。

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

(3)应用程序安全

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

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

平台安全的核心是用户权限在各SaaS应用程序中的继承,Salesforce或八百客等厂商的产品自带权限树继承技术,自2006年以来,已经实现大规模商业运营。而与第二种运营平台模式类似的集成则需要专业的定制开发,相应的中间件技术或SOA总线技术还未成熟。

ACL和密码保护策略也是提高SaaS安全性的重要方面,用户可以在自己的系统中修改相关策略。有些厂商还推出了浏览器插件来保护客户登录安全。

相关评论

专题信息
    随着云计算技术的应用越来越广泛,云计算的可信性和安全性问题凸显。本书叙述了采用可信云安全技术解决云计算可信和安全问题的方法。可信云安全技术是在云计算环境中,针对云端互动的人进行可信计算和安全计算的技术。