关键词:访问控制;角色访问控制;任务访问控制
一.访问控制的概念与原理
访问控制起源于20 世纪60年代,是一种重要的信息安全技术。访问控制是一种从访问控制的角度出发,描述安全系统,建立安全模型的方法。通过某种途径显式地准许或限制访问能力及范围,从而限制对关键资源的访问,防止非法用户侵入或者合法用户的不慎 *** 作造成破坏。访问控制一般包括主体(简记为S)、客体(简记为O)和控制策略(简记为K)3个元素。主体是指发出访问 *** 作、存取要求的主动方,通常指用户或某个进程;客体是一种信息实体,指系统中的信息和资源,可以是文件、数据、页面、程序等;控制策略是主体对客体的 *** 作行为集和约束条件集,规定了哪些主体能够访问相应的客体,访问权限有多大。访问控制系统3个要素之间的行为关系如图1所示。
当主体提出一系列正常的请求信息,通过信息系统的入口到达被控制规则集监视的监视器,并由控制策略判断是否允许或拒绝这次请求,因此在这种情况下,必须先要确定合法的主体,而不是假冒的欺骗者,也就是对主体进行认证。主体通过验证,才能访问客体,但并不保证其有权限可以对客体进行 *** 作。客体对主体的具体约束由访问控制表来控制实现,对主体的验证一般会鉴别用户的标识和用户密码。访问控制的目的是为了限制访问主体对访问客体的访问权限,为达到此目的,访问控制需要完成以下两个任务:
(1)识别和确认访问系统的用户
(2)决定该用户可以对某一系统资源进行何种类型的访问[1]
在GB/T1879943中,定义了访问控制系统时所需要的一些基本功能组件,并且描述了各功能组件之间的通信状态。
访问控制功能组件包括4个部分:发起者(initiator)、访问控制执行能力(access control enforcement function, AEF)、访问控制决策能力(access control decision function, ADF)及目标(target)。发起者是指信息系统中系统资源的使用者,是访问控制系统的主体;目标是指被发起者所访问或试图访问的基于计算机或通信的实体,是访问控制系统中的客体;AEF的功能是负责建立起发起者与目标之间的通信桥梁,它必须依照ADF的授权查询指示来实施上述动作,在信息系统中,ADF可以说是访问控制的核心。当ADF对发起者提出访问请求进行判决时,所依据的是一套安全访问策略。
二.自主访问控制技术
自主访问控制(Discretionary Access Control,DAC)最早出现在20世纪70年代初期的分时系统中,它是多用户环境下最常用的一种访问控制技术,在目前流行的 *** 作系统中被普遍采用。DAC模型是根据自主访问策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体。客体的主人( 即资源所有者) 全权管理有关该客体的访问授权,有权泄露、修改该客体的有关信息。因此,有些学者把DAC称为基于主人的访问控制。为了提高效率,系统不保存整个访问控制矩阵,在具体实现时基于访问控制矩阵的行或列来实现访问控制。
自主访问控制的特点是资源的属主将访问权限授予其他用户或用户组后,被授权的用户便可以自主地访问资源,或者将权限传递给其他的用户。缺点是资源管理比较分散;用户间的关系不能在系统中体现出来,不易管理;信息容易泄露,无法抵御特洛伊木马的攻击。
三.强制访问控制技术
强制访问控制(Mandatory Access Control,MAC)最早出现在1965年由AT&T和MIT联合开发的安全 *** 作系统Multics 系统中,在1983年美国国防部的可信计算机系统评估标准中被用作B级安全系统的主要评价标准之一。
MAC模型是一种多级访问控制策略模型,它的主要特点是系统对访问主体和受控对象实行强制访问控制。常用的强制访问控制是指预先定义用户的可信任级别及资源的安全级别,当用户提出访问请求时,系统对两者进行比较以确定访问是否合法。在强制访问控制系统中,所有主体(用户,进程) 和客体(文件,数据) 都被分配了安全标签,安全标签标识一个安全等级。
在强制式策略中,资源访问授权根据资源和用户的相关属性确定,或者由特定用户(一般为安全管理员) 指定。它的特征是强制规定访问用户必须或者不许访问资源或执行某种 *** 作。资源特征是强制规定访问客体强制访问控制策略目前主要应用于军事系统或是安全级别要求较高的系统之中[2]。强制访问控制策略对特洛伊木马攻击有一定的抵御作用,即使某用户进程被特洛伊木马非法控制,也不能随意扩散机密信息。强制访问控制的不足主要表现在它使用不灵活,应用的领域比较窄;另外,强制访问控制对授权的可管理性考虑不足,实现工作量太大,管理不便,不够灵活,过于偏重保密性,对于系统连续工作能力等考虑不足。
四.基于角色的访问控制技术
基于角色的访问控制(Role-based Access Control,RBAC)模型是目前比较流行和先进的安全访问控制模型。RBAC的概念开始于20世纪70年代的多用户和多机系统中,1992年,DFerraiolo 和 RKuhn 在已有RBAC概念的基础上,形式化地定义RBAC模型。 RBAC模型通过引入“角色”的概念,将访问控制中的主体对象和对应权限解耦。RBAC中的基本概念有USERS(用户),ROLES(角色),PERMISSIONS(权限),SESSIONS(会话)。
RBAC模型的基本思想是在用户与权限之间引入角色的概念,利用角色来实现用户和权限的逻辑隔离。所谓角色就是访问主体在系统中可执行 *** 作或可访问服务的集合。RBAC的最大优势在于其管理层的简单化,一个RBAC系统建立起来后的主要管理工作即为授权或取消用户的角色。在RBAC系统中,权限并不直接分配给用户,而是先分配给角色,然后系统分配一定的角色给用户,这样用户根据其角色获得相应的访问权限。当系统功能变化或演进时,只需删除角色的旧功能、增加新功能,或定义新角色,而不必更新每一个用户的权限设置,便大大简化了对权限的管理。从“震网”、“火焰”病毒的大规模爆发,到索尼在线被黑、CSDN数据泄露等信息安全事件的层出不穷,每一次大规模病毒、黑客攻击行为的出现,都会对用户信息系统造成严重的危害,引起了安全行业的集体反思。作为信息系统的重要组成部分, *** 作系统承担着连接底层硬件和上层业务应用的重任,在诸多安全事件中首当其冲,面临着巨大的安全压力。而 *** 作系统本身在安全防护上的脆弱性,特别是系统内自主访问控制机制存在的安全隐患,使用户在面对病毒、木马及黑客攻击时显得力不从心,最终导致安全事件密集爆发的信息安全“危局”。
掀开自主访问控制的面纱
为了增强信息系统安全、可靠运行的能力, *** 作系统内置了一些防护措施,例如身份鉴别、访问控制、入侵防范等。其中,访问控制是计算机安全防护体系中的重要环节,包含主体、客体、控制策略三个要素。其中,主体是指可以对其他实体施加动作的主动实体,例如用户、进程等;客体包括数据、文件、程序等,是接受其他实体访问的被动实体;控制策略则定义了主体与客体相互作用的途径。简而言之,访问控制是一种通过控制策略授予、约束主体访问客体行为的安全机制。
访问控制分为三种模型,即自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)。其中,自主访问控制在C2级 *** 作系统中应用广泛,是根据自主访问控制策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体,某些用户还可以自主地把自己所拥有的客体的访问权限授予其他用户。
自主访问控制的实现方式包括目录式访问控制模式、访问控制表(ACL)、访问控制矩阵、面向过程的访问控制等,其中,访问控制表是自主访问控制机制通常采用的一种方式。访问控制表是存放在计算机中的一张表,本质上是带有访问权限的矩阵,其访问权限包括读文件、写文件、执行文件等等。在自主访问控制机制下,每个客体都有一个特定的安全属性,同时访问控制表也授予或禁止主体对客体的访问权限。在实际工作中,安全管理员通过维护访问控制表,控制用户对文件、数据等IT系统资源的访问行为,来达到安全防控的目的。
从安全性上看,现有 *** 作系统中基于访问控制表的自主访问控制存在着明显的缺陷:一方面,超级用户(root/Administrator)权力过度集中,可以随意修客体的访问控制表,只要拥有超级管理员权限就可以对服务器所有的资源进行任意 *** 作;另一方面,客体的属主可以自主地将权限转授给别的主体,一旦把某个客体的ACL修改权转授出去以后,拥有者便很难对自己的客体实施控制了。因此,在现有的这种访问控制模型下, *** 作系统存在很多安全风险。
自主访问控制下的安全风险
按照访问许可机制的不同,自主访问控制又分为三个类型,即自由型、等级型和宿主型。其中,在自由型自主访问控制机制中,不同主体之间可以自由转让客体访问控制表的修改权限,意味着任何主体都有可能对某一客体进行 *** 作,系统安全性很难得到保障;在等级型自主访问控制机制中,用户可以将拥有修改客体访问控制表权限的主体组织成等级型结构,例如按照等级将不同的主体排列成树型结构,高等级主体自动获得低等级客体的控制权限。这种方案的优点是可以选择值得信任的人担任各级领导,从而实现对客体的分级控制,缺点是同时有多个主体有能力修改某一客体的访问权限。
从市场应用情况看,等级型自主访问控制是使用范围最为广泛的安全机制,现有C2级大型商用服务器 *** 作系统(如AIX、HP-UX、Solaris、Windows Server、LinuxServer等)中的访问控制机制均为等级型自主访问控制,涉及金融、能源、军工等国家命脉行业。在这些系统中,位于树型结构顶端的超级用户拥有无上的权限,可以对其他用户拥有的资源进行任意修改和访问。权限的高度集中,客观上放大了系统的安全风险。针对等级型自主访问控制,攻击者可以通过暴力破解、系统漏洞利用、木马攻击等多种方式窃取管理员权限,进而实现对目标系统的完全控制。事实证明确实如此,无论是曾经肆虐全国的“灰鸽子”木马,还是震惊全球的“震网”、“火焰”等病毒,都将获得管理权限作为一种重要手段,在此基础上成功入侵系统并实施破坏行为。
完善自主访问控制机制
为了提升信息系统的安全防护能力,我国颁布了《信息安全等级保护管理办法》,并制定了一系列国家标准,为用户开展信息安全等级保护工作提供指导意义。其中,《GB/T 20272-2006信息安全技术- *** 作系统安全技术要求》是专门针对 *** 作系统安全防护的国家标准,该标准在“自主访问控制”部分提出了明确的要求:“客体的拥有者应是唯一有权修改客体访问权限的主体,拥有者对其拥有的客体应具有全部控制权,但是,不充许客体拥有者把该客体的控制权分配给其他主体。”
从技术要求的细节上看,满足等级保护标准的自主访问控制机制实质上是宿主型自主访问控制。在这种机制下,用户需要对客体设置一个拥有者,并使其成为唯一有权访问该客体访问控制表的主体,确保了受保护客体访问控制表控制权的唯一性,有效规避由于系统管理员信息泄露而给系统带来的巨大危害,同时也限制了病毒对系统的破坏行为,帮助用户提升防病毒、防黑客攻击的能力。
目前,国内已经出现满足等级保护 *** 作系统技术要求的安全产品,例如椒图科技推出的JHSE椒图主机安全环境系统(以下简称JHSE),就基于宿主型自主访问控制机制保障 *** 作系统的安全。此外,JHSE还采用了强制访问控制模型,为访问主体和受保护的客体分配不同的安全级别属性,在实施访问控制的过程中,系统将对主体和客体的安全级别属性进行比较,之后再决定主体是否可以访问受保护的客体,从而实现了细粒度的安全访问控制机制。可以相信,随着安全技术的持续进步和用户安全意识的不断增强, *** 作系统将会在面对病毒、木马及黑客攻击时扭转不利局面,为整体信息系统的安全运行提供可靠支撑。
SE-Linux是一种强制存取控制(mandatory access control)的实现。它的作法是以最小权限原则(principleof least privilege)为基础,在Linux核心中使用Linux安全模组(Linux SecurityModules)。它并非一个Linux发行版,而是一组可以套用在类Unix *** 作系统(如Linux、BSD等)的修改。
SE-Linux的思想理念是,Linux 内核中具有必要的访问控制。而许多现实问题则需要在它广泛被使用前加以解决(如源代码的编写)。 SE-Linux整个安全性体系结构称为 Flask,在犹他大学和 Secure ComputingCorp 的协助下由 NSA 设计。在Flask体系结构中,安全性策略的逻辑和通用接口一起封装在与 *** 作系统独立的组件中,通用接口是用于获得安全性策略决策的。这个单独的组件称为安全性服务器,虽然它只是个内核子系统而已。
该服务器的SE Linux 的实现,定义了一种混合的安全性策略,由类型实施(TE)、基于角色的访问控制 (RBAC) 和可选的多级别安全性 (MLS)组成,因此被广泛用于军事安全中。该策略由另一个称为 checkpolicy的程序编译,它由安全性服务器在引导时读取。文件被标为 /ss_policy 。这意味着安全性策略在每次系统引导时都会有所不同。策略甚至可以通过使用 security_load_policy 接口在系统 *** 作期间更改(只要将策略配置成允许这样的更改)。
Flask 有两个用于安全性标签的与策略无关的数据类型 -- 安全性上下文和 安全性标识 。安全性上下文是表示安全性标签的变长字符串。安全性标识(SID) 是由安全性服务器映射到安全性上下文的一个整数。SID作为实际上下文的简单句柄服务于系统。它只能由安全性服务器解释。Flask通过称为对象管理器的构造来执行实际的系统绑定。它们不透明地处理SID和安全性上下文,不涉及安全性上下文的属性。任何格式上的更改都不应该需要对对象管理器进行更改。
部分源代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)