?

基于角色和屬性的零信任訪問控制模型研究

2024-03-12 09:18許盛偉劉昌赫劉家興
信息安全研究 2024年3期
關鍵詞:數組訪問控制信任

許盛偉 田 宇 鄧 燁 劉昌赫 劉家興

1(北京電子科技學院信息安全研究所 北京 100070)

2(北京電子科技學院網絡空間安全系 北京 100070)

3(北京電子科技學院密碼科學與技術系 北京 100070)

隨著信息網絡技術的高速發展,傳統的基于劃分安全區域,在網絡邊界處部署譬如防火墻、入侵檢測系統(IDS)、入侵防御系統(IPS)等安全設備的邊界安全理念在面對越來越繁雜的網絡基礎設施時難以設置邊界,同時在面對越來越多來自網絡內部的攻擊時無能為力.而貫徹“永不信任、始終驗證”原則的零信任[1-2]模型是解決上述問題的有效手段之一.零信任模型使訪問行為得到更細粒度的控制會持續地對訪問主體進行身份驗證和動態授權,實現對客體資源的細粒度安全訪問控制.

2010年,Forrester的分析師Kindervag[3]首次提出了“零信任”這一術語,建議對所有的訪問請求進行安全控制.之后,谷歌公司在BeyondCorp項目中開始嘗試使用零信任安全模型取代傳統的基于網絡邊界的網絡安全模型[4].目前在零信任架構下的訪問控制模型研究發展得較為迅速,但仍存在信任值評估算法不準確、對資源屬性的遍歷效率不高、無法做到既保證細粒度又保證查詢效率等問題.針對以上問題,本文提出一種基于角色和屬性的零信任訪問控制模型,主要有3個方面的貢獻:

1) 創新性地提出一種資源決策樹模型,提高了模型細粒度和查找效率;

2) 提出一種新的信任度量體系,基于邏輯回歸與調和平均數模型對信任值的計算進行優化,依據最小權限原則結合懲罰機制與獎勵機制,對訪問主體進行持續性的綜合信任評估,實現安全、高效、合理的動態訪問控制;

3) 優化零信任架構下的訪問控制流程.

1 方案設計

1.1 模型架構

零信任訪問控制模型主要由資源服務器、權限服務器、信任服務器、決策服務器以及安全網關組成,如圖1所示.與傳統VPN先連接、后認證的接入方式不同,模型采取先認證、后接入的連接方式,有效減少了模型的暴露面.

圖1 零信任訪問控制模型架構

信任服務器是動態信任評估體系的“核心”,當訪問主體進行訪問時,信任服務器會根據其屬性對其計算信任值,并根據訪問主體的信任值為其分配一個角色.資源服務器通過計算資源值量化每項資源的重要性,使用資源哈希值對資源進行標識,同時將資源劃分最小單位.權限服務器計算權限值,維護角色鏈表,生成資源決策樹.決策服務器通過訪問主體申請產生的資源值、權限值計算決策值,通過訪問主體角色(信任值)與決策值的對應關系判斷訪問主體的申請是否通過.

1.2 資源決策樹模型

資源決策樹由資源決策點組成,資源決策點包含資源哈希值、權限集合、決策區間以及連接其他資源決策點的左、右指針.當訪問主體接入模型后模型會為其分配1個角色,每個角色連接至1個資源決策樹的根節點,資源決策樹在數據結構上是一個二叉樹,如圖2所示.

圖2 資源決策樹

資源決策樹的左子樹連接同一資源不同權限的資源決策點,右子樹則連接包含不同資源的資源決策點.1個角色所能連接的二叉樹中所有節點的決策值相似.本文模型相較于目前主流的鏈表式模型在計算復雜度上有所改進.當遍歷同一角色不同資源決策點時,本文模型的計算復雜度為O(lbn),若采用鏈式模型,其計算復雜度為O(n).同時,決策樹模型在細粒度的控制上更加精細.可以實現權限更細粒度的控制,1個角色對1個資源的權限集之間不存在包含和被包含的關系.

