Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

セキュリティ アップデートとリソース

Android セキュリティ チームは、Android プラットフォームと Android デバイスに組み込まれている多くの Android アプリで発見されたセキュリティの脆弱性を管理します。

Android セキュリティ チームは、内部の調査を通じてセキュリティの脆弱性を発見し、サードパーティから報告されたバグにも対応します。外部のバグの情報源には、Android セキュリティ問題のテンプレートを通じて報告された問題、発表された学術研究、上流のオープンソース プロジェクトの管理者、デバイス メーカーのパートナーからの通知、ブログやソーシャル メディアの投稿により一般公開された問題などが含まれます。

セキュリティ問題の報告

デベロッパー、Android ユーザー、セキュリティ研究者は、セキュリティの脆弱性報告フォームを通じて Android セキュリティ チームに潜在的なセキュリティ問題を通知できます。

セキュリティ問題としてマークされたバグは、外部には公開されませんが、問題が評価または解決された後に公開される場合があります。セキュリティ問題を解決するパッチまたは互換性テストスイート(CTS)テストを提出する場合は、AOSP にコードをアップロードする前に、バグレポートに添付して返信を待ってください。

バグの緊急性判断

セキュリティの脆弱性を処理するには、まず、バグの重大度と影響を受ける Android のコンポーネントを特定します。重大度によって問題の優先順位を決定し、コンポーネントによってバグの修正担当者、通知先、修正をユーザーに展開する方法を決定します。

プロセスの種類

この表では、プロセスの種類の定義について説明します。プロセスの種類は、アプリやプロセスの種類、または実行されるエリアによって定義できます。この表では、権限が最小のプロセスから最大のプロセスまで、順番に並べられています。

プロセスの種類 種類の定義
制約されたプロセス 極度に制限された SELinux ドメインで実行されるプロセス。
または、
通常のアプリよりも大幅に制限されたプロセス。
非特権プロセス サードパーティ製のアプリまたはプロセス。
または、
SELinux の untrusted_app ドメインで実行されるアプリまたはプロセス。
特権プロセス SELinux の untrusted_app ドメインによって禁止される可能性のある機能を備えたアプリまたはプロセス。
または、
サードパーティ製アプリが取得できない重要な権限を持つアプリまたはプロセス。
または、
トラステッド コンピューティング ベース(TCB)の一部ではない、デバイスの内蔵ハードウェア コンポーネント。
トラステッド コンピューティング ベース(TCB) カーネルの一部であり、カーネルと同じ CPU コンテキストで実行され(デバイス ドライバなど)、カーネルメモリに直接アクセスでき(デバイスのハードウェア コンポーネントなど)、カーネル コンポーネント内にスクリプトを読み込む機能を備え(eBPF など)、ベースバンド プロセッサ、またはカーネルと同等と見なされる数少ないユーザー サービス(initueventdvold)の 1 つである機能。
ブートローダー 起動時にデバイスを構成し、Android OS に制御を渡すコンポーネント。
Trusted Execution Environment(TEE) 悪意のあるカーネルからも保護されるように設計されたコンポーネント。
セキュア エレメント(SE) セキュア エレメントの概要で定義されているように、デバイス上の他のすべてのコンポーネントや物理的な攻撃から保護されるオプションのコンポーネント。

重大度

バグの重大度は、一般的に、バグが悪用された場合に起こりうる潜在的な損害を表しています。次の基準を使用して重大度を判断します。

