保護 Android 裝置

Android 整合了業界領先的安全防護功能,並與開發人員和裝置導入者合作,確保 Android 平台和生態系統的安全。完善的安全性模型是建立強大應用程式和裝置生態系統的關鍵,這些應用程式和裝置必須建構在 Android 平台上,並由雲端服務支援。因此,在整個開發生命週期中,Android 都必須遵守嚴格的安全計畫。

Android 的設計理念是開放性。Android 應用程式會使用先進的硬體和軟體,以及透過平台公開的本機和服務資料,為消費者帶來創新和價值。為了實現這項價值,平台提供應用程式環境,可保護使用者、資料、應用程式、裝置和網路的機密性、完整性和可用性。

要保護開放式平台的安全,就必須採用強大的安全架構和嚴格的安全計畫。Android 採用多層安全性設計,具備足夠彈性,可支援開放式平台,同時保護平台的所有使用者。如要瞭解如何回報安全性問題和更新程序,請參閱「安全性更新和資源」。

Android 專為開發人員設計。安全性控制項是專為減輕開發人員的負擔而設計,充分瞭解防護機制的開發人員可以輕鬆調整並放心使用靈活的安全性控制項,不熟悉防護機制的開發人員也能享有預設設定的妥善保護。

除了提供可建構的穩定平台,Android 還以多種方式為開發人員提供額外支援。Android 安全性團隊會尋找應用程式中的潛在安全漏洞,並建議修正這些問題的方法。如果裝置有 Google Play,Play 服務會為重要軟體程式庫提供安全性更新,例如 OpenSSL,這類程式庫可用於保護應用程式通訊。Android 安全性團隊發布了測試 SSL 的工具 (nogotofail),可協助開發人員在任何開發平台上找出潛在的安全性問題。

Android 也運用基礎硬體支援功能來確保安全性。舉例來說,ARM TrustZone 技術可用於為加密編譯金鑰提供安全儲存空間,以及啟動完整性的認證。DICE 可用於測量在 Android 啟動前載入的韌體。這樣一來,您就能透過遠端驗證,確認韌體未受到已知的重大安全漏洞影響,否則可能會遭到濫用,對開發人員和使用者造成危害。

如要進一步瞭解 Android 應用程式開發人員的相關資訊,請前往 developer.android.com

Android 的設計理念是為了使用者。使用者可查看各個應用程式要求的權限,並控制這些權限。這項設計會考量攻擊者可能會嘗試執行常見攻擊,例如社交工程攻擊,以說服裝置使用者安裝惡意軟體,以及攻擊 Android 上的第三方應用程式。Android 的設計可降低這類攻擊的發生機率,並大幅限制攻擊成功時的影響。裝置交付給使用者後,Android 安全性功能仍會持續運作。Android 會與合作夥伴和大眾合作,為持續接收安全性更新的任何 Android 裝置提供修補程式。

如需更多資訊,請參閱 Nexus 說明中心Pixel 說明中心或裝置製造商的說明中心。

本頁面將概略說明 Android 安全性計畫的目標,並介紹 Android 安全性架構的基本概念,以及系統架構師和安全分析師最常見的問題。這篇文章著重於 Android 核心平台的安全防護功能,不會討論特定應用程式專屬的安全性問題,例如與瀏覽器或簡訊應用程式相關的問題。

背景

Android 為行動裝置提供開放原始碼平台和應用程式環境。

以下各節和頁面說明 Android 平台的安全性功能。圖 1 說明 Android 軟體堆疊的各個層級的安全性元件和考量事項。每個元件都假設下列元件已正確固定。除了少量以系統管理員身分執行的 Android 作業系統程式碼外,Linux 核心以上的所有程式碼都受到應用程式沙箱的限制。

圖 1:Android 軟體堆疊

圖 1. Android 軟體堆疊

主要的 Android 平台建構區塊如下:

  • 裝置硬體:Android 可在多種硬體設定上執行,包括手機、平板電腦、智慧手錶、汽車、智慧型電視、OTT 遊戲機和機上盒。Android 不受處理器限制,但會利用 ARM eXecute-Never 等某些硬體專屬安全性功能。
  • Android 作業系統:核心作業系統是建構在 Linux 核心之上。所有裝置資源 (例如相機功能、GPS 資料、藍牙功能、電話功能和網路連線) 都是透過作業系統存取。
  • Android 應用程式執行階段:Android 應用程式通常是以 Java 程式設計語言編寫,並在 Android 執行階段 (ART) 中執行。不過,許多應用程式 (包括核心 Android 服務和應用程式) 都是原生應用程式,或包含原生程式庫。ART 和原生應用程式都會在相同的安全性環境中執行,並包含在應用程式沙箱中。應用程式會取得檔案系統的專屬部分,可用於寫入私人資料,包括資料庫和原始檔案。

