基于DIFC的SaaS环境中动态数据保护应用方案*

2016-02-24 08:34萍孙伟胡荣磊
北京电子科技学院学报 2016年2期
关键词:分散式信息流租户

曾 萍孙 伟胡荣磊

基于DIFC的SaaS环境中动态数据保护应用方案*

曾 萍1,2**孙 伟1,2胡荣磊1

1.北京电子科技学院,北京 10070 2.西安电子科技大学通信工程学院,西安 710071

云计算利用多租户技术从各个层面提高了资源共享率,但多租户技术也给用户数据保护、数据间的隔离、访问控制等问题带来严峻挑战,尤其是对云平台上动态处理的数据的保护。近年来国外对分散式信息流控制(DIFC)在解决云中动态数据保护问题上有较多研究,而且DIFC在云计算分布式环境中有较广的应用前景。本文介绍了目前国内外将DIFC用于云数据保护的研究成果,在此基础上设计了基于DIFC模型在SaaS环境中的应用方案,并对方案的安全性进行了分析,分析表明该方案满足保密性和完整性。

SaaS多租户;动态数据安全;分散信息流控制

引言

云计算作为一种全新的服务模式使其面临着更多的数据泄露风险。在SaaS云中,用户租用SaaS软件服务,上传自己的隐私数据,云服务商就获得了用户数据的优先访问权。这其中不仅要防止来自外部黑客窃取数据的行为,还要防止云服务商内部窃取、泄露用户隐私。同时,由于云平台虚拟化、多租户的特征,云服务商还需要确保共享同一物理资源的不同用户间的隐私隔离。当同一用户同时租用多个SaaS应用服务时,还要考虑该用户跨应用间的数据共享。

针对云计算分布式、不可信的环境,本文在分析现有的SaaS层数据保护技术的基础上,提出将分散式信息流控制(Decentralized Information Flow Control,DIFC)用于SaaS层的用户数据保护与隔离,设计了SaaS多租户的典型安全应用场景,提出了采用DIFC模型的保护方案,并对其做了安全性分析。

1 信息流控制模型用于数据隐私保护的研究现状

Andrew C.Myers等人于1997年在文献[1]中提出了分散式信息流控制(Decentralized Information Flow Control,DIFC)模型,DIFC模型允许用户控制他们自己的信息流,并允许用户显式地解密他们自己的数据。模型用主体(Principals)代表系统中用户、组、角色等授权实体,用标签(Labels)描述程序中允许的信息流,并有安全策略(policy)、标签转移标签计算、解密等规则对系统中被标记的数据流进行控制。目前关于DIFC模型的研究主要集中在将DIFC模型应用于云服务的数据安全保护,以及多租户数据隔离上。

Myers等人实现了第一个编程语言级的系统Jif[1~4](Java information flow),它对Java语言的类型系统进行了扩展和改造,使之支持对程序中的变量、类、对象、方法等添加标签,在静态编译时对程序中的显式和隐式信息流进行检查,只有信息流检查安全的代码才能编译通过,从而确保生成的可执行代码是信息流安全的代码。文献[5]对Jif语言做了扩展,从而使DIFC标签机制的使用更灵活。文献[6]提出借助Jif编写安全型web应用程序,防止跨站脚本攻击和利用web应用程序漏洞窃取信息的行为。文献[7]用数理逻辑的方法从理论上证明了DIFC模型可用于SaaS应用程序的设计,来确保同一应用的不同用户之间无法越权查看彼此的文件。

文献[8]从应用程序和操作系统两个层面上应用DIFC模型进行设计,保护用户数据在云系统处理过程中的安全性。文献[9]提出用DIFC模型设计安全的云操作系统,其采用向Linux内核添加模块的方式,对上层应用程序发出的系统调用进行拦截,并对其进行信息流检查。

文献[10]分析了可以通过支持信息流控制的中间件来实现跨应用、跨容器、跨虚拟机甚至跨主机的信息流控制,这为将信息流控制应用于云计算分布式网络打下了基础。文献[11]通过对数据包进行标记,控制其在网络中的流动方式,从概念上证明了实现网络级分散式信息流控制的可能性。文献[12][13]设计了应用于web站点中的信息流控制框架,追踪敏感信息流,以防止跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。文献[14]将分散式信息流控制用于关系型数据库中,用于管理关系型数据库中的信息流。

2 DIFC在SaaS应用程序中的数据安全保护应用方案