2 算 法

2.1 信任值

信任值由信任服務器計算產生,信任值的大小反映了模型對訪問主體的信任程度.訪問主體接入模型時信任服務器會通過讀取身份信息、日志等數據對訪問主體進行綜合判斷.信任值由3個部分組成,即歷史信任值、實時信任值、懲罰與獎勵,計算過程如圖3所示.

圖3 信任值計算過程

訪問主體本次申請訪問是否通過主要由實時信任值TN、歷史信任值TB所計算出的F(TN,TB)決定.u,v為實時信任值TN、歷史信任值TB的權重.函數F如式(1)所示:

F(TN,TB)=uTN+vTB.

(1)

若模型判斷F(TN,TB)高于訪問主體申請產生的決策值,則通過訪問主體申請.在訪問主體的訪問過程中模型信任服務器通過安全網關的流量對訪問主體進行審計,直到訪問主體結束訪問.模型邊訪問邊審計,通過訪問主體流量、身份信息計算懲罰與獎勵值TRD,如訪問主體在訪問過程中存在違規行為,安全網關將立刻切斷訪問主體與資源之間的連接.訪問主體訪問結束后將F(TN,TB)與TRD的綜合計算值存入歷史信任行為數組.信任服務器為每個訪問主體維護1個歷史信任行為數組t[n][m],t[n][1]即數組第1列記錄訪問主體歷史申請訪問后模型所計算的信任值.t[n][2]即數組第2列記錄訪問主體單次歷史行為參數,存在懲罰記錄記為1,無懲罰記錄記為0.γ,δ為F(TN,TB)、懲罰與獎勵值TRD的權重.式(2)為歷史信任值的計算方法:

t[i][1]=G(F(TN,TB),TRD)=
γF(TN,TB)+δTRD, 0

(2)

訪問主體第1次接入模型時,信任服務器對訪問主體歷史信任行為數組賦初始值,訪問主體信任值不設下限,設置上限,提升信任值達到一定程度可申請提高信任值上限,信任值上限的提高需經過嚴格審核.

2.1.1 歷史信任值

通常情況下,越早的訪問記錄對當前訪問評估的參考性就越弱[5].因此,信任值產生的時間越早在整個歷史信任值計算中所占的權重應越低.此外,為節省信任服務器的資源,每個訪問主體的歷史信任行為數組規定行、列為一定值n,m.式(3)為歷史信任值衰減系數的計算方法:

(3)

A(s)為歷史信任行為數組衰減系數,即訪問主體歷史信任值的衰減系數,其中s為當前數組元素下標,p為數組最后元素下標.λ為歷史信任值調整系數.訪問主體的歷史信任值由歷史信任行為數組中的訪問主體歷史信任值元素與對應衰減系數積的和得到.式(4)為歷史信任值的計算方法:

(4)

當歷史信任數組被填滿時,即訪問主體訪問次數達到信任值數組行數n的大小,由于越早的訪問記錄效力越低,數組將最靠前的x個元素進行加權平均,將均值存入數組首位,其余元素位置均向前移動x-1,作為訪問主體歷史信任憑證,如圖4所示:

圖4 歷史信任行為數組

2.1.2 實時信任值

訪問主體接入模型時,信任服務器通過讀取訪問主體日志、訪問行為等信息得到屬于訪問主體的屬性表,其中包含訪問主體的各類信息.在計算訪問主體信任值時,首先預處理訪問主體屬性表中的數據,將屬性表中的標稱屬性值進行數值化.由于訪問主體屬性表中各屬性的取值范圍不同,取值較大的特征將會降低取值較小特征在計算過程中所起的作用.因此需要對數據進行歸一化處理.將特征的取值轉化為0~1區間內的值.f表示訪問主體屬性集中的基本元素——單個屬性的值,fmin和fmax分別為屬性的最小值和最大值.式(5)為屬性值標準化計算方法:

(5)

