最受企业青睐的开源软件包是什么?它们的三大风险是什么?
聚焦源代码安全,网罗国内外最新资讯!
近期,Linux 基金会和哈佛大学创新科学实验室 (LISH) 联合发布《核心基础设施中的漏洞:开源软件初步报告和共识II项目》(Vulnerabilities in the Core: Preliminary Report and CensusII of Open Source Software)研究报告。该联合团队历时一年半,研究了公私组织机构应用程序使用免费开源软件 (FOSS) 的情况,找到了十大最常用的开源软件包和十大最常用的非 JavaScript 开源软件包,结果表明不安全的开发人员账号、遗留的软件包版本和非标准命名方案是FOSS 中存在的主要风险。
奇安信代码安全团队现编译如下:
最常用的十大开源软件包
Async
Inherits
Isarray
Kind-of
Iodash
Minimist
Natives
Qs
Readable-stream
String_decoder
最常用的十大非 JavaScript 开源软件包
本报告的数据来源很大一部分基于 JavaScript 软件包,为了解构成 FOSS 生态系统基础的数据包类型,报告列出最常用的非 JavaScript 软件包。这十大非 JavaScript 开源软件包如下:
com.fasterxml.jackson.core:jackson-core
com.fasterxml.jackson.core:jackson-databind
com.google.guava:guava
commons-codec
commons-io
httpcomponents-client
httpcomponents-core
logback-core
org.apache.commons:commons-lang3
slf4j:slf4j
FOSS 面临的三大风险
通过依赖关系分析找到十大最常使用的软件包和十大最常使用的非 JavaScript 软件包后,研究人员还从这些软件包背后的社区公开项目数据中有了更多的发现。
通过查询这些仓库的生命周期 GitHub 数据,研究人员找到每个 FOSS 项目的三大提交者,并且人工交叉引用 Github 资料信息和数据来源如 LinkedIn、Crunchbase 和其它社交媒体和网络公开数据,报告确定了75%以上顶级提交者所在的公司。
结果表明,在职员工和最常使用 FOSS 软件包贡献者之间存在高度相关性。开源软件并非人们普遍认为的无加班费的程序员贡献,2017年的 GitHub 数据分析表明,他们很多是微软、谷歌、IBM或Intel 公司的员工。他们做出的开源贡献可能会使他们成为进入这些公司的资本。未来CII将开展更多关于贡献者们的调查,进而帮助 FOSS 利益相关者们如个人贡献者、开源基金会和企业等更好地分配资源和支持。
(1) 非标准化的命名方案
报告指出,FOSS 组件缺少标准化的命名方案,使得组织机构和其它利益相关者难以快速准确地找到有问题或者易受攻击的组件。他们无法在全球范围内相互沟通关于软件安全、透明度等信息。鉴于软件供应链在网络安全事件中起着更多更复杂的作用,因此将 FOSS 组件的命名方案标准化迫在眉睫。
(2) 不安全的个人开发者账户
数据分析结果表明,个人开发者账户的安全性越发重要。在十大最常用的软件包中,7个软件包托管在个人开发者账户上。这种对个人开发者账户的严重依赖产生重大后果。在大多数情况下,因法律、政治和安全等原因,个人开发者账户的安全性不及组织机构账户。虽然个人账户可以采取多种措施如多因素认证机制,但他们不一定总能做到,而个人的计算环境可能更容易遭受攻击,它们的许可和其它发布控制的颗粒度可能不及机构账户。这意味着在个人开发者账户下的代码更容易遭修改且可能无法察觉。另外这种潜在风险并非只存在于理论中。例如最流行的 event-stream JavaScript 库中就曾被安装后门。
(3) 遗留的软件包版本
相比开发者账户的安全性,遗留软件包版本带来的风险更不易察觉。老旧、遗留的开源组件带来的风险和任何软件或硬件的老旧、不受支持的版本一样多。例如,数据分析显示,JavaScript 软件包 “minimist” 竟然比更新版本 “yargs” 的排名更靠前,这让 JavaScript 生态系统专家极为震惊。
这说明FOSS 开发圈也未能逃过过时技术的问题,即单一软件包的替换版本在使用量方面尚未超过旧版本。有些情况下,在实时系统中更容易替换软件,因为它并不涉及硬件替换,遗留软件包替换一般也执行同样的功能,新软件包对整个产品产生相对较小的破坏。然而在很多情况下,兼容性问题的存在使情况并非总是这样。在很多情况下,在没有额外利益保证的前提下,转换到新软件时产生的经济和时间相关的成本可能会动摇组织机构转换到更新版本的决心。开发人员对新版本投入的精力更多,而遗留版本的软件包由于缺少修复方案支持,因此越发容易崩溃。这一问题可能会导致类似于“心脏出血”漏洞的爆发,因此在 FOSS 圈子也同样需要重视遗留版本问题。
报告指出,虽然研究结果并不全面,但希望通过数据使用分析结果来更加清楚地了解私有企业中使用了哪些 FOSS 软件包或所严重依赖的FOSS软件包。该报告并非关于关键 FOSS 项目的最终结论,但它启动了关于如何识别关键软件包并确保它们收到正确资源和支持的对话。
https://www.coreinfrastructure.org/wp-content/uploads/sites/6/2020/02/census_ii_vulnerabilities_in_the_core.pdf
题图:Pixabay License
转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
点个“在看”,bounty 不停~