APP下载

Linux系统访问控制机制的研究

2010-08-23涂俊英

制造业自动化 2010年13期
关键词:安全策略访问控制内核

涂俊英

TU Jun-ying

(孝感学院 计算机与信息科学学院,孝感 432000)

0 引言

Internet正在越来越多地融入到社会的各个方面,计算机网络的安全问题随着Internet的发展而越来越被人们所重视。在社会日益信息化的今天,随着Internet以电子商务为代表的网络应用的日益发展,出于各种目的的网络入侵和攻击越来越频繁。信息网络的大规模全球互联趋势,随着网络用户成分越来越多样化,以及人们的社会与经济活动对计算机网络依赖性的与日俱增,Internet安全以及信息数据安全,使得计算机网络的安全性成为信息化建设的一个核心问题。随着Internet对公司、个人和社会生活影响的日益扩大,Internet越来越深入地渗透到各行各业的关键要害领域,网络安全作为一个无法回避的问题呈现在人们面前.如果网络安全问题不能得到妥善的解决,网络使用者如果不重视自身的安全防范,将会对国家安全带来严重的威胁,将很有可能给自己带来一系列的严重后果。

本文以研究和改进Linux现有的存取访问控制机制为主要目标,在对Linux现有安全机制分析的基础上,为了验证LYSLinux存取访问控制模型的可行性和正确性,进一步结合信息安全模型理论,本文设计并实现了基于LYSLinux存取访问控制模型的LYSLinux原型系统,总结出了安全操作系的分权思想,并进一步提出了LYSLinux存取访问控制模型及分层授权观点。LYSLinux原型系统的设计充分利用了Linux内核提供的安全设施,基于现有FLASK安全体系结构设计。本文通过对LYSLinux原型系统的测试和结果分析,进一步总结该系统的优缺点。

1 安全操作系统的发展和研究现状

Linux网络系统结构将整个网络系统的结构分为内核空间和用户空间两部分,IP协议实现网络层协议,其中内核空间又可以分为协议层和设备驱动层,在IP层以下是网络设备来支持所有Linux网络工作。Linux选用编程接口是由于它的流行性及可移植性,控制Socket文件描述符对应的就是对BSD Socket的操作,有助于应用程序从Linux平台移植到其他Unix平台。从INET Socket层到IP层,它由INET Sockets层来支持,发送数据时根据发送的目标地址确定需要使用的网络设备接口和下一个需要传送的及其地址,这一层为基于IP协议的TCP和UI)P管理传输端点。从而进入到BsD Socket层的操作,从IP层到数据链路层,接收数据时在IP层判断数据包是向上一层协议提交还是需要做IP转发,就是到网络接口设备驱动程序,对数据包的采集和发送。

由于Linux安全操作系统的应用已非常广泛,不断成熟和完善的Linux提倡的开放源码政策及自身安全方面所具有的一些优良特性。国内近年来在这方面也取得了大量成果,Linux的存取访问控制机制也在不断的发展和完善,然而,现有的Linux存取访问控制仍有其不足之处,较之国外仍存在差距,在研究成果的产品化上亦有诸多缺陷。

2 安全体系结构

安全模型是对系统安全功能的高度抽象和概括,安全系统的设计和实现除了依赖于具体的安全模型之外,是实现具体安全机制的理论基础。同时,还需具有良好的体构来保证系统的运行效率和质量,安全模型也是制定安全策略的依据。因此,安全体系结构(安全体系框架)是实现安全系统的基础和依据,对安全框架的研究是十分必要的。

Flask体系结构提供了动态策略支持,从安全服务器取得主体对客体的访问权限。Flask体系结构实现了动态安全策略,标识系统管理的对象,支持策略灵活性。缓存了数目有限的特定主体对客体的访问权限记录,主要为了避免由于安全服务器的频繁访问而造成的系统性能下降对象管理器,实施安全策略的判定;安全服务器通过该接口对象管理器能及时感知安全策略的变化,做出安全策略的判定。Flask体系结构如图1所示。

图1 Flask安全体系结构

3 Linux内核安全机制分析

针对自主访问控制存在的种种不足,Linux系统下出现了许多强制访问控制机制,SELinux是一个基于动态策略配置的强制访问控制子系统。由于SELinux支持较细粒度的权限描述和管理,采用SELinux能极大程度的提高系统的安全性能。

SELinux安全策略配置支持RBAC模型,该模型中存在另一个实体集——用户集。用户可以将一个或多个类型指派给某一角色,SELinux定义的用户是RBAC模型的组成部分,换言之,SELinux中的角色是包含一个或多个类型的更大的权限集,实际上是一个更大的权限集合。SELinux在设计初期是以内核模块的形式插入到内核中运行的,Linux2.6内核中SELinux访问控制建立在LSM框架之上。LSM的主要思想是内核的设计者在需要进行访问控制的位置插入相应的钩子函数(hooks),是Linux内核中为安全模块(系统)的设计提供的一套内核机制。当信息流到这些钩子函数时控制时,内核根据该反馈结果控制系统中的信息流,内核会将控制交给注册到LSM中的安全控制函数,然后经过某一安全策略的判断后将决策结果反馈给内核,安全控制函数首先提取出主体和客体信息, SELinux的存取访问控制是基于LSM框架实现的。SELinux的结构如图2所示。

