如果逆向工程是可能的,如何保护应用程序IPA免受黑客攻击



最近我们为一家大型银行机构在应用商店开发并发布了一款手机银行应用。该银行聘请了一家安全公司对该应用程序进行道德黑客攻击,以查看它是否以任何方式泄露机密数据。

我们最近收到了该公司的黑客报告,尽管说不存在严重的安全问题,但其中包含了项目的所有类文件,方法名和汇编代码的列表。

现在客户端坚持我们修复这些安全漏洞并重新发布应用程序。但是我们不知道他们是如何设法从应用程序的IPA中获得所有这些细节的。我在SO上搜索了一下,发现了一个提到这个链接的帖子,上面说你无法挽救你的应用程序不被黑客入侵。

请帮助我如何修复这些安全漏洞,或者如果不可能,如何说服客户。

编辑:最近看到了这一页。似乎Arxan的EnsureIT可以防止应用程序IPAs被逆向工程。有人经历过吗?

总是有风险。即使您自己不引入漏洞,该平台也可能允许漏洞利用,最终可能为恶意攻击者提供入口点。

关于你的问题:不能假设硬编码的URL,即使难以置信的混淆,也不能从你的产品中剥离出来。始终设计你的应用程序,这样即使内置资源受到损害,用户数据的安全也能得到保证(尽可能)。如果仅仅知道该URL就构成了安全威胁,那么您的整个方法和客户端API本质上是不安全的。请记住,这些信息也可能被中间人攻击(以及其他攻击模式)捕获。

通过模糊避免安全性。只在必要时将敏感数据存储在磁盘上。作为规则,不允许PIN/TAN存储

一些可能(或可能不)说服你的客户,你的应用程序是尽可能安全的想法:

  • 只要应用程序在非越狱设备上运行,攻击者就不太可能获得任何用户数据,即使知道你的应用程序的内部情况,因为iPhone通常不会提供干扰你的应用程序的机会
  • 如果攻击者能够获得你的用户数据,并且你已经用iOS下可用的所有手段保护了这些数据(->钥匙链->加密芯片->…),那么这不是你的错。这意味着设备要么是越狱的,要么是系统本身存在漏洞,这两种可能性你都无能为力。
  • 防止应用程序的逆向工程是不可能的。即使你在混淆方面投入了更多的努力,具有强烈动机的攻击者仍然能够得到他想要的东西。你的客户需要习惯这一点,因为这是一个事实。
  • 其他平台也有类似的漏洞,但在iPhone上,至少你有一个封闭的环境,被木马攻击的风险降低了。
  • 政府和安全公司经常被黑客攻击,尽管他们现在应该如何保护自己。这意味着生活本质上是不安全的,应对它。

我最近在研究这个问题,我发现这篇文章很有帮助,尤其是引用的部分:

原生应用程序的代码以二进制可执行文件的形式存储,并进一步加密;只有当处理器将可执行文件加载到随机存取存储器中,并且整个解密过程发生在硬件级别时,才执行它的解密。这就是为什么创建离线解密工具非常困难的原因。解密加密二进制数据的唯一方法是在安装了一些特殊工具的越狱设备上。

iOS中的安全:保护。ipa文件内容

最新更新