近几年,开源代码的使用热度持续上升,各类公司都习惯于使用开源代码来构建自己的系统和平台。开源代码带来的便利是大家有目共睹的,但巨大利益的背后往往存在着挑战,开源在方便大家的同时,其隐患也不容忽视。
Synopsys2018开源安全风险分析软件Black Duck对1100多个商业代码库进行了扫描,结果发现,96%的商业应用中都融入了开源组件,平均每个应用有257个开源组件。开源代码库的平均百分比从2017年的36%上升至57%。
很多的开源专家已经预料到了这种趋势。专家们表示,开源大趋势下,各种各样的问题也是接踵而至,很多的企业也一直在寻找解决和维护的办法。下面是五大开源问题及解决方案,可供企业参考。
1.了解开源
开源软件易获取、易使用的特点吸引了很多企业为之青睐,但同时也让很多企业为之头疼,因为没有相关的管理政策去限定开源使用,例如规定哪些开源可以被使用以及何时可以使用。
国际律师事务所Mayer Brown律师Paul Chandler表示,很多公司对他们今天使用的开源软件并不了解,甚至连自己生态系统或者产品组合中有这些开源都不知道,更不用说解决漏洞问题。
Paul Chandler建议,企业CIO应该使用扫描工具来查找企业中运行的开源代码。要求其商业产品供应商注明产品中的开源代码,并承担开源风险。另外,采购合同的人员必须了解开源,因为开源代码最终将以商业产品的形式出现在用户面前,需承担很大的风险责任。每个公司的CIO应该建立一个战略计划,计划好什么时候使用开源,以及在什么情况下可以使用。另外,还要根据企业需求制定出开源安全性能和许可检测策略,并且确定好OSS管理和维护人员。
2.遵守许可证的要求
Open Source Initiative(开源计划),是一个提倡开源的非营利组织,它列出了已被批准的80多个开源许可证,并且每一个许可证都有单独的规则和要求,使用OSS的企业必须遵守相应许可证的规则和要求。
Mayer Brown的合伙人Robert Kriss表示,尽管开源是免费的,但也会有很多附加信息。开源许可证的要求是不一样的,例如一些许可证要求开发人员共享他们对开源代码的更改,但其他的可能就不需要。对于一些专利代码,则不允许更改。还有一些规则限制了开源软件对于商业产品的应用。此外,在产品中使用多个OSS的开发人员会发现这样一个问题,一个开源代码组件的许可条款与另一个与之相关联的开源组件许可条款之间互相矛盾。很多开源软件的许可条款表达的并不明确,导致企业在遵循时出现很多问题。但许可条款在开源风险的控制上还是作用很大的,许可证上会标明语言风险,您 只有阅读完之后才能预估隐患。
3.设立开源服务级别
OSS的主要优势就是可以免费获取代码而不需要支付任何费用。但这并不意味着开源没有成本。Gartner副总裁兼研究总监Mark Driver表示,企业经常无法正确计算出他们使用的开源软件的总成本,并且总是会低估开源维护和管理的时间。
Driver说到;“很多的企业选择非商业路线,因为他们认为这样才会获得更大利益,并只使用企业内部资源来进行维护工作。但是在这样的观念里,企业很容易误估他们实际的花销能力。”
为了避免这种情况,Driver建议,IT需要设立应用程序中使用的开源代码所需的服务级别。这样企业便很容易评估开源成本,以及潜在故障成本,有助于企业对净利润和商业替代方案进行对比。
Driver强调:“企业对开源的热情并不是其经营业务的方式,认清开源的价值才是业务的真正实现。”
4.关注可用性
目前,开发人员都在使用OSS为用户提供应用程序中所需的功能和特性。但G2 Crowd Inc.的***研究官Michael Fauscette表示,很少的开发人员会考虑其开源软件的参与是否会影响应用程序的可用性。即使开源软件在应用程序中所占的比例很小,但可用性不匹配,也能很显著的降低整个产品的特性或用户体验。所以开发人员在选择开源软件之前,应该衡量好开源软件与其产品可用性的利益对比。
Michael Fauscette补充到:“今天的员工对使用不易使用的东西的容忍度往往很低。”
5.维护和管理开源组合
经验丰富的开发人员都知道,寻找生产中开源软件的更新和漏洞补丁是他们该有的责任,但是他们却往往没有很好的做到这一点。
Snyk对开源项目维护者的调查发现,44%的开源项目从未进行过安全审计,仅17%的项目表示有高水平的安全专业技能。开源项目的安全记录方式也没有标准可循。并且,即便问题被修改,也无法通知老版本的用户。并且即便漏洞被发现并推出了补丁,使用该代码的公司也可能不会注意到自己需要补丁,或者找不出需要补丁的实例。
Driver表示,开源资产在IT组合中往往没有得到妥当的管理。公司的技术主管应该实施治理程序,确保企业操作系统得到充分管理,保证应用程序在企业环境中正常运作。
Driver建议,技术主管应该建立一个多层的管理系统,严格管理关键程序中运行的OSS。这是一项很艰巨的任务,但逃避的后果也将是灾难性的。2017年Equifax数据泄露事件就是一个警钟。其所用 Apache Struts 开源组件的补丁早在数据泄露发生前2个月就推出了,且Equifax也注意到了有补丁可用,但依然没能及时打上补丁。
Welty表示,企业在使用开源代码的时候,必须设立一个管理过程来监控和引入更新。当监控到开源代码没有得到定期更新和提供补丁时,应及时解决。