https://newera17031.activehosted.com/index.php?action=social&chash=01e9565cecc4e989123f9620c1d09c09.2117&nosocial=1

觀點

行動App外洩資料問題多 上線前宜深入檢測

2014 / 08 / 01
張維君
行動App外洩資料問題多 上線前宜深入檢測

這篇提到App未檢查SSL憑證的問題,但除此之外,包括權限管理不當、缺乏加密保護、認證授權被繞過、App後端伺服器安全機制不足、甚至App被設計連線到委外開發商網址去作資料統計以及取得資訊源,其中可能有隱私疑慮等問題,都是當今手機App上常見的安全問題。

資策會資安所資深工程師洪光鈞表示,目前行動App上主要的資安問題以機密資料外洩為多,主要問題包括:權限管理不當、缺乏加密保護、認證授權被繞過、邏輯漏洞問題等。

權限管理不當是指App所管理的檔案或功能,可遭未經授權的任意App來存取。DEVCORE執行長翁浩正也指出,如果App將資料存放在不安全的儲存空間,如大家都可存取的sdcard,或者放在/data資料夾但權限設定為公開,這樣手機一旦中了惡意程式,就可以直接存取相關的機敏資料。

缺乏加密保護則是機密資料在儲存或傳輸時沒有加密,以明文儲存在用戶端,或是加密的演算法強度不足等。認證授權被繞過則是重要資料或檔案的存取已採用登入或授權機制,但卻出現可以被跳脫或越過檢查,造成機密資料仍可被存取的問題。至於邏輯漏洞問題,這篇文章談到未檢查憑證是否為真就是典型的邏輯漏洞問題,也就是原本該做檢查的卻未進行。

未檢查SSL憑證的問題,其實在今(2014)年2月iOS也曾被發現類似問題(CVE-2014-1266),蘋果在2周內迅速釋出更新版,而國外資安研究員在1月也發表過研究報告,因此這不算是一個新的攻擊手法。然而以嚴重程度來說,當使用者與攻擊者在同一個無線網路網段下被中間人攻擊時,將會被竊取帳號、密碼、Cookie、個資等資料,翁浩正認為嚴重程度不算低。同樣類似的漏洞在今年4月美國弱點資料庫(NVD)當中也曾被揭漏,其CVSS等級為中級。

至於要如何解決上述問題,承弘國際Mobile App安全檢測團隊表示,問題主因在於使用HTTPS時對於憑證的驗證未開啟,可能就有機會造成帳密被攔截,同樣的問題也會發生在網頁版跟桌機版的相關應用程式中,開發時可以注意檢查憑證正確性,如同多數主流網頁瀏覽器會針對憑證作檢查,若憑證有偽造、過期的現象則提出告警,其次傳輸敏感資料可以考慮編碼或雜湊值,另外有SSL Pinning等驗證憑證有效性的解法,皆可避免有心人竊取資料。

DEVCORE執行長翁浩正分析在Android上之所以會有這樣的問題,原因可能有二:1、開發者使用較舊的版本。在Android 2.X版對SSL的處理較不完善,因此開發者通常會強制忽略,不然常會有錯誤訊息出現。但在較新的4.X版已經不會有此問題,可能銀行為了要相容較多的用戶因此在較舊的版本上開發,但儘管如此開發者還是應該去檢查,也就是透過Certificate Pinning 的手法,在應用程式裡預先存放連線服務器所需的公鑰,在連線時做檢查,在OWASP上有提供實作範例;2.使用自行簽署的簽章,而非向公正第三方CA所申請,也會顯示錯誤訊息。至於在iOS上,由於對SSL的支援較為完整(在 4.0 版本支援 SNI),而且蘋果公司有限制在開發時 WebView 元件不能忽略 SSL錯誤,否則不會容許程式上架,開發者只要有對其他元件做好 Certificate Pinning,那帶來的影響就比較少。

總而言之,手機App與Web程式一樣有各種漏洞,在上線前還是要經過專業資安公司進行檢測,才能降低資安風險。