Android 8.0和iPhone X一樣安全,這是真的嗎?
不少移動行業專家都表示,這次引入的Project Treble 對谷歌而言是安全方面的里程碑。它將供應商的某些具體實施方案(第三方製造商寫的設備專用、更低層級的軟體)與 Android 系統框架進行了剝離。Project Treble 的一大目標就是讓 Android 安全更新流程「流線化」。
原本 Android 打安全補丁的流程就是 Android 安全防護中的一大薄弱環節——谷歌《Android Security 2016 Year In Review》中就談到過超過一半的 Android 設備過去一年未能及時接受安全更新。
Project Treble
如上面提到的,Project Treble 的存在就是為了讓 OEM 廠商和配件製造商,以更為簡單、快速和低成本的方式發出 Android 更新。這個項目把硬體專用的驅動、固件(比如三星、高通這些企業提供的手機組件固件和驅動)與 Android 系統本身進行了分離。
這樣一來,谷歌發布操作系統補丁,就不需要再為了晶元適配之類的問題去等那些供應商了。谷歌表示,Android 的這種模塊化構建方式,對於那些很老的硬體設備而言——可能 OEM 合作夥伴都已經不再做支持了——提供更新支持,還是相當有價值的。
有了 Project Treble,谷歌將 Android 系統框架和供應商的實施方案劃分成了不同的流程,而且雙方採用某種標準供應商介面來實現互通。這種「供應商介面」本身也會進行版本更新,也就是說新版 Android 系統框架對於更老的設備而言,會儘可能做到最小的變更。
Lookout 安全研究人員 Andrew Blaich 表示:Project Treble 是長期戰略的組成部分,幫助所有的 Android 系統參與者更好地過渡到最新的系統版本之上。
Android 的進一步切割
將 Android 做進一步切分的策略,能夠實現更為高效的組件管理,同時對安全而言也是有價值的。這本身就是 Project Treble 期望達到的目標,也是谷歌減少 Android 攻擊面策略的組成部分。
Android 平台安全負責人 Nick Kralevich 在先前的 Black Hat 大會上說:「要減少攻擊面,有很多事要做。比如怎麼確定一款應用只幹了應該乾的事情?如何讓暴露在外的部分最小化?如何在 Android 系統中控制流程,並遵循最小許可權原則?」
過去,谷歌做安全的方式是這樣的:專註於 exploit 緩解方案,比如說 fstack-protector 和 ASLR,還有格式化字元串漏洞(format string vulnerabilities)。不過這種方式不夠高效,為了進一步減少攻擊面,阻止如早年的 Stagefright 漏洞再度出現,谷歌才開發了現如今的 Android O。
在更早版本的 Android 系統中,攻擊者可以繞過 SELinux,利用漏洞組合,藉由 MediaServer 實現遠程代碼執行。不過到了 Android 7(牛軋糖)情況就不同了,MediaServer 切分成了 7 個組成部分,如 MediaExtractor、MediaDrmServer 等,可以避免格式化字元串漏洞。
在 Project Treble 中,谷歌進一步進行了組件切分,還在媒體框架中為音頻、攝像頭和 DRM server 引入了新的硬體抽象層(HAL)。有了這些硬體抽象層,Android 框架切分成了更多獨立進程和沙盒,且不會訪問系統內核,這對攻擊者而言,要通過漏洞組合來入侵設備,難度就大了很多。
內核一級防範
用戶空間的攻擊面是減少了,所以攻擊者有時更傾向於在 Android 內核中找漏洞,很多研究人員也是這麼乾的。2014 年,谷歌說內核漏洞佔到所有上報漏洞的 4%,而現如今這個數字已經提升到了 39%。
Android O 在這部分也做了努力,通過引入 seccomp filter(安全計算)來限制內核訪問。seccomp 是種安全特性,而 filter 系統會採用一個可配置策略對內核做調用。谷歌表示,關閉未使用的系統調用能夠減少內核攻擊。
Android 開發團隊安全工程師 Paul Lawrence 今年早前就說過:「在 Android 設備支上,內核對於實施 Android 安全模型來說起到舉足輕重的作用。安全團隊致力於加固 Android 的用戶空間,對進程做隔離和降權,所以內核越來越成為攻擊的重點。」 Seccomp 令未使用的系統調用對應用軟體不可訪問,這樣一來有潛在威脅的 App 也就無法施展惡意行為了。
應用管理和控制更進一步
就 App 許可權問題,谷歌這次也做了調整。許多攻擊者入侵設備的一個主流方案就是在某個 App 中構建惡意程序。雖然谷歌已經在 Play Store 中設立了不少認證關卡,但其實 FreeBuf 先前也報道過不少 Play Store 中的惡意程序,更何況很多用戶還會從第三方下載 App。
一般來說,用戶自己從第三方下載 App 安裝,需要首先在系統中設置允許未知來源安裝。這個許可權設定在系統中是全局生效的,要麼就是不允許第三方來源來裝,要麼就是完全允許。
奧利奧系統在這一點上做了改進,用戶可以針對單個應用設定這部分許可權,也就是說如果攻擊者借用路過式下載方案,意圖在用戶設備上安裝惡意程序,用戶可以自行決定是否下載以及其許可權設定如何。
系統警告(System Alert)
這其實也是 Android O 在應用許可權方面的調整,谷歌表示這項特性是針對系統警告窗口功能所做的安全加強。原本開發者利用系統警告特性來開發一款 App,可以實現在所有其它 Android 應用上方顯示彈窗。
FreeBuf 先前就曾報道過有開發者利用這一特性進行釣魚或者勒索,比如欺騙用戶輸入身份憑證,或者宣稱窗口將永遠存在,要求受害者支付贖金才讓窗口消失。而在新版的 Android O 系統中,系統警告層會加入提醒,點擊就能移除彈出窗口。
驗證啟動系統(Verified Boot)
早在 2013 年,Android 其實就已經有驗證啟動系統了,這項功能是為了保證設備軟體(從硬體信任根直到系統分區)的完整性,啟動過程在進入下一個階段之前,前一個階段都會先驗證下一個階段的完整性和真實性——所以早前的不少設備如果由用戶刷入第三方固件,就會面臨警告或者驗證不通過,無法啟動設備的問題。
在最新的奧利奧系統中,驗證啟動進行了升級,系統現在會阻止用戶啟動到更早版本的系統——因為某些攻擊者可能採用回滾系統的方式來攻擊,畢竟老版本的系統會包含一些已經公開的漏洞。
應用與移動設備管理廠商利用這項特性,也可以在此過程中保護其硬體區域安全了。總的說來,這就能夠確保系統通過了驗證啟動,檢查設備已經按照要求打了相應的補丁,此後再授權用戶訪問引用應用或者企業資源。
更安全的協議
Lookout 安全研究人員 Andrew Blaich 還說,奧利奧系統現如今在網路連接時還會阻止使用更老的、不安全的協議:「HTTPS 連接的 SSLv3 已經不再受到支持,也就能夠阻止設備及其應用,使用哪些可能泄露敏感數據的不安全協議。」同時,他還說谷歌還加固了某些網路連接 API,避免更早 TLS 版本可能泄露敏感數據的問題。
安全專家:現在和 iPhone 一樣安全
當前,Android Oreo 僅針對某些 Google Pixel 手機開放。谷歌表示,未來 6 個月內,Android O 會推給第三方旗艦設備,包括來自三星、LG 和 HTC 的手機。不過 Android O 要大面積惠及移動設備可能需要花很長時間,畢竟 Android 碎片化問題不是一天兩天了。好比 Android 7.0 是去年 8 月份推出的,到現如今一年多,從 Duo Security 的數據來看,僅一半設備用上 7.0。
來自 Duo Security 的 Lady 表示:「Android O 確實是一大步。」他甚至認為 Android O 彌合了 Android 和 iPhone 之間的安全差距。「以前,如果你在乎安全就得花不少錢買台 iPhone,但很快可能只要 50 美元買台運行 Android O 系統的手機,在安全性上就已經能夠和 1000 美元的 iPhone X 比肩了。」
* 參考來源:ThreatPost,歐陽洋蔥編譯


※當大家都在說iPhone X的時候確沒有人談三星新一代的旗艦手機Note 8
※精仿iPhone8已經現身!大家不要買錯了
※三星炸完蘋果炸,iPhone8要涼了?韓媒爆料蘋果8電池和Note7是同一供應商
※iPhone8負面纏身,庫克納悶:為什麼中國不再愛蘋果?
TAG:iPhone |