龙港网站建设,wordpress百度提交,汕头老城图片,济宁嘉祥网站建设接前一篇文章#xff1a;SELinux零知识学习九、SELinux策略语言之客体类别和许可#xff08;3#xff09; 一、SELinux策略语言之客体类别和许可
3. 有效的客体类别
本节对Fedora Core 4#xff08;FC4#xff09;可用的内核客体类别做一个概述#xff0c;目标是描述客…接前一篇文章SELinux零知识学习九、SELinux策略语言之客体类别和许可3 一、SELinux策略语言之客体类别和许可
3. 有效的客体类别
本节对Fedora Core 4FC4可用的内核客体类别做一个概述目标是描述客体类别以及系统资源是如何映射到这些客体类别的。
编写一个良好的策略最困难的部分是理解客体类别和许可的语义、以及特定系统上应用程序上下文中那些语义的含义。
FC 4系统有超过40个内核客体类别它们代表了内核提供的所有资源。客体类别的数量说明了一个基本原理在SELinux中代表尽可能完整准确的内核资源。Linux涉及的范围广泛且非常复杂这就决定了客体类别肯定也是极其多且复杂的复杂得让人畏缩但要取得SELinux的灵活性完全解决Linux面临的安全挑战这是必需的。
为了易于理解我们将内核客体类别分解成了四种文件相关的、网络相关的、System V IPC和杂项。
1与文件相关的客体类别
第一种客体类别是那些与文件及其它存储在文件系统中的资源有关的这是大多数用户最熟悉的客体类别了它包括了所有的与持续不变的、在磁盘上的文件系统和在内存中的文件系统如proc和sysfs结合在一起的客体类别。
在UNIX系统中一个底层的概念是“一切皆文件”大多数情况下这么说是对的但是它隐藏了一个事实就是并非所有的文件都是相同的。实际上现代类UNIX系统如Linux专门为设备、IPC以及标准的存储数据的文件设计了专用的文件。SELinux详细准确地表现了内核的视图。下表总结了与文件有关的客体类别
客体类别描述blk_file块文件chr_file字符文件dir目录fd文件描述符fifo_file命名管道file普通文件filesystem文件系统如一个真实的分区lnk_file符号链接sock_fileUNIX域套接字
file和dir
客体类别file和dir分别代表普通文件和目录。普通文件就是那些存储数据的文件它们是大多数系统上最常见的客体了目录在Linux中也是一个特定的文件它是独一无二的因为它们可能还包含其它客体。
lnk_file
客体类别lnk_file代表符号链接。大多数情况下它非常重要能够区别普通文件和符号链接这样可以预防常见的攻击。恶意进程和用户可以创建符号链接这样可能引起某个进程访问或修改本不是它们打算要访问或修改的文件。独立的lnk_file客体类别允许编写预防这些攻击类型的策略。
fifo_file和sock_file
客体类别fifo_file和sock_file表示用于IPC的特定文件。fifo_file客体类别代表fifo文件也叫做命名管道sock_file客体类别联合UNIX域套接字控制创建、访问等与文件有关的客体的能力。
chr_file和blk_file
客体类别chr_file和blk_file分别表示字符设备和块设备。在Linux中设备通常是通过在/dev/目录下的特定文件来进行访问的这些文件通过主/次设备号表示字符和块设备。字符设备是程序以字节流形式读取或写入数据的设备块设备是将数据以更大块进行传递的设备。
fd和filesystem
最后两个客体类别是文件描述符和文件系统。它们不是典型的Linux客体filesystem客体类别表示挂载的文件系统这个客体类别控制全局操作如挂载或查询限额。例如使用filesystem客体类别我们可以只运行挂载支持存储安全上下文的文件系统。所有特定类型的文件系统如ext3在策略中都使用相同的fs_use语句获取默认的标记定义。文件描述符表示打开的与文件有关的客体存在于进程中即使与文件有关的客体明显不同它们表示内核数据结构通常认为文件描述符是文件有关的客体的基础。的确标准Linux访问控制不能单独在文件描述符上提供访问控制这种策略忽略了文件描述符是可以在进程之间传递的资源的事实。通常子进程会从父进程哪里集继承文件描述符这个继承并不总是有利的许多Linux编程指南中都警告最好减少文件描述符继承特别是后台进程。为了标识此问题及其它问题我们以fd客体类别为例。在SELinux中fd代表文件描述符使用这个客体类别阻止文件描述符在进程间传递或继承就成为可能。值得注意的是有权使用文件描述符并不意味着就可以访问与文件有关的客体进程必须对这些文件也要有访问许可才行。