APP下载

一种网络访问控制语义相容性推理规则自动生成技术

2018-03-10韦丽娟

软件导刊 2018年2期
关键词:访问控制

韦丽娟

摘 要:针对网络访问控制语义相容性本体推理规则编写繁琐、效率低且易出错的缺陷,提出了基于Lex&Yacc的访问控制语义相容性本体推理规则自动生成技术。分析了推理规则生成的相关技术,构建了推理规则生成算法,进行了算法的复杂度实验。实验结果表明,该算法能生成满足本体推理需要的推理规则,效率及正确性高。

关键词:访问控制;语义相容性;本体推理;推理规则生成;Lex&Yacc

DOIDOI:10.11907/rjdk.172345

中图分类号:TP301

文献标识码:A 文章编号:1672-7800(2018)002-0041-03

0 引言

在开放的网络环境下,出现了越来越多的安全问题。计算机网络访问不仅包含合法访问,也包含网络攻击等恶意访问。通常所要拦截的恶意访问对象,既可能出现在自治域内,也可能出现在自治域外,连接它们的网络节点设备有交换机、路由器、防火墙等,这些网络节点设备具有访问控制功能。因此,部署在单个网络节点设备上的访问控制配置的语义即表示在此设备上进行了访问控制,部署在某一访问通路上各网络节点的访问控制语义则表示此访问通路上进行了访问控制,部署在各访问通路上的访问控制配置的语义表示全网的访问控制[1]。

文献[2]给出了基于本体的访问控制语义相容性冲突分析技术,采用本体推理的方法得出访问控制语义相容性发生冲突的位置以及实体。文献[3-4]给出了基于语义Web的网络访问控制配置分析技术,运用SWRL查询技术查询满足冲突条件的访问控制语义。文献[5]提出基于可废止的描述逻辑(Defeasible Description Logic),分析语义安全策略冲突的方法,采用推理方法找出策略中存在的冲突。文献[6-9]采用本体推理的方法分析防火墙访问控制策略冲突。采用SWRL编写推理规则,从而实现访问控制策略的冲突分析。该方法能够分析出防火墙策略的冗余冲突、遮盖冲突、关联冲突以及泛化冲突。文献[2-9]给出了基于本體的访问控制语义相容性推理技术,推理效率较高,但上述文献并没有给出本体推理使用的推理规则自动生成技术,而使用了手动编写推理规则的方法。因推理规则种类繁多,数量庞大,使用手动方法编写推理规则效率低且推理规则的正确率不高。因此,本文研究访问控制语义相容性的本体推理规则自动生成技术,以提高本体推理规则的编写效率及正确性。

1 相关技术

1.1 Lex&Yacc

Lex(Lexical Analyzer)为词法分析器或扫描器生成的C程序代码[10],使用正则表达式匹配输入的字符串,并把它们转换成对应的标记。标记通常是代表字符串或简单过程的数值。当Lex发现输入流中的特定标记,就会把它们输入一个特定的符号表中。这个符号表会包含其它信息,如数据类型(整数或实数)和变量在内存中的位置等。所有标记的实例都代表符号表中一个适当的索引值。

Lex一次读入一个输入字符,直到找到一个匹配模式。如果找到一个匹配模式,Lex就执行相关动作(可能包括返回一个标记);如果没有可以匹配的常规表达式,就会停止进一步处理,显示一个错误消息。

Lex工作的匹配规则:①优先匹配:Lex模式只匹配输入字符或字符串一次;②最长匹配:Lex执行当前输入的最长可能匹配动作。

Yacc(Yet Another Compiler Compiler)为句法分析器或剖析器生成的C程序代码。Yacc的文法由一个使用BNF文法(Backus-Naur form)的变量描述。Yacc使用特定的句法规则,以便解释从Lex得到的标记并生成一棵语法树。句法树把各种标记当作分级结构。例如,操作符的优先级和相互关系在语法树中很明显。下一步,生成编译器原代码,对语法树进行一次深度遍历以便生成源代码。

Lex&Yacc生成语言编译器的过程如图1所示。

1.2 JRL规则语言

JRL(Jena Rule Language)是一种基于Jena推理引擎的规则语言[11]。JRL规则通过一个Java规则对象来定义,一个规则包括一个多条件模式的前件和一个多结论的后件及可选规则名和可选推理方向。每个条件可以是一个三元组或扩展的三元组形式,或一个调用内置参数的方法。一个JRL规则集就是一个简单的JRL规则列表。为了便利,Jena内置一个简单的解析器,允许JRL规则紧凑的文本文件形式来定义,当然也可以自己构造一个解析器来解析以文本形式存储的规则语法,以便更好地发现规则描述错误。这种简单的文本规则语法的非正式描述如下[11]:

Rule:=bare-rule.

or[bare-rule]

or[ruleName:bare-rule]

bare-rule:=term,...term->hterm,...hterm//向前规则

orbhterm<-term,...term//向后规则

hterm:=term

or[bare-rule]

term:=(node,node,node)//三元组模式

