【发布时间】:2020-09-03 06:22:14
【问题描述】:
如何在我的应用程序中保护我的 AWS 凭证?存储 AWS 凭证的理想位置是什么?如何在运行时获取它们?
请参阅下面的警告:
泄露的 AWS 凭证
您的应用会公开 Amazon Web Services 凭据。
【问题讨论】:
标签: android amazon-web-services android-security
如何在我的应用程序中保护我的 AWS 凭证?存储 AWS 凭证的理想位置是什么?如何在运行时获取它们?
请参阅下面的警告:
泄露的 AWS 凭证
您的应用会公开 Amazon Web Services 凭据。
【问题讨论】:
标签: android amazon-web-services android-security
如何在我的应用程序中保护我的 AWS 凭证?
不要这样做。攻击者总是有可能使用逆向工程技术来检索它们,并且存在许多开源工具可以使这项任务变得微不足道。
虽然我要分享的文章是用于提取 Api Key,但可以使用相同的方法来提取我的文章 How to Extract an API key from a Mobile App with Static Binary Analysis 中描述的任何其他秘密:
可用于逆向工程的开源工具范围很广,我们在本文中确实无法触及这个主题的表面,而是将重点使用Mobile Security Framework(MobSF) 来演示如何逆向工程我们的移动应用程序的 APK。 MobSF 是一组开源工具,它们在一个有吸引力的仪表板中展示其结果,但在 MobSF 和其他地方使用的相同工具可以单独使用以实现相同的结果。
正如文章所说,您可以通过使用 JNI/NDK 技术将 AWS 凭证隐藏在本机 C 代码中来增加难度:
使用 Android Studio 2.2 及更高版本,您可以使用 NDK 将 C 和 C++ 代码编译为本机库,然后使用 IDE 的集成构建系统 Gradle 将其打包到您的 APK 中。然后,您的 Java 代码可以通过 Java 本机接口 (JNI) 框架调用本机库中的函数。
如果您使用这种方法,攻击者将在运行时使用检测框架来提取您的 AWS 凭证,例如 Frida:
将您自己的脚本注入黑盒进程。挂钩任何功能、监视加密 API 或跟踪私有应用程序代码,无需源代码。编辑,点击保存,立即查看结果。所有这些都无需编译步骤或程序重新启动。
您应该将与 AWS 对话的责任委托给您的后端或反向代理,就像我在我的文章 Using a Reverse Proxy to Protect Third Party APIs 中建议的那样:
在本文中,您将首先了解什么是第三方 API,以及为什么不应该直接从移动应用中访问它们。接下来,您将了解什么是反向代理,以及何时以及为何使用它来保护对移动应用中使用的第三方 API 的访问。
在回答安全问题时,我总是喜欢参考 OWASP 基金会的出色工作。
OWASP API 安全项目旨在通过强调不安全 API 的潜在风险并说明如何降低这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API 安全项目将创建和维护一份 API 安全风险前 10 名文档,以及一个文档门户,用于在创建或评估 API 时提供最佳实践。
OWASP Mobile Security Project - Top 10 risks
OWASP 移动安全项目是一个集中资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类并提供开发控制以减少其影响或被利用的可能性。
OWASP - Mobile Security Testing Guide:
移动安全测试指南 (MSTG) 是移动应用安全开发、测试和逆向工程的综合手册。
【讨论】: