李 浩,張玉萍,周其耀,馬 燕,楊燕勤
(上海師范大學 信息與機電工程學院,上海 200233)
基于HDFS的保障數據安全方法
李浩,張玉萍,周其耀,馬燕,楊燕勤
(上海師范大學 信息與機電工程學院,上海 200233)
在云計算應用中,數據安全是用戶最關心的問題.針對HDFS(hadoop distributed file system)中DataNode失效后存儲數據不能被徹底保護,從而導致數據泄露的安全問題,設計了一種兩級數據安全保障機制,在DataNode失效后,用數據覆蓋算法破壞原數據,然后再刪除數據,可以有效預防云中數據的惡意恢復、防止數據泄露,數據的安全性和可靠性得到了保障.
Hadoop;云計算;HDFS;安全;數據銷毀
近年來,隨著云計算技術的興起,越來越多的企業開始對外提供云計算服務,如阿里巴巴將服務器等中間設備部署到云端供用戶使用.還有一些企業在其內部搭建云計算平臺滿足業務需求,如百度云計算平臺用于處理線下海量數據. Hadoop是Apache基金會提供的一個開源云計算平臺[1],其核心設計是MapReduce[2]和HDFS(hadoop distributed file system),其中HDFS在整個框架中為海量數據提供了存儲.
可信云是2014年云計算關鍵詞[3]之一,可信云與云安全問題息息相關,云安全是云服務用戶最關心的問題,其中云中的數據安全是用戶關心的首要問題. 2008年,Gartner在其發布的《評估云計算安全風險》中列出了云計算的安全風險[4-5],其中數據恢復風險、數據隔離風險和數據位置風險是最重要的3種數據安全風險.安全問題也是一些中小企業禁止將其數據資料遷移到云端的重要因素之一. HDFS是當前廣泛應用的云存儲平臺,存儲在HDFS的數據是否能確保安全成為最重要的問題[6-7].
越來越多的數據將會遷移到云端,云存儲將會成為主要的存儲方式. 數據安全問題是云計算的首要問題. 從數據的完整性角度看,HDFS提供了用戶認證、文件校驗以及數據容災多副本機制的方式,數據的完整性得到保證,但是數據的安全性,尤其是當HDFS發生DataNode失效后,失效的數據塊存在巨大的安全風險.惡意用戶可以任意使用失效DataNode上數據,而HDFS無法提供安全有效的數據安全保障機制.
對于用戶而言,高風險狀態下的數據在私有集群中無嚴重的安全威脅,因為用戶擁有私有集群的絕對所有權,可以把數據物理隔絕起來,防止任何非法用戶竊取這些數據.然而,當用戶將數據和計算遷移到云中,尤其是公有云中后,用戶就失去了對存儲設備的所有權,惡意侵入用戶就有可能恢復用戶已經刪除的數據進而竊取數據.這對用戶的一些敏感、私密數據形成了重大的安全隱患.
雖然針對云中數據安全的研究很多,但是這些研究都是基于云存儲集群正常狀態下的研究,很少有針對失控狀態下節點上存儲的數據.在Apache基金會發布的Hadoop版本中,也沒有針對失效DataNode上Block塊存儲數據安全機制的設計. 本文將數據覆蓋算法應用到數據安全中,有效保障了失效DataNode狀態下的數據安全,實現了性能安全需求.
2.1HDFS心跳機制分析
在HDFS的主/從架構[8]中,DataNode通過心跳機制與負責管理集群的NameNode保持通信,DataNode周期性(默認心跳間隔是3 s)地向NameNode發送心跳包信息,若NameNode在設置的時間閾值(心跳間隔)過后還沒有檢測到DataNode發來的心跳包信息,則NameNode認為該DataNode已經失效.DataNode與NameNode間的心跳機制如圖1所示.