DIFC的核心思想在于权限的分散式管理,而不需要一个安全可信的实体执行集中授权和解密,这也是分布式环境,尤其是主体间互不信任的分布式环境所需要的权限管理方式,而云计算环境正是这样一种环境。

本文针对一个SaaS应用场景来描述基于DIFC的数据保护应用方案。假设在某云平台部署了一款统计手机套餐订购情况的SaaS应用程序,名为PPS(Phone Package Statistics)。该应用现租用给A、B、C三公司用以统计其客户在某一季度的手机套餐消费情况,比如各类套餐订购人数、人群的年龄分布等信息。该SaaS应用以单实例多租户的模式同时向三家公司出售服务,各公司只需将其本季度套餐订购数据上传到PPS,它就可以为运营商返回统计结果。

单从SaaS应用程序本身来说,需要解决以下几点安全性问题:

1)确保客户数据在程序处理过程中不会泄露;

2)确保三家数据良好隔离的同时还要便于信息的共享;

3)要防止SaaS应用把用户数据泄露给服务商。

根据DIFC的标签模型,假设A公司自己的客户数据加有标签:

其中,A表示该标签的所有者是A,加有该标签的数据表明A是数据的所有者;PPS代表的是SaaS应用程序(比如这里的手机套餐统计程序PPS),它是该标签所允许的访问者,即只允许PPS访问加有该标签的数据;si和ij分别代表该标签的机密性等级和完整性等级,只有符合BLP和Biba模型安全要求的信息流才被允许影响该标签的数据,si和ij分别满足si∈ST={sl|1≤sl≤m},ij∈IT={ij|1≤ij≤n},这里假设1~m是A公司采用的机密性等级范围,1级为最高密级,m为最低密级,从m级到1级构成格关系[15]。si项若为空,表明没有机密性要求,是可公开数据,不可信实体的机密性标签为空。1~n是其采用的完整性级别范围,假设1级为最高完整级,n为最低完整级,从n级到1级同样构成格关系,ij项若为空,表明没有完整性要求,该数据是开放数据,不可信实体的完整性标签为空。

如式(1)所示的标签实际上表达了A公司对其客户数据的一种安全策略需求,即A公司要求其上传到SaaS应用的客户数据除了A自己外,只有PPS应用可以访问,而PPS应用对不同数据的访问还必须符合机密性和完整性标签的要求。

同样,假设B公司为其客户数据加有类似标签:

假设C公司为其客户数据加有标签:

在SaaS应用程序中的执行流(通常是进程或线程)也有类似的标签,比如:

式(4)表明拥有该标签的执行流当前代表A公司执行操作,其机密性标签为su,完整性标签为iv,其含义与式(1)、(2)、(3)中机密性、完整性标签的含义相同。

本文借助DIFC模型解决上面提出的三个SaaS应用的安全问题。

1)数据机密性和完整性保护

分散信息流控制模型要求当且仅当满足如下条件时,从A→B的信息流才是安全的:

其中S(A)、S(B)分别代表A和B的机密性标签,I(A)、I(B)分别代表A和B的完整性标签。即对于机密性而言,数据只能流向机密等级更高的实体(若A→B,则S(A)⊆S(B)),对于完整性而言,数据只能流向完整性等级更低的实体(若A→B,则I(B)⊆I(A) )。

以A公司的数据标签{A:PPS:si,ij}为例,加有该标签的数据其机密性级别为si,完整性级别为ij,当其在SaaS应用中处理时,根据BLP和Biba模型,只有机密性级别比si高,完整性级别比ij低的进程才能读取{A:PPS:si,ij}标签的数据,只有机密性级别比si低,完整性级别比ij高的进程才能向该标签的数据中写入。假如程序有意或无意的想要将{A:PPS:si,ij}标签的数据传递给不受控制的实体(其机密性和完整性标签为{}),因为:

根据公式(5),它不满足安全信息流的要求,故执行DIFC规则检查的进程会拒绝该操作。

分散信息流控制的这种安全检查不同于传统的访问控制,它是以程序中的执行流(通常为进程或线程)为粒度,以数据、文件、通信接口等抽象为策略执行点。执行流在对数据、文件这些抽象执行每一步操作前,可信进程都要将执行流的标签和数据的标签进行比对检查,只有符合式(5)的数据流动才是安全的,操作才被允许,否则会返回失败,终止执行。具体实现时可由少量可信进程执行该信息流规则的检查和执行,控制其余大量进程的数据操作。