or(node,node,functor)//扩展的三元组模式

orbuiltin(node,...node)//调用内部函数

functor:=functorName(node,...node)//结构化literal

node:=uri-ref//如,http://foo.com/eg

orprefix:localname//如,rdf:type

or//如,

or?varname//变量名

or'a literal'//字符型

ornumber//如,42 or 25.5

例如:“leaderRule”表示上级部门领导与下级部门的关系。

[leaderRule:(?x org:hasPart ?y),(?x org:hasLeader ?z) → (?y org:hasLeader ?z)],该规则的含义是x有一个部门y,x有一个领导z,因此部门y有一个领导是z。

2 推理规则自动生成算法

2.1 推理规则分类

文献[1]指出,访问控制语义相容性指访问控制语义的外延重合类型和程度。根据外延的重合关系,语义相容类型可划分为同一关系、真包含关系和交叉关系,其集合记为:

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表示相容性类型,指访问控制语义元组中发生语义外延重合的元素位置(position)以及相容关系类型(overlap)。

语义外延重合位置细分为5种:访问的主体(SUBJECT)、客体(OBJECT)、协议类型(PTYPE)、协议标志(PFLAG)、控制(CONTROL)。对这5种位置,都有可能

发生以下3种类型之一的相容关系:同一(IDENTITY)、交叉(INTERSECTION)和真包含(PROPERLY_INCLUSION)。

根据以上定义,访问控制语义的主体有52种组合情况,访问控制语义的客体有52种组合情况,访问控制语义的操作有3种组合情况,访问控制语义的控制有2种组合情况,因此,共有C152×C152×C13×C12=16 224种推理规则。

将语义相容性推理规则分为以下两类:

(1)如果访问控制语义中的主体交集不为空,客体交集不为空,协议交集不为空,控制相等,则访问控制的访问存在相容关系,控制存在相容关系,如式(2)所示:

其中,Si,Sj指访问控制语义的主体,Oi,Oj是访问控制语义的客体,OPi,OPj是访问控制语义的操作;ci,cj是访问控制语义的控制;accessi,accessj指访问控制语义的访问。

(2)如果访问控制语义中的主体交集不为空,客体交集不为空,协议交集不为空,控制不相等,则访问存在相容关系,控制存在不相容关系。如式(3)所示:

其中,Si,Sj指访问控制语义的主体;Oi,Oj是访问控制语义的客体;OPi,OPj是访问控制语义的操作;ci,cj是访问控制语义的控制;accessi,accessj指访问控制语义的访问。

2.2 推理规则自动生成算法流程

访问控制语义相容性推理规则自动生成算法描述如下:①输入推理规则的条数n;②读入语义相容关系描述文件、语义相容关系句法及语义相容关系词法;③读取语义相容关系描述文件中的语词;④读入推理规则句法;⑤读入语词逻辑关系;⑥初始化i=1,判断i是否小于等于n;⑦如果i≤n,生成规则号,查找前件主体IP地址、查找后件主体IP地址;如果主体标识='process',则查找前件主体端口,后件主体端口;否则直接查找前件客体IP地址,后件客体IP地址。如果客体标识='process',则查找前件客体端口,后件客体端口;否则直接查找前件协议,后件协议;查找前件控制,查找后件控制;⑧存储推理规则;⑨i+1,重复步骤④~⑥,直至i大于n;⑩输出推理规则。

访问控制语义相容性推理规则自动生成算法流程如图2所示。

2.3 算法复杂度分析

使用McCabe方法,根据访问控制语义相容性推理规则自动生成算法流程,得出该算法的复杂度为O(n),其中,n是推理规则的条数。

3 实验结果与分析

實验结果表明,推理规则自动生成程序共生成12 996条推理规则,其中同配置的推理规则是6 498条,同路径推理规则6 498条。

图3是该程序生成的一条推理规则。推理规则能够判断其中两条访问控制语义存在相容关系,且发生相容的位置是网络层,相容关系类型为主体、客体、协议以及控制。

4 结语

本文研究了基于Lex&Yacc的访问控制语义相容性本体推理规则自动生成技术,该算法能够自动生成满足Jena推理引擎的本体推理规则。实验结果表明,该算法能正确生成12 996条推理规则,推理效率高,为访问控制语义相容性分析提供了技术支持。

参考文献:

[1] 梁晓艳.计算机网络访问控制的语义相容性分析技术研究[D].北京:北京航空航天大学,2016.

[2] 童文灿.访问控制语义相容性冲突分析技术研究与实现[D].桂林:广西师范大学,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] 徐國虎.基于本体的领域知识推理研究[M].武汉:湖北科学技术出版社,2008:127-128.endprint

猜你喜欢

访问控制
一种跨策略域的林业资源访问控制模型设计
内外网隔离中ACL技术的运用
云计算访问控制技术研究综述
ONVIF的全新主张:一致性及最访问控制的Profile A
利用IP访问控制流量
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
基于岗位映射的应急组织间跨域访问控制研究
从操作系统层面谈信息安全与自主访问控制