导读:我们用最新的开源代码漏洞分析报告看,比较哪一种编程语言最安全。
开源软件的漏洞一直存在,目前还在不断增长。软件安全公司WhiteSource的知识和研究小组负责人Tsaela Pinto在最新的《开源软件漏洞状态》报告中指出,2019年有6100个漏洞,而2018年为4100个,同比上升了50%以上。
研究报告还说明了哪些语言的漏洞最多,最常见的漏洞是什么,还告诉我们软件开发社区该怎样更好地构建应用程序。
2019年开源语言漏洞排行榜
在过去的一年,开源漏洞中最多的是跨站脚本(aka XSS或CWE-79),是流行编程语言中最常见的漏洞。
上面列出的语言,缓冲区错误位列第一,输入验证不当位列第二名。
通过上面的数据,会发现一个问题线索,这与软件开发社区有关。也就是说,有些漏洞是因为开发人员没有在代码中加入限制用户可执行的操作有关,从而破坏了Web应用程序的安全性。
在大多数情况,这些安全漏洞通常都是因为编码草率导致的结果。因此,这些突出的漏洞证明,回到编码的基本标准对安全至关重要。
各个语言的漏洞比率
这项报告还研究了开放源代码安全漏洞的分布,以及这些流行语言的变化情况。
C语言是报告漏洞最多的语言,占30%以上,这主要是因为C是最古老的语言之一,包括我们现在用的一些受欢迎的开源项目,如最大漏洞是在2018的Linux系统代码,还有如网络扫描程序Wireshark以及ImageMagick图形处理软件。
不管你是C的爱好者还是讨厌C的人,你都无法否认,没有其它语言能和C语言开发的代码竞争。
但是,让人惊奇和着迷的是,PHP给我们带来了很大的变化,从2009-2018的10年时间,从15%的漏洞比例上升到2019年的27%。
这给我们提出了两个问题:
第一,PHP最易受攻击的原因是什么;
第二,人们使用PHP的比例到底有多少?
根据2019年Tiobe编程语言排行榜,PHP因其易用性,软件开发能力有限的人也能轻松入门,如今正变得越来越流行。PHP似乎在安全性上交换了易用性。值得称道的是,PHP开发社区在发现漏洞方面变得越来越好,因此这种交换方案相信很快就会被废弃。
流行的应用程序如WordPress,Megento,Joomla,Drupal等都在使用PHP进行开发。
人们正在加强开源代码之安全
第三个问题是,为什么我们看到编程语言的漏洞在增加,从某种角度看到开源和应用程序开发的趋势。
随着代码的不断开发,开源社区中的点评也越来越多。人们需要考虑通过自动化工具来帮助发现更多漏洞,然后修复和及时发布issue。
如今开发者可以通过GitHub Security Lab(https://securitylab.github.com/)来直接提交漏洞报告。这样一来,发布漏洞的数量会持续增加,特别是有着大量代码库,但没有严格审查的语言中。
比如时间比较悠久的开源,如PHP的Wordpress、Drupal等,很多研发人员开始审查它们,人们发现代码中一直存在的漏洞,但尚未有人报告过。
没有最佳语言,只有更好的编码实践
从本质上来讲,安全漏洞就是一组漏洞,它们让应用程序和数据受到破坏,甚至更大的损失。当编码漏洞威胁到数据的可访问,完整和隐私性时,这些就属于安全漏洞的范畴。
在大多数情况下,这些漏洞是人们自身所犯的错误,只要人类继续编码,bug就会持续发生,漏洞也会持续出现在项目中。
无需再多考虑哪种编程语言最安全,没有一种语言是或达到,核心问题是我们如何管理软件中的漏洞,如何编写安全的代码。
第一位且最重要的是,开发者应该被教育并遵循代码最佳实践来进行编码,安全地编码。
我们会对某个人说代码写得烂,但这还不够,每个人的编码都要变得更好。
除了遵循编码最佳实践外,不仅是在上线部署之前,程序员还要仔细检查代码中的漏洞,包括上下文依赖,功能部分,除去程序本身的逻辑等等。在一些关键功能上,如果发现有严重的漏洞,则需要程序员断舍离,删除或替换,最好重新编写代码。
如果各位开发者知道在软件开发生命周期中各个阶段中测试的重要性,对于检测软件中的安全漏洞,也请遵循相同的原则~
作者:书生剑客
来源:21CTO
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/258209.html