哪种编程语言最安全?哪种最不安全?

2019-06-19 11,062

WhiteSource对C、C++、Java、PHP、python、JS、Ruby等7种开源编程语言的安全性。

WhiteSource是一家研究开源软件安全的公司,该公司对7种开源编程语言的安全性通过定性和定量两种方式进行了分析。                       

摘要

C语言的漏洞数量占所有报告的开源安全漏洞的50%。但C语言也是历史最长、代码量最多、使用最广泛的语言之一,是许多基础设施的基础。

这些开源语言中最常见的漏洞分别是XSS,输入有效性验证,权限、特权和访问控制,信息泄露。

使用自动化工具和赏金计划进行漏洞扫描革新了整个行业,2017年报告的漏洞量大幅增长。

过去两年间虽然漏洞的数量增长了,但是大多数语言中暴露的漏洞的严重程度降低了。

概览

研究人员的数据来源是WhiteSource的综合数据库,有点类似NVD数据库。该数据库中包含200多种语言,研究人员主要关注过去10年最常用的7种编程语言的安全性分别是,C、C++、Java、PHP、python、JS、Ruby。

image.png

一种语言比另外一种安全吗?

根据数据库中的数据,C语言的漏洞数量是这7种语言中最多的,是不是可以说C语言是最不安全的呢?NO。首先,C语言是许多编程入门者最开始使用的语言,使用较多,因此漏洞较多。其次,需要考虑到的是C语言的历史较为悠久,很多安全和平台的核心或底层代码都使用的是C语言。

image.png


编程语言和漏洞数量的时间关系

对所有语言来说,并没有一个持续性地编程语言和被报告的漏洞之间的关系问题,但在2017年被报告的漏洞数量有明显增长。其中一个原因是开源的流行性以及人们开始关注开源组件的安全漏洞问题。另一个原因是自动化工具和漏洞奖励计划的大规模资金投入进一步促进了开源软件漏洞的报告数量。

image.png

漏洞严重程度与时间的关系

2017年被报告的漏洞数量是最多的,但是除了JS和PHP外,大多数语言中高危漏洞的比率减少了。其中一个原因可能是自动化工具在安全研究人员中的应用。因为这类自动化工具一般来说都比较简单,所以无法发现复杂和高危的漏洞,因此发现的大多数漏洞严重程度都不高。


不同编程语言的安全漏洞(CWE)

研究人员通过分析不同语言的CWE漏洞数量来分析编程语言的安全性。研究人员发现每种语言的top 3的CWE漏洞中,XSS和输入有效性验证漏洞占了70%。

除了XSS和输入有效性验证漏洞外,其他CWE有信息泄露(CWE-200)、路径遍历(CWE-22)、权限、特权和访问控制(CWE-264),不合适的访问控制(CWE-284)。

image.pngimage.png

更多参见:https://www.whitesourcesoftware.com/most-secure-programming-languages/


本文作者:ang010ela

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/107543.html

Tags:
评论  (1)
快来写下你的想法吧!

ang010ela

文章数:56 积分: 711

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号