Android 聯手 Arm 擊退內存漏洞

作者: Kostya Serebryany, Google 核心系統團隊,以及 Sudhi Herle, Android 安全及隱私團隊


Google 一直致力於提升 Android 生態圈的安全防護水平,作爲我們在安全方面的長期工作之一,我們攜手 Arm 公司共同研發出了內存標記擴展 (Memory Tagging Extension, 簡稱 MTE)。內存安全漏洞 (常見於 C/C++ 程序) 目前仍舊是 Android 平臺最大的安全隱患之一,儘管 Google 此前已投入大量努力對平臺安全進行升級,但是,內存安全漏洞依舊佔有 Android 9 高風險級漏洞的一半以上。而且,此類漏洞通常以難以診斷的可靠性問題出現,如偶發性崩潰和無法追蹤的數據損壞,致使用戶滿意度下降,同時增加軟件的開發成本ASANHWASAN 等軟件測試工具確實有一定幫助,但是它們的運行負載較高,因此在硬件安全方面的應用並不普及。

硬件特性 MTE 允許開發者以較低成本監測到這些安全漏洞,從而減緩安全風險。MTE 包含以下兩種執行模式:

  • 精準模式: 提供有關內存衝突的詳細報告。
  • 簡略模式: CPU 負載較低,建議長期開啓。

Arm 最近已發佈了 MTE 白皮書,內含 Arm v8.5 架構參考手冊,感興趣的讀者朋友可前往查看。

我們在下面列舉了 MTE 兩大模式的幾個重要用例。

  • MTE 所提供的 ASAN / HWASAN 版本操作性更強,方便開發者在實驗室環境下進行常規測試及模糊測試。MTE 能夠在更短的時間內發現更多的錯誤,而且成本也更低,從而大幅降低開發流程的複雜性。在許多用例中,MTE 允許開發者使用與生產環境下相同的二進制文件來進行內存安全測試。MTE 生成的錯誤報告在詳細程度和可執行性方面,具備與 ASAN 及 HWASAN 相當的水準。
  • MTE 可用作在生產環境下測試複雜軟件場景的一款機制。應用開發者和 OEM 廠商可選擇在部分軟件棧內啓用 MTE。在獲取用戶同意的前提下,開發者可通過 Google Play 管理中心等常用渠道獲取錯誤報告。
  • 作爲一款強大的安全工具,MTE 可用於緩解 Android 系統和應用中存在的各類內存安全漏洞。在大多數實例中,基於 MTE 的概率緩解措施可檢測出 90% 以上的無效內存訪問,以此預防漏洞被利用。通過部署這些防護措施,並確保攻擊者無法通過反覆嘗試來攻破關鍵安全組件,我們能夠極大地降低用戶可能遭受的安全風險。

我們相信,內存標記可檢測出亟待解決的多類常見內存安全漏洞,幫助供應商識別並修復這些漏洞,同時防止惡意利用事件的發生。在過去一年中,我們的團隊付出了巨大努力,以確保 Android 平臺和應用爲 MTE 的使用做好準備。此前,我們已經部署了 HWASAN (內存標記概念的一款軟件實現),並對整個平臺和部分應用進行了測試,成功檢測出近 100 個內存安全漏洞。其中大部分漏洞是在啓用 HWASAN 的日常設備上被發現的。MTE 的引入將在成本管控、部署簡易性與規模化三方面帶來大幅改進。與此同時,我們也在努力推進相關工作,希望儘早在 LLVM 編譯工具鏈 Linux 內核中實現對 MTE 的支持。在相應芯片出產之前,Android 平臺將會完善對 MTE 的支持。

Google 致力在各個 Android 軟件棧上爲 MTE 提供全方位支持。我們目前正在和多個 Arm SoC (系統芯片) 合作伙伴展開協作,共同測試對 MTE 的支持,並擴大 MTE 在 Android 軟硬件生態圈的部署範圍。根據現有數據顯示,MTE 不僅可以帶來巨大裨益,而且其性能成本也在可控範圍內。我們正在考慮將 MTE 列爲部分 Android 設備的基本要求。

點擊這裏提交產品反饋建議

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章