2022年软件安全发展态势一瞥.docx

上传人:lao****ou 文档编号:72820 上传时间:2023-01-29 格式:DOCX 页数:24 大小:2.20MB
下载 相关 举报
2022年软件安全发展态势一瞥.docx_第1页
第1页 / 共24页
2022年软件安全发展态势一瞥.docx_第2页
第2页 / 共24页
2022年软件安全发展态势一瞥.docx_第3页
第3页 / 共24页
2022年软件安全发展态势一瞥.docx_第4页
第4页 / 共24页
2022年软件安全发展态势一瞥.docx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2022年软件安全发展态势一瞥.docx》由会员分享,可在线阅读,更多相关《2022年软件安全发展态势一瞥.docx(24页珍藏版)》请在第一文库网上搜索。

1、2022年软件安全发展态势一瞥目录前言1概述11 .近十年软件开发发展变化21.1. 经过安全扫描的应用程序数量是十年前的三倍多31.2. 微服务逐渐成为主流51.2.1.概述51.2.2.JavaScript71.2.3.PYTHON和.NET71.2.4.C+与Java71.2.5.Scala71.2.6.Go71. 2.7.ANDROID71.3. 安全扫描频次比十年前增加了20倍81.4. 三方库的安全性依旧堪忧92 .静态安全测试(SAST)、动态安全测试(DAST)和SCA对比142.1. 缺陷发现能力对比142.2. 缺陷修复速度对比172.3. 缺陷修复能力对比193 .总结1

2、9刖百近期,国外知名的专注于应用安全的Veracode公司发布了他们一年一度的软件安全报告至今已连续发布了12版。在最新的报告中(第12版),Veracode公司深入观察了软件开发和软件安全近十年的发展状况,提供了详实的数据分析和对比结果,并结合当下主流的应用缺陷扫描能力横向对比给出了提高软件安全性的最佳实现路径。这对于持续关注国内外安全行业应用安全领域发展态势的同行来说,具有一定的借鉴意义。概述世界正变得比以往任何时候都更紧密地联系在一起。连接使我们的生活更轻松,但它也增加了风险。一个安全漏洞可能会产生多米诺骨牌效应,使软件在全球范围内都受到攻击,例如去年年末爆发的Log4j高危漏洞以及近期

3、出现的SpringFramework远程执行代码(CVE-2022-22965),几乎影响了全球绝大多数软件。但是,塑造了安全格局的不仅仅是增强的连接性,还有超强的竞争力和不断创新的需求。为了加快速度,许多软件开发团队已经转向本地云技术、微服务架构和开源代码来加速和扩展他们的努力。此外,软件开发团队已经采用了敏捷方法,并且在开发过程中尽可能自动化更多的步骤。虽然这种演变提高了软件开发生命周期的速度,但也带来了新的复杂性和风险。在我们的第12版软件安全状况报告中,我们将在Cyentia研究所的帮助下探讨这些趋势,以评估软件安全状况是如何继续发展的。我们的目标是帮助业内同行对软件安全计划作出明智的

4、决定,以便各位同行可以最小化风险,并满足网络安全条例的要求,如美国白宫在2021年5月12日发布的关于改善国家网络安全行政命令中所列出的要求。2021年5月,拜登政府发布了一项关于网络安全的行政命令,概述了向美国政府销售软件的供应商的新安全要求。这些要求包括软件开发过程中的安全测试以及正在使用的开源库的物料清单,因此,已知的漏洞将被披露,并且能够在将来进行跟踪。虽然该命令仅影响短期内向联邦政府销售软件的公司,但它也需要制定一个试点计划,最终将改变所有软件供应商的安全要求。”商业软件的开发往往缺乏透明度,对软件抵御攻击的能力缺乏足够的重视,并且缺乏防止恶意行为者篡改的适当控制。现在迫切需要实施更

5、加严格和可预测的机制,以确保产品的安全运行,并且如预期的那样。“关键软件”一一执行对信任至关重要的功能(例如提供或要求提高系统特权或直接访问网络和计算资源)的软件一一的安全性和完整性是一个特别令人关切的问题。因此,联邦政府必须采取行动迅速提高软件供应链的安全性和完整性,优先处理关键软件。”1 .近十年软件开发发展变化与去年类似,我们查看了活跃应用程序的整个历史,而不仅仅是查看一年内与应用程序相关的活动。通过这样做,我们可以清楚的了解到应用程序的整个生命周期,从而得到更精确的度量和观察结果。除了回顾过去,我们还通过考虑可能有助于提高应用程序安全性的最佳实践来设想未来如何增强软件安全性。Verac

6、ode用大量的数据量化了很多关于应用程序安全性状况的发展变化,近十年是互联网高速发展的时期,我们需要后退一步,审视过去,展望未来,看看哪些方面是稳定的,哪些方面发生了变化,并试图理解哪些原则经受住了时间的考验,哪些发生了动摇。首先,我们来看看人们是如何使用软件分析工具的,以及这些年来它们是如何改变的。我们将看到这些扫描反映出的发展趋势。我们也将看到开源软件是如何继续成为大多数应用程序不可或缺的一部分。其次,我们将分析软件的缺陷,看看这些软件开发趋势是如何在引入软件的漏洞过程中表现出来的。接下来,我们将检查漏洞是如何修复的,以及开发人员是否在修复漏洞方面做得更好。最后,我们将展望未来,思考开发者

