开放式源代码包含较少的缺陷,但有一个问题

研究表明,使用开放源代码开发的软件比使用专有代码构建的软件包含更少的缺陷。另一方面,开放源代码很少能从专门负责查找bug的安全团队中获益。

肖像历史

开放源代码的质量比专有代码低。至少,现在有很多人是这么认为的。

到今年为止,你可以做一个有说服力的论点,即免费提供源代码的缺陷更容易被发现,比专有软件缺陷固定迅速。就在这时转到失败,心脏出血漏洞,弹震贵宾犬。尽管被免费提供给任何人来检查代码中未检测到开源软件这四个高调的错误和固定多年来,在某些情况下,。

这已经让很多人对开源软件的开发方式产生了疑问——以及依赖某人在某个地方分析代码并发现缺陷是否足够。存在这样一种风险,即每个人都假设其他人分析代码,而实际上,拥有必要技能的人都没有这样做。这就对在企业中采用开源软件是否明智产生了疑问。

【调查:安全,质量是顶级公司使用开源的原因]

但是专有软件常常包含缺陷,包括安全漏洞。有没有真正的证据表明开放源代码比封闭源代码更好或更差?

一年一度的Coverity的扫描报告提供约的代码缺陷在开源和专有软件的量目标信息的一个来源。该报告分析了在软件中发现的缺陷级别使用两种不同的模式,它的运行,虽然它的静态分析系统开发。

它记住,扫描报告只包括所提交的扫描软件来承担是很重要的;在某种意义上,这是一种自选择的样本。这就是说,事实证明,缺陷密度 - 每1000行代码中的bug数量 - 开源软件和专有软件的大体相似。

事实上,最近的报告(2013年)发现用C和c++编写的开源软件比专有代码的缺陷密度更低。所有大小项目的平均缺陷密度对于开放源码是0.59,对于专有软件是0.72。

用几行代码的应用程序有,一般比大的低缺陷密度,虽然超过1万行代码大型应用实际上有比一些中型的应用程序密度较低。

开放源代码可能是安全的,但是保护它的团队较少

就代码质量而言,这似乎是对开源软件的认可。Coverity的高级产品总监Zack Samocha说,当谈到安全漏洞时,许多开源项目没有采取足够的措施来防止它们。

“一个典型的私有软件公司将拥有一个安全团队,最佳做法正在开展,确保他们拥有雄厚的资金,以保持这些球队,”他说。“我没有看到这些实体...在开源社区。”

(特点:为什么开源软件,你认为是不是安全]

对于较小的项目来说可能是这样的,但是像Red Hat这样的商业开源公司,以及许多大型开源项目——尤其是那些为企业部署而设计的软件——几乎总是有协调一致的安全措施。

Samocha说,Linux社区正在采取措施,以提高安全性 - 虽然还需要做更多的需求,他认为 - 但补充说,所有的开源项目需要添加安全性到他们的日常思维。“在商业软件公司,开发人员和CIO们考虑安全性的所有的时间。在开源项目中,我不知道这种情况发生。”

Samocha还认为,开源项目可以更好地利用周围的安全生态系统,以及存在的商业工具。“大多数的工具都是为了安全团队而不是开发人员,”他说。“安全团队应该过滤缺陷,并给予相关的人到开发人员社区的修复。”

静态分析工具帮助,但只有一个点

当然,没有安全团队的项目不能以这种方式工作。运行分析工具的个体开发人员有被太多无关的错误或误报淹没的风险。这可能会导致他们完全忽略这些工具。

Coverity的高级技术经理Jon Jarboe说:“如果开发人员不得不浪费宝贵的周期来调查太多‘不在乎’的结果,或者如果他们花费太多时间等待分析完成,他们将不可避免地停止使用这些工具。”

安全团队也证明是有用的,因为当通过静态分析工具运行的代码可以发现许多代码缺陷,但肯定不能捕获所有缺陷。

Heartbleed bug就是一个很好的例子:在发现它之前,Coverity的静态分析不会检测到它。(该公司增加了一种新的分析启发式,现在确实可以探测到它,但这不是重点。)Shellshock缺陷是另一个:一些静态分析工具可以发现它,但是只有在大量错误的情况下才会发现它。

静态分析可以找到已知的漏洞。未知的漏洞怎么办?迈克Gualtieri,Forrester研究公司的首席分析师。“这就是威胁建模进来。这种技术可以让你找到你的应用程序的威胁,并确定每个这些威胁的缓解策略。”

如果有疑问,审核你的代码

这种整体性的安全方法可能难以与许多贡献者的项目,并没有安全团队来协调它来实现。那么,如何能够在开源软件的信任程度得到改善呢?

[相关阅读:获得开源软件支持的5种方法]

对于那些决定使用开源代码的企业来说,他们的项目可能没有足够的资源来致力于安全性,所以总是可以选择让有资格的人或团队来审计这些代码。

然而,这样的审计既昂贵又耗时,因此大公司甚至行业组织最终可能会为这些项目提供资金,以造福于更广泛的用户社区。或者,众筹资金审计TrueCrypt的审计已经得到资助了吗关掉在五月-可能变得越来越普遍。

当涉及到核心的开源项目,如OpenSSL的,这使得很多在其上运行的互联网软件基础架构,Linux基金会的最高核心基础设施倡议可能会有很大的不同。它由微软、IBM、谷歌和戴尔等公司资助,旨在提供资源帮助这些项目提高安全性,并支付外部代码审查费用。

信心开源软件无疑受到了冲击,在过去几个月的 - 但是,到了最后,这是值得记住的是,所有的软件可以被发现含有代码缺陷。更重要的是,肯定没有证据表明软件中使用开源开发模型更可能含有严重缺陷,任何其他类型的软件。

这个故事,“开放式源代码包含较少的缺陷,但有一个问题”最初发表CIO

加入对网络世界的社足球竞猜app软件区Facebook的LinkedIn对那些顶级心态的话题发表评论。

版权©2014足球竞彩网下载

IT薪资调查:结果在