如今的网络攻击日益猖獗,那么企业如何提高开源供应链的安全性?
开源是一种了不起的资源,它不仅能促进社区发展,还能推动创新,是构建现代应用程序的必要条件。然而,开源软件也有其自身的安全威胁和挑战。Tidelift公司首席执行官Donald Fischer对为什么以及如何加强开源供应链的安全性和弹性进行了阐述和分析。
如今,根据调研机构Forrester公司发布的数据,50%以上的财富500强公司在他们的开发项目中使用开源软件。到目前为止,开源的价值在大多数企业中都得到了很好的理解:它加快了应用程序的开发,允许企业在免费代码的基础上更快地创建和改进应用程序。
然而,开源是免费的,最初的获取成本为零,但随着时间的推移,保持其安全性和良好维护的成本通常是巨大的。更重要的是,不有效管理开源供应链的影响可能是严重的。
例如,美国政府的一个部门机构最近报告说,它投入了33,000小时来修复最近的Log4Shell漏洞,仅该机构的工程时间就至少为400万美元。
在Equifax公司未能更新易受攻击的ApacheStruts软件包版本,导致数百万消费者数据记录暴露后,他们为此赔偿了7亿美元,以解决美国联邦贸易委员会、消费者金融保护局和所有50个州的诉讼。
难怪当今天的商业领袖看到这样的例子时,拥有一个健全的开源供应链管理战略的重要性变得清晰起来。
IDC公司的DevOps和DevSecOps解决方案副总裁JimMercer建议企业积极地建立一个管理开源的计划,这样他们就可以保持安全,同时最大限度地利用开源的好处:
他说,“由于不断变化的威胁环境,企业需要一个计划来管理他们OSS供应链的健康和安全。战略必须在技术和业务利益相关者之间社会化,以获得支持,并且应该包括OSS消费的企业指南,OSS社区的参与,以及安全尽职调查的标准。”
有效的开源供应链管理计划必须解决内部安全和维护挑战以及外部软件供应链弹性挑战。
解决内部开源安全和维护挑战
许多企业已经认识到保持他们使用的开源组件的安全和更新所面临的挑战。为了解决这些问题,企业应该有一个适当的计划来全面回答下面这些问题,然后在整个企业中广泛地社会化答案。其中许多问题对于单个开发人员来说是极其难以自己回答的。
- 企业如何决定谁负责确保开源组件的安全和最新,谁负责修复?
- 企业是否有适当的系统来确定哪些组件被批准使用,开发人员如何找到这些答案?
- 如果开发人员想引入一个尚未批准使用的组件,他们该如何做,谁需要参与?
- 谁来评估被引入组件的安全和维护实践,以确保它们符合企业自己的标准?企业中谁制定和维护这些标准?
值得庆幸的是,现在已经出现了解决这类问题的行业最佳实践。企业创建一个经过审查和批准的组件目录,供整个企业的开发人员使用并集中管理。随着时间的推移,随着越来越多的组件被批准,这个目录的大小可以继续增加,使开发人员可以访问越来越多的组件,而不必自己去研究。这使得开发人员的工作效率更高,并降低了企业风险。
应对供应链弹性挑战
虽然管理开放源码的内部安全和维护挑战已经有了很好的记录,但开放源码的一个不太引人注意但更有害的问题是对上游开放源码组件本身的健康和安全的威胁越来越大。
Log4Shell就是一个很好的例子,美国政府网络安全审查委员会(CSRB)在一份报告中强调了这一点,该委员会指出,开源社区目前还不够强大,无法确保代码符合企业标准和政府指南。
但实际上,当志愿者维护大多数开源组件时,企业应该问一个关键问题:谁来承担验证开源包是否符合这些标准的工作?
显而易见的答案是,维护者将是做这项工作的人,但是期望他们“出于善意”承担额外的责任,并且没有过程和工具支持,这是不应该被假定的,并且对任何企业都是危险的。
积极应对安全和维护以及供应链弹性挑战
在任何企业的开源管理计划中,积极主动地与他们大规模使用的开源项目的维护者进行接触,并提供直接的财务激励,这应该是一个关键部分。开源维护者拥有保护其项目的知识和权限。确保从其工作中受益的企业得到公平的报酬是最符合其利益的。
与此同时,应用程序开发领导者应该确定能够帮助他们理解开源软件供应链安全的新兴行业标准的工具,并根据这些标准主动评估开源包,同时随着时间的推移构建一个不断增长的预先审查和批准的开源组件目录。
开源在大多数企业中的使用将不可避免地继续增加,像Log4Shell这样的软件供应链攻击将变得更加频繁。在这种背景下,所有使用开源的企业都应该评估他们是否有一个合理的开源软件供应链管理策略,以解决使用开源带来的安全、维护和弹性挑战。