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

news2024/11/23 18:31:08

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


近年来,应用安全风险剧增。从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.coloradmin.cn/o/1893647.html

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

相关文章

爬虫-网页基础

HTML 基本语法 HTML&#xff1a;Hyper Text Markup Language, 超文本标记语言&#xff0c;是计算机语言的一种&#xff0c;由元素构成。 p元素 <p>Web 真好玩&#xff01;</p> 由三大部分组成 开始标签&#xff1a;一对尖括号中间包裹这元素名称元素内容&#x…

中霖教育怎么样?注册会计师可以跨省考试吗?

中霖教育怎么样?注册会计师可以跨省考试吗? 1. 考试地点安排&#xff1a; 注册会计师考试是在全国范围内统一举行的&#xff0c;通常设在各省、自治区和直辖市指定的考区。考生须依据准考证上提供的信息&#xff0c;核实自己的具体考试地点。该考试实行的网上统一报名制度&…

mpeg格式怎么转换成mp4?这四种转换方法非常好用!

mpeg格式怎么转换成mp4&#xff1f;在数字视频领域中&#xff0c;MPEG格式算是相对冷门的一种选择&#xff0c;然而&#xff0c;选择这种格式却不是没有代价的&#xff0c;首先&#xff0c;MPEG采用了有损压缩技术&#xff0c;这意味着在视频处理过程中&#xff0c;会丢失一些细…

欧洲杯:高精度定位技术,重塑体育赛事新体验

随着科技的飞速发展&#xff0c;体育赛事的观赏体验与竞技水平正被不断推向新的高度。在即将到来的2024年欧洲杯赛场上&#xff0c;一项革命性的技术——高精度定位&#xff0c;正悄然改变着比赛的每一个细节&#xff0c;为球迷们带来前所未有的观赛享受&#xff0c;同时也为运…

Linux Shell 脚本入门教程:开启你的自动化之旅

目录 一、什么是Shell&#xff1f; 二、 编写第一个Shell脚本 ​编辑 2.2 变量 2.3 功能语句 2.4 数组 一、什么是Shell&#xff1f; Shell是一种计算机程序&#xff0c;它充当了用户与操作系统之间的接口。在Linux系统中&#xff0c;Shell允许用户通过命令行界面&#x…

揭开梵蒂冈秘密档案馆的神秘面纱

关注我们 - 数字罗塞塔计划 - PART 01 深邃的历史 梵蒂冈秘密档案馆起源于公元8世纪&#xff0c;负责保存官方文书和教皇书信。9世纪开始在圣彼得大教堂设立档案库&#xff0c;负责保管外交和法律文件&#xff0c;在帕拉蒂诺山塔内保存经济和行政方面的档案。11至13世纪&…

3.2ui功能讲解之graph页面

本节重点介绍 : graph页面target页面flags页面status页面tsdb-status页面 访问地址 $ip:9090 graph页面 autocomplete 可以补全metrics tag信息或者 内置的关键字 &#xff0c;如sum聚合函数table查询 instante查询&#xff0c; 一个点的查询graph查询调整分辨率 resolutio…

在地图上根据经纬度,画一个矩型围栏,设置每个点的经纬度

在做一个需求时有一个小点就是添加一个配送区域(5公里直径内的)矩形围栏 我做的比较简单 大家看看有没有帮助, 也是精简代码。测试效果上相对是精准的 //谷歌&#xff0c;根据经纬度获取以它为中心半径为5公里内的矩形的四个点经纬度getDefalutPoints (lng: number, lat: num…

【SpringCloud】Ribbon源码解析

ribbon是一个负载均衡组件&#xff0c;它可以将请求分散到多个服务提供者实例中&#xff0c;提高系统的性能和可用性。本章分析ribbon是如何实现负载均衡的 1、LoadBalanced 消费者在引入ribbon组件后&#xff0c;给http客户端添加LoadBalanced注解就可以启用负载均衡功能。Lo…

LangChain 入门上篇:模型 I/O 封装

