iOS 系統向來以其良好的安全性深得廣大用戶的信賴,特別是其安全升級速度與安卓相比有明顯優勢。但是根據百度安全實驗室對上億臺國內 iOS 設備系統版本統計發現,iOS 10.3.3于7.19日發布至今已有50天,僅有54%的用戶升級到了最新的iOS 10.3.3系統,剩余的近半數國內 iOS 設備依然停留在受高危漏洞影響的舊版系統。即使最新的 iPhone7 系列機型,也有近32%的設備沒有及時升級。而這些舊版本的多個高危漏洞的利用方法已經被公開,未升級用戶面臨著嚴峻的安全風險。我們呼吁 iOS 用戶盡快升級,也呼吁手機廠商采用更有效的技術保護普通用戶,防止他們受到已知高危漏洞的威脅。
安全實驗室對國內上億臺 iOS 設備的系統版本進行了統計,排除虛假設備干擾后結果顯示,目前國內升級到最新的 iOS 10.3.3系統的設備僅占54%。依然有近半的 iOS 設備分散停留在其余44個不同的舊版 iOS 系統。這些運行舊版 iOS 系統的設備將面臨前文中列舉的各個高危漏洞帶來的安全風險。
詳細的系統版本比例分布如圖1所示,從左半部分開始,逆時針方向按新舊版本次序依次為最新的iOS 10.3.3到4年前的版本iOS 7。其中,最新的 iOS 10.3.3系統占比53.6%;iOS 10的舊版本主要以10.3.2 (占比8.2%)和 10.2.1(占比6.2%)為主,10.2與10.1.1各占3%,剩余7個 iOS 10舊版本公占比6.9%;仍有超過18%的用戶停留在 iOS 10之前的版本,發布已經兩年的 iOS 9 占比11.9%,發布已經三年的 iOS 8 占比 6%。
每次iOS系統發布新版本后,新版本已修復的部分漏洞細節以及利用方法會被研究者公開,部分漏洞利用的完整代碼也會公開發布供研究交流。在為安全社區作出貢獻的同時,也為惡意攻擊者提供了便利的攻擊條件。惡意攻擊者也可以從公開渠道獲取相關利用代碼,結合部分Webkit漏洞利用,甚至可以完成從點擊鏈接到獲取Kernel權限的完整攻擊。如果用戶沒有及時更新到最新版的iOS系統,將面臨嚴峻的安全威脅。
表1列舉了部分帶有巨大危害的iOS漏洞:
在iOS系統為用戶提供更多的安全防護與隱私保護策略的同時,針對iOS系統的漏洞也呈現逐年上漲的趨勢。由于iOS系統尚無熱修復的功能,用戶只能通過系統升級的方式來消除漏洞威脅。在過去的一年里,蘋果公司陸續發布12個iOS版本(目前版本號為10.3.3)更新,共計修復338個安全漏洞,包含30個內核漏洞,106個Webkit代碼執行漏洞,其中多個高危漏洞完整利用代碼已經公開,可直接獲取系統最高權限,嚴重威脅用戶安全。
自2016年9月發布至今,iOS 10系統每隔2個月會有一次小版本升級,每次升級平均修復數十個高危安全漏洞。攻擊者可以通過點擊鏈接、訪問惡意服務線網絡、安裝應用等方式對系統發起攻擊,利用這些高危漏洞獲取系統最高權限,進而達到竊取用戶敏感信息、遠程監控、定向攻擊等目的。
蘋果公司開發者網站顯示,自2016年9月發布至今,全球范圍內87%的iOS用戶已經升級到iOS 10,但沒有給出具體的版本分布情況。但如前文所述,小版本的更新不及時依然會造成嚴峻的安全威脅。
表2列舉了含有安全更新的iOS版本、發布時間、間隔天數與修復漏洞總數的統計情況,統計時去除了iOS10中三個(10.0.2,10.0.3,10.1.1)無安全更新的版本。
從表中計算得到,常規情況下平均每46天iOS系統會進行一次系統更新,每次更新平均修復漏洞34個。在某些特殊情況下,蘋果公司也會選擇在更短的周期內發布更新,緊急修復個別高危漏洞。例如,為了修復部分iPhone 7/7Plus 預裝iOS 10系統中的高危漏洞,選在在發布iOS10的同一天發布iOS 10.0.1,對“三叉戟”iOS APT攻擊中的內核信息泄漏漏洞(CVE-2016-4655)進行修復;在Project Zero正式發表博客公開漏洞細節的前一天,發布iOS 10.3.1修復高通Wi-Fi芯片任意代碼執行漏洞(CVE-2017-6975)。
除了統計每個安全更新修復的漏洞總數外,我們還對版本升級中修復的內核漏洞數量(可被利用獲取系統最高權限)和Webkit代碼執行漏洞數量(可被利用完成遠程攻擊)單獨進行了統計:
由于蘋果公司的封閉策略,硬件方面嚴格控制了運行iOS的機型數量;軟件方面,只有系統大版本(通常每年一次)發布才引入API的變動。因此,從開發的角度看,iOS系統的開發生態面臨的碎片化問題不大。
然而,如表4所示,過去四年發布的四個iOS大版本中共涵蓋了45個小版本的升級。這意味著iOS系統每一次帶有安全更新的小版本升級都將把整個iOS安全生態的系統分布進行一次切割。每個小版本都會有部分的殘留用戶,只有一直保持升級到最新系統的用戶才可能最大限度的免受安全威脅。因此,從安全的角度看,iOS安全生態也會面臨碎片化的問題。
值得注意的是,iOS系統升級需要蘋果服務端驗證,服務端只允許iOS系統升級至當前的最新版,這種升級策略在一定程度上可以避免用戶在部分中間版本有滯留,緩解安全生態碎片化的問題。
然而,實際的統計結果顯示,iOS安全生態碎片化問題依然存在,用戶選擇不升級的帶來的安全隱患不容忽視。
另外,我們還統計了自7月19日iOS 10.3.3正式發布以來,國內iOS用戶系統的升級趨勢。如圖3所示,iOS 10.3.3主要來自10.3.2的用戶,這部分用戶升級習慣較好,會在接到新版本通知時及時升級系統。升級系統的設備中,近80%在發布新版本后的三周之內選擇了升級,隨后整個升級趨勢放緩。其他各殘留舊版本均有少量用戶選擇升級,整體占比有微小的下降趨勢,但大多數用戶仍然選擇停留在舊版系統。
雖然蘋果強制升級最新版的策略在一定程度上可以緩解安全生態的碎片化,從實際的統計情況來國內近半數的iOS設備并不能及時升級,安全生態的碎片化問題依然存在。近期iOS 11會正式發布,在提供新功能同時,還會修復大量安全漏洞,建議廣大用戶在條件允許的情況下及時升級到最新版本,避免受到高危漏洞影響。同時我們也呼吁手機廠商采用更有效的技術保護普通用戶,防止他們受到已知高危漏洞的威脅。
[1] https://developer.apple.com/support/app-store/
[2] https://www.cvedetails.com/version-list/49/15556/1/Apple-Iphone-Os.html
[3] https://bugs.chromium.org/p/project-zero/issues/detail?id=1247
[4] https://github.com/doadam/ziVA
[5] https://bugs.chromium.org/p/project-zero/issues/detail?id=1004
[6] https://bugs.chromium.org/p/project-zero/issues/detail?id=965
[7] https://en.wikipedia.org/wiki/IOS_version_history