3.2.用户空间客体管理器

本文涉及的产品
访问控制,不限时长
简介: 版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/47100285 SELinux体系结构的一个非常强大的特征就是,它不仅能应用到用户空间资源也能应用到内核资源。
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/47100285

SELinux体系结构的一个非常强大的特征就是,它不仅能应用到用户空间资源也能应用到内核资源。的确,他来源于对微内核的研究,在微内核中,大多数资源都是被用户空间服务器管理的。在Linux中能够对资源进行强制访问控制的用户空间服务器的例子有X服务和数据库服务。这些服务器都提供强制安全所能提供的抽象资源。这一节提到了两种SELinux体系结构支持的用户空间服务器。

3.2.1 内核对用户空间客体管理器的支持

SELinux对用户空间客体支持的一个简单的方式就是直接通过内核安全服务器,正如下面这个图表展示的:

这里写图片描述



在这种方法下,用户空间客体管理器和内核客体管理的行为是非常像的。内核安全服务包含整个安全策略,并且用户空间客体管理器一定要咨询内核来获取访问控制决定,两者主要的不同就是用户空间客体管理器不能使用内核的AVC(access vector cache)。每一个服务器都要有他们自己的,分离的AVC来存储他过去从内核请求来的决定。对于用户空间服务器来说,AVC的功能就是被包含在库libselinux中。

另外一个不同就是用户空间客体管理器没有LSM钩子,LSM钩子是内核空间的概念。然而,客体管理器在libselinux中的AVC有内核接口。AVC操纵缓存未命中并且代表客体管理器查询内核。

直白的说,这种支持用户空间客体管理器的方式有一些缺点。首先,为了使用类型强制策略,客体管理器必须要定义能够代表他们资源的客体类。例如,一个数据库服务器一定要定义包含数据库,表格,模式,实体等的客体类。对于内核资源,客体类是复杂的,并且和定义在SELinux的LSM模块头文件的硬编码类相符合。在策略中类定义的关系加上你这些内核编码导致了在用户空间策略和编码上不行的依赖关系。特别的,两个用户空间服务器一定要注意不要是用内核中的同一个客体类。内核没有为这种冲突提供解决办法。

这种方式的第二个缺点就是内核安全服务器为那些不在内核中的客体管理器中的客体类管理策略。这就增长了内核中和内核无关的抽象体的存储开销,并且会影响在AVC未命中的情况下,内核策略验证的开销。

3.2.2 策略服务器架构

为了解决用户空间客体服务器使用使用内核安全服务器的缺点和提高SELinux的安全性,一个正在进行的努力就是为用户空间客体管理器提供用户空间支持。这个项目有两个主要目标和一些第二目标。主要目标是:

  • 1:通过提供一个用户空间安全服务器来为用户空间客体管理器提供更好的支持,该安全服务器为用户的策略部分做出访问决定。
  • 2:通过构建一个策略管理服务器来为策略提供细粒度的访问控制,该策略管理服务器是一个用户空间客体管理器,他的客体类代表着策略部分。

全体上,这两个服务器和策略服务器是相关的。下面的这个图显示了策略服务器的架构。

这里写图片描述

在策略服务器架构中,整个系统策略的所有的操作和管理都是通过策略管理服务器(PMS)控制的。PMS是一个用户空间客体管理器,在PMS中,他创建了代表策略资源的客体类,并且对这些资源强制执行了一个更加细粒度的访问控制策略。这种特征为SELinux提供提供了非常重要的安全增强。在此之前,对策略的访问控制是一个要么有要么全无的议题。你要么可以写策略文件要么完全不能。伴随着PMS,你先在能够允许访问粗略部分并且限制对其他的访问。例如,SELinux策略能够允许用户管理工具添加用户和进行角色分配,但是,不能改变类型强制type规则。更好的是,你可以允许一个数据库服务器来改变和他的客体类和类型相关的TE策略,但不是内核中的那些。在内部,PMS被设计来使用SELinux最新的一个特征,可加载策略模块,这个会在后面的章节中描述。

