当前位置: 首页 > 科技观察

用哪种语言写的应用漏洞最严重?六大主流语言代码漏洞分析报告出炉

时间:2023-03-19 15:51:02 科技观察

用哪种语言编写的应用程序最容易受到攻击?发布六大语言代码漏洞分析报告重大安全漏洞。静态代码分析安全公司Veracode最近发布了有关这些语言漏洞类型的数据,这是该公司在扫描130,000个应用程序的安全问题后报告的。该公司研究了使用.NET、C++、Java、JavaScript、PHP或Python编写的应用程序的漏洞趋势。这些数据整合在Veracode的《软件安全状态第 11 卷(State of Software Security Volume 11)》报告中:https://www.veracode.com/sites/default/files/pdf/resources/ipapers/security-flaw-heatmap/index.html。来自130,000个应用程序的Veracode扫描的漏洞类型数据。对于最常用的前端开发语言JavaScript,Veracode发现31.5%的应用程序至少存在一个跨站点脚本(XSS)漏洞,而74.6%的用PHP编写的应用程序至少存在一个XSS漏洞。此外,71%的PHP应用程序存在加密问题。对于用.NET编写的应用程序,最重要的问题是信息泄漏——62.8%的.NET应用程序存在此问题。C++应用最大的问题是错误处理,占66.5%。在Java应用中,最受关注的是CRLF注入(回车或换行注入),占受访应用的64.4%。Python应用程序中最严重的安全问题与加密有关,在接受调查的应用程序中占35%。每种语言的漏洞严重程度也有很大差异。Veracode发现59%用C++编写的应用程序存在非常严重的漏洞;对于PHP,这个数字是52%。然而,只有9.6%用Ja??vaScript编写的应用程序存在非常严重的漏洞,而Java应用程序的这一比例为24%。Veracode首席研究官ChrisEng解释了为什么不同的语言漏洞趋势不同,以及如何修复它们以避免严重损害。“从整体数据来看,我们的行业在过去十年中未能消除单一的漏洞类别,”Eng说。“没有问题完全消失。很多事情都会波动,但看看平均值,您会发现这些数字比任何其他指标都更能反映语言选择和语言流行度的变化。我们看到C++的常见缓冲区溢出问题有所减少,这不是因为开发人员更擅长处理这些问题,而是因为使用C++进行开发的人越来越少。”另一方面,影响JavaScript和Python的问题越来越多,因为这两种语言现在非常流行。在企业层面,Java和.NET仍然很受欢迎。PHP仍然是Web应用程序开发中最常用的脚本语言之一,但Eng指出PHP中的漏洞数量较多,因为该语言提供了大量不安全的原语以及大量错误利用它们的方法。“.NET是最早试图阻止开发人员搞砸事情的语言之一,因为他们没有三思而后行,”Eng解释道。“与PHP相比,您会发现许多API具有更安全的默认值,可以使跨站点脚本错误或SQL注入错误变得更加困难。在PHP中,这些错误几乎是默认的——除非您碰巧使用了更安全的现代框架。PHP可能会出很多问题。”Veracode在其分析的JavaScript应用程序中发现的漏洞要少得多,但即使在庞大的npm生态系统中使用更安全的JavaScript、JavaScript和节点默认值。.js开源软件库是一个潜在的薄弱环节。“即使你可以修复你编写的代码中的所有错误,你使用的第三方软件库仍然会引入很多变量。”Eng说,“打补丁其实没有你想象的那么好。现在的趋势是开发者会在需要的时候下载这些存储库的最新版本,然后他们永远不会更新它们,除非存储库中添加了新的功能。“工程和产品团队应如何最大限度地减少修补关键应用程序?麻烦和成本?Eng的建议是保持更新并清楚地跟踪构建应用程序的技术和安全成本如何随时间变化。在某些时候,应用程序需要修复或打补丁,包括语言更新和关键软件库的补丁。“如果我现在使用的是4.5而4.6已经发布,我可以应用该补丁,而几乎没有或没有功能影响。开源存储库不会在次要版本更新中对存储库进行重大更改,”Eng说。调整。但如果你用的是2.0版本,那你就得更新到4.6版本,这个过程会很痛苦”。对于使用庞大的npm生态系统的JavaScript来说,更新软件库的问题可能会更严重一些,但是Java和Python都有自己庞大的生态系统:Maven和PyPI。Eng说,平均每个JavaScript应用程序大约有400个依赖项。如果您查看第90个百分位数的JavaScript应用程序,它们可能有1000或2000个依赖项。应用程序安全公司Snyk解释说,大多数影响JavaScript、Ruby、Java、PHP和Python的安全漏洞都源于项目中加载的主要组件之间的间接依赖关系。另一点是某些JavaScript软件库非常流行,以至于多达80%-90%的所有JavaScript应用程序都在使用它们。“只要这些包中的一个存在漏洞,你就会继承这种风险。而且这不仅仅是一种安全风险,”Eng说,他指的是JavaScript库发生的事情left-pad:2016开发人员将存储库从npm中移出在争论之后。“它从GitHub上消失了,然后突然间,三分之二的互联网崩溃了,因为他们都依赖这个几行代码的软件库来确定一个数字是否被左补零。”原文链接:https://www.zdnet.com/article/programming-language-security-these-are-the-worst-bugs-for-each-top-language/【本文为专栏原文翻译】机器之心》,微信公众号“机器之心(id:almosthuman2014)”]点此阅读作者更多好文