Gartner公司分析师Mark Driver说:“开源的优势在于没有单一实体拥有对一个项目的权威控制。开源中不存在单一阻塞点。”他说,一种理论认为,由于它是开源的,软件安全性问题会被迅速发现。他补充说:“但一种论点认为开源不太安全,人们可以在它里面塞进恶意的东西。”
不管存在什么怀疑,开源运动(目前,自愿软件开发员“社区”数以几万计)共同编写程序,贡献操作系统和应用。开源不仅将存在下去,而且将改变传统的商业软件实践。
开源软件组件正在通过像Eclipse和NetBeans这样的工具进入商用软件。不仅Linux操作系统成为企业的宠儿(这在今天的金融公司中显而易见),而且像Geronimo、JBoss、MySQL 和Hibernate等中间件应用也在企业中变得很平常。
Gartner估计,到2013年,生产应用中的80%以上的商用软件将具有开源元素。
今天的趋势是,对于企业和政府中试用和评估开源软件项目的IT经理来说,严格审查每个社区通过添加扩展或修补漏洞来维护其代码基础的成熟度。如果IBM、Red Hat和HP等老牌厂商参与支持某个软件,这通常被视为加分因素。Driver说,最雄心勃勃的业务应用开源采用者仍通常是“技术上激进的”,因为他们拥有可以提供支持的内部研发团队,或者他们雇用来自厂商的支持。
那么,更紧迫的安全和知识产权问题是什么?
一个主要问题是安全漏洞如何被发现和修补。在开源社区,常常采用不同与闭源、专有软件厂商采用的方法。
Microsoft――过去在接受来自任何外部人士有关在其产品中发现的安全漏洞的建议上持固步自封、怀疑和固执的态度――在这几年里逐步开放,来建立与安全专家分享他们发现的安全漏洞的关键信息的通畅的联系。
上个月公布的、Microsoft在这一领域的最新举措吸引安全厂商进一步拉近他们与这家公司的距离。Microsoft承诺挑选出的安全厂商可以在Microsoft每月发布安全报告之前使用安全漏洞数据,以使他们的软件修补产品可以在Microsoft向公众发布通告时准备就绪。Microsoft说,它这样做是为了阻止黑客利用安全漏洞信息设计零天攻击。
相比之下,开源社区常常没有与可能是安全专家(开源社区常常不相信他们)的外部人员建立通畅的交流渠道。不管怎样,对于许多人来说,保密与开源精神相悖。
为许多厂商(包括Novell和Red Hat)发行的Linux开发开源桌面应用的GNOME Foundation的执行主管Stormy Peters说:“开源软件开发模型非常不同。期望有安全服务或某一项目的联系人在开源领域是不可能发生的,但通常有邮件列表。”
正如所有漏洞跟踪系统一样,这个邮件列表通常是开放的。Peters在谈到GNOME时说:“一旦问题被解决,我们就发布补丁。”他说,这个责任一般落在具有查检改变的代码的“commit access”权的人肩上。
Peters说,开源社区是一个“精英联盟”,并且尽管一个社区对以自己的方式行事感到最舒服,但“肯定存在外部人员与这个组织互动的途径,只要你看起来值得信任。”
Peters还在咨询公司OpenLogic任职。该公司除了在技术上审查400多种开源应用外,还发挥公司与开源社区之间调解者的角色。他敦促希望与开源社区联系的安全专家设法找到“与之交流的合适人员”来共同解决有关可能的安全漏洞的问题。
内部使用开源软件的企业有时提供补丁,虽然它们可能不想让自己的名字与此联系在一起。Peters说,但是补丁信息通常通过邮件列表传播出去。他补充说:“所有人不久后都会知道。”
一些安全厂商发现向开源社区通报信息比向闭源厂商通报信息更困难。
Fortify Software是一家安全公司。它最近与咨询机构Larry Suto公司合作评估11种基于Java的开源应用存在的安全漏洞,结果发现了所有应用都存在Fortify希望向每个开源社区通报的重大的漏洞。
但是据Fortify说,只能够发现开发应用服务器的Tomcat公司采用了Fortify建议的“最佳实践”。这些最佳实践包括报告安全漏洞的专用电子邮件别名、方便地利用安全专家和连接安全信息的醒目的Web链接。
其余Fortify试图联系的开源项目,Hipergate、OpenCMS、 Resin、Jonas、 Derby、 Geronimo、 Struts、Ofbiz、JBoss和Hibernate,都未能做到支持所有这3个最佳实践,一些项目干脆就未对Fortify的询问给出答复。
尽管Fortify有关它在联系开源项目报告安全漏洞中遇到的困难的报告引起了争议,但一些开源支持者认为Fortify的研究有其价值。
Ingres公司高级副总裁Emma McGrattan在谈到它自己独立的Ingres开源数据库安全修补过程时说:“我们提供一个用于通知的电子邮件地址,而不是四处广播。这是非常廉价的方式。”
靠服务的授权其知识产权生存的Ingres公司的人员中有两位全职安全专家,公司利用Klocwork代码测试工具确定被诊断的Ingres代码中存在的安全漏洞。她指出:“一旦有人修补了漏洞后,他有义务将补丁提交给社区。”并说:“社区版本不太稳定。”
Ingres的客户的确要应付修改代码的知识产权问题。McGrattan承认:“我们遇到了有关开源授权合法性的问题。当律师看到开源软件进入企业环境时,他们的确担心开源软件。”
IBM Rational公司安全研究主管Danny Allen指出IBM拥有强健的开源项目,如Apache.他说,企业在考虑开源带来的安全和知识产权问题。
Allen说:“存在着对风险的意识,如未来出现安全漏洞该怎么办。”人们关心谁是框架的安全联系人或故意添加恶意代码的可能有多大。
企业律师对开源项目尤其警惕,因为找到应当负责的人即便是可能的但也很困难。Allen说:“在开源项目中,不存在任何具体的责任性。”他补充说,他看到过法律人员试图在企业合并过程中发现开源软件,认为它比闭源软件风险更高。
但是,Coverity公司开源战略师David Maxwell指,每个开源社区在外表和行为上都略有不同。Coverity生产评估软件质量的静态分析工具Coverity Prevent.Maxwell还是自愿从事NetBSD开源项目工作的软件开发员。在这个项目中,几百个个人有权“实施”代码修改。
两年多前,Coverity赢得了国土安全部的一份合同,为该机构有系统地分析政府的“开源加固项目”中的开源软件。
根据合同,开源项目被邀请免费使用Coverity Scan套件来评估软件,使所有的漏洞都可能得到修补。
Coverity Scan套件两年时间里在为250多个开源项目(包括Firefox、Linux和PHP)反复分析了5,500多万行代码。5月份,Coverity在其“开源报告”中总结了工作结果。
据“开源报告”说,在250个项目中,大约120个项目拥有积极参与减少代码中发现的隐患的开发人员。使用Coverity Scan套件导致两年时间里开源程序减少了8,500多种不同的隐患。不过,在干净的代码方面,开源软件大体上不是特别好。
Maxwell说,做得很好的项目包括Amanda、NTP、OpenPAM、OpenVPN、Overdose、Perl、PHP、Postfix、Python、Samba和TCL,这些项目解决了所有发现的隐患。
Maxwell在谈到修补过程时说:“这120个项目中余下的项目有着不同的响应水平。”他承认,他自己的NetBSD(该项目遵循从自愿人员中挑选安全官员和对通信进行加密的作法。)仍在努力修补发现的隐患。
Maxwell指出,开源软件的开发是一种文化。在这种文化氛围中,人们根据集体对他们能力的感觉和投入程度而得到接受,从而创建一种自动形成的紧密的自愿者群体。因此,会出现对带来软件安全坏消息的突然出现的外部人员的强烈的抵制。
一些人说,攻击者试图利用开源中的开放性。
许多开源项目利用并行版本系统(CVS)作为项目代码的信息库。甚至这种可预测性也为希望监视代码变化和更新来准备恶意软件和攻击代码的攻击者提供了机会。Symantec安全响应副总裁Alfred Huger说:“有人一直在利用这点。他们分析CVS和变化的日志。”
至于他是否发现开源社区对带来安全情报的外部人员更警惕,Huger说,每个社区都是不同的,但更沉默、疑心更重的社区是那些以前从没有被人告之过某个问题的社区。Huger得到的结论是,“如果社区以前遇到过类似问题”,它们对信息更容易接受。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
网易OpenStack部署运维实战
本文为您介绍了网易公司基于OpenStack开发的一套云计算管理平台,以及在开发、运营、维护过程中遇到的问题和经验分享。
-
支持Swift!全新“四步测”BDD框架Quick诞生
Quick是一款专门用于iOS应用开发的开源行为驱动开发(BDD)测试框架,基于MIT许可协议发布,支持Swift和Objective-C,其灵感主要来源于RSpec、Specta和Ginkgo。
-
Sharp:最快的Node.js图像调整模块
Sharp是调整图片尺寸最快的Node.js模块,它支持JPEG、PNG、WebP和TIFF格式的图片处理,使用libvips库。
-
开源是怎样修炼成的?
开源的不仅仅只是一个软件许可证。如果你相信GitHub,那么你就会明白一个协同软件开发的成功范例是什么样子了。