2024版OWASP移动应用系统10大安全风险简析

这是自2016年以来该机构首次对移动应用系统相关的风险进行更新,重点增加了对供应链安全、隐私保护等方面的风险关注。

随着移动互联网用户数量急剧增长,移动应用系统已经实现了典型生活场景的全覆盖,并渗透到了多个企业级应用领域。移动应用的快速扩张也带来了诸如数据违规收集、数据恶意滥用、数据非法获取、数据恶意散播等安全风险。这些安全风险广泛存在于当前主流的移动应用系统中,严重威胁数据安全与个人信息安全。

近日,OWASP(全球开放应用软件安全项目组织)发布了最新版移动应用系统10大安全风险目录,这是自2016年以来该机构首次对移动应用系统相关的风险进行更新,重点增加了对供应链安全、隐私保护等方面的风险关注。这份目录对广大移动应用程序开发人员来说很重要,它描述了移动应用程序开发时最严重的安全风险相关信息,同时也给出了缓解方法和建议。

凭据使用不当

OWASP认为,当前移动应用程序开发的主要风险是来自凭据、API密钥及其他秘密信息的安全性。黑客可以利用移动应用程序中硬编码凭据和使用不当的运行时秘密信息,对移动应用程序的关键功能实现未授权访问。此外,如果攻击者借助一些定制的工具和脚本,就可以进一步通过被盗的密钥来访问后端系统和API。

防护建议

开发则应该严格禁止将凭据、密钥等信息保留在应用程序代码中,同时应该采取措施以保护运行中的移动应用程序静态和传输中秘密信息。此外,组织应该确保能够定期快速地轮换任何密钥,尤其是第三方API密钥。

供应链安全性不足

供应链攻击是针对企业使用的外部组建或工具的攻击,能够在组织不知觉的情况下将漏洞、不安全内容或恶意代码引入到应用程序中。这些组件如果没有得到适当的保护,可能会带来各种安全风险。例如,第三方组件可能访问敏感数据或允许恶意代码在设备上运行。供应链攻击路径可能是组织内部的恶意员工、系统中引用的某段第三方代码,以及对组织的系统获得访问特权的黑客。

防护建议:

组织应该加强监控和检查移动应用程序中所使用的所有第三方代码,并在发布移动应用程序代码之前进行签名,这样应用程序可以在运行时被证明是真实的、未被篡改的,一旦发现来自篡改过的应用程序访问请求,就应该立即阻止。

不安全的身份验证/授权

身份验证是验证用户是否是真实、合法的用户,而授权是验证用户是否拥有访问特定资源或服务级别的凭据。身份验证能够有效防止窃取和使用用户凭据,然后使用这些凭据登录到应用程序或直接访问后端服务器。而授权问题通常归因于数据和资源的访问级别实施不当。

防护建议:

通过开展应用程序认证可以有效防护上述风险。在移动应用程序运行时进行完整性检查可以检测出任何未经授权的代码更改。

API输入/输出验证不足

应用程序编程接口(API)允许移动应用程序相互通信和共享数据,因此,大量第三方API需要被集成到移动应用程序中以提供更多功能的服务。而API中的常见漏洞是由恶意代理篡改输入数据引起的。这类攻击包括SQL注入、命令注入和跨站脚本(XSS)攻击,它们经常出现在OWASP 各类应用风险名单上。未经授权的代码执行、数据泄露、数据损坏或服务中断都是可能会出现的危险后果。

防护建议:

企业组织应该确保移动应用程序所使用的第三方API是安全的。此外,安全人员还应该进一步验证API接口的安全措施是否有效。OWASP已经给出了关于测试和缓解最常见API漏洞的详细指导准则。一个重要的行动原则就是要阻止非真实应用程序所发出的访问请求。这可以有效地防止攻击者利用和API相关的零日漏洞。

不安全的网络通信

移动应用程序运行会面临与传输或接收数据相关的威胁。移动应用生态系统中的一个关键攻击面就是移动应用程序与后端服务器之间的链接通道。针对这条通道发起的中间人(MitM)攻击可以对移动用户构成了重大威胁。如果攻击者可以控制客户端,那么即便使用SSL,中间人攻击活动也可以通过应用程序重新打包或使用Frida之类的钩子工具在运行时篡改应用程序的行为来发生。移动应用程序开发者要假设网络层的通信活动可能会被窃听,因此客户端设备上的信任证书存储区可能会被人恶意篡改,这点很重要。

防护建议:

动态证书绑定可以有效阻止MitM攻击,并消除静态绑定的成本负担。它允许在服务器端更新pin码,而无需更新应用程序。此外,动态绑定与应用程序和客户端认证相结合,可以防止通过篡改移动客户端信息来实施MitM攻击。

隐私控制能力不足

