首页 理论教育 Linux内核安全模块:类型增强和域转换

Linux内核安全模块:类型增强和域转换

时间:2023-11-22 理论教育 版权反馈
【摘要】:Tomoyo的强制访问控制的理论基础是类型增强。“增强”指的是9.2.1节提到的操作许可通过这些操作许可规范进程行为,规定进程在当前的域中可以做什么。类型增强的一条典型的策略控制语句是:类型A的主体(进程)可以对类型x的客体进行m操作,文件f的类型为x。Tomoyo域转换工作主要是在内核的execve系统调用实现中进行的,缺省操作就是将被执行文件的全路径名附加在当前域的最后。有效是指Tomoyo的域不是由进程当前所执行的文件唯一决定的。

Linux内核安全模块:类型增强和域转换

Tomoyo的强制访问控制的理论基础是类型增强。“增强”指的是9.2.1节提到的操作许可通过这些操作许可规范进程行为,规定进程在当前的域中可以做什么。理论上,主体和客体都应该有类型。但是Tomoyo对类型进行了简化,只有主体,即进程有类型。类型增强的一条典型的策略控制语句是:类型A的主体(进程)可以对类型x的客体进行m操作,文件f的类型为x。在Tomoyo中这条语句就变为:域A的进程可以对f文件进行m操作。

那么Tomoyo的域又是什么呢?Tomoyo的域就是进程的执行历史。比如,某人在登录系统(通过字符终端登录)后运行“ls”命令,这个运行“ls”命令的进程的域就是:

<kernel>/sbin/getty/bin/login/bin/bash/bin/ls

从这里我们可以看到kernel启动之后运行/sbin/getty [17] ,然后运行了/bin/login,当某人输入了正确的用户名和口令之后,/bin/login运行/bin/bash,最后在这个shell中运行了某人输入的命令“ls”。 (www.xing528.com)

Tomoyo域转换工作主要是在内核的execve系统调用实现中进行的,缺省操作就是将被执行文件的全路径名附加在当前域的最后。所以,Tomoyo的域是由全部执行历史决定的。比如某人运行“sudo ls”产生的进程的域就是:

<kernel>/sbin/getty/bin/login/bin/bash/usr/sbin/sudo/bin/ls

Tomoyo的这种设计是简单而有效的。简单是指系统管理员不必为域的定义费心。对比一下SELinux,SELinux的域是由策略定义的,策略的制定者要通过策略语句来分出不同的域。有效是指Tomoyo的域不是由进程当前所执行的文件唯一决定的。在本地终端登录的shell和远程登录的shell处于不同的域,管理员可以配置策略,让这两个shell的行为有所区别。

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

我要反馈