当前位置: 首页 > news >正文

行业洞察 | 2024应用程序安全领域现状报告

在信息爆炸的时代,我们每天都在使用各种应用,从社交娱乐到工作学习,应用已经成为我们生活中不可或缺的一部分。然而,你是否知道,在这些便捷的背后,隐藏着巨大的安全风险?


近年来,应用安全风险剧增。从24年2月的ESXi勒索软件攻击事件到同年2月的GoAnywhere攻击再到3月的3CX软件供应链攻击,这些影响极大的应用安全攻击事件让我们不得不重新审视应用安全的重要性。

 什么是应用程序安全?

应用程序安全是指旨在保护应用程序免受可能危及其安全性的威胁的措施、方法和实践。这些威胁可能是恶意软件、注入攻击、软件漏洞或拒绝服务(DoS)等任何威胁。

应用程序安全的目标是识别、纠正和预防安全漏洞。这包括应用程序生命周期的所有阶段,从初始设计、开发、部署、维护到最终退役。

整体应用程序安全不仅涉及保护应用程序本身,还涉及确保应用程序运行的安全环境。它涉及保护应用程序与之交互的网络和数据库,确保传输中和静态数据的安全,以及维护应用程序代码的完整性。

 应用程序安全的重要性与日俱增

随着越来越多的企业将业务转移到网上,企业对安全应用程序的需求变得至关重要:

▪ 保护敏感数据:随着数据泄露事件的日益普遍,确保应用程序的安全比以往任何时候都更加重要。违规行为可能导致重大经济损失、声誉受损和客户信任丧失。

▪ 法规遵从性:许多行业都受到严格的数据保护法规的约束,未能保护组织的应用程序可能会导致巨额罚款和法律诉讼。

▪ 确保功能和正常运行时间:网络攻击可能会破坏组织的应用程序,导致停机和生产力损失。通过保护应用程序,可以确保它们继续顺利运行。

2024年应用程序安全攻击事件

ESXi勒索软件攻击

时间:2024年2月

攻击者:“ESXiArgs”组织

目标:运行VMware ESXi虚拟机监控程序的客户

影响:全球超过3800台服务器被感染,主要针对美国、加拿大、法国和德国等国家的组织

攻击方式:利用了一个两年前的漏洞(CVE-2021-21974),实现代码的远程执行,主要影响了旧版本的VMware ESXi中的OpenSLP服务

GoAnywhere攻击

时间:2024年2月

攻击者:未知

目标:Fortra的GoAnywhere文件传输平台

影响:导致300万会员的部分隐私信息被泄露,窃取了包括宝洁公司、多伦多市政府、皇冠度假村和数据安全公司Rubrik等大型组织的数据

攻击方式:利用GoAnywhere平台的一个零日漏洞,在易受攻击的系统上远程执行代码

3CX软件供应链攻击

时间:2024年3月

攻击者:未知

目标:3CX的VoIP电话系统应用程序

影响:超过600,000家组织的客户群受到影响,主要客户包括美国运通、麦当劳、可口可乐、NHS、丰田、宝马和本田等

攻击方式:利用3CX电话系统应用程序的漏洞进行攻击

Phorpiex僵尸网络与LockBit3勒索软件团伙的攻击

时间:2024年5月及之后

攻击者:Phorpiex僵尸网络和LockBit3勒索软件团伙

影响:Phorpiex僵尸网络被用于策划恶意垃圾邮件攻击,LockBit3勒索软件团伙在沉寂后卷土重来,其攻击数量占已发布勒索软件攻击的三分之一

攻击方式利用Phorpiex僵尸网络发送数百万封带有LockBit Black勒索病毒的网络钓鱼电子邮件

 影响应用安全领域发展趋势的核心要素

核心影响要素一:推动安全策略的法规变化

随着网络威胁的持续发酵以及对隐私和数据保护的日益关注,这些管理数据和隐私保护的法规也在不断发展。并且它们在制定应用程序安全策略和实践方面发挥着重要作用。

其中一个潜在的变化可能是更加强调用户同意和对个人数据的控制。这一变化将要求应用程序为用户提供更高的透明度,并控制其数据的使用和共享方式。另一个潜在的监管变化可能涉及对数据泄露的更严厉的处罚。