Android 應用程式可擴充核心 Android 作業系統。應用程式有兩個主要來源:

  • 預先安裝的應用程式:Android 內建一組預先安裝的應用程式,包括電話、電子郵件、日曆、網路瀏覽器和聯絡人。這些應用程式可做為使用者應用程式,提供其他應用程式可存取的重要裝置功能。預先安裝的應用程式可能是開放原始碼 Android 平台的一部分,也可能是裝置製造商為特定裝置開發的應用程式。
  • 使用者安裝的應用程式:Android 提供開放式開發環境,可支援任何第三方應用程式。Google Play 提供數十萬個應用程式供使用者安裝。

Google 安全性服務

Google 提供一套雲端服務,適用於搭載 Google 行動服務 的 Android 裝置。雖然這些服務並非 Android 開放原始碼計畫 (AOSP) 的一部分,但許多 Android 裝置都包含這些服務。如要進一步瞭解其中部分服務,請參閱 Android 安全性團隊的 2018 年回顧

主要的 Google 安全性服務如下:

  • Google Play:Google Play 是一組服務,可讓使用者透過 Android 裝置或網頁來探索、安裝及購買應用程式。Google Play 可讓開發人員輕鬆觸及 Android 使用者和潛在客戶。Google Play 也提供社群審查、應用程式授權驗證、應用程式安全性掃描和其他安全性服務。
  • Android 更新:Android 更新服務會為特定 Android 裝置提供新功能和安全性更新,包括透過網路或無線更新 (OTA) 的更新。
  • 應用程式服務:允許 Android 應用程式使用雲端功能的架構,例如備份應用程式資料和設定,以及用於推播訊息的雲端到裝置訊息傳遞 (C2DM)。
  • 驗證應用程式:警告或自動封鎖有害應用程式的安裝作業,並持續掃描裝置上的應用程式,警告或移除有害應用程式
  • SafetyNet:這是一套隱私權保護的入侵偵測系統,可協助 Google 追蹤、減輕已知的安全威脅,以及找出新的安全威脅。
  • SafetyNet Attestation:第三方 API,可判斷裝置是否與 CTS 相容。驗證也可以識別與應用程式伺服器通訊的 Android 應用程式。
  • Android 裝置管理工具:網頁應用程式Android 應用程式,可用來尋找遺失或遭竊的裝置。

安全性計畫總覽

Android 安全計畫的主要元件包括:

  • 設計審查:Android 安全性程序會在開發生命週期初期開始,建立豐富且可設定的安全性模型和設計。工程團隊和安全性資源會審查平台的每項主要功能,並將適當的安全性控管機制整合至系統架構。
  • 滲透測試和程式碼審查:在平台開發期間,由 Android 建立的開放原始碼元件都會接受嚴格的安全性審查。這些審查由 Android 安全性團隊、Google 資訊安全工程團隊和獨立安全顧問進行。這些審查的目標是在主要版本發布前,找出弱點和可能的安全漏洞,並模擬外部安全專家在發布後執行的分析類型。
  • 開放原始碼和社群審查:AOSP 可讓任何感興趣的一方進行廣泛的安全性審查。Android 也使用經過嚴格外部安全性審查的開放原始碼技術,例如 Linux 核心。Google Play 提供論壇,供使用者和公司直接向使用者提供特定應用程式的相關資訊。
  • 事件回應:即使採取這些預防措施,仍可能在發布後發生安全性問題,因此 Android 專案已建立全面的安全性回應程序。全職 Android 安全性團隊成員會監控 Android 專屬和一般安全性社群,討論潛在的安全漏洞,並審查 Android 錯誤資料庫中提交的安全性錯誤。一旦發現合理的問題,Android 團隊就會啟動回應程序,迅速減輕漏洞風險,確保所有 Android 使用者的潛在風險降到最低。這些雲端支援的回應可能包括更新 Android 平台 (AOSP 更新)、從 Google Play 移除應用程式,以及從現場裝置中移除應用程式。
  • 每月安全性更新:Android 安全性團隊會為 Google Android 裝置和所有裝置製造合作夥伴提供每月更新

平台安全架構

Android 會重新利用傳統作業系統的安全控制項,以便:

  • 保護應用程式和使用者資料
  • 保護系統資源 (包括網路)
  • 提供應用程式隔離功能,與系統、其他應用程式和使用者隔離

為達成這些目標,Android 提供下列重要安全性功能:

  • 透過 Linux 核心,在作業系統層級提供完善的安全性
  • 所有應用程式皆須使用應用程式沙箱
  • 安全的處理序間通訊
  • 應用程式簽署
  • 應用程式定義和使用者授予的權限