在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
根据Veracode最新发布的年度软件安全现状报告,全球所有应用软件中,70%都包含至少一个开源代码库导致的安全缺陷/漏洞,其中Swift代码库的软件缺陷密度(每个代码库的缺陷数量)已经超过了web安全人士的“衣食父母”——PHP。
Veracode的软件安全状况报告指出,这些开源库(免费的集中式代码存储库,为开发人员提供现成的应用程序“构建块”)不仅无处不在,而且存在风险。
分析检查了85,000个应用程序中的351,000个外部库,发现开源库非常普遍。例如,大多数JavaScript应用程序包含数百个开源库,有些甚至包含1000多个不同的库。此外,大多数语言都具有相同的核心库集。
报告说:“特别是JavaScript和PHP,几乎在每个应用程序中都有几个核心库。”
与其他软件一样,这些库也有bug。问题在于,由于代码复用,单个bug可能会影响数百个应用程序。
Veracode表示:“在当今几乎所有应用程序中,开源库都很重要,它使开发人员可以通过快速添加基本功能来加快开发进度。” “实际上,如果没有这些库,使用软件进行创新几乎是不可能的。但是,缺乏如何正确使用开源库及必要的风险意识已经成为一个严重的问题。”
根据报告,开源代码库中bug最多的四个主要语言是:Swift、.NET、Go和PHP(上图)。
其中Swift的bug密度(7个)高居榜首,而PHP漏洞则分布最广(覆盖近60%的代码库)。由于Swift是Apple生态系统的专业开发语言,因此虽然其bug密度很高,但是分布并不算广泛。
.NET的bug分布百分比在这四个库中最低(不到10%),但其代码库的数量是Swift的17倍以上。
Go包含bug的库比例很高,接近PHP,但是平均每个代码库的bug总数较低。与Go相比,PHP的每代码库bug数量更高(6.5),bug密度是后者的两倍。
不过在可利用PoC数量上,Swift的表现不算最糟糕,PHP依然是无可争议的“王者”:
报告还发现跨站点脚本(XSS)是开源库中最常见的漏洞类别,占比接近30%其次是不安全的反序列化(23.5%)和访问控制入侵(20.3%),如下图所示:
“不安全的反序列化(Insecure Deserialization)过去是自主开发应用程序中相对罕见的缺陷,其排名快速上升令人不安,因为这类缺陷可能导致执行意外的代码路径,这意味着我们不打算使用的库的某些部分也可能会插入到其应用程序的执行路径中。”
数据还显示,由于级联的相互依赖关系,大多数有缺陷的库最终都以代码形式间接存在,因为开发人员使用的开源库库很可能调用了另一个开源库的代码。
“应用程序中47%的有缺陷库都是可传递的,换句话说,它们不是由开发人员直接引入的,而是由第一个被调用的库引入的(42%被直接引入,12%被间接引入)。这意味着开发人员正在引入比预期更多的代码,而且常常是有bug的代码。”
好消息是,大多数最严重的程序漏洞和bug都可通过更新解决。
“仅通过较小的版本更新就可以解决应用程序中大多数被引入的bug(将近75%);根据Veracode报告,bug修补通常不需要对主程序库进行升级,而且超过90%的OWASP TOP 10榜单中最严重的bug,今天都有可用补丁或更新。”
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
哪里有免费的网络安全学习网站?
据网络相关报道,2019年网络安全人才缺口可能达到150万。同时由于云计算、大数据、移动、IOT等新兴领域的客观要求。网络安全从业人员的薪资水平也正在稳步的提升。因此吸引大量的年轻人加入到网络安全学习的队伍中。那目前网络安全学习有哪些比较好的免费网站呢?
11869
2019-06-06 15:55:58
计算机培训机构排名有参考价值吗?IT培训机构排名可信吗?
计算机培训机构排名有参考价值吗?不同的IT计算机培训机构之间差别很大,有的甚至是天壤之别。IT计算培训机构实力排名主要由IT培训机构的教学实力、师资情况、就业率以及学员口碑等诸多因素决定。对于计算机培训机构排名不能否定完全没有参考意义。
6684
2019-08-06 18:45:24
自学iOS入门需要什么步骤?
自学iOS入门需要什么步骤?小编认为学习最快的方法就是先简单了解OC,懂语法,然后接下来是学习iOS基础,毕竟基础搞好,才能办成大楼,所以跟随小编一起从入门开始吧。
3662
2020-04-02 10:43:18
2020年11月编程语言排行:C、Python、Java
2020年11月编程语言排行:C、Python、Java,9-20名也有不同程度的变化:R语言、Perl 和 Go 语言名次都有大幅提升,分别为9名、12名和13名;Swift、Ruby、Delphl/Object Pascal 和 Objective-C 分别下降为14名、15名、18名和19名;Transact-SQL 上升12名,进入 TOP 20。
3724
2020-11-09 11:40:38
语言识别器需要重点学习哪些知识点?
语言识别器需要重点学习哪些知识点?语言识别器学习以语种识别为任务,掌握NLP模型搭建的标准化流程与常用方法,结合机器学习模型完成对文本数据的识别与搭建任务,常应用于机器翻译,智能对话等场景中。
2163
2022-02-16 11:08:21
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息