佘平 李寧波 謝彬 李程
摘要:針對當前分布式存儲系統(tǒng),數(shù)據(jù)塊的校驗機制單一,功能比較簡單、脆弱,在復雜的分布式環(huán)境下,數(shù)據(jù)塊校驗機制存在未知漏洞后門[1]等安全隱患。本文基于擬態(tài)防御[2]系統(tǒng),扼要分析了分布式存儲系統(tǒng)中數(shù)據(jù)一致性和數(shù)據(jù)校驗問題, 提出了一種動態(tài)高效的擬態(tài)存儲校驗模型,深度剖析了校驗模型中動態(tài)分發(fā)、數(shù)據(jù)校驗異構(gòu)執(zhí)行體,以及校驗判決等關鍵技術(shù)。面向擬態(tài)防御系統(tǒng)存儲校驗模型具備多靈活、高安全、高擴展的體系結(jié)構(gòu),為分布式環(huán)境下數(shù)據(jù)高效、安全校驗提供了全新的思路和方案。
關鍵詞:分布式存儲系統(tǒng);擬態(tài)防御;未知漏洞后門;數(shù)據(jù)一致性;動態(tài)分發(fā);異構(gòu)執(zhí)行體;校驗判決;安全校驗
中圖分類號:TP393.08 文獻標識碼:A 文章編號:1007-9416(2018)09-0054-03
1 背景
隨著云技術(shù)與云存儲的技術(shù)不斷演進,存儲系統(tǒng)的形式由最初的直連存儲設備,發(fā)展為依附網(wǎng)絡連接的企業(yè)級網(wǎng)絡存儲,到今天軟件定義下的分布式存儲。存儲規(guī)模越來越大,存儲形式靈活多樣,存儲可靠性越來越高。隨著大數(shù)據(jù)技術(shù)的成熟,分布式存儲在數(shù)據(jù)領域應用更加廣泛,傳統(tǒng)的集中式存儲越來越不適應大數(shù)據(jù)量下的存儲擴展需求,軟件定義分布式存儲則滿足了海量數(shù)據(jù)存儲需求,同時具備高擴展性,是現(xiàn)在存儲技術(shù)的發(fā)展趨勢。軟件定義存儲系統(tǒng)可以將分布在不同機器上的各類存儲介質(zhì)通過萬兆網(wǎng)絡進行互聯(lián),提供企業(yè)級的存儲應用,通過定義存儲池、存儲卷靈活地滿足應用程序各類存儲需求,同時實現(xiàn)很好的數(shù)據(jù)隔離。在云存儲系統(tǒng)中,數(shù)據(jù)是主要的核心要素,其中包括大量的用戶隱私敏感性數(shù)據(jù),因而,數(shù)據(jù)安全[3]就變得云存儲系統(tǒng)發(fā)展的一個關鍵因素。
數(shù)據(jù)完整性校驗是云存儲的重要安全技術(shù)之一,用于用戶驗證其存儲于云端的數(shù)據(jù)是否保持完整性,是否被惡意用戶和服務器修改或刪除等。最近的騰訊云硬盤故障,導致云上客戶的數(shù)據(jù)全部丟失,其中沒有進行數(shù)據(jù)完整性檢查是事故的主要原因之一,給云上用戶造成了不可估量的損失。云服務提供商通常為了減少存儲開銷而對用戶數(shù)據(jù)進行處理,這可能會影響用戶數(shù)據(jù)的完整性和可恢復性[4]。因此,用戶需要驗證其云端數(shù)據(jù)的完整性,檢測數(shù)據(jù)是否被服務提供商或惡意用戶篡改過等。
目前,云存儲中完整性校驗方案[5]根據(jù)使用技術(shù)不同,主要有三類:一類是基于哈希和對稱秘鑰的技術(shù),使用crc、md5等算法對數(shù)據(jù)塊進行唯一標識,實現(xiàn)高效的塊校驗;一類是基于RSA公鑰技術(shù),需要外部服務支持,技術(shù)架構(gòu)也相對復雜些;最后一類是基于雙線性映射的短簽名技術(shù),如基于BLS短簽名方案等。而這三類中第一類是所有方法的基礎,本文主要討論基于哈希算法結(jié)合擬態(tài)思想對數(shù)據(jù)保證一致性和完整性的技術(shù)研究。
2 研究現(xiàn)狀
Google文件系統(tǒng)(Google File System:GFS)[6]是一個專門存儲海量網(wǎng)頁內(nèi)容的大型分布式存儲系統(tǒng)。GFS中數(shù)據(jù)的完整性是通過使用checksum來檢測的。在GFS中允許存在有歧義的副本,所以每個chunk服務器需要獨立維護checksum來校驗自己副本的完整性。GFS對每個基本讀寫塊生成一個長32位的checksum,與用戶數(shù)據(jù)分開存儲。當某個塊被訪問時,chunk服務器就會去校驗該塊的checksum。如果正確,就把數(shù)據(jù)返回給請求的客戶端或者其他chunk服務器。如果發(fā)現(xiàn)checksum不正確,則返回一個錯誤信息給請求服務者,讓它從其他的副本去獲取數(shù)據(jù)。同時,chunk服務器向主服務器Master報告錯誤。Master服務器查詢元數(shù)據(jù),從其它副本中復制出數(shù)據(jù)對錯誤的副本進行恢復。
Dynamo[7]是亞馬遜公司開發(fā)的云存儲系統(tǒng),主要存儲電子商務網(wǎng)站相關數(shù)據(jù)。在Dynamo平臺中,Dynamo采用投票機制保證數(shù)據(jù)一致性。假設系統(tǒng)中每份數(shù)據(jù)都存儲有n份,要成功地讀取該數(shù)據(jù)要求至少有r份副本成功讀取,而要成功地更新該數(shù)據(jù)則要求至少w份副本成功寫入。該數(shù)據(jù)一致性協(xié)議要求上面的r、w必須滿足式子r+w>n。在數(shù)據(jù)版本控制方面,則采用了向量時鐘(vectorclock)技術(shù)。一個向量時鐘由(節(jié)點nodes,計數(shù)器counter)表示,通過計數(shù)器的值判斷實際發(fā)生的次序。對于發(fā)現(xiàn)的版本沖突問題,交由客戶端自行解決。
Ceph[8]是一個符合POSIX、開源的分布式存儲系統(tǒng),Ceph通過多副本或糾刪碼方式提供存儲數(shù)據(jù)的高可用,多副本下數(shù)據(jù)以歸置組(PG)方式進行副本的冗余。Ceph通過底層的對象存儲實現(xiàn)了上層的塊、文件、和對象的統(tǒng)一存儲。在Ceph中,數(shù)據(jù)節(jié)點(OSD)是通過同步(peering)操作實現(xiàn)數(shù)據(jù)的強一致性。具體的過程如下:在每一次數(shù)據(jù)操作時,OSD會將操作的過程記錄到一致性日志(PGlog)中去,同時會賦值一個唯一id來標識當前的操作版本,id是唯一并且一直遞增。在數(shù)據(jù)節(jié)點中有個主節(jié)點,它會維護一個權(quán)威版本,其他同PG的OSD節(jié)點在和主OSD節(jié)點同步時會檢查版本的一致性,如果不一致,會記錄當前的不一致,在定時機制下進行恢復。Ceph不僅保證各數(shù)據(jù)節(jié)點間數(shù)據(jù)同步操作,同時還保證數(shù)據(jù)本身的一致性,Ceph存儲系統(tǒng)會定時進行清洗(Scrub)機制,數(shù)據(jù)節(jié)點在數(shù)據(jù)存儲的時候會記錄數(shù)據(jù)塊的crc值,清洗機制發(fā)生時,Ceph會檢查各個副本數(shù)據(jù)的crc值是否一致,在不一致的情況進行數(shù)據(jù)恢復。清洗機制具備淺清洗和深清洗模式,深清洗下crc值將會重新計算,確保crc是當前最新數(shù)據(jù)的crc值,防止因為硬件故障導致的數(shù)據(jù)丟失或篡改。Ceph的同步機制和清洗機制保證的數(shù)據(jù)的高一致性和高可用性。
3 擬態(tài)防御思想
動態(tài)異構(gòu)冗余(Dynamic Heterogeneous Redundancy,DHR)[9]是擬態(tài)防御的一種思想,它通過采用功能等價的軟件異構(gòu)實現(xiàn),采取諸如動態(tài)化的策略調(diào)度,或是軟件元素可重構(gòu)、可重組、可重建、可重定義、虛擬化等廣義動態(tài)化技術(shù),將原本單一的功能模塊變得不確定性、多樣性,解決不確定性安全威脅。
DHR結(jié)構(gòu)如圖1所示。
在該架構(gòu)中,DHR主要由輸入代理、異構(gòu)構(gòu)件集合、動態(tài)選擇算法、執(zhí)行體集和表決器組成。其中,異構(gòu)構(gòu)件集合和動態(tài)選擇算法組成執(zhí)行集的多維動態(tài)重構(gòu)支撐環(huán)節(jié)。由標準化的軟硬件模塊可以組合出m種功能等價的異構(gòu)構(gòu)件體集合E,按動態(tài)選擇算法動態(tài)的從集合E中選出n個構(gòu)件體作為一個執(zhí)行體集(A1,A2,...,An),系統(tǒng)輸入代理將輸入轉(zhuǎn)發(fā)給當前服務集中各執(zhí)行體,這些執(zhí)行體的輸出矢量提交給表決器進行表決,得到系統(tǒng)輸出。
輸入代理、執(zhí)行體集和表決器組成IPO模型:
如圖2所示,P由復雜的軟硬件處理系統(tǒng)或者子系統(tǒng)構(gòu)建,可表達為:I(P1,P2,...,Pn)O。其中,連接輸入I的左括號被賦予輸入指配功能,連接輸出O的右括號被賦予多模表決和代理輸出功能,括號內(nèi)的Pn是與P功能等價的異構(gòu)執(zhí)行體。左右括號在邏輯上或空間上一般是獨立的,且功能上聯(lián)動。括號內(nèi)為系統(tǒng)保護范圍,簡稱擬態(tài)界,通常情況是一個存在未知漏洞、后門或病毒、木馬等軟硬件代碼的“有毒帶菌”異構(gòu)執(zhí)行環(huán)境。
4 基于擬態(tài)主動防御的分布式數(shù)據(jù)校驗機制
分布式存儲系統(tǒng)實現(xiàn)數(shù)據(jù)副本的冗余存儲,將文件按塊進行分區(qū)存儲,每個分塊數(shù)據(jù)進行多份冗余備份,對外提供高可靠的數(shù)據(jù)存儲。在此基礎上,通過對現(xiàn)有分布式存儲系統(tǒng)的數(shù)據(jù)一致性模塊進行改進,添加擬態(tài)裁決研判校驗模塊,可以實時監(jiān)控副本數(shù)據(jù)的異常情況,在用戶數(shù)據(jù)被惡意篡改的情況通過多模校驗裁決識別數(shù)據(jù)異常,實現(xiàn)數(shù)據(jù)防篡改的高安全性。
在擬態(tài)分布式存儲系統(tǒng)中,數(shù)據(jù)在分塊寫入時,改變原先的單一的固定的塊校驗邏輯,擬態(tài)校驗服務將請求分發(fā)到多個校驗執(zhí)行體進行校驗,并將動態(tài)的校驗結(jié)果附加到數(shù)據(jù)塊中。這樣改造過的存儲系統(tǒng)中的數(shù)據(jù)塊具備動態(tài)異構(gòu)特性。多個校驗執(zhí)行算法,在時域上進行隨機執(zhí)行,可以提供數(shù)據(jù)被暴力破解的復雜度,具備很高的數(shù)據(jù)安全性。
當數(shù)據(jù)塊在數(shù)據(jù)讀取時,通過存儲在數(shù)據(jù)塊中的擬態(tài)校驗結(jié)果,獲取校驗方式,并選擇對應的數(shù)據(jù)校驗異構(gòu)執(zhí)行體動態(tài)校驗,在數(shù)據(jù)被惡意篡改時給出安全提示,根據(jù)用戶策略執(zhí)行清洗或者恢復流程。整個服務如圖3所示。
寫接口的具體實現(xiàn)如圖4所示,隨機化因子會和某校驗算法的校驗塊進行編碼隱藏,以便于解碼時動態(tài)校驗。擬態(tài)校驗結(jié)果采用Base64編碼進行隱藏并作為整體擬態(tài)校驗結(jié)果輸出。
隱藏的擬態(tài)校驗結(jié)果中包含動態(tài)隨機因子,它對應于某一個擬態(tài)校驗中的校驗算法執(zhí)行體,在數(shù)據(jù)塊讀操作時使用該校驗算法進行驗證。如圖5所示,在數(shù)據(jù)塊讀取時,從數(shù)據(jù)塊獲取擬態(tài)校驗結(jié)果,經(jīng)過Base64解碼后,根據(jù)隨機因子和數(shù)據(jù)塊重新計算校驗結(jié)果,并和之前存儲的校驗結(jié)果比對,經(jīng)過比對判斷出原始數(shù)據(jù)塊信息是不是經(jīng)過外部篡改或破壞。
考慮到存儲系統(tǒng)性能和擬態(tài)代價,擬態(tài)存儲系統(tǒng)沒有采用多模判決,原因主要是多模判決需要數(shù)據(jù)冗余存儲,需要等待多個結(jié)果,存儲數(shù)據(jù)延遲風險,擬態(tài)實現(xiàn)給存儲系統(tǒng)帶來的代價比較大。
在傳統(tǒng)分布式存儲上加入擬態(tài)校驗功能具有如下優(yōu)點:
(1)系統(tǒng)結(jié)合擬態(tài)安全理念,通過增加關鍵路徑上的異構(gòu)等價的執(zhí)行體,增加了校驗系統(tǒng)的動態(tài)和隨機性,實現(xiàn)數(shù)據(jù)校驗機制的高安全性和高可靠性。
(2)優(yōu)化了校驗執(zhí)行體判決機制,在校驗算法上實現(xiàn)時域上的不同調(diào)度,即提高了數(shù)據(jù)被篡改的復雜度,同時具備在一個算法在內(nèi)部破壞時,存儲系統(tǒng)仍然具備其他動態(tài)算法,實現(xiàn)內(nèi)生數(shù)據(jù)安全。
5 測試與評估
擬態(tài)校驗功能采用通用加密庫cryptopp標準庫執(zhí)行加密,目前該庫免費使用,實現(xiàn)了大部分標準的塊校驗,加密和壓縮算法,擬態(tài)存儲系統(tǒng)中的塊校驗執(zhí)行體采用該庫進行功能實現(xiàn),通過實現(xiàn)Crc32、Crc32C、alder32、Md5等多個校驗機制并隨機調(diào)度構(gòu)建擬態(tài)校驗模塊。存儲系統(tǒng)采用開源分布式存儲系統(tǒng)Ceph實現(xiàn),由擬態(tài)校驗模塊的校驗邏輯替換Ceph系統(tǒng)中的SloppyCRCMap中固定的crc校驗邏輯。
下面是對擬態(tài)存儲系統(tǒng)進行測試,將測試文件由存儲系統(tǒng)讀取到內(nèi)存,在內(nèi)存通過校驗方法調(diào)用多次,采用平均值作為結(jié)果參照,系統(tǒng)環(huán)境如表1所示。
在固定的校驗算法和擬態(tài)存儲系統(tǒng)校驗下的數(shù)據(jù)處理吞吐量的測試結(jié)果如圖6所示:
由上面測試結(jié)果,可以看出:
校驗庫的固定校驗算法的吞吐量范圍在271MB/s-2252MB/s之間,擬態(tài)接口的吞吐量為389.56MB/s,處于中間水平,由于隨機選擇了校驗算法進行擬態(tài)變換,整體性能處于所有固定校驗算法的中間,存在擬態(tài)代價,但是因為校驗算法的隨機性,生成的校驗核不固定,同時具備多種校驗算法,提高了系統(tǒng)的安全性和可靠性。
6 總結(jié)與展望
擬態(tài)防御是一種主動防御思想,它要求在功能等價的條件下,以提供目標環(huán)境的動態(tài)性、非確定性、異構(gòu)性為目的,從而增加未知有利用的漏洞和后門的攻擊難度和成本[10]。本文分析了云存儲的數(shù)據(jù)完整性技術(shù),將擬態(tài)防御思想和數(shù)據(jù)完整性結(jié)合起來,提出了一種安全校驗的全新思路,并集成分布式存儲系統(tǒng)進行原型驗證,用于用戶驗證其存儲于云端的數(shù)據(jù)是否保持完整性,是否被惡意用戶和服務器修改或刪除等,實現(xiàn)主動防御。同時對擬態(tài)代價做了分析,采用擬態(tài)防御的思想,要求邏輯功能存在多個功能執(zhí)行體,這個會給防御系統(tǒng)帶來一定的擬態(tài)代價和挑戰(zhàn)[11],不過這個代價可以采用其他優(yōu)化方法來減輕,比如擬態(tài)代價可以結(jié)合硬件加速實現(xiàn)擬態(tài)模塊的整體性能提升等,這個也是擬態(tài)防御下一步重點研究的內(nèi)容。
參考文獻
[1]鄔江興.擬態(tài)計算與擬態(tài)安全防御的原意和愿景[J].電信科學,2014,30(7):1-7.
[2]鄔江興,張帆,羅興國.擬態(tài)計算與擬態(tài)安全防御[J].中國計算機學會通訊,2015,11(1):8-14.
[3]肖亮,李強達,劉金亮.云存儲安全技術(shù)研究進展綜述[J].數(shù)據(jù)采集與處理,2016,31(3):464-472.
[4]Ateniese G, Burns R, Curtmola R. Provable data possession at untrusted stores. In: Ning P, Vimercati SDC, Syverson PF, eds. Proc.of the 2007 ACM Conf. on Computer and Communications Security, CCS 2007. Alexandria: ACM Press,2007.598-609.
[5]陳春霖.云計算中數(shù)據(jù)存儲的完整性校驗模型研究[D].東華大學,2013.
[6]Ghemawat S, Gobioff H, Leung S.T. The Google File System. Proc of 19th ACM Symposium on Operating Systems Principles. New York:ACM,2003:20-43.
[7]DeCandia G,Hastorun D,Jampani M,Kakulapati G,Lakshman A,Pilchin A,Sivasubramanian S,Vosshnll P,Vogels W.Dynamo:Amazons highly available key-value store.In:Proc.of the 21st ACM Symp.on Operating Systems Principles.New York:ACM Press,2007.205-220.
[8]Sage A Weil,Scott A Brandt,Ethan L Miller,et al.Ceph: A Scalable, High-Performance Distributed File System[C].Proceedings of the 7th symposium on Operating systems design and implementation,2006.
[9]鄔江興.網(wǎng)絡空間擬態(tài)防御研究[J].信息安全學報,2016,1(4):1-10.
[10]鄔江興.網(wǎng)絡空間擬態(tài)安全防御[J].保密科學技術(shù),2014,10(1):4-9.
[11]羅興國,仝青,張錚,鄔江興.擬態(tài)防御技術(shù)[J].中國工程科學,2016,18(6):69-73.