人脑之战

好意是评定行为价值的绝对标准——康德

导航

[转]BSD系统正在死亡?一些安全研究人员这样认为

摘要:在代码安全上被关注太少,漏洞没有被报告修补,FreeBSD、OpenBSD和NetBSD还能活下来吗?

在德国莱比齐的34c3网站上,IOActive的渗透测试主管Ilja von Sprundel说,UNIX的开源软件分发版(BSD)版本缺乏关注,这对他们的安全造成了伤害。

与Linux相比,被报告的BSD内核漏洞的数量很少,von Sprundel在去年夏天就开始在业余时间查看BSD源代码。“为什么每年仅有很少的BSD安全内核漏洞发布?”他想知道。是因为BSD更安全吗?还是因为没有人在看?

von Sprundel说,他很容易的就在三个BSD中找到了大约115个内核bug,其中包括FreeBSD的30个,OpenBSD的25个,NetBSD的60个。他称之为“低垂的果实”。他立即报告了所有的漏洞,但6个月后,在他再次提到,发现还有很多未被修复。

总的来说,Linux内核中的大多数安全漏洞的fix周期都很短。他们很快就被发现并修复了。在BSD方面,却不总是这样的。我发现了一堆已经存在了很长时间的bug。他们中的许多已经在代码中出现了十年或更长时间。

OpenBSD是安全的“明确赢家”

在过去的20年里,OpenBSD的重点是安全问题,von Sprundel说“到目前为止,在安全性方面,OpenBSD开发人员是最优秀。”

首先,OpenBSD有一个更小的代码库,大约有290万行代码,而FreeBSD的代码约为900万行,而NetBSD的代码为730万行。“当然,这也起到了一定的作用,” von Sprunde说。“没有代码总不会还能找到bug吧。”

他指出,这个较小的代码库部分是出于偶然,因为缺乏开发人员资源,使得OpenBSD无法实现他们想要的所有功能,但也更小了,这是为了减少攻击表面,包括移除对罕见的、不常见的、旧的设备和架构的支持。

在代码质量方面,von Sprundel还赞扬了OpenBSD代码,并且“OpenBSD中整体代码的质量就会协调很多”。

然而,他表示,OpenBSD相对缺乏人气损害了操作系统的安全性。“bug仍然很容易找到。”如果有更多的人关注OpenBSD,就会有更多的错误报告。

OpenBSD的创始人Theo De Raadt同意von Sprundel的观点,在OpenBSD上更多的关注会使操作系统更加安全。De Raadt通过电子邮件告诉CSO在线说到:“我记得读过他的第一张幻灯片,这些幻灯片主要是关于API误用的影响”。不幸的是,这是一个相对于人力而言的代码量问题。确保所有代码都是100%无bug的,并且处理所有异常情况是一个相当困难的问题。

von Sprundel还赞扬了OpenBSD对他的错误发现的回应,他说De Raadt在一周内做出了回应,并且OpenBSD在几天内修补了漏洞。

“我从一开始就与Ilja沟通,并让我们的团队致力于他的发现,”De Raadt写道。“我们在一周左右的时间内解决了这些问题,并为那些重要的项目提供了补丁。”在我的经验中,在一个志愿者驱动的软件项目中,保持积极和积极响应的唯一方法是决不推迟发布问题。必须尽快处理问题,以保持对住对它的兴趣。”

在代码质量方面,NetBSD是“明显的失败者”

NetBSD多年来一直致力于支持尽可能多的硬件。然而,有了这个目标,就需要包含大量的遗留和二进制兼容性(compat)代码的不同程度的质量,von Sprundel指出,因此“NetBSD的安全代码质量却一贯缺乏。”

NetBSD对von Sprundel的bug报告的响应既好又坏。一方面,他说,“他们几乎把所有提交的错误都解决了,几乎是一夜之间!”另一方面,这些补丁还没有在6个月后交付给用户。“除非从最近的检查代码中运行自己的构建,否则你的NetBSD机器仍然是脆弱的。”

NetBSD开发人员修正了von Sprundel的帐户,指出NetBSD 7.1.1在2017年12月22日发布,(在他的34c3演讲前一周)包含了他发现的安全问题的补丁。“他的很多发现都是在二进制兼容层中,而这些都不是导致远程漏洞的原因,”NetBSD基金会董事会成员Taylor R Campbell说。“无论如何,有人需要访问系统来运行该代码。”

