この記事は Android セキュリティおよびプライバシー チーム、Eugene Liderman、Sara N-Marandi による Google Online Security Blog の記事 "I/O 2022: Android 13 security and privacy (and more!)" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

I/O では毎年、Android のプライバシーとセキュリティの最新機能についてお話ししています。しかし、ユーザーの皆さんの中には、Google が最新リリースでシームレスなエクスペリエンスを提供しつつ、安全性やプライバシーを強化している方法について、もっと詳しく知りたいと考えている方もいます。そこで、データ保護を強化し、プライバシーを高めてアプリの信頼性やデバイスのエクスペリエンスを向上するために開発しているツールについて、詳しく説明したいと思います。

高速で邪魔にならないセキュリティ

スマートフォンを使うのが消費者であっても企業であっても、デバイスとそこで実行されるアプリの妥当性を保証するうえで、重要な要素となるのが構成証明(attestation)です。基本的に、鍵の構成証明とは、デベロッパーがシークレットまたは指定されたデータをデバイスにバインドすることです。これは、この鍵が利用できる限り「同じユーザー、同じデバイス」であるという主張であり、暗号学的に妥当性を主張できます。

Android 13 では、Android デバイスへの構成証明鍵のプロビジョニング方式を新しいモデルに移行しました。この方式はリモート鍵プロビジョニング(RKP)と呼ばれています。新しいアプローチでは、工場でのプロビジョニング エラーを無くし、鍵の脆弱性のリカバリ方法を提供することで、デバイスのセキュリティを強化します。具体的には、構成証明鍵の証明書管理ライフサイクルにおいて、Google の責任範囲を広げたアーキテクチャに移行することによって実現します。RKP の詳細は、こちらから確認できます。

また、Google Play システム アップデートを使って直接アップデートできるモジュールをさらに増やします。これにより、シームレスかつ自動的により多くのシステム コンポーネントをアップグレードしたりバグを修正したりできるようになるため、デベロッパーはアップデートについて気にする必要がなくなります。現在、Android の 30 以上のコンポーネントが Google Play 経由で自動アップデートできる状態になっています。これには、Android 13 の新モジュールである Bluetooth や超広帯域無線(UWB)も含まれています。

昨年は、主要なオペレーティング システムの脆弱性のほとんどが、C や C++ などのプログラミング言語の未定義の動作によって引き起こされていることについてお話ししました。Rust は高度なシステム プログラミング(OS、ネットワーク)に必要な効率と柔軟性を兼ね備えたもう 1 つの言語ですが、Rust にはメモリ安全性という追加の利点があります。うれしいお知らせですが、鍵管理コンポーネントやネットワーク スタックなどの Android のセキュリティ上重要な部分に、Rust が採用されています。

強固なプラットフォームの実現は、メモリ安全性や不正利用防止技術などを継続的に改善することにとどまりません。強固な API サーフェスを実現して、エンドユーザーにより安全なエクスペリエンスを提供することもその一部です。

Android 13 では、アプリ デベロッパーが意図せずに導入してしまいがちな潜在的脆弱性への対策として、たくさんの機能拡張を実装しました。その 1 つとして、アプリの特定のブロードキャスト レシーバをエクスポートしてデバイスの他のアプリに公開するかどうかをデベロッパーが指定できるようにすることで、ランタイム レシーバの安全性を向上しています。また、インテント フィルタで一致しないインテントをブロックすることで、アプリとそのコンポーネントの保護をさらに強化します。

特定のセキュリティ認証要件に準拠しなければならない企業ユーザーのために、セキュリティ ログ レポートをアップデートして、セキュリティ ログのカバレッジを増やすとともに、ログを 1 か所にまとめるようにしました。この機能は、Common Criteria などの標準に準拠しなければならない企業に便利です。また、すべてのセキュリティ関連ログを 1 か所で審査できるので、管理ソリューション プロバイダなどのパートナーにとっても有益です。

条件に合わせたプライバシー

Android 13 では、プライバシーを重視したアプリを開発する方法が増えます。新しい写真ピッカーを使うと、別のアプリにメディア ライブラリへのアクセス権を与えることなく、共有したい写真や動画のみを選択できます。現在、アプリでこの機能を実装できるようになっています。

Android 13 では、昨年導入した周辺デバイス パーミッションを利用して、動作するために位置情報を要求しなければならないアプリの数も減らします。たとえば、一部のアプリや状況で、Wi-fi を有効にするために位置情報をオンにする必要はなくなります。また、ストレージの動作を変更し、オーディオ、画像、動画のファイルにアクセスするパーミッションを別々に要求しなければならないようにしました。

これまでは、アプリがバックグラウンドからクリップボードにアクセスすることは制限されており、それが行われた際には警告を表示していました。Android 13 では、短い周期でクリップボードの履歴を自動削除するので、アプリが以前にコピーされた情報を見ることはできなくなります。

Android 11 より、長期間利用しなかったアプリに付与されたパーミッションの自動リセットが導入され、その後、この機能は Android 6 以降を実行しているデバイスにまで拡大されています。それ以来、50 億以上のパーミッションが自動リセットされました。

Android 13 では、アプリ制作者がさらに積極的にパーミッションの削除ができるようになります。デベロッパーは、アプリが不要なパーミッションを保持する時間を短縮することで、プライバシーを強化できます。

