像奧利奧同樣的雙重安全措施,盡在 Android Oreo

像奧利奧同樣的雙重安全措施,盡在 Android Oreo

由 Android 安全團隊的 Gian G Spicuzza 發表html

Android Oreo 中包含不少安全性提高的更新。幾個月以來,咱們討論瞭如何加強 Android 平臺及應用的安全性: 從提供更安全的獲取應用渠道,移除不安全的網絡協議,提供更多用戶控制符加固內核使 Android 更易於更新,直到加倍 Android 安全獎勵獎勵項目的支出。現在 Oreo 終於正式和你們見面了,讓咱們回顧下這其中的改進。前端

擴大硬件安全支持

Android 早已支持開機驗證模式(Verified Boot),旨在防止設備軟件被篡改的狀況下啓動。在 Android Oreo 中,咱們隨着 Project Treble 一同運行的驗證開機模式(Verified Boot),稱之爲 Android 驗證開機模式2.0(Android Verified Boot 2.0)(AVB)。AVB 有一些使得更新更加容易、安全的功能,例如通用的分區尾部(AVB 中位於文件系統分區尾部的結構)以及回滾保護。回滾保護旨在保護 OS 降級的設備,防止降級到到低版本的系統後被人攻擊。爲此,設備將經過專用的硬件保存系統版本信息或使用可信執行環境(Trusted Execution Environment, TEE)對數據進行簽名。 Pixel 2 和 Pixel 2 XL 自帶這種保護,而且咱們建議全部設備製造商將這個功能添加到他們的新設備中。linux

Oreo 還包括新的原始設備製造商鎖(OEM Lock)硬件抽象層(HAL)使得設備製造商可以更加靈活的保護設備,不管設備處於鎖定、解鎖或者可解鎖狀態。例如,新的 Pixel 設備經過硬件抽象層命令向啓動引導程序(bootloader)傳遞命令。啓動引導裝載程序會在下次開機分析這些命令並檢查安全存儲於有重放保護的內存區(Replay Protected Memory Block, RPMB)中對鎖更改的信息是否合法。若是你的設備被偷了,這些保護措施旨在保護你的設備被重置,從而保護你的數據安全。新的硬件抽象層(HAL)甚至支持將鎖移動到專用的硬件中。android

談到硬件,咱們添加了防僞硬件支持,例如在每個 Piexl 2 和 Piexl 2 XL 設備中內嵌的安全模塊。這種物理芯片能夠防止不少軟硬件攻擊,而且還抵抗物理滲透攻擊. 安全模塊防止推導設備密碼及限制解鎖嘗試的頻率,使得不少攻擊因爲時間限制而失效。ios

新的 Pixel 設備配有特殊的安全模塊,全部搭載Android Oreo 的谷歌移動服務(GMS)的設備也須要實現密鑰驗證。這提供了一種強驗證標識符機制,例如硬件標識符。git

咱們也爲企業管理設備添加了新的功能。當配置文件或者公司管理員遠程鎖定配置文件時,加密密鑰會從內存(RAM)中移除.這有助於保護企業數據的安全。github

平臺加固及進程隔離

做爲 Project Treble 的一部分,爲了使設備廠商能夠更簡單、低成本地更新,咱們對 Android 的框架也進行了重構。將平臺和供應商代碼分離的目的也是爲了提升安全性,根據最小特權原則,這些硬件抽象層(HALs)運行在本身的沙盒中,只對有權限的驅動設備開放。web

追隨着Android Nougat 中媒體堆棧加固,咱們在Android Oreeo 媒體框架中移除了許多直接訪問硬件的模塊,從而創造了更好的隔離環境。此外,此外咱們啓用了全部媒體組件中的控制流完整性(Control Flow Integrity, CFI)保護。這種缺陷能夠經過破壞應用的正常控制流,從而利用這種特權執行惡意的活動。 CFI 擁有健全的安全驗證機制,不容許隨意更改原來編譯後二進制文件的控制流程圖,也使得這樣的攻擊難以執行。後端

除了這些架構改變和CFI之外,Android Oreo 還帶來了其餘平臺安全性相關的提高:安全

  • Seccomp(Secure computing mode, 安全計算模式)過濾: 一些系統層的調用再也不對應用開放,從而減小潛在損害應用途徑。
  • 加固用戶拷貝: 一個最新的 Android 安全漏洞調查顯示:在內核漏洞中,失效的或者無邊界檢查狀況約佔 45%。在 Android 內核 3.18 及以上版本中,咱們新增了一個邊界檢查的補丁,使得利用這個漏洞變得更困難,同時還同幫助開發者在他們代碼中查找問題並修復問題。
  • Privileged Access Never(PAN)仿真: 同時針對 3.18 以上的內核新增了補丁,這個功能禁止內核直接訪問用戶空間,同時確保開發者利用加固後的方式開訪問用戶空間。
  • 內核地址空間佈局隨機化(KASLR):雖然Android已經支持地址空間佈局隨機化(ASLR)好多年了,咱們仍針對 Android 內核 4.4 及以上版本提供了內核地址空間佈局隨機化(KASLR)補丁減小風險。內核地址空間佈局隨機化(KASLR)將在每次設備啓動加載內核代碼時隨機分配地址,使得代碼複用攻擊,尤爲是遠程攻擊更加難以執行。

應用程序安全性及設備標示變動

Android 即時運行應用運行在一個受限制的沙盒中,所以限制了部分權限和功能,例如訪問設備內應用列表或者着明文傳遞數據。雖然是從 Android Oreo 才發佈,可是即時運行應用支持在 Android Lollipop 及以上版本的設備上運行。

爲了更安全的處理不可信內容,咱們經過將渲染引擎放到另外一個進程中並將它運行在一個獨立的資源受限的沙盒中來隔離 WebView。此外,WebView 還支持安全瀏覽,從而保護使用者瀏覽含有潛在危險的網站。

最後,咱們針對設備標識作了重大的改變開放給用戶更多的控制權,包括:

  • 靜態的 Android ID 和 Widevine 將變爲基於應用變化的值,這有助於限制設備中沒法重置的標識符的使用。
  • 依照 IETF RFC 7844,如今 net.hostname 將爲空且 DHCP 客戶端也將再也不發送主機名稱(hostname)。
  • 對於須要設備標識符的應用,咱們新增了一個 Build.getSerial() API 而且經過權限對其進行保護。
  • 咱們與安全研究人員一塊兒 1 在各類芯片組固件中的 Wi-Fi 掃描環節中新增一個健全的MAC地址隨機化功能.

Android Oreo 帶來遠不止這些改進,還有更多。一如既往,若是您有關於 Android 的反饋或是改進建議。歡迎發送郵件至 security@android.com。


1:Glenn Wilkinson 以及在英國 SensePost 的團隊、Célestin Matte、Mathieu Cunche:里昂大學,國立里昂應用科學學院,CITI 實驗室,Mathy Vanhoef,KU Leuven


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索