如何發現移動應用程序中的SSL泄密隱患?
譯文安全套接層協議(SSL)是現代互聯網上的一種根本性技術,讓傳輸中數據能夠進行加密、安全傳輸。不過據Tony Trummer和Tushar Dalvi這兩位安全研究人員聲稱,許多大受歡迎的移動應用程序并沒有合理地實施SSL。
Trummer和Tushar都是供職于知名職業社交網站LinkedIn的安全研究人員,他們在近日召開的Defcon安全大會的一場分會上詳細介紹了發現結果。這項研究并沒有得到其雇主(LinkedIn公司)的資助或贊助,而是利用他們倆自己的時間開展完成的。
這兩位研究人員發現,在他們在iOS和安卓平臺上測試的許多移動應用程序中,應用程序開發人員禁用了證書機構(CA)的驗證機制。而這種驗證機制卻是確保SSL證書真實而有效的的最佳實踐。
核查CA
Trummer和Tushar認為,只要利用簡單的測試,就能核查是否與CA取得了聯系。他們建議,研究人員應該安裝BurpSuite軟件(http://portswigger.net/burp/),這個網站應用程序安全測試工具箱既有免費版,也有收費版。Burpsuite可以用作網站流量的代理,為每個主機生成CA簽名的證書。
可以配置裝有移動應用程序的最終用戶設備,以便指向該代理。要是來自該設備的安全SSL流量仍能夠通過,這就表明CA驗證機制沒有在正常工作。
核查主機名稱
就SSL而言,這點也很重要:證書名稱與所聯系的那個網站的名稱相一致。為了測試已落實了相應的主機名稱核查機制,可以為有別于所測試的目標域的域獲得一份有效證書。
Trummer和Tushar都建議,隨后應該配置BurpSuite,以便使用測試證書。要是來自移動應用程序的安全SSL流量仍能夠通過,那么這表明可能存在問題。
Trummer特別指出,還有一些應用程序發送敏感的信息,比如信用卡數據,卻根本沒有任何SSL或加密機制。他表示,移動應用程序的開發人員需要接受培訓,了解怎樣才能合理地實施SSL安全技術。他補充說,廠商們應該落實相應政策,確保傳輸中數據得到了保護。
Trummer建議,安卓開發人員尤其要注意移動應用程序代碼中的TrustManager、SSLSocket和HostName Verifier這些屬性。
對iOS開發人員而言,需要特別注意和認真檢查的幾個方面是現代應用程序代碼中的_AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_、SetAllowsAnyHTTPSCertificate和kCFStreamSSLAllowsAnyRoot這些函數。
原文地址:http://www.esecurityplanet.com/mobile-security/how-to-detect-ssl-leakage-in-mobile-apps.html