高元照,李炳龍,陳性元
?
基于MapReduce的HDFS數(shù)據(jù)竊取隨機檢測算法
高元照1,2,李炳龍1,陳性元1,2
(1. 信息工程大學(xué)三院,河南 鄭州 450001;2. 密碼科學(xué)技術(shù)國家重點實驗室,北京 100094)
為了解決分布式云計算存儲的數(shù)據(jù)竊取檢測中,出現(xiàn)數(shù)據(jù)量大、內(nèi)部竊取難以檢測的問題,以hadoop分布式文件系統(tǒng)(HDFS, hadoop distributed file system)為檢測對象,提出了一種基于MapReduce的數(shù)據(jù)竊取隨機檢測算法。分析HDFS文件夾復(fù)制產(chǎn)生的MAC時間戳特性,確立復(fù)制行為的檢測與度量方法,確保能夠檢測包括內(nèi)部竊取的所有竊取模式。設(shè)計適合于MapReduce任意的任務(wù)劃分,同時記錄HDFS層次關(guān)系的輸入數(shù)據(jù)集,實現(xiàn)海量時間戳數(shù)據(jù)的高效分析。實驗結(jié)果表明,該算法能夠通過分段檢測策略很好地控制漏檢率和誤檢文件夾數(shù)量,并且具有較高的執(zhí)行效率和良好的可擴展性。
隨機檢測算法;HDFS;MapReduce;MAC時間戳;云計算存儲
云計算巨大的優(yōu)越性使其在全球范圍內(nèi)高速發(fā)展[1-2]。其中,“存儲即服務(wù)(StaaS, storage as a service)”的云計算服務(wù)模式是當(dāng)前被廣泛認可的大數(shù)據(jù)存儲方法[3],許多云計算服務(wù)提供商如Google、Amazon和Microsoft都提供了云存儲服務(wù)[4-5]。
云計算存儲快速發(fā)展的同時,新的安全威脅隨之而來。云安全聯(lián)盟2013年和2016年發(fā)布的云計算頂級威脅報告提出數(shù)據(jù)泄露是云安全面臨的最大威脅[6-7]?!吨袊朴嬎惆踩吲c法律藍皮書(2016)》也披露,近年來云平臺的大規(guī)模數(shù)據(jù)泄露事件不絕于耳[8]。數(shù)據(jù)竊取是造成數(shù)據(jù)泄露的主要原因之一,并且相比于外部竊取,內(nèi)部人員往往具有數(shù)據(jù)訪問特權(quán),當(dāng)前的加密或訪問控制等機制不能完全防止內(nèi)部竊取[9-11],因而給云計算和用戶造成的危害更大[12-13],并且難以檢測。因此,本文主要研究云存儲數(shù)據(jù)的內(nèi)部竊取檢測方法。
現(xiàn)有的內(nèi)部竊取檢測方法主要分為2類。
1) 基于用戶或系統(tǒng)行為的異常進行檢測。Stolfo等[9]通過識別系統(tǒng)中入侵用戶不同于合法用戶的異常數(shù)據(jù)訪問行為模式檢測內(nèi)部數(shù)據(jù)竊取。Nikolai等[11]依據(jù)系統(tǒng)中異常的活動用戶數(shù)量和傳輸數(shù)據(jù)量,檢測內(nèi)部人員對目標(biāo)機的登錄和數(shù)據(jù)竊取。Pitropakis等[14]基于Smith&Waterman算法識別虛擬機的異常行為,進而檢測針對虛擬機的內(nèi)部攻擊。然而,云存儲多采用分布式文件系統(tǒng)(DFS,distributed file system)作為主要的文件系統(tǒng)[15],一個完整文件分散存儲在多個物理或虛擬節(jié)點中,從單個節(jié)點竊取數(shù)據(jù)是不可行的;另一方面,上述方法能夠檢測的攻擊模式需要內(nèi)部人員登錄到目標(biāo)系統(tǒng),然而在DFS中內(nèi)部管理人員能夠通過控制節(jié)點直接訪問存儲節(jié)點的數(shù)據(jù)而不需要登錄系統(tǒng)。因此,上述方法針對的竊取模式以及對應(yīng)檢測方法不適用于DFS。
2) 基于文件系統(tǒng)元數(shù)據(jù),通過檢測文件的批量復(fù)制遺留的時間戳痕跡,判斷數(shù)據(jù)竊取的發(fā)生。這類方法從根本上反映文件系統(tǒng)活動,能夠檢測包括內(nèi)部竊取和外部竊取的所有竊取模式。Grier[16]首次提出了通過識別文件時間戳在文件批量復(fù)制中的顯著特征,檢測NTFS數(shù)據(jù)竊取的方法。但其他文件操作也可能批量更新文件時間戳,造成誤報,因而Patel等[17]采用人工神經(jīng)網(wǎng)絡(luò)、分類和回歸樹等方法,對文件復(fù)制之外的操作產(chǎn)生的誤報進行過濾,提升數(shù)據(jù)竊取檢測的準(zhǔn)確率。上述方法面向單磁盤文件系統(tǒng),而DFS中文件操作的管理和記錄方式與單磁盤文件系統(tǒng)差異較大,此類方法無法直接應(yīng)用,并且云環(huán)境下用戶量和數(shù)據(jù)量大,上述方法沒有考慮海量時間戳數(shù)據(jù)的高效分析問題。
為解決上述問題,本文針對HDFS中數(shù)據(jù)的批量竊取行為,提出一種基于MapReduce的數(shù)據(jù)竊取隨機檢測算法。主要工作如下所示。
1) 分析HDFS文件夾復(fù)制產(chǎn)生的時間戳特性,建立HDFS行為隨機模型,提出HDFS文件夾復(fù)制行為的檢測與度量方法,即時檢測數(shù)據(jù)竊取活動,并確定被竊取用戶的信息。
2) 設(shè)計適合于MapReduce分布式處理、同時記錄HDFS層次關(guān)系的數(shù)據(jù)集和以文件為數(shù)據(jù)單元、以文件夾為檢測單元的算法執(zhí)行過程,實現(xiàn)對海量時間戳數(shù)據(jù)的高效、正確分析。
3) 搭建完全分布式的hadoop框架,測試檢測閾值對算法準(zhǔn)確性的影響以及數(shù)據(jù)量和計算節(jié)點數(shù)量對算法效率的影響,檢驗了算法的準(zhǔn)確率、執(zhí)行效率和可擴展性。
Grier提出一種基于文件系統(tǒng)行為隨機模型(the stochastic model of file system behavior)的數(shù)據(jù)竊取檢測方法[16]。Grier發(fā)現(xiàn),當(dāng)文件系統(tǒng)發(fā)生文件的批量復(fù)制時,被復(fù)制文件夾的MAC時間戳統(tǒng)計特性與常規(guī)文件訪問產(chǎn)生的MAC時間戳變化特性明顯不同,并分別用應(yīng)急模式和常規(guī)模式表示。在Grier提出的模型中,MAC時間戳代表文件(或文件夾)的最近修改時間(mtime)、最近訪問時間(atime)和創(chuàng)建時間(ctime)。
在常規(guī)模式下,文件訪問通常是選擇性的,只有被訪問文件(或文件夾)的發(fā)生改變。在應(yīng)急模式下,文件夾的復(fù)制表現(xiàn)為一種一致性行為,該文件夾內(nèi)所有子文件夾和文件都被復(fù)制,引起文件的全部更新(或只更新所有子文件夾的,不同文件系統(tǒng)的更新規(guī)則不同)。
不考慮時間戳的惡意篡改,MAC時間戳總是單調(diào)遞增的。如果一個文件夾被復(fù)制,即使在幾個月以后,它的MAC時間戳仍將表現(xiàn)出以下特性。
1) 被復(fù)制的文件夾和所有子文件夾的都不小于復(fù)制發(fā)生時間。
2) 大量上述文件夾的近似等于復(fù)制發(fā)生時間。
3) 在Windows下,文件夾復(fù)制不更新文件的。很多文件的通常小于被復(fù)制文件夾的。
基于上述特性,Grier提出在NTFS文件系統(tǒng)中,對于一個文件夾和某一特定時刻,若任何子文件夾的都不小于該時刻,并且一定比例的子文件夾的等于該時刻,則稱創(chuàng)建了一個“截止簇(cutoff cluster)”。等于該時刻的子文件夾屬于截止簇。Grier對一個文件夾中屬于截止簇的子文件夾數(shù)量及其占總文件夾數(shù)的比例進行量化分析,以判斷該文件夾是否被復(fù)制過。
基于文件系統(tǒng)行為隨機模型提出的數(shù)據(jù)竊取檢測算法能夠適用于NTFS、Ext4等多種單磁盤文件系統(tǒng)和HDFS、GFS、Gluster等通過MAC時間戳記錄文件系統(tǒng)活動的DFS。但不同文件系統(tǒng)的MAC時間戳含義和更新規(guī)則不同,量化分析的過程不是通用的。并且,除文件夾復(fù)制外,文件搜索和“l(fā)s -r”等操作也可能造成文件(或文件夾)的批量更新,對檢測準(zhǔn)確性造成影響。因此,量化分析過程和數(shù)據(jù)竊取檢測方法需要依據(jù)特定文件系統(tǒng)的MAC時間戳特性進行設(shè)計。
3.1.1 HDFS時間戳特性分析
HDFS采用一種主從式的架構(gòu),一個HDFS集群包含一個NameNode、一個二級NameNode和眾多的DataNode[18]。NameNode管理HDFS命名空間,集中存儲HDFS的元數(shù)據(jù)。DataNode用于存儲實際的數(shù)據(jù)。二級NameNode用于執(zhí)行周期性的檢查點機制。HDFS元數(shù)據(jù)文件有兩種形式:FsImage和EditLog。FsImage維護著完整的HDFS元數(shù)據(jù)映像,記錄著文件的MAC時間戳。EditLog是HDFS的事務(wù)日志,記錄了每個MAC時間戳的變化。
HDFS的檢查點機制是在hadoop啟動時或每經(jīng)過固定周期,HDFS將最近更新的FsImage與之后所記錄的事務(wù)進行合并,創(chuàng)建一個新的FsImage,并刪除過期的FsImage。雖然FsImage的數(shù)據(jù)來源于EditLog,但由于EditLog只能記錄兩檢查點間HDFS的變化情況,它無法反映HDFS中時間戳未發(fā)生變化的文件,不能體現(xiàn)某文件夾下文件的整體狀態(tài)。此外,日志中的事務(wù)按照時間順序記錄,密集的時間戳變化可能由多用戶同時訪問HDFS引起,不能作為文件復(fù)制的依據(jù)。因此,本文以FsImage作為MAC時間戳的主要來源,進行數(shù)據(jù)竊取的檢測。
與NTFS、Ext4等不同,HDFS只記錄文件夾的和以及文件的和。由于在NTFS中對文件夾復(fù)制不更新文件的[16],Grier基于文件夾的和對截止簇進行量化分析。在HDFS中,經(jīng)過實驗驗證,文件夾的復(fù)制會引起該文件夾下所有文件的更新。因此,本文通過文件的時間戳進行截止簇的量化分析。
對于文件的,分析EditLog發(fā)現(xiàn),HDFS在創(chuàng)建文件時,會記錄兩次時間戳的變化。第一次是創(chuàng)建空文件時,此時的值等于。第二次是當(dāng)文件創(chuàng)建完后關(guān)閉時,發(fā)生更新而保持不變。因此,本文假設(shè)文件的等于文件創(chuàng)建時的。
3.1.2 截止簇量化分析
首先對文件夾做如下定義
3.2.1 數(shù)據(jù)預(yù)處理
由于FsImage不記錄文件的,本文首先基于“文件等于其初始創(chuàng)建時的”的假設(shè),生成文件的。HDFS兩個檢查點間的文件系統(tǒng)變化存儲在單獨的EditLog中。在FsImage中,文件(或文件夾)以“”表示,每個具有唯一且單調(diào)遞增的編號。FsImage記錄了本文件內(nèi)的最大編號。對比最近更新的FsImage和前一個檢查點的FsImage,能夠得出兩個檢查點間的新增文件。在最近的已完成EditLog中檢索這些文件,能夠得出它們的。
另一方面,MapReduce將數(shù)據(jù)集劃分成相互獨立的子集(或分片)進行并行處理。為確保作業(yè)在數(shù)據(jù)集上是可以任意劃分的,數(shù)據(jù)集的各數(shù)據(jù)項之間通常沒有內(nèi)在關(guān)聯(lián)。而HDFS是一個多層次的樹形結(jié)構(gòu),數(shù)據(jù)竊取的檢測也正依賴于文件間的父子關(guān)系。由于文件的元數(shù)據(jù)并不包含其父文件夾的信息,若按照MapReduce默認方式分割任務(wù)很可能破壞目錄樹的完整性,導(dǎo)致分析檢測的錯誤;若按照目錄樹的分支結(jié)構(gòu)分割任務(wù),不但目錄樹的遍歷會產(chǎn)生額外開銷,數(shù)據(jù)的均衡分割也將帶來新的問題。本文設(shè)計如下數(shù)據(jù)項作為MapReduce的輸入,以滿足MapReduce任意的任務(wù)分割。
本文基于文件的時間戳進行竊取檢測,每個輸入數(shù)據(jù)項與文件一一對應(yīng)。_表示文件的編號。將文件所有上層文件夾的編號保存在該文件的數(shù)據(jù)項中,以inode_表示,表示上層文件夾的個數(shù)。每次檢查點后,對最新的EditLog和FsImage進行預(yù)處理,并把更新的數(shù)據(jù)集存儲在“.csv”文件中。FsImage按照Google protocol buffers的格式對數(shù)據(jù)進行編碼,然后以分隔的方式進行序列化后存儲,其解析過程可參考文獻[19]。
3.2.2 基于MapReduce的算法過程
MapReduce將復(fù)雜的并行計算抽象為2個函數(shù):map和reduce。作業(yè)分片由map任務(wù)以并行的方式處理,map輸出的中間結(jié)果由reduce任務(wù)進行合并。但集群上的可用帶寬限制了MapReduce作業(yè)的數(shù)量。為減少map和reduce節(jié)點間的數(shù)據(jù)傳輸,hadoop引入combiner函數(shù)。combiner對map的輸出在本地節(jié)點做進一步簡化,但使用combiner需要保證reduce函數(shù)的輸出不變。本文即采用map、combiner和reduce這3個函數(shù)進行數(shù)據(jù)處理,它們均以鍵/值對(/)作為輸入輸出。
算法1 map過程
輸入 原始數(shù)據(jù)集,數(shù)據(jù)格式為<,>,具體函數(shù)中為<_,>。表示數(shù)據(jù)項中除_外的其他元數(shù)據(jù)信息。
輸出 數(shù)據(jù)格式為<,>,具體函數(shù)中為<_,_>。_是文件上層文件夾的編號,_存儲了基于文件、得出的判斷結(jié)果。
1) map ( const& key, const& value ) {
2)= value.,= value.;
3) 創(chuàng)建數(shù)組folder_b[ ]; //存儲<文件的上層文件夾的
4) if (>)
5) 跳過,讀取下一項;
6) else{
8) for (Pin value.P[ ]) {
9) if not (Pin folder_b[ ]) {
10) 將P添加到folder_b[ ];
11)= inode;
12)__=0; //表示該文件夾沒有被復(fù)制
13)_._=0; }}} //不關(guān)心該文件夾下總的文件數(shù)量
14) else if ( (>) && (<+) ) { //文件屬于截止簇
15) for (Pin value.inode[]) {
16) if not (Pin folder_b[ ]) {
17)= inode;
18)_=1,=1; }}} //表示該文件被復(fù)制
20) for (Pin value.inode[]) {
21) if not (in folder_b[ ]) {
22)=inode;
23)=0,=1; }}} //不確定該文件是否被復(fù)制
24) }
25) 輸出 (,) ;
26) }
map函數(shù)的輸出按照值進行排序,即具有相同值的數(shù)據(jù)項是連續(xù)存儲的[20],這為combiner函數(shù)的執(zhí)行提供了便利。combiner函數(shù)以map函數(shù)的輸出作為輸入,對時刻之前存在訪問行為的文件夾進行特殊處理,并統(tǒng)計其余文件夾中屬于截止簇的文件數(shù)量和時刻存在的總文件數(shù)量。具體算法如下所示。
算法2 combiner函數(shù)
輸入 map函數(shù)輸出,數(shù)據(jù)格式為<,>
輸出 數(shù)據(jù)格式為<,>,具體函數(shù)中為<,>。是文件上層文件夾的編號,存儲了對于相同值(即編號)的值匯總結(jié)果。
1) combiner ( const& key, const& value ) {
2) For each key { // 指編號互不相同的
3)=key;
4)= value._,_= value._;
5) if 存在((==0) && (==0)){
6)=0,= 0; }
7) else {
8)= 所有key值相同的項的_的和;
9)= 所有key值相同的項的的和; }
10) 輸出 (,) ;}
11) }
combiner函數(shù)執(zhí)行后,map節(jié)點將數(shù)據(jù)傳輸?shù)絩educe節(jié)點,并確保具有相同值的數(shù)據(jù)項被同一個reduce節(jié)點處理。在執(zhí)行reduce函數(shù)之前,數(shù)據(jù)項按值進行排序。
算法3 reduce函數(shù)
輸入 combiner函數(shù)輸出,數(shù)據(jù)格式為<,>;C和M。
1) reduce ( const& key, const& value, floatC, intM) {
2) For each key { //指編號互不相同的
3)= value._,= value._;
4) if存在((==0) && (==0)){
6) else {
7)=所有key值相同項的_的和;
8)=所有key值相同項的_的和;
10) if((_>C) && (>M)){
11)=key;
12) 輸出(_, (,,_));}}}
}
除文件復(fù)制外,文件系統(tǒng)的其他操作也可能批量更新文件的,產(chǎn)生應(yīng)急模式,對復(fù)制操作的判定造成影響。本文考慮以下5類操作:文件夾加密和壓縮、文件搜索和計數(shù)以及“l(fā)s”命令。HDFS支持文件加密,但加密過程在用戶端完成,上傳到HDFS中的數(shù)據(jù)是經(jīng)過加密的[20]。HDFS能夠處理多種文件壓縮格式,但壓縮操作同樣在數(shù)據(jù)存儲前完成,HDFS不提供文件壓縮命令。對于搜索、計數(shù)和“l(fā)s”命令,經(jīng)實際驗證,EditLog不記錄這3種操作的發(fā)生時間,因此FsImage不會更新文件的。此外,在HDFS中(尤其在云環(huán)境下),不同于個人控制的操作系統(tǒng),用戶能夠執(zhí)行的操作較少,本文不考慮由殺毒軟件或文件壓縮工具等額外工具實現(xiàn)的上述操作。因此可以認為只有正常文件訪問和復(fù)制對HDFS文件的進行更新。
圖1 基于Xen的實驗環(huán)境架構(gòu)
hadoop分布式集群由一個NameNode節(jié)點、一個二級NameNode節(jié)點和8個DataNode節(jié)點組成。集群環(huán)境基于Xen虛擬化平臺[21]搭建,所有節(jié)點是Xen管理下的虛擬機。Xen平臺建立在一臺浪潮服務(wù)器上,如圖1所示。服務(wù)器、集群節(jié)點、Xen和hadoop的配置如下。
服務(wù)器配置:型號為NF5280M4;CPU為E5-2620v3共2個;內(nèi)存為96 GB;硬盤為3 TB;操作系統(tǒng)為Ubuntu 12.04 LTS 64位;IP為192.168.122.1。
集群節(jié)點配置:Intel Core I5雙核CPU@2.6 GHz;4 GB內(nèi)存;200 GB硬盤;操作系統(tǒng)為CentOS 6.5 x86_64;域1~域10 IP地址為192.168.122.10~ 192.168.122.19。所有節(jié)點配置到其他各節(jié)點的SSH無密碼登錄,以便于命令與數(shù)據(jù)的自動化交互。
Xen配置:版本為4.1;hypervisor為64位。
hadoop配置:版本為2.6.0穩(wěn)定版;數(shù)據(jù)塊大小為128 MB;復(fù)制因子為3。在HDFS中創(chuàng)建10個用戶:hadoop(在NameNode上創(chuàng)建),sec-hadoop(在二級NameNode上創(chuàng)建),user1~user8(在8個DataNode上創(chuàng)建)。其中,hadoop為超級用戶。
本文采用人工生成的數(shù)據(jù)集進行測試。生成過程如下:在2017年3月1日,10個hadoop用戶分別上傳文件到HDFS,每個用戶的文件數(shù)量超過100萬個,總文件量超過1 500萬。文件類型主要為txt、jpg、doc等小文件。在實驗室條件下,為仿真云平臺中大的用戶量和頻繁的數(shù)據(jù)訪問,在創(chuàng)建文件后,將數(shù)據(jù)的訪問過程持續(xù)30天,以增加文件操作的數(shù)量。文件訪問行為遵循帕累托分布[22](即大多數(shù)的文件訪問集中于少量文件,大多數(shù)文件在被上傳后沒有被訪問)。在此期間,隨機選擇10個時刻對部分文件夾進行復(fù)制,以產(chǎn)生截止簇。
訪問過程結(jié)束后,從二級NameNode中獲取存儲有測試文件信息的EditLog和最近更新的FsImage。由于用戶的數(shù)據(jù)訪問請求提交給NameNode,從二級NameNode上獲取元數(shù)據(jù),能夠減輕數(shù)據(jù)傳輸給hadoop的正常運行造成的影響。將提取的文件信息按照式(8)的格式生成數(shù)據(jù)集,存儲在“.csv”文件中。本實驗中,數(shù)據(jù)集中的數(shù)據(jù)條目達15 008 320條,數(shù)據(jù)量為953 MB。
表2 測試文件夾構(gòu)成信息
由于FsImage默認1小時更新1次,從文件創(chuàng)建完成時開始,待檢時刻以1小時為間隔遞增,檢測30天中出現(xiàn)的所有文件復(fù)制行為,并對正確檢測的文件夾個數(shù)、漏檢個數(shù)、誤檢個數(shù)進行統(tǒng)計。被復(fù)制的文件夾從A~J依次編號。其中,user2的文件夾下包含20個子文件夾,選擇其中的2個進行復(fù)制,分別用D-1和D-2表示。表2表示A~J中大于對應(yīng)M的子文件夾的個數(shù)(包括自己)。
依據(jù)各文件夾在不同M()段的子文件夾數(shù)量,選取A、C、G和H,展示不同C和M組合下的算法準(zhǔn)確率,如圖2~圖5所示。綜合全部測試文件夾的檢測結(jié)果,針對不同C,各個M()段的整體漏檢率如表3所示。由于在實驗過程中沒有進行其他文件復(fù)制,算法檢測到的其他復(fù)制行為全部屬于誤檢。針對不同C,各個M()段的文件夾錯誤檢測個數(shù)如表4所示。
圖2 A文件夾在不同Cf和Mf條件下的算法準(zhǔn)確率
圖3 C文件夾在不同Cf和Mf條件下的算法準(zhǔn)確率
圖4 G文件夾在不同Cf和Mf條件下的算法準(zhǔn)確率
圖5 H文件夾在不同Cf和Mf條件下的算法準(zhǔn)確率
表3 各Mt( f )段不同Cf條件下的整體漏檢率
表4 各Mt( f )段不同Cf條件下的誤檢文件夾個數(shù)
分析測試文件夾的檢測結(jié)果和算法的錯誤檢測結(jié)果,得出以下結(jié)論。
基于分段檢測策略,為控制漏檢率和錯誤檢測數(shù)量,隨著M()的增大,C的上、下限變化如圖6所示。
圖6 不同Mt( f )段Cf的上、下限范圍
被檢測出復(fù)制行為的文件夾,可通過其編號確定相關(guān)聯(lián)的用戶信息。基于相關(guān)用戶的行為規(guī)律和復(fù)制發(fā)生時間等,能夠進一步判斷是否發(fā)生數(shù)據(jù)竊取。例如,若截止簇產(chǎn)生在某工作日的上午,可能是由于工作人員在一段時間內(nèi)對這些文件進行的正常復(fù)制;若截止簇產(chǎn)生在凌晨時分,則發(fā)生數(shù)據(jù)竊取的可能性較高,進一步分析執(zhí)行復(fù)制操作的用戶(或云內(nèi)部人員)的行為規(guī)律,若發(fā)現(xiàn)他之前沒有在凌晨訪問被復(fù)制文件的記錄,則可將該人員視為可疑人員,對其本地終端或移動終端進行取證分析,獲取更深層次的證據(jù),證實是否發(fā)生了數(shù)據(jù)竊取。
本節(jié)測試數(shù)據(jù)量和計算節(jié)點數(shù)量對算法執(zhí)行時間的影響,以檢驗該算法的可擴展性。原始數(shù)據(jù)集設(shè)為,數(shù)據(jù)量為953 MB。測試數(shù)據(jù)量以表示,分別取的1倍、2倍、4倍和8倍。多倍數(shù)據(jù)量通過對復(fù)制生成。測試節(jié)點數(shù)以表示,取值1、2、4和8。針對每個、組合,進行10次實驗,計算算法的平均執(zhí)行時間,測試結(jié)果如表5所示。
從表5中可以看出,當(dāng)=時,除=1外,節(jié)點數(shù)越多,執(zhí)行時間反而越長。這是由于一個分片通常對應(yīng)一個HDFS數(shù)據(jù)塊(本文設(shè)為128 MB),一個map或reduce任務(wù)分配的內(nèi)存默認為1 024 MB,因此一個節(jié)點最多能同時處理4個任務(wù)。當(dāng)數(shù)據(jù)量相對于節(jié)點數(shù)量過小時,計算資源無法充分利用,而數(shù)據(jù)在4或8個節(jié)點上存儲相對于2個節(jié)點更加分散,任務(wù)的調(diào)度花費更多的額外開銷。當(dāng)計算節(jié)點數(shù)量剛好滿足需處理的數(shù)據(jù)量時,任務(wù)調(diào)度開銷最小。
表5 算法執(zhí)行時間/s
隨著的增大,MapReduce的多節(jié)點并行處理特性逐漸顯示出優(yōu)勢。針對相同的數(shù)據(jù)量,本文將多節(jié)點相對單節(jié)點執(zhí)行效率的加速比作為衡量可擴展性的指標(biāo),圖7展示了=4和=8時的加速比,此時8個計算節(jié)點都能得到充分運用。其中,當(dāng)=4且=8時,MapReduce平均每秒處理超過113萬條數(shù)據(jù),加速比值為7.39,表現(xiàn)出良好的可擴展性。云存儲的用戶量和數(shù)據(jù)量巨大,并且隨著云計算的發(fā)展不斷增大,由HDFS元數(shù)據(jù)生成的數(shù)據(jù)集的存儲和處理將產(chǎn)生巨大的開銷,利用MapReduce以分布并行的方式實現(xiàn)數(shù)據(jù)竊取的檢測算法能夠顯著提高檢測效率。
圖7 Q=4S和Q=8S時的算法執(zhí)行加速比
面對云存儲的大數(shù)據(jù)量,內(nèi)部人員竊取難以高效檢測是云存儲數(shù)據(jù)竊取檢測的難點問題。本文以HDFS為檢測對象,提出了一種基于MapReduce的數(shù)據(jù)竊取隨機檢測算法。量化分析HDFS文件夾復(fù)制產(chǎn)生的獨特時間戳特性,確保能夠檢測惡意內(nèi)部人員以合法權(quán)限發(fā)起的數(shù)據(jù)竊取,及時發(fā)現(xiàn)被竊取的數(shù)據(jù)范圍及其所屬用戶。依據(jù)文件夾包含的文件數(shù)量采用分段檢測的策略,通過合理設(shè)定檢測閾值,能夠有效控制漏檢率和誤檢文件夾數(shù)量。利用MapReduce的并行處理能力,通過設(shè)計適合于MapReduce任務(wù)劃分的數(shù)據(jù)集和算法執(zhí)行過程,算法具有較高的效率,并且在MapReduce框架下具有良好的可擴展性。
[1] 中國信息通信研究院. 云計算白皮書[R]. 北京: 中國信息通信研究院, 2016. China Academy of Information and Communication Technology. White Papers of Cloud Computing[R]. Beijing: China Academy of Information and Communication Technology, 2016.
[2] 張玉清, 王曉菲, 劉雪峰, 等. 云計算環(huán)境安全綜述[J]. 軟件學(xué)報, 2016, 27(6): 1328-1348. ZHANG Y Q, WANG X F, LIU X F, et al. Survey on cloud computing security [J]. Journal of Software, 2016, 27(6): 1328-1348.
[3] CHANG V, RAMACHANDRAN M. Towards achieving data security with the cloud computing adoption framework[J]. IEEE Trans Services Computing, 2016, 9(1): 138-151.
[4] MARTINI B, CHOO K K R. Cloud storage forensics: owncloud as a case study[J]. Digital Investigation, 2013, 10(4): 287-299.
[5] LI Y, GAI K, QIU L, et al. Intelligent cryptography approach for secure distributed big data storage in cloud computing[J]. Information Sciences, 2017, 387: 103-115.
[6] ALVA A, CALEFF O, ELKINS G, et al. The Notorious nine: cloud computing top threats in 2013[R]. Cloud Security Alliance, 2013.
[7] BROOK J M, FIELD S, SHACKLEFORD D, et al. The treacherous 12 - cloud computing top threats in 2016[R]. Seattle: Cloud Security Alliance, 2016.
[8] 中國云計算安全政策與法律工作組. 中國云計算安全政策與法律藍皮書(2016)[R]. 上海: 中國云計算安全政策與法律工作組, 2016.Cloud Computing Security Policies and Laws Group. Cloud computing security policies and laws blue book (2016)[R]. Shanghai: Cloud Computing Security Policies and Laws Group, 2016.
[9] STOLFO S J, SALEM M B, KEROMYTIS A D. Fog computing: mitigating insider data theft attacks in the cloud[C]// IEEE Symposium on Security and Privacy Workshops. 2012: 125-128.
[10] SRIRAM M, PATEL V, HARISHMA D, et al. A hybrid protocol to secure the cloud from insider threats[C]// IEEE International Conference on Cloud Computing in Emerging Markets. 2014: 1-5.
[11] NIKOLAI J, WANG Y. A system for detecting malicious insider data theft in IaaS cloud environments[C]// 2016 IEEE Global Communications Conference (GLOBECOM). 2016: 1-6.
[12] SUBASHINI S, KAVITHA V. A survey on security issues in service delivery models of cloud computing[J]. Journal of Network & Computer Applications, 2011, 34(1): 1-11.
[13] ROCHA F, CORREIA M. Lucy in the sky without diamonds: Stealing confidential data in the cloud[C]// IEEE/IFIP International Conference on Dependable Systems and Networks Workshops. 2011: 129-134.
[14] PITROPAKIS N, LYVAS C, LAMBRINOUDAKIS C. The greater the power, the more dangerous the abuse: facing malicious insiders in the cloud[J]. Cloud Computing 2017, 2017: 156-161.
[15] MARTINI B, CHOO K K R. Distributed filesystem forensics: XtreemFS as a case study[J]. Digital Investigation, 2014, 11(4): 295-313.
[16] GRIER J. Detecting data theft using stochastic forensics[J]. Digital Investigation, 2011, 8(8): 71-77.
[17] PATEL P C, SINGH U. A novel classification model for data theft detection using advanced pattern mining[J]. Digital Investigation, 2013, 10(4): 385-397.
[18] SHVACHKO K, KUANG H, RADIA S, et al. The hadoop distributed file system[C]// 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST). 2010: 1-10.
[19] GAO Y, LI B. A forensic method of efficient file extraction in HDFS based on three-level mapping[J]. Wuhan University Journal of Natural Sciences, 2017, 22(2): 114-126.
[20] WHITE T. hadoop: The definitive guide (3th Edition) [M]. Sebastopol: O'Reilly Media, Inc, 2015.
[21] BARHAM P, DRAGOVIC B, FRASER K, et al. Xen and the art of virtualization[C]// ACM SIGOPS Operating Systems Review. 2003: 164-177.
[22] MACKAY E B, CHALLENOR P G, BAHAJ A S. A comparison of estimators for the generalised Pareto distribution[J]. Ocean Engineering, 2011, 38(11): 1338-1346.
Stochastic algorithm for HDFS data theft detection based on MapReduce
GAO Yuanzhao1,2, LI Binglong1, CHEN Xingyuan1,2
1. Third Academy, Information Engineering University, Zhengzhou 450001, China 2. State Key Laboratory of Cryptology, Beijing 100094, China
To address the problems of big data efficient analysis and insider theft detection in the data theft detection of distributed cloud computing storage, taking HDFS (hadoop distributed file system) as a case study, a stochastic algorithm for HDFS data theft detection based on MapReduce was proposed. By analyzing the MAC timestamp features of HDFS generated by folder replication, the replication behavior’s detection and measurement method was established to detect all data theft modes including insider theft. The data set which is suitable for MapReduce task partition and maintains the HDFS hierarchy was designed to achieve efficient analysis of large-volume timestamps. The experimental results show that the missed rate and the number of mislabeled folders could be kept at a low level by adopting segment detection strategy. The algorithm was proved to be efficient and had good scalability under the MapReduce framework.
stochastic detection algorithm, HDFS, MapReduce, MAC timestamp, cloud computing storage
TP311.1
A
10.11959/j.issn.1000?436x.2018222
高元照(1992?),男,河北衡水人,信息工程大學(xué)博士生,主要研究方向為云計算取證、大數(shù)據(jù)安全。
李炳龍(1974?),男,河南衛(wèi)輝人,博士,信息工程大學(xué)副教授、碩士生導(dǎo)師,主要研究方向為數(shù)字取證。
陳性元(1963?),男,安徽無為人,博士,信息工程大學(xué)教授、博士生導(dǎo)師,主要研究方向為網(wǎng)絡(luò)與信息安全。
2017?09?27;
2018?07?03
國家高科技研究發(fā)展計劃(“863”計劃)基金資助項目(No.2015AA016006);國家自然科學(xué)基金資助項目(No.61702550)
The National High Technology Research and Development Program of China (863 Program) (No.2015AA016006), The National Natural Science Foundation of China (No.61702550)