圖1 HDFS心跳機制Fig.1 The heartbeat mechanism of HDFS
2.2兩級數據安全保障機制設計
最常用的數據毀壞技術主要有兩種,即硬銷毀技術和軟銷毀技術[9-10].本文采用軟銷毀技術,即用程序(軟件)對文件進行覆蓋寫的方式銷毀數據.
HDFS為多副本設計機制,即文件中一個副本遭到破壞,文件中其他副本還是完好無損.只有當一個數據塊的所有副本全部丟失,文件才會損壞.導致DataNode失效的因素有很多,比如內存溢出、機架內的網絡突然變得擁擠不堪等. 由于集群內的每一臺服務器都是廉價的物理主機,所以DataNode自身的原因也有可能導致DataNode失效. DataNode失效后,由于Block塊還存儲在已經失效的DataNode節點上,這時的Block塊就面臨著被盜取的安全威脅,數據很容易被非法侵入者盜取從而造成損失.
本文針對失效狀態下DataNode上存儲的數據殘留問題,設計了一種數據安全保障機制,即基于HDFS的兩級數據安全保障機制,該機制方案設計如圖2所示.

圖2 兩級數據安全保障機制方案設計Fig.2 The design of two-level protect data security mechanism
方案執行流程如下:
(1) NameNode檢測到心跳間隔超時,則判定該DataNode已經失效;
(2) 這時DataNode節點第一級數據保護方案啟動,即修改本地數據塊的訪問權限;
(3) 若修改成功,則流程結束;若修改失敗,則開啟第二級保護方案,使用數據覆蓋算法對數據塊進行覆蓋寫;
(4) 失效DataNode節點刪除已經被破壞的數據塊;
(5) 結束.
圖2所示流程與原有HDFS處理失效DataNode存儲數據的區別是增加了b和c環節,在刪除數據之前,基于HDFS的心跳機制,先修改要刪除數據塊的訪問權限.若修改失敗則對要刪除的數據塊進行預處理(用數據覆蓋算法破壞數據),然后再正確刪除數據.即使已經刪除的數據被恢復,恢復后的數據已經被破壞掉,可以有效保證失效狀態下DataNode存儲數據的安全性.與當前HDFS數據一級刪除機制相比,本文的設計完善了HDFS的安全機制,從而避免非法用戶盜取失效DataNode上的存儲數據.
3.1仿真實驗平臺及工具
本文的仿真實驗主要是驗證在HDFS環境中覆蓋算法對數據塊覆寫的有效性和性能.
仿真實驗中采用的Hadoop版本為Hadoop-1.2.1,用VMware Workstation虛擬三臺虛擬機搭建完全分布式環境,操作系統為CentOS 6.3,每臺虛擬機1 GB內存,20 GB硬盤.三臺虛擬機的角色為:其中一臺充當NameNode(同時充當SecondaryNameNode的角色),另外兩臺充當DataNode.
數據覆蓋算法主要是由JDK中的FileReader、 BufferedReader、 FileWriter和BufferedWriter這幾個類實現的.
Reader reader = new FileReader(as[0]);
BufferedReader bufferedReader=new BufferedReader(reader);
Writer writer = new FileWriter(as[0]);
BufferedWriter bufferedWriter=new BufferedWriter(writer);
3.2結果分析
第一步,NameNode檢測到DataNode心跳間隔超時.
第二步,用Hadoop的bin命令hadoop fs -chmod 000 〈文件名〉修改數據塊的訪問權限,修改后通過web網頁查看數據塊數據,如圖3所示.

圖3 訪問修改權限后的文件Fig.3 Access the file when permissions modified
由圖3可知,修改權限后的文件顯示不被批準訪問,文件內容已經不能查看.
第三步,若未能成功修改文件權限,則調用覆蓋算法對文件進行覆蓋.文件覆寫后的結果如圖4所示.

