摘要:在代码安全上被关注太少,漏洞没有被报告修补,FreeBSD、OpenBSD和NetBSD能够生存吗?
在德国莱比齐的34c3网站上,iactive的***测试主管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内核中的大多数安全缺陷都没有很长的生命周期。他们很快就被发现并修复了。在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上更多的关注会使操作系统更加安全。“我记得读过他的第一张幻灯片,这些幻灯片主要是关于API误用的影响,”De Raadt通过电子邮件告诉CSO在线。不幸的是,这是一个相对于人力而言的代码量问题。确保所有代码都是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日发布,(在他的34 c3演讲前一周)包含了他发现的安全问题的补丁。“他的很多发现都是在二进制兼容层中,而这些都不是导致远程漏洞的原因,”NetBSD基金会董事会成员Taylor R Campbell说。“无论如何,有人需要访问系统来运行该代码。”
在NetBSD中发现的大量的bug von Sprundel,以及该项目迟缓的响应,对NetBSD的未来提出了警告。“NetBSD实际上已经死了,”人口普查IT安全工作的安全研究员帕特洛克洛斯·阿吉罗迪斯(patklos Argyroudis)说,他的工作是在他的演讲中引用的。“过去有一些公司试图在商业上支持它,但我认为它们现在已经消失了。”
虽然NetBSD是一个志愿者驱动的开放源码项目,但是没有任何全职开发人员,但是Campbell和David Maxwell,一个NetBSD基金会的前成员,都相信Agryroudis的悲观是没有根据的。“我们的主要目标是拥有一个拥有干净体系结构的核心系统,然后就很容易移植到新的平台上,”Maxwell说。“在历史上,我们可能会继续保持强势。”
“我们在市场营销方面也声名狼藉,”坎贝尔补充道。
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下生存是多么容易。”但不幸的是,我认为事实并非如此。
“我认为这归结于开发商的缺乏。”
参考链接:
https://www.csoonline.com/article/3250653/open-source-tools/is-the-bsd-os-dying-some-security-researchers-think-so.html