一種用於Hadoop雲平臺的用戶動態訪問控制方法與流程
2023-09-23 21:20:50 2

本發明涉及計算機權限管理和訪問控制技術領域,特別涉及一種用於hadoop雲平臺的用戶動態訪問控制方法。
背景技術:
hadoop雲平臺是一種開源分布式計算雲平臺,因其具有高可靠性、高擴展性、高效性和高容錯性的特點受到了各大電商及網際網路企業的青睞,與此同時,隨著hadoop雲平臺在各領域的廣泛應用,其安全問題也日益突出;在眾多的hadoop雲平臺安全問題中,數據安全是hadoop雲平臺安全的核心問題之一,訪問控制通過限制用戶對數據信息的訪問能力及範圍從而保證資源不被非法使用和訪問,成為雲平臺中數據安全的重要保障。而現有hadoop雲平臺在安全訪問控制機制設計上並沒有充分考慮其用戶正常或異常的屬性變化,使得其存在重大安全隱患。
目前,國內外針對hadoop雲平臺安全機制的研究取得了一定的進展,guptac等基於密度估計和主成分分析方法pca設計了一種hadoop平臺異常檢測系統,實時監控hadoop雲平臺用戶行為,由於該方法缺乏相應的容錯機制和異常用戶處理機制,反而會增加雲平臺管理員工作量;tanz等提出一種基於信任度的動態訪問控制模型,但沒有將信任模型與訪問控制模型很好地結合在一起,且僅僅進行了理論上的分析。jingx等提出了一種基於用戶行為評估的雲平臺動態訪問控制模型,由於沒有描述用戶行為的檢測方法且其模型過於複雜,故不能較好地與現有hadoop雲平臺結合。
技術實現要素:
本發明的目的是提供一種用於hadoop雲平臺的用戶動態訪問控制方法。
為此,本發明技術方案如下:
一種用於hadoop雲平臺的用戶動態訪問控制方法,其中,hadoop雲平臺包括作業系統、主伺服器和認證伺服器,該用於hadoop雲平臺的用戶動態訪問控制方法包括按順序進行的下列步驟:
1)搭建處理模塊的s1階段:在此階段,在hadoop雲平臺的主伺服器上建立指令收集模塊、指令處理模塊、用戶請求接收模塊、行為分類模塊、角色劃分模塊,然後進入s2階段;
2)指令序列收集的s2階段:在此階段,指令收集模塊從主伺服器中收集用戶操作記錄,並針對每個用戶建立相應的行為資料庫,然後進入s3階段;
3)對用戶指令進行處理的s3階段:在此階段,指令處理模塊依次採用串表壓縮算法和字典壓縮算法分別對每個用戶的所有指令進行並行化處理,提取每個用戶的指令特徵值,然後進入s4階段;
4)生成全局k模型的s4階段:在此階段,根據每個用戶的指令特徵值針對每個用戶生成k個壓縮字典,並將k個壓縮字典組成全局k模型g,其中,全局k模型g={cd1,cd2,..cdi,..cdk},然後進入s5階段;
5)接收用戶請求的s5階段:在此階段,用戶根據自身需要訪問hadoop雲平臺,發出訪問請求,用戶請求接收模塊根據用戶的訪問請求生成用戶指令行為序列s及用戶行為指令序列s的用戶行為模式sp,然後進入s6階段;
6)對用戶行為進行評定的s6階段:在此階段,利用全局k模型中的k個壓縮字典以cd投票的方式判斷用戶行為模式sp是否異常,並利用行為分類模塊對用戶行為模式sp進行標定,得到帶有分類標籤的用戶行為模式,然後進入s7階段;
7)計算綜合評估值的s7階段:在此階段,結合步驟6)中得到的帶有分類標籤的用戶行為模式計算用戶當前行為評估值、用戶歷史行為評估值和用戶推薦行為評估值;並利用用戶當前行為評估值、用戶歷史行為評估值、用戶推薦行為評估值和用戶初始評估值計算用戶的綜合評估值,然後進入s8階段;
8)對用戶進行角色分配的s8階段:在此階段,角色劃分模塊根據用戶的綜合評估值判斷用戶行為是否異常,如用戶行為正常,則管理員根據綜合評估值賦予權限並為其分配角色實現資源訪問,若用戶行為異常則拒絕用戶的訪問並給出拒絕服務提示。
所述的步驟3)中對用戶操作指令進行處理的方法包括按順序進行的下列步驟:
a)將收集到的所有用戶的指令操作記錄中的指令參數信息濾除,僅保留指令名稱,使每個用戶固定數量的指令名稱按照時間信息排成一個指令流而形成用戶指令序列塊b;
b)從用戶指令序列塊b中提取序列中所有的指令字符組合,即用戶指令序列模式pi,並計算用戶指令序列模式pi在當前用戶指令序列塊b中出現的次數fi,得到lzw字典d{pi,fi};
c)然後在lzw字典中按照用戶指令序列模式pi在該用戶指令序列塊b中的權重ωi和模式長度li提取最終的歷史用戶行為模式cp即為用戶的指令特徵值。
所述的步驟c)中用戶的指令特徵值的提取方法為在lzw字典d中存在的用戶指令序列模式pi將每一個與用戶指令序列模式pi的編輯距離相差為1的其它用戶指令序列模式px放在一個子集中,選擇子集中權重值與模式長度乘積最大的用戶指令序列模式作為用戶的指令特徵值。
所述的步驟6)中全局k模型g隨著用戶新指令塊的加入而更新,每當用戶的新指令塊完整生成一個壓縮字典後,統計全局k模型中各個壓縮字典判定該用戶行為模式sp為正常的總次數,次數統計從該用戶行為模式sp首次訪問開始到本次訪問為止,使用新生成的壓縮字典替換掉全局k模型中判定用戶行為模式sp為正常的總次數最少的壓縮字典。
所述的步驟6)中對用戶行為進行評定時,若用戶行為指令序列s的用戶行為模式sp與單個壓縮字典cdi中的任意歷史用戶行為模式cp的編輯距離均大於x%*l,則單個壓縮字典cdi判定用戶行為模式sp為異常,其中,l為歷史用戶行為模式cp的長度,且x>30。
所述的步驟6)中對用戶行為進行評定時,若全局k模型中有大於k/2個壓縮字典判定用戶行為模式sp異常,則全局k模型判定該用戶行為模式sp異常,否則為正常;若k為偶數且全局k模型中判定用戶行為模式sp異常的壓縮字典數為k/2,則根據主伺服器中之前存儲的對該用戶行為模式sp的最新判定結果進行判定,若主伺服器中存儲用戶行為模式sp的最新判定結果異常,則當前用戶行為模式sp為異常,否則為正常。
所述的步驟7)中計算用戶歷史行為評估值時採用滑窗算法。
所述的步驟8)中對用戶進行角色分配的方法包括按順序進行的下列步驟:
ⅰ)設定多個初始角色,並由管理員針對每個初始角色設定訪問權限;
ⅱ)將作業系統上的所有用戶均映射為hadoop雲平臺用戶,實現平臺用戶的統一管理;
ⅲ)建立正常用戶組gpn和異常用戶組gpa,並將初始時所有通過身份認證的用戶加入正常用戶組gpn,與此同時,將正常用戶組gpn添加到服務級訪問控制列表中;
ⅳ)主伺服器將用戶useri的綜合行為評估值t同閾值td進行比較:當t≤td時,查詢搜索異常用戶組gpa中有無用戶useri,若無用戶useri,則將用戶useri加入異常用戶組gpa,並記錄加入時間times及有效期限timev,刪除正常用戶組gpn中用戶useri;若有用戶useri,則重置其有效期限timev,當timev≤0,將用戶useri重新添加入正常用戶組gpn;
ⅴ)用戶useri通過認證伺服器身份認證和主伺服器驗證後向主伺服器發出雲服務請求時,主伺服器根據服務級訪問控制列表中用戶列表判斷是否響應該請求:若用戶useri在訪問控制列表中,則響應該請求,結合管理員授予該用戶的權限,為其分配不同的角色,實現對資源的訪問;否則,通過token返回拒絕標誌並給出拒絕服務提示。
與現有技術相比,該用於hadoop雲平臺的用戶動態訪問控制方法佔用伺服器內存較少,保證伺服器的運行速度和反應速度,且對用戶行為分類準確率高,訪問控制效果相對穩定,能夠實時有效地實現對hadoop雲平臺用戶的動態訪問控制,保證hadoop雲平臺的安全性。
附圖說明
圖1為本發明提供的用於hadoop雲平臺用戶動態訪問控制方法的流程圖。
圖2為hadoop雲平臺用戶動態訪問控制系統的結構框圖。
具體實施方式
下面結合附圖及具體實施例對本發明做進一步的說明,但下述實施例絕非對本發明有任何限制。
如圖1-2所示,該用於hadoop雲平臺的用戶動態訪問控制方法包括按順序進行的下列步驟:
1)搭建處理模塊的s1階段:在此階段,在hadoop雲平臺的主伺服器上建立指令收集模塊1、指令處理模塊2、用戶請求接收模塊3、行為分類模塊4、角色劃分模塊5,然後進入s2階段;
2)指令序列收集的s2階段:在此階段,指令收集模塊1從主伺服器中收集用戶操作記錄,並針對每個用戶建立相應的行為資料庫,然後進入s3階段;
3)對用戶指令進行處理的s3階段:在此階段,指令處理模塊2依次採用串表壓縮算法和字典壓縮算法分別對每個用戶的所有指令進行並行化處理,提取每個用戶的指令特徵值,然後進入s4階段;
4)生成全局k模型的s4階段:在此階段,根據每個用戶的指令特徵值針對每個用戶生成k個壓縮字典,並將k個壓縮字典組成全局k模型g,其中,全局k模型g={cd1,cd2,..cdi,..cdk},然後進入s5階段;
5)接收用戶請求的s5階段:在此階段,用戶根據自身需要訪問hadoop雲平臺,發出訪問請求,用戶請求接收模塊3根據用戶的訪問請求生成用戶指令行為序列s及用戶行為指令序列s的用戶行為模式sp,然後進入s6階段;
6)對用戶行為進行評定的s6階段:在此階段,利用全局k模型中的k個壓縮字典cd以投票的方式判斷用戶行為模式sp是否異常,並利用行為分類模塊4對用戶行為模式sp進行標定,得到帶有分類標籤的用戶行為模式,然後進入s7階段;
7)計算綜合評估值的s7階段:在此階段,結合步驟6)中得到的帶有分類標籤的用戶行為模式計算用戶當前行為評估值、用戶歷史行為評估值和用戶推薦行為評估值;並利用用戶當前行為評估值、用戶歷史行為評估值、用戶推薦行為評估值和用戶初始評估值計算用戶的綜合評估值,然後進入s8階段;
8)對用戶進行角色分配的s8階段:在此階段,角色劃分模塊5根據用戶的綜合評估值判斷用戶行為是否異常,如用戶行為正常,則管理員根據綜合評估值賦予權限並為其分配角色實現資源訪問,若用戶行為異常則拒絕用戶的訪問並給出拒絕服務提示。
所述的步驟3)中對用戶操作指令進行處理的方法包括按順序進行的下列步驟:
a)將收集到的所有用戶的指令操作記錄中的指令參數信息濾除,僅保留指令名稱,使每個用戶固定數量的指令名稱按照時間信息排成一個指令流形成用戶指令序列塊b;
b)從用戶指令序列塊b中提取序列中所有的指令字符組合,即用戶指令序列模式pi,並計算用戶指令序列模式pi在當前序列塊中出現的次數fi,得到lzw字典d{pi,fi};
c)然後按照用戶指令序列模式pi在該用戶指令序列塊b中的權重ωi和模式長度li提取最終的歷史用戶行為模式cp即為用戶的指令特徵值。
所述的步驟c)中用戶指令特徵值的提取方法為lzw字典d中存在的指令序列模式pi將把每一個與指令序列模式pi的編輯距離相差為1的其它指令序列模式px放在一個子集中,選擇子集中權重值與模式長度乘積最大的指令序列模式作為用戶指令特徵值。
所述的步驟6)中全局k模型g隨著用戶新指令塊的加入而更新,每當用戶的新指令塊完整生成一個壓縮字典後,統計全局k模型中各個壓縮字典判定該用戶行為模式sp為正常的總次數,次數統計從該用戶行為模式sp首次訪問開始到本次訪問為止,使用新生成的壓縮字典替換掉全局k模型中判定用戶行為模式sp為正常的總次數最少的壓縮字典。
所述的步驟6)中對用戶行為進行評定時,若用戶行為指令序列s的用戶行為模式sp與單個壓縮字典cdi中的任意歷史用戶行為模式cp的編輯距離均大於x%*l,則單個壓縮字典cdi判定用戶行為模式sp為異常,其中,l為歷史用戶行為模式cp的長度,且x>30。
所述的步驟6)中對用戶行為進行評定時,若全局k模型中有大於k/2個壓縮字典判定用戶行為模式sp異常,則全局k模型判定該用戶行為模式sp異常,否則為正常;若k為偶數且全局k模型中判定用戶行為模式sp異常的壓縮字典數為k/2,則根據主伺服器中之前存儲的對該用戶行為模式sp的最新判定結果進行判定,若主伺服器中存儲用戶行為模式sp的最新判定結果異常,則當前用戶行為模式sp為異常,否則為正常。
所述的步驟7)中計算用戶歷史行為評估值時採用滑窗算法。
所述的步驟8)中對用戶進行角色分配的方法包括按順序進行的下列步驟:
ⅰ)設定多個初始角色,並由管理員針對每個初始角色設定訪問權限;
ⅱ)將作業系統上的所有用戶均映射為hadoop雲平臺用戶,實現平臺用戶的統一管理;
ⅲ)建立正常用戶組gpn和異常用戶組gpa,並將初始時所有通過身份認證的用戶加入正常用戶組gpn,與此同時,將正常用戶組gpn添加到服務級訪問控制列表中;
ⅳ)主伺服器將用戶useri的綜合行為評估值t同閾值td進行比較:當t≤td時,查詢搜索異常用戶組gpa中有無用戶useri,若無用戶useri,則將用戶useri加入異常用戶組gpa,並記錄加入時間times及有效期限timev,刪除正常用戶組gpn中用戶useri;若有用戶useri,則重置其有效期限timev,當timev≤0,將用戶useri重新添加入正常用戶組gpn;
ⅴ)用戶useri通過認證伺服器身份認證和主伺服器驗證後向主伺服器發出雲服務請求時,主伺服器根據服務級訪問控制列表中用戶列表判斷是否響應該請求:若用戶useri在訪問控制列表中,則響應該請求,結合管理員授予該用戶的權限,為其分配不同的角色,實現對資源的訪問;否則,通過token返回拒絕標誌並給出拒絕服務提示。
本發明提供的用於hadoop雲平臺的用戶動態訪問控制方法的實施例如下:
首先,在hadoop雲平臺的主伺服器上建立指令收集模塊1、指令處理模塊2、用戶請求接收模塊3、行為分類模塊4、角色劃分模塊5;
然後,指令收集模塊1從主伺服器中收集用戶操作記錄,並針對每個用戶建立相應的行為資料庫,
其次,指令處理模塊2依次採用串表壓縮算法和字典壓縮算法分別對每個用戶的所有指令進行並行化處理,提取每個用戶的指令特徵值的方法是:
a)將收集到的所有用戶的指令操作記錄中的指令參數信息濾除,僅保留指令名稱,使每個用戶固定數量的指令名稱按照時間信息排成一個指令流而形成用戶指令序列塊b;
b)從用戶指令序列塊b中提取序列中所有的指令字符組合,即用戶指令序列模式pi,並計算用戶指令序列模式pi在當前用戶指令序列塊b中出現的次數fi,得到lzw字典d{pi,fi};
c)然後在lzw字典中按照用戶指令序列模式pi在該用戶指令序列塊b中的權重ωi和模式長度li提取最終的歷史用戶行為模式cp即為用戶的指令特徵值;用戶指令特徵值的提取方法為在lzw字典d中存在的指令序列模式pi將每一個與指令序列模式pi的編輯距離相差為1的其它用戶指令序列模式px放在一個子集中,選擇子集中權重值與模式長度乘積最大的用戶指令序列模式作為用戶的指令特徵值;
其中,用戶指令序列模式pi的權重ωi計算的公式為:
公式(1)中,fi是用戶指令序列模式pi在當前用戶指令序列塊b中出現的次數,n是當前用戶指令序列塊b中互不相同的用戶指令序列模式pi的數量;
接著,根據每個用戶的指令特徵值針對每個用戶生成k個壓縮字典,並將k個壓縮字典組成全局k模型g,其中,全局k模型g={cd1,cd2,..cdi,..cdk};
接著,當用戶根據自身需要訪問hadoop雲平臺,發出訪問請求時,用戶請求接收模塊3根據用戶的訪問請求生成用戶指令行為序列s及用戶行為指令序列s的用戶行為模式sp;
緊接著,利用全局k模型中的k個壓縮字典以投票的方式判斷用戶行為模式sp是否異常,並利用行為分類模塊4對用戶行為模式sp進行標定,若全局k模型中有大於k/2個壓縮字典判定用戶行為模式sp異常,則全局k模型判定該用戶行為模式sp異常,否則為正常;若k為偶數且全局k模型中判定用戶行為模式sp異常的壓縮字典數為k/2,則根據主伺服器中之前存儲的對該用戶行為模式sp的最新判定結果進行判定,若主伺服器中存儲用戶行為模式sp的最新判定結果異常,則當前用戶行為模式sp為異常,否則為正常,並對用戶行為模式sp進行標定,用戶行為模式sp正常標定為1,異常標定為0,從而得到帶有分類標籤的用戶行為模式;全局k模型g隨著用戶新指令塊的加入而更新,每當用戶的新指令塊完整生成一個壓縮字典後,統計全局k模型中各個壓縮字典判定該用戶行為模式sp為正常的總次數,次數統計從該用戶行為模式sp首次訪問開始到本次訪問為止,使用新生成的壓縮字典替換掉全局k模型中判定用戶行為模式sp為正常的總次數最少的壓縮字典。
然後,計算用戶當前行為評估值、用戶歷史行為評估值和用戶推薦行為評估值;並利用用戶當前行為評估值、用戶歷史行為評估值、用戶推薦行為評估值和用戶初始評估值計算用戶的綜合評估值,用戶綜合評估值計算公式如下:
t=ts+α×vn+β×vp+γ×vr(2)
公式(2)中,t為用戶綜合評估值,ts為hadoop雲平臺為所有用戶設置的初始行為評估值,vn為用戶當前行為評估值,vp為用戶歷史行為評估值,vr為用戶推薦行為評估值;α,β,γ分別為用戶當前行為評估值vn,用戶歷史行為評估值vp和用戶推薦行為評估值vr的權重,按照用戶行為評估原則,三者應滿足α>β>γ且α+β+γ=1;
其中,用戶當前行為評估值vn的計算公式如下:
vn=w+λ(-θ×j)(3)
公式(3)中,w為常數;0≤θ≤1,θ表示調節異常行為對用戶當前行為評估值vn的影響作用大小;λ為選擇因子,用戶當前行為為異常行為時,λ=1;否則,λ=0;j是指從用戶被重新加入到正常用戶組至進行當前行為期間,其行為被判定為異常的累積次數。
用戶歷史行為評估值vp的計算採用滑窗算法,其中,滑窗左沿以外的用戶行為記錄為過期記錄,滑窗右沿設置到當前用戶行為的左側;評估值計算時僅計算滑窗內的用戶行為評估值,用戶歷史行為評估值vp的計算公式如下:
公式(4)中,l為滑窗長度;i為滑窗內用戶行為模式sp的序號;vn為用戶當前行為評估值。
用戶推薦行為評估值vr的計算公式如下:
公式(5)中,k為hadoop雲平臺給出的用戶推薦評估值的個數;vri表示hadoop雲平臺給出的該用戶的第i個推薦行為評估值。
最後,角色劃分模塊5根據用戶的綜合評估值判斷用戶行為是否異常的方法包括以下幾個步驟:
ⅰ)設定多個初始角色,並由管理員針對每個初始角色設定訪問權限;
ⅱ)將作業系統上的所有用戶均映射為hadoop雲平臺用戶,實現平臺用戶的統一管理;
ⅲ)建立正常用戶組gpn和異常用戶組gpa,並將初始時所有通過身份認證的用戶加入正常用戶組gpn,與此同時,將正常用戶組gpn添加到服務級訪問控制列表中;
ⅳ)主伺服器將用戶useri的綜合行為評估值t同閾值td進行比較:當t≤td時,查詢搜索異常用戶組gpa中有無用戶useri,若無用戶useri,則將用戶useri加入異常用戶組gpa,並記錄加入時間times及有效期限timev,刪除正常用戶組gpn中用戶useri;若有用戶useri,則重置其有效期限timev,當timev≤0,將useri重新添加入正常用戶組gpn;
ⅴ)用戶useri通過認證伺服器身份認證和主伺服器驗證後向主伺服器發出雲服務請求時,主伺服器根據服務級訪問控制列表中用戶列表判斷是否響應該請求:若用戶useri在訪問控制列表中,表明該用戶行為正常,則響應該請求,結合管理員授予該用戶的權限,為其分配不同的角色,實現對資源的訪問;否則,該用戶行為異常,通過token返回拒絕標誌並給出拒絕服務提示。