韋麗娟
摘 要:針對網(wǎng)絡(luò)訪問控制語義相容性本體推理規(guī)則編寫繁瑣、效率低且易出錯的缺陷,提出了基于Lex&Yacc的訪問控制語義相容性本體推理規(guī)則自動生成技術(shù)。分析了推理規(guī)則生成的相關(guān)技術(shù),構(gòu)建了推理規(guī)則生成算法,進行了算法的復(fù)雜度實驗。實驗結(jié)果表明,該算法能生成滿足本體推理需要的推理規(guī)則,效率及正確性高。
關(guān)鍵詞:訪問控制;語義相容性;本體推理;推理規(guī)則生成;Lex&Yacc
DOIDOI:10.11907/rjdk.172345
中圖分類號:TP301
文獻標(biāo)識碼:A 文章編號:1672-7800(2018)002-0041-03
0 引言
在開放的網(wǎng)絡(luò)環(huán)境下,出現(xiàn)了越來越多的安全問題。計算機網(wǎng)絡(luò)訪問不僅包含合法訪問,也包含網(wǎng)絡(luò)攻擊等惡意訪問。通常所要攔截的惡意訪問對象,既可能出現(xiàn)在自治域內(nèi),也可能出現(xiàn)在自治域外,連接它們的網(wǎng)絡(luò)節(jié)點設(shè)備有交換機、路由器、防火墻等,這些網(wǎng)絡(luò)節(jié)點設(shè)備具有訪問控制功能。因此,部署在單個網(wǎng)絡(luò)節(jié)點設(shè)備上的訪問控制配置的語義即表示在此設(shè)備上進行了訪問控制,部署在某一訪問通路上各網(wǎng)絡(luò)節(jié)點的訪問控制語義則表示此訪問通路上進行了訪問控制,部署在各訪問通路上的訪問控制配置的語義表示全網(wǎng)的訪問控制[1]。
文獻[2]給出了基于本體的訪問控制語義相容性沖突分析技術(shù),采用本體推理的方法得出訪問控制語義相容性發(fā)生沖突的位置以及實體。文獻[3-4]給出了基于語義Web的網(wǎng)絡(luò)訪問控制配置分析技術(shù),運用SWRL查詢技術(shù)查詢滿足沖突條件的訪問控制語義。文獻[5]提出基于可廢止的描述邏輯(Defeasible Description Logic),分析語義安全策略沖突的方法,采用推理方法找出策略中存在的沖突。文獻[6-9]采用本體推理的方法分析防火墻訪問控制策略沖突。采用SWRL編寫推理規(guī)則,從而實現(xiàn)訪問控制策略的沖突分析。該方法能夠分析出防火墻策略的冗余沖突、遮蓋沖突、關(guān)聯(lián)沖突以及泛化沖突。文獻[2-9]給出了基于本體的訪問控制語義相容性推理技術(shù),推理效率較高,但上述文獻并沒有給出本體推理使用的推理規(guī)則自動生成技術(shù),而使用了手動編寫推理規(guī)則的方法。因推理規(guī)則種類繁多,數(shù)量龐大,使用手動方法編寫推理規(guī)則效率低且推理規(guī)則的正確率不高。因此,本文研究訪問控制語義相容性的本體推理規(guī)則自動生成技術(shù),以提高本體推理規(guī)則的編寫效率及正確性。
1 相關(guān)技術(shù)
1.1 Lex&Yacc
Lex(Lexical Analyzer)為詞法分析器或掃描器生成的C程序代碼[10],使用正則表達式匹配輸入的字符串,并把它們轉(zhuǎn)換成對應(yīng)的標(biāo)記。標(biāo)記通常是代表字符串或簡單過程的數(shù)值。當(dāng)Lex發(fā)現(xiàn)輸入流中的特定標(biāo)記,就會把它們輸入一個特定的符號表中。這個符號表會包含其它信息,如數(shù)據(jù)類型(整數(shù)或?qū)崝?shù))和變量在內(nèi)存中的位置等。所有標(biāo)記的實例都代表符號表中一個適當(dāng)?shù)乃饕怠?/p>
Lex一次讀入一個輸入字符,直到找到一個匹配模式。如果找到一個匹配模式,Lex就執(zhí)行相關(guān)動作(可能包括返回一個標(biāo)記);如果沒有可以匹配的常規(guī)表達式,就會停止進一步處理,顯示一個錯誤消息。
Lex工作的匹配規(guī)則:①優(yōu)先匹配:Lex模式只匹配輸入字符或字符串一次;②最長匹配:Lex執(zhí)行當(dāng)前輸入的最長可能匹配動作。
Yacc(Yet Another Compiler Compiler)為句法分析器或剖析器生成的C程序代碼。Yacc的文法由一個使用BNF文法(Backus-Naur form)的變量描述。Yacc使用特定的句法規(guī)則,以便解釋從Lex得到的標(biāo)記并生成一棵語法樹。句法樹把各種標(biāo)記當(dāng)作分級結(jié)構(gòu)。例如,操作符的優(yōu)先級和相互關(guān)系在語法樹中很明顯。下一步,生成編譯器原代碼,對語法樹進行一次深度遍歷以便生成源代碼。
Lex&Yacc生成語言編譯器的過程如圖1所示。
1.2 JRL規(guī)則語言
JRL(Jena Rule Language)是一種基于Jena推理引擎的規(guī)則語言[11]。JRL規(guī)則通過一個Java規(guī)則對象來定義,一個規(guī)則包括一個多條件模式的前件和一個多結(jié)論的后件及可選規(guī)則名和可選推理方向。每個條件可以是一個三元組或擴展的三元組形式,或一個調(diào)用內(nèi)置參數(shù)的方法。一個JRL規(guī)則集就是一個簡單的JRL規(guī)則列表。為了便利,Jena內(nèi)置一個簡單的解析器,允許JRL規(guī)則緊湊的文本文件形式來定義,當(dāng)然也可以自己構(gòu)造一個解析器來解析以文本形式存儲的規(guī)則語法,以便更好地發(fā)現(xiàn)規(guī)則描述錯誤。這種簡單的文本規(guī)則語法的非正式描述如下[11]:
Rule:=bare-rule.
or[bare-rule]
or[ruleName:bare-rule]
bare-rule:=term,...term->hterm,...hterm//向前規(guī)則
orbhterm<-term,...term//向后規(guī)則
hterm:=term
or[bare-rule]
term:=(node,node,node)//三元組模式
or(node,node,functor)//擴展的三元組模式
orbuiltin(node,...node)//調(diào)用內(nèi)部函數(shù)
functor:=functorName(node,...node)//結(jié)構(gòu)化literal
node:=uri-ref//如,http://foo.com/eg
orprefix:localname//如,rdf:type
or
or?varname//變量名
or'a literal'//字符型
ornumber//如,42 or 25.5
例如:“l(fā)eaderRule”表示上級部門領(lǐng)導(dǎo)與下級部門的關(guān)系。
[leaderRule:(?x org:hasPart ?y),(?x org:hasLeader ?z) → (?y org:hasLeader ?z)],該規(guī)則的含義是x有一個部門y,x有一個領(lǐng)導(dǎo)z,因此部門y有一個領(lǐng)導(dǎo)是z。
2 推理規(guī)則自動生成算法
2.1 推理規(guī)則分類
文獻[1]指出,訪問控制語義相容性指訪問控制語義的外延重合類型和程度。根據(jù)外延的重合關(guān)系,語義相容類型可劃分為同一關(guān)系、真包含關(guān)系和交叉關(guān)系,其集合記為:
COMPATIBILITY= {(ac1,ac2,type,value)|value∈,CAC(ac1,ac2)},
type∈OVERLAP={(position,overlap)},
position∈{'SUBJECT','OBJECT','PTYPE', 'PFLAG','CONTROL'},
overlap∈{'IDENTITY','INTERSECTION', 'PROPERLYINCLUSION'};(1)
其中,謂詞CAC(ac1,ac2)表示訪問控制ac1和ac2的語義相容性。type表示相容性類型,指訪問控制語義元組中發(fā)生語義外延重合的元素位置(position)以及相容關(guān)系類型(overlap)。
語義外延重合位置細分為5種:訪問的主體(SUBJECT)、客體(OBJECT)、協(xié)議類型(PTYPE)、協(xié)議標(biāo)志(PFLAG)、控制(CONTROL)。對這5種位置,都有可能
發(fā)生以下3種類型之一的相容關(guān)系:同一(IDENTITY)、交叉(INTERSECTION)和真包含(PROPERLY_INCLUSION)。
根據(jù)以上定義,訪問控制語義的主體有52種組合情況,訪問控制語義的客體有52種組合情況,訪問控制語義的操作有3種組合情況,訪問控制語義的控制有2種組合情況,因此,共有C152×C152×C13×C12=16 224種推理規(guī)則。
將語義相容性推理規(guī)則分為以下兩類:
(1)如果訪問控制語義中的主體交集不為空,客體交集不為空,協(xié)議交集不為空,控制相等,則訪問控制的訪問存在相容關(guān)系,控制存在相容關(guān)系,如式(2)所示:
其中,Si,Sj指訪問控制語義的主體,Oi,Oj是訪問控制語義的客體,OPi,OPj是訪問控制語義的操作;ci,cj是訪問控制語義的控制;accessi,accessj指訪問控制語義的訪問。
(2)如果訪問控制語義中的主體交集不為空,客體交集不為空,協(xié)議交集不為空,控制不相等,則訪問存在相容關(guān)系,控制存在不相容關(guān)系。如式(3)所示:
其中,Si,Sj指訪問控制語義的主體;Oi,Oj是訪問控制語義的客體;OPi,OPj是訪問控制語義的操作;ci,cj是訪問控制語義的控制;accessi,accessj指訪問控制語義的訪問。
2.2 推理規(guī)則自動生成算法流程
訪問控制語義相容性推理規(guī)則自動生成算法描述如下:①輸入推理規(guī)則的條數(shù)n;②讀入語義相容關(guān)系描述文件、語義相容關(guān)系句法及語義相容關(guān)系詞法;③讀取語義相容關(guān)系描述文件中的語詞;④讀入推理規(guī)則句法;⑤讀入語詞邏輯關(guān)系;⑥初始化i=1,判斷i是否小于等于n;⑦如果i≤n,生成規(guī)則號,查找前件主體IP地址、查找后件主體IP地址;如果主體標(biāo)識='process',則查找前件主體端口,后件主體端口;否則直接查找前件客體IP地址,后件客體IP地址。如果客體標(biāo)識='process',則查找前件客體端口,后件客體端口;否則直接查找前件協(xié)議,后件協(xié)議;查找前件控制,查找后件控制;⑧存儲推理規(guī)則;⑨i+1,重復(fù)步驟④~⑥,直至i大于n;⑩輸出推理規(guī)則。
訪問控制語義相容性推理規(guī)則自動生成算法流程如圖2所示。
2.3 算法復(fù)雜度分析
使用McCabe方法,根據(jù)訪問控制語義相容性推理規(guī)則自動生成算法流程,得出該算法的復(fù)雜度為O(n),其中,n是推理規(guī)則的條數(shù)。
3 實驗結(jié)果與分析
實驗結(jié)果表明,推理規(guī)則自動生成程序共生成12 996條推理規(guī)則,其中同配置的推理規(guī)則是6 498條,同路徑推理規(guī)則6 498條。
圖3是該程序生成的一條推理規(guī)則。推理規(guī)則能夠判斷其中兩條訪問控制語義存在相容關(guān)系,且發(fā)生相容的位置是網(wǎng)絡(luò)層,相容關(guān)系類型為主體、客體、協(xié)議以及控制。
4 結(jié)語
本文研究了基于Lex&Yacc的訪問控制語義相容性本體推理規(guī)則自動生成技術(shù),該算法能夠自動生成滿足Jena推理引擎的本體推理規(guī)則。實驗結(jié)果表明,該算法能正確生成12 996條推理規(guī)則,推理效率高,為訪問控制語義相容性分析提供了技術(shù)支持。
參考文獻:
[1] 梁曉艷.計算機網(wǎng)絡(luò)訪問控制的語義相容性分析技術(shù)研究[D].北京:北京航空航天大學(xué),2016.
[2] 童文燦.訪問控制語義相容性沖突分析技術(shù)研究與實現(xiàn)[D].桂林:廣西師范大學(xué),2015.
[3] H HU, G J AHN, K KULKARNI. Ontology-based policy anomaly management for autonomic computing[C].in Proc. Int. Conf. Collab. Comput., Orlando, FL, USA, Oct,2011:487-494.
[4] A K BANDARA, A C KAKAS, E C LUPU, et al. Using argumentation logic for firewall configuration management[C].in Proc. IFIP/IEEE Int. Symp. Integrated Netw. Manage,2009:180-187.endprint
[5] HU L, QIU C, SHI Y. A defeasible description logic based semantic security policy conflict detection approach[J].International Journal of Security and Its Applications,2012(1):313-319.
[6] FITZGERALD W M, FOLEY S N, FOGHLU M ó. Network access control configuration management using semantic web techniques[J].Journal of Research and Practice in Information Technology,2009,41(2):99.
[7] FOLEY S N, FITZGERALD W M. Semantic web and firewall alignment[C]. Data Engineering Workshop, ICDEW 2008. IEEE 24th International Conference on. IEEE,2008:447-453.
[8] FITZGERALD W M, FOLEY S N. Aligning semantic web applications with network access controls[J].Computer Standards & Interfaces,2011,33(1):24-34.
[9] FITZGERALD W M, FOLEY S N, FOGHLU M ó. Network access control interoperation using semantic web techniques[C].WOSIS,2008:26-37.
[10] NIEMAN T. A compact guide to lex and yacc[EB/OL]. http://epaperpress. com/lexandyacc/download/lexyacc.pdf.
[11] 徐國虎.基于本體的領(lǐng)域知識推理研究[M].武漢:湖北科學(xué)技術(shù)出版社,2008:127-128.endprint