正确管理开源软件不仅仅是关乎安全性

开源是软件设计各个开发阶段越来越受欢迎的选择。这是有道理的。开源具有诸多优势,例如灵活性、成本效益和共享维护成本。但是,我们需要加强开源漏洞监控,并针对许可问题进行研究。2019年OSSRA报告审查了1,200多个商业代码库的数据结果,这些代码库用于希望评估其开源许可证合规性和安全风险的企业和组织。审计发现,2018年扫描的代码库中有超过96%的代码库是开源的,超过99%的代码库包含超过1,000个由开源组件构成的文件。开源代码与代码库中代码总数的比例在2018年为60%,高于2017年的57%。这些数字反映了经审计的代码库通常来自业务是构建软件的公司。这些公司的价值通常体现在其拥有的专有代码,它们代码库中开源代码与专有代码的比例往往较低。相比之下,超过90%的IT企业在任务关键型的工作中使用开源软件,而且开源占据了90%的新代码库。根据2019年红帽(Red Hat)“企业开源状态”报告,超过69%的受访企业认为他们使用开源至少“非常重要”(40%非常重要,29%极其重要)。很明显开源组件和库是每个行业中几乎所有应用程序的支柱。大多数企业拥有数千种不同的软件,从移动应用程序到基于云的系统,再到本地运行的遗留系统。该软件通常是商业现成软件包、开源软件和定制代码库的混合体。漏洞影响所有软件。然而,很少有公司能够充分追踪他们在代码中使用的开源组件,并且没有采用开发人员使用开源所做出的选择所需的策略、流程和工具。因此,开源带来的所有好处也可能带来各种风险。

 风险问题来自未修补的软件,不是使用开源

 正如红帽报告指出的那样,安全被认为是阻碍一些企业允许开源使用的主要障碍。有趣的是,同一份报告将安全性视为IT决策者在使用开源时所看到的最大好处之一。这种看似矛盾反映了两种现状:人们担心非托管开源代码可能会在开源和专有解决方案中引入漏洞;人们意识到正确管理开源 - 包括使用可信来源和自动化工具来发现和修复安全问题 - 可以大大减少开源风险的潜力。

 所有软件,无论是专有软件还是开源软件,都存在可能存在漏洞。企业需要识别和修补这些漏洞。开源社区在发布补丁方面做出了示范性的工作,通常比专有软件快得多。

 但无论是专有软件还是开源软件,相当大数量的企业都没有及时应用补丁,而暴露在风险之中。不修补的原因是多种多样的:有些企业被无休止的可用补丁所淹没,无法确定需要修补的优先级;有的缺乏应用补丁的资源;有的需要平衡风险与财务成本之间的关系。

 未修补的软件漏洞是企业面临的最大的网络威胁之一,软件中未修补的开源组件增加了安全风险。 2019年OSSRA报告指出,2018年审计的代码库中有60%至少存在某种开源漏洞。

    有什么风险?

 开源的某些特性使流行组件中的漏洞很容易受到攻击。商业软件的发布者可以自动向用户推送修复,补丁和更新。但与商业软件不同,您需要负责追踪使用的开源的漏洞和修复程序。

 无处不在的开源为攻击者提供了一个有利的环境,因为漏洞是通过国家漏洞数据库(NVD)、邮件列表、GitHub问题和项目主页等来源披露的。如前所述,许多企业没有保留其应用程序中使用的开源组件的准确、全面和最新的清单。例如,美国参议院常设调查小组委员会的一份工作人员报告指出,Equifax缺乏完整的软件库存是导致其2017年大规模数据泄露的一个因素。

 正确管理开源软件不仅仅是关乎安全性

 现在有数千个开源许可证,如果不遵守这些许可证,可能会使企业面临诉讼风险和损害知识产权风险。无论是使用开源计划认可的流行许可证 还是其它许可证,企业只有在确定由这些许可证管理的开源组件后才能管理和遵守许可证要求。 2019年OSSRA报告中详述的经过审计的代码库中有32%包含可能导致冲突或需要进行法律审查的自定义许可证。 68%的代码库包含许可证冲突的组件。

 除了安全和许可风险之外,操作风险是开源使用不太严重但仍然不可忽视的后果。今天使用的许多开源组件都被放弃了。换句话说,他们没有开发人员社区贡献、修补或改进它们。如果组件处于非活动状态且没有人维护它,则意味着没有人正在解决其潜在的漏洞。

2019年7月29日 09:50