用户体验设计和认知心理学柏拉图区块链数据智能。 垂直搜索。 人工智能。

用户体验设计与认知心理学

如今,网络攻击和数据盗窃变得如此普遍,尤其是在涉及移动应用程序时。 因此,遇到安全漏洞的移动应用程序可能会遭受经济损失。 由于许多黑客都在关注窃取客户数据,保护这些应用程序已成为组织的头等大事,也是开发人员面临的严峻挑战。 根据 Gartner 最近的研究, 应用安全技术成熟度曲线,未来几年对应用程序安全的投资将增加两倍以上,从今年的 6 亿美元增加到 13.7 年的 2026 亿美元。此外,该报告指出,“应用程序安全现在是开发人员和安全部门最关心的问题专业人士,现在重点转向托管在公共云中的应用程序,”确保 DevOps 安全的基本组件正确至关重要。 以下是保护您的移动应用程序的 12 条提示: 

1. 从可信来源安装应用程序:

在替代市场上重新发布 Android 应用程序或将其 APK 和 IPA 提供给下载是很常见的。 APK 和 IPA 都可以从各种地方下载和安装,包括网站、云服务、驱动器、社交媒体和社交网络。 只应允许 Play 商店和 App Store 安装可信赖的 APK 和 IPA 文件。 为了防止使用这些应用程序,我们应该在应用程序启动时进行源检查检测(Play Store 或 App Store)。

还看了, https://andresand.medium.com/add-method-to-check-which-app-store-the-android-app-is-installed-from-or-if-its-sideloaded-c9f450a3d069

2. 根检测:

Android:攻击者可以在获得 root 权限的设备上启动移动应用程序并访问本地内存或调用特定活动或意图以在应用程序中执行恶意活动。 

iOS:越狱设备上的应用程序在 iOS 沙箱之外以 root 身份运行。 这可能允许应用程序访问存储在其他应用程序中的敏感数据,或安装恶意软件来破坏沙盒功能。 

有关根检测的更多信息- https://owasp.org/www-project-mobile-top-10/2016-risks/m8-code-tampering

3.数据存储:

开发人员使用共享首选项和用户默认值来存储键值对,如令牌、手机号码、电子邮件、布尔值等。此外,在创建应用程序时,开发人员更喜欢 SQLite 数据库来存储结构化数据。 建议以加密格式存储任何数据,这样黑客就很难提取信息。

4. 安全密钥:

API 密钥、密码和令牌不应在代码中进行硬编码。 建议使用不同的技术来存储这些值,这样黑客就无法通过篡改应用程序来快速逃脱。 

这是一个参考链接: https://guides.codepath.com/android/Storing-Secret-Keys-in-Android

5.代码混淆

攻击者可能会反编译 APK 文件并提取应用程序的源代码。 这可能会将存储在应用程序源代码中的敏感信息暴露给攻击者,这些信息可能会被用来执行量身定制的攻击。 

最好对源代码进行混淆,以防止源代码中包含所有敏感信息。

6. 安全通信:

由于所有通信都是通过未加密的通道进行的,因此攻击者可能会执行恶意活动来利用攻击级别。 因此,请始终使用 HTTPS URL 而不是 HTTP URL。

7. SSL固定:

证书固定允许移动应用程序将通信限制为仅与具有与预期值(pin)匹配的有效证书的服务器。 固定确保 即使用户被诱骗在其移动设备上安装恶意根证书,网络数据也不会受到损害。 任何固定其证书的应用程序都会通过拒绝通过受损连接传输数据来阻止此类网络钓鱼尝试

请参考: 

https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning

8. 保护 API 请求和响应数据

标准做法是使用 HTTPS 作为 REST API 调用的基线保护。 发送到服务器或从服务器接收的信息可能会使用 AES 等进一步加密。例如,如果有敏感内容,您可以选择选择那些进行加密,这样即使 HTTPS 因某种原因被破坏或配置错误,您对您的加密有另一层保护。

9. 安全的移动应用认证:

如果应用程序在登录用户后未分配独特且复杂的会话令牌,攻击者可以进行网络钓鱼,以引诱受害者使用攻击者提供的自定义生成的令牌,并使用捕获的会话轻松绕过登录页面通过使用 MiTM 攻击。

i) 每次用户成功登录到应用程序时,向他/她分配一个独特且复杂的会话令牌。 

ii) 注销后立即终止会话生命周期。 

iii) 不要对两个或多个 IP 地址使用相同的会话令牌。 

iv) 限制每个会话令牌的到期时间。

10.允许备份 

禁止用户备份包含敏感数据的应用程序。 可以访问备份文件(即当 android:allowBackup=”true”时),即使在非 root 设备上也可以修改/读取应用程序的内容。 所以建议把allow backup设为false。 

11. 限制从其他应用程序访问安卓应用程序屏幕

理想情况下,您的活动不应为其他服务或应用程序的开放提供任何条件。 仅当您有特定要求从其他应用程序访问您的 flutter 屏幕时才将其设置为 true,否则更改为 安卓:导出=“假”

12.限制从android应用程序安装包

请求安装包 权限允许应用程序 在用户设备上安装新包. 我们致力于防止 Android 平台上的滥用行为,并保护用户免受使用 Google Play 更新机制以外的任何方法进行自我更新或下载有害 APK 的应用的侵害。

总结 

移动应用程序变得比以往任何时候都更加个性化,每天都有大量客户的个人数据存储在其中。 为了在用户之间建立信任和忠诚度并防止公司遭受重大财务和凭证损失,现在至关重要的是确保应用程序对用户而言是安全的。 遵循上述移动应用程序安全检查表肯定有助于防止黑客入侵应用程序。

作者简介:

Raviteja Aketi 是 Mantra Labs 的高级软件工程师。 他在 B2B 项目方面拥有丰富的经验。 Raviteja 喜欢探索新技术、看电影以及与家人和朋友共度时光。

阅读我们最新的博客: 用 Nest.JS 实现一个干净的架构

值得在您的收件箱中传递的知识

时间戳记:

更多来自 咒实验室