安全更新和資源

Android 安全團隊負責管理在 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 的攻擊導致降級為安全性較低的實施
  • 繞過設備保護/恢復出廠設置保護/運營商限制
  • 繞過 TEE 保護的用戶交互要求
  • 允許對端到端協議進行攻擊的加密漏洞,包括對傳輸層安全 (TLS) 和藍牙 (BT) 的攻擊。
  • 本地訪問用於遠程服務身份驗證的敏感憑據(例如,帳戶密碼或不記名令牌)
  • 在特權上下文、引導加載程序鏈、THB 或操作系統內核中執行本地任意代碼
  • 本地安全啟動旁路
  • 鎖屏繞過
  • 本地繞過核心開發人員、安全或隱私設置的用戶交互要求
  • 本地繞過包安裝或等效行為的用戶交互要求
  • 本地持久性拒絕服務(永久性,需要刷新整個操作系統,或恢復出廠設置)
  • 遠程訪問受保護數據(即僅限於特權上下文的數據)
  • 在非特權上下文中遠程執行任意代碼
  • 在沒有用戶交互的情況下遠程阻止訪問蜂窩或 Wi-Fi 服務(例如,使用格式錯誤的數據包使蜂窩無線電服務崩潰)
  • 遠程繞過用戶交互要求(訪問需要用戶啟動或用戶許可的功能或數據)
  • 有針對性地阻止獲得緊急服務
  • 當請求者期望安全傳輸時,通過不安全的網絡協議(例如,HTTP 和未加密的藍牙)傳輸敏感信息。請注意,這不適用於 Wi-Fi 加密(例如 WEP)
  • 未經授權訪問受 TEE 保護的數據,包括通過 TEE 中的弱密鑰啟用的訪問
緩和
  • 特權上下文、THB 或操作系統內核中的深度防禦或利用緩解技術的一般繞過
  • 跨應用程序、用戶或配置文件邊界顯示進程狀態或元數據的操作系統保護的一般繞過
  • 繞過 Wi-Fi 加密或身份驗證
  • 標準加密原語中的加密漏洞允許明文洩漏(不是 TLS 中使用的原語)
  • 對受保護數據(即僅限於特權上下文的數據)的本地訪問
  • 在非特權上下文中執行本地任意代碼
  • 本地繞過用戶交互要求(訪問通常需要用戶啟動或用戶許可的功能或數據)
  • 遠程訪問不受保護的數據(即任何本地安裝的應用程序通常可以訪問的數據)
  • 在受限上下文中執行遠程任意代碼
  • 遠程臨時設備拒絕服務(遠程掛起或重啟)
低的
  • 用戶級深度防禦的一般繞過或非特權上下文中的利用緩解技術
  • 繞過正常保護級別權限
  • 非標準使用中的密碼漏洞
  • 一般繞過設備上的個性化功能,例如Voice MatchFace Match
  • 可能導致安全漏洞的錯誤文檔
  • 在受限上下文中執行本地任意代碼
  • 系統定義的文本,包含誤導性描述,會造成錯誤的安全預期
可忽略不計的安全影響 (NSI)
  • 一種漏洞,其影響已被一個或多個評級修改器或特定於版本的架構更改減輕,因此有效嚴重性低於低,但底層代碼問題可能仍然存在
  • 任何需要格式錯誤的文件系統的漏洞,如果該文件系統在使用前總是被採用/加密

評級修正

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

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

本地與近端與遠程

遠程攻擊向量表示無需安裝應用程序或無需物理訪問設備即可利用該漏洞。這包括可以通過瀏覽網頁、閱讀電子郵件、接收 SMS 消息或連接到惡意網絡來觸發的錯誤。出於我們的嚴重性評級的目的,我們還將“近端”攻擊向量視為遠程。其中包括只有物理上靠近目標設備的攻擊者才能利用的錯誤,例如,需要發送格式錯誤的 Wi-Fi 或藍牙數據包的錯誤。我們認為超寬帶 (UWB) 和基於 NFC 的攻擊是近端攻擊,因此是遠程攻擊。

本地攻擊要求受害者通過安裝和運行應用程序或同意運行Instant App來運行應用程序。配對的配套設備將被視為本地設備。出於嚴重性評級的目的,Android 安全團隊還將物理攻擊媒介視為本地攻擊媒介。其中包括只能由對設備具有物理訪問權限的攻擊者利用的錯誤,例如鎖定屏幕中的錯誤或需要插入 USB 數據線的錯誤。

網絡安全

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

相比之下,HTTPS 通常保護整個端到端的通信,在其源頭加密數據,然後僅在數據到達最終目的地時才對其進行解密和驗證。因此,危及鏈路層網絡安全的漏洞的嚴重程度低於 HTTPS/TLS 中的漏洞:僅 Wi-Fi 加密不足以滿足互聯網上的大多數通信。

生物認證

生物識別身份驗證是一個充滿挑戰的領域,即使是最好的系統也會被近似匹配所愚弄(請參閱Android 開發者博客:Android 11 中的鎖屏和身份驗證改進)。這些嚴重性等級區分兩類攻擊,旨在反映最終用戶面臨的實際風險。

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

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

SYSTEM_ALERT_WINDOW和 Tapjacking

有關我們關於SYSTEM_ALERT_WINDOW和 Tapjacking 的政策的信息,請參閱 BugHunter University 的Bugs with no security impact頁面的“ Tapjacking/overlay SYSTEM_ALERT_WINDOW vulnerability on a non-security-critical screen ”部分。

Android Automotive OS 中的多用戶安全性

Android Automotive OS採用不同於其他形式因素的多用戶安全模型。每個 Android 用戶都旨在由不同的自然人使用。例如,可以將臨時訪客用戶分配給從車主那裡借車的朋友。為了適應這樣的用例,默認情況下,用戶可以訪問使用車輛所需的必要組件,例如 Wi-Fi 和蜂窩網絡設置。

受影響的組件

負責修復錯誤的開發團隊取決於錯誤在哪個組件中。它可能是 Android 平台的核心組件、原始設備製造商 (OEM) 提供的內核驅動程序,或者 Pixel 設備上預加載的應用程序之一.

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

該組件也是用戶如何獲取更新的一個因素。框架或內核中的錯誤需要每個 OEM 需要推送的無線 (OTA) 固件更新。在 Google Play(例如 Gmail、Google Play 服務或 WebView)中發布的應用程序或庫中的錯誤可以作為來自 Google Play 的更新發送給 Android 用戶。

通知合作夥伴

當 AOSP 中的安全漏洞在 Android 安全公告中得到修復時,我們會通知 Android 合作夥伴問題詳情並提供補丁。支持向後移植的版本列表隨每個新的 Android 版本而變化。請聯繫您的設備製造商以獲取支持的設備列表。

向 AOSP 發布代碼

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

接收 Android 更新

Android系統的更新一般通過OTA更新包下發給設備。這些更新可能來自生產設備的 OEM 或為設備提供服務的運營商。 Google Pixel 設備更新在通過運營商技術驗收 (TA) 測試程序後由 Google Pixel 團隊提供。谷歌還發布了可以旁加載到設備的Pixel 工廠圖像

更新谷歌服務

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

其他資源

適用於 Android 應用程序開發人員的信息: https ://developer.android.com

安全信息存在於整個 Android 開源和開發者網站中。好的起點:

報告

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