这一变化将使企业比以往任何时候都更需要优先考虑应用程序安全。不合规不仅会导致巨额罚款,还会损害公司的声誉。

在此大趋势下,2024年国内新发布了有关数据管理和隐私保护的法律法规,如下表所示:

表1.2024年新发布有关数据管理和隐私保护的法律法规

图片

核心影响要素二:软件供应链攻击的持续增长

供应链攻击是应用程序安全领域日益关注的问题。在Sonatype的一份报告中显示,过去三年全球软件供应链攻击的平均年增长率高达742%。

2024年供应链攻击增加的原因之一是企业对第三方供应商的依赖增加。随着企业继续将任务外包给外部各方,供应链攻击的风险也在增加,因此企业需要彻底审查其供应商资质并实施强有力的安全措施。

另一个攻击增加的原因是攻击方法的不断变化。在2024年,软件供应链攻击方式继续呈现多样化和复杂化的趋势。以下是一些近年主流的软件供应链攻击方式:

▪ 入侵上游服务器并注入恶意代码:攻击者通过入侵上游服务器或代码仓库,在其中注入恶意代码。这种攻击方式能够迅速将恶意代码分发到大量用户,从而放大攻击的影响范围。

▪ 入侵中间环节发送恶意更新:攻击者入侵软件供应链中间环节的软件升级功能或CI/CD工具,通过修改升级流程来实施攻击,而不直接修改源代码库。

▪ 依赖性混淆攻击:攻击者利用开源生态系统中的设计弱点,在公共仓库中注册与私有依赖项同名的依赖项,并通过提高版本号来使其被软件构建拉取。

▪ 开源组件恶意投毒:攻击者在开源组件中植入恶意代码,并通过组件管理器分发到大量项目中。这种攻击方式利用了开发人员对开源组件的信任。

▪ 利用软件构建工具或更新的基础结构破坏:攻击者针对软件构建工具或更新机制进行破坏,以在构建或更新过程中植入恶意代码。这种攻击方式依赖于对软件构建和更新过程的深入理解,因此具有高度的隐蔽性和针对性。

▪ 利用信任与依赖关系进行攻击:攻击者通过伪造身份或社交工程等方式,欺骗供应链成员,利用供应链中的信任与依赖关系进行攻击。这种攻击方式利用了人类心理和社会工程学原理,因此难以通过技术手段完全防范。

核心影响要素三:量子计算对加密的影响

量子计算多年来一直备受瞩目。通过巧妙应用量子力学原理,这些计算机能以远超传统计算机的速度处理信息,其强大的计算能力能在极短时间内破解那些传统计算机需要数千年才能解开的加密代码。然而,尽管这项技术展现出巨大的潜力,但它同样对应用程序安全构成了一定挑战,这种对加密技术的潜在威胁要求各个组织必须提前做好准备:

▪ 破解现有加密算法:量子计算机利用量子力学原理,通过量子比特(qubit)进行存储和计算信息,可以实现高效的并行计算。这种计算能力使得量子计算机能够破解目前广泛使用的加密算法,如RSA和椭圆曲线加密。Shor算法是量子计算中一种重要的算法,它可以利用量子计算机的并行计算能力在多项式时间内破解RSA和椭圆曲线加密算法。这将对现代密码学造成重大影响,因为RSA和椭圆曲线加密是目前互联网安全体系中的基石。

▪ 严重影响非对称加密算法的安全性:非对称加密算法使用一对密钥进行加密和解密,其中一个密钥是公开的,另一个密钥是私密的。RSA和椭圆曲线加密是目前最常用的非对称加密算法,但这两种算法都面临着量子计算机的威胁。由于Shor算法可以在多项式时间内破解非对称加密算法,因此整个非对称加密体系的安全性都将受到威胁。这将对密钥交换、数字签名等安全应用造成严重影响。然而,量子计算机对对称加密算法的影响相对较小,因为对称密钥的长度通常较短,量子计算机需要耗费大量时间和资源来破解它们。因此,对称加密算法在短期内仍然可以保持一定的安全性。

尽管面临这样的威胁,但量子计算也为应用程序安全领域带来了新的机遇。目前,一种名为量子加密或量子密钥分发的新型加密方法正在研发中。这些方法基于量子力学的原理,旨在创建理论上无法破解的密钥。这一进步或许能为量子计算带来的加密挑战提供有效的解决方案。

 2024年应用安全领域现状分析