對訪問主體屬性數據預處理后得到身份屬性值fi,身份屬性值組成集合F={f1,f2,…,fn},首先將身份屬性集合分為l個類,l≤n,F≥F1∪F2∪…∪Fl,F1∩F2∩…∩Fl=?,F1={f1,f2,…,fi},…,Fl={fj,fj+1,…,fn},1≤i

(6)

其中fk為集合Fi內第k個屬性值,ak為fk這一指標相對應的權重.

求出l個信任分量z1,z2,…,zl后,對其求加權調和平均數.其中bi為集合Fi的權重.訪問主體實時信任值的計算方法如式(7)所示:

(7)

2.1.3 懲罰與獎勵機制

通過對訪問主體訪問行為進行審計,審計結果以懲罰值、獎勵值的形式反映到信任值上.懲罰與獎勵值TRD由懲罰值TD、獎勵值TR這2部分組成.TRD的計算方法如式(8)所示:

(8)

懲罰值的計算由懲罰值基數g1、懲罰因子f1這2部分組成,TD=f1g1.模型對訪問主體的違規行為進行分級,等級越高代表申請行為的危害越大,所得懲罰值基數越大.式(9)為根據訪問主體的違規等級給出的懲罰值基數g1的計算方法:

(9)

其中R為非法操作等級總數,r為當前操作對應的非法等級.

式(10)為根據訪問主體歷史訪問記錄的懲罰因子f1的計算方法:

(10)

其中k1(t[n][m])為行為數組中最大的連續違規次數,τ為違規次數系數.

獎勵值的計算由獎勵值基數g2、獎勵因子f2這2部分組成,TR=f2g2.式(11)為獎勵值基數g2的計算方法,ξ為基礎獎勵系數:

(11)

式(12)給出獎勵因子f2的計算方法:

(12)

其中k2(t[n][m])為行為數組中近期連續不違規的次數,d為預設連續不違規次數.

2.2 資源值

資源值N由資源服務器計算產生,它描述了資源在模型中的重要程度和敏感程度.資源值的大小反映了資源的價值,資源的價值難以量化,因其不僅取決于客觀屬性因素,也需采納行業專家的意見,計算可采用基于一致矩陣的模糊層次分析法[6],通過層次分解模型和基于模糊數構建的各個證據間重要性的判斷矩陣進行計算[7].

(13)

通過模糊一致性矩陣可以得到屬性類中各屬性的權重.通過對α個β階矩陣中的r值進行計算,可獲得屬性的權重矩陣W=(ωij)α×β,計算方法如式(14)所示:

(14)

在權重矩陣W、屬性矩陣E中屬性值與其權重一一對應,以此計算相應的資源值N.

2.3 權限值

權限值S由權限服務器計算生成,它表示權限的重要程度,即在權限被濫用時對模型可能造成的危害程度.使用層次分析法來確定不同類型權限之間的相對重要程度,進而計算出每個權限的權重.首先將所有權限列出,將其分為數個大類,大類之后在各個大類中劃分小類.使用計算資源值相同的算法進行計算,最終獲得權限值S={S1,S2,…}.

訪問主體進行非法訪問時,模型會記錄違規訪問主體本次所申請的權限,若模型存在大量違規申請某項權限的記錄,且數量達到一定閾值后,權限服務器將會更新這一權限的權限值.Vio為一段時間訪問主體訪問并申請Sx權限的違規次數,Nor為這段時間訪問主體訪問總量.新Sx值的計算方法如式(15)所示:

(15)

2.4 決策值

決策值是由決策服務器計算生成的,用以綜合評估對特定資源的權限申請的安全性.通過資源值、權限值計算得到決策值P.σ,φ分別代表資源值、決策值系數,由于資源值、權限值同時增加會造成用戶權限爆炸的問題,設定θ為爆炸系數.式(16)為決策值的計算方法:

P=(σN×φS)θ.

(16)

3 實驗與分析

3.1 模型分析