图2 SELinux存取访问控制模型

4 Linux存取访问控制模块设计

Linux安全模块(LSM)采用了通过在内核源代码中放置钩子的方法,满足大多数现有Linux安全增强系统的需要,截获主体对客体的访问。为了Linux安全模块(LSM)采取了简化设计的方式,在系统运行过程中,Linux安全模块(LSM)现在主要支持大多数现存安全增强系统的核心功能。系统通过提取存放在内核对象安全域中的信息,对一些安全增强系统要求的其他安全功能,得到主客体的安全标识。Linux安全模块(LSM)现在主要支持“限制型”的访问控制决策,LSM框架为多数内核对象增加了安全域。当Linux内核给予访问权限时,进程控制块(task struct),inode结点,用户进程执行系统调用,首先经过Linux内核原有的逻辑找到并分配资源,进行错误检查,只提供了的少量的支持,然后经过经典的UNIX自主访问控制,对于模块功能合成。在Linux内核试图对内核对象进行访问之前,Linux安全模块(LSM)允许模块堆栈,安全模块根据其安全策略进行决策。LKM的最基本框架

LKM编译成功之后,可用insmod 命令插入到系统内核,并在内核态下运行。

5 系统工作流程分析

当LYSLinux内核模块初始化完毕后,内核中LSM框架的钩子函数会将程序流引向LYSLinux安全策略实施机构中相应的辅助函数,安全策略实施机构开始截获并根据安全策略实施强制访问控制。LYSLinux安全策略实施机构的辅助函数会从内核对象中提取出LYSLinux所需的安全信息,根据激活的辅助函数及其他LSM传递的参数判断主体对客体的操作请求以及该操作的类别,一般是指主体的当前有效SID和客体类型的类型号。

当存取访问向量缓存(AVC)中找不到相应向量时,由主体的SID,客体类型的类型号以及操作和操作类别到存取访问向量缓存中查寻相应的访问向量,AVC会进一步请求对象管理器并得到与SID对应的主体权限信息,通过查询安全策略数据库计算出对该操作集的决策结果以及存取向量,然后会将主体权限信息与客体类型和操作集及操作类别发送到安全服务器。更新存取访问向量缓存并返回决策结果,安全策略实施机构将决策结果返回给Linux内核。

安全策略服务器主要由安全策略加载器(DBLoader)和策略查询器(PolicyQuerier)组成,安全策略服务器的结构和工作时所依赖的数据结构信息。策略查询器(PolicyQuerier)负责根据其他组件的安全查询请求信息从安全策略数据库中提取出相应的信息,安全策略加载器负责构建和维护安全策略数据库(PolicyDB )。系统启动时安全策略加载器会从文件系统加载二进制安全策略描述文件到内核空间,计算出该请求的访问向量并返回,并由一组加载函数从二进制策略文件中读出策略数据,并用这些数据初始化安全策略数据库。策略查询器实现了db make decision函数,该函数申明如下:

int svr_make_decision(u32 domain,u32 role,u32 user,

u32 type,perm_classt class,operation_t ops,

svr_decision__t*sd);

该函数会根据一定的策略由上述的三个集合计算出该主体对该客体的所有权限以及请求操作集中被允许的权限。

6 结论

系统管理的各类软硬件资源包括数据的安全,而在操作系统中对资源的访问操作都需请求操作系统内核的服务,Linux操作系统以其良稳定的系统性能和开放源码的优势受到了广大个人用户和企业的青睐,因此基于操作系统内核的存取访问控制可以有效的保证系统中数据的安全性。但是Linux操作系统的存取访问控制还存在不足之处,对信息安全模型和安全体系结构研究的基础上,着重对现有Linux操作系统的存取访问控制机制进行了优缺点分析,并在此基础是提出了若干改进思路和观点,并构建了原型系统加以验证。

[1]Sylvia Osborn,Ravi Sandhu,Qamar Munawer.Configuring role-based access control to enforce mandatory and discretionary access control policies.ACM Transactions on Information and System Security.2000,13(2):8-96.

[2]梁洪亮.支持多安全政策的安全操作系统的研究与实施[D].中国科学院软什研究所,2002:11-23.

[3]Zanin,Giorgio.Towards a formal model for security policies specification and validation in the SE Linux system.Proceedings on the Ninth ACM Symposium on Access Control Models and Technologies,2004,10(5),136-145.

[4]李远征.操作系统访问控制模型关键技术研究[J].计算机工程与设计,2005,26(4):1004-1002,1095.

[5]Ray Spencer,Stephen Smalley,Peter Leacock,Mike Hitler,David Andersen,Jay Leprous.The Flask Security Architecture:System Support for Diverse Security Policies.Proceeding of The Eighth USENIX Security Symposium.1999,8:123-139.

猜你喜欢

安全策略访问控制内核
基于认知负荷理论的叉车安全策略分析
万物皆可IP的时代,我们当夯实的IP内核是什么?
强化『高新』内核 打造农业『硅谷』
基于飞行疲劳角度探究民航飞行员飞行安全策略
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
浅析涉密信息系统安全策略
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术