防止在Airwatch受管设备上进行Android应用反向工程

时间:2019-07-18 07:52:22

标签: android mdm android-security airwatch

从Airwatch功能和文档中,他们提到这些应用程序是容器化的。因此,所有应用程序内容均已安全加密,并且不容易暴露。

对于有根设备,Airwatch可以检测到此类设备并执行远程擦除公司数据。

我想检查Airwatch是否可以保证应用程序代码不能被反向工程,以便从代码库中提取敏感数据,例如API密钥,加密密钥等。

1 个答案:

答案 0 :(得分:0)

  

我想检查Airwatch是否可以保证应用程序代码不能被反向工程,以便从代码库中提取敏感数据,例如API密钥,加密密钥等。

尽管由于我不熟悉而无法向您提供有关Airwatch的建议,但我可以提醒您,如果您将这种类型的敏感信息存储在移动应用中,则您已经处于危险之中,因为反向工程秘密并不像我在文章How to Extract an API key from a Mobile App by Static Binary analysis中所展示的那样困难:

  

摘要

     

使用MobSF对移动应用程序的APK进行反向工程后,我们可以快速提取API密钥,还为我们提供了大量信息,可用于执行进一步的分析,从而可能向移动应用程序和API中揭示更多的攻击源服务器。在此信息中或在可以以smali和java格式下载的反编译源代码中找到用于访问第三方服务的秘密也很常见。

     

现在,您可能会质疑自己如何保护API密钥,为此,我建议您先阅读本系列有关Mobile Api安全技术的文章。

     

这里的教训是,在移动应用程序代码中运送API密钥或任何其他秘密就像锁住家门,但将密钥留在垫子下!

甚至在此other article中受到MitM攻击:

  

结论

     

尽管我们可以使用高级技术(例如JNI / NDK)将API密钥隐藏在移动应用程序代码中,但它不会阻止某人执行MitM攻击以窃取API密钥。实际上,MitM攻击很容易被非开发人员实现。

     

我们重点介绍了一些不错的资源,这些资源将向您展示其他保护移动API的技术,例如证书固定,尽管实现和维护可能会很困难。我们还注意到,仅凭证书钉扎是不够的,因为它可以被绕过,因此需要采用其他技术来保证没有人可以窃取您的API密钥,而且,如果您完成了我建议的深入研究,您将知道到现在为止,在移动API的上下文中,可以保护API密钥免于通过MitM攻击被盗。因此,如果您还没有这样做,请阅读我在缓解MitM攻击一节中链接的文章。

更有经验的开发人员可以在运行时挂钩一些自省框架,例如Frida和xPosed,以拦截和修改任何正在运行的代码的行为。因此,即使他们无法解密您的数据,在您在应用程序中解密内容后,他们也将拦截内容。为了做到这一点,他们只需要知道要钩住您的代码,就可以通过使用移动安全框架或APKTool等工具对移动应用的代码进行反编译和反向工程来实现此目的,但是开源社区中存在更多工具。

Mobile Security Framework

  

Mobile Security Framework是一个自动化的多合一移动应用程序(Android / iOS / Windows)笔测试框架,能够执行静态分析,动态分析,恶意软件分析和Web API测试。

Frida

  

将您自己的脚本注入黑盒进程。挂钩任何功能,监视加密API或跟踪私有应用程序代码,不需要任何源代码。编辑,点击保存,立即查看结果。全部没有编译步骤或程序重新启动。

xPosed

  

Xposed是用于模块的框架,可以在不触摸任何APK的情况下更改系统和应用程序的行为。太好了,因为这意味着模块可以用于不同版本甚至ROM,而无需进行任何更改(只要原始代码的更改不太多)。撤消操作也很容易。

APKTool

  

用于反向工程第三方,封闭的二进制Android应用程序的工具。它可以将资源解码为几乎原始的形式,并在进行一些修改后重新构建它们。由于文件结构之类的项目以及一些重复性任务(例如构建apk等)的自动化,这也使应用程序的使用变得更加容易。