Linux基金会和哈佛大学创新科学实验室的研究人员进行了广泛调查和深入研究,得出了有关企业内常用的免费开源软件(FOSS)的一些重要结论与潜在安全风险。
研究人员发现,由于缺少针对FOSS组件的标准化命名方案,企业和其他股东难以快速、准确地识别可疑或易受攻击的组件。
其次,他们还发现,需要更加安全地保护开发人员的账号,那些积极为某些广泛部署开源软件做贡献的人员。第三个发现是,与其他较旧的硬件或软件技术一样,开源社区中的旧版软件包日益危险。
《哈佛商学院》的合著者Frank Nagle教授说:“ FOSS组件几乎是所有其他软件的基础,无论是开放的还是专有的,但我们对软件的常用性或安全性信息知之甚少。考虑到了免费开源软件可能对经济产生的影响,但却很少人考虑到支持和维护这一核心基础架构的系统性工作。”
在这项研究中,Linux基金会和哈佛大学的研究人员分析了企业软件的使用数据,这些数据由软件合成分析公司和应用安全公司提供,例如Snyk和Synopsys网络安全研究中心。在确定常用的开源软件时,研究人员考虑了FOSS软件包或组件与其他企业应用程序和系统之间可能存在的从属关系。
目的在于确定和衡量企业环境中常用的FOSS,了解该软件的安全性等。FOSS组件几乎占企业当前正在使用的所有应用程序的80%至90%。尽管许多FOSS项目有接受安全检查,但是很多还没有。
研究人员在本周发布的一份报告中说,在诸如OpenSSL之类的有小部分贡献者基础的常用项目中,漏洞通常会被忽略。随着对FOSS的依赖日益增长,政府、研究人员和组织通过审核、漏洞赏金计划、黑客马拉松和会议更好地了解开源软件的来源和安全。Nagle说:“第一步是要真正了解企业所依赖的FOSS组件。无论是通过定期的安全扫描和代码审计,还是通过其数字产品采用的软件材料清单。”
顶级项目和顶级风险
Linux基金会与哈佛大学创新科学实验室的联合研究表明,企业内10个最常用的FOSS软件包是async,inherits,isarray,kindof,lodash,minimist,native,qs,readable-stream和string-decoder。研究人员还确定了最常用的非JavaScript程序包,其中包括com.fasterxml.jackson.core:jackson-core,com.fasterxml.jackson.core:Jackson-databind,com.google.guava:guava和commons -codec。
在确定了最重要的项目之后,研究人员着手寻找这些项目中最活跃的贡献者,并确定了其中约75%的公司从属关系。在研究过程中,研究人员发现,最常用的七个开源软件项目中的七个托管在开发人员个体账号上,其安全性比企业账号更弱。报告警告说:“个体账号的开发人员控制和更改代码非常容易实现,无需检测即可进行。”
此外,根据研究人员的说法,对开发人员个体账号的攻击正在增加,利用账号接管、后门和其他恶意代码等实现代码访问的风险越来越大。Nagle说:“如果这类个人账号的存储库支持的话,可以执行两因素身份验证。”
个人账号控制的常用FOSS的另一个风险是开发人员,他们有删除账号或删除有争议和分歧代码的决定权。Nagle指出:“更广泛和长期的解决方案是,将此类项目转移到企业账号,而不是由个人账号控制,这有助于增强项目的归责性和将来的可用性。”
研究表明, FOSS组件需要有更好的命名规则。Nagle表示,由于FOSS可以自由修改和复制,因此可以有多个版本,分支和类似名称的存储库。为了进一步确保安全,重要的是对正在使用的FOSS组件情况以及支持和维护工作有个共识。
研究人员的另一个发现是,与旧版不受支持的软件或硬件版本一样的是,旧版开源组件也面临风险。例如,Nagle指出了常用的PuTTY SSH软件的0.70版,该软件于2017年7月发布。将近两年后,直到2019年3月该软件的更新0.71版才发布。像这样常用软件的更新和检查就可以解决存在于代码库20多年的安全问题了。”