評価 悪用された場合の影響
重大
  • SE によって保護されたデータへの不正アクセス
  • TEE または SE での任意のコード実行
  • 特権プロセス、ブートローダー、TCB での、任意のコードのリモート実行
  • リモートでの永続的なサービス拒否攻撃(デバイスが永続的に操作不能となるか、オペレーティング システム全体の再フラッシュや初期状態へのリセットが必要)
  • パッケージ インストール時のユーザー操作要件のリモートでの回避、または同等の動作
  • デベロッパー、セキュリティ、プライバシー設定のユーザー操作要件の、リモートでの回避
  • リモートでのセキュアブートの回避
  • 重要なハードウェア コンポーネントが誤動作しないように設計された安全機構(過熱保護など)の回避
  • ローカル セキュアブートの回避
  • 主なセキュリティ機能(SELinux、FDE、seccomp など)の完全な回避
  • 非特権プロセスでの任意のコードのリモート実行
  • 特権プロセス、ブートローダー、TCB での任意のコードのローカル実行
  • TEE によって保護されたデータへの不正なアクセス
  • SE に対する攻撃による、安全性の低い実装へのダウングレード
  • パッケージ インストール時のユーザー操作要件のローカル回避、または同等の動作
  • 保護されたデータ(特権プロセスに制限されたデータ)へのリモート アクセス
  • ローカルでの永続的なサービス拒否攻撃(デバイスが永続的に操作不能となるか、オペレーティング システム全体の再フラッシュや初期状態へのリセットが必要)
  • ユーザー操作要件のリモートでの回避(通常はユーザーによる操作か許可が必要な機能やデータへのアクセス)
  • 要求者が安全な送信(WEP などの Wi-Fi 暗号化は対象外)を期待している場合に、安全でないネットワーク プロトコル(HTTP や暗号化されていない Bluetooth など)で機密情報を送信
  • ブートローダーまたは TEE における多重防御や悪用対策技術の一般的な回避
  • アプリデータやユーザー プロファイル同士を分離するオペレーティング システムの保護の一般的な回避
  • デベロッパー、セキュリティ、プライバシー設定のユーザー操作要件の、ローカルでの回避
  • 中間者攻撃を可能にする、標準的な Transport Layer Security(TLS)における暗号脆弱性
  • ロック画面の回避
  • デバイス保護機能、出荷時設定へのリセット保護機能、携帯通信会社による制限の回避
  • 緊急サービスへのアクセスを標的とした妨害
  • TEE によって保護されたユーザー操作要件の回避
  • 制約されたプロセスでの任意のコードのリモート実行
  • リモートでの一時的なデバイスのサービス拒否攻撃(リモートでのハングまたは再起動)
  • 非特権プロセスでの任意のコードのローカル実行
  • 特権プロセスまたは TCB における多重防御または悪用対策技術の一般的な回避
  • 制限されたプロセスの制限の回避
  • 保護されていないデータ(通常はすべてのインストール済みのアプリがアクセスできるデータ)へのリモート アクセス
  • 保護されたデータ(特権プロセスに制限されたデータ)へのローカル アクセス
  • ユーザー操作要件のローカル回避(通常はユーザーによる操作か許可が必要な機能へのアクセス)
  • 平文の漏洩を可能にする、標準的な(TLS で使用されるプリミティブではない)暗号プリミティブでの暗号脆弱性
  • 攻撃者が、アクセス ポイントとして機能している Android デバイス、またはデバイスが接続されているネットワーク アクセス ポイント(AP)に接続できるような、Wi-Fi 暗号化や認証の回避
  • 制約されたプロセスでの任意のコードのローカル実行
  • 非標準的な使用における暗号脆弱性
  • 特権プロセスでの、ユーザーレベルの多重防御または悪用対策技術の一般的な回避
セキュリティ影響なし(NSI)
  • 1 つ以上の評価修飾子またはバージョン固有のアーキテクチャの変更により影響が緩和され、根本的なコードの問題は残る可能性があるものの、実質的な重大度が「低」以下となる脆弱性

評価修飾子

セキュリティ脆弱性の重大度は特定しやすいことが多いですが、評価は状況により変わります。

理由 効果
攻撃を実行するには特権プロセスとして実行する必要がある 重大度 -1
脆弱性固有の詳細により、問題の影響が制限される 重大度 -1
コンパイラまたはプラットフォーム構成によりソースコードの脆弱性が緩和される 根本的な脆弱性が「中」以上の場合、重大度は「中」
デバイスの内部に物理的にアクセスする必要があるが、スマートフォンの電源がオフになっているか、電源が入ってからロックが解除されていない場合でも、アクセスされる可能性がある 重大度 -1
デバイス内部に物理的にアクセスする必要があるが、スマートフォンの電源が入っていてすでにロックが解除されている 重大度 -2
ブートローダーのロック解除が必要なローカル攻撃 「低」以下
デバイスでデベロッパー モードや永続的なデベロッパー モード設定が有効になっている必要があるローカル攻撃(デベロッパー モードのバグ以外)。 「低」以下
SELinux ドメインが Google 提供の SEPolicy に基づいて操作を行えない場合 セキュリティへの影響なし

ローカルとリモート

