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