谷歌的Android 11將安全性(BYOD相關(guān))和隱私增強(qiáng)功能作為主要賣點(diǎn),,但谷歌明白,,要想從根本上扭轉(zhuǎn)Android安全態(tài)勢(shì),,就必須在生態(tài)上游和開發(fā)周期的“左側(cè)”下猛藥,。
近日,,谷歌的Android安全新策略引起了網(wǎng)絡(luò)安全和移動(dòng)互聯(lián)行業(yè)的廣泛關(guān)注,。谷歌鼓勵(lì)開發(fā)人員轉(zhuǎn)向使用內(nèi)存安全的編程語(yǔ)言,,例如Java,、Kotlin和Rust,,并宣稱C和C++的安全性亟待提高,。
影響Android操作系統(tǒng)的嚴(yán)重和高危漏洞
頭號(hào)威脅:內(nèi)存安全
根據(jù)谷歌最新公布的安卓安全報(bào)告統(tǒng)計(jì)(上圖),Android操作系統(tǒng)的嚴(yán)重和高危安全漏洞中,,有59%是內(nèi)存問題,,例如內(nèi)存損壞和溢出。內(nèi)存安全是迄今為止最主要的Android安全問題(59%),,其次是權(quán)限繞過漏洞,,占Google安全工程師在2019年修復(fù)的漏洞的21%。
不僅僅是Android系統(tǒng),,內(nèi)存安全通常也是Java,、Windows 10和Chrome等主要平臺(tái)的頭號(hào)安全漏洞類別。谷歌工程師去年曾表示,,Chrome安全漏洞中有70%是內(nèi)存安全問題,。之前,曾有微軟工程師透露說(shuō),,其產(chǎn)品修復(fù)的所有錯(cuò)誤中有70%是內(nèi)存安全性問題,,即允許訪問超出操作系統(tǒng)分配的內(nèi)存和地址的軟件漏洞。
谷歌認(rèn)為,,使用更加安全的開發(fā)語(yǔ)言是保護(hù)Android免受惡意軟件和漏洞利用的根本措施,。“C和C++不能像Java,、Kotlin和Rust這樣的語(yǔ)言提供內(nèi)存安全,。鑒于Android安全報(bào)告中的大多數(shù)安全漏洞都是內(nèi)存安全問題(上圖),因此谷歌采用了兩種安全策略:提高C/C++的安全性,,同時(shí)也鼓勵(lì)使用內(nèi)存安全語(yǔ)言,。”Google在Android安全與隱私小組的博客中指出。
出于相同的安全原因,,亞馬遜(AWS)和Microsoft也在推動(dòng)采用Rust,。Mozilla創(chuàng)建了Rust用于Firefox的Gecko引擎中處理與C++內(nèi)存相關(guān)的安全性問題。Rust的1.0版于2015年推出,,但采用率仍然較低,。Microsoft希望將其用于系統(tǒng)編程而不是應(yīng)用程序開發(fā)。AWS使用Rust構(gòu)建了基于Linux的容器操作系統(tǒng)Bottlerocket,。
數(shù)據(jù)驅(qū)動(dòng)的安全強(qiáng)化
谷歌指出,,由于安卓生態(tài)系統(tǒng)的多樣化、安全性策略和方法以及緩解措施的的優(yōu)先級(jí)決策遵循“數(shù)據(jù)驅(qū)動(dòng)”,。
這種以數(shù)據(jù)為依據(jù)的方法已產(chǎn)生了可衡量的實(shí)際結(jié)果,。根據(jù)數(shù)據(jù)統(tǒng)計(jì),過去一年Google修復(fù)的絕大多數(shù)Android漏洞都來(lái)自媒體,、藍(lán)牙和NFC組件,。媒體庫(kù)也是Google在2015年披露的Android遠(yuǎn)程利用高危漏洞Stagefright所影響的關(guān)鍵組件。
如今,,谷歌為加強(qiáng)Android媒體服務(wù)器框架所做的努力已經(jīng)有所回報(bào),,2020一整年都沒有收到Android媒體框架遠(yuǎn)程利用漏洞報(bào)告。
除了遷移到內(nèi)存安全語(yǔ)言之外,,谷歌強(qiáng)調(diào)的其他Android安全緩解和強(qiáng)化措施還包括:
沙箱
高權(quán)限大型組件(例如媒體庫(kù))的分解
提高C/C++的安全性
漏洞利用緩解
地址空間布局隨機(jī)化(ASLR)
控制流完整性(CFI)
Stack Canaries
內(nèi)存標(biāo)記
谷歌指出,,LLVM項(xiàng)目的控制流完整性(CFI)已于2018年在Android Pie中的媒體框架、藍(lán)牙和NFC中啟用,。
谷歌和微軟兩家公司都試圖為C和C++提供更安全的系統(tǒng)編程功能,。微軟通過Windows安全功能Control Flow Guard改進(jìn)了CFI。去年,,微軟在Clang和LLVM C++編譯器以及Rust中啟用了CFG支持,。
谷歌還需要權(quán)衡每次緩解的性能成本,以及在不負(fù)面影響設(shè)備穩(wěn)定性或用戶體驗(yàn)的情況下部署和支持緩解所需的工作量,。緩解措施/組件的系統(tǒng)開銷可能會(huì)縮短電池續(xù)航時(shí)間并降低設(shè)備的響應(yīng)速度,,從而對(duì)用戶體驗(yàn)產(chǎn)生負(fù)面影響。對(duì)于廉價(jià)Android手機(jī)這樣的入門級(jí)設(shè)備尤其如此,,但入門級(jí)設(shè)備也應(yīng)從安全加固中受益,。
最后,谷歌指出,,啟用緩解措施時(shí),,除了安全利益和性能成本(例如短期部署和長(zhǎng)期支持的成本)外,還有更多要考慮的因素,,例如部署的穩(wěn)定性和長(zhǎng)期支持問題,。