SELinux真的那么复杂吗?
今天让我感到惊讶的是一篇旧文 “SELinux是如此的难以运用以致于大部分IT经理都关闭了它” 又在Kerneltrap.org上冒了出来。
【IT专家网独家】今天下午我阅读到的一篇文章让我有点惊讶,由于我长期在互联网上工作并且见过太多的人和事,所以要让我惊讶很难。 相信我,只有那么一点点讶异而已。
今天让我感到惊讶的是一篇旧文 “SELinux是如此的难以运用以致于大部分IT经理都关闭了它” 又在Kerneltrap.org上冒了出来。
Kerneltrap上的这篇文章实际上是OpenBSD电子论坛里一篇大型演说中的一个片段,它比较了OpenBSD和SELinux的安全性。
在OpenBSD-misc电子论坛中有条理的比较了使用2.6 Linux内核的SELinux和OpenBSD中相应部分的安全性。 该文的总观点是SELinux及其策略语言实在是太复杂了,用Damien Miller的话说就是“所有我知道的大中型Linux的展开都关闭了SELinux。 一旦系统分销商发货时的默认设置被改动过,那么默认策略将不再工作,事情就开始变糟。” Ted Unangst总结道,“它的策略安全问题就是策略始终是错误的。”
我在过去的几年中写过一些关于SELinux的文章,其中有一半是因为这个原因: 复杂性。 我当然不是这个课题的专家,但是我在06与07年的各种Linux大会和采访中听人谈起过由于SELinux的其它安全性的问题使其成为了一款伟大的软件-或许是“太伟大”了。 就像在OpenBSD论坛中所争论的那样,人们放弃它的原因是因为它那一身NSA的肌肉破坏了他们的系统。 当发生这种情况时,你会发现10次中有9次系统管理员都会关闭这个系统然后去寻找其它的选择,而不是在其身上投入更多的时间和金钱,不管它的功能是否还能满足他/她的需要。 因此我开始追问,“你们做了些什么? 哪些人做了哪些事?”以及其它之类的问题。
显而易见的,Red Hat里的人是对我最有帮助的(SELinux被整合到了Red Hat企业版Linux中),但是我也采访了一些SELinux的专家,包括Karl MacMillan和Frank Mayer, 他是SELinux By Example一书的合著者之一。 Mayer甚至为我们写了一篇关于SELinux的精彩文章,名为SELinux能让你惊喜的五种方法,该文如今依然在SearchEnterpriseLinux.com上被广泛的浏览。 我同时也采访了那些决定关闭它再做打算的人。
我发现目前SELinux的问题中有一部分比较易于解决,因为它们和技术无关,而和公众理解有关。 位于加利福尼亚的Saugus联合校区的信息服务和技术总监Jim Klein对其做了更好的描述: “SELinux最大的问题是交换思维,”Klein告诉我。“它在早期所得的褒贬是因为缺乏设置和解决问题的工具,这导致了人们将它一关了事。” 目前,Klein也是“关闭”SELinux的众多IT人员中的一个。
但是Red Hat已经为此做好了准备,或看上去是如此。 在五月份的Red Hat Summit大会上,他们的SELinux掌门人Dan Walsh亮出了他的疑难解答工具来证明他的开发员们倾听了用户的意见并且SELinux正在向简单化迈进。 SELinux的疑难解答工具是用来监控访问矢量缓存(access vector cache)信息的审计日志文件并且在运行正确、错误或其它情况下向IT经理发送报告。 同时有一套可设置的布林函数(如果,那么语句)来帮助IT经理修改网络端口、文件标签和事件用户定位。 这个专题会议是我那一周在圣地亚哥参加的会议中包装的最好的之一。 那是不是意味着他详尽地说明了任何问题? 并不全是,因为安全性一直是一个广受关注的话题,如今对其的争论也依然十分有趣。
由于Red Hat谈到了GUI、工具和疑难解答,那些精明的OpenBSD家伙也准备好了一套精彩的驳词(或是一个圈套?):
如果策略语言已是半健全的话那么结果将不会那么坏-一个技术熟练的管理员可以调整该策略。 不幸的是:
1) 很难找到技术熟练的管理员,并且他们的时间通常都被更多的花在“不”那么难解决的委托访问控制策略上。
2) SELinux策略语言离健全还有一段距离。
OpenBSD的systrace受到了#1的影响-这类访问控制机制的问题是很普遍的,而它从来不被默认打开的原因只有一个。 它的脆弱性是一个实实在在的问题-我使用systrace来处理一些事情,却因为软件升级或libc更换的原因需要经常的更新我的策略。 对了,“技术熟练的管理员”还意味着此人必须高度熟悉Unix系统界面-而不只是一个毫无实践经验的专业或认证课程的毕业生。
对于#2的Linux解决方案,看上去是在管理员和策略之间添加了各种对话框和其它摘要,而不是用更易于理解的东西来替代原来那些混乱的、难于理解的东西。
所有这些对我来说都意味着如果我能够找到一些可以对外分享的关于OpenBSD电子论坛的类似想法(Linux或 SELinux肯定没有过去的主场优势了,比如Linus Torvalds的后台),我们或许可以接着去做一些事情。 而现在能做的就是无限期的关闭SELinux,直到它的复杂性问题被解决。
到那时,不管怎样,我觉得我们或许应该看一下我在Kerneltrap评论区上所找到的一些建议:如果我想要在OpenBSD和SELinux间作出一个公正的比较,openbsd-misc电子论坛应该是我最后提出询问的地方。
这是一个不错的建议。(左丘编译)
此文章中文版权归TechTarget和天极公司所共有,任何第三方不得转载。
- 本文关键词:

