操作系统是整个计算机信息系统的核心,操作系统安全是整个安全防范体系的基础,同时也是信息保障的关键所在。随着计算机及网络技术与应用的不断发展,伴随而来的计算机系统安全问题越来越引起人们的关注,信息安全业界越来越重视服务器操作系统的安全问题。
操作系统安全主要以隔离和控制为核心机制来实现的,从某种意义上说,服务器操作系统的安全,就是访问控制的安全,实现了合理的访问控制,就保证了操作系统中数据的安全。自主访问控制作为一种最早被提出而且最普遍的访问控制安全策略,在操作系统访问控制机制中占有十分重要的位置。
一.访问控制的基本概念
访问控制是指控制系统中主体对客体的访问。访问控制的目的是为了限制主体对客体的访问权限,从而使计算机系统在合法范围内使用。访问控制又可以分为自主性访问控制和强制性访问控制。
1.1访问控制三要素
主体(Subject):可以对其他实体施加动作的主动实体,如用户、进程、I/O设备等。
客体(Object):接受其他实体访问的被动实体,如文件、共享内存、管道等。
控制策略(Control Strategy):主体对客体的操作行为集和约束条件集,如访问矩阵、访问控制表等。
1.2访问控制与操作系统安全的关系
访问控制是操作系统安全机制的主要内容,也是操作系统安全的核心。访问控制的基本功能是允许授权用户按照权限对相关客体进行相应的操作,阻止非授权用户对相关客体进行任何操作,以此来规范和控制系统内部主体对客体的访问操作。
在系统中访问控制需要完成以下两种任务:
1)识别和确认访问系统的用户;
2)决定该用户可以对某一系统资源进行何种类型的访问。
二. 自主访问控制
自主访问控制(Discretionary Access Control,DAC)是一种最普遍的访问控制安全策略,其最早出现在20世纪70年代初期的分时系统中,基本思想伴随着访问矩阵【1】被提出,在目前流行的操作系统(如AIX、HP-UX、Solaris、、Windows Server、Linux Server等)中被广泛使用,是由客体的属主对自己的客体进行管理的一种控制方式。这种控制方式是自由的,也就是说由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体。在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。自主访问控制的实现方式通常包括目录式访问控制模式、访问控制表、访问控制矩阵和面向过程的访问控制等方式【2】。
2.1自主访问控制特点
自主访问控制是基于对主体的识别来限制对客体的访问,这种控制是自主的,在自主访问控制下,一个用户可以自主选择哪些用户可以共享他的文件。其基本特征是用户所创建的文件的访问权限由用户自己来控制,系统通过设置的自主访问控制策略为用户提供这种支持。也就是说,用户在创建了一个文件以后,其自身首先就具有了对该文件的一切访问操作权限,同时创建者用户还可以通过“授权”操作将这些访问操作权限有选择地授予其他用户,而且这种“授权”的权限也可以通过称为“权限转移”的操作授予其他用户,使其具有使用“授权”操作另外的用户授予对该文件进行确定的访问操作权限的能力。
2.2自主访问控制三大类型
2.2.1自由型的自主访问控制
自由型自主访问控制中,一个客体的创建者(拥有者)可以把自己对客体的许可权转授给其他主体,即对客体的存取控制表有修改权,并且还可使其对其他主体也具有分配这种权利的能力,而且这种转授能力不受创建者自己的控制。在这种系统中,一旦访问许可权被分配出去,拥有者就很难对自己的客体实施控制。虽然可以通过客体的ACL表查询出所有能够修改该表的主体,但是却没有任何主体对该客体的安全负责,因此,这种对访问权修改的控制方式是很不安全的。
2.2.2等级型的自主访问控制
在等级型自主访问控制中,可以将对客体存取控制表的修改能力划分成等级。例如,可以将控制关系组成一个树型结构。最高等级主体可以修改所有客体存取控制表的能力,并且具有向任意一个主体分配这种修改权限的能力。最低级的主体不再具有访问许可,也就是说他们对相应的客体的存取控制表不再具有修改权。有访问许可的主体(即有能力修改客体的存取控制表),可以对自己授予任何访问模式的访问权。其优点是通过选择可信任的人担任各级权限管理员,使得能够以可信方式对客体施加控制。缺点是,对于一个客体而言,可能会同时有多个主体有能力修改它的存取控制表。
2.3.3宿主型的自主访问控制
宿主型自主访问控制是对每个客体设置一个拥有者,它是唯一有权访问客体访问控制表(ACL)的主体。拥有者对其拥有的客体具有全部控制权。但是,拥有者无权将其对客体的控制权分配给其它主体。因此,客体拥有者在任何时候都可以改变其所属客体的存取控制表,并可以对其它主体授予或者撤消其对客体的任何一种访问模式。宿主型自主访问控制方式的优点是修改权限的责任明确,由于拥有者关心自己客体的安全,便不会随意把访问控制权转授给不可信的主体,这种方式更有利于系统的安全性。因此,许多重要信息系统(等级保护中三级以上的信息系统)的自主访问控制机制必须要使用宿主型访问权限控制方式。
三.等级保护三级标准的自主访问控制要求
自主访问控制机制(Discretionary Access Control)是安全操作系统必不可少的、应用最广泛的安全机制之一。目前大型行业应用中所使用的AIX、HP-UX、Solaris、Windows Server操作系统主要为等级型的自主访问控制。对于等级型的自主访问控制,管理员root或 Administrator对其他用户的资源可直接做任意修改和访问。
而在GB/T20272[3]等级保护三级的4.3.1.2自主访问控制要求中,则要求实现宿主型的自主访问控制,即:客体的拥有者是唯一有权访问客体访问控制列表(ACL)的主体,拥有者对其拥有的客体具有全部的控制权,但无权将客体的控制权分配给其他主体。
四.符合三级操作系统标准的自主访问控制的实现
在系统中实施访问控制是为了保证系统资源(操作系统和数据库管理系统)受控合法地使用。用户只能根据自己的权限大小来访问系统资源,不得越权访问。不同等级的访问控制要求在操作系统安全方面所体现的也不同。
4.1三级操作系统安全标准的自主访问控制要求
根据等级保护《GB/T 20272-2006信息安全技术-操作系统安全技术要求》规定,在等级保护三级操作系统安全标准中,引入和提出了强制访问控制的概念。但是,大部分人认为强制访问控制模型是用来代替自主访问控制模型的,有了强制访问控制就不需要自主访问控制了,这种理解是完全错误的。在国家标准GB/T20272中对于各级操作系统中的自主访问控制都有不同的技术要求,尤其是对三级操作系统中对自主访问控制有明确的要求,即:操作系统中客体的拥有者应是唯一有修改客体访问权限的主体,拥有者拥有对自己客体的全部控制权,但拥有者不允许把客体控制权分配给其他主体。在保密性访问控制BLP【4】模型中,也明确的提出了自主访问控制的策略。
4.2现有操作系统在自主访问控制中的缺陷
在等级保护标准三级操作系统中,强调了最小授权原则,使得用户的权限最小化,同时要求对重要信息资源设置敏感标记【5】【6】。目前,我国使用的主流商用服务器操作系统(如AIX、HP-UX、Solaris、Windows Server、Linux Server等)的自主访问控制并没有达到相应技术要求和功能提升,无法达到三级安全操作系统的技术标准。
现有的主流商用操作系统普遍存在以下缺陷,本文以Windows 2008 Server举例说明:
在普通的Windows 2008 Server中,存在用户 Test,此用户属于Users 组,使用 Test 用户进行登录并创建文件 DAC.TXT 并赋予了 Test 用户“全部控制权限”,同时针对 Administrators 组用户只有“读”权限,此时切换用户至Administrator管理员用户对 DAC.TXT 文件进行写操作,系统提示“访问被拒绝”。在现有普通操作系统的安全机制中Administrator 用户可以设置客体DAC.TXT的ACL,修改其拥有者与访问控制权限,或把自身加入到其ACL中,使自身有“全部控制权限”。
4.3符合三级操作系统安全标准的自主访问控制实现要求
根据以上示例,在满足GB/T20272中4.3.1.2中自主访问控制的要求中(即符合等级保护标准三级要求的宿主型自主访问控制),Windows 2008 Server的自主访问控制应具备以下提升:
a.当Administrators组户对 Test 用户创建的客体DAC.TXT文件进行修改拥有者操作时,SSOOS 应准确获取当前操作,并判断当前操作主体是否为此客体的拥有者,如不是SSOOS应返回拒绝。
b.当Administrators组用户对 Test 用户创建的客体DAC.TXT文件的ACL进行修改操作时,SSOOS 应准确获取当前操作,并判断当前操作主体是否为此客体的拥有者,如不是SSOOS应返回拒绝。
c.当 Test 用户试图修改客体DAC.TXT文件的拥有者时,SSOOS 应准确获取当前操作,并判断当前操作主体是否为此客体的拥有者,如是客体拥有者,需进一步判断是否在修改客体拥有者,如是SSOOS应返回拒绝。
4.4符合三级操作系统安全标准的自主访问控制实现方法
基于以上要求,要实现符合等级保护三级标准要求的宿主型自主访问控制,需要对操作系统现有的安全机制进行扩充与改造,即对原有的 SSOOS 进行动态的扩充与增强,经过改造与扩充后的 SSOOS 要具有捕获所有主体对客体访问监控的能力,如在实现新的 SSF 时,安装“访问监控器”,对“访问监控器”的要求是可准确识别出主体的唯一性,如以上示例中,当DAC.TXT 客体所属主体 Test 用户改变了用户名称,或Administartor用户改变用户名称为 Test 试图欺骗与绕过访问限制时,新的“访问监控器”要具备准确的识别客体原拥有者的能力,以对抗此种欺骗与攻击。
椒图科技以上述方法原理为基础进行深入的研究和拓展,自主研发了“JHSE椒图主机安全环境系统”(简称JHSE)。JHSE以国家等级保护标准为依据,严格按照三级操作系统安全标准中对自主访问控制要求,通过对安全子系统(SSOOS)的重构和扩充,将原有操作系统中的自主访问控制模型动态的更新为符合《GB/T20272-2006信息安全技术-操作系统安全技术要求》中第三级要求的自主访问控制模型。同时,JHSE不仅具有文中所说的符合三级标准的自主访问控制,还具有三权分立和增强型DTE、RBAC、BLP 三种访问控制功能,以及剩余信息清除,完整性检测(包括文件、账户、服务、注册表)、双重身份认证、访问控制、安全审计、资源控制及异常检测等多种功能。 JHSE完全遵循安全操作系统理念,集合多项发明专利和200余项全新技术,打造了系统层的立体防护体系,实现了对服务器操作系统安全等级的动态、透明提升。
参考文献:
[1]陆宝华,信息安全等级保护基本要求培训教程[M],北京:电子工业出版社,2009:第78页至109页
[2]陆宝华,信息系统安全原理与应用[M],北京:清华大学出版社,2006:第42页至54页
[3] GB/T20272-2006,信息安全技术操作系统安全技术要求[S]
[4]卿斯汉等,《操作系统安全》(第二版)[M],北京:清华大学出版社,2011:第65至76页
[5] GB/T22239-2008,信息安全技术信息安全等级保护基本要求[S]
[6] GB/T20271-2006,信息安全技术信息系统通用安全技术要求[S]
李科(1981-),男,学士,深圳市安盾椒图科技有限公司常务副总经理,主要研究方向:等级保护,安全操作系统,信息安全,网络安全。