DevSecOps成熟度提升

加速开发、持续交付、管道弹性、可扩展性以及端到端的透明度,是DevOps实践中的核心支柱。要实现这些标准,开发、安全和运维团队必须紧密协作,共同努力。

DevSecOps,作为DevOps方法论的自然演进,核心在于深化和普及多团队间的安全文化,确保在DevOps环境下,安全挑战能以统一且前瞻性的方式被及时应对。通过将安全实践自然融入软件开发生命周期(SDLC)和持续集成(CI)流程,DevSecOps致力于将安全性从孤立的阶段提升为开发生命周期中不可或缺、贯穿始终的要素。

这样,安全性不再仅仅是一个附加的考量,而是深植于开发、测试和部署的每一个环节,成为其固有的、不可或缺的特性。

为什么要自动化?

DevOps的核心原则在于在整个软件开发生命周期(SDLC)中自动化手动流程,以提高效率和质量。对于任何组织而言,自动化都是通过持续集成和持续部署来加速软件开发和交付的关键所在。成功的DevSecOps(即融入安全性的DevOps)依赖于自动化与集成的协同作用,以及明确的标准和策略作为指导。这样的实践不仅能让安全团队确信安全利益得到了有效保障,还能让DevOps团队保持高效运作,有信心避免流水线中断。

相较于手动测试,自动安全测试能迅速且一致地执行,使得开发人员能够在开发早期阶段即发现并解决问题,从而不会对交付进度或工作效率产生负面影响。这种预防性措施极大地提高了软件质量和安全性,同时降低了潜在风险。

▪ 一致性:自动测试可确保对每一次的构建和部署一致地进行安全检查。手动测试可能会导致测试过程和覆盖范围不一致。

▪ 可扩展性:随着软件复杂性的增长,手工测试将变得不切实际。自动测试容易扩展,以便跨越不同组件进行大量测试。

▪ 持续集成和持续部署(CI/CD):自动测试在CI/CD管道中至关重要,因为这些管道中会发生快速而频繁的代码变更。自动测试可以快速验证变更,防止错误代码进入生产环境。

▪ 持续改进:自动测试提供数据和洞察,可以帮助开发和安全团队随时间的推移改进安全实践,允许他们系统地分析和处理漏洞模式。

▪ 记录:自动测试可以记录整个测试过程,从而更容易跟踪和审计安全措施与合规要求。

▪ 减少人为错误:由于疲劳或疏忽,手动测试容易出错。自动测试遵循预定义的脚本,能够降低人为错误的风险。

▪ 节省时间和成本:在开发过程的后期或生产过程中识别和修复安全问题既耗时又昂贵。自动测试可将这些费用降至最低。

▪ 改进开发者体验:自动的应用安全测试允许开发者采取主动的、全面的、有助于学习和提高安全知识和技能的方式来解决安全问题,从而增强开发者体验,最终提高软件安全性并提升整个开发过程的效率。

全球DevSecOps企业应用现状

新思科技的CyRC(网络安全研究中心)于2023年初联合国际市场咨询公司Censuswide,对负责安全事务的1,000名IT专业人士开展了一项调查。受访者包括开发人员、应用安全专业人员、DevOps工程师、CISO以及在技术、网络安全和应用、软件开发领域担任各种职务的专家。受访者来自美国、英国、法国、芬兰、德国、中国、新加坡和日本。

调研结果中显示,大多数受访者对自己使用的AST工具普遍感到不满:

表2.受访者对AST工具意见收录表

图片

在这1,000名被访问人员中有35%的人员认为这些安全工具不能根据漏洞的暴露程度、可利用性和严重程度来确定修复顺序,也无法合并和关联数据来帮助解决问题(29%)。

有34%的人员认为这些安全工具因速度太慢而无法适应快速的发布周期以及持续部署。

有33%的人觉得这些安全工具性价比低并且还有33%的人认为这些安全工具的结果并不准确。

大多数DevOps团队都在某种程度上采用了DevSecOps

共有91%的受访者表示,他们已将开展DevSecOps活动相关的安全措施纳入到了软件开发管道中。可以肯定地说,采用DevSecOps方法论现已成为软件开发的一部分。29%的受访者表示他们拥有跨职能部门的DevSecOps团队——由开发、安全和运维部门成员构成的协作团队,是安全计划取得成功的重要因素。