von Sprundel在NetBSD中发现的大量的bug,以及该项目迟缓的响应,对NetBSD的未来提出了警告。“NetBSD实际上已经死了,”在Census从事安全工作的研究员patklos Argyroudis说,他的工作是在他的演讲中引用的。“过去有一些公司试图在商业上支持它,但我认为现在这些公司已经消失了。”

虽然NetBSD是一个志愿者驱动的开放源码项目,但是没有任何全职开发人员,但是NetBSD基金会的前成员Campbell和David Maxwell,都相信Agryroudis的悲观是没有根据的。“我们的主要目标是拥有一个拥有干净体系结构的核心系统,然后就很容易移植到新的平台上,”Maxwell说。“在历史上,我们可能会继续保持强势。”

“我们在市场营销方面也声名狼藉,”Campbell 补充道。

FreeBSD, BSD中的“技术最先进者”

长期以来,是三大BSD中最受欢迎的,并在Netflix和WhatsApp等网站上使用。“在perf测试中,FreeBSD与Linux不相上下,或者略微超过了它,”von Sprundel说。“任何可以部署Linux的地方,都可以放心地说,你可以部署FreeBSD。在很多地方他们都大量部署。

FreeBSD在大约一周的时间内对30个内核错误进行了响应,并在源代码库中修复了一些bug。然而,该软件项目只发布了少量的警告,并且“目前还不知道其他的状态”。

Argyroudis认为,开发人员的缺乏伤害了FreeBSD的安全性,不仅在于他们对bug报告的响应能力,还包括实现新的、行业标准的安全特性。“最流行的BSD,技术上最先进的,是FreeBSD,但是他们没有像Linux那样的开发者,这基本上意味着他们在安全特性方面有点落后。”

Argyroudis说,直到最近,FreeBSD才对ASLR进行了初步的支持,而且还不支持KASLR。他还质疑FreeBSD的网络堆栈是否仍然是一个杀手级功能。

“也许10年前,有这样一种观点,即FreeBSD的性能更好,它的网络栈更好,还有其他类似的东西,”Argyroudis说。我不太确定这是不是真的。我肯定对此持怀疑态度。

Maste不同意。他说:“与Linux相比,我们能够在更小的开发人员基础上做大量的工作,无论是在数量还是质量方面都是显著的。”“我们的未来会因为缺少开发者而受到阻碍,这是绝对不正确的。”

FreeBSD内核漏洞会影响OS X吗?

在Mac OS X中有很多FreeBSD代码,并且FreeBSD安全团队与苹果协调信息公开,von Sprundel说。然而,目前还不清楚这些报告的漏洞对苹果笔记本电脑的影响有多大。OS X的内核与15年前的FreeBSD有很大的不同,OS X多年来受到了安全研究人员的更多关注。

“当我向FreeBSD的用户提交这些错误时,他们问‘如果我们把这个发给苹果公司的人,你介意吗?’”。因此,苹果公司的安全团队就有这样的漏洞。我不知道其中有多少是适用于他们的。这里可能有一些错误。

苹果没有回应我们的评论请求,而Maste拒绝进行猜测,指出只有苹果公司才知道这个问题的答案。NetBSD的Maxwell很快指出,OS X包含的代码不仅来自FreeBSD,还包括NetBSD和OpenBSD。

BSD正在死亡吗?

事实证明,受欢迎程度会影响安全。更多的关注意味着bug周期的更短,更多的开发人员意味着新的安全特性会更快地带给用户。BSD已经输给了Linux。

Argyroudis认为,尽管OpenBSD在当时的流行程度远低于FreeBSD,但它可能是最有可能存活的。“我认为OpenBSD有更大的机会生存,因为它有一个更集中的用例。FreeBSD,我认为它比OpenBSD更难生存。

不过,Maste认为,衡量BSD的普及程度是很困难的。

宽松的BSD许可使得 量化BSDs的流行度 更加困难。“对于终端用户来说,诸如代码许可之类的事情可能并不重要,”NetBSD的Maxwell说,“但是对于构建嵌入式系统的人来说,对于那些正在构建产品的人来说,代码的许可是非常重要的。”

Argyroudis对BSD的未来仍持悲观态度。“我喜欢BSD代码库,”他说,“我希望能够告诉你不同的东西,比如更受欢迎的FreeBSD,以及在Linux下生存是多么容易。”但不幸的是,我认为事实并非如此。

“我认为这归结于开发商的缺乏。”


本文源自CSOonline\(^{[1]}\)\(^{[2]}\)
\(水平有限,欢迎园友留言交流\)

posted on 2018-09-16 16:37  人脑之战  阅读(1201)  评论(0编辑  收藏  举报