SELinux 与 AppArmor 适用性

pka*_*mol 1 security selinux apparmor lsm

我正在阅读一些关于 LSM 实现的入门,所以最终我会深入研究AppArmorSELinux.

我知道这个讨论,但这并没有说明我对这两个 LSM 实现的一个问题:

事实是否如此:

  • SELinux 必须在系统范围内应用(因此auto-relabeling首次启动的过程与文件系统扫描所需的时间一样长)
  • AppArmor 提供了灵活性,可以仅在您喜欢的那些进程/脚本上定义策略?- 通过交互式审计过程)

(?)

seb*_*sth 6

正如我在另一个问题中回答的那样,AppArmor 和 SELinux 之间的主要区别在于标签。AppArmor 是基于路径的,而 SELinux 为每个对象添加了额外的标签。这就是为什么在第一次启动时自动重新标记以应用默认文件标签的原因。否则就不可能为文件访问编写有意义的策略,因为每个文件都将被认为是相同的(由于具有相同的标签)。

AppArmor 和 SELinux 都有不受限制的域,不限制进程。这两个系统也有抱怨模式(在 SELinux 中称为许可域),它只记录策略违规而不执行策略。AppArmor 和 SELinux 都在系统范围内启用,并且可以在两个系统中运行不受安全模块限制的进程。

在自动策略生成方面,两个系统都有相似的工具和机制。

AppArmor 配置文件可以使用aa-genprof和生成aa-logprofaa-genprof创建一个基本配置文件并将其设置为投诉模式。运行程序后,可以从日志文件中生成规则。

SELinux 工具是policygentoolaudit2allow. 主要区别还是文件标签,但policygentool可以自动为程序数据 (var)、配置文件和日志文件创建文件类型。然后可以在许可模式下加载策略,然后可以使用audit2allow.