Iphone 如果可以进行反向工程,如何保护应用程序IPA免受黑客攻击

Iphone 如果可以进行反向工程,如何保护应用程序IPA免受黑客攻击,iphone,ios,ipad,ios4,Iphone,Ios,Ipad,Ios4,最近,我们在app store上为一家大型银行机构开发并发布了一款手机银行应用程序。该银行聘请了一家安全公司对该应用程序进行道德黑客攻击,以查看它是否以任何方式泄露机密数据 我们最近收到了该公司的黑客报告,尽管该报告称不存在严重的安全问题,但它包含了该项目的所有类文件、方法名称和汇编代码的列表 现在客户端坚持要我们修复这些安全循环漏洞并重新发布应用程序。但是,我们不知道他们是如何从应用程序的IPA获取所有这些详细信息的。我搜索了这么多,发现了一个特别的帖子提到链接,上面说你不能保存你的应用程序免

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

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

现在客户端坚持要我们修复这些安全循环漏洞并重新发布应用程序。但是,我们不知道他们是如何从应用程序的IPA获取所有这些详细信息的。我搜索了这么多,发现了一个特别的帖子提到链接,上面说你不能保存你的应用程序免受黑客攻击

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

编辑:
最近我看到了佩奇。似乎Arxan的EnsureIT可以防止应用程序IPA反向工程。任何有过这种经历的人都会有风险。即使您自己没有引入漏洞,平台也可能允许利用漏洞,最终可能为恶意攻击者提供入口点

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

避免默默无闻的安全。仅在必要时将敏感数据存储在磁盘上。作为一项规则,不允许针/棕褐色存储

一些想法可能会(也可能不会)让你的客户相信你的应用程序是尽可能安全的:

  • 只要应用程序在非越狱设备上运行,攻击者就不太可能获取任何用户数据,即使知道你的应用程序的内部结构,因为iPhone通常不会提供干扰你的应用程序的机会
  • 如果攻击者能够获取您的用户数据,并且假设您一直在使用iOS(->keychain->crypto chip->…)下可用的所有手段保护该数据,那么这不是您的错。这意味着该设备要么被越狱,要么系统本身存在已被利用的漏洞,你对这两种可能性都无能为力
  • 不可能阻止应用程序的反向工程。即使您在模糊处理方面付出了更多的努力,具有强烈动机的攻击者仍然能够得到他想要的东西。你的客户需要习惯这一点,因为这是事实
  • 其他平台也有类似的漏洞,但至少在iPhone上,您有一个稍微封闭的环境,并降低了被特洛伊木马等攻击的风险
  • 政府和安全公司经常遭到黑客攻击,尽管他们现在应该知道如何保护自己。这意味着生活本来就是不安全的,应对它吧

我最近对此进行了研究,我发现这篇文章很有帮助,特别是引用的部分:

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


您应该检查这个问题:谢谢您的回答,andreamzz。然而,帖子中公认的答案是,在目标C中进行模糊处理是不可能的,并且已经描述过的手动方法对于已经完成的应用程序来说过于繁琐和耗时。道德黑客?如果有人尝试不道德的黑客行为怎么办?@peko。。这就是客户所害怕的。这就是为什么他们希望我们以一种任何黑客都看不到的方式修复应用程序。但这是不可能的,也不应该是任何线程,有许多项目的代码是公开的,并且仍然被认为是安全的,比如truecrypt、sshd和其他许多项目。你的观点有点像,嘿,连政府都被黑了,为什么我不能?说真的,这不是争论。你不能假设设备没有损坏,等等。。但正如你所说,默默无闻是没有安全感的。我提出这一点只是为了把事情放在正确的角度。这并不是一个不关心安全的借口。相反,它应该解释,即使有最复杂的安全措施,你也永远不能100%确定你的产品是安全的。当然,我不能假设这个设备没有越狱。但我可以假设,使用越狱设备的用户知道他或她越狱时在做什么,并且他或她可能会危及他或她的设备的安全。因此,如果由于越狱,用户将重要的个人数据泄露给攻击者,这是他或她自己的责任。