我正在查看 AppArmor 和 SELinux 的几个不同比较,其中包括:
从这些文章中我得出结论,AppArmor 比基于 AppArmor 的 SELinux 更简单,学习曲线也更短。因此,大多数比较都支持 AppArmor,但我怎么能说 AppArmor 比 SELinux 更安全?
我正在查看 AppArmor 和 SELinux 的几个不同比较,其中包括:
从这些文章中我得出结论,AppArmor 比基于 AppArmor 的 SELinux 更简单,学习曲线也更短。因此,大多数比较都支持 AppArmor,但我怎么能说 AppArmor 比 SELinux 更安全?
这些安全系统提供了将应用程序相互隔离的工具……并在应用程序受到威胁时将攻击者与系统的其余部分隔离开来。
SELinux 规则集非常复杂,但由于这种复杂性,您可以更好地控制进程的隔离方式。可以自动生成这些策略。对这个安全系统的一个打击是它很难独立验证。
AppArmor(和 SMACK)非常简单。配置文件可以由人类手写,也可以使用aa-logprof
. AppArmor 使用基于路径的控制,使系统更加透明,因此可以独立验证。
insanitybit链接指向我的网站。我只是想证明我对这里的看法:)
如果你看一下 SELinux 和 Apparmor,它们的强项和弱项都是一样的。SELinux 更“强大”,因为它可以更精细地访问文件,但这对攻击者来说有什么好处而不是在 apparmor 配置文件中呢?您在 apparmor 配置文件中已经受到了很大的限制。那么,您真的通过 SELinux 获得了更多收益吗?
您使用 SELinux 获得的好处(尤其是在策略创建方面,比审计更重要——尽管允许审计也很痛苦)增加了复杂性。很多。
Linux 沙盒(例如 SELinux 或 Apparmor)中阻力最小的路径是内核。SELinux只做Apparmor来保护内核。
因此,如果攻击者想走在 Apparmor/SELinux 中解决设计问题的愚蠢路线,SELinux可能更安全——但前提是配置文件构建良好,而且由于 SELinux 如此复杂,我们实际上已经看到引入的漏洞用它。
如果攻击者很聪明,他们会选择内核,绕过两者。
所以他们在同样的方面都很弱,在每一个重要的方面都很强,其中一个更简单。
瞧。
黄油刀的比喻不起作用,这应该是显而易见的。
AppArmor 因其简单性而更加安全,这使得审查和验证策略变得更加容易。错误不太可能犯,更容易发现,后门尝试更难掩饰。
SELinux 无疑是一个比 AppArmor 更完整、更雄心勃勃的安全工具。SELinux 是一个广阔的宇宙,它渗透到一切事物中,它可能标记系统中的每个对象,并在概念上将系统提升为更复杂的安全基础设施,它允许您实现访问控制理论中的所有主要安全范例;甚至
军事和政府组织可以将其用于其严格的安全需求。使用 SELinux,可以实现 MAC(“强制访问控制”)、MLS(“多级安全”,带有 Bell-La Padula 和 Biba 模型)、MCS(“多类别安全”)、RBAC(“基于角色”访问控制”),TE(“类型强制”)。此外,SELinux 基于默认拒绝原则。
另一方面,AppArmor 仅允许您根据最小权限原则定义单个应用程序可以做什么和不能做什么,但无需实施完整的安全范例。