隐私控制不足是本次更新中新加入的安全风险。隐私控制主要指保护用户的个人身份信息(PII)安全,这些信息可能被攻击者用于欺诈或勒索。通常来说,PII可能被泄露(即违反保密性)、操纵(违反完整性)或销毁/阻止(违反可用性)。

防护建议:

移动应用程序设计和开发时应将所处理的PII数量和种类保持在绝对最低限度,并充分验证应用程序能够符合GDPR、CCPA以及我国《个人信息保护法》等隐私法规的监管要求。

二进制代码保护不足

移动应用程序的二进制代码通常可以从应用程序商店下载或从移动设备中复制,所以二进制攻击很容易通过反向工程或代码篡改来策划发起,从而窃取知识产权或篡改应用程序功能。

防护建议:

通过使用代码混淆技术保护代码可以有效阻碍对二进制代码的攻击,应考虑将其作为一种保护知识产权避免被竞争性应用程序滥用的手段。此外,应该使用运行时保护和应用程序完整性检查方案,及时识别和阻止以任何方式被篡改的应用程序。同时,前面所介绍的轮换API密钥和秘密信息保护方法也是增加对二进制代码保护的关键要素。

安全错误配置

移动应用数据泄漏通常意味着存在未经授权的数据传输,当移动应用程序本身缺乏有效的安全保护特性时,就会发生这种情况。由于时间限制、缺乏意识或开发过程中的人为错误等因素,移动应用程序中经常会出现错误的安全配置,有些甚至缺乏安全性设计。

防护建议:

防止移动应用程序中的安全错误配置需要遵循安全编码和配置实践。OWASP给出的建议包括特别注意默认凭据以及对用户访问运用最小特权原则。移动应用程序在正式发布前,开发者就应该保障其运行时具有正确合理的数据安全策略和措施。

不安全的数据存储

移动应用程序中不安全的数据存储就会让威胁分子找到可以趁机利用的漏洞。漏洞包括未经授权访问设备的文件系统、利用弱加密、拦截传输的数据,以及利用安装在设备端的恶意软件或恶意应用程序。此外,被破解的计算设备也为攻击者绕过安全措施、直接访问敏感数据提供了机会。

防护建议:

前面所介绍的各种建议在这里都能发挥作用,例如:实施访问控制和会话管理,确保强加密和安全数据传输,以及留意第三方代码和依赖项,这些都很重要。此外,运行时保护可以阻止对运行中的应用程序进行篡改从而窃取数据的黑客。

10 加密能力不足

加密是对重要移动应用数据进行防护的基本要求,使数据在没有密钥的情况下无法被读取。如果缺乏足够强大的加密防护,数据将会处在危险的状态下,很容易被黑客访问。许多移动应用程序开发人员都会忽视如何正确的加密数据,这也导致了很多严重的数据泄露发生。这可能表现为采用不安全的加密算法,或未使用安全数据传输(HTTPS)。移动应用程序中不安全加密的攻击主要涉及加密机制中的漏洞,导致数据泄露或未经授权的访问。

防护建议:

确保应用程序正确且安全地使用加密技术是非常重要的,这包括使用强算法进行加密、使用安全协议进行通信以及正确保管密钥。此外,组织要始终使用HTTPS,确保加密密钥安全地存储在移动设备上,不是采用明文格式或放在易于访问的位置。

参考链接:

https://securityboulevard.com/2024/05/2024-owasp-mobile-top-ten-risks/

声明:本文来自安全牛,版权归作者所有。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML飘落的花瓣

