我正在审查AppArmor和SELinux的几种不同比较,包括:


为什么我比SELinux更喜欢AppArmor
SELinux和AppArmor:介绍性比较


评论

相关:unix.stackexchange.com/questions/411853/…

#1 楼

这些安全系统提供了将应用程序彼此隔离的工具...,当应用程序受到威胁时,反过来又将攻击者与系统的其余部分隔离。

SELinux规则集异常复杂,但具有这种复杂性您可以更好地控制流程的隔离方式。可以自动生成这些策略。对该安全系统的打击是很难对其进行独立验证。

AppArmor(和SMACK)非常简单。这些配置文件可以由人类手写,也可以使用aa-logprof生成。 AppArmor使用基于路径的控制,使系统更加透明,因此可以独立进行验证。

评论


对我来说,“非常困难”和“非常容易”听起来很主观。此外,我认为愿意在AA和SELinux之间进行选择的任何人都应该问自己,他们所需的工具是否在其中任何一个中都有编写策略作为开始。这两个支持名称空间的哪个是cgroups,Docker容器?

– Steve Dodier-Lazaro
2014年7月6日在17:49

@Steve DL SE Linux非常复杂,即使开发人员也无法验证*

–rook
2014年7月30日14:48



我非常了解SELinux的复杂性,并基于它研究了MAC工具。关于AA和SELinux的唯一比较可用性研究是researchrepository.murdoch.edu.au/6177/1/…,它也不是没有缺点(不是sysadms或CISO的总体代表,并且将MAC应用于从未计划的程序) 。对于正在研究的上下文,AA和SELinux都不足够,这不足为奇。您的答案不能回答问题,并且没有足够的基于事实的证据来正确回答问题。

– Steve Dodier-Lazaro
2014年7月30日15:09

使用SELinux自动进行配置不是一个好主意。 symcbean.blogspot.co.uk/2016/11/selinux-sucks.html

–symcbean
16 Dec 8'在17:33

如果您至少解释了路径和inode标记之间的基础知识,那将非常好,因为这很重要,因为AppArmor是前者,而SELinux是后者。

–森林
18年2月20日在3:15

#2 楼

insanitybit链接是我的网站。我只想在这里证明我的观点:)

如果您查看SELinux和Apparmor,它们在相同方面都是强者和弱者。 SELinux是“更强大的”,因为它可以更精细地访问文件,但是,通过使用apparmor配置文件,攻击者可以获得什么呢?您在Apparmor个人资料中已经受到很大限制。那么,您真的可以从SELinux获得更多收益吗?

SELinux带来的好处(特别是在创建策略方面,比审计要多得多-尽管允许审计也很痛苦)增加了复杂性。很多。

内核是Linux沙箱(例如SELinux或Apparmor)中阻力最小的路径。 SELinux只不过是Apparmor来保护内核而已。的构建良好,并且,由于SELinux是如此复杂,我们实际上已经看到了其中引入的漏洞。
所以它们都以相同的方式变弱,在重要的各个方面都变强,其中之一更简单。

Voila。隐喻不起作用,这很明显。

评论


由于您将内核称为“弱点”,因此值得一提的是GrSecurity。

– Xaqq
2014年4月1日在17:44

是的,我在我的网站上写了很多有关Grsecurity的文章。没有安全性的Linux系统是不完整的,在没有首先解决内核弱点的情况下,任何人都不应依赖MAC。

– IBit
2014年4月3日5:08



#3 楼

AppArmor的简单性使它更安全,从而更易于查看和验证策略。错误的可能性较小,更容易发现,而后门尝试则难以掩盖。

#4 楼

SELinux肯定是比AppArmor更完整,更雄心勃勃的安全工具。 SELinux是一个广阔的世界,它渗透所有事物,它可能标记系统中的每个对象,并在概念上将系统提升为更复杂的安全性基础结构,它使您可以实现访问控制理论中的所有主要安全性范式。甚至

军事和政府组织也可以将其用于严格的安全需求。
借助SELinux,可以实现MAC(“强制访问控制”),MLS(“多级安全”) ,使用Bell-La Padula和Biba模型),MCS(“多类别安全性”),RBAC(“基于角色的访问控制”),TE(“类型强制”)。此外,SELinux基于默认的deny
原则。另一方面,