リモート攻撃ベクトルでは、アプリのインストールやデバイスへの物理的なアクセスなしで、バグが悪用される可能性があります。これには、ウェブページの閲覧、メールの読み取り、SMS メッセージの受信、悪意のあるネットワークへの接続などが原因で生じるバグが含まれます。Android セキュリティ チームは重大度の評価のために、「近接」攻撃ベクトルをリモート攻撃としても考えています。これには、不正な Wi-Fi パケットや Bluetooth パケットの送信が必要なバグなど、物理的にターゲット デバイスの近くにいる攻撃者だけが悪用できるバグが含まれます。Android セキュリティ チームは、NFC ベースの攻撃を近接攻撃、つまりリモート攻撃であると考えています。

ローカル攻撃では、ユーザーがアプリをインストールして実行するか、Instant App の実行に同意してアプリを実行する必要があります。Android セキュリティ チームは重大度評価のために、物理的な攻撃ベクトルをローカル攻撃としても考えています。 これには、ロック画面のバグや USB ケーブルの差し込みが必要なバグなど、デバイスに物理的にアクセスできる攻撃者だけが悪用できるバグが含まれます。USB 接続が必要な攻撃は、デバイスのロック解除が必要かどうかにかかわらず、同じ重大度です。一般的に、USB に接続している間はデバイスのロックが解除されます。

Wi-Fi セキュリティ

Android では、すべてのネットワークが敵対的で、攻撃の挿入やトラフィックの盗聴が行われていると想定しています。ネットワーク レベルの攻撃者がアプリのデータ保護を迂回できないように、すべてのネットワーク トラフィックでエンドツーエンドの暗号化を使用することを強くおすすめします。リンクレベルの暗号化だけでは不十分です。

影響を受けるコンポーネント

バグの修正を担当する開発チームは、バグのあるコンポーネントによって異なります。コンポーネントには、Android プラットフォームのコア コンポーネント、相手先ブランド製品製造企業(OEM)提供のカーネル ドライバ、Pixel デバイスにプリロードされたアプリなどがあります。

AOSP コードのバグは、Android エンジニアリング チームによって修正されます。重大度の低いバグ、特定のコンポーネントのバグ、すでに一般に知られているバグは、一般公開されている AOSP マスター ブランチで直接修正できます。それ以外の場合は、最初に内部リポジトリで修正されます。

コンポーネントは、ユーザーがアップデートを入手する際の要素でもあります。フレームワークやカーネルのバグには、各 OEM がプッシュする無線(OTA)によるファームウェア アップデートが必要です。Google Play で公開されているアプリやライブラリ(Gmail、Google Play 開発者サービス、WebView など)のバグについては、Google Play のアップデートとして Android ユーザーに送信されます。

パートナーへの通知

Android のセキュリティに関する公開情報で AOSP のセキュリティの脆弱性が修正されると、問題の詳細が Android パートナーに通知され、パッチが提供されます。新しい Android リリースごとに、バックポートでサポートされるバージョンのリストが変更されます。サポートされているデバイスの一覧については、デバイスのメーカーにお問い合わせください。

AOSP へのコードのリリース

AOSP コンポーネントにセキュリティ バグがある場合、OTA がユーザーにリリースされた後に修正が AOSP にプッシュされます。OTA を介してデバイスに修正を提供する前に、重大度の低い問題の修正を AOSP マスター ブランチに直接送信することもできます。

Android アップデートの受信

Android システムのアップデートは通常、OTA アップデート パッケージを通じてデバイスに配信されます。これらのアップデートは、デバイスを製造した OEM またはデバイスにサービスを提供している携帯通信会社から配信される場合もあります。Google Pixel デバイスのアップデートは、携帯通信会社の技術受入(TA)テストの通過後に、Google Pixel チームから提供されます。Google はまた、デバイスにサイドロードできる Pixel のファクトリー イメージも公開します。

Google サービスの更新

Android セキュリティ チームはセキュリティ バグのパッチを提供するだけでなく、セキュリティ バグを確認して、他にユーザーを保護する方法があるかどうかを判断します。たとえば、Google Play はすべてのアプリをスキャンし、セキュリティ バグの悪用を試みるアプリをすべて削除します。Google Play 以外からインストールしたアプリの場合、Google Play 開発者サービスがインストールされているデバイスではアプリの確認機能を使用して、有害な可能性のあるアプリについてユーザーに警告できます。

その他のリソース

Android アプリのデベロッパー向けの情報については、https://developer.android.com をご覧ください。

セキュリティ情報については、Android のオープンソースとデベロッパーのサイト全体で提供しています。最初に下記サイトをご覧ください。

レポート

Android セキュリティ チームは、不定期にレポートやホワイトペーパーを公開しています。詳しくはセキュリティ レポートをご覧ください。