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