聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

近期,Linux 基金会和哈佛大学创新科学实验室 (LISH) 联合发布《核心基础设施中的漏洞:开源软件初步报告和共识II项目》(Vulnerabilities in the Core: Preliminary Report and CensusII of Open Source Software)研究报告。该联合团队历时一年半,研究了公私组织机构应用程序使用免费开源软件 (FOSS) 的情况,找到了十大最常用的开源软件包和十大最常用的非 JavaScript 开源软件包,结果表明不安全的开发人员账号、遗留的软件包版本和非标准命名方案是FOSS 中存在的主要风险。

奇安信代码安全团队现编译如下:

免费的开源软件已成为当代经济的关键组成部分。Sonatype 公司在《2016年软件供应链报告》中指出,80% 至 90%的现代软件由 FOSS 组成,而在几乎所有行业中,软件的作用越发重要。公私组织机构均严重依赖于FOSS,技术公司和非技术公司皆如此。因此,确保FOSS的健康安全对几乎所有行业的未来而言至关重要。

然而,从设计角度而言,FOSS 是分散性质的,因此无法集中保证其质量和维护;另一方面由于 FOSS 可被免费复制和修改,因此无法了解有多少款 FOSS 是使用范围最广泛的,或者更确切地说使用最广泛的FOSS 类型是什么。因此要确保 FOSS 生态系统未来的健康和安全,理解使用的 FOSS 类型及其受支持和维护的程度就显得十分重要。

注:2014年,Linux 基金会成立核心基础设施计划(CIICore Infrastructure Initiative),其成员为全球信息基础设施关键 FOSS 项目提供资金和支持,以保证 FOSS 生态系统的健康安全。2015年,CII 开展共识项目 (Census I),找到 Debian Linux 发行版本中对内核操作和安全作用最大的软件包,但该项目并未深入研究生产应用程序中部署的软件。因此在2018年中期,Linux 基金会联合LISH 开展第二次共识项目,目的是找到并统计公私组织机构应用程序中最常部署的开源软件,通过分析软件成分分析合作伙伴公司提供的使用数据来勾勒更完整的 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 项目的最终结论,但它启动了关于如何识别关键软件包并确保它们收到正确资源和支持的对话。

推荐阅读

奇安信开源组件安全治理解决方案——开源卫士

开源邮件服务器 OpenSMTPD 被曝命令注入漏洞

五年来,开源论坛软件MyBB共修复100多个漏洞

网络安全联盟发布首个开源的安全工具通讯框架

原文链接

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 不停~

最受企业青睐的开源软件包是什么?它们的三大风险是什么?相关推荐

  1. 掌握哪些机器学习工具更受企业青睐?

    参加 2018 AI开发者大会,请点击 大会官网 想成为一名优秀的开发工程师不是一件简单的事情,除了掌握工程师的通用技能以外,还需要掌握机器学习的各种算法,更需要掌握从开发到调试到优化等一系列能力,这 ...

  2. 为什么要使用服务器信号切换器,为什么数字KVM越来越受企业的青睐

    KVM切换器的使用,极大地推动了计算机应用范围的发展,也正是有了这款网络产品,才让以前在网络领域只是存在于想法的事情,真正的成为了现实.KVM切换器发展至今,已经衍生出更多的新型KVM切换器产品,数字 ...

  3. 破浪前行,人大金仓荣获鼎信杯最受用户青睐奖、最具影响力企业奖

    近日,第二届"鼎信杯"信创大赛发布最终获奖名单,人大金仓凭借多年数据库领域核心技术创新与服务,荣获最受用户青睐奖.最具影响力企业奖! 金仓数据库管理系统KingbaseES V8拥 ...

  4. 5 个最受人喜爱的开源 Django 包

    导读 Django 围绕"可重用应用"的思想建立:自包含的包提供了可重复使用的特性.你可以将这些可重用应用组装起来,在加上适用于你的网站的特定代码,来搭建你自己的网站.Django ...

  5. 颇受资本青睐的酒店机器人,何时能成行业“标配”?

    日新月异的人工智能科技,正在加速改变世界,影响着我们的生活. 从汽车.医疗.教育等主流应用领域,到酒店.养老等许多正在崛起的领域,都在智能化的过程中昂首行进着. 最近一年的智能机器人市场如火如荼,曾让 ...

  6. 上市遭破发,披着“光芒”的维信金科缘何不受股市青睐?

    港交所迎来大批IPO企业的2018年上半年,线上消费金融服务提供商维信金科已于6月21日在港挂牌交易.然挂牌首日维信金科的股价就跌破发行价,最大跌幅达4.4%. 市场反映情况来看,近期上市首日破发的互 ...

  7. 12位最受女性青睐的男性创业者 ?

    王功权真性情 曾因酒醉鞭名马,生怕情多累美人.王功权是如此多情.他先是和前妻离婚,一切都给了前妻.之后又放弃巨额财富,离开 了创投圈.但他绝不是一个玩世者,作为"万通六君子"中的大 ...

  8. GitHub上最受欢迎的Android开源项目TOP20

    以下这些开源项目都是从GitHub上筛选的,我强烈推荐android程序源代码有时间的时候自己在上面淘淘,或许能发现自己须要的开源程序. 了解开源项目有两个优点: 1.借鉴代码,一般来说.火爆的开源项 ...

  9. 从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个

    从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架 Djang ...

最新文章

  1. graphql是什么_为什么GraphQL是避免技术债务的关键
  2. PCE:南农沈其荣团队根系分泌物驱动土壤-微生物-养分之间的反馈作用以响应植物的生长...
  3. C语言//注释使下一行代码失效
  4. MySQL中购买的语句,mysql操作语句 - 买灰机自己开的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 大话数据结构:线性表(2)
  6. 【解惑】这么多技术我该怎么学
  7. 杭电1713相遇周期
  8. mybatis 二级缓存失效_给我五分钟,带你彻底掌握MyBatis的缓存工作原理
  9. 菜鸟学asp.net遇到的问题和解决方案
  10. express学习 - (3)express 路由
  11. Eratosthenes筛法
  12. 神经网络入门-感知器算法
  13. win8系统本地计算机策略,win8本地安全策略怎么打开?三种方法轻松打开win8本地安全策略...
  14. 花椒母公司花房更新招股书:年利润4亿 周鸿祎是大股东
  15. micropython esp8266 红外控制小车
  16. Could not acquire change log lock. Currently locked by XXX
  17. MinGW介绍与使用
  18. 提升研发质量的三个办法
  19. C#正则表达式测试小工具
  20. 通过百度地图实现定位并获取本地当日天气信息

热门文章

  1. 随笔1:音频编解码科学家
  2. Mozilla在Thunderbird 60.3中的修补了多个安全漏洞
  3. vsan的容量设备故障和缓存设备故障分析
  4. eclipse New菜单项的显示问题
  5. docker专题(2):docker常用管理命令(下)
  6. java 继承 String类
  7. 手机摇一摇功能音量大小跟系统音量一致
  8. 使用SpringTest测试,默认情况事务是不会提交的
  9. 系统技巧之如何巧妙的整理磁盘碎片
  10. 恭喜51CTO视频课程认证讲师、博主李海园喜得姐妹花