劉敖迪,杜學(xué)繪,王娜,喬蕊
(1.信息工程大學(xué),河南 鄭州 450001;2.河南省信息安全重點(diǎn)實(shí)驗(yàn)室,河南 鄭州 450001;3.周口師范學(xué)院,河南 周口 466001)
不斷發(fā)展的大數(shù)據(jù)、云計(jì)算等新型計(jì)算范式極大地提高了數(shù)據(jù)共享與利用的效率,通過分析與利用數(shù)據(jù)資源,能夠創(chuàng)造出巨大的社會價(jià)值和經(jīng)濟(jì)價(jià)值。然而,數(shù)據(jù)的共享與利用也面臨著嚴(yán)峻的安全風(fēng)險(xiǎn),導(dǎo)致各類安全事故頻發(fā)。例如,2018 年3 月曝出的Facebook 數(shù)據(jù)外泄事件,導(dǎo)致超過5 000 萬用戶的個人數(shù)據(jù)被非法訪問。因此,數(shù)據(jù)的非授權(quán)共享將會對用戶數(shù)據(jù)帶來巨大的安全威脅,實(shí)現(xiàn)安全、可控的數(shù)據(jù)資源共享與利用是數(shù)據(jù)應(yīng)用及發(fā)展的前提與基礎(chǔ)。作為保護(hù)數(shù)據(jù)安全的重要手段之一,訪問控制技術(shù)[1]能夠通過對用戶權(quán)限的管理,使合法用戶依照其所擁有的權(quán)限訪問系統(tǒng)內(nèi)的相應(yīng)資源,禁止非法用戶對資源的非授權(quán)訪問,從而有效地保障數(shù)據(jù)安全及業(yè)務(wù)系統(tǒng)的正常運(yùn)轉(zhuǎn)。其中,基于屬性的訪問控制機(jī)制(ABAC,attribute based access control)[2-3]使用屬性作為訪問控制的基本要素,能夠靈活利用實(shí)體所擁有的屬性集合來決定是否賦予其訪問權(quán)限,具有較強(qiáng)的語義表達(dá)能力,且兼容自主訪問控制、強(qiáng)制訪問控制、基于角色的訪問控制等機(jī)制[4],適用于解決開放計(jì)算環(huán)境中的細(xì)粒度訪問控制和大規(guī)模動態(tài)授權(quán)問題。Gartner 預(yù)測[5]到2020 年,70%的企業(yè)將使用基于屬性的訪問控制方案作為主導(dǎo)機(jī)制來保護(hù)內(nèi)部關(guān)鍵信息資產(chǎn)。
訪問控制策略是執(zhí)行訪問控制機(jī)制的核心與基礎(chǔ)[6-7]。特別是在信息系統(tǒng)建立初期,如何在滿足系統(tǒng)安全需求的前提下,配置正確、完備且一致的訪問控制策略是安全管理人員對資源實(shí)施訪問控制的前提[3]?,F(xiàn)有的策略生成技術(shù)主要包括自上向下與自下向上2 種模式[8-10]。其中,自上向下模式[11]依靠安全專家的專業(yè)知識,從系統(tǒng)的業(yè)務(wù)需求和安全需求出發(fā),通過人工分析的方式來得到系統(tǒng)訪問控制策略。但該模式是一項(xiàng)需要專業(yè)知識且容易出錯的勞動密集型工作,策略生成質(zhì)量不穩(wěn)定,可靠性和準(zhǔn)確性與安全專家的專業(yè)水平直接相關(guān)[1-2]。并且,針對不同業(yè)務(wù)系統(tǒng),自上向下模式難以移植,可擴(kuò)展能力較弱,容易導(dǎo)致過度授權(quán)和授權(quán)不足現(xiàn)象的發(fā)生[2]。與自上向下模式不同,自下向上模式[12-15]依據(jù)信息系統(tǒng)中已有的訪問控制策略信息(用戶?權(quán)限關(guān)系),利用數(shù)據(jù)挖掘等手段實(shí)現(xiàn)策略的自動生成,減少了對專家的依賴。但是,該模式需要依據(jù)信息系統(tǒng)中已存在訪問控制策略信息(用戶?權(quán)限關(guān)系)作為前置條件,才能實(shí)現(xiàn)訪問控制策略的生成[16-17]。而在信息系統(tǒng)建立的初期階段,由于系統(tǒng)中沒有現(xiàn)成的訪問控制信息作為基礎(chǔ),導(dǎo)致該模式在此場景下難以直接應(yīng)用。并且,現(xiàn)有自下向上技術(shù)大多通過角色[18]來構(gòu)建策略,得到的角色信息通常是無語義信息,難以與真實(shí)世界中訪問控制需求相結(jié)合,無法表達(dá)出ABAC 模型豐富的屬性語義信息(主體屬性、動作屬性、客體屬性),難以直接應(yīng)用到ABAC 的策略生成工作中。
實(shí)際上,在大多數(shù)組織機(jī)構(gòu)的信息系統(tǒng)內(nèi)部,都存在著以自然語言形式描述的系統(tǒng)項(xiàng)目規(guī)范類文檔(如項(xiàng)目需求文檔、用戶手冊、使用須知等)。這些項(xiàng)目文檔[19]中蘊(yùn)含了系統(tǒng)預(yù)置的與訪問控制相關(guān)的策略信息,它們是安全專家了解應(yīng)用環(huán)境與應(yīng)用背景、分析安全需求的重要依據(jù)和信息來源。手動篩選現(xiàn)有文檔以提取隱藏的訪問控制策略可能是一項(xiàng)冗長、耗時(shí)且容易出錯的工作,且需要具有專業(yè)安全知識的專家才能夠順利完成。因此,如何從項(xiàng)目規(guī)范類文檔中提取訪問控制策略信息,自動化生成ABAC 策略,對基于屬性的訪問控制研究具有重要意義[20]。
為了解決上述訪問控制策略生成的難題,本文提出了一種新穎的基于深度學(xué)習(xí)的ABAC 訪問控制策略生成技術(shù),目的是從自然語言形式描繪的項(xiàng)目規(guī)范類文檔中提取出基于屬性的訪問控制策略,實(shí)現(xiàn)系統(tǒng)訪問控制策略的自動化、智能化生成,顯著降低訪問控制策略生成的時(shí)間成本,從而為訪問控制的實(shí)施提供支撐。本文將訪問控制策略生成問題分解為訪問控制策略語句識別和訪問控制屬性挖掘2 項(xiàng)關(guān)鍵任務(wù)。其中,訪問控制策略語句識別任務(wù)是從項(xiàng)目相關(guān)文檔中提取出與訪問控制相關(guān)的語句,訪問控制屬性挖掘任務(wù)則是從自然語言形式的策略語句中挖掘出策略的主體屬性、動作屬性、客體屬性以及屬性間關(guān)系等屬性信息,依據(jù)這些屬性信息,即可直接得到可讀、可執(zhí)行的訪問控制策略。
本文的主要貢獻(xiàn)包括3 個方面。1) 將基于屬性的訪問控制策略生成問題轉(zhuǎn)化為自然語言處理問題,提出了一種基于深度學(xué)習(xí)的ABAC 策略生成框架,該框架將策略生成問題分解為訪問控制語句識別和訪問控制屬性挖掘2 項(xiàng)任務(wù),能夠?qū)崿F(xiàn)訪問控制策略的自動化生成。2) 提出了一種基于混合神經(jīng)網(wǎng)絡(luò)架構(gòu)的網(wǎng)絡(luò)模型BiGRU-CNN-Attention,實(shí)現(xiàn)了訪問控制策略語句識別,并在公開數(shù)據(jù)集中進(jìn)行了測試,平均F1-score 指標(biāo)能夠達(dá)到0.941,比當(dāng)前的state-of-the-art 方法性能提高了4.1%。3) 提出了一種基于雙向長短期記憶網(wǎng)絡(luò)(BiLSTM,bidirectional long short term memory)和條件隨機(jī)場(CRF,conditional random field)的融合網(wǎng)絡(luò)模型AM-BiLSTM-CRF,實(shí)現(xiàn)了訪問控制語句的屬性挖掘,為訪問控制策略生成提供了屬性支持。通過實(shí)驗(yàn)驗(yàn)證了與基準(zhǔn)方法相比,所提方法具有更好的性能。
現(xiàn)有的圍繞ABAC 訪問控制策略自動化生成技術(shù)的研究主要包括2 個研究方向,具體如下。一個研究方向是在信息系統(tǒng)中已有的訪問控制策略信息(用戶?權(quán)限關(guān)系)的基礎(chǔ)上,生成ABAC 訪問控制策略。圍繞該問題,Xu 等[21]通過從給定的用戶權(quán)限關(guān)系中遍歷元組,使用選擇的元組作為構(gòu)建候選規(guī)則的種子,嘗試通過用約束代替屬性表達(dá)式中的連接來泛化每個候選規(guī)則,以此覆蓋用戶權(quán)限關(guān)系中的其他元組,實(shí)現(xiàn)ABAC 策略的挖掘。Das 等[12]通過二進(jìn)制矩陣形式表示現(xiàn)有的用戶?權(quán)限關(guān)系,將策略生成問題轉(zhuǎn)化為矩陣最小化問題,并提出了一種啟發(fā)式求解方法。但是,由于矩陣過于稀疏,求解空間過大,存在求解效率較低的問題。為此,Cotrini 等[15]設(shè)計(jì)了一種新的子群發(fā)現(xiàn)算法,通過可靠性閾值來降低搜索空間,提高求解效率。Karimi 等[14]提出了一種基于無監(jiān)督學(xué)習(xí)算法的策略生成方法,基于K-modes 聚類算法實(shí)現(xiàn)近似策略規(guī)則模式的抽取,再從得到的模式中挖掘ABAC 策略規(guī)則。但是該方法存在策略生成質(zhì)量的穩(wěn)定性不高,且難以設(shè)定恰當(dāng)聚類值的問題。Mocanu 等[22]通過日志來訓(xùn)練一個受限的玻爾茲曼機(jī)(RBM,restricted Boltzmann machine)來提取策略規(guī)則。但在該研究中只給出了算法在策略空間中第一個階段的初步結(jié)果,算法的最后一個階段還并未實(shí)現(xiàn)。以上方法都只關(guān)注允許類型的訪問控制策略,無法解決禁止類型策略的生成問題。針對此問題,Iyer等[17]提出了一種基于子類枚舉的算法,在犧牲一定計(jì)算效率的條件下,能夠同時(shí)發(fā)現(xiàn)允許類型的授權(quán)規(guī)則和禁止類型的授權(quán)規(guī)則。
另一個研究方向是不需要借助信息系統(tǒng)中已有的訪問控制策略信息(用戶?權(quán)限關(guān)系)依據(jù)項(xiàng)目規(guī)范類文檔生成訪問控制策略。早期研究[23]是通過安全專家的人工分析來從文檔中提取相應(yīng)的訪問控制策略,或者是在受控自然語言(CNL,controlled natural language)條件下[24-25]進(jìn)行訪問控制策略的提取。雖然人工分析通常能夠生成最準(zhǔn)確的結(jié)果,但代價(jià)是需要更熟練的安全專家和更多的評估時(shí)間。由于CNL 被設(shè)計(jì)用來盡量減少自然語言中的模糊性和復(fù)雜性[25],使用CNL 可以產(chǎn)生較全面的結(jié)果,但是CNL 通常需要專門的生成工具來對文檔中的相關(guān)詞匯進(jìn)行轉(zhuǎn)換。因此,基于CNL的方法靈活性較低,其應(yīng)用場景較為受限。另外,由于實(shí)際環(huán)境中的絕大多數(shù)文檔都是一般化的通用類別的自然語言文檔。因此,與其他技術(shù)相比,自然語言處理技術(shù)(NLP,natural language processing)通常需要較少的人工工作,即可以處理通用類別的文檔,在靈活性與可擴(kuò)展性方面更具優(yōu)勢。
當(dāng)前已存在一些使用自然語言處理技術(shù)從文檔中自動提取訪問控制策略的研究。Xiao 等[26]提出了一個名為Text2Policy 的自動化方法,該方法根據(jù)4 種預(yù)設(shè)的策略語義模式進(jìn)行匹配,能夠從包含訪問控制策略的文檔中提取出基于角色的訪問控制策略。但是,Text2Policy 方法只適用于符合特定模式的需求規(guī)范,并依賴于匹配4 個特定的句型來獲取策略信息,無法捕捉到不遵循預(yù)先設(shè)定語義模式的策略。為了解決Text2Policy 提取語義模式受限的問題,Slankas 等[27]提出了一種基于訪問控制策略模式匹配的機(jī)器學(xué)習(xí)算法,該算法的核心是基于初始的種子模式生成適當(dāng)?shù)囊蕾噲D模式,并不斷引導(dǎo)和提取新的模式來擴(kuò)展原有的訪問控制模式集,從而實(shí)現(xiàn)更好的策略提取效果。文獻(xiàn)[28]提出了一種基于最小生成樹(MST,minimum spanning tree)的迭代算法(ACRE,access control rule extraction)來提取非結(jié)構(gòu)化文檔中的訪問控制語句。該算法將語句表示為以單詞為頂點(diǎn)、單詞間關(guān)系為邊的解析圖,通過在解析圖中匹配訪問控制策略匹配模式生成MST 來提取策略。為了提高策略提取的準(zhǔn)確率,還構(gòu)造了一個樸素貝葉斯分類器來擴(kuò)展策略匹配模式。
針對自然語言文檔中的訪問控制策略語句的識別問題,文獻(xiàn)[29-30]基于語義角色標(biāo)記(SRL,semantic role labeling)自動地識別謂詞?參數(shù)結(jié)構(gòu)(PAS,predicate-argument structure),然后對提取的參數(shù)使用一組預(yù)定義的規(guī)則來從自然語言需求文檔中提取訪問控制策略,并利用提取到的訪問控制策略來定義角色和構(gòu)建RBAC 系統(tǒng)。文獻(xiàn)[19]設(shè)計(jì)了Security features、PMI features、Syntactic complexity features 和Dependency features 共4 類特征來對文檔中的語句進(jìn)行描述,使用樸素貝葉斯分類器和支持向量機(jī)(SVM,support vector machine)實(shí)現(xiàn)訪問控制語句識別。文獻(xiàn)[31]采用遞歸神經(jīng)網(wǎng)絡(luò)模型(RNN,recurrent neural network)從自然語言文檔中識別策略語句??傮w來說,現(xiàn)有基于NLP 的策略生成技術(shù)整體性能較一般。針對訪問控制屬性提取問題,Alohaly 等[32-33]使用卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)從自然語言策略語句中識別出與系統(tǒng)訪問控制相關(guān)的主體與客體屬性集合。但是,該方法只是為了提取與訪問控制相關(guān)的屬性信息,從而為構(gòu)建ABAC 模型提供屬性支撐,并沒有獲取不同屬性之間的策略關(guān)系,無法依據(jù)這些屬性來構(gòu)建訪問控制策略。
ABAC 能夠靈活利用實(shí)體所擁有的屬性集來決定是否賦予其訪問權(quán)限,具有較強(qiáng)的語義表達(dá)能力,適用于解決開放計(jì)算環(huán)境中細(xì)粒度訪問控制和大規(guī)模動態(tài)授權(quán)問題,有助于實(shí)現(xiàn)高效的訪問控制執(zhí)行標(biāo)準(zhǔn),縮短新應(yīng)用服務(wù)的部署時(shí)間,被譽(yù)為“下一代”授權(quán)模型[34],其核心概念如下。
定義1屬性(attribute)用來描述參與到訪問控制過程中實(shí)體的特征信息,由屬性名與屬性值構(gòu)成,包括主體屬性(S)、客體屬性(O)、操作屬性(A)和環(huán)境屬性(E)。其中,主體屬性描述訪問請求發(fā)起方所具有的屬性信息(如角色、單位等),客體屬性描述能夠被訪問的資源所具有的屬性信息(如名稱、安全等級等),操作屬性描述主體對客體的各種操作行為(如讀取、寫入等),環(huán)境屬性描述訪問控制過程中所受到的環(huán)境約束(如時(shí)間、空間等)。在訪問控制策略中,主體屬性、客體屬性、操作屬性是必須要素,環(huán)境屬性是非必須要素。同時(shí),環(huán)境屬性包含了對訪問控制的時(shí)空約束,較復(fù)雜,這部分內(nèi)容將在下一步工作中進(jìn)行詳細(xì)研究。因此,為了簡化問題,使研究更有針對性,本文只圍繞包含主體屬性、客體屬性、操作屬性這些必須要素的策略生成問題展開研究,在后文中對環(huán)境屬性不再進(jìn)行額外說明。
定義2屬性元組(attribute tuple)是刻畫訪問控制實(shí)體特定類別屬性的集合,是屬性動態(tài)指派關(guān)系的體現(xiàn),可表示為X-tuple={a1,a2,…,an},X∈{S,O,A}。
定義3訪問控制策略(access control policy)是主體訪問客體的規(guī)則和主體對客體授權(quán)邏輯的具體體現(xiàn),可表示為四元組ACP=(S-tuple,A-tuple,O-tuple,Sign)的形式,Sign∈{permit,deny}表示允許訪問或禁止訪問。
定義4訪問請求(access request)是對資源的請求訪問者、被訪問的客體以及被請求操作的描述,可以表示為三元組 AR=(S-tuple,A-tuple,O-tuple)的形式。訪問請求中至少包含一個主體屬性、一個客體屬性和一個操作屬性。
定義5權(quán)限判決(permission decision)是在給定的訪問控制策略評估環(huán)境中,針對用戶的訪問請求,做出用戶允許或禁止訪問相應(yīng)資源的判決響應(yīng),可表示為一個映射函數(shù)Decision:AR → {permit,deny}。
圖1 是文獻(xiàn)[34]給出的基于屬性的訪問控制策略的生命周期。在傳統(tǒng)專家知識驅(qū)動的策略管理過程中,信息系統(tǒng)所有者負(fù)責(zé)定義訪問控制保護(hù)用例,安全人員負(fù)責(zé)為給定的用例收集訪問控制需求、定義訪問控制屬性、編寫相應(yīng)的訪問控制策略,再由應(yīng)用程序開發(fā)人員進(jìn)行策略用例的測試、訪問控制框架和訪問控制策略的部署,最后由審計(jì)員負(fù)責(zé)進(jìn)行ABAC 的訪問控制審計(jì)。本文的研究重點(diǎn)聚焦在收集訪問控制需求(階段②)、獲取訪問控制所需屬性(階段③)、編寫訪問控制策略(階段④)這3 個階段。利用深度學(xué)習(xí)技術(shù)實(shí)現(xiàn)自動化、智能化的策略生成。
圖1 基于屬性的訪問控制策略的生命周期
訪問控制策略生成框架如圖2 所示。首先,對待處理的自然語言文檔進(jìn)行解析,在訪問控制策略語句識別引擎中提取出包含訪問控制信息的語句,這些語句描述了擁有哪些屬性的主體能夠以何種方式訪問具有哪些屬性的客體。一旦訪問控制策略語句被提取出來之后,就對語句中所包含的主體屬性、操作屬性以及客體屬性進(jìn)行挖掘,生成相應(yīng)策略元素。然后,直接將這些策略元素轉(zhuǎn)化為可讀、可執(zhí)行的標(biāo)準(zhǔn)格式ABAC 策略。再經(jīng)過進(jìn)一步的策略修正和驗(yàn)證步驟之后,將最終的ABAC 策略存儲到訪問控制策略數(shù)據(jù)庫中,完成從自然語言文本中提取訪問控制策略的全部流程。下面,將對訪問控制語句識別和訪問控制屬性挖掘這2 項(xiàng)核心任務(wù)的解決方案進(jìn)行詳細(xì)說明。
圖2 策略生成框架
圖3 訪問控制語句識別模型
本節(jié)提出了一種混合神經(jīng)網(wǎng)絡(luò)模型BiGRU-CNN-Attention 來實(shí)現(xiàn)訪問控制策略語句的識別。該模型由Word embedding 層、隱含層和輸出層3 個部分組成。其中,隱含層包含BiGRU 層、卷積層、池化與注意力層、合并層和全連接層,從而構(gòu)成了一個如圖3 所示的7 層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
Word embedding 層是訪問控制語句識別模型的數(shù)據(jù)輸入層,在該層中本文使用了谷歌最新提出的預(yù)訓(xùn)練BERT(bidirectional encoder representation from transformer)模型[35]。BERT 模型將傳統(tǒng)大量在下游具體NLP 任務(wù)中做的操作轉(zhuǎn)移到預(yù)訓(xùn)練的語言模型中,進(jìn)一步增加了詞向量模型的泛化能力,充分地對字符級、詞級、句子級關(guān)系特征進(jìn)行了描述。BERT 模型基于雙向transformer 技術(shù)進(jìn)行詞向量模型的訓(xùn)練,具有更深的層數(shù)和更好的并行性,在多項(xiàng)NLP 任務(wù)中都具有非常優(yōu)異的性能。BERT 模型的具體技術(shù)細(xì)節(jié)不作為本文研究的重點(diǎn)。本文基于BERT 模型將自然語言文檔中的詞及其對應(yīng)的特征進(jìn)行編碼,轉(zhuǎn)化為詞向量形式作為模型輸入。
門控循環(huán)單元(GRU,gated recurrent unit)是一種繼承了長短期記憶網(wǎng)絡(luò)(LSTM,long short-term memory)特性的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在某些應(yīng)用場景下有近似LSTM 的性能,但卻具有更加簡單的網(wǎng)絡(luò)結(jié)構(gòu)。當(dāng)整體神經(jīng)網(wǎng)絡(luò)模型規(guī)模較大時(shí),它擁有更少的參數(shù)和更好的收斂效果。雙向門控循環(huán)單元(BiGRU,bidirectional gated recurrent unit)[36]由正反2 個方向的GRU 組成,相比單向GRU 能夠提取出更加全面的語句特征。因此,本文選取BiGRU 來獲取文本語句的深層次特征表示。
GRU 由更新門和重置門2 個門組成。更新門用于控制前一時(shí)刻輸出對后一時(shí)刻輸出的影響程度,更新門的值越大,說明前一時(shí)刻輸出對后一時(shí)刻輸出的影響越大。重置門用于控制前一時(shí)刻輸出被后一時(shí)刻忽略的程度,重置門的值越小,說明后一時(shí)刻忽略的信息越多。GRU 結(jié)構(gòu)單元的更新方法為
其中,z(t)、r(t)、h(t)分別表示時(shí)刻t的更新門、重置門、候選激活狀態(tài)、激活狀態(tài),h(t?1)表示時(shí)刻t?1 的隱含層狀態(tài)。由式(1)可知,z(t)由當(dāng)前時(shí)刻輸入的信息與上一時(shí)刻需要被遺忘的信息共同決定,r(t)由當(dāng)前時(shí)刻輸入的信息與上一時(shí)刻需要被繼承的信息共同決定。
BiGRU 將2 個方向相反的GRU 輸出進(jìn)行合并,計(jì)算方法為
其中,h(t)和分別表示前向GRU 和反向GRU 中結(jié)構(gòu)單元輸出的隱含層向量,w(t)和分別表示對應(yīng)的權(quán)重,b(t)表示時(shí)刻t的偏置。
BiGRU 能夠較好地提取出文本內(nèi)雙向時(shí)序維度的特征關(guān)系,但是由于文本中的詞向量特征通常與其相臨近的詞向量特征之間也具有一定的語義關(guān)聯(lián),為了更好地對相鄰特征間的關(guān)聯(lián)進(jìn)行語義分析,本文利用CNN 層具有空間局部感知能力和權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)的特點(diǎn),來進(jìn)一步地提取關(guān)聯(lián)特征。并且,在保留數(shù)據(jù)主要特征的同時(shí),有效地降低神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的復(fù)雜程度和參數(shù)數(shù)量。該方法能夠有效避免過擬合,提高模型的泛化能力。輸入是多個映射,輸出是降維后的映射。每個映射都是屬于上層的輸入映射卷積值的組合,計(jì)算方法為
其中,Nj是輸入映射的集合,是用于連接第i個輸入特征映射和第j個輸出特征映射的卷積核,是第j個特征映射的偏置項(xiàng),f是激活函數(shù)。
池化層也被稱為下采樣層,一般取池化區(qū)域中的最大值或平均值(分別稱作最大池化或平均池化)。池化層能夠減弱數(shù)據(jù)變形的影響,降低特征映射維度,提高模型的精度,避免過擬合的發(fā)生。本文為了提高模型的穩(wěn)健性,同時(shí)采取了最大池化計(jì)算與平均池化計(jì)算,通過這種混合池化計(jì)算方法來降低單一池化可能會造成的數(shù)據(jù)方差增大與均值偏移的問題。計(jì)算方法為
其中,s表示池化區(qū)域Ap中所對應(yīng)輸入數(shù)據(jù)元素;max 表示對池化區(qū)域特征取最大化值;mean 表示對池化區(qū)塊特征取平均值;表示下采樣函數(shù),包括最大池化max-pooling 和平均池化mean-pooling;表示偏置項(xiàng);F1表示最大池化計(jì)算結(jié)果,F(xiàn)2表示平均池化計(jì)算結(jié)果。
起源于人類視覺注意力的注意力(Attention)機(jī)制在自然語言處理、圖像處理、語音識別等領(lǐng)域表現(xiàn)出了非凡的性能。因此,本文引入Attention 機(jī)制進(jìn)行訪問控制語句的識別。Attention 機(jī)制通過對數(shù)據(jù)進(jìn)行加權(quán)處理,把不同的部分間數(shù)據(jù)聯(lián)系起來,能夠?qū)φZ句中的重點(diǎn)詞匯進(jìn)行著重的關(guān)注與處理,從而提高系統(tǒng)的整體性能。使用Attention 機(jī)制在輸入語句中分配不同的關(guān)注度,突出局部的重要信息,從而使重要信息得到更多的關(guān)注。一般情況下,如果BiGRU 和CNN 得到的所有詞向量在句子S中都被平等地處理,那么在一些不重要的詞上將會浪費(fèi)過多的計(jì)算時(shí)間。因此,本文通過對語句中的重點(diǎn)詞進(jìn)行著重關(guān)注,對輸入序列中的每個元素賦予權(quán)重,并將注意力集中在輸入語句中最重要的信息部分,計(jì)算方法為
其中,α是句子中新的隱含層的狀態(tài)所占的權(quán)重,hi是向Attention 機(jī)制中輸入的初始隱含層狀態(tài),e i是時(shí)刻i隱含層狀態(tài)的能量值,w i是權(quán)重系數(shù),bi是對應(yīng)時(shí)刻i的偏置。
合并層接收來自池化與注意力層輸出的最大池化計(jì)算結(jié)果F1、平均池化計(jì)算結(jié)果F2以及注意力計(jì)算結(jié)果F3,將3 個結(jié)果進(jìn)行合并拼接之后,得到本層的融合特征a(l),計(jì)算方法為
其中,⊕表示拼接操作。
然后,再將融合特征FF 輸入2 個全連接層中,全連接層的計(jì)算與普通神經(jīng)網(wǎng)絡(luò)的計(jì)算一致,其輸出為
最后,在最后一個全連接層中,對輸出特征f進(jìn)行Softmax 函數(shù)計(jì)算,得到輸入的文本語句為訪問控制策略語句的概率。Softmax 函數(shù)的計(jì)算方法為
其中,K為語句類別(屬于訪問控制語句為1,非訪問控制語句為0),為相應(yīng)的語句類別概率。
本節(jié)將屬性挖掘問題轉(zhuǎn)化為主體屬性、客體屬性以及動作屬性的序列標(biāo)注問題,提出的訪問控制屬性挖掘神經(jīng)網(wǎng)絡(luò)模型AM-BiLSTM-CRF 如圖4 所示。AM-BiLSTM-CRF 網(wǎng)絡(luò)模型是一個具有CRF的雙向LSTM 模型。首先,將訪問控制語句中的單詞進(jìn)行向量化處理。本模型與3.1 節(jié)類似,同樣使用BERT 模型預(yù)訓(xùn)練模型將訪問控制語句中的詞映射到高維向量空間,得到詞向量W=[w1,w2,…,wn]。然后,將Word embedding 層中的詞向量W輸入前向LSTM 和反向LSTM 之間,依據(jù)上下文語義環(huán)境對特征進(jìn)行學(xué)習(xí),并將前向LSTM 和反向LSTM 的輸出進(jìn)行拼接得到CRF 層的輸入。最后,由CRF層學(xué)習(xí)不同詞中屬性標(biāo)簽間的依賴關(guān)系,生成面向訪問控制語句的屬性挖掘模型。
圖4 訪問控制屬性挖掘模型
本文設(shè)計(jì)了OBM 屬性標(biāo)記方案,對訪問控制語句中的詞進(jìn)行屬性標(biāo)注,含義如下。標(biāo)記符號O用于標(biāo)注與訪問控制無關(guān)的屬性,標(biāo)記符號B 用于標(biāo)注屬性的起初位置,標(biāo)記符號M 用于標(biāo)注屬性的非起初位置。訪問控制語句中共有主體屬性、客體屬性、動作屬性3 類屬性需要進(jìn)行標(biāo)注,共包括7 類標(biāo)記,如表1 所示。
表1 屬性標(biāo)記方案
對于中文訪問控制語句“注冊的教授可以訪問他的課程信息”的標(biāo)注結(jié)果如下。
例1/B_subject_attribute:注/M_subject_attribute:冊/M_subject_attribute:的/B_subject_attribute:教/M_subject_attribute:授/O:可/O:以/B_action_attribute:訪/M_action_attribute:問/B_ object_attribute:他/M_object_attribute:的/B_object_attribute:課/M_object_attribute:程/M_object_attribute:信/M_object_attribute:息。
由于英文的表達(dá)形式與中文存在一定差異,因此標(biāo)注情況略有不同,英文訪問控制語句“A registered professor can access his course information”的標(biāo)注結(jié)果如下。
例2/O:A/B_subject_attribute:registered/B_subject_attribute:professor/O:can/B_action_attribute:access/B_object_attribute:his/B_object_attribute:course/M_object_attribute:information。
LSTM 是一種特殊的RNN 模型,能夠解決傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)中存在的上下文長期依賴問題,更適用于處理時(shí)序數(shù)據(jù),其結(jié)構(gòu)如圖5 所示。
圖5 LSTM 結(jié)構(gòu)
考慮到訪問控制文本中的上下文詞語存在相關(guān)性,一個詞語可能與其前一個和下一個詞語都存在相應(yīng)關(guān)聯(lián)。LSTM 只能利用歷史的數(shù)據(jù)信息,無法利用數(shù)據(jù)中未來的數(shù)據(jù)信息。在這種情況下,使用 BiLSTM 將 2 個時(shí)序方向相反的LSTM 連接到同一個網(wǎng)絡(luò)輸出中。通過這種結(jié)構(gòu),BiLSTM 增加了LSTM 中的可計(jì)算信息,使網(wǎng)絡(luò)模型既可以獲取歷史信息,也能夠獲取未來信息。BiLSTM 中包括輸入門i、遺忘門f、輸出門o和細(xì)胞狀態(tài)c共4 個部分,單個LSTM 結(jié)構(gòu)單元的更新為
其中,i(t)、f(t)、o(t)、c(t)分別表示在t時(shí)刻的輸入門、遺忘門、輸出門和細(xì)胞狀態(tài)的值,x(t)表示t時(shí)刻的輸入詞向量,h(t)表示t時(shí)刻的隱含層向量,Ct=concat(hforward,hbackward)表示sigmoid 激活函數(shù),W和u表示權(quán)重矩陣,b表示偏置向量,hforward和hbackward分別表示BiLSTM 中前向LSTM 和反向LSTM 中結(jié)構(gòu)單元輸出的隱含層向量。將hforward和hbackward連接,得到BiLSTM 在t時(shí)刻的輸出為
其中,hforward和hbackward分別對應(yīng)訪問控制語句2 個方向上的上下文信息。
在屬性挖掘過程中,當(dāng)前詞的屬性標(biāo)簽通常與其周圍詞的屬性標(biāo)簽是相關(guān)聯(lián)的,例如屬性標(biāo)簽E必須出現(xiàn)在屬性標(biāo)簽B 之后(屬性標(biāo)簽的標(biāo)記方案已在4.1 節(jié)中詳細(xì)說明)。CRF 通過計(jì)算相鄰標(biāo)簽間的轉(zhuǎn)移矩陣來得到一個屬性標(biāo)簽在一個訪問控制語句序列中轉(zhuǎn)移到另一個屬性標(biāo)簽的條件概率。從而,通過對轉(zhuǎn)移矩陣的訓(xùn)練能夠?qū)崿F(xiàn)對屬性標(biāo)簽之間依賴關(guān)系的學(xué)習(xí)。通過引入CRF 層,將使屬性挖掘的計(jì)算結(jié)果更準(zhǔn)確。對于式(11)所示的給定的訪問控制語句
對應(yīng)的屬性標(biāo)簽預(yù)測結(jié)果序列為
屬性標(biāo)簽預(yù)測結(jié)果的評估分?jǐn)?shù)為
其中,T表示屬性預(yù)測標(biāo)簽的轉(zhuǎn)移概率矩陣,其維度是(k+2) × (k+2);Tn,m表示屬性標(biāo)簽n與屬性標(biāo)簽m間的轉(zhuǎn)移概率得分;k表示不同類別屬性標(biāo)簽的數(shù)目;t0=START 與tn+1=END 分別表示訪問控制語句的起始標(biāo)簽與終止標(biāo)簽;C表示BiLSTM 網(wǎng)絡(luò)的輸出矩陣,其維度是n×k;Ci,j表示第i個詞被預(yù)測為第j個屬性標(biāo)簽的得分。對ACP 語句的屬性標(biāo)簽進(jìn)行預(yù)測時(shí),使用柔性最大值計(jì)算方法(softmax)對結(jié)果進(jìn)行歸一化處理,計(jì)算方法為
其中,TAG 表示ACP 語句中所有可能的屬性標(biāo)簽序列。在屬性挖掘的訓(xùn)練過程中,需要最大化預(yù)測結(jié)果為正確的屬性標(biāo)簽序列的似然概率,計(jì)算方法為
最后,在模型輸出端將預(yù)測得分最高的屬性標(biāo)簽序列作為最終的屬性標(biāo)簽序列輸出,即
為了對本文所提方法的性能進(jìn)行評估,本節(jié)在表2 所列出的公開數(shù)據(jù)集[31]條件下進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集包括iTrust、IBM App、Cyberchair、Collected ACP 共4 類數(shù)據(jù)集,包括2 477 條文本數(shù)據(jù)。這些數(shù)據(jù)集由Slankas 等[28]通過人工標(biāo)注得到。其中,iTrust 是一個以病人為中心的應(yīng)用程序,用于維護(hù)電子健康記錄;IBM App 是一款高校使用的課程管理系統(tǒng);Cyberchair 是一個會議管理系統(tǒng);Collected ACP 是由Xiao 等[26]收集的訪問控制策略語句組合而成的數(shù)據(jù)集。由于單一數(shù)據(jù)集的數(shù)據(jù)量有限,本節(jié)將4 類數(shù)據(jù)集的數(shù)據(jù)匯總進(jìn)行實(shí)驗(yàn),并且按70%、15%、15%的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測試集。同時(shí),為了盡可能地降低數(shù)據(jù)隨機(jī)性對實(shí)驗(yàn)結(jié)果的帶來的影響,本文在已標(biāo)注的數(shù)據(jù)集上采用5 折交叉驗(yàn)證進(jìn)行多次實(shí)驗(yàn)。實(shí)驗(yàn)的軟硬件環(huán)境如下。操作系統(tǒng)為Windows 10 64 位,CPU 為Intel(R) Core(TM) i7-4710MQ@ 2.5 GHz,GPU 為GeForce GTX 850M,內(nèi)存大小為16 GB,Tensorflow版本為1.14.0,Keras 版本為2.1.3,Python 版本為3.6。
表2 數(shù)據(jù)集描述
本文使用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1 值(F1-score)作為實(shí)驗(yàn)性能的評估指標(biāo)。Accuracy 表示文本識別結(jié)果是正確的樣本數(shù)占樣本總數(shù)的比例。Precision表示被正確識別為訪問控制策略語句的樣本數(shù)占被識別為訪問控制策略語句的樣本數(shù)的比例。Recall 表示被正確識別為訪問控制策略語句的樣本數(shù)占真實(shí)情況為訪問控制策略語句的樣本數(shù)的比例,是覆蓋范圍的度量。F1-score 表示Precision 和Recall 的加權(quán)調(diào)和平均值。為了計(jì)算這些評估指標(biāo),分類器的預(yù)測結(jié)果被分為以下4 類。TP(true positive)是被正確識別為訪問控制策略語句的樣本數(shù),TN(true negative)是被正確識別為非訪問控制策略語句的樣本數(shù),F(xiàn)P(false positive)是被錯誤識別為訪問控制策略語句的樣本數(shù),F(xiàn)N(false negative)是被錯誤識別為非訪問控制策略語句的樣本數(shù)。評價(jià)指標(biāo)對應(yīng)的計(jì)算式分別為
為了評估所提方法的性能,本文分別進(jìn)行了2組實(shí)驗(yàn)對訪問控制語句識別性能與訪問控制屬性挖掘性能進(jìn)行評估。
6.3.1訪問控制語句識別性能評估
本實(shí)驗(yàn)的超參數(shù)設(shè)置如下。輸入層使用BERT模型預(yù)訓(xùn)練語言模型將文本轉(zhuǎn)化成詞向量,在輸入層之后加一個rate 為0.2 的SpatialDropout1D 層,用于提高模型的活化能力。BiGRU 中隱含層的結(jié)構(gòu)單元數(shù)量為100,Conv1D 層中包括128 個卷積核、卷積核尺寸為2、步長為1、激活函數(shù)為ReLU,池化操作分別使用最大池化GlobalMaxPooling1D 和平均池化GlobalAveragePooling1D 來進(jìn)行計(jì)算,在全連接層前加一個rate 為0.5 的Droupout 層,避免模型過擬合。2 個全連接層使用的激活函數(shù)分別是ReLU 函數(shù)和 Softmax 函數(shù),訓(xùn)練過程中設(shè)置batch_size 為125,epoch 為12,選取Adam 優(yōu)化器來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
1) 不同神經(jīng)網(wǎng)絡(luò)模型識別準(zhǔn)確率和Loss 值評估
為了比較不同神經(jīng)網(wǎng)絡(luò)模型在訪問控制語句識別任務(wù)的性能,本文選取了4 個常用的神經(jīng)網(wǎng)絡(luò)模型作為基準(zhǔn)對比模型,基準(zhǔn)對比模型描述如下。
①CNN_LSTM 模型。先添加一個CNN,再添加一個LSTM 網(wǎng)絡(luò)。
② BiLSTM 模型。單一BiLSTM 網(wǎng)絡(luò)。
③CNN_GRU 模型。先添加一個CNN,再添加一個GRU 網(wǎng)絡(luò)。
④ BiGRU 模型。單一BiGRU 網(wǎng)絡(luò)。
所有網(wǎng)絡(luò)模型均采用BERT 模型預(yù)訓(xùn)練語言模型作為詞向量的輸入,實(shí)驗(yàn)結(jié)果分別如圖6 和圖7所示。與其他網(wǎng)絡(luò)模型相比,在驗(yàn)證集中本文所提方法BiGRU-CNN-Attention 雖然存在一定程度的波動,但總體的性能是最優(yōu)的,能夠達(dá)到最高95.97%的準(zhǔn)確率和最低0.177 2 的Loss 值,基本能夠滿足真實(shí)環(huán)境下訪問控制策略語句識別的性能要求。
圖6 不同模型準(zhǔn)確率隨epoch 的變化
2) 與現(xiàn)有基準(zhǔn)ACP 識別方法的比較
表3 為與現(xiàn)有訪問控制語句識別方法在精確率、召回率和F1-score 上進(jìn)行的對比。由實(shí)驗(yàn)結(jié)果可知,本文所提方法在3 項(xiàng)指標(biāo)上均為最優(yōu)。平均F1-score 指標(biāo)能夠達(dá)到 0.941,比當(dāng)前的state-of-the-art 方法性能提高了4.1%。
圖7 不同模型Loss 值隨epoch 的變化
6.3.2訪問控制屬性挖掘性能評估
為了增加對中文訪問控制語句的訪問控制屬性挖掘性能進(jìn)行評估,本文將表2 數(shù)據(jù)集中的訪問控制語句進(jìn)行翻譯,得到了對應(yīng)的中文數(shù)據(jù)集。本實(shí)驗(yàn)的超參數(shù)設(shè)置如下。BiLSTM 中隱含層的結(jié)構(gòu)單元數(shù)量為128,訓(xùn)練過程中設(shè)置batch_size 為125,epoch 為12,選擇Adam 優(yōu)化器來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
1) 不同基準(zhǔn)神經(jīng)網(wǎng)絡(luò)模型性能的對比
如圖8 和圖9 所示,在訓(xùn)練集和驗(yàn)證集的結(jié)果中,AM-BiLSTM-CRF 模型性能最優(yōu),在英文數(shù)據(jù)集和中文數(shù)據(jù)集中分別能夠達(dá)到最高95.41%和96.88%的準(zhǔn)確率。BiLSTM 模型的性能居中,CNN_LSTM 模型的性能最差。另外,從表4和表5 中實(shí)驗(yàn)結(jié)果可知,在英文實(shí)驗(yàn)數(shù)據(jù)集中,本文所提方法在主體屬性、動作屬性、客體屬性的性能上均達(dá)到最優(yōu)。在中文實(shí)驗(yàn)數(shù)據(jù)集中,局部性能雖然不都是最優(yōu),但是整體的性能是較好的,原因如下。
表3 ACP 句子識別性能對比
圖8 不同模型在英文數(shù)據(jù)集中準(zhǔn)確率隨epoch 的變化
圖9 不同模型在中文數(shù)據(jù)集中準(zhǔn)確率隨epoch 的變化
與CNN_LSTM 模型相比,BiLSTM 能夠從正向和反向這2 個方向上同時(shí)對訪問控制策略的屬性特征進(jìn)行學(xué)習(xí),比單方向?qū)W習(xí)能夠更好地利用文本內(nèi)上下文的約束信息。與BiLSTM 模型相比,本文通過引入CRF 模型能夠提升性能,這是因?yàn)樵L問控制屬性信息通常為連續(xù)的文本片段,文本內(nèi)相鄰詞間具有更強(qiáng)的依賴關(guān)系,CRF 模型能夠通過轉(zhuǎn)移概率的計(jì)算更好地捕捉到相鄰文本元素標(biāo)簽之間的依賴關(guān)系,彌補(bǔ)單一BiLSTM 模型所存在的相信標(biāo)簽關(guān)聯(lián)能力不足的問題,從而進(jìn)一步提高系統(tǒng)的性能。
2) 不同標(biāo)記方案對系統(tǒng)性能的影響
除了4.1 節(jié)中敘述的本文所使用的OBM 標(biāo)記方案,本文還嘗試使用OB 標(biāo)記方案來對文本屬性進(jìn)行標(biāo)記,從而對比不同標(biāo)記方案對系統(tǒng)性能的影響。其中,O 標(biāo)記無關(guān)屬性,B 標(biāo)記相關(guān)屬性。由表6 和表7 可知,本文所采取的OBM 標(biāo)記方案在不同的數(shù)據(jù)集中各項(xiàng)性能更優(yōu)。
表4 英文數(shù)據(jù)集屬性挖掘性能對比
表5 中文數(shù)據(jù)集屬性挖掘性能對比
表6 英文數(shù)據(jù)集下不同標(biāo)記方案的性能對比
表7 中文數(shù)據(jù)集下不同標(biāo)記方案的性能對比
為了實(shí)現(xiàn)基于屬性的訪問控制策略的自動化生成,本文提出了一種基于深度學(xué)習(xí)的ABAC 訪問控制策略生成技術(shù),為訪問控制系統(tǒng)初始訪問控制策略的生成提供了一條新的解決思路。首先,提出了一種基于深度學(xué)習(xí)的策略生成框架,該框架將策略生成問題分解為訪問控制策略語句識別和訪問控制屬性挖掘兩項(xiàng)核心任務(wù)。然后,分別設(shè)計(jì)了BiGRU-CNN-Attention 和AM-BiLSTM-CRF 這2 個神經(jīng)網(wǎng)絡(luò)模型來解決訪問控制策略語句識別任務(wù)和訪問控制屬性挖掘任務(wù),從而為生成可讀、可執(zhí)行的訪問控制策略提供支撐。實(shí)驗(yàn)結(jié)果驗(yàn)證了本文所提方法的有效性。下一步的工作將嘗試進(jìn)一步提高策略生成的性能,并對策略用例的自動化測試以及策略中環(huán)境屬性的挖掘工作展開研究。