![Unix DAC 有一个标准](https://linux22.com/image/215606/Unix%20DAC%20%E6%9C%89%E4%B8%80%E4%B8%AA%E6%A0%87%E5%87%86.png)
是不是一种更简单、更优雅、直观的方式,只需再扩展4组DAC就可以实现与SELinux基本相同的多维访问功能,只是美观、易于配置和维护?
答案1
我认为您指的是自主访问控制(https://en.wikipedia.org/wiki/Discretionary_access_control)并且您想知道为什么大多数 Linux 发行版都没有默认 SELinux 的安全优势。
有几个原因。
- DAC 有一个标准,但 SELinux 不在其中。
- 苹果与橙子。 SELinux 是一种强制访问控制 (MAC)。将其与 DAC 混为一谈是一个类别错误。
- SELinux 只是 MAC 的一个示例,它不是标准。
- 应进行威胁建模以确保复杂性与安全性之间的正确权衡。
Unix DAC 有一个标准
查看之前相关问题的答案https://unix.stackexchange.com/a/731556/305714
简介: POSIX 概述了类 Unix 操作系统中 DAC 的期望。虽然很少有部署严格遵守 POSIX,但它仍然是一种有影响力的通用语言。
由于 POSIX 不强制要求任何类似 SELinux 的东西,所以类似 SELinux 的东西也没有得到广泛应用。
苹果与橙子。 DAC!= MAC。
有一个可能的访问控制的完整生态系统。维基百科上早期链接的 DAC 页面中的“另请参阅”部分显示了许多示例。
SELinux 是强制访问控制的实现。问为什么 DAC 不使用 SELinux 就是犯了类别错误。这就像问为什么 RBAC 不使用深度数据包检查,或者为什么自行车不使用混凝土系泊装置。
相互竞争的 MAC 实现
在 MAC 领域,SELinux 只是一个例子。它很出名,但是有很多实现,并且对于什么应该成为标准还没有达成共识。即使人们同意 MAC 应该更广泛,关于它是否应该是 SELinux、AppArmor、TOMOYO 还是其他东西也会存在分歧。
复杂性与安全性的权衡
不存在安全计算这样的东西。您可以使安全性变得任意复杂。如果您希望家里的游戏机“安全”,您应该将其关闭,将其熔化在一桶酸中,然后将一桶酸扔进火山。
人们为什么不这样做呢?因为在评估哪些安全措施合理时,它们需要与风险成比例。妥协率以及每次妥协的成本。
这是通过威胁建模来完成的。您可以分析系统的攻击面、威胁参与者可能的资源和意图,以及系统上的数据或计算能力等资源的价值。
如果维护复杂系统的成本大于妥协的成本,并且复杂性是由于实施针对威胁的安全性而造成的,而这些威胁不太可能成为部署的真正问题,那么稍微放松安全性不仅是合理的回归更简单的管理,但事实上,采取其他任何措施在经济上都是不合理的。
这些权衡对每个人来说都是不同的,并且在您是与其他民族国家级别的威胁进行网络战的民族国家行为体的情况下,您可能会认为妥协的风险和成本太大,您需要使用SELinux之类的东西来维护国家安全等等。
但对于只想玩 Elden Ring 和浏览 reddit 的 Mom & Pop Linux 用户来说,没有必要让 MAC 的复杂性给他们带来负担,他们只需强化 IPTables 配置并避免运行curl http://some.cool.scripts | sudo bash
.