2011-08-04 33 views
26

最近,我們在一家大型銀行機構的應用程序商店中開發併發布了一款手機銀行應用程序。該銀行聘請了一家安全公司對應用程序進行道德黑客攻擊,以查看它是否會泄露機密數據。如何在逆向工程可能的情況下保護應用程序IPA免受惡意攻擊

我們最近收到了該公司的黑客報告,該報告儘管沒有提到嚴重的安全問題,但仍包含項目的所有類文件,方法名稱和彙編代碼的列表。

現在客戶堅持要求我們修復這些安全漏洞並重新發布應用程序。但是我們不知道他們是如何設法從應用程序的IPA中獲取所有這些細節的。我搜索了這一點,發現一個特別的帖子提及this鏈接,其中指出,你不能保存你的應用程序被黑客攻擊。

請幫助我如何解決這些安全漏洞,或者如果不可能,如何說服客戶端。

編輯: 最近遇到this頁面。看起來像Arxan的EnsureIT可以阻止應用IPA逆向工程。任何有經驗的人?

+1

您應該檢查這個問題:http://stackoverflow.com/questions/5556849/iphone-ipad-app-code-obfuscation-is-it-possible-worth-it – andreamazz

+0

謝謝你的答案和視頻。然而,文章中接受的答案表示,目標C中的混淆是不可能的,並且已經描述的手動方法對於併入已經完成的應用來說太繁瑣和耗時。 – Vin

+0

道德黑客?如果有人嘗試不道德的黑客行爲會怎麼樣? – peko

回答

9

還有總是涉及的風險。即使您自己沒有引入漏洞,該平臺也可能允許利用這些漏洞,最終可能會爲惡意攻擊者提供入口。

至於你的問題:它是而不是可以安全地假設硬編碼的URL,即使混淆無法置信,也不能從你的產品中刪除。 總是設計您的應用程序,以保證(儘可能)用戶數據的安全性,即使內置資源受到損害。如果單單瞭解這個URL就會帶來安全威脅,那麼您的整個方法和客戶端API本質上都是不安全的。請記住,這樣的信息也可能被中間人攻擊(以及其他攻擊模式)捕獲。

避免默默無聞的安全。如果有必要,只將敏感數據存儲在磁盤上。通常不允許PIN/TAN存儲。

有些想法可能(也可能不會)說服你的客戶,你的應用程序是安全的,因爲它可以:

  • 只要應用程序在非越獄的設備上運行,這是不可能的攻擊者即使掌握了應用內部知識也能夠獲取任何用戶數據,因爲iPhone通常不會提供干擾您的應用的機會
  • 如果攻擊者能夠獲取您的用戶數據並提供你一直在用iOS( - > keychain - > crypto chip - > ...)提供的一切手段保護這些數據,那麼這不是你的錯。這意味着該設備要麼已越獄,要麼系統本身存在漏洞,已被利用,您無法做任何事情。
  • 這是不可能的,以防止你的應用程序的逆向工程。即使你花費更多的精力去模糊,一個有強烈動機的攻擊者仍然能夠得到他想要的東西。您的客戶需要習慣這一點,因爲這是事實。
  • 其他平臺也遭受類似的漏洞,但在iPhone上至少有一個封閉的環境,並減少了被木馬等攻擊的風險。
  • 政府和安全公司經常遭到黑客攻擊,儘管他們現在應該如何保護自己。這意味着生活本身就是不安全的,應付它。
+0

你的觀點有點像,嘿甚至政府被黑客攻擊,爲什麼我不應該?認真這是沒有任何爭論的。你不能假設該設備不是jaibroken等。 但正如你所說,沒有安全通過默默無聞。 – peko

+0

我只是想說明一下事情。這並不意味着沒有關心安全的藉口。相反,它應該解釋說,即使採用最複雜的安全措施,也絕不能100%確定您的產品是安全的。 – Toastor

+3

當然,我不能假設該設備沒有越獄。但我可以假設,那個越獄設備的用戶知道他在越獄時做了些什麼,而且他可能會損害他或她的設備的安全。因此,如果由於越獄,用戶將重要的個人數據泄露給攻擊者,這在他或她自己的責任範圍內。 – Toastor

1

我最近研究了這一點,我發現這篇文章有幫助,尤其是部分報價:

的本機應用程序的代碼存儲在一個二進制可執行文件的形式,這是進一步加密;只有當處理器將可執行文件加載到隨機存取存儲器中並且整個解密過程在硬件級發生時才執行其解密。這就是爲什麼創建離線解密工具非常困難的原因。解密加密二進制數據的唯一方法是在安裝了一些特殊工具的越獄設備上。

Security in iOS: Protecting .ipa File Content by Stoyan Stoyanov

相關問題