首页 理论教育 Linux内核安全模块剖析与策略相关文件

Linux内核安全模块剖析与策略相关文件

时间:2023-11-22 理论教育 版权反馈
【摘要】:loadSMACK访问控制的核心是策略。表8-1 SMACK系统标签SMACK预先定义了以下7条策略:1)标签为“*”的主体(进程)不能对任何客体进行任何操作。代码实现是:变量log_policy的比特位0对应是否记录失败事件,比特位1对应是否记录成功事件4)access这个伪文件接口用于检查规则的合法性。若smack_onlycap为空,进程只要拥有CAP_MAC_ADMIN就可以进行SMACK策略管理工作,只要拥有CAP_MAC_OVERRIDE就可以不受SMACK限制。syslogsyslog文件用来修改和查看变量smack_syslog_label。

Linux内核安全模块剖析与策略相关文件

(1)load

SMACK访问控制的核心是策略。策略有两部分,一部分是所谓的系统策略,是不可更改的;另一部分是用户可配置的策略。下面首先简单介绍一下系统策略。

SMACK预先定义了5个标签:?、^、*、_和@,见表8-1。

8-1 SMACK系统标签

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

SMACK预先定义了以下7条策略:

1)标签为“*”的主体(进程)不能对任何客体进行任何操作。

2)标签为“^”的主体(进程)可以对任何客体进行读(r)或执行(x)操作。

3)任何主体(进程)可以对标签为“_”的客体进行读(r)或执行(x)操作。

4)任何主体(进程)可以对标签为“*”的客体进行任何操作。

5)任何主体(进程)可以对标签相同的客体进行任何操作。

6)用户定义的策略所允许的操作都被允许。

7)其他操作都不被允许。

文件load是用来存取用户定义的策略的接口。对此文件的写操作的要求是,一次写入一行每行的格式是:

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

第一个字符串表示主体安全标签,第二个字符串表示客体安全标签,第三个字符串是操作方式,全部操作方式是“rwxatl”,表示读、写、执行、添加、变形、锁。如果相应的操作不被允许,就在相应的位置上填“-”。

(2)load-self

这个文件提供了一个接口,用来为进程提供额外的访问控制策略。与很多安全机制一样,通过这个接口只能减少允许的操作。

(3)logging

这个文件接口用于控制SMACK的日志策略:记录失败、记录成功、都记录、都不记录。这个文件的内容是一个整数。代码实现是:

978-7-111-54905-5-Part02-134.jpg(www.xing528.com)

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

变量log_policy的比特位0对应是否记录失败事件,比特位1对应是否记录成功事件

4)access

这个伪文件接口用于检查规则的合法性。向这个文件写入一条规则,比如:

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

然后再读取文件内容,如果内容是ascii字符‘1’,则前面写入的规则被内核允许,如果是ascii字符‘0’,则前面写入的规则不被内核允许。

(5)onlycap

简单是有代价的,SMACK策略中的存取方式没有覆盖的东西太多了,比如什么情况下可以修改安全策略。SMACK策略中客体也有缺失,比如:安全策略本身是不是客体,它的标签又是什么?为了解决这些问题,SMACK的方式是引入超级标签,拥有超级标签的主体可以做诸如修改策略这样的特殊工作。

在Linux能力机制中有两个能力CAP_MAC_ADMIN和CAP_MAC_OVERRIDE。CAP_MAC_ADMIN的语义是:拥有它可以对强制访问控制(MAC)进行管理,CAP_MAC_OVERRIDE的语义是:拥有它可以不受强制访问控制机制的限制。这两个能力的引入有些不合逻辑,能力机制本质上属于自主访问控制(DAC),DAC不应该超越MAC。

SMACK的问题是机制过于简单,它需要引入一个类似于超级用户的角色来弥补机制的不足。SMACK引入了一个特殊的标签smack_onlycap。让这个标签和前述两个能力配合起来工作具备smack_onlycap标签的进程,如果拥有了CAP_MAC_ADMIN能力,它就可以进行SMACK策略管理工作。具备smack_onlycap标签的进程,如果拥有了CAP_MAC_OVERRIDE能力,就不受SMACK限制。

onlycap文件提供对smack_onlycap标签进行管理的接口,写标签字符串可以修改smack_onlycap值,写入“-”清空smack_onlycap。若smack_onlycap为空,进程只要拥有CAP_MAC_ADMIN就可以进行SMACK策略管理工作,只要拥有CAP_MAC_OVERRIDE就可以不受SMACK限制。

(6)revoke-subject

通过这个文件接口写入一个标签,系统中具备这个标签的进程对所有客体都无法进行任何存取操作。

(7)change-rule

通过这个文件接口对系统现存策略进行修改。格式为:

%s%s%s%s

前两个字符串分别是主体标签和客体标签,第三个字符串是允许的操作,第四个字符串是不允许的操作。如果要修改的策略不存在,就创建新的策略。

(8)syslog

syslog文件用来修改和查看变量smack_syslog_label。这个变量标示一个特殊的标签,拥有

这个标签可以进行syslog相关的操作

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

我要反馈