曾 萍孫 偉胡榮磊
基于DIFC的SaaS環(huán)境中動態(tài)數(shù)據(jù)保護(hù)應(yīng)用方案*
曾 萍1,2**孫 偉1,2胡榮磊1
1.北京電子科技學(xué)院,北京 10070 2.西安電子科技大學(xué)通信工程學(xué)院,西安 710071
云計算利用多租戶技術(shù)從各個層面提高了資源共享率,但多租戶技術(shù)也給用戶數(shù)據(jù)保護(hù)、數(shù)據(jù)間的隔離、訪問控制等問題帶來嚴(yán)峻挑戰(zhàn),尤其是對云平臺上動態(tài)處理的數(shù)據(jù)的保護(hù)。近年來國外對分散式信息流控制(DIFC)在解決云中動態(tài)數(shù)據(jù)保護(hù)問題上有較多研究,而且DIFC在云計算分布式環(huán)境中有較廣的應(yīng)用前景。本文介紹了目前國內(nèi)外將DIFC用于云數(shù)據(jù)保護(hù)的研究成果,在此基礎(chǔ)上設(shè)計了基于DIFC模型在SaaS環(huán)境中的應(yīng)用方案,并對方案的安全性進(jìn)行了分析,分析表明該方案滿足保密性和完整性。
SaaS多租戶;動態(tài)數(shù)據(jù)安全;分散信息流控制
云計算作為一種全新的服務(wù)模式使其面臨著更多的數(shù)據(jù)泄露風(fēng)險。在SaaS云中,用戶租用SaaS軟件服務(wù),上傳自己的隱私數(shù)據(jù),云服務(wù)商就獲得了用戶數(shù)據(jù)的優(yōu)先訪問權(quán)。這其中不僅要防止來自外部黑客竊取數(shù)據(jù)的行為,還要防止云服務(wù)商內(nèi)部竊取、泄露用戶隱私。同時,由于云平臺虛擬化、多租戶的特征,云服務(wù)商還需要確保共享同一物理資源的不同用戶間的隱私隔離。當(dāng)同一用戶同時租用多個SaaS應(yīng)用服務(wù)時,還要考慮該用戶跨應(yīng)用間的數(shù)據(jù)共享。
針對云計算分布式、不可信的環(huán)境,本文在分析現(xiàn)有的SaaS層數(shù)據(jù)保護(hù)技術(shù)的基礎(chǔ)上,提出將分散式信息流控制(Decentralized Information Flow Control,DIFC)用于SaaS層的用戶數(shù)據(jù)保護(hù)與隔離,設(shè)計了SaaS多租戶的典型安全應(yīng)用場景,提出了采用DIFC模型的保護(hù)方案,并對其做了安全性分析。
Andrew C.Myers等人于1997年在文獻(xiàn)[1]中提出了分散式信息流控制(Decentralized Information Flow Control,DIFC)模型,DIFC模型允許用戶控制他們自己的信息流,并允許用戶顯式地解密他們自己的數(shù)據(jù)。模型用主體(Principals)代表系統(tǒng)中用戶、組、角色等授權(quán)實體,用標(biāo)簽(Labels)描述程序中允許的信息流,并有安全策略(policy)、標(biāo)簽轉(zhuǎn)移標(biāo)簽計算、解密等規(guī)則對系統(tǒng)中被標(biāo)記的數(shù)據(jù)流進(jìn)行控制。目前關(guān)于DIFC模型的研究主要集中在將DIFC模型應(yīng)用于云服務(wù)的數(shù)據(jù)安全保護(hù),以及多租戶數(shù)據(jù)隔離上。
Myers等人實現(xiàn)了第一個編程語言級的系統(tǒng)Jif[1~4](Java information flow),它對Java語言的類型系統(tǒng)進(jìn)行了擴(kuò)展和改造,使之支持對程序中的變量、類、對象、方法等添加標(biāo)簽,在靜態(tài)編譯時對程序中的顯式和隱式信息流進(jìn)行檢查,只有信息流檢查安全的代碼才能編譯通過,從而確保生成的可執(zhí)行代碼是信息流安全的代碼。文獻(xiàn)[5]對Jif語言做了擴(kuò)展,從而使DIFC標(biāo)簽機(jī)制的使用更靈活。文獻(xiàn)[6]提出借助Jif編寫安全型web應(yīng)用程序,防止跨站腳本攻擊和利用web應(yīng)用程序漏洞竊取信息的行為。文獻(xiàn)[7]用數(shù)理邏輯的方法從理論上證明了DIFC模型可用于SaaS應(yīng)用程序的設(shè)計,來確保同一應(yīng)用的不同用戶之間無法越權(quán)查看彼此的文件。
文獻(xiàn)[8]從應(yīng)用程序和操作系統(tǒng)兩個層面上應(yīng)用DIFC模型進(jìn)行設(shè)計,保護(hù)用戶數(shù)據(jù)在云系統(tǒng)處理過程中的安全性。文獻(xiàn)[9]提出用DIFC模型設(shè)計安全的云操作系統(tǒng),其采用向Linux內(nèi)核添加模塊的方式,對上層應(yīng)用程序發(fā)出的系統(tǒng)調(diào)用進(jìn)行攔截,并對其進(jìn)行信息流檢查。
文獻(xiàn)[10]分析了可以通過支持信息流控制的中間件來實現(xiàn)跨應(yīng)用、跨容器、跨虛擬機(jī)甚至跨主機(jī)的信息流控制,這為將信息流控制應(yīng)用于云計算分布式網(wǎng)絡(luò)打下了基礎(chǔ)。文獻(xiàn)[11]通過對數(shù)據(jù)包進(jìn)行標(biāo)記,控制其在網(wǎng)絡(luò)中的流動方式,從概念上證明了實現(xiàn)網(wǎng)絡(luò)級分散式信息流控制的可能性。文獻(xiàn)[12][13]設(shè)計了應(yīng)用于web站點中的信息流控制框架,追蹤敏感信息流,以防止跨站腳本攻擊(XSS)、跨站請求偽造(CSRF)等。文獻(xiàn)[14]將分散式信息流控制用于關(guān)系型數(shù)據(jù)庫中,用于管理關(guān)系型數(shù)據(jù)庫中的信息流。
DIFC的核心思想在于權(quán)限的分散式管理,而不需要一個安全可信的實體執(zhí)行集中授權(quán)和解密,這也是分布式環(huán)境,尤其是主體間互不信任的分布式環(huán)境所需要的權(quán)限管理方式,而云計算環(huán)境正是這樣一種環(huán)境。
本文針對一個SaaS應(yīng)用場景來描述基于DIFC的數(shù)據(jù)保護(hù)應(yīng)用方案。假設(shè)在某云平臺部署了一款統(tǒng)計手機(jī)套餐訂購情況的SaaS應(yīng)用程序,名為PPS(Phone Package Statistics)。該應(yīng)用現(xiàn)租用給A、B、C三公司用以統(tǒng)計其客戶在某一季度的手機(jī)套餐消費情況,比如各類套餐訂購人數(shù)、人群的年齡分布等信息。該SaaS應(yīng)用以單實例多租戶的模式同時向三家公司出售服務(wù),各公司只需將其本季度套餐訂購數(shù)據(jù)上傳到PPS,它就可以為運(yùn)營商返回統(tǒng)計結(jié)果。
單從SaaS應(yīng)用程序本身來說,需要解決以下幾點安全性問題:
1)確??蛻魯?shù)據(jù)在程序處理過程中不會泄露;
2)確保三家數(shù)據(jù)良好隔離的同時還要便于信息的共享;
3)要防止SaaS應(yīng)用把用戶數(shù)據(jù)泄露給服務(wù)商。
根據(jù)DIFC的標(biāo)簽?zāi)P?,假設(shè)A公司自己的客戶數(shù)據(jù)加有標(biāo)簽:
其中,A表示該標(biāo)簽的所有者是A,加有該標(biāo)簽的數(shù)據(jù)表明A是數(shù)據(jù)的所有者;PPS代表的是SaaS應(yīng)用程序(比如這里的手機(jī)套餐統(tǒng)計程序PPS),它是該標(biāo)簽所允許的訪問者,即只允許PPS訪問加有該標(biāo)簽的數(shù)據(jù);si和ij分別代表該標(biāo)簽的機(jī)密性等級和完整性等級,只有符合BLP和Biba模型安全要求的信息流才被允許影響該標(biāo)簽的數(shù)據(jù),si和ij分別滿足si∈ST={sl|1≤sl≤m},ij∈IT={ij|1≤ij≤n},這里假設(shè)1~m是A公司采用的機(jī)密性等級范圍,1級為最高密級,m為最低密級,從m級到1級構(gòu)成格關(guān)系[15]。si項若為空,表明沒有機(jī)密性要求,是可公開數(shù)據(jù),不可信實體的機(jī)密性標(biāo)簽為空。1~n是其采用的完整性級別范圍,假設(shè)1級為最高完整級,n為最低完整級,從n級到1級同樣構(gòu)成格關(guān)系,ij項若為空,表明沒有完整性要求,該數(shù)據(jù)是開放數(shù)據(jù),不可信實體的完整性標(biāo)簽為空。
如式(1)所示的標(biāo)簽實際上表達(dá)了A公司對其客戶數(shù)據(jù)的一種安全策略需求,即A公司要求其上傳到SaaS應(yīng)用的客戶數(shù)據(jù)除了A自己外,只有PPS應(yīng)用可以訪問,而PPS應(yīng)用對不同數(shù)據(jù)的訪問還必須符合機(jī)密性和完整性標(biāo)簽的要求。
同樣,假設(shè)B公司為其客戶數(shù)據(jù)加有類似標(biāo)簽:
假設(shè)C公司為其客戶數(shù)據(jù)加有標(biāo)簽:
在SaaS應(yīng)用程序中的執(zhí)行流(通常是進(jìn)程或線程)也有類似的標(biāo)簽,比如:
式(4)表明擁有該標(biāo)簽的執(zhí)行流當(dāng)前代表A公司執(zhí)行操作,其機(jī)密性標(biāo)簽為su,完整性標(biāo)簽為iv,其含義與式(1)、(2)、(3)中機(jī)密性、完整性標(biāo)簽的含義相同。
本文借助DIFC模型解決上面提出的三個SaaS應(yīng)用的安全問題。
1)數(shù)據(jù)機(jī)密性和完整性保護(hù)
分散信息流控制模型要求當(dāng)且僅當(dāng)滿足如下條件時,從A→B的信息流才是安全的:
其中S(A)、S(B)分別代表A和B的機(jī)密性標(biāo)簽,I(A)、I(B)分別代表A和B的完整性標(biāo)簽。即對于機(jī)密性而言,數(shù)據(jù)只能流向機(jī)密等級更高的實體(若A→B,則S(A)?S(B)),對于完整性而言,數(shù)據(jù)只能流向完整性等級更低的實體(若A→B,則I(B)?I(A) )。
以A公司的數(shù)據(jù)標(biāo)簽{A:PPS:si,ij}為例,加有該標(biāo)簽的數(shù)據(jù)其機(jī)密性級別為si,完整性級別為ij,當(dāng)其在SaaS應(yīng)用中處理時,根據(jù)BLP和Biba模型,只有機(jī)密性級別比si高,完整性級別比ij低的進(jìn)程才能讀取{A:PPS:si,ij}標(biāo)簽的數(shù)據(jù),只有機(jī)密性級別比si低,完整性級別比ij高的進(jìn)程才能向該標(biāo)簽的數(shù)據(jù)中寫入。假如程序有意或無意的想要將{A:PPS:si,ij}標(biāo)簽的數(shù)據(jù)傳遞給不受控制的實體(其機(jī)密性和完整性標(biāo)簽為{}),因為:
根據(jù)公式(5),它不滿足安全信息流的要求,故執(zhí)行DIFC規(guī)則檢查的進(jìn)程會拒絕該操作。
分散信息流控制的這種安全檢查不同于傳統(tǒng)的訪問控制,它是以程序中的執(zhí)行流(通常為進(jìn)程或線程)為粒度,以數(shù)據(jù)、文件、通信接口等抽象為策略執(zhí)行點。執(zhí)行流在對數(shù)據(jù)、文件這些抽象執(zhí)行每一步操作前,可信進(jìn)程都要將執(zhí)行流的標(biāo)簽和數(shù)據(jù)的標(biāo)簽進(jìn)行比對檢查,只有符合式(5)的數(shù)據(jù)流動才是安全的,操作才被允許,否則會返回失敗,終止執(zhí)行。具體實現(xiàn)時可由少量可信進(jìn)程執(zhí)行該信息流規(guī)則的檢查和執(zhí)行,控制其余大量進(jìn)程的數(shù)據(jù)操作。
如圖1所示,無論是進(jìn)程p與進(jìn)程q之間的通信,還是進(jìn)程對某個文件的讀寫訪問,亦或是進(jìn)程與外部不可控網(wǎng)絡(luò)的通信都要進(jìn)行DIFC規(guī)則的檢查,即數(shù)據(jù)移動的每一步都要執(zhí)行策略檢查,這也是信息流控制比傳統(tǒng)訪問控制粒度更細(xì)、安全性更高的原因。
2)確保不同租戶的數(shù)據(jù)隔離與共享
SaaS應(yīng)用中租戶數(shù)據(jù)的隔離主要是在程序處理過程中不會將A的數(shù)據(jù)泄露或者傳遞給B。由式(1)、式(2)、式(3)可知,標(biāo)簽指出了數(shù)據(jù)的所有者是誰,而執(zhí)行流的標(biāo)簽式(4)指出了該執(zhí)行流當(dāng)前代表的租戶是誰。假如現(xiàn)有代表A公司的執(zhí)行流(標(biāo)簽如式(4))由于某種原因想要將A公司的某數(shù)據(jù)(標(biāo)簽如式(1))傳遞給B公司的文件,由于B的文件標(biāo)簽(如式(2))指出其所有者是B,它只能接受B的數(shù)據(jù)。因為有
根據(jù)公式(5),A的數(shù)據(jù)無法直接傳給B。在這里,雖然PPS應(yīng)用能讀取A和B的數(shù)據(jù)并執(zhí)行運(yùn)算,但其并非數(shù)據(jù)所有者,因此其沒有修改、移除標(biāo)簽的能力,也沒有改變標(biāo)簽中機(jī)密性級別和完整性級別的能力。
因此,當(dāng)代表A的執(zhí)行流想要將A的數(shù)據(jù)傳給B時,執(zhí)行DIFC檢查的可信進(jìn)程會發(fā)現(xiàn)這一行為是不安全的信息流,因此會終止該操作,從而保證了A、B的數(shù)據(jù)在程序處理中不會產(chǎn)生混淆、非法訪問和傳遞。
3)防止SaaS應(yīng)用本身泄露數(shù)據(jù)
同樣是由于標(biāo)簽的限制,假如某個執(zhí)行流想要將A公司的數(shù)據(jù)(標(biāo)簽如式(1))傳遞給外部不可控實體(其機(jī)密性標(biāo)簽和完整性標(biāo)簽都為{}),根據(jù)式(5)的信息流規(guī)則,因為
因此可信進(jìn)程會終止該操作。也就是說,SaaS應(yīng)用雖然能操作用戶數(shù)據(jù)但卻無法將用戶數(shù)據(jù)泄露或傳遞給不可控實體,確保用戶數(shù)據(jù)不會從SaaS應(yīng)用中泄露。
圖2 是該SaaS應(yīng)用方案的結(jié)構(gòu)圖,帶箭頭的線表示DIFC既可以保證每個租戶內(nèi)部數(shù)據(jù)的安全使用和隔離(標(biāo)記為{A:PPS}的數(shù)據(jù)流),同時還支持不同租戶數(shù)據(jù)間的安全共享(如B租戶和C租戶之間的數(shù)據(jù)共享,標(biāo)記為{B:PPS;C:PPS}的數(shù)據(jù)流)。
從上述對SaaS應(yīng)用方案的描述可知,DIFC在解決SaaS單實例多用戶的數(shù)據(jù)隔離保護(hù)上確實有細(xì)粒度、便于實現(xiàn)共享的優(yōu)勢。同時,由于云應(yīng)用只能讀取和操作數(shù)據(jù),卻不能將數(shù)據(jù)傳給不可信實體,可解決用戶將自己數(shù)據(jù)上傳到云端后就失去對其數(shù)據(jù)的控制權(quán)這一問題。相比于傳統(tǒng)應(yīng)用程序而言,DIFC機(jī)制確實緩解了由于程序漏洞等原因造成的數(shù)據(jù)泄露、越權(quán)訪問等問題。
不同于采用虛擬機(jī)或容器將不同租戶的數(shù)據(jù)進(jìn)行徹底隔離的方式,因為有了運(yùn)行時動態(tài)的策略檢查,DIFC的實現(xiàn)方式允許A和B的數(shù)據(jù)共享計算和存儲資源,只要執(zhí)行DIFC安全檢查的可信進(jìn)程不出現(xiàn)bug,就能保證A和B數(shù)據(jù)在執(zhí)行過程中的隔離保護(hù),同時阻止非法的數(shù)據(jù)訪問和傳遞操作。而執(zhí)行DIFC檢查的可信進(jìn)程較少并且較集中,易于檢查和控制。
然而DIFC機(jī)制,特別是在編程語言級實現(xiàn)的DIFC機(jī)制還是有很多局限性。比如它假設(shè)應(yīng)用程序的運(yùn)行環(huán)境是安全可信的,編程語言級DIFC的安全性依賴于DIFC編譯器的正確性,操作系統(tǒng)級的DIFC則假設(shè)內(nèi)核是安全可信的,并且依賴于執(zhí)行DIFC規(guī)則的系統(tǒng)調(diào)用的正確性。不過隨著對DIFC在云安全方面研究的深入,這些問題都是可以在一定程度上解決的。
本文分析了分散式信息流控制模型(DIFC)用于解決云計算環(huán)境中動態(tài)數(shù)據(jù)安全保護(hù)的問題,DIFC模型中分散式授權(quán)、細(xì)粒度的數(shù)據(jù)訪問控制等特征都很適合于云計算的分布式環(huán)境。通過分散式標(biāo)簽控制,實現(xiàn)了不同主體的數(shù)據(jù)隔離的同時,還方便了數(shù)據(jù)的共享,在這一點上要優(yōu)于虛擬機(jī)、容器和沙箱的方法。然而,不管是在編程語言級還是操作系統(tǒng)級實現(xiàn)DIFC,還都存在很多局限性,而且要實現(xiàn)DIFC在云網(wǎng)絡(luò)中的應(yīng)用,如何更好地解決跨系統(tǒng)的信息流追蹤問題是至關(guān)重要的。
本文介紹了當(dāng)前圍繞DIFC在云安全方面的研究現(xiàn)狀,并從研究現(xiàn)狀中分析出DIFC在保護(hù)云中動態(tài)數(shù)據(jù)安全方面有廣闊的應(yīng)用前景。基于DIFC模型設(shè)計了一個SaaS應(yīng)用方案,該方案可以保護(hù)SaaS應(yīng)用中的動態(tài)數(shù)據(jù)安全,防止數(shù)據(jù)泄露。
[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,F(xiàn)rance,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]劉婷婷.面向云計算的數(shù)據(jù)安全保護(hù)關(guān)鍵技術(shù)研究[D].鄭州:中國人民解放軍信息工程大學(xué).2013.
[9]葉志偉,葉建偉.DIFC-AC:一種云計算中信息隱私性保護(hù)方法[J].計算機(jī)應(yīng)用與軟件,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
(責(zé)任編輯:鞠 磊)
受北京電子科技學(xué)院中央高?;究蒲袠I(yè)務(wù)費項目“Saas云中多租戶動態(tài)數(shù)據(jù)安全技術(shù)研究”資助(項目編號328201502)
** 作者簡介:曾萍,女,教授,研究方向是無線通信與網(wǎng)絡(luò)安全;孫偉,男,在讀碩士,研究方向通信安全。