Ani*_*ddy 4 security android cross-platform ios flutter
我正在尝试使用 Flutter 开发支付应用程序,有什么方法可以保护我的应用程序 API 和令牌或使应用程序逆向工程证明。
Exa*_*a37 14
我正在尝试使用 Flutter 开发支付应用程序,有什么方法可以保护我的应用程序 API 和令牌或使应用程序逆向工程证明。
如果您正在寻找防弹解决方案,因为它们可以 100% 有效地防止对移动应用程序二进制文件进行逆向工程以从中提取令牌或秘密,那么我必须告诉您,不幸的是,这是不可能实现的,但您可以它更难......它的难易程度取决于您愿意为您的用例投入或法律要求的努力和资源。
另一方面,保护移动 API 不被他人访问,那么您的移动应用程序的真实实例就有可能以非常高的信心实现。
使用大量开源工具对移动应用程序二进制文件进行逆向工程以从中提取 API 令牌非常容易,正如我在我的文章如何使用静态二进制分析从移动应用程序中提取 API 密钥中的演示:
可用于逆向工程的开源工具范围非常广泛,我们无法在本文中触及该主题的表面,而是将重点放在使用移动安全框架 (MobSF)来演示如何逆向工程我们的移动应用程序的 APK。MobSF 是一个开源工具的集合,它们在一个有吸引力的仪表板中展示他们的结果,但是在 MobSF 和其他地方使用的相同工具可以单独使用来实现相同的结果。
另外,一个中间人(MITM)攻击可以用于提取相同的API密钥,对于这一点,我们也有开源的工具,如mitmproxy,我在我的文章演示窃取该API密钥与在一个男人中间攻击:
为了帮助演示如何窃取 API 密钥,我在 Github 中构建并发布了适用于 Android的Currency Converter Demo应用程序,它使用与我们在早期的Android Hide Secrets应用程序中使用的JNI/NDK技术相同的JNI/NDK技术来隐藏 API 密钥.
因此,在本文中,您将学习如何设置和运行中间人攻击来拦截您控制下的移动设备中的 https 流量,以便您可以窃取 API 密钥。最后,您将在高层次上看到如何缓解 MitM 攻击。
逆向工程是一个巨大的主题,您可以通过阅读OWASP 移动安全测试指南 (MSTG) 的 Github存储库中的降价文件0x04c-Tampering-and-Reverse-Engineering.md来了解有关逆向工程中使用的技术的更多信息。
您无法使移动应用程序 100% 逆向工程证明,但您可以使用许多强化代码技术来使其更加困难和/或使用一些运行时自我保护机制,即RASP:
运行时应用程序自我保护 (RASP) 是一种安全技术,它使用运行时工具通过利用来自运行软件内部的信息来检测和阻止计算机攻击。
据说 RASP 技术通过监视其输入并阻止可能允许攻击的输入来提高软件的安全性,同时保护运行时环境免受不必要的更改和篡改。
您可以在 OWASP MSTG 存储库中阅读一些可能的反逆转防御:
因此,这些都是在客户端做出决策的方法,因此很容易被使用检测框架绕过,例如Frida:
将您自己的脚本注入黑盒进程。挂钩任何函数,监视加密 API 或跟踪私有应用程序代码,无需源代码。编辑,点击保存,并立即查看结果。无需编译步骤或程序重新启动。
我是在告诉你使用它们毫无价值吗?不,相反,您应该尽可能多地添加防御层,就像过去几个世纪的城堡如何防止敌人突破外层防御一样。
我潜入你如何捍卫自己的API服务器之前,我想先明确一个误解,通常我找到任何资历的开发者,也就是大约之间的区别谁和什么是访问的API服务器。
我写了一系列关于 API 和移动安全的文章,在文章为什么你的移动应用程序需要 API 密钥?你可以详细阅读之间的区别谁和什么是访问您的API服务器,但我会在这里提取它的主要花费:
向 API 服务器发出请求的内容是什么。它真的是您的移动应用程序的真实实例,还是机器人、自动化脚本或攻击者使用 Postman 之类的工具手动浏览您的 API 服务器?
在谁是移动应用,我们可以验证,授权和以多种方式确定,比如使用OpenID登录连接或流的oauth2的用户。
所以想想谁作为用户你的API服务器将能够进行认证和授权访问数据,想想什么为令代表用户的这一要求的软件。
因此,任何在客户端运行并需要一些秘密才能访问 API 服务器的东西都可能以不同的方式被滥用,您可以在有关移动 API 安全技术的本系列文章中了解更多信息。本文将教您如何使用 API 密钥、用户访问令牌、HMAC 和 TLS 固定来保护 API 以及如何绕过它们。
要解决的问题是什么在一系列有关手机API安全技术,我上面提到并接受它们只能促使你的API服务器未经授权的访问更难文章中提到,你需要使用一个被访问移动应用或所有解决方案绕过但并非不可能。
使用移动应用证明解决方案可以采用更好的方法,该解决方案将使 API 服务器能够以非常高的置信度知道只响应来自真正移动应用的请求。我建议您阅读我对如何为移动应用程序保护 API REST的问题给出的答案?对此有更详细的说明。
在回答安全问题时,我总是喜欢参考 OWASP 基金会的优秀作品。
OWASP API 安全项目旨在通过强调不安全 API 中的潜在风险并说明如何减轻这些风险来为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API 安全项目将创建和维护一个前 10 个 API 安全风险文档,以及创建或评估 API 时最佳实践的文档门户。
OWASP 移动安全项目是一个集中资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类并提供开发控制以减少其影响或被利用的可能性。
移动安全测试指南 (MSTG) 是移动应用安全开发、测试和逆向工程的综合手册。