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

最近,我们在一家大型银行机构的app store开发并发布了一款手机银行应用。 该银行聘请了一家安全公司对应用程序进行道德黑客攻击,看看它是否会泄露机密数据。

我们最近收到了该公司的黑客报告,尽pipe没有出现严重的安全问题,但仍然包含项目的所有类文件,方法名称和汇编代码的列表。

现在,客户坚持认为我们修复了这些安全漏洞并重新发布应用程序。 但是我们不知道他们是如何从应用程序的IPA中获得所有这些细节的。 我search了这一点,发现了一个特别的post提到这个链接,其中说,你不能保存你的应用程序被黑客入侵。

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

编辑:最近遇到此页面。 看起来像来自Arxan的EnsureIT可以阻止应用IPA逆向工程。 任何有经验的人呢?

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

至于你的问题:假设一个硬编码的URL,即使混淆不清,也不可能被剥离出你的产品。 总是devise你的应用程序,以保证用户数据的安全(尽可能),即使内置的资源受到威胁。 如果这个URL的知识本身就构成安全威胁,那么你的整个方法和你的客户端API本质上是不安全的。 请记住,这样的信息也可能被中间人攻击(和其他攻击模式)所捕获。

避免默默无闻的安全。 如果有必要,只将敏感数据存储在磁盘上。 通常不允许PIN / TAN存储。

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

  • 只要应用程序运行在非越狱设备上,即使知道您的应用程序内部组件,攻击者也不太可能获得任何用户数据,因为iPhone通常不会提供干扰您的应用程序的机会
  • 如果攻击者能够得到你的用户数据,并且假定你已经用iOS( – > keychain – > crypto chip – > …)提供的所有手段保护了这些数据,那么这不是你的错。 这意味着该设备或者越狱或者系统本身已经被利用的脆弱性,对这两种可能性你都无能为力。
  • 防止逆向工程是不可能的。 即使你花费更多的精力来模糊,一个有强烈动机的攻击者仍然可以得到他想要的东西。 你的客户需要习惯这个,因为这是事实。
  • 其他平台也有类似的漏洞,但在iPhone上至less有一个有些封闭的环境,降低被木马等攻击的风险。
  • 政府和安全公司经常受到黑客攻击,尽pipe他们现在应该如何保护自己。 这意味着生活本身是不安全的,应付它。