黑客們對於智能手機安全性的理解遠比普通手機用戶要深刻的多。賽門鐵克報告曾深入分析了安卓和iOS系統中存在的固有問題,並重點強調:
“如今手機設備的操作系統大環境是雜亂的無安全性的,大部分手機在連接企業網絡時並沒有受到企業網絡的安全控制,很多手機與缺乏監管的第三方雲服務進行數據同步,有些人則將手機與安全性未知的公用電腦相連,然後又與企業網絡相連。”
不要看到企業這兩個字就覺得跟自己沒有關系,實際上手機安全問題是每個手機用戶都在面對的問題。
支柱
首先引用Nachenberg 在報告中的壹段話:
“開發團隊在這兩款手機操作系統的最新版本設計時已經考慮到了安全問題,並試圖將安全性融入操作系統,從而減少來自外部的安全攻擊。”
接下來 Nachenberg測試了安卓和iOS在以下幾方面的安全防範情況:
· 傳統訪問控制: 傳統的訪問控制技術包括密碼以及屏幕保護鎖。
· 基於許可的訪問控制: 基於許可的訪問控制是為每個程序添加訪問控制能力。
· 程序起源: 每壹個程序都會擁有壹個郵戳,表示該程序的作者,通過數字簽名方式來防止程序被非法修改。
· 加密: 對便攜設備上的數據進行加密隱藏。
· 隔離: 隔離技術用於限制應用程序訪問特定敏感數據或系統的能力。
操作系統的表現
TechRepublic 專欄作家 Francis首先會對安卓和iOS操作系統針對每個支柱的表現給出評論,然後作者根據Nachenberg的報告進行總結。
支柱壹:傳統訪問控制
Francis: 在傳統訪問控制方面,根據我的經驗,iPhone或安卓系統都有很好的表現。
不過,如果觸摸屏上的指紋印記太清晰,可能會有助於黑客破解手機密碼。在我看來,大部分手機程序開發人員沒有為程序添加通過操作系統加鎖解鎖屏幕實現程序鎖定的功能。
在安卓系統上,我使用過壹款由Carrot App 開發的軟件 App Protector Pro 。這個軟件可以讓我為每個程序添加額外的密碼保護,如Gmail, Exchange, 以及Facebook。有了這個程序,如果我的手機丟失,並且對方破解了鎖屏密碼,那麽我還能有額外的壹些時間來修改這些程序所涉及的賬號密碼。
根據我的記憶,好像在iPhone裏沒有類似的安全軟件。我懷疑這是因為iOS有更具有約束力的沙箱模型。
Kassner: Nachenberg認為iOS提供的訪問控制功能可以在手機丟失後起到壹定的安全防範作用。在這方面Nachenberg認為iOS與Windows桌面系統的安全性類似。
報告中Nachenberg 對於安卓系統就沒那麽客氣了。他認為雖然安卓系統也能幹防止偶爾發生的攻擊,但是安卓系統不支持對SD卡中的數據進行加密存放,因此如果手機被盜,通過物理方式直接讀取SD卡中的數據,就使得安卓的密碼防範功能毫無用處了。
支柱二:基於許可的訪問控制
Francis: 根據我的經驗,iOS上的許可機制很少,比安卓系統上的許可機制少很多。而唯壹壹個肯定存在的許可機制是當用戶訪問其它受保護的子系統時,iOS會提示用戶需要相應的資源,並要求用戶同意。
相反,在安卓系統上這樣的許可機制很多。我認為理論上這樣做很成功,但是在現實世界中這樣的許可系統起不到什麽作用,因為這種許可理論上需要依賴於用戶對於科技的了解。
目前5個黑客裏有4個都在使用安卓系統的手機,安卓手機也逐漸成為了主流智能手機,但是壹般用戶並不清楚針對某個程序,到底是應該允許其運行,還是不允許。
實際上我覺得用戶也不該承擔這種判斷責任。就好像我去牙科診所補牙,我可不希望醫生在進行必要的操作時,還征求我的意見該使用哪個儀器。畢竟我是付費享受服務的,我依賴於診室的資源和牙醫的經驗技術。
Kassner: 我曾經聽過很多人說iOS平臺中的許可系統問題。Nachenberg在報告中闡述了這個問題:
“iOS系統中有四類系統資源是必須經過用戶許可確認後,程序才可以訪問這些資源的。而其它系統資源,要麽是明確的允許用戶使用軟件訪問,要麽就是明確的禁止用戶訪問,這是iOS內置的隔離策略。而出現以下情況時,程序可能會向用戶提出確認請求:
· 手機的全球定位系統需要方位本地數據時
· 接收到來自互聯網的通知警告信息
· 向外撥打電話時
· 向外發送短信或電子郵件信息時
如果有任何程序試圖使用以上四類功能,那麽用戶首先會看到壹個許可提示,當用戶許可後,該程序才可以實施該功能。如果用戶允許了GPS系統或通知警告系統的功能,程序會被永久允許使用該系統。而對於向外撥打電話或發送短信和電郵的功能,則需要用戶每次點擊確認。”
而安卓平臺使用的是完全不同的方案。它是基於“全部或沒有”的概念,我引用Nachenberg在報告中的壹段話來解釋這個概念:
“每個安卓程序內部都集成了壹個許可列表,記載了能夠讓該程序正常工作所需的系統功能。這個列表會采用普通手機用戶能夠看的懂的方式,在軟件安裝過程中提示用戶,而用戶會根據這個軟件的安全風險來決定是否要繼續安裝該軟件。
如果用戶仍然選擇安裝軟件,那麽程序將獲得訪問相應系統資源的權限。而如果用戶放棄安裝軟件,程序就完全被禁止運行了。安卓系統上沒有所謂的中間地帶。”
支柱三:程序起源
Francis: 在安卓和iSO系統中,身份起源和判斷真實性的機制是明顯不同的。人們對這兩種機制的優劣壹直都沒有結論,但目前來看,針對安卓系統的惡意軟件要多於iSO。
我不認為Google的安卓系統在安全性上是失敗的,但是壹系列薄弱的安全點,使得安卓系統在面對安全威脅時顯得更脆弱。對於黑客來說,在安卓系統上開發和散步惡意軟件沒有太大的阻礙,尤其是將軟件歸為免費或***享時,傳播速度更快。
Google對於之前提交的應用程序沒有審查機制。不需要開發者證明自己就是擁有該程序開發和修改權限的人。也沒有集中化的開發者授權。目前有多種渠道都可以發布和傳播安卓系統上的軟件,而且渠道數量還在不斷增加。而整個過程中存在的最大漏洞就是,黑客可以毫不費力的獲取軟件店裏的軟件,通過逆向工程還原成源代碼,經過修改加入惡意代碼並打包後,再將其以正常軟件的名義發布出來。
雖然iPhone的應用軟件也可以通過這壹系列工作進行篡改,但是iPhone的編程語言並不公開,這種非公開的編程語言比Google平臺的Java語言反匯編要難的多。
Kassner: 在這方面, Nachenberg的觀點和 Francis 是壹致的。iOS在這部分做的比安卓系統強。
支柱四:加密
Francis: 我曾經參與過壹個跨平臺的手機軟件項目,該項目有明確的隱私保護要求,並且在最後還會有壹個獨立的第三方工程師團隊對源代碼進行審核。
在這個項目初期我就發現,iSO的用戶設置數據默認狀況下會被加密存儲在某個位置,而安卓系統則是將用戶設置數據直接放在相應的程序所在位置。
這並不表示安卓系統上的敏感數據都沒有被加密,或者安卓系統使用的加密技術不如iphone。這只是說明安卓系統會把更多的加密工作留給應用程序自己,而不是通過操作系統來實現。這麽做有好處也有不足。
如果妳是安卓平臺上的軟件開發者,那麽妳的軟件數據安全性可能不如iSO上的軟件。但是如果妳自己為自己的軟件設定了特殊的加密方式,那麽妳的軟件數據安全性可能會高於iSO系統,因為黑客不得不破解程序的加密算法。
但是作為手機用戶,妳並不知道所下載的軟件是否帶有加密機制。而如果軟件沒有加密機制,那麽由於大多數用戶的應用程序都安裝在SD卡上,而SD卡又是很容易被取出(比如插入電腦傳輸數據),因而其安全性無法得到保證。
Kassner: 在加密方面Francis 的觀點與Nachenberg壹致。不過我還是要說壹下我對這兩個平臺的看法。
首先,iOS使用了加密機制,但是這是有局限的。很多程序在後臺運行(就算用戶沒有登錄)需要訪問存儲數據。為了正常運行, iOS需要在本地復制壹份非加密的密鑰。這意味著對於越獄的手機,黑客不需要用戶密碼就可以訪問存儲數據。
正如Francis所說,所有版本的安卓,除了3.0版以外,都不支持加密數據。這意味著通過越獄技術或者任何取得管理級訪問權限的用戶都可以瀏覽手機中的任何數據。
支柱五:隔離
Francis: 我個人認為,不論是蘋果還是Google的隔離沙箱模型都是安全可靠的。二者相比,安卓系統的隔離機制稍微有些復雜,但也更具有靈活性。與iOS系統相比,安卓能夠真正應對多任務工作模式。
作為手機程序開發人員,我能看到這種機制帶來的優勢。這使得我們在程序開發過程中就要考慮到安全問題,並且壹直貫穿整個開發過程,而桌面系統軟件的開發,可以在最後環節再考慮安全性問題。
Kassner: Nachenberg和Francis 的觀點又是壹致的。隔離機制可以讓不同的程序分開工作,不會由於某個程序被黑客利用而影響到其它正在運行的程序。
兩者的弱點
對於 iOS和安卓平臺的安全性能,我有深刻的印象。但是不得不說二者都還存在“弱點”。不論妳是否相信,反正我是信了。
Nachenberg 曾跟我提到, iOS 目前只發現了幾個嚴重的漏洞,其中大部分都是與越獄技術有關。不過還沒聽說惡意軟件入侵事件。
安卓系統同樣只有很少幾個嚴重的漏洞。但是Nachenberg表示其中壹個漏洞可以讓第三方程序獲得手機的控制權。而且這個漏洞已經被很多黑客知曉了,其中壹個惡意軟件名為Android.Rootcager。
Android.Rootcager是壹個讓Google難堪的惡意軟件。Nachenberg解釋說:
“更有趣也更具爭議的是,Google針對該惡意軟件推出的修復工具也是利用相同的系統漏洞來繞過安卓的隔離系統,刪除對設備造成威脅的惡意軟件部分。”
總結
可以這樣總結:兩個重量級選手,兩種不同的安全防護哲學,本文的任務就是闡述這兩種安全防護機制的差異。