谷歌:安卓內(nèi)存安全漏洞大幅下降68%
過去五年中,Android(安卓)系統(tǒng)的內(nèi)存安全漏洞比例從2019年的76%大幅下降至2024年的24%,下降幅度超過68%。且Android安全性得到顯著改善的同時,并未影響向后兼容性。
谷歌雙管齊下治理內(nèi)存安全
與Chromium系統(tǒng)內(nèi)存安全漏洞70%的比例相比,Android的表現(xiàn)尤為突出,展示了一個龐大的項(xiàng)目如何在保持系統(tǒng)穩(wěn)定性的同時,實(shí)現(xiàn)安全性提升。谷歌表示,這一成果主要得益于優(yōu)先使用內(nèi)存安全語言(如Rust)編寫新代碼,大大減少了新漏洞的引入。
過去五年安卓內(nèi)存安全漏洞持續(xù)減少
與此同時,谷歌強(qiáng)調(diào)對舊代碼進(jìn)行維護(hù)時,只做最小的必要修改,專注于重要的安全修復(fù),而非進(jìn)行大規(guī)模重寫,避免破壞系統(tǒng)的互操作性。谷歌的報告指出:“我們認(rèn)識到,無需全部重寫現(xiàn)有的非內(nèi)存安全代碼,而是將重點(diǎn)放在確保互操作性的安全和便捷性上。”
這一策略使得舊代碼隨著時間推移變得更加成熟和安全,無論它最初是用何種語言編寫的,內(nèi)存相關(guān)漏洞的數(shù)量都會逐漸減少。谷歌采用的兩大核心策略產(chǎn)生了協(xié)同效應(yīng),推動了Android作為全球最廣泛使用的移動平臺內(nèi)存漏洞數(shù)量的顯著下降。
解決內(nèi)存安全問題的四個階段
谷歌指出,行業(yè)在應(yīng)對內(nèi)存安全漏洞方面經(jīng)歷了四個主要階段:
- 被動修補(bǔ):最初,行業(yè)主要在漏洞發(fā)現(xiàn)后進(jìn)行修復(fù),這種方式雖然解決了問題,但導(dǎo)致頻繁的更新,用戶在漏洞未修復(fù)期間處于危險中。
- 主動緩解措施:隨著時間推移,人們采取了多種策略(如堆棧金絲雀、控制流完整性)來增加漏洞利用的難度,但這些措施通常伴隨性能的下降,并形成了與攻擊者的“貓鼠游戲”。
- 主動發(fā)現(xiàn)漏洞:此階段引入了模糊測試和工具來提前發(fā)現(xiàn)漏洞,雖然有效,但這種方法仍然只是治標(biāo)不治本,且需要持續(xù)投入大量資源。
- 高安全保障的預(yù)防措施(安全編碼):第四階段強(qiáng)調(diào)通過內(nèi)存安全語言(如Rust)從源頭防止漏洞發(fā)生,采用“設(shè)計(jì)即安全”的方法,從根本上減少了漏洞的產(chǎn)生,提供了可擴(kuò)展的長期保障。
谷歌的實(shí)踐方法不僅增強(qiáng)了其自身產(chǎn)品的安全性,還為整個行業(yè)提供了有益的經(jīng)驗(yàn)。然而,谷歌也指出,傳統(tǒng)的修補(bǔ)和緩解措施帶來了不斷增加的成本,尤其是在內(nèi)存安全領(lǐng)域。只有采用安全設(shè)計(jì)的實(shí)踐,才能有效終止這一“修補(bǔ)—漏洞”循環(huán)。
應(yīng)對未來的內(nèi)存安全挑戰(zhàn)
盡管谷歌和其他公司已經(jīng)取得顯著進(jìn)展,但內(nèi)存安全仍然是行業(yè)面臨的主要挑戰(zhàn)之一。2023年6月,美國網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局(CISA)警告稱,52%最廣泛使用的開源項(xiàng)目仍在使用非內(nèi)存安全語言。即便是使用內(nèi)存安全語言編寫的項(xiàng)目,往往也依賴于非內(nèi)存安全組件,這使得風(fēng)險更加復(fù)雜化。
CISA建議軟件開發(fā)人員應(yīng)盡量使用內(nèi)存安全語言(如Rust、Java和Go)編寫新代碼,并逐步將現(xiàn)有項(xiàng)目,特別是關(guān)鍵組件,轉(zhuǎn)向這些語言,以提高整體安全性。