开源软件没你想象中那么安全,Java 开发者尤其要警惕
Snyk 今天发布了2019年开源安全现状调查报告,这是一家针对开源项目提供安全服务的知名公司。
前言
为了更好地了解开源领域的安全现状,以及我们该如何让开源世界的安全性变得更好,Snyk 公司通过对大量的数据进行统计和分析,得到了2019年开源安全现状调查报告,其中数据来源包括:
- 由 Snyk 发起和分析的来自500多名开源项目维护者和用户填写的调查问卷
- 来自 Snyk 漏洞数据库的内部数据,以及由 Snyk 监控和保护的数十万个项目
- 从各个供应商发布的外部资源中获取到的研究报告
- 通过扫描数百万个公开 GitHub 仓库和包而收集到的数据
开源安全现状
先看一看报告提供的关键数据,总共包括六个方面。
1.开源项目被采用情况
数据显示,78% 的漏洞存在于间接依赖关系中。而在2017到2018年期间,工具包平台的增长情况如下:
- Maven Central – 102%
- PyPI – 40%
- npm – 37%
- NuGet – 26%
- RubyGems – 5.6%
- npm 报告2018年的下载量为3040亿次
各大工具包平台的增长情况
明显可以看到,开源项目的采用率正在持续加速增长。仅是2018年,Java 工具包翻了一番,而 npm 增加了大约 250000 个新的工具包。
PyPI 在2018年拥有超过140亿的下载量,较2017年增加了一倍,当时的下载次数约为63亿次。
PyPI 工具包在2018年的下载次数
npm 工具包在2018年的下载次数
npm 称得上是整个 JavaScript 生态系统的核心。多年来,其软件包数量和下载数量一直在稳步增长,仅2018年12月的单月下载量就超过了300亿次,而2018年全年的下载次数更是达到令人难以置信的3170亿次。
2.漏洞识别状况
- 37% 的开源开发者在持续集成(CI)期间没有实施任何类型的安全测试,54% 的开发者没有对 Docker 镜像进行任何安全测试
- 从漏洞添加至开源软件包到修复漏洞的时间中位数超过2年
持续集成期间的安全测试情况
3.已知的漏洞
- 两年内应用程序的漏洞数量增长了 88%
- 在2018年,npm 的漏洞数量增长了 47%
- 根据 Maven Central 和 PHP Packagist 披露的数据,它们的漏洞数量分别增长了 27% 和 56%
- 2018年与2017年相比,Snyk 在 RHEL, Debian 和 Ubuntu 中追踪发现的漏洞数量增加了4倍多
每种语言其生态系统的新漏洞增长情况
今天,Snyk 目睹了其跟踪的许多生态系统中报告的漏洞数量的增加,包括 PHP Packagist, Maven Central Repository, Golang, npm, NuGet, RubyGems 和 PyPI。其中在研究五种不同的语言生态系统时:PHP, Java, JavaScript, Python 和 Go 时,Snyk 发现自2014年以来,所有这些生态系统中披露的漏洞数量呈上升趋势。尤其是 npm 和 Maven 中央仓库,毕竟这两者也是工具包数量增长最多的平台。
4.谁该对开源软件的安全性负责?
- 81% 的用户认为开发者负责开源软件的安全性
- 68% 的用户认为开发者应该对他们提供的 Docker 容器镜像负安全责任
- 只有 30% 的开源软件维护者认为自己具有高安全性意识
谁该对开源软件的安全性负责
开发者对自身安全意识的认知情况
5.Docker 镜像中的已知漏洞
- 十大最受欢迎的默认 Docker 镜像中的每一个都包含至少30个易受攻击的系统库
- 经过扫描的 44% Docker 镜像可以通过更新其基本镜像标记(image tag)来修复已知漏洞
十大流行 Docker 镜像的漏洞数量状况
Linux 系统的漏洞数量在持续增长
系统库中的紧急漏洞和高危漏洞数量对比
6.Snyk 的统计数据
- 仅在2018年下半年,Snyk 为其用户打开了超过 70000 个 PR,以修复其项目中的漏洞
- CVE/NVD 和公共漏洞数据库缺失了许多漏洞,仅占 Snyk 跟踪到的漏洞数据的 60%
- 仅在2018年,Snyk 旗下的专业研究团队就披露了500个漏洞
完整报告下载地址 https://bit.ly/SoOSS2019
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
USB-IF 再度为 USB 3 改名,这次更难辨别了
USB Implementers Forum(USB-IF)宣布给 USB 3.0 和 USB 3.1 规格改名,将其归于 USB 3.2 规格下,继续给消费者制造识别上的困难。 这不是 UBS 3 系列规格第一次改名: 传输速度 5Gbps 的 USB 3.1 Gen 1 此前叫 USB 3.0,现在叫 USB 3.2 Gen 1 (USB 3.0 =>USB 3.2 Gen 1) 传输速度 10Gbps 的 USB 3.1 Gen 2 现在叫 USB 3.2 Gen 2(USB 3.1 Gen 2 =>USB 3.2 Gen 2) 曾经叫 USB 3.2 的规格现在叫 USB 3.2 Gen 2x2,因为它的传输速度二倍于 USB 3.2 Gen 2,达到 20Gbps (USB 3.2 => USB 3.2 Gen 2x2) 总而言之,此前的USB 3.0/3.1 接口现在都属于 USB 3.2 接口。 除此之外,每一种规格还有各自的商业术语: USB 3.2 Gen 1 叫 SuperSpeed USB USB 3.2 Gen 2 叫 SuperSpeed U...
- 下一篇
行业标准容器运行时 containerd 从 CNCF 毕业
28 日,CNCF 官网宣布 containerd 顺利毕业,这是继 Kubernetes、Prometheus、Envoy和CoreDNS,第五个从 CNCF 毕业的项目。 containerd 是一个行业标准的容器运行时,使用 runC 根据 OCI 规范运行容器,其强调简单性、健壮性和可移植性。它可用作 Linux 和 Windows 的守护进程,管理其主机系统的完整容器生命周期。 containerd 旨在嵌入到更大的系统中,而不是由开发人员或最终用户直接使用。 CNCF 项目毕业标准中关于毕业条件是这样定义的: 有来自至少两个机构的提交者。 已经实现并维护了核心基础结构计划(CII)的最佳实践徽章。 采用 CNCF 行为准则。 明确定义项目治理和提交者流程。这最好在 GOVERNANCE.md 文件中进行,并引用 OWNERS.md 文件显示当前和荣誉提交者。 至少在主要仓库提供项目采用者的公开列表(例如,ADOPTERS.md 文件或项目网站上的徽标)。 获得 TOC 的绝对多数选票进入毕业阶段。如果项目能够表现出足够的成熟度,项目可以尝试直接从沙箱移动到毕业。项目可以无限...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16