安全性更新和資源

Android 安全團隊負責管理 Android 平台以及與 Android 裝置捆綁的許多核心 Android 應用程式中發現的安全漏洞。

Android 安全團隊透過內部研究發現安全漏洞,並對第三方報告的錯誤做出回應。外部錯誤的來源包括透過漏洞表單報告的問題、已發表和預發表的學術研究、上游開源專案維護者、我們的設備製造商合作夥伴的通知以及在部落格或社交媒體上發布的公開披露的問題。

報告安全問題

任何開發者、Android 用戶或安全研究人員都可以透過漏洞表單向 Android 安全團隊通知潛在的安全問題。

標記為安全問題的錯誤在外部不可見,但在評估或解決問題後最終可能會變得可見。如果您打算提交修補程式或相容性測試套件 (CTS) 測試來解決安全性問題,請將其附加到錯誤報告中並等待回應,然後再將程式碼上傳到 AOSP。

對錯誤進行分類

處理安全漏洞的首要任務是確定錯誤的嚴重性以及 Android 的哪個元件受到影響。嚴重性決定問題的優先級,元件決定誰修復錯誤、通知誰以及如何將修復部署給使用者。

上下文類型

此表涵蓋了硬體和軟體安全上下文的定義。上下文可以由它通常處理的資料的敏感性或其運行的區域來定義。並非所有安全上下文都適用於所有系統。該表按特權從最低到最高的順序排列。

上下文類型類型定義
受約束的上下文僅提供最少權限的受限執行環境。

例如,受信任的應用程式在沙盒環境中處理不受信任的資料。
非特權上下文非特權程式碼所期望的典型執行環境。

例如,在具有untrusted_app_all屬性的 SELinux 網域中執行的 Android 應用程式。
特權上下文特權執行環境可以存取提升的權限、處理多個使用者 PII 和/或維護系統完整性。

例如,具有被 SELinux untrusted_app域禁止的功能或具有privileged|signature權限的 Android 應用程式。
作業系統核心功能:
  • 是核心的一部分
  • 在與核心相同的 CPU 上下文中運行(例如,裝置驅動程式)
  • 可以直接存取內核記憶體(例如裝置上的硬體組件)
  • 能夠將腳本載入到核心元件中(例如,eBPF)
  • 是少數被視為與核心等效的使用者服務之一(例如apexdbpfloaderinitueventdvold )。
可信任硬體基礎 (THB)離散硬體組件(通常位於 SoC 上),提供對設備核心用例至關重要的功能(例如蜂窩基頻、DSP、GPU 和 ML 處理器)。
引導程式鏈一個元件,用於在啟動時配置設備,然後將控制權傳遞給 Android 作業系統。
可信執行環境(TEE)旨在保護其免受惡意作業系統核心影響的元件(例如,TrustZone 和虛擬機器管理程序,例如 pKVM,可保護虛擬機器免受作業系統核心的影響)。
安全飛地/安全元件 (SE)一種可選硬體組件,旨在保護設備免受設備上所有其他組件和物理攻擊的影響,如安全元件簡介中所定義。

這包括某些 Android 裝置中存在的 Titan-M 晶片。

嚴重性

錯誤的嚴重性通常反映了成功利用錯誤後可能發生的潛在危險。使用以下標準來確定嚴重性。

評分成功利用的後果
批判的
  • TEE 或 SE 中的任意程式碼執行
  • 繞過旨在防止安全相關軟體或硬體組件發生故障的軟體機制(例如熱保護)
  • 遠端存取用於遠端服務驗證的敏感憑證(例如帳戶密碼或不記名令牌)
  • 在蜂窩基頻上下文中遠端執行任意程式碼,無需使用者互動(例如,利用蜂窩無線電服務中的錯誤)
  • 在特權上下文、引導程式鏈、THB 或作業系統核心中遠端執行任意程式碼
  • 遠端繞過軟體包安裝或等效行為的使用者互動要求
  • 遠端繞過核心開發人員、安全或隱私設定的使用者互動要求
  • 遠端持續拒絕服務(永久,需要重新刷新整個作業系統,或恢復出廠設定)
  • 遠端安全啟動繞過
  • 對 SE 保護的資料進行未經授權的訪問,包括透過 SE 中的弱密鑰啟用的存取。
