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