LangChain 是面向大模型的开发框架&#xff0c;是 AGI 时代软件工程的探索和原型。学习 LangChain 需要关注接口的变更。 LangChain 的核心组件 1.模型 I/O 封装 LLMS 大语言模型Chat Models 一套基于 LLMS&#xff0c;但按对话结构重新封装PromptTemplate 提示词模板Output…

Unity中TimeLine的一些用法

Unity中TimeLine的一些用法 概念其他 概念 无Track模式&#xff08;PlayableAsset、PlayableBehaviour&#xff09; 1. 两者关系 运行在PlayableTrack中作用 PlayableBehaviour 实际执行的脚本字段并不会显示在timeline面板上 PlayableAsset PlayableBehaviour的包装器&#x…

uboot run命令基本使用

run 命令可以用于运行环境变量的中定义的命令,run bootcmd 可以运行bootcmd中启动命令 作用:可以运行我们自定义的环境变量 include/command.h common/cli.c /*** board_run_command() - Fallback function to execute a command** When no command line features are enabled …

性能测试-JMeter学习

1、给不同的访问口分配访问占比&#xff1b;例&#xff1a;登录30%&#xff0c;首页&#xff1a;20%&#xff0c;新增&#xff1a;50% 不同业务放到不同线程组里&#xff0c;实现不同业务的分配 使用吞吐量控制器&#xff0c;设置不同的占比 使用if控制器&#xff0c;设置不同…

mac鼠标键盘共享:ShareMouse for Mac 激活版

hareMouse 是一款 Windows 和 macOS 操作系统上的共享和切换鼠标和键盘的实用工具。这款软件允许用户在多台计算机之间无缝地共享鼠标和键盘&#xff0c;使得在不同设备之间进行工作和操作变得更加便捷。占用资源少&#xff1a; ShareMouse 设计轻量&#xff0c;占用系统资源较…

Logback日志配置两种方式

SpringBoot 默认使用的是Logback 1. 在resource新建文件logback-spring.xml&#xff0c;配置日志相关信息 <configuration><property name"app.name" value"order-service"/><property name"log.path" value"./logs/"…

克隆gitee仓库,在vs2022创建文件夹开发项目操作步骤

git网站 git知识大全 git教程&#xff1a;廖雪峰的官方网站 git菜鸟教程 gitee之创建项目步骤 同步源仓库 2. 克隆命令 3. 右击git Bash Here>粘贴命令行 4. 选中项目文件夹》创建本人文件夹&#xff08;ZYY&#xff09; 5. 打开vs2022》新建项目》选择Framework》下…

C++之boost智能指针

1、boost智能指针 资源获取即初始化&#xff1a;在构造函数中对资源进行初始化&#xff0c;在析构函数中释放。 智能指针的本质思想是&#xff1a;将堆对象的生存期&#xff0c;用栈对象来管理。这个栈对象就是智能指针。 当new 一个堆对象的时候&#xff0c;立刻用智能指针…

VS2022(Visual Studio 2022)最新安装教程

1、下载 1、下载地址 - 官网地址&#xff1a;下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux - 根据自己的电脑的 【操作系统】 灵活选择。 2、安装包 【此处为Windows系统安装包】 2、安装 1、打开软件 - 右击【以管理员身份打开】&#xff0c; 2、准备配置 …

【Unity 角色控制器组件】

【Unity 角色控制器组件】 Character Controller&#xff1a; Unity 内置的一个组件&#xff0c;用于提供高级的物理控制&#xff0c;允许开发者控制角色的移动、跳跃和碰撞。 csharp csharp // 假设你已经有了一个带有Character Controller组件的游戏对象// 获取Character Co…

网安小贴士(7)网络加密

一、前言 网络加密的历史是一个长期发展的过程&#xff0c;其起源可以追溯到古代文明&#xff0c;主要用于战争时期的通信保密&#xff0c;其目的始终是为了保护信息的安全和保密。 二、定义 网络加密是一种安全措施&#xff0c;它通过使用编码算法对通过网络&#xff08;例…