首页 理论教育 Linux内核安全模块:安全上下文转换

Linux内核安全模块:安全上下文转换

时间:2023-11-22 理论教育 版权反馈
【摘要】:如果只有初始/缺省安全上下文,则安全上下文不能变换,那么SELinux的世界是静止的,SELinux的安全作用就很有限。所以SELinux的主体和客体的安全上下文一定是可以变换的。因为SELinux的机制有三个:基于角色的访问控制、类型增强、多级安全,下面分机制介绍安全上下文的转换。

Linux内核安全模块:安全上下文转换

如果只有初始/缺省安全上下文,则安全上下文不能变换,那么SELinux的世界是静止的,SELinux的安全作用就很有限。所以SELinux的主体和客体的安全上下文一定是可以变换的。因为SELinux的机制有三个:基于角色的访问控制、类型增强、多级安全,下面分机制介绍安全上下文的转换。

1.角色的转换

SELinux用户的转换没有对应的策略语句。

角色转换的语法:

举例:

上述语句表示允许系统管理员转换为安全管理员。

角色转换的语法:

或者:

举例:

上述语句表示,当进程执行类型为sec_serv_exec_t的文件时,进程的角色由unconfined_r转化为msg_filter_r。

2.类型

类型转换略复杂。包含三种语法:

type_transition定义了当条件满足时的新类型。这种策略既用于生成主体(进程)新安全上下文,又用于生成客体新安全上下文。

下面分别举例。先是主体:

上述语句表示,类型initrc_t的进程执行类型为acct_exec_t的文件时,执行后进程的类型变为acct_t。后三条allow语句是为了保证执行动作能够发生,不会被内核拒绝。

再看一个客体的例子:

上述语句表示,类型为acct_t的进程在类型为var_log_t的目录中创建文件时,文件的安全上下文的类型为wtmp_t。第一条allow保证了进程可以在类型为var_log_t的目录中创建文件,第二条allow保证进程可以访问类型为wtmp_t的文件。

(2)type_change(www.xing528.com)

安全上下文中类型还可以改变,改变成什么值由type_change策略规定:

举例:

上述语句表示,类型为auditadm t的进程可以将类型为sysadm_devpts_t的字符设备文件的类型改变为auditadm_devpts_t。

type_change语句用于规定主体和客体的类型可以改变为什么值。进程在运行过程中可以将进程自身或某一客体的类型改变,改变成什么必须满足type_change语句的规定。type_transition语句作用于两种场景。第一个场景是进程创建新客体时,新客体的类型来自type_transition的规定。第二个场景是进程执行execve系统调用后,进程的新类型来自type_transition的定义。

(3) type_member

type_member的常用场景是在用户登录时,登录服务根据用户类型给予用户家目录(/home/user)不同的类型。

语法:

举例:

上述语句表示,类型为“sysadm_t”的进程的家目录的类型为“adm home dir t”。

3.多级安全

在叙述多级安全转换策略之前先要描述一下MLS的range定义。语法:

或者

range_transition策略的定义如下:

或者

这种命令主要被init进程或别的管理进程使用,以保证它繁衍的子进程工作的安全上下文中的MLS处在正确的范围内。举例:

上述语句表示,init进程生成audit服务进程时,audit进程的安全上下文中的多级安全级别处于系统最高级别。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