行业洞察 | 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应用程序安全领域现状报告》原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年前端面试题及答案

7、 nginx代理跨域 8、 nodejs中间件代理跨域 9、 WebSocket协议跨域 前端数据加密问题 1 一般如何处理用户敏感信息? 前端一般使用md5、base64加密、sha1加密,想要了解详情请自行百度。 前端http相关问题 1 HTTP常用状态码及其含义? …

win10系统让当前用户拥有管理员权限

本方法应该也适用于win11 大家在安装系统的时候,如果开始你不重新建立一个账号。直接使用默认的administror登录,那么这个时候电脑只有1个账户,但是如果你在刚开始的时候建立了一个新的,比如你姓李 名字叫帅哥,那么这…

[ES6] 箭头函数

JavaScript 是一种广泛使用的编程语言,随着其发展和演变,引入了很多新的特性来提高代码的可读性和开发效率。其中一个重要的特性就是 ES6(ECMAScript 2015)中引入的箭头函数(Arrow Function)。箭头函数不仅…

css---before和after伪元素

1.什么是伪元素 伪元素不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用如页面元素一样的CSS样式,表面上看上去貌似是页面的某些元素来展现,实际上CSS样式展现的行…

这样一位美丽的女子

在《生有热爱》这本书中看到这样一句话“斯人若彩虹,遇上方知有”,瞬间击中了我的灵魂,这句话完美的表达了我对爱人的情感。以前我总以为“遇上爱人是我这辈子最大的幸运”是我此生对爱人的完美表达,直到遇到这句话我才深刻体会到…

django models对应的mysql类型

Django模型字段类型与MySQL数据库类型的对应关系如下: Django 模型字段类型MySQL 数据库类型AutoFieldBIGINT UNSIGNEDCharFieldVARCHARIntegerFieldINTDecimalFieldDECIMALDateFieldDATEDateTimeFieldDATETIMEFileField, ImageFieldVARCHAR (用于文件路径)Boolean…

Python容器 之 字典--字典的遍历

字典存在 键(key), 值(value) , 遍历分为三种情况 1.遍历字典的键 循环拿到字典中的每个键名 # 方式一 for 变量 in 字典: print(变量) # 方式二 for 变量 in 字典.keys(): # 字典.keys() 可以获取字典所有的键 print(变量) my_dict {name: 小明, age: 18, sex: 男}…

Node.js的应用场景

Node.js具有广泛的应用场景,其基于Chrome V8引擎的JavaScript运行环境使得JavaScript能够运行在服务器端,极大地扩展了其应用范围。以下是Node.js的主要应用场景: 1. 服务器端开发 Web服务器和API服务器:Node.js非常适合构建服务…

Kamailio-Web管理页面Siremis的安装与部署

siremis 是针对于 Kamailio 的web管理接口,使用PHP书写,更新至2020年,相对不是太新但是是官方友链的 以下就采用 Ubuntu 22.04Siremis 5.8.0apache http server 2.4php7.0 如有疑问请参看官方指南 以下开始介绍操作步骤 安装apache2.4 we…

python转换其他分辨率的图片为固定分辨率的方法

**需求:**把其他分辨率转换成1920*960的分辨率,并保存下来 你可以使用Pillow库,这是一个非常流行的图像处理库。以下是一段示例代码,演示如何使用Pillow来调整图片的分辨率: from PIL import Imagedef resize_image(…

《艺术品交易导报》

《艺术品交易导报》 《艺术品交易导报》是由心海集团主管,北京心海文化艺术研究院主办的,鉴于国家的扶持政策和艺术品交易中心的崛起,为推动艺术品交易走向更加成熟和规范化道路而做的一份艺术品交易领域的专业报刊。在追求艺术品价值的同时…

学习一个新的知识点的五个状态

# 学习一个新的知识点的五个状态是: # 未知,接触,熟悉,模仿,创造。# 其中 接触 熟悉 模仿 是我们学习要经历的状态。 # 接触,主要是了解名称,有什么功能 # 熟悉,就是有功能如何使用…

【Qt项目学习--使用QTcpserver和libssh的区别】

很多Qt的教程都是基于QTcpServer实现的服务器客户端架构,而我想实现的用户名密码登陆,跟下来教程视频发现并没有实现,于是去了解libssh,实现IP地址登陆之后使用用户名密码实现。 libssh和QTcpServer之间的主要不同点:…

14-5 小语言模型SLM 百科全书

想象一下这样一个世界:智能助手不再驻留在云端,而是驻留在你的手机上,无缝理解你的需求并以闪电般的速度做出响应。这不是科幻小说;这是小型语言模型 (SLM) 的前景,这是一个快速发展的领域,有可能改变我们与…

MySQL数据库数据迁徙:从本地到Linux服务器

"男人的浪漫,绝对是拥有一台属于自己的服务器" MySQL数据库数据迁徙就两步:本地导出和服务器导入。 本地导出 本地导出的时候,需要注意你的CMD命令行必须是以管理员身份运行。如果你的计算机找不到mysqldump这个命令,…

移动端如何调试本地运行的前端项目

1.问题场景 本地通过Live Server开启服务,http://127.0.0.1:5500/html/test.html,调试移动端兼容性问题 2.解决办法 要在手机上访问电脑本地运行的服务http://127.0.0.1:5500/html/test.html,需要确保手机和电脑处于同一局域网内&#xff0…

Android手机拍照或从本地相册选取图片设置头像-高版本适配

GitHub传送门 问题点 Android 7.0 新增FileProvider 参考链接 图片裁减需要的临时权限 intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);Android 10 只能读取自己APP目录下的文件 Unable to open /storage/emulated…

三、Prometheus监控Tidb

1.下载node_exporter https://download.pingcap.org/node_exporter-v1.3.1-linux-amd64.tar.gz将其配置为系统服务: vim /usr/lib/systemd/system/node_exporter.service[Unit] Descriptionnode_exporter Documentationhttps://prometheus.io [Service] ExecStart…

单片机软件架构连载(1)-枚举(enum)

今天跟大家讲一下我在产品开发时,用枚举(enum)的一些骚操作,都是实战经验,不难,但开发经验尚浅的话,不一定能把它灵活应用。 为什么要讲枚举呢? 因为我发现它是一个容易被遗忘,同时又非常重要的…

RK3568驱动指南|第十六篇 SPI-第195章 实践:移植官方mcp2515驱动

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…