7、究竟能做些什么才能编写出更安全的软件。特别是,我们将看到开发人员花时间学习如何修复漏洞的简单行为有助于更快地修复漏洞,并有助于防止将来出现安全漏洞。1.1. 经过安全扫描的应用程序数量是十年前的三倍多图1扫描的应用程序数量相比于十年前增加了三倍从上图中,我们可以看到经过安全扫描的应用程序数量比以往任何时候都多。这种增长不仅仅是因为有更多的组织机构产生。去年,大多数组织平均每季度创建超过17个扫描应用程序,而十年前只有大约5个。其可能原因有以下两点:一是组织正在创建更小、更模块化的应用程序;二是组织正在将他们的安全扫描范围扩展到低危的应用程序。组织创建新应用程序的平均数量200820092010

8、20112013201420152016201720182019202020212022使用Vearcode安全产品的组织数量10 。200 ,50020VeryHigh%O10%5 O7 5应用程序风睑程度占比Medium201020112012201320142015201620172018201920202021从上图中可以看到应用程序的风险程度的分布一直相当稳定。在过去的10VeryLow年里,这种倾斜是非常一致的,大多数应用程序的风险程度都是“高”或“非常高”,只有少数应用程序的风险程度是“低”或“非常低”。1.2. 微服务逐渐成为主流1.3. 1.概述微服务一种是松散耦合的应用程序

9、的集合,通常有一个小的代码库,通过API进行通信。微服务的优势在于,如果更改一个部分不太可能影响其他部分,则可以更容易地处理应用程序的各个部分。使用多种编程语言的软件数量占比开发人员对微服务的感兴趣程度50 57 5 2%30第24页共20页20092010201120122013201420152016201720182019202020212022应用程序数量.1播10100从上图可以看出,大约在2018年之前,使用多种编程语言的应用程序数量缓慢但稳定地增长,达到峰值(不包括异常值),约20%的应用程序使用多种编程语言。但是,随着微服务的概念越来越受欢迎,这一数字出现了急剧下降,目前只有不

10、到5%的应用程序使用多种语言。在2018年,大约有20%的应用程序包含了多种软件开发编程语言。今年,只有不到5%的应用使用了多种编程语言,这意味着软件开发人员将转向更小的、只有一种编程语言的应用或微服务。图2使用不同编程语言开发的软件代码库平均大小与首次静态扫描的时间关系从上图可以看出,对于微服务型架构,我们认为可以用多种编程语言编写的应用程序的规模肯定会有所下降,这一趋势是好事情。使用JavaScript、Python和.NET开发的应用程序数量都在下降,这表明软件开发人员更趋向于使用微服务,其他几种常见编程语言的情况如下:1.2.2.JavaScript随着时间的推移,JavaScript

11、应用程序变得越来越小,这可能是因为包含了更加多样化和健壮的库生态系统1.2.3.PYTHON和.NETPython和.NET规模有所减少,但这可能更多地只是均值回归,而不是真实趋势1.2.4.C+与Java同时,使用C+和Java等更为成熟的语言编写的应用程序在过去几年中保持着差不多的大小1.2.5.Scala与其更重量级的教父Java相比,Scala应用程序(未展示图表)的规模有所下降,Scala的受欢迎程度可能与不同的架构目标有关。1.2.6.Go有趣的是,Go(未展示图表)是一种通常与微服务相关的语言,实际上已经看到了应用程序大小的增加1.2.7.ANDROID在AndroidN发布之前

12、,Android应用程序的规模越来越大,而AndroidN改用了OpenJDK。这使得应用程序的规模大大缩小,随后又出现了缓慢而稳定的增长。我们不认为这是一种趋势,但很高兴看到软件生态系统中的重大事件在数据中得到验证。1.3. 安全扫描频次比十年前增加了20倍有人说“软件正在吞噬世界”,也有人说“敏捷正在吞噬软件世界”这可能也是对的。持续测试和集成(包括对管道进行安全扫描)正在成为一种规范,我们可以从开发人员扫描其应用程序的频率中看到这一点。十年前,开发人员平均每年扫描两到三次。现在,大多数开发人员每天会进行静态扫描,并且每周进行动态扫描。软件组合分析(SCA)扫描也是至少每周进行一次。在软件

13、生命周期中,你越早发现问题,你就越有可能在问题变得更大之前迅速解决它们。手动测试峥态测试动态测试20102015202020182020201020152020201020152020不同扫描类型的平均扫描时间1天1k安全扫描日期包括管道安全扫描在内的持续测试和集成正在成为常态。十年前,应用程序每年参与安全扫描两三次。而现在,90%的应用程序每周参与安全扫描一次以上,其中大多数每周扫描三次。持续集成模式的部分优势在于能够轻松地向管道中添加新的组件。静态测试是必须的。动态测试的使用也在不断增长,而且由于软件开发人员越来越意识到开源软件固有的潜在风险,SCA的使用也在不断增长。31%近四年,使用多

14、种安全扫描类型的组织数量增加了31%从2018年到2021年,我们看到采用多种安全扫描类型组织增加了31%,其中很大一部分组织使用了完整的静态、动态和SCA扫描套件。1.4. 三方库的安全性依旧堪忧大多数应用程序(取决于编程语言)具有一种杠铃效应,几乎完全由第三方代码或几乎完全由内部代码组成。当然也有一些例外。Java的OOP设计哲学将类粘合在一起,直到你的代码开始看起来像一个正常运行的应用程序,这使代码重用变得轻而易举。当有完美的第三方类可以免费使用时,为什么还要编写自己的类呢?结果就是,Java应用程序中的大部分代码都来自第三方,并且在过去几年中在这个方向上发展得更加迅猛。100%50%0%100%JavaScriptPython0%PHP100%50%201920202021图3不同编程语言所开发的软件中第三方库的占比情况.NETJavaThredin$.Ta$ksAjacbeCommonsCodecGuavaMck$on-annoutionsJackson*cortjackson*daubindorsphngfrafneworicspnng*contextSLF4JAPIModuleSpringAOPS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服