PMS第二个主要的功能就是分离系统策略到内核和用户部分,并且分别将它们加载到内核安全服务器和用户空间安全服务器(USSS)。以这种方式,内核并不了解规则和客体类,仅仅对用户空间客体管理器具有重大意义。用户空间客体管理器咨询USSS而不是内核。为了策略更新和缓存相关性功能,在不同的用户空间客体管理器中的AVC向USSS注册(并不是内核)。

除了内核对用户空间资源的责任的去除和对策略管理更加细粒度的访问,策略服务器架构有更多优势。因为PMS是一个运行中的服务器,我们可以扩展他的接口来对分布式的策略管理允许远程的网络访问。PMS和USSS被设计来允许运行时客体类注册,打破了存在于内核中的用户空间客体管理器的编码依赖。两种方式的不同被libselinux对当前存在的工作提供向后兼容遮掩起来了。最终,PMS和USSS被设计成单独的服务,在没有另外一个的时候,运行一个或两个都被使用。例如,在一个细粒度策略访问控制是无用的系统中,USSS能够被单独使用来支持其他用户空间客体服务器。

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
Linux 程序员 Shell
【Linux】进程的基本属性|父子进程关系
【Linux】进程的基本属性|父子进程关系
【Linux】进程的基本属性|父子进程关系
|
8月前
|
存储 安全 调度
【操作系统】进程控制与进程通信
【操作系统】进程控制与进程通信
76 3
|
8月前
|
调度 索引
【操作系统】进程的基本概念&进程的状态与转换&进程的组织方式
【操作系统】进程的基本概念&进程的状态与转换&进程的组织方式
215 2
|
前端开发 Linux
Linux进程管理作业控制及虚拟文件系统
作业控制是一个命令行功能,也叫后台运行。
104 0
|
Android开发 C++
Android系统的Ashmem匿名共享内存子系统分析(3)- Ashmem子系统的 C/C++访问接口
Android系统的Ashmem匿名共享内存子系统分析(3)- Ashmem子系统的 C/C++访问接口
199 0
|
调度 索引
2.1.1操作系统(进程定义,组成,组织方式,特征,进程状态与转换,进程控制,原语)
进程 1.进程的定义 2.进程的组成 3.组织方式 1.链接方式​ 2.索引方式 4.进程的特征 5.进程的状态 6.进程状态的转换 7.进程控制 1.什么是进程控制 2.如何实现进程控制 3.进程控制相关的原语
2.1.1操作系统(进程定义,组成,组织方式,特征,进程状态与转换,进程控制,原语)
|
算法 索引
【操作系统】2.1.2 进程的状态与转换、进程的组织
【操作系统】2.1.2 进程的状态与转换、进程的组织
【操作系统】2.1.2 进程的状态与转换、进程的组织
|
Unix Linux 调度
Linux进程管理
进程管理是操作系统的最重要的功能之一。有效率的进程管理能保证一个程序平稳而高效地运行。 Linux的进程管理与UNIX的进程管理相似。它包括进程调度、中断处理、信号、进程优先级、上下文切换、进程状态、进度内存等。
199 0
|
调度
操作系统基础知识(2)——进程的描述与控制
操作系统基础知识(2)——进程的描述与控制
453 0
操作系统基础知识(2)——进程的描述与控制
|
Shell Linux Unix
linux进程管理总结
linux进程管理总结目录 一、进程相关的概念二、关闭会话时子进程进程被杀死三、nohup的原理四、setsid原理五、daemon &和守护进程的区别六、服务进程为什么要fork两次七、systemd管理daemon八、僵尸进程九、进程名字和启动时指定进程名字十、source command和./command 和exec命令的区别一、进程相关的概念进程需要了解 进程,父进程,进程组,会话和控制终端的相关概念。
1614 0