董玉蓉,王鵬程
(1.河西學院信息技術與傳媒學院,張掖 734000;2.中國聯通張掖市分公司,張掖 734000)
訪問控制技術是公認的確保系統和數據安全共享的重要手段之一[1],一直處于安全系統的核心地位。傳統的基于角色的訪問控制是通過定義用戶所有的授權規則來實現的,從角色的角度進行權限的劃分易造成過度授權的問題[1],從效率和準確性兩方面來說也不是理想的方式[2]。利用相關實體的屬性作為授權基礎來實現訪問控制,很好地解決了行業分布式應用的可信關系,而且通過構造用戶權限和數據權限的復合組合控制方式,提高了敏感數據的安全性[3]。文獻[4]在ABAC模型的基礎上結合多級安全策略[5]提出了基于用戶訪問行為的AMAC模型,實現了對云計算環境中的多級安全訪問。并基于Rushby提出的信息流不干擾理論,證明了AMAC模型中多級訪問控制策略的安全性。文獻[6]從分析云計算用戶的工作習慣與任務完成時間期望值在時間軸上的變化規律出發,建立用戶行為特征信息表,從而預測出不同時間片內用戶的任務提交規律以及用戶期望完成時間,動態調整云計算環境中的資源分配策略。針對用戶隨時、隨地訪問產生的安全屬性動態伸縮調整需求,文獻[7]結合ABAC機制和BLP模型,對行為進行安全級別細化,并通過行為映射函數獲取安全屬性,提出了響應的安全規則,為授權策略的動態調整提供了支撐。文獻[8]在文獻[7]研究的基礎上,針對傳統訪問控制技術中用戶行為和角色不確定帶來的安全隱患,通過用戶角色樹將用戶的信譽與服務訪問授權進行映射,提出了一種基于動態授權機制的自適應云訪問控制方法,能夠在一定程度上保證信息的機密性和完整性。
大數據背景下的訪問控制不僅要考慮數據的安全,還要考慮由數據的隱私保護問題[2]。在分布式信息系統中,保障單個信息的機密性不能確保整個系統的機密性。在多級安全訪問控制模型中,客體的安全等級可以分為多級,客體又可以按照內容或主題的不同被分為多種類別或劃分在不同的范疇。實際應用中,一個安全級別內的客體又由多個屬于不同類別或范疇的客體組成,而不同的安全級別會對應不同的訪問范疇。主體安全級別越高,能夠訪問的客體安全等級越高,訪問范疇也越大。
理想的狀態下,主體的某一訪問操作具有針性,即訪問的客體是明確的。當主體的訪問行為級別符合客體的某一安全等級,他就有權訪問這個安全等級下且在主體訪問范疇內的任意客體。若一個主體的訪問操作沒有明確的目標或有特殊目的時,他能夠訪問允許其訪問的所有客體,通過訪問他能夠獲取更多的信息。而這些信息的數量大大超過了有明確訪問目標的普通用戶,這類訪問行為被稱為過度訪問。用戶獲取的信息量越大,系統的隱私信息泄露的風險就越大。本文中將具有過度訪問行為的用戶稱為惡意用戶。而在實際應用中,內部用戶一直都是信息泄露的頭號威脅[5]。因此,保障信息系統的機密性,不僅要保障信息的機密性,還要對內部用戶的過度訪問行為進行約束和監控。
使用風險閾值來對訪問行為進行判定是訪問控制有效的手段之一。為了能夠更好地保護信息系統的機密性,本文在文獻[8]模型的基礎上,允許用戶先進行訪問,并使用主體訪問所獲得的信息量量化風險。通過比較風險值與風險閾值判定用戶的行為類別,來實現對訪問行為的動態監控,達到保障整個信息系統敏感信息不被泄露的目的。
為了能更好地描述訪問控制模型,本文將信息系統的使用者抽象為主體,將操作對象抽象為客體,主體對客體的訪問操作抽象為行為,對整個信息系統的保密性進行研究。下面對基于行為監控的多級安全訪問模型中的基本元素進行定義。
主體:系統內資源的使用者。根據用戶訪問行為的特征,分為普通用戶和惡意用戶。兩種用戶對應的主體分別為普通主體和惡意主體。主體集合記為S,單個主體用si表示。
客體:信息系統內包含的所有資源,能被主體訪問。客體集合記為O,單個客體用oj表示。
會話:主體通過會話向系統提出訪問客體的請求,包括訪問主體信息si、客體信息oj、操作類型。
屬性:屬性用來描述主體和客體的特征。主體和客體擁有多個屬性,每個屬性又有多個屬性值。主體屬性包括用戶名、安全級別、訪問范疇等;一個主體的一個屬性有且僅有一個取值。客體屬性包括客體名、安全等級、所屬類別等;一個客體的一個屬性有且僅有一個取值。其中主體的安全級別、訪問范疇被稱為主體安全屬性;客體安全等級、所屬類別被稱為客體安全屬性。
行為:主體在當前環境中能夠對客體進行的操作,行為集合記為A。主體的訪問行為由主體安全屬性、客體安全屬性、會話發出的時間、環境來約束。為了能夠更好地實現行為監控,進行風險管理時,按照風險閾值的不同,行為被分為安全行為、低危行為、高危行為三種。
本模型在訪問控制實現過程中,沿用原模型對主體屬性到行為屬性的映射,結合客體的安全等級為主體確定操作權限。改進之處是在訪問過程中將主體訪問行為獲得的信息熵作為風險值,并通過風險閾值建立行為與訪問等級、訪問范疇之間對應關系,實現對主體行為的實時監控。
對于系統而言,無法事先確定用戶屬于哪一類用戶,因此本文中的模型允許用戶先進行訪問,并在以下兩個假設的基礎上進行研究。兩個假設表明用戶已經獲得系統允許能夠對客體進行訪問操作。
假設1初始化
用戶初始化:用戶在系統注冊時,系統依據安全需求,為該用戶進行了角色劃分、安全屬性賦值與初始化,對應的主體記si,其初始化屬性為Init(si)=(ID(si),role,linit,acinit)。其中ID(si)為用戶在系統內的標識屬性,role為主體的角色屬性,linit與acinit是主體si的安全級別和訪問范疇。
數據資源初始化:依據系統安全需求對數據資源進行初始化,為其進行安全屬性賦值與初始化,對應的客體記為oj,其屬性為Init(oj)=(ID(oj),lj,ck),其中ID(oj)為客體在系統內的標識屬性,lj與ck表示客體oj的安全等級和類別標識。
假設2用戶訪問授權
系統對用戶訪問的授權是以主體初始化信息為基礎。用戶在成功登錄系統后,發送訪問請求req(si,[an,oj)],其中an∈A表示操作類型。系統接受到訪問請求之后,結合主體屬性、請求發送的時態、環境、客體屬性,獲取主體行為屬性信息,且通過查找權限分配表后允許主體的訪問請求。
量化風險需要確定一個基準值作為閾值,用來確定主體的訪問行為是否產生了風險。確定風險閾值也就是設置2類主體(普通用戶和惡意用戶)訪問行為產生信息量的分界值,并能通過分界值來區分2類用戶和三種訪問行為。若2類用戶訪問客體的產生的信息熵分別服從2個具有不同均值的正態分布,那么全體用戶產生的信息熵就是一個混合的正態分布。
在訪問進行的過程中,通過分析用戶在一段時間內的行為和選擇訪問客體的類別來考察用戶的行為以確定風險。由假設可知,惡意用戶不論是在訪問行為還是訪問客體的選擇上,與普通用戶相比更加多樣化,即混亂程度高于普通用戶,因此可以使用信息熵對風險進行量化。熵值越高,說明該用戶獲得敏感信息的風險越大。
風險值即訪問主體的行為對系統主體內敏感信息泄露的風險程度,用risk來表示,其值的大小主要受訪問主體行為、客體類別等因素的影響,取值為risk∈[0,1]。
在主體訪問系統資源的同時,系統會對主體的訪問行為進行記錄并分析計算出風險值。主體的訪問記錄是一個三元組記為Op(si,aj,ck),表示訪問主體si對所屬某一類別客體進行的一次操作,其中aj為主體的行為,且aj∈Ai(Ai表示主體si一段時間內訪問行為的集合),ck表示某一類別的客體,ck∈C(C為安全類別集合,包含主體的訪問范疇和客體所屬類別)。用fsi(aj,ck)表示訪問主體si的行為aj下類別標簽為ck的客體出現的次數,通過該次數能夠計算出si訪問的不同客體類別ck的概率

