首页 理论教育 轮廓与PREFERENCE和CONFIG

轮廓与PREFERENCE和CONFIG

时间:2023-11-22 理论教育 版权反馈
【摘要】:表9-1 轮廓的PREFERENCE这两个选项都和内核分配给Tomoyo的内存相关3)CONFIG这部分包含三个子部分,见表9-2。表9-2 轮廓的CONFIG其中mode最重要,它的取值的含义是:●“disabled”表示Tomoyo不起作用。表9-3 轮廓CONFIG的细粒度举个例子:文件相关的操作处于学习模式,网络相关的操作处于强制模式还可以更细,对具体操作规定模式,举个例子:文件的getattr操作处于disabled模式,文件的其他操作处于强制模式综合起来看一个轮廓的例子:这个轮廓文件定义了两个记录。

轮廓与PREFERENCE和CONFIG

轮廓(profile)的作用是配置一些Tomoyo参数。先看一个例子:

978-7-111-54905-5-Part02-168.jpg

轮廓的伪文件接口是/sys/kernel/security/tomoyo/profile,其格式是:第1行是轮廓的版本号其后各行开始于一个代表轮廓记录号的数字,随后是一个“-”,之后是记录的子类型,最后是对应的值。上面文件中第2到第4行共同构成了一个记录号为0的轮廓记录。

下面先看一下轮廓记录子类型 [18]

(1)COMMENT

这部分就是一个描述性字符串,类似代码中的注释。比如

COMMENT=-----Learning Mode-----

上例表示这条轮廓记录让系统工作在Tomoyo学习模式中

(2)PREFERENCE

这部分包含两个子项,见表9-1。

9-1 轮廓的PREFERENCE

978-7-111-54905-5-Part02-169.jpg

这两个选项都和内核分配给Tomoyo的内存相关

3)CONFIG

这部分包含三个子部分,见表9-2。

9-2 轮廓的CONFIG

978-7-111-54905-5-Part02-170.jpg

其中mode最重要,它的取值的含义是:

●“disabled”表示Tomoyo不起作用。

●“learning”表示遇到不符合策略的访问请求时,Tomoyo不会拒绝访问,但会将访问请

求转换为策略加入内核的策略表中。

●“permissive”表示遇到不符合策略的访问请求时,Tomoyo不会拒绝,但是也不会将其

放入策略中。

●“enforcing”表示遇到不符合策略的访问请求时,Tomoyo会拒绝其访问。

“disabled”和“permissive”的区别在于,permissive会产生日志,disabled不会,也就是说在disabled模式下,grant_log和reject_log这两个参数没有作用。举个例子:(www.xing528.com)

978-7-111-54905-5-Part02-171.jpg

上述轮廓语句的意思是:这条轮廓记录让系统工作于学习模式,符合策略的访问不会产生日志记录,不符合策略的访问会产生日志记录。

神奇的是,“CONFIG”可以被用来实现细粒度控制,见表9-3。

9-3 轮廓CONFIG的细粒度

978-7-111-54905-5-Part02-172.jpg

举个例子:

978-7-111-54905-5-Part02-173.jpg

文件相关的操作处于学习模式,网络相关的操作处于强制模式

还可以更细,对具体操作规定模式,举个例子:

978-7-111-54905-5-Part02-174.jpg

文件的getattr操作处于disabled模式,文件的其他操作处于强制模式

综合起来看一个轮廓的例子:

978-7-111-54905-5-Part02-175.jpg

这个轮廓文件定义了两个记录。其中0号记录占了3行,1号记录占了6行。1号记录规定对文件的getattr操作,Tomoyo工作于disabled模式;对文件的其他操作,Tomoyo工作于learning模式;对network的所有操作,Tomoyo工作于enforcing模式;对其他操作,Tomoyo工作于permissive模式。

1.轮廓和策略

看一下前面举过的例子:

978-7-111-54905-5-Part02-176.jpg

策略文件定义了系统中所有域的策略。每个域的策略的格式是:第一行是域的标识,也就是进程的执行历史;第二行是域使用的轮廓记录,不同的域可以使用不同的轮廓。这种设计又从另一个角度增加了Tomoyo的灵活性。

2.轮廓和名字空间

结合名字空间,轮廓的定义可以有些变化,它的记录各部分的头部可以标记上名字空间若没有标记则认为属于“<kernel>”。下面举个例子:

978-7-111-54905-5-Part02-177.jpg

也就是说,轮廓记录号和名字空间有关。上例中有两个0号记录,一个属于“<kernel>”名字空间,另一个属于“</usr/sbin/httpd>”名字空间。下面看与之相关的domain_policy的内容:

978-7-111-54905-5-Part02-178.jpg

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

我要反馈