2012-09-18 36 views
2

我正在開發一個處理敏感數據的應用程序。Android應用根設備中的應用是否受到攻擊?

該應用程序具有合理的安全模型,其中包括加密,SSL和數據不會永久存儲在設備上。

我試圖確定我的應用程序是否在根設備上運行「安全」,或者設備根源的事實會使攻擊/破解應用程序變得更容易。 所以問題是:處理敏感數據的應用程序是否應該在根設備上運行?

我已經做了研究,但我還沒有看到任何有關根植設備的安全性的討論。我知道檢測固定設備的方法可能會被規避,因此不支持固定設備的重點是什麼?

+1

在不受您控制的設備上運行時,應用程序永遠不會安全。無論您採取什麼預防措施,邪惡的黑客都會找到獲取數據的途徑。防止應用程序在根設備上運行或多或少沒有意義。例如。人們可能會在常規設備上運行黑客版本的應用。 – zapl

回答

1

最大的安全問題,以應用已解鎖裝置是:

  1. 用戶可以訪問內部數據直接
  2. 其他應用程序可以訪問你的應用程序的私有數據

您可以將最好的請執行以下操作:

  1. 以難以反向工程的方式加密數據。如果有人在你的數據之後,你應該假設他們已經反編譯了你的應用。因此,請在服務器上執行所有加密/解密操作,並且不要讓您的算法等常識
  2. 如果您應該在設備本身上存儲數據,請使其變得模糊。所以如果你必須保存一個整數,不要保存原始值。使用類似savedValue = ((((realValue*10)+1)/365*23)*50)+1;這使得黑客很難編輯你保存的值並得到想要的結果,儘管因爲他/她會反編譯你的apk,這是一個非常基本的保護措施。
  3. 在設備上存儲儘可能少的高風險數據。在需要時,通過安全連接下載,顯示並從RAM中刪除。此外,儘可能少地將機密數據保存在存儲器中,因爲可以讀取RAM中未加密的數據。
  4. 確保你的加密技術不容易暴力破解。由於其他應用程序也可以訪問根數設備上的數據,因此您的數據有可能被髮送到遠程服務器進行解密,並且這樣的服務器將具有比您的移動電話更高的處理能力

這些只是我能想到的一些建議。我絕不是安全專家,你可能想諮詢一下這方面的問題。

1

應用程序是否在基於Android的設備中受到攻擊?對,他們是。

即使在無根的手機上,攻擊者仍有可能捕獲漏洞並進行根控制(GingerBreak是該案例之一)。所以沒有100%的手機沒有被盜用,即使它沒有被用戶植根。

如上所述,根檢測不能完全可靠,因爲它們可以被繞過。不過,如果你發現手機根深蒂固,你應該肯定會阻止它。如果你沒有檢測到它,這並不意味着手機沒有根植,你仍然需要有安全機制來抵禦根植手機的攻擊。

有幾個類型,您可能需要應對攻擊:人在這方面的中間人攻擊,鍵盤記錄器,screencaptures,用戶模式的rootkit,內核模式的rootkit,...

的好消息是有些公司會爲您製作圖書館,以保護您的應用免受此類攻擊。他們爲您提供解決方案,讓您從頭痛中解脫出來,因​​爲他們會爲您解決這個問題。 V-Key就是其中之一,你可以看看他們的網站,並考慮是否要購買他們的V-Guard產品。

相關問題