其中cb表示si能夠訪問的類別標簽集合。
基于信息熵進行計算可以得出主體si在某一時間段內訪問行為aj下得到的信息量。

通過調用系統存儲的近似訪問記錄能夠計算出近似訪問產生的平均量的值。

IS(aj)表示近似記錄中包含的所有主體S的信息量總和,N(S)表示主體數量。通過比較主體si的信息量和S的平均信息量,就可以得到在相同時間內、相同的訪問行為aj下信息量的差值,即風險值。

在系統中,需要周期性地對所有主體的aj訪問行為進行計算,就可以得到aj行為產生風險值和風險閾值?aj。

當惡意主體訪問的客體產生的信息量過多時,行為的風險值就會增加。風險閾值也為下一步進行的風險管理提供了依據。
為了能夠實施有效的訪問控制,系統會在初始化時根據用戶的個人信息為每位用戶設置安全等級和訪問范疇。用戶的每次訪問都會造成一定的風險,這些風險會影響用戶的安全等級和訪問范疇。風險閾值表示系統對每個訪問主體行為的容忍程度,使用風險閾值能夠對主體訪問行為進行準確判斷。為了使得行為判斷更合理,本文將主體的行為級別分為安全級別、低危級別和高危級別。
風險閾值與用戶行為安全等級和訪問范疇之間存在對應關系,如下表1所示。

