移动端应用的十大安全风险
1 简介移动端 十大风险
- 平台使用不当:滥用移动平台功能,如Android可能导致安全问题的功能。需确保安全编码和平台控制使用正确。
- 不安全的数据存储:数据泄露可能导致身份盗用和隐私侵犯。加密、身份验证和安全缓存策略至关重要。
- 不安全的通信:未加密数据传输易受中间人攻击。使用强加密、SSL验证保护通信。
- 不安全的身份验证:薄弱的身份验证让攻击者能绕过系统。联机身份验证在服务器端更安全。
- 密码强度不足:加密不足暴露敏感信息。遵循NIST加密标准,避免存储不必要的数据。
- 不安全的授权:授权漏洞允许攻击者以合法用户身份执行管理功能。严格检查用户权限。
- 客户端代码质量:编码错误可能导致远程执行和拒绝服务。遵循编码标准,使用静态分析工具。
- 代码篡改:攻击者修改代码以访问功能或侵犯版权。使用防篡改技术和越狱检测。
- 逆向工程:应用可被分析以暴露弱点。使用混淆技术增加难度。
- 无关功能:隐藏开关或测试代码可能成为攻击入口。手动安全代码审查至关重要。
2 平台使用不当
开发人员可以访问的移动平台提供了多项功能,但这些功能使用不当可能会使您的应用受到攻击。
此漏洞可被描述为常见且易于利用。它涵盖了滥用平台功能或未能使用平台安全控制。
这可能包括 Android平台权限、滥用 Touch ID、钥匙串或其他一些恰好是移动操作系统一部分的安全控制。
影响的严重程度和实际利用的难易程度取决于特定漏洞的类型以及具有恶意意图的攻击者设法获得控制权的程度。
为了防止这种风险,必须在移动应用程序的服务器端使用安全的编码和配置做法,并确保正确和正确地使用所有平台功能。
3 不安全的数据存储
对于许多用户来说,在最坏的情况下,这可能会导致数据丢失。
它还可能导致技术影响,例如通过移动恶意软件、修改或更改应用程序或取证工具提取应用程序的机密数据。
发生的业务影响的性质取决于被盗的信息。身份盗用、侵犯隐私、欺诈、声誉受损、违反外部政策或重大损失可能是由于不安全的数据存储方法造成的业务影响。
如今,攻击媒介变化很大。从使用缓存、cookie 和其他信息收集受保护数据的第三方应用程序,到攻击者能够物理获取设备并查看信息。
必须以多种方式正确处理数据存储,包括加密、身份验证和处理所有缓存功能。不安全的数据变得非常容易被利用。
为防止这种情况,请务必对移动应用、操作系统、平台和框架进行威胁建模,以了解应用处理的信息资产以及 API 如何处理这些资产。
4 不安全的通信
不安全通信是大多数具有客户端-服务器结构的应用程序中存在的最常见的漏洞。
开发人员通常准时使用身份验证程序和静态数据来保护他们的数据,但他们很少费心正确加密信息/数据。
如果数据未受到保护或加密,服务器端用户可能会面临中间人攻击。这些攻击通常来自路由器、恶意软件等网络设备。
在设计移动应用程序时,数据通常以客户端-服务器格式交换。当解决方案传输其数据/信息时,它必须遍历移动设备的运营商网络和互联网。
威胁代理可能会利用漏洞在敏感数据通过网络传输时访问敏感数据。
这可以通过假设网络层不安全且容易被窃听、使用具有适当密钥长度的强大行业标准密码套件、始终使用由受信任的 CA 提供商签名的证书、始终需要 SSL 链验证等来防止。
5 不安全的身份验证
不安全身份验证包含会话处理和身份验证过程中的弱点。对于移动应用程序,犯罪者通常会创建自定义工具来完全绕过客户端应用程序,并直接向用户提交请求。
糟糕的身份验证方案允许攻击者在移动应用或移动应用使用的后端服务器中匿名执行功能。
由于移动设备的输入外形规格,移动应用程序的身份验证较弱相当普遍。移动应用程序的身份验证方案比常规 Web 应用程序的身份验证方案要精简得多。
由于大多数应用程序需要脱机工作,因此为用户提供了可利用的脱机身份验证选项。
这可能导致肇事者获得对系统的完全控制权。他们可以匿名窃取或删除数据,或向应用程序或服务器等发出命令。
这可能会导致严重的技术和业务影响。
防止此问题的最佳方法是在服务器端处理所有身份验证请求时尽可能使用联机身份验证。
6 密码强度不足
Insufficient Cryptography 处理可能对业务产生极其恶劣影响的漏洞。
加密不足将导致未经授权从移动设备检索机密信息。这可能会产生多种不同的业务影响,例如侵犯隐私、信息和代码盗窃、知识产权盗窃或声誉受损。
为防止您的数据受到此漏洞的影响,请尽可能避免在移动设备上存储任何敏感数据,应用至少在未来 10 年内经得起时间考验的加密标准,并遵循 NIST(美国国家标准与技术研究院)关于推荐算法的指南。
遵循最佳实践和标准是避免加密不足的最佳方法。
7 不安全的授权
在身份验证过程中,不安全授权会处理服务器端漏洞。此漏洞非常常见且难以检测。
一旦攻击者知道授权方案如何容易受到攻击,他们就会以合法用户的身份登录应用程序。
他们设法成功通过身份验证控制。一旦他们通过身份验证,他们就会强制浏览到易受攻击的终结点以执行管理功能。
此过程是使用攻击者拥有的设备或僵尸网络中的移动恶意软件完成的。
授权不良的技术影响与身份验证不良的技术影响类似。技术影响可能范围广泛。
例如,本地管理功能的特权过高的执行可能会破坏系统或对机密信息的访问。
防止这种情况的最佳方法是确保始终检查用户权限,独立于服务器端验证来自客户端的任何请求,确保它们是授权用户。
8 客户端代码质量
重点关注由于编码错误而产生的漏洞。黑客可以在代码中发现错误或漏洞,并利用它们来访问系统。
例如缓冲区溢出和内存泄漏。属于此类别的漏洞利用会导致远程服务器端点上的外部代码执行或 DOS(拒绝服务)。
但是,如果移动设备中确实存在缓冲区溢出/溢出,并且输入可能来自外部方,则可能会产生严重的技术影响。
处理这个问题的唯一方法是全面保持一致的编码标准,并编写易于阅读的注释良好的代码。
使用缓冲区时,请验证任何传入缓冲区数据的长度不会超过目标缓冲区的长度。
通过自动化,通过使用第三方静态分析工具识别缓冲区溢出和内存泄漏,并优先解决缓冲区溢出和内存泄漏,而不是其他“代码质量”问题。
9 代码篡改
攻击者可以对应用程序代码执行的任何修改都称为代码篡改。攻击者或黑客使用代码篡改来访问高级功能、侵犯版权等,并完全绕过应用程序的现有分发模式。此漏洞可能难以检测。
攻击者将利用第三方应用程序存储中托管的恶意形式的应用程序进行代码修改。
攻击者还可能通过网络钓鱼攻击诱骗用户安装应用程序。
攻击者将执行以下操作来利用此类别:对应用程序包的核心二进制文件进行直接二进制更改,对应用包中的资源创建直接二进制文件更改,重定向或替换系统 API 以拦截和执行恶意的外部代码。
防止这种情况的最佳方法是使用防篡改技术以及root和越狱检测。
10 逆向工程
逆向工程非常普遍,并不总是出于恶意。有时人们这样做是为了学习目的,而有时他们这样做是为了编写自己完全合法的应用程序。
攻击者将从应用程序商店下载目标应用程序,并使用一套不同的工具在其本地环境中对其进行分析。
要防止有效的逆向工程,请使用混淆工具。每个应用程序都容易受到此漏洞的影响。
11 无关功能
此漏洞已在 2016 年添加到列表中,以涵盖极其严重但常见的漏洞。攻击者将在其本地环境中下载并检查移动应用程序。
他们将检查日志文件、配置文件,也许还有二进制文件本身,以发现开发人员留下的任何类型的隐藏开关或测试代码。
他们将尝试利用这些开关和系统后端的隐藏功能来执行攻击。此功能的一个示例是开发人员帐户,它允许完全绕过安全检查并提供广泛的权限。这是一个后门,使攻击者能够完全控制应用程序。
若要防止此漏洞,请使用最了解此代码的安全冠军或主题专家执行手动安全代码审查。这些漏洞很容易被利用,但也很容易被捕获和删除.
12 小结
OWASP评估的WEB安全问题有三个工具。人工辅助工具 (HaT)、工具辅助人工 (TaH) 和原始工具。
OWASP安全评估同时考虑人工和工具方法。高频工具检测可能掩盖低频但广泛的问题。
引入发生率衡量至少一个漏洞实例的百分比,反映攻击者只需一个入口点就可能成功攻击的风险视角。
- 点赞
- 收藏
- 关注作者
评论(0)