目录 写在前面 HTML​​​​​​​简介 完整代码 代码分析 系列推荐 写在最后 写在前面 本期小编给大家推荐HTML实现的飘落的花瓣,无需安装软件,直接下载即可打开~ HTML​​​​​​​简介 HTML(Hypertext Markup Language&#xff…

STM32学习和实践笔记(28):printf重定向实验

1.printf重定向简介 在C语言中printf函数里,默认输出设备是显示器,如果想要用这个函数将输出结果到串口或者LCD上显示,就必须重定义标准库函数里中printf函数调用的与输出设备相关的函数。 比如要使用printf输出到串口,需要先将f…

灌区信息化管理平台软件如何建设?

随着科技的飞速发展,数字孪生技术正逐渐渗透到各个行业领域,其中,数字孪生灌区的建设成为了智慧水利的重要组成部分。那么,究竟如何进行数字孪生灌区信息化管理平台软件建设呢?本文将为您揭开这一神秘面纱,…

引用和实体完整性

本文将详细讲解在数据库服务器级具有引用和实体完整性的好处,包括如何在字段中设置默认值、检查约束和引用约束,以及在何时发生约束检查。通过遵循这些指导原则,可以确保数据的一致性和准确性。 1.完整性 完整性指数据库中数据的准确性或正确…

【Linux线程(二)】线程互斥和同步

前言: 在上一篇博客中,我们讲解了什么是线程以及如何对线程进行控制,那么了解了这些,我们就可以在程序中创建多线程了,可是多线程往往会带有许多问题,比如竞态条件、死锁、数据竞争、内存泄漏等问题&#…

福建聚鼎:做装饰画到底能不能赚钱

在探讨做装饰画能否成为盈利的行当之前,我们必须认识到任何一门艺术或手工的价值并非仅仅取决于其直接的经济收益。艺术创作本身就是一种文化传承和个人情感表达的方式,它对创作者和社会都有着不可估量的精神价值。然而,将话题限定在经济回报…

【机器学习300问】81、什么是动量梯度下降算法?

动量梯度下降算法(Momentum)是利用指数加权移动平均的思想来实现梯度下降的算法。让我们先来回顾一下基础的梯度下降方法以及看看它有哪些不足之处。接着引出动量梯度下降算法,在理解了它的原理后看看它是如何规避之前方法的不足的。 如果不知…

Java开发大厂面试第01讲:String 的特点及其重要的方法都有哪些?

几乎所有的 Java 面试都是以 String 开始的,如果第一个问题没有回答好,则会给面试官留下非常不好的第一印象,而糟糕的第一印象则会直接影响到自己的面试结果,就好像刚破壳的小鹅一样,会把第一眼看到的动物当成自己的母…

制药行业新突破:CANOpen转PROFINET网关配置案例解析

在药品制造工业环境中,实现CanOpen转Profinet协议之间转换的网关配置是一个关键过程,确保了不同通信协议的设备能够互相协作。以开疆智能CanOpen转Profinet网关为例,以下是其配置流程:首先安装CanOpen转Profinet网关的配置软件&am…

Linux禁用危险命令和防止误操作

禁用rm命令 编辑/etc/profile文件,结尾添加 ###### rm prevent ###### alias rmecho can not use rm command使用source命令生效 source /etc/profile效果 使用mv命令代替rm命令 将需要删除的文件移动到特定的目录,比如/home/sharedir/ 在.bashrc目…

波卡 2024 一季度报告:XCM 创下历史新高,JAM 链将引领 Polkadot 2.0 新风向

作者:Nicholas Garcia|Messari 研究分析师 编译:OneBlock 原文:https://messari.io/report/state-of-polkadot-q1-2024 近期,Messari Crypto 发布了 Polkadot 2024 年 Q1 状况的数据报告。OneBlock 为你梳理了本篇报…

python批量为图片做灰度处理

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.总结

MES管理系统在柔性制造中有何重要作用

在当今这个瞬息万变的商业环境中,制造业正经历着一场前所未有的转型。消费者需求的多样化和市场动态的快速变化要求企业必须具备高度的灵活性和适应性。为了应对这些挑战,柔性制造策略应运而生,它以其快速响应和灵活调整的能力,成…

vue3中的watch侦听器

在有些情况下,我们需要在状态变化时执行一些“副作用”:例如更改 DOM ,或是根据异步操作的结果去修改另一处的状态。在组合式 API 中,我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数。 watch 函数可以侦听被 ref…

计算机的一些基础知识分享

windows操作系统中,用于查看当前文件下的目录是? 在Windows操作系统中,如果您想要查看当前文件夹下的目录,您可以使用命令提示符(CMD)或PowerShell。在这些环境中,可以使用以下命令:…

bmi088-linux驱动(I2C)

电气特性: 在正常工作时,gyro 工作电流为5mA,acc 工作电流为150uA。 SPI 时钟和数据电平范围 0 -3.6 结构框图如下: 硬件连接图如下: note: 1. 通过PS引脚选择通讯协议,上拉引脚则选择的是I2C…

HCIP的学习(16)

BGP的状态机 ​ OSPF的状态机是在描述整个协议的完整工作过程,而BGP的状态机仅描述的是对等体关系建立过程中的状态变化。-----因为BGP将邻居建立过程以及BGP路由收发过程完全隔离。 ​ IGP协议在启动后,需要通过network命令激活接口,从而使…

企业运维背后的故事:TASKCTL带你了解日常工作与技术演进

今天,作为一名经验丰富、从业多年经常与运维人员打交道的人,我想与大家聊聊运维的日常工作、部门协调以及未来发展,希望能为即将转行或正在从事运维工作的你,提供一些新的视角和启发。 运维的日常工作:挑战与乐趣并存 …

朱啸虎:AI应用明年肯定大爆发;第3款爆火AI游戏出现了;AI应用定价策略「不能说的秘密」;人类数据不够用了怎么办 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 1. 换你来当爹:国内第3款爆火出圈的AI游戏应用,hhh 太搞笑了 周末的时候,社群里伙伴们开始玩一款「换你来当爹」的…

[Java EE] 多线程(九):JUC剩余部分与线程安全的集合类(多线程完结)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …