于萬(wàn)鈞+沈斌+周蘭鳳
摘 要: Hadoop云計(jì)算平臺(tái)已經(jīng)成為當(dāng)今社會(huì)最流行的平臺(tái)之一,它的安全問(wèn)題也在改進(jìn),訪問(wèn)控制是保護(hù)Hadoop平臺(tái)安全的一種有效途徑。依據(jù)基于角色的訪問(wèn)控制和基于信任的訪問(wèn)控制,并在此基礎(chǔ)上進(jìn)行改進(jìn),提出一種基于角色與信任的訪問(wèn)控制模型。該模型主要根據(jù)Hadoop平臺(tái)的日志文件,運(yùn)用神經(jīng)網(wǎng)絡(luò)算法對(duì)日志文件進(jìn)行分析,以此來(lái)獲得每一個(gè)用戶(hù)的信任度。集群根據(jù)用戶(hù)的信任度來(lái)分配用戶(hù)擁有的權(quán)限。
關(guān)鍵詞: 訪問(wèn)控制; 神經(jīng)網(wǎng)絡(luò)算法; Hadoop平臺(tái); 用戶(hù)權(quán)限分配
中圖分類(lèi)號(hào): TN911?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)24?0009?03
Abstract: The Hadoop cloud computing platform has become one of the most popular platforms nowadays, and its security issues are being improved. Access control is an effective way to protect the safety of the Hadoop platform. An access control model based on role and trust is proposed according to the improvement of the access control based on the role and the trust. In this model, the neural network algorithm is adopted to analyze the log files obtained from the Hadoop platform, so that each user′s trust can be obtained. The cluster assigns permissions to each user according to the user′s trust.
Keywords: access control; neural network algorithm; Hadoop platform; user permission distribution
Hadoop分布式文件系統(tǒng)是對(duì)谷歌文件系統(tǒng)的開(kāi)源實(shí)現(xiàn),并引用了谷歌MapReduce計(jì)算框架。在2005年,Hadoop作為L(zhǎng)ucene的子項(xiàng)目Nutch的一部分正式啟動(dòng),隨后成為Apache下一個(gè)獨(dú)立開(kāi)發(fā)項(xiàng)目。Hadoop由最初的三大核心組件HDFS,MapReduce和Hbase所構(gòu)成的系統(tǒng)演變?yōu)榘?0多個(gè)組件的龐大生態(tài)系統(tǒng)[1]。在大數(shù)據(jù)環(huán)境中,數(shù)據(jù)每時(shí)每秒都在以指數(shù)形式增長(zhǎng),各企業(yè)、政府部門(mén)都在逐漸使用Hadoop云平臺(tái)。隨著Hadoop平臺(tái)的不斷推廣,Hadoop平臺(tái)安全問(wèn)題也提上了日程。大數(shù)據(jù)安全問(wèn)題成為阻礙大數(shù)據(jù)發(fā)展的關(guān)鍵問(wèn)題,因此需要相應(yīng)的安全機(jī)制和框架結(jié)構(gòu),來(lái)確保數(shù)據(jù)的機(jī)密性、完整性以及可用性。訪問(wèn)控制是一種有效的解決方案,訪問(wèn)控制主要是對(duì)資源訪問(wèn)的一種限制,防止非法用戶(hù)對(duì)資源的訪問(wèn)以及合法用戶(hù)對(duì)資源的非法訪問(wèn)。訪問(wèn)控制涉及認(rèn)證、控制策略實(shí)現(xiàn)以及審計(jì)[2]。
本文主要提出一種適用于Hadoop平臺(tái)的基于角色與信任的訪問(wèn)控制模型。該模型運(yùn)用機(jī)器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)算法對(duì)Hadoop平臺(tái)日志文件進(jìn)行數(shù)據(jù)分析、計(jì)算出每一個(gè)用戶(hù)的信任度。在Hadoop配置文件中標(biāo)識(shí)出不同等級(jí)的信任度以及信任度與權(quán)限的映射關(guān)系。該模型信任度是動(dòng)態(tài)更新的,能夠有效保障Hadoop平臺(tái)的數(shù)據(jù)安全。
1 訪問(wèn)控制
自主訪問(wèn)控制(DAC)和強(qiáng)制訪問(wèn)控制(MAC)都屬于傳統(tǒng)的訪問(wèn)控制。自主訪問(wèn)控制模型中授權(quán)主體自主負(fù)責(zé)賦予和回收主體對(duì)客體資源的訪問(wèn)權(quán)限;強(qiáng)制訪問(wèn)控制模型是一種適用于軍方和政府的訪問(wèn)控制模型,其中比較有代表性的有BLP模型[3]和Biba模型[4]。
1.1 基于角色的訪問(wèn)控制
基于角色的訪問(wèn)控制,將授權(quán)行為分成權(quán)限、用戶(hù)和角色。比較有代表性的是RBAC96模型[5?6],如圖1所示。其中,用戶(hù)、會(huì)話(huà)、角色和權(quán)限這四個(gè)構(gòu)成RBAC0模型,這是核心模型;在RBAC0模型基礎(chǔ)上增加角色分層(RH),實(shí)現(xiàn)了RBAC1模型;在RBAC0模型基礎(chǔ)上增加約束,實(shí)現(xiàn)了RBAC2模型;RBAC1模型與RBAC2模型的結(jié)合就構(gòu)成了RBAC3模型,這也闡釋了各個(gè)模型之間的關(guān)系。
1.2 基于信任的訪問(wèn)控制傳統(tǒng)的訪問(wèn)控制
信任的訪問(wèn)控制的出現(xiàn)主要解決多域環(huán)境中訪問(wèn)控制的問(wèn)題。它在訪問(wèn)控制中主要涉及信任證系統(tǒng)、一致性驗(yàn)證器(信任管理引擎)。信任證系統(tǒng)主要用來(lái)實(shí)現(xiàn)信任證的頒發(fā);一致性驗(yàn)證器主要是用來(lái)處理用戶(hù)獲得證書(shū)是否可執(zhí)行,這是信任管理中的核心部分[7?8]。
2 基于角色與信任的訪問(wèn)控制策略
2.1 模型結(jié)構(gòu)
模型簡(jiǎn)圖如圖2所示。
模型簡(jiǎn)介如下:令牌,用戶(hù)與角色之間的委派不同于基于角色的訪問(wèn)控制中的模型,在委派之間引入一個(gè)令牌;KDC(Key Distribution Center),密鑰分配中心用來(lái)分配令牌;信任度,信任度與用戶(hù)的權(quán)限存在映射關(guān)系,根據(jù)信任度來(lái)判斷用戶(hù)的權(quán)限;信任管理,判斷用戶(hù)的信任值。本模型采用神經(jīng)網(wǎng)絡(luò)算法,對(duì)日志文件中用戶(hù)行為集做一個(gè)建模分析,以此來(lái)確定用戶(hù)的信任度。
2.2 模型中相關(guān)數(shù)據(jù)結(jié)構(gòu)及接口
定義1 用戶(hù)行為。標(biāo)識(shí)開(kāi)始時(shí)間、結(jié)束時(shí)間、操作類(lèi)型和是否為可執(zhí)行權(quán)限。聲明數(shù)據(jù)結(jié)構(gòu)為behavior={clientID,type,timeStart,timeFiniSh,errorService}。endprint
定義2 信任度。標(biāo)識(shí)用戶(hù)權(quán)限等級(jí)。聲明數(shù)據(jù)結(jié)構(gòu)為T(mén)rustValue={clientID,iniTrValue,TrValue}。
定義3 函數(shù)setData(clientID,type,timeStart,timeFinish,TrustValue,errorService),定義數(shù)據(jù)的獲取函數(shù),并將數(shù)據(jù)轉(zhuǎn)化為Avro數(shù)據(jù)格式。具體算法介紹在下面會(huì)介紹。
定義4 函數(shù)getTrValue(clientID),對(duì)setData函數(shù)獲得的數(shù)據(jù)進(jìn)一步處理獲得信任度。
定義5 函數(shù)NeuralNetwork(clientID,type,timeStart,timeFinish,iniTrValue,TrValue,errorService),神經(jīng)網(wǎng)絡(luò)算法。
定義6 函數(shù)readTrValue(clientID,TrValue),這個(gè)函數(shù)主要是用來(lái)讀取用戶(hù)的信任度。
定義7 函數(shù)updataTrValue(oldtime,time,value),該函數(shù)主要是用來(lái)判斷是否需要進(jìn)行信任度的更新操作。其中參數(shù)的含義分別是上一次更新完成時(shí)間、當(dāng)前系統(tǒng)時(shí)間以及閾值。
算法1 數(shù)據(jù)預(yù)處理算法setData
算法是在Hadoop計(jì)算框架MapReduce中運(yùn)行。在使用該算法前,筆者使用Flume工具將日志文件導(dǎo)入到HDFS中來(lái)方便處理數(shù)據(jù),默認(rèn)情況下,F(xiàn)lume以Avro JSON數(shù)據(jù)格式寫(xiě)入數(shù)據(jù)。
輸入:clientID,type,timeStart,timeFinish,iniTrValue,TrValue,errorService
輸出:Avro格式的數(shù)據(jù)文件
(1) 首先讀取HDFS中的日志數(shù)據(jù)。
(2) 對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,將數(shù)據(jù)中的缺失值填補(bǔ)上去同時(shí)在數(shù)據(jù)中增加兩列:一列是初始信任度,初始信任度都賦值為1;另一列是當(dāng)前信任度,賦值為0,表示未有信任度。
(3) 將數(shù)據(jù)以clientID,type,timeStart,timeFinish,iniTrValue,TrValue,errorService為一行,輸出out到HDFS中。
算法2 信任度計(jì)算算法getTrValue
輸入:clientID
輸出:信任度值
(1) 讀取HDFS中的out,賦值給data。
(2) 調(diào)用NeuralNetwork函數(shù)來(lái)計(jì)算信任度。
(3) 返回信任值并保存到數(shù)據(jù)庫(kù)中。
算法3 神經(jīng)網(wǎng)絡(luò)算法[9?10]NeuralNetwork
輸入:clientID,type,timeStart,timeFinish,errorService,iniTrValue
輸出:TrValue
(1) 要將算法中的7個(gè)參數(shù)分成兩個(gè)數(shù)據(jù)集,把前6個(gè)作為特征值,最后一個(gè)作為函數(shù)標(biāo)記。
(2) 建立神經(jīng)網(wǎng)絡(luò)模型,采用backpropagation算法計(jì)算TrValue。
(3) 返回TrValue。
其中backpropagation算法公式如下:
算法結(jié)構(gòu)簡(jiǎn)圖如圖3所示。
3 系統(tǒng)實(shí)現(xiàn)
3.1 實(shí)驗(yàn)設(shè)計(jì)
本實(shí)驗(yàn)是在Hadoop 2.0官方提供的穩(wěn)定版中修改其配置文件,為此需要在hadoop\conf目錄下添加3個(gè)XML文件作為本實(shí)驗(yàn)?zāi)P偷呐渲梦募?,如下?/p>
(1) trust?computer.xml 該配置文件編寫(xiě)第2節(jié)中運(yùn)用到的計(jì)算信任的函數(shù)。
(2) user?trust.xml 該配置文件保存著用戶(hù)的信任度。
(3) user?trust?permission.xml 該配置文件保存信任度與權(quán)限的映射關(guān)系。
本實(shí)驗(yàn)核心流程如圖4所示。
3.2 實(shí)驗(yàn)結(jié)果與分析
本實(shí)驗(yàn)在相同環(huán)境下搭建兩種集群:一種是普通集群;另一種是采用神經(jīng)網(wǎng)絡(luò)來(lái)計(jì)算可信度的基于角色與信任模型的集群。為了能看出區(qū)別,兩個(gè)集群都用一個(gè)用戶(hù)執(zhí)行一個(gè)權(quán)限,在某一時(shí)間區(qū)域內(nèi)不斷手動(dòng)通過(guò)集群中其他節(jié)點(diǎn)去改變用戶(hù)的執(zhí)行權(quán)限,以觀測(cè)出實(shí)驗(yàn)結(jié)果。在此以時(shí)間為橫坐標(biāo),以是否可執(zhí)行為縱坐標(biāo),如圖5所示。
實(shí)驗(yàn)中“1”表示用戶(hù)不可執(zhí)行該權(quán)限,“2”表示用戶(hù)可執(zhí)行該權(quán)限。在t1前不斷在兩臺(tái)集群中執(zhí)行一個(gè)put命令,在t1時(shí)刻改變put命令的權(quán)限使得用戶(hù)不具有該權(quán)限,所以測(cè)試結(jié)果為“1”,即不具有該權(quán)限;在t2時(shí)刻又修改put命令的權(quán)限使得用戶(hù)具有權(quán)限,所以測(cè)試結(jié)果為“2”,即具有該權(quán)限。從圖5可以看出普通集群在t3和t7時(shí)刻出現(xiàn)錯(cuò)誤,這也就是普通集群容易受到攻擊造成集群信息被竊取的原因。而采用神經(jīng)網(wǎng)絡(luò)計(jì)算信任度的基于角色與信任模型的集群在實(shí)驗(yàn)測(cè)試時(shí)間段內(nèi)沒(méi)有出現(xiàn)失誤,也就證明了該模型能夠有效處理普通集群中的訪問(wèn)控制安全問(wèn)題。
4 結(jié) 語(yǔ)
本文在研究基于角色的訪問(wèn)控制模型和基于信任的訪問(wèn)控制模型的基礎(chǔ)上,結(jié)合神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)分析能力,提出了一種采用神經(jīng)網(wǎng)絡(luò)計(jì)算信任度的基于角色與信任的訪問(wèn)控制模型。與普通集群中的模型相比,該模型由如下優(yōu)點(diǎn):
(1) 模型預(yù)測(cè)正確性高,該模型主要依靠神經(jīng)網(wǎng)絡(luò)來(lái)計(jì)算角色的信任度,能夠正確指示出角色擁有的權(quán)限。
(2) 模型的授權(quán)過(guò)程更加安全,該模型采用信任度的方式使用戶(hù)能夠根據(jù)自己的信任度去執(zhí)行所擁有的權(quán)限,但也將用戶(hù)處于受監(jiān)控狀態(tài),增強(qiáng)了安全性。
(3) 模型的授權(quán)更靈活,模型的授權(quán)根據(jù)信任度來(lái)獲得權(quán)限,而信任度是根據(jù)Hadoop日志文件中用戶(hù)的行為來(lái)計(jì)算的,所以授權(quán)更靈活。
參考文獻(xiàn)
[1] 姚治菊,譚良.Hadoop云平臺(tái)適合企業(yè)云存儲(chǔ)的訪問(wèn)控制模型[J].小型微型計(jì)算機(jī)系統(tǒng),2016(6):1185?1190.
[2] 李昊,張敏,馮登國(guó),等.大數(shù)據(jù)訪問(wèn)控制研究[J].計(jì)算機(jī)學(xué)報(bào),2017(1):72?91.
[3] 葉春曉,尉法文.基于BLP模型的XML訪問(wèn)控制研究[J].計(jì)算機(jī)工程,2011(14):124?127.
[4] 周向軍.基于BLP/BIBA混合的云計(jì)算數(shù)據(jù)中心安全訪問(wèn)控制模型[J].信息安全與技術(shù),2016(1):28?33.
[5] 王于丁,楊家海,徐聰,等.云計(jì)算訪問(wèn)控制技術(shù)研究綜述[J].軟件學(xué)報(bào),2015(5):1129?1150.
[6] 吳江棟,李偉華,安喜鋒.基于RBAC的細(xì)粒度訪問(wèn)控制方法[J].計(jì)算機(jī)工程,2008(20):52?54.
[7] 劉莎,譚良.Hadoop云平臺(tái)中基于信任的訪問(wèn)控制模型[J].計(jì)算機(jī)科學(xué),2014(5):155?163.
[8] 陳懋.基于信任的云計(jì)算訪問(wèn)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2016,39(11):82?85.
[9] 李凌霞.云環(huán)境下基于BP神經(jīng)網(wǎng)絡(luò)的電子商務(wù)企業(yè)信任評(píng)估模型研究[J].電子商務(wù),2016(5):40?41.
[10] 樊振宇.BP神經(jīng)網(wǎng)絡(luò)模型與學(xué)習(xí)算法[J].軟件導(dǎo)刊,2011(7):66?68.endprint