然而想要有效实施DevSecOps存在许多障碍。超过33%的受访者指出,缺乏安全培训是主要障碍。紧随其后的是安全人员短缺(31%)。开发或运维工作缺乏透明性(31%)以及无法有效确定优先级(30%)也是主要原因。

表3.阻碍有效实施DevSecOps的因素

图片

超过三分之一的受访者表示,将自动安全测试集成到构建和部署工作流中是安全计划取得成功的关键。其他的主要成功因素还包括通过基础架构即代码来执行安全和合规策略,在开发和运维团队中培养安全支持者(security champions),以及加强开发、运维和安全团队之间的沟通等。

在SDLC后期再处理重大漏洞和技术债务的成本将会非常高

最合理以及最节省成本的方式是在开发生命周期的最早期就介入安全,尽可能不要留下技术债务问题。

超过80%的受访者表示,2022-2023年间,已部署软件中的重大漏洞和安全问题以某种形式影响了他们的工作进度。28%的受访者表示,他们的组织需要长达三周的时间来修补已部署应用程序中的重大安全风险以及漏洞;另有20%的受访者表示,这可能需要一个月的时间。

考虑到现在的漏洞利用速度比以往任何时候都要快,这些数字令人担忧。最新研究表明,超过一半的漏洞在披露后的一周内即被利用。

超过70%的受访者表示,通过自动扫描代码来查找漏洞或编码缺陷是一种有用的安全措施,34%的受访者认为自动AST“非常有用”。

对代码进行安全漏洞和其他缺陷的自动化扫描,在“工具以及流程的有用性”类别中排名第一,紧随其后的是“在SDLC的需求挖掘阶段明确安全需求”以及“通过BSIMM和SAMM等模型对软件安全计划进行正式评估”。

AST工具现阶段使用场景的弊端

几乎所有受访者都认为AST工具与其业务需求不符。在1,000名受访者中,大多数人都认为AST工具存在各种各样的问题是他们面临的主要挑战,包括这些工具无法根据业务需求对修复措施进行优先级排序(35%),也无法合并和关联数据来帮助解决问题(29%)。

安全与AI技术结合大势所趋的同时也存在多维度风险

......

点击查看完整版《2024应用程序安全领域现状报告》原文

相关文章:

  • Dataweave2 语法教程
  • 【前端项目笔记】8 订单管理
  • python笔记
  • 详细分析Oracle修改默认的时间格式(四种方式)
  • Anaconda创建虚拟环境+Pycharm和Jupyter使用虚拟环境
  • 数据结构--顺序表
  • flink使用StatementSet降低资源浪费
  • 深入探讨JavaScript中的队列,结合leetcode全面解读
  • nvm安装以及idea下vue启动项目过程和注意事项
  • 华为仓颉编程语言
  • SOLID:软件系统设计的五个基本原则
  • [笔记] 高等数学在各工程门类的典型应用场景
  • adb push 报错 ...error: failed to copy...
  • 数据识别概述
  • Linux多进程和多线程(一)-进程的概念和创建
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • angular学习第一篇-----环境搭建
  • Cookie 在前端中的实践
  • Django 博客开发教程 16 - 统计文章阅读量
  • js对象的深浅拷贝
  • js正则,这点儿就够用了
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Unix命令
  • vagrant 添加本地 box 安装 laravel homestead
  • vue-cli在webpack的配置文件探究
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 计算机在识别图像时“看到”了什么?
  • 前端代码风格自动化系列(二)之Commitlint
  • 前嗅ForeSpider采集配置界面介绍
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 一个项目push到多个远程Git仓库
  • 字符串匹配基础上
  • 大数据全解:定义、价值及挑战
  • 如何在招聘中考核.NET架构师
  • ​queue --- 一个同步的队列类​
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • $().each和$.each的区别
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C)一些题4
  • (pojstep1.1.2)2654(直叙式模拟)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • @synthesize和@dynamic分别有什么作用?
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [2016.7 test.5] T1
  • [20171101]rman to destination.txt
  • [BZOJ2208][Jsoi2010]连通数
  • [BZOJ4010]菜肴制作
  • [Docker]五.Docker中Dockerfile详解