如图1所示,无论是进程p与进程q之间的通信,还是进程对某个文件的读写访问,亦或是进程与外部不可控网络的通信都要进行DIFC规则的检查,即数据移动的每一步都要执行策略检查,这也是信息流控制比传统访问控制粒度更细、安全性更高的原因。

2)确保不同租户的数据隔离与共享

SaaS应用中租户数据的隔离主要是在程序处理过程中不会将A的数据泄露或者传递给B。由式(1)、式(2)、式(3)可知,标签指出了数据的所有者是谁,而执行流的标签式(4)指出了该执行流当前代表的租户是谁。假如现有代表A公司的执行流(标签如式(4))由于某种原因想要将A公司的某数据(标签如式(1))传递给B公司的文件,由于B的文件标签(如式(2))指出其所有者是B,它只能接受B的数据。因为有

根据公式(5),A的数据无法直接传给B。在这里,虽然PPS应用能读取A和B的数据并执行运算,但其并非数据所有者,因此其没有修改、移除标签的能力,也没有改变标签中机密性级别和完整性级别的能力。

因此,当代表A的执行流想要将A的数据传给B时,执行DIFC检查的可信进程会发现这一行为是不安全的信息流,因此会终止该操作,从而保证了A、B的数据在程序处理中不会产生混淆、非法访问和传递。

3)防止SaaS应用本身泄露数据

同样是由于标签的限制,假如某个执行流想要将A公司的数据(标签如式(1))传递给外部不可控实体(其机密性标签和完整性标签都为{}),根据式(5)的信息流规则,因为

因此可信进程会终止该操作。也就是说,SaaS应用虽然能操作用户数据但却无法将用户数据泄露或传递给不可控实体,确保用户数据不会从SaaS应用中泄露。

图2 是该SaaS应用方案的结构图,带箭头的线表示DIFC既可以保证每个租户内部数据的安全使用和隔离(标记为{A:PPS}的数据流),同时还支持不同租户数据间的安全共享(如B租户和C租户之间的数据共享,标记为{B:PPS;C:PPS}的数据流)。

从上述对SaaS应用方案的描述可知,DIFC在解决SaaS单实例多用户的数据隔离保护上确实有细粒度、便于实现共享的优势。同时,由于云应用只能读取和操作数据,却不能将数据传给不可信实体,可解决用户将自己数据上传到云端后就失去对其数据的控制权这一问题。相比于传统应用程序而言,DIFC机制确实缓解了由于程序漏洞等原因造成的数据泄露、越权访问等问题。

不同于采用虚拟机或容器将不同租户的数据进行彻底隔离的方式,因为有了运行时动态的策略检查,DIFC的实现方式允许A和B的数据共享计算和存储资源,只要执行DIFC安全检查的可信进程不出现bug,就能保证A和B数据在执行过程中的隔离保护,同时阻止非法的数据访问和传递操作。而执行DIFC检查的可信进程较少并且较集中,易于检查和控制。

然而DIFC机制,特别是在编程语言级实现的DIFC机制还是有很多局限性。比如它假设应用程序的运行环境是安全可信的,编程语言级DIFC的安全性依赖于DIFC编译器的正确性,操作系统级的DIFC则假设内核是安全可信的,并且依赖于执行DIFC规则的系统调用的正确性。不过随着对DIFC在云安全方面研究的深入,这些问题都是可以在一定程度上解决的。

3 结束语

本文分析了分散式信息流控制模型(DIFC)用于解决云计算环境中动态数据安全保护的问题,DIFC模型中分散式授权、细粒度的数据访问控制等特征都很适合于云计算的分布式环境。通过分散式标签控制,实现了不同主体的数据隔离的同时,还方便了数据的共享,在这一点上要优于虚拟机、容器和沙箱的方法。然而,不管是在编程语言级还是操作系统级实现DIFC,还都存在很多局限性,而且要实现DIFC在云网络中的应用,如何更好地解决跨系统的信息流追踪问题是至关重要的。

本文介绍了当前围绕DIFC在云安全方面的研究现状,并从研究现状中分析出DIFC在保护云中动态数据安全方面有广阔的应用前景。基于DIFC模型设计了一个SaaS应用方案,该方案可以保护SaaS应用中的动态数据安全,防止数据泄露。

[1]Andrew C.Myers and Barbara Liskov.A Decentralized Model for Information Flow Control[C].In Proc.17th ACM Symp,on Operating System Principles(SOSP),129-142,Saint-Malo,France,1997.

[2]Andrew C.Myers.JFlow:Practical Mostly-Static Information Flow Control[C].In Proceedings of the 26th ACM Symposium on Principles of Programming Languages (POPL,San Antonio,TX,Jan.).228-241.

[3]Andrew C.Myers and Barbara Liskov.Protecting Privacy Using the Decentralized Label Model[C].ACM Trans Softw Eng Methodol 9(4),410-442(2000).

[4]Myers A.C.,Zheng,L.,Zdancewic,S.,Chong,S.,Nystrom,N.:Jif:Java Information flow[R].Software release,at http:// www.cs.cornell.edu/jif,July 2001.

[5]Lantian Zheng,Andrew C.Myers.Dynamic security labels and static information flow control[R].Int.J.Inf.Secur.(2007)6: 67-84.

[6]Doaa Hassan,Sherif El-Kassas,Ibrahim Ziedan.Developing a security Typed Java Servlet.Information Assurance and Security[C].2008.ISIAS’08.Fourth International Conference on.

[7]Liu Tingting,Zhao Yong.A Decentralize Information Flow Model for SaaS Application Security[C].Intelligent System Design and Engineering Applications(ISDEA),2013 Third International Conference on.

[8]刘婷婷.面向云计算的数据安全保护关键技术研究[D].郑州:中国人民解放军信息工程大学.2013.

[9]叶志伟,叶建伟.DIFC-AC:一种云计算中信息隐私性保护方法[J].计算机应用与软件,2013,30(3):30-34.

[10]Jatinder Singh,Thomas F.J.-M.Pasquier,Jean Bacon,David Eyers.Integrating Messaging Middleware and Information Flow Control[C].IEEE International Conference on Cloud Engineering,2015.

[11]Alwaleed Alghothami and Florian Kammuller.Network Information Flow Control:Proof of Concept[C].IEEE International Conference on Systems,Man,and Cybernetics,2013.

[12]Bassam Sayed and Issa Traore.ProtectionagainstWeb2.0 Client-sideWebAttacks using Information Flow Control[C].28th International Conference on Advanced Information Networking and Applications Workshops,2014.

[13]Bassam Sayed,Issa Traore,and Amany Abdelhalim.Detection and Mitigation Of Malicious JavaScript Using Information Flow Control[C].Twelfth Annual Conference on Privacy,Security and Trust(PST),2014.

[14]David Schultz, Barbara Liskov. IFDB: Decentralized Information Flow Control for Database[C]. In 8th ACM European Conference on Computer Systems.ACM,2013,pp.43-56.

[15]Dorothy E.Denning.A lattice model of secure information flow[C].Comm.of the ACM,19(5):236-243,1976.

Dynamic Data Security Schema Based on DIFC in SaaS

Zeng Ping1,2*Sun Wei1,2**Hu R onglei1*
1.Beijing Electronic Science and Technology Institute,Beijing 100070,China 2.College of Communication Engineering,Xi’dian University,Xi’an Shaanxi710071,China

Cloud computing utilizes multi-tenant technology to improve the resource share rate.However,multi-tenant technology brings grave challenges to the protection of user data,the isolation of data,access control and so on,especially the protection of dynamic data coped on the cloud.There are a bunch of researches on the subject that using decentralized information flow control(DIFC)to reach the protection of dynamic data on the cloud.Those achievements show the widespread prospect of the use of DIFC in cloud computing distributed environment.This paper introduces current achievements on the use of DIFC in cloud computing from home to abroad,then designs an application scheme about using DIFC to protect cloud data security and argues the security of DIFC mode in cloud environment.The result shows that the scheme can satisfy the confidentiality and integrity.

SaaS multi-tenant;dynamic data security;decentralized information flow control(DIFC)

TP393.08

A

1672-464X(2016)2-01-06

(责任编辑:鞠 磊)

受北京电子科技学院中央高校基本科研业务费项目“Saas云中多租户动态数据安全技术研究”资助(项目编号328201502)

** 作者简介:曾萍,女,教授,研究方向是无线通信与网络安全;孙伟,男,在读硕士,研究方向通信安全。

猜你喜欢
分散式信息流租户
贵州农村生活污水分散式处理的问题及优化策略研究
日本租房歧视跟种族有关
基于约束逻辑的网络非集中式信息流整合系统设计
多租户网站实现方法的研究和设计
多租户SaaS应用系统关键技术分析
基于信息流的作战体系网络效能仿真与优化
我国各地分散式风电发展规划概览
战区联合作战指挥信息流评价模型
一种基于安全标记的多租户访问控制方法
硬式内镜器械清洗消毒集中式与分散式的管理效果比较