RBAC模型与预防网络犯罪,本文主要内容关键词为:模型论文,网络论文,RBAC论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
中图分类号:DF792.6文献标识码:A文章编号:1008-6048(2006)02-0028-04
随着Internet在世界范围内的普及应用,计算机、数据库及网络互联的爆炸性增长,使得机构和个人更增加了对这些系统存储信息、交流信息及面向网络应用的依赖性,而病毒、黑客、网络侦听和电子欺骗等时刻都在威胁着网络安全,网络犯罪也应运而生。从本质上讲,网络安全就是网络上的信息安全,是使控制网络系统的硬件、软件及系统中的数据受到保护,不受偶然的或者恶意的原因影响而遭到破坏、更改、泄露,系统连续可靠地正常运行,网络服务不中断。网络安全涉及的内容既有技术方面的问题,也有管理方面的问题,两方面相互补充、缺一不可。在管理方面,网络安全的威胁主要有以下几个方面:人为的疏忽、人为的恶意攻击、网络软件的漏洞、非授权访问、信息泄漏和丢失、破坏数据完整性。预防网络犯罪也就是要针对这些管理问题和漏洞,研究分析从而找到合理有效且易于实际操作的方法措施。
非授权访问是网络犯罪最常用的手段之一,它是指没有经过同意,就使用网络或计算机资源,擅自扩大权限或越权访问信息。如以假冒身份攻击网络系统,或以非法用户身份进入网络系统进行违法操作,或合法用户以未授权方式进行操作。访问控制是防止非授权访问的一种重要手段,它定义了主体对客体的访问权限,是应用系统对经过身份认证进入系统的用户访问数据资源的控制,是数据信息得到安全保护的核心技术和最有效的手段。应用系统的访问控制机制可以有效地限制对关键资源的访问,防止非法用户的侵入或合法用户的不慎操作及合法用户对资源的越权使用所造成的破坏,是预防网络犯罪、保护系统信息安全的一条有效途径。
一、RBAC模型概述及约束的引入
20世纪80年代到90年代初,访问控制领域主要使用的是DAC和MAC模型,由于DAC和MAC存在缺陷,于是研究者将角色(Role)作为一个管理权限(Privilege)的实体单独抽象出来,并通过将Role指派给用户(User)使之获得某些权限,进而发展成为RBAC模型。第一个RBAC(Role-Based Access Control)[1] 模型于1992年由David Ferraiolo和Rick Kuhn提出,称为Ferraiolo-Kuhn92[1] 模型。1996年,美国George Mason大学的Sandhu等完整地描述了RBAC基本框架,这就是具有里程碑意义的RBAC96[2] 模型。2001年,NIST由Ferraiolo和Kuhn提出了一致的RBAC模型建议,即NIST RBAC[3]。2004年2月,NIST RBAC经过RBAC研究团体的进一步提炼,美国国家信息技术标准委员会(ANSI/INCITS)将其定为美国国家标准(ANSI INCITS 359-2004)。
RBAC96模型由四个概念模型组成:RBAC0、RBAC1、RBAC2、RBAC3。它的核心思想是:在用户和权限之间引入角色的概念,将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问,如图1所示。RBAC模型中,授权约束(Authorization Constraint,也可简单称为Constraint,即约束)规定了访问许可被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则[4]。
这个思想能够极大地简化网络及软件安全性管理机制,同时提供了一个更方便地制定并加强安全策略的机会,达到预防网络犯罪的目的。用户所能成为的角色由他的责任和资格所决定,并能很容易地重新指定而不需要改变底层的存储结构。角色可以被授予新的权限,权限也可以被随时收回。
二、约束的基本概念和功能
在RBAC模型中,授权约束(Authorization Constraint,也可简单称为Constraint,即约束)规定了访问许可被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。所以研究RBAC模型最主要的目的就是在网络系统中研究和制定部署各种约束规则,在管理的源头上保障网络和系统的安全,预防网络犯罪。
最基本的约束包括:用户约束、角色约束、授权约束、会话约束、用户授权约束和角色授权约束。如图2所示。
约束应用于RBAC的各个方面:1.针对基本模型RBAC0,约束应用于各种不同会话的关系UA、PA和函数user、roles。2.职责分离(Separation of Duties,SOD)原则的实现。一个典型的例子就是对互斥角色的应用,一个用户最多只能被授予互斥角色集合中的一个角色,如出纳和会计,不允许一个人同时担任出纳和会计,否则可能会导致贪污行为。互斥关系可以分为静态互斥关系和动态互斥关系。属于静态互斥关系的角色不能同时授予一个用户,属于动态互斥关系的角色可以授予一个用户,但是不能同时激活。以互斥角色会计和出纳为例,用户分配关系(UA)不允许将这两个角色同时分配给同一个用户。约束还可以应用于权限分配关系(PA),一个权限最多只能被授予互斥角色集合中的一个角色。例如,签署支票的权限不能同时分配给两个角色。3.一个角色层次也可以看成是一个约束。这个约束是指一个权限授予一个初级角色的同时必须授予所有的层次高的角色;一个用户授予一个层次高的角色必须同时授予所有层次低的角色。
在基本约束关系基础上,当前约束的主要研究方向有:对约束的扩展、授权约束、势约束、授权约束的非时间扩展、时间约束。这些约束的提出及研究成果进一步完善了RBAC模型体系,使其在安全性、表达能力、应用能力方面得到提高。
三、约束规则在预防网络犯罪中的应用研究
对约束的深入研究是网络安全的需要,从实际需要出发制定和部署各种约束规则,才可以预防和堵住各种网络应用系统的管理漏洞,预防网络犯罪。
首先,对基本约束要进行扩展,制定更详细具体的约束规则来满足现实需要。可以扩展的约束规则包括:关系约束、前提约束、继承约束、数值约束[5] 等等。其中关系约束又可以根据实际情况和需要再细分出冲突关系、依赖关系、互补关系等一系列特殊的关系约束。冲突关系是规定相互冲突的角色不能授权给同一个用户,相互冲突的权限不能授权给同一个角色,相互冲突的角色不能在同一个会话中被激活。与冲突关系相反,依赖关系定义的是两个用户或者角色必须同时在一个会话中被激活才有效。互补关系则是把信息资源分为A、B两部分,规定一组角色或人员也分两队,一队只可以访问资源A,另一队只可访问资源B,两队必须配合才可以得到完整的资源信息。前提约束可以定义用户能够扮演角色A的前提是该用户已经是角色B(例如要扮演单位一把手角色,必须要被选入单位的党组成员),一个角色要拥有某个权限p,前提是拥有权限q。继承约束规定一个角色A拥有某些权限p,可以按照一定原则把拥有权限p的子集q传给角色B。数值约束是约束某个角色对应用户的个数(指一个角色能分配的最大成员数,例如在一个部门中负责人角色只能由一个人担任),或者约束某个用户能够同时激活的会话不超过N个。通过对这些约束规则的扩展,可以加强对用户和角色的管理,规范访问行为,特别是对一些重要资源起到限制和保护的作用。当然在现实应用中我们还可以定义更灵活更复杂的约束规则。
其次,在RBAC模型中的授权约束值得我们研究和应用,把已经有的授权约束分为静态授权约束(SSD)和动态授权约束(DSD)两类。静态授权约束决定用户不能被指定给一个冲突角色集合中的两个或多个角色,在系统初始化的时候,当角色授给用户时来判断是否将冲突的角色给了同一个用户,冲突的角色被定义为一个二元关系,任何一个用户只能拥有其中的一个。动态授权约束则限制用户不能同时激活一个冲突角色集合中的两个或多个角色,相互冲突的角色可以同时给一个人,但是在一次Session中不能同时扮演两个冲突的角色。例如:某个人可以同时是操作员和系统管理员。操作员必须经过系统管理员才能打开后台数据库修改某次的错误。如果操作员角色的一个单独的行为中需要切换到系统管理员角色,那么DSD要求,这个user必须先放弃操作员角色。也就是说,当操作员在操作时发现错误,必须要先关闭数据库,然后再次以系统管理员身份打开数据库才可以修改数据。
虽然NIST RBAC模型具有对授权约束的描述能力,但其仅涉及多个角色被赋予用户之间的冲突限制关系。而现实世界中,我们也可能需要多个权限赋予角色之间的限制关系,或多个用户被指定给角色之间的限制关系。在NIST RBAC模型已经有的授权约束描述能力基础上,可以使用一阶谓词逻辑来扩展RBAC中的授权约束。通过使用RBAC系统中已定义(或后添加)的函数、关系以及,量词和相应算符,可以将原有的静态约束和动态约束改造成其相应的一阶谓词逻辑形式。扩展后的约束描述能力比原有的静态约束和动态约束有了更大的提高。例如约束要求:没有用户能被赋予两个冲突的角色。即同一个冲突组中的角色不能拥有同一个用户(SSD)。其一阶谓词描述是:
u∈Users,cr∈CR:|assigned_roles(u)∩cr|≤1.
上面的约束没有对与时间相关的授权进行研究和描述,因此对约束的描述并不完整。于是需要引进时间约束的概念,对基于时间约束的RBAC模型进行描述。时间约束主要有两类:连续时间约束和周期时间约束。连续时间约束是通过定义一个离散时间点序列来模拟现实世界中的连续时间序列,对多种时间约束提出形式化的定义,连续时间约束根据约束的时间特征,可分为激活时间范围约束、激活时间长度约束和时间范围内激活时间长度约束三类[8]。周期时间约束是通过引入日历的概念来定义周期时间表达式,通过周期的时态检测使角色处于许可和非许可状态。实现过程是通过对周期时间P进行检测,在<[起始时间,结束时间],P>的约束下,使角色处于许可和非许可状态。这种角色许可、非许可之间的转化通过角色触发器来控制。角色触发事件一旦产生则角色触发器可以立即执行,也可以在一个明确的说明时间内进行延迟。通过赋予许可与非许可活动的优先级,来解决许可与非许可活动的冲突。即角色的状态变化随周期时间的变化而变化,通过周期约束的描述增强了RBAC动态约束机制。
以上主要是对约束规则的研究和应用,在定义了完善的约束规则后,接着就是RBAC模型如何通过在用户和权限之间引入角色的概念,将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问,实现用户和权限的逻辑分离。现以时间约束规则的应用为例来说明如何处理账号盗用问题。某一犯罪分子在盗获账号的权限后,为达到隐蔽的目的,并不是一直使用该账号,而是间断地或偶尔使用,如果没有涉及与时间有关的约束,无法控制该非法访问,因此必须引入时间约束来完善该模型,这和在现实生活中也经常用时间来约束行为的有效行使期限,达到一定的安全目的是一样的道理。在RBAC模型产生以前的访问控制模型的弱点在于都没有把操作主体执行操作时所处的环境考虑在内,而且只要主体拥有对客体的访问权限,主体就可以无数次使用该权限,这样容易造成安全隐患。另外,它们在进行授权时,特权权限提前授予,不符合“最小特权原则”。现在我们在系统中,通过在一个安全措施上增加时间约束,通过周期的时间检测,限制某些功能的时效。如银行聘用的职员,只授予其在工作时间内获得访问该职员对应的权限,如从上午8点至12点,下午2点至6点,在此之外的时间该职员均不能获得权限。我们可以定义其在工作时间内的状态为角色许可状态,而在此之外的状态为非许可状态。再如,网上证券系统,只有在规定的证券交易日里,券商才能获得交易的权限,而其他时间里一律不能进行网络交易。因此,具有一定的周期特征或具有一定的时间上的规律性访问方式,尤其是这种具有时间周期特征或时间规律可以用周期的角色许可与非许可来描述的访问控制方式,都可以用TRBAC模型来实现其角色的授权访问。这样犯罪分子在盗获账号的权限后,如果不是在约束规定的时间周期内使用就是无效的,而且很快就会过期。如果对于绝密资料,还可以再加上访问机器的IP限制来限制访问者的机器和地点。因此,我们根据模型特点对三类模型的关系及应用环境进行描述,如图3。
最后再举一例说明约束的应用技巧,现实应用中经常出现一个用户的职位或任务发生变化,一般是将用户当前的角色去掉,加入代表新的职务或任务的角色即可。通过比较研究表明,角色权限之间的变化比角色(用户)关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,而配置权限到角色的工作比较复杂,需要一定的技术。所以可以由行政管理人员来委派用户到角色,由专门的技术人员来配置权限到角色,但是不给他们委派用户的权限。这与现实中的管理情况正好一致,除了方便权限管理之外,还可以很好地实现最少权限法则和职责分离原则。
四、总结与展望
网络安全的重要性是不容质疑的,确保网络安全就是在根本上预防网络犯罪。当前预防网络犯罪涉及的问题更多是体现在管理方面,要在管理源头上预防网络犯罪,主要是查找和防止:人为无意的疏忽漏洞,人为故意的非授权访问、信息泄漏、破坏数据完整性,网络信息管理制度上的漏洞和不完善,网络信息管理过程中的疏忽漏洞等。通过对RBAC模型的介绍和对各类型的约束规则的应用研究,让我们认识到RBAC的核心思想就是对角色的定义和管理。在网络安全管理中应该贯彻这种思想,规范和健全各种角色的职责和约束关系,让每个信息管理员和操作人员对号入座,主动适应角色,接受约束,这样才可以更好的建立规范化、法制化、自动化的网络信息系统。而整个系统也可以避免因为系统升级、人员变迁和人员素质波动而产生不安全因素,这样就在源头上堵住了有可能给网络犯罪提供方便的漏洞,保障网络安全,达到预防网络犯罪的目的。广义上这些约束规则不仅可以应用在网络犯罪的预防上,也可以推广借鉴到其他的管理制度中。
标签:rbac论文; 网络犯罪论文; 关系模型论文; 冲突管理论文; 网络模型论文; 角色冲突论文; 信息安全论文; 网络安全论文;