表1 風險閾值、安全等級、訪問范疇關系表
依據上表中描述的對應關系,可以判定不同時刻主體的行為等級,并計算出該行為等級對應的主體安全級別和訪問范疇。當?aj>0時,主體當前行為風險值低于行為平均風險值,則該行為為安全操作,主體安全等級和訪問范疇均為初始化值;當?aj=0時,行為風險值等于行為平均風險值時為低危操作,主體的安全等級,訪問范疇時,行為風險值高于行為平均風險值,為高危操作,主體的安全等級
每次訪問結束時,系統會計算出新的安全等級和訪問范疇,新的安全屬性值會成為用戶下次登錄系統時的初始安全屬性值。若在訪問過程中,主體行為風險值高于風險閾值時,系統判定該行為是高危操作,即系統認為該主體的訪問行為會對系統的機密性造成威脅,系統會終止主體訪問行為,將其強制退出登錄,并將其訪問范疇歸0。若該用戶仍想登錄系統進行訪問操作,必須先向管理員提出申請,重新獲得訪問范疇。
將風險引入訪問控制模型一直是實現訪問控制自動化和自適應性的一種主要方法。風險的引入也更好地保障了信息系統的機密性、動態性和行為監控的合理性。
本文模型符合BLP模型的安全特性,是在基于行為的多級安全訪問控制模型的基礎上增加了風險值的引入,能有效地防止低安全級別的用戶對高安全等級客體的訪問,保障了單個客體的機密性。通過對主體訪問客體行為進行動態監控,降低了由主體訪問客體類別過多帶來的隱私信息泄露的風險,保障了整個信息系統的機密性。
在大數據環境下,主體的安全屬性和客體的安全屬性都會隨著時態、環境的變化發生改變。用戶初始化時,系統管理員很難做到準確設置用戶角色、劃分用戶安全級別和訪問范疇,這會導致惡意用戶由于級別高、范疇大帶來的隱私信息泄露的問題。利用風險對訪問能力進行動態調整,能彌補系統管理員在進行角色劃分時考慮不全面的缺陷。根據主體行為所處的級別,調整用戶的安全級別和訪問范疇,達到動態的修改其訪問能力的目的。主體的訪問行為由系統動態監控,能夠更好地滿足分布式環境下復雜的訪問需求,保障有效的訪問控制。
由本模型的動態性可知,主體的每次訪問都會產生一定的風險,這些風險會影響主體的安全等級和訪問范疇,即會影響主體的當次和下一次的訪問操作。本模型中,風險閾值的計算依據了歷史訪問記錄中的近似訪問數據,即將普通用戶的歷史訪問記錄產生的信息量近似視為先驗分布。相比于惡意用戶,普通用戶的訪問有明確的目標性,因此歷史記錄中普通用戶訪問客體獲得的信息量較低,這也為區分三種行為提供了依據,使得風險管理對用戶行為的監控更加合理。
本文中的模型是在已有的基于行為的多級訪問控制模型基礎上引入了風險值,在主體的訪問過程中,對訪問行為進行動態監控。在風險閾值的設置上依據不同主體的訪問行為產生的信息熵為參考,能夠準確地判斷用戶行為類型,做到對用戶行為進行合理的實時監控。通過引入風險值進行行為監控,能夠在原模型保證單個客體機密性和完整性的基礎上保障了整個系統的機密性。相比原模型,本文提出的模型具備更好的合理性和動態性,更能適應開放、動態、多變的云環境。