通知が多くのアプリにとって重要であることは認識していますが、ユーザーにとっては、すべての重要度で同じであるわけではありません。Android 13 デバイスの新規アプリは、デフォルトで通知を送信する前にパーミッションを求めることが義務づけられるので、アラートを受け取りたいアプリを細かく制御できるようになります。

信頼できるアプリ

ほとんどのアプリ デベロッパーは、パッケージ化された機能がバンドルされたさまざまなソフトウェア開発キット(SDK)を使ってアプリを開発しています。SDK はすばらしい機能を提供してくれますが、一般的に、アプリ デベロッパーが SDK コードの確認や調整を行うことはほぼ不可能です。パフォーマンスの分析も同様です。

そこで、アプリの安全性を高めることを目的として、デベロッパーと連携して、新しい Google Play SDK Index を導入します。これにより、SDK のコードをアプリに組み込む前に、SDK の安全性や信頼性に関するシグナルを確認できるようになります。すべての方が、この仕組みを活用して、アプリのエコシステムのセキュリティとプライバシーを強化することができます。

先月、Google Play で新しいデータ セーフティ セクションのロールアウトを開始しました。これにより、アプリがユーザーのデータをどのように収集、共有、保護する予定であるかを、アプリをインストールする前に知ることができます。また、さらに Play アプリの信頼性向上を促すため、デベロッパーが世界で認知されているモバイルアプリのセキュリティ標準である OWASP の MASVS に照らして、独立してアプリを検証できるようにしました。

私たちは、少数のデベロッパー グループや認定ラボパートナーと共同で、このプログラムを進化させようとしています。この独立した検証を終えたデベロッパーは、その旨をデータ セーフティ セクションに表示することができます。

その他のモバイル セキュリティと安全性

現在、Google Play のマルウェア対策によって、1 日あたり 1,250 億個のアプリがスキャンされています。私たちは、それと同じように、スパムやフィッシングの検知には組み込みの機能が使われるべきだと考えています。うれしいことに、ある最新の分析レポートで、フィッシングと詐欺対策の組み込みメッセージング アプリとして、Messages が最も高い評価を受けました。

現在、Messages は、毎月 15 億のスパム メッセージからの保護に役立てられています。そのため、迷惑メールも不正アクセスの試みも避けることができます。悪意のあるユーザーが情報を盗み取ろうとして、リンクをクリックさせようとしたり、アプリをダウンロードさせようとしたりするケースが増えています。そのため Google は、常に新たな防御策を探し続けています。

昨年には Messages にエンドツーエンドの暗号化を導入し、モバイルでの会話のセキュリティを向上しました。今年は、グループ会話のエンドツーエンド暗号化をベータ版としてリリースし、個人のメッセージの保護をさらに強化する予定です。

Google はたくさんの機能を開発していますが、それをオープンで透過性のある形で行っています。Android 11 では、スマートフォンでプライバシーを保ちながらデジタル ID を使えるようにするプラットフォーム機能についてお知らせしました。これは、ISO 規格に準拠した新機能でした。カード型の免許証(またはその他の身分証明書)を誰かに渡して確認してもらう場合、選択の余地はありません。つまり、相手はフルネーム、生年月日、住所などの個人を特定できる情報(PII)にアクセスできます。モバイル版ならもっと細かい制御が可能で、相手に何を公開するのかをエンドユーザーやアプリが厳密に選択できます。さらに相手も、返されたデータを保持するつもりかどうかを宣言しなければなりません。また、身元を明かすことなく、年齢などの一部の詳細情報を提示することもできます。

直近 2 回の Android リリースでは、この API を改善し、サードパーティ組織がさまざまなデジタル身分証明のユースケースを簡単に利用できるようにしています。運転免許証、学生証、企業のバッジなどがその一例です。ここで、Google Wallet が Android Identity Credential を使ってデジタル ID と運転免許証をサポートすることを発表します。Google は、米国の各州や世界中の政府と連携し、今年中に Wallet でデジタル ID を実現する予定です。Google Wallet の新しい機能強化の詳細については、こちらからご覧ください。

Android による保護

Google は、皆さんのセキュリティとプライバシーはわかりやすく、制御しやすいものであるべきだと考えています。今年は、Android 13 デバイスの設定画面に、デバイスのセキュリティとデータのプライバシーのすべてを管理できる機能をロールアウトする予定です。

新しいセキュリティとプライバシーの設定ページでは、安全性の状態を色分けされたシンプルな表現で示すほか、セキュリティとプライバシーを改善するための明確で実用的なガイダンスも提供する予定です。このページの中心は、新しいアクション カードです。安全性のリスクに対処するために実行すべき重要な手順が、そこに通知されます。問題について警告する通知のほかに、プライバシーを強化する方法についてのタイムリーなおすすめも提供したいと考えています。

データを管理できているという安心感を得るには、信頼できる安全な土台が必要です。デバイスが安全でなければ、プライバシーの保護は望めないからです。Android が常に皆さんを守ることができるように、私たちは懸命に努力を続けています。その保護について詳しく知りたい方は、ウェブサイトをご覧ください。


Reviewed by Eiji Kitamura - Developer Relations Team