写点什么

最新报告:开源漏洞 2019 年增长近 50%,C 语言项目漏洞最多

  • 2020-03-18
  • 本文字数:1599 字

    阅读完需:约 5 分钟

最新报告:开源漏洞2019年增长近50%,C语言项目漏洞最多


近日,安全公司 WhiteSource 发布了一份“开源安全年度报告”。报告表明,2019 年,公开披露的开源安全漏洞数量再创新高,总数为 6100 个。与 2018 年相比,开源安全漏洞的数量增长近 50%。同时,报告还表明代码漏洞最多的开源项目是用 C 语言编写的。并且,报告发现,2019 年最常见的安全漏洞类型是跨站脚本攻击、输入验证安全漏洞、缓冲区错误和越界读取以及信息泄露。


数据表明,2009 年,公开披露的开源安全漏洞不足 1000 个。


但是,随着企业对开源软件的使用增多和人们对开源安全漏洞的关注,公开披露的开源安全漏洞数量将不断增加。在这份名为《The State of Open Source Security Vulnerabilities》的研究报告中,WhiteSource 写道,“当今,开源组件已经成为现代软件应用的一部分。随着开源软件的使用不断增长,人们开始更多地关注开源软件安全研究。”

“一路飙升”的开源安全漏洞

在 2014 年,开源安全出现转折点。这一年,Codenomicon 和谷歌安全部门的研究人员披露 OpenSSL 漏洞,该漏洞可以让攻击者获得服务器上 64K 内存中的数据内容。该漏洞被国内称为“OpenSSL 心脏出血漏洞”,因其破坏性之大和影响范围之广,堪称网络安全里程碑事件。


这件事不仅给科技行业敲响了警钟,而且让科技公司开始采取行动,比如为修复类似的重大漏洞,业内十二家顶级科技企业加入Linux基金会基础架构联盟(CII),包括亚马逊、谷歌、IBM、Intel、微软和思科等。


据 WhiteSource 的报告显示,2015 年和 2016 年,每年开源安全漏洞的数量不超过 2000,但是在 2017 年和 2018 年,开源安全漏洞的数量一路飙升,超过 4000。



2019 年,开源安全的漏洞超过 6000 个,突破历史记录。


不过,好消息是超过 85%的开源安全漏洞在披露时已经有修复程序。


“过去几年,科技巨头在开源上加大投资,从而能更好地管理开源项目和提升安全性。同时,社区也在不断致力于安全研究,及时发布针对开源安全漏洞的修复版本。”WhiteSource 表示。


然而,有些用户并不知道这些修复程序,因为已知的开源漏洞只有 84%提交到 NVD(美国国家漏洞数据库)。


报告还指出:遗憾的是,开源软件的漏洞并没有集中在一处发布,而是分散在数百种资源中。有时,索引的编制并不正确,导致搜索特定数据成为一项艰巨挑战


据悉,一部分新发现的安全漏洞来自谷歌开源模糊测试工具,比如OSS-Fuzz,它在 2 年时间找到 9000 个漏洞。仅在 2020 年 1 月,它又在 250 个开源项目中发现16000 个漏洞。


去年,WhiteSource 和 GitHub 合作,将其漏洞数据库带到 GitHub,为其安全警报提供服务。针对那些由 PHP、Java、Python、.NET、JavaScript 和 Ruby 编写的开源项目,GitHub 会扫描开源项目来发现潜在的安全漏洞。目前,它已经帮助开发者找到和修复了数百万漏洞


另外,GitHub 在 2019 年成立安全实验室(Security Lab),汇聚安全研究人员查找并修复开源项目中的安全漏洞。并且,GitHub 成为授权 CVE 编号发布机构,项目维护者可以和安全专家一起研究安全修复程序,并直接从 GitHub 上申请 CVE 编号,并披露有关漏洞的详细信息。


尽管 GitHub 不断提升安全性,但是 WhiteSource 指出,开发者可能被发现的大量安全漏洞所“淹没”,应接不暇。