圖4 web頁面查看被覆蓋重寫后的文件Fig.4 View the overwritten file through web page
由圖4可知,文件被覆蓋重寫后,通過web界面已經無法讀取內容,文件變成無用亂碼.覆蓋算法只是破壞了Block塊的內容,并沒有破壞NameNode中保存的元數據,Block塊還可以通過JDK(Java development kit)中File類的方法delete( )正確刪除.
通過分析仿真實驗結果,證明了兩級數據安全保障機制可以有效地破壞文件的內容,使DataNode失效后的數據變成不可用的垃圾數據.這種機制可以有效防止非法用戶惡意侵入盜取及恢復失效DataNode上的文件數據.
本仿真實驗是在虛擬機的環境下進行的,仿真實驗中采用的數據塊為1 MB的小文件,因為小文件已經能夠驗證兩級數據保護機制及數據覆蓋算法的有效性.在實際生產環境中,由于數據量會比較大,一個大文件會被物理分隔成很多個Block塊,這些Block塊會被上傳到不同位置的DataNode節點存儲起來,一個失效的DataNode上也會存儲著若干個不同文件的Block塊.如果同時開啟多個線程并行對各個Block塊進行破壞,效率會更高. 在實際生產環境中,如果HDFS的存儲介質是閃存類介質如固態硬盤等,不但能成倍提高數據覆蓋效率,而且毀壞后的文件恢復難度更大,云平臺中數據的安全性會大大增強.
云計算是當下互聯網界的研究的熱點,HDFS是未來云存儲的研究方向之一.Hadoop大數據計算平臺的出現,使得用戶可以自定義搭建Hadoop平臺,并根據需求開發Hadoop應用程序.針對HDFS中DataNode失效后存儲在DataNode上的數據塊文件的安全問題,本文在對Hadoop云計算框架存儲平臺HDFS研究的基礎上,設計了一種兩級數據安全保障機制方案.仿真實驗結果表明,在DataNode節點失效后,該機制能很好保障失效DataNode上數據的安全性.基于HDFS的云平臺數據安全研究工作意義重大,設計出效率更優的數據覆蓋算法面向商業應用,具有重要價值.
[1] 劉鵬. 云計算[M]. 北京:電子工業出版社,2010:60-70.
[2] 董西成. Hadoop技術內幕:深入解析MapReduce架構設計與實現原理[M]. 北京:機械工業出版社,2013:20-36.
[3] 2014云計算關鍵詞盤點:BATH等入圍[EB/OL].(2014-12-16) [2015-01-01].http://www.sootoo.com/content/538413.shtml.
[4] 中國電信網絡安全實驗室. 云計算安全:技術與應用[M]. 北京:電子工業出版社2012:12-20.
[5] DHRUBA B. HDFS architecture guide[EB/OL].(2012-04-03) [2015-01-01].http://hadoop.apache.org/common/docs/current/hdfs_design.pdf.
[6] 馬媛. 基于Hadoop的云計算平臺安全機制研究[J]. 信息安全與通信保密, 2012(6): 89-91.
[7] 柴黃琪,蘇成. 基于HDFS的安全機制設計[J]. 計算機安全,2010(12):22-25.
[8] 蔡斌,陳湘萍. Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現原理[M]. 北京:機械工業出版社,2013: 217-219.
[9] 張冬. 大話存儲Ⅱ[M]. 北京:清華大學出版社,2011:40-51.
[10] 程玉. 磁介質數據銷毀技術的研究[D]. 成都:電子科技大學計算機科學與工程學院,2010:92.
A Method of Protecting Data Security Based on HDFS
LIHao,ZHANGYu-ping,ZHOUQi-yao,MAYan,YANGYan-qin
(College of Information, Mechanical and Electrical Engineering, Shanghai Normal University, Shanghai 200233, China)
With the application of cloud computing, data security is more attention by users. The open source cloud computing storage system, HDFS(hadoop distributed file system) can not completely protect data when DataNode failed, which may lead data leakage.In order to solve this problem, a dual-level data security and safegaurd mechanism is designed, so that the data in failed DataNode can be breached by the overwrite algorithm and then deleted reliably. This mechanism can effectively prevent malicious data recovery and data leakage with data overwrite algorithm. Security and reliability of the data in HDFS has been secured.
Hadoop; cloud computing; HDFS; security; data destruction
1671-0444(2015)04-0490-04
2015-01-15
國家自然科學基金資助項目(61373004);上海師范大學基金資助項目(SK201413)
李浩(1988—),男,河南周口人,碩士研究生,研究方向為云計算、網絡安全.E-mail:lihaosky_2008@126.com
張玉萍(聯系人),女,教授,E-mail:yp_zhang@shun.edu.cn
TP 311
A