AppArmor仅允许您根据最小特权原则定义单个应用程序可以做什么和不能做什么,而无需执行完整的安全性范式。

#5 楼

通常,您不能说appArmor比SELinux更好。这是因为很大程度上取决于您要保护的内容以及要保护的内容以及负责维护系统的人员的个人技能和偏好。

SELinux具有更细的层次控制。在某些情况下,这将使其比AppArmor更合适。另一方面,对于大多数Linux用户来说,AppArmor可能足够强大。此外,许多人报告它更容易理解和使用,这意味着配置错误不太可能导致难以发现的危险孔。另一方面,让熟悉SELinux的人使用AppArmor可能很容易导致配置错误,这仅仅是因为这不是他们所知道的系统。

重点是,您需要根据具体情况和相关人员的技能/偏好进行评估。两者都是好的系统-它正在针对重要的情况选择正确的工具,但没有哪个比另一个更好。

#6 楼

根据我使用SElinux的个人经验,我会说它并没有给GNU + Linux增加任何复杂性,唯一做到的是,我认为这样做的好处是为我们带来了操作系统已经固有的复杂性,它使我们许多人感到困惑与它的设计范式或实现无关。与AppArmor(AA)相比,SElinux在安全系统应该是哪种安全系统方面具有更为全面和抽象的观点,在这种情况下,AA具有容器思想,可以在AA配置文件中指定允许资源的路径这不是很抽象。是的,为每个应用程序编写配置文件可能会更简单,但是您会松开系统的整体视图。现在,SElinux实际上已经与Fedora和RHEL一起使用,因为它已经预先发货,而AA在Ubuntu和SUSE上运行得更好,这意味着在前发行版上学习如何使用SElinux胜过让AA在它们上工作的麻烦,反之则更好。反之亦然。

#7 楼

强制访问控制的全部要点是允许进行细粒度的配置。除非两者在所有其他方面均相等,否则简单性完全无关紧要。有时候,完成工作需要复杂性。您的结论更像是流行文化,而不是真实的评估。

评论


黄油刀比电锯好……直到您必须砍掉一棵树!

–迈克尔·汉普顿
13-10-18在0:50

我强烈不同意SELinux设计更好的说法。与AppArmor相比,打破它可能更困难,但是与其他解决问题的方法相比,实施和维护有效的策略需要成倍的努力。它可怕的复杂性使得大多数组织在服务器和工作站上用作安全控制是不切实际的(甚至是危险的)(我满意的地方是在受支持的设备(例如Android)上,当然,从来没有Android上的恶意软件?)。

–symcbean
16-10-25在16:08

#8 楼

我大胆地断言,在使用NFS的任何环境中,AppArmor都优于SELinux,因为SELinux无法保护它。 AppArmor也更易于使用,但这是它们之间明显的客观区别。

#9 楼

如果您不能使SELinux对像AppArmor这样的典型用户有用,那么将SELinux与AppArmor进行比较是没有意义的。
使安全性容易/轻松很重要。在电话上查看您典型的社交媒体应用。它要求一连串的许可,否则它将无法为您做任何事情。大多数用户做什么?他们只是向应用程序授予它所要求的权限,而没有真正考虑应用程序将使用这些权限的原因,只是因为他们不想因无法使用该应用程序而感到不便。用户直到很晚才知道他们所做的安全决策的含义,而这通常是因为很难概念化威胁/风险。用户不使用安全性机制的优越性并不重要。
用户一直是链中最薄弱的环节。 NSA是否喜欢SELinux并不重要,因为他们编写了它。他们总是会使用它。想要向政府出售Linux的供应商总是会使用更复杂的工具。其余的计算机用户只有在大约五分钟(而不是五分钟)内能找到解决办法的情况下,才会使用工具来增加安全性。那就是几乎所有用户都非常关心安全性的原因,这就是为什么在数十年的证据表明病毒扫描程序不起作用之后,它仍然是一个价值数十亿美元的行业。这就是为什么除非强制输入复杂的密码并使用2FA,否则用户将其密码设置为“ password1”。

评论


直到我到达最后一行之前,尚不清楚如何回答这个问题。为了清楚起见,我将其移至顶部。

– schroeder♦
20年7月7日在14:46

但是,我不确定您已经回答的问题超出了问题的陈述范围。

– schroeder♦
20年7月7日在14:47