最不安全的编程语言

WhiteSource 还从编程语言角度对存在安全漏洞的开源项目进行了分析。研究发现,安全漏洞最多的开源项目是用 C 语言编写的,占比 30%。


这家公司解释,C 语言占比之高是因为有太多的开源项目是用它编写。



第二是 PHP。尽管 PHP 在开发者心中的受欢迎度大不如前,但用 PHP 编写的代码占开源安全漏洞的 27%,与 10 年前的 15%相比,进一步上升。


相比而言,用 Python 编写的代码占开源安全漏洞的 5%,这与 10 年前的 6%相比有所下降。


此外,报告还表明,2019 年,最常见的安全漏洞类型是 CSS(跨站脚本攻击)、输入验证安全漏洞、缓冲区错误、越界读取和信息泄露。其中,跨站脚本攻击是 Java、JavaScript、PHP、Python 和 Ruby 中最常见的漏洞类型。


2020-03-18 07:003044
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 363.9 次阅读, 收获喜欢 1802 次。

关注

评论

发布
暂无评论
发现更多内容

面试官:如何回答消息队列的丢失、重复与积压问题

Java 程序员 架构 面试

不是吧?阿里“百万级”性能优化小册居然能让系统运行得这么快

Java 编程 程序员 性能优化

带你认识世界上第一个以商业为中心的元宇宙 Highstreet

devpoint

区块链 元宇宙 10月月更

Generic Type Variance in Dart

Think

flutter dart 泛型

设计原则学习笔记

风翱

设计原则 10月月更

架构实战营模块6课后作业 拆分电商系统为微服务

apple

普通本科毕业一年,刷完这1000道JAVA面试题,成功逆袭上岸

Java 编程 程序员 面试 大厂面试

官方线索|Bilibili1024程序员节

搬砖人

1024我在现场

从华为推出仓颉编程语言引发的对编程语言的思考

轻口味

编程语言 10月月更

前端应用部署k8s的平滑发布问题

小江

k8s 大前端 发布流程

k8s replicaset controller源码分析(2)-核心处理逻辑分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

k8s replicaset controller源码分析(3)-expectations机制分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

京东架构师珍藏版:redis深度笔记(全彩版)全篇精华,细节满满

Java 程序员 架构 面试 rediis

又真香了!到底是怎样的JAVA面试文档,拿到这么多offer

Java 编程 程序员 面试

架构实战营 - 模块六作业

en

#架构实战营

架构实战营模块一作业

spark99

架构实战营

Spring 5系统架构

Tom弹架构

Java spring 架构

Spring版本命名规则

Tom弹架构

Java spring 架构

Vue进阶(幺肆捌):Vuex 辅助函数详解

No Silver Bullet

Vue 辅助函数 10月月更

架构实战营 - 模块六作业

Alex.Wu

拆分电商系统微服务

毛先生

在线文本去重统计工具

入门小站

工具

Prometheus 内置函数(二)

耳东@Erdong

Prometheus PromQL 10月月更

分布式事务开山之作——《深入理解分布式事务:原理与实战》草图曝光!!

冰河

数据库 分布式 分布式事务 微服务 数据一致性

在 Vue3中使用Fabric.js实现渐变(Gradient)效果,包括径向渐变radial

德育处主任

JavaScript 大前端 vite Vue3 FabricJS

linux防止文件和目录被意外删除或修改

入门小站

Linux

架构训练营第一模块作业

最后的风之子

「架构实战营」

Go 中如何使用 Interfaces

baiyutang

golang 10月月更

weblogic 报 java.lang.OutOfMemoryError:PermGen space

看山

Java 10月月更

架构实战训练营|课后作业|模块 6

Frode

「架构实战营」

ARouter 拦截器之多 module 独立运行

逆锋起笔

android 组件化 arouter

最新报告:开源漏洞2019年增长近50%,C语言项目漏洞最多_安全_万佳_InfoQ精选文章