高的
  • 完全繞過核心安全功能(例如 SELinux、FBE 或seccomp
  • 深度防禦的一般繞過或利用引導程式鏈、TEE 或 SE 中的緩解技術
  • 作業系統保護的一般繞過,可跨應用程式、使用者或設定檔邊界洩漏記憶體或檔案內容
  • 針對 SE 的攻擊導致降級為安全性較低的實施
  • 從可遠端存取的受損裸機韌體(例如基頻、CP/通訊處理器)轉向應用處理器 (AP) 核心或旨在將裸機韌體與 AP 核心隔離的旁路機制
  • 繞過設備保護/恢復原廠設定保護/運營商限制
  • 繞過 TEE 保護的使用者互動要求
  • 允許針對端對端協定進行攻擊的加密漏洞,包括針對傳輸層安全性 (TLS) 和藍牙 (BT) 的攻擊。
  • 對用於遠端服務驗證的敏感憑證(例如帳戶密碼或不記名令牌)的本機存取
  • 在特權上下文、引導程式鏈、THB 或作業系統核心中執行本地任意程式碼
  • 本地安全啟動繞過
  • 鎖定畫面繞過
  • 本地繞過核心開發人員、安全或隱私設定的使用者互動要求
  • 本地繞過軟體包安裝或等效行為的使用者互動要求
  • 本地持續拒絕服務(永久,需要重新刷新整個作業系統,或恢復出廠設定)
  • 遠端存取受保護的資料(即僅限於特權上下文的資料)
  • 在非特權上下文中遠端執行任意程式碼
  • 在沒有使用者互動的情況下遠端阻止對蜂窩或 Wi-Fi 服務的存取(例如,使用格式錯誤的資料包使蜂窩無線電服務崩潰)
  • 遠端繞過使用者互動要求(存取需要使用者啟動或使用者許可的功能或資料)
  • 針對性地阻止獲得緊急服務
  • 當請求者期望安全傳輸時,透過不安全的網路協定(例如 HTTP 和未加密的藍牙)傳輸敏感資訊。請注意,這不適用於 Wi-Fi 加密(例如 WEP)
  • 對受 TEE 保護的資料進行未經授權的訪問,包括透過 TEE 中的弱密鑰啟用的訪問
緩和
  • 深度防禦的一般繞過或在特權上下文、THB 或作業系統核心中利用緩解技術
  • 作業系統保護的一般繞過,可跨應用程式、使用者或設定檔邊界顯示進程狀態或元數據
  • 繞過 Wi-Fi 加密或身份驗證
  • 標準加密原語中的加密漏洞允許洩漏明文(不是 TLS 中使用的原語)
  • 對受保護資料的本機存取(即僅限於特權上下文的資料)
  • 在非特權上下文中執行本地任意程式碼
  • 本地繞過使用者互動要求(存取通常需要使用者啟動或使用者許可的功能或資料)
  • 遠端存取未受保護的資料(即通常可由任何本地安裝的應用程式存取的資料)
  • 在受限上下文中遠端執行任意程式碼
  • 遠端臨時設備拒絕服務(遠端掛起或重新啟動)
低的
  • 一般繞過使用者級深度防禦或在非特權環境中利用緩解技術
  • 繞過正常保護等級權限
  • 非標準使用中的加密漏洞
  • 一般繞過裝置上的個人化功能,例如語音匹配臉部匹配
  • 不正確的文件可能會導致安全漏洞
  • 在受限上下文中執行本地任意程式碼
  • 系統定義的文本,其中包含誤導性描述,會產生錯誤的安全期望
安全影響可忽略不計 (NSI)
  • 一種漏洞,其影響已透過一個或多個評級修改器或特定於版本的架構變更得到緩解,使得有效嚴重性低於“低”,但底層程式碼問題可能仍然存在
  • 任何需要格式錯誤的檔案系統的漏洞,前提是該檔案系統在使用前始終採用/加密
  • 本地臨時拒絕服務,例如可以透過重新啟動裝置或卸載觸發應用程式來解決該情況。

評級修正

雖然安全漏洞的嚴重性通常很容易識別,但評級可能會根據情況而變化。

原因影響
需要作為特權上下文運行才能執行攻擊(不適用於 TEE、SE 和 pKVM 等虛擬機器管理程式) -1 嚴重性
漏洞特定的詳細資訊限制了問題的影響-1 嚴重性
生物識別身份驗證繞過,需要直接來自設備所有者的生物識別信息-1 嚴重性
編譯器或平台配置緩解原始碼中的漏洞如果潛在漏洞為中度或更高,則嚴重程度為中度
需要對設備內部進行實體訪問,並且在設備關閉或開機後尚未解鎖的情況下仍然可以進行-1 嚴重性
需要在設備開啟且之前已解鎖時對設備內部進行實體訪問-2 嚴重性
需要解鎖引導程式鏈的本機攻擊不高於低
需要在裝置上目前啟用開發人員模式或任何持久開發人員模式設定的本機攻擊(並且不是開發人員模式本身的錯誤)。不高於低
如果沒有SELinux域可以在Google提供的SEPolicy下進行操作安全影響可以忽略不計

本地、近端、遠程

遠端攻擊向量表明,無需安裝應用程式或無需實體存取設備即可利用該漏洞。這包括瀏覽網頁、閱讀電子郵件、接收簡訊或連接到敵對網路可能觸發的錯誤。出於我們的嚴重性評級的目的,我們也將「近端」攻擊向量視為遠程攻擊向量。其中包括只能由實體上靠近目標裝置的攻擊者利用的錯誤,例如需要發送格式錯誤的 Wi-Fi 或藍牙封包的錯誤。我們認為超寬頻 (UWB) 和基於 NFC 的攻擊是近端攻擊,因此是遠程攻擊。

本地攻擊要求受害者透過安裝並運行應用程式或同意運行即時應用程式來運行應用程式。配對的配套設備將被視為本地設備。出於嚴重性評級的目的,Android 安全團隊也將物理攻擊向量視為本地攻擊向量。其中包括只有具有裝置實體存取權的攻擊者才能利用的錯誤,例如鎖定螢幕中的錯誤或需要插入 USB 纜線的錯誤。

網路安全

Android 假定所有網路都是敵對的,並且可能會注入攻擊或監視流量。雖然鏈路層安全性(例如 Wi-Fi 加密)可保護設備與其所連接的接入點之間的通信,但它無法保護設備與其所通信的伺服器之間的鏈中的其餘鏈路。

相較之下,HTTPS 通常會端對端地保護整個通信,在資料來源處對資料進行加密,然後僅在資料到達最終目的地時對其進行解密和驗證。因此,損害鏈路層網路安全的漏洞的嚴重程度低於 HTTPS/TLS 中的漏洞:僅 Wi-Fi 加密不足以滿足互聯網上的大多數通訊需求。

生物辨識認證

生物辨識身分驗證是一個充滿挑戰的領域,即使是最好的系統也可能會被近似匹配所欺騙(請參閱Android 開發人員部落格:Android 11 中的鎖定畫面和身分驗證改進)。這些嚴重性評級區分兩類攻擊,旨在反映最終用戶的實際風險。

第一類攻擊允許以通用的方式繞過生物識別身份驗證,而無需來自所有者的高品質生物識別資料。例如,如果攻擊者可以將一塊口香糖放在指紋感應器上,並根據感應器上留下的殘留物授予對設備的存取權限,那麼這就是一個可以在任何易受影響的設備上執行的簡單攻擊。它不需要設備所有者的任何知識。鑑於它具有普遍性並且可能影響更多用戶,因此此攻擊獲得完整的嚴重性評級(例如,“高”,表示繞過鎖定螢幕)。

另一類攻擊通常涉及基於設備所有者的演示攻擊工具(欺騙)。有時,這種生物識別資訊相對容易獲得(例如,如果某人在社交媒體上的個人資料圖片足以欺騙生物識別身份驗證,那么生物識別繞過將獲得完整的嚴重性評級)。但是,如果攻擊者需要直接從設備所有者那裡獲取生物識別數據(例如,對其面部進行紅外線掃描),那麼這就是一個足夠重要的障礙,它限制了受攻擊影響的人數,因此有一個-1修飾符。

SYSTEM_ALERT_WINDOW和竊聽

有關SYSTEM_ALERT_WINDOW和竊聽劫持政策的信息,請參閱 BugHunter University 的不存在安全影響的錯誤頁面的“非安全關鍵屏幕上的竊聽/覆蓋 SYSTEM_ALERT_WINDOW 漏洞”部分。

Android 汽車作業系統中的多用戶安全性

Android 汽車作業系統採用與其他外型規格不同的多用戶安全模型。每個 Android 用戶都設計為不同的自然人使用。例如,可以將臨時訪客使用者指派給從車主那裡借用車輛的朋友。為了適應此類用例,使用者預設可以存取使用車輛所需的必要組件,例如 Wi-Fi 和蜂窩網路設定。

受影響的組件

負責修復錯誤的開發團隊取決於錯誤所在的元件。它可能是 Android 平台的核心元件、原始裝置製造商 (OEM) 提供的核心驅動程式或 Pixel 裝置上預先載入的應用程式之一。

AOSP 程式碼中的錯誤已由 Android 工程團隊修復。低嚴重性錯誤、某些組件中的錯誤或已公開的錯誤可以直接在公開的 AOSP 主分支中修復;否則它們首先會被修復在我們的內部儲存庫中。

該組件也是影響用戶如何獲取更新的因素。框架或核心中的錯誤需要每個 OEM 需要推送的無線 (OTA) 韌體更新。 Google Play 中發布的應用程式或庫(例如 Gmail、Google Play Services 或 WebView)中的錯誤可以作為 Google Play 的更新發送給 Android 用戶。

通知合作夥伴

當 Android 安全公告中修復了 AOSP 中的安全漏洞時,我們將向 Android 合作夥伴通知問題詳細資訊並提供修補程式。支援向後移植的版本清單隨著每個新的 Android 版本的變化而變化。請聯絡您的設備製造商以取得支援的設備清單。

將程式碼發佈到 AOSP

如果安全漏洞存在於 AOSP 元件中,則在 OTA 發布給使用者後,修復程式將推送到 AOSP。在透過 OTA 向設備提供修復之前,可以將低嚴重性問題的修復直接提交到 AOSP 主分支。

接收 Android 更新

Android系統的更新一般透過OTA更新套件的方式下發到裝置。這些更新可能來自生產設備的 OEM 或為設備提供服務的營運商。 Google Pixel 裝置更新來自 Google Pixel 團隊,經過電信商技術驗收 (TA) 測試程式。谷歌還發布了可以側面加載到設備的Pixel 工廠圖像

更新 Google 服務

除了提供安全漏洞修補程式外,Android 安全團隊還會審查安全漏洞,以確定是否有其他方法來保護使用者。例如,Google Play 會掃描所有應用程式並刪除任何試圖利用安全漏洞的應用程式。對於從 Google Play 外部安裝的應用程序,具有 Google Play 服務的設備還可以使用驗證應用程式功能來警告用戶可能有害的應用程式。

其他資源

Android 應用程式開發人員資訊:https: //developer.android.com

安全資訊存在於 Android 開源和開發者網站中。好的起點:

報告

有時,Android 安全團隊會發布報告或白皮書。有關更多詳細信息,請參閱安全報告