保護 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 OS 程式碼外,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 核心在作業系統層級提供強大的安全性
  • 所有應用程式都必須使用應用程式沙箱
  • 確保處理序間通訊安全
  • 應用程式簽署
  • 應用程式定義和使用者授予的權限