對比傳統的資源決策鏈式模型[9],假設資源決策點的數量為n,角色數量為m,鏈式模型對訪問主體進行查找的時間復雜度為O(m+n);本文資源決策樹模型下對訪問主體進行查找的時間復雜度僅為O(m+lbn).此外,在文獻[7]中不同角色的資源決策點的權限集合存在包含關系,導致訪問主體在受到資源決策點授權時可能獲得不必要的權限,違背了最小特權原則.

對比結合屬性的RBAC模型[10-11],本文模型引入了資源值、權限值的量化計算,將資源劃分為更小的單位,保證了資源授權訪問的細粒度.在傳統的信任值計算[5,7]中,單一屬性值的極端情況往往對整體信任值的影響有限,導致訪問控制模型對某些違規情況的檢測不夠敏感.對比其他通過計算信任值進行訪問控制的模型,本文在計算信任值算法上作出改進,通過引入調和平均數的邏輯回歸算法加強了單一信任屬性對整體信任值數值的影響.

3.2 信任值計算

應用場景采取CIC-IDS-2017[12]數據集包含的屬性,其中涵蓋了多種網絡攻擊特征,其中包括源IP地址、源端口號、流持續時間等屬性,將這些屬性劃分為基本網絡屬性、流量統計特征、計算機網絡層次特征等大類,并將每一大類賦予相應的權重.

1) 實時信任值指標數量測試.

屬性的個數會對訪問主體實時信任值的計算產生影響,通常獲取訪問主體的信息越多對其信任值的計算也越準確,但有限的資源只允許通過有限的屬性數量進行計算,因此需要量化屬性個數與實時信任值關系.不同屬性由于權重的不同導致信任增長速率的貢獻不同,測試數據取屬性值范圍中間值.測試數據如圖5所示,隨著屬性數量的增多,信任值的增長趨于平緩,最終趨于定值.

圖5 實時信任值指標數量測試結果

2) 獎懲機制測試.

在信任值計算的實驗中設置了Alice,Bob,Carol,Dave這4個用戶,實時信任值設定為1,歷史信任值數組大小為5,歷史信任值數組x值為3.其中Alice為謹慎的合法用戶,Bob為好奇的合法用戶,Carol為謹慎的非法用戶,Dave為好奇的非法用戶.他們的訪問記錄為:NoteAlice={0,0,0,0,0,0,0},NoteBob={0,1,0,0,1,0,1},NoteCarol={0,1,1,0,0,3,2},NoteDave={1,2,3,4,5,5,5},集合中的數字代表訪問主體每次的違規等級,實驗結果如圖6所示,算法較為敏感地反映了訪問主體的各種行為,對于偶爾輕微的違規行為,模型記錄在案并不進行嚴厲懲罰;對于明顯的違規行為模型則會作出果斷嚴厲的處罰,從而禁止訪問主體的訪問行為.

圖6 獎懲機制測試結果

3) 歷史信任值數組x值測試.

采用Carol的訪問記錄進行測試,歷史信任值數組大小設置為5,測試結果如圖7所示.根據結果可以得出,信任值數組x值增大到一定值時對信任值的影響趨于穩定,x值越小信任值對訪問主體行為越敏感.

圖7 歷史信任值數組x值測試結果

4 結 語

本文給出一種基于角色和屬性的零信任訪問控制模型.設計了一種全新的身份管理樹狀模型,提高了對資源決策點檢索速度,同時增加了資源劃分的細粒度,在資源決策樹的基礎上,通過引入信任值、資源值、權限值的計算來精確訪問控制能力,通過引入調和平均數強化了單一屬性極端情況下對訪問主體信任值的影響,通過資源值、權限值的計算保證了模型的最小權限原則,最終提高整個模型的安全性.

猜你喜歡
數組訪問控制信任
JAVA稀疏矩陣算法
JAVA玩轉數學之二維數組排序
表示信任
Excel數組公式在林業多條件求和中的應用
嚶嚶嚶,人與人的信任在哪里……
ONVIF的全新主張:一致性及最訪問控制的Profile A
從生到死有多遠
動態自適應訪問控制模型
淺析云計算環境下等級保護訪問控制測評技術
大數據平臺訪問控制方法的設計與實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合