广泛使用的代码负责大多数开源漏洞

检查编程语言安全的新报告发现,自2009年以来的开源项目中发现的所有漏洞中的近50%被编码为C.

WhiteCource的研究表明,在过去10年中,在过去10年中出现了46.9%的开源漏洞是通过C开发的。

PHP是第二个最不安全的语言,占漏洞的16.7%,Java排名第三,11.4%。

该列表由JavaScript完成,占开源项目漏洞的10.2%;Python(5.45%);C ++(5.23%);和红宝石(4.25%)。

根据那个报告- 每年近2000 000。

其中的原因包括在开源组件中提高安全意识,随着开源项目的普及越来越普遍。

在C中找到的顶级漏洞是缓冲错误和输入验证,报告读取,虽然自2009年以来,数字既涨幅和下跌,但它仍然是最不安全的语言。

在C的防守中,应该指出的是,这是列表中最古老(和最广泛)的编程语言。

虽然JavaScript是第三名,但它是唯一一个在过去10年中看到报告漏洞一致的唯一语言。仅在2018年,报告的实例增加了50%以上。

该报告将其归因于JavaScript的流行程度,以及近年来已被广泛应用于后端发展的事实。

在发布报告后,每日SWbeplay2018官网IG.Whiteource副总裁David Habusha聊天,深入潜入数字的意思。

您认为语言之间的漏洞差异是什么?是由于语言设计和功能?是否有一些语言吸引或多或少经验丰富的开发人员?还是还有其他原因?

David Habusha:语言之间漏洞的差异有几个原因。

首先,我们需要考虑一些,如C,已经超过了其他人,并且在那段时间已经写了大量的代码。更多的代码行意味着更多的漏洞。

某些语言在他们身后有更多的积极社区,投资很多时间来寻找和修复安全问题。某些语言更容易自动扫描问题,而其他语言则需要更多手动工作。

某些语言是一个年轻人,更不经验丰富的开发人员,而一些语言则需要更多经验丰富的软件工程师。

许多程序员使用框架或Django等框架来协助他们的编码。您认为框架之间的安全性会有所不同吗?

DH:rails,django,spring,struts等流行框架,以及其他是黑客的最受欢迎的目标,因为他们的大用户银行和他们的活跃社区。

许多这些框架包括依赖开源包,也是黑客的目标。

我们已经分析了每个框架的漏洞的分布(例如Struts与Spring),大多数这些框架包括面向互联网的前端组件,具有大的攻击表面,使它们非常暴露,使得它们相对容易利用,因此吸引了一个很多焦点。

框架在他们支持的语言中彼此不同,维护它们的社区,自动化工具及其安全漏洞。

高调项目具有共同点的一件事是因为它们保持良好,有更多的漏洞以及更多的修复。

C与您研究中的其他语言完全不同,为程序员提供更多的权力和增加的错误能力。你为什么选择在比较中包含它?

DH:C是我们使用的软件基础架构的许多软件基础架构的背后,推动了Linux内核,openssl和PHP等项目,只需几个。添加到这是它周围的长度和积极维护它的大型开源社区。

考虑到这些因素,以及多年来它的漏洞数量,我们无法想象在不包括C的情况下创建一个流行的编程语言列表。

为什么你认为JavaScript看到漏洞的最大增加?

DH:JavaScript在过去几年中一直在持续攀登,并且最近也在后端开发人员中变得更受欢迎。

我们发现的最常见的CWe,我们找到了JS,加密问题(CWE-310)和路径遍历(CWE-22),是异常的,并且是JS独有的。我们发现许多这些漏洞来自几乎没有使用,维护或下载的项目。

这些类型的CVES很可能在增加JS漏洞的数量方面有很大的部分。这些类型的漏洞是相对容易的,并且他们增加了披露漏洞的总数。

涉及披露的安全漏洞数量增加的另一个因素是使用自动化工具来发现漏洞。

这并不意味着js变得不那么安全,而是它有更多的眼球研究它。

最后,每年漏洞的漏洞似乎在2017年飙升,去年下降。有没有解释这个?

DH:2017年的飙升可以通过越来越重要的对开源安全漏洞而越来越重要的解释,导致更多资源投入安全研究。

此外,资金增加BUG赏金程序以及自动化工具的使用也有助于披露的开源漏洞的数量的增加。