数日前にリリースされた大人気ゲーム「Pokémon GO」は、iOSアプリの設定時に認証オプションとしてGoogleアカウントを選択すると、Googleアカウントへのフルアクセスが可能になります。Androidは影響を受けません。iOSアプリではポケモントレーナークラブアカウントの使用も可能ですが、この記事の執筆時点では、システム負荷のためか、新規クラブアカウントの作成オプションは利用できません。
アップデート: Pokémon Goのアップデートが利用可能になりました。このアップデートには、Googleアカウントのデータアクセスに関する修正が含まれています。アップデートをインストールすると、ゲームはGoogleユーザーIDとメールアドレスのみにアクセスできることを通知します。
ゲーム開発元のナイアンティックは月曜日遅くに発表した声明で、そのようなレベルのアクセス権限を要求したのは誤りであり、アプリはGoogleアカウント名と関連付けられたメールアドレスのみを使用していたと述べました。同社はアプリをアップデートし、要求される権限を削減しており、Googleはアプリの権限を自動的に削減すると述べています。ナイアンティックの声明全文は記事の末尾に掲載されています。
アナリティクス企業Red Owlの主席アーキテクト、アダム・リーブ氏は金曜日、個人ブログでこのGoogleアカウント問題について警告を投稿した。ほとんどのアプリは、リンクを提供するために最低限のアカウントアクセス(Googleの用語では「基本的なプロフィール情報」)を要求する。これは、アプリが要求する情報が多すぎると、ユーザー、専門家、そして時には規制当局から頻繁に反発を受けるためだ。
iOS 版 Pokémon Go は、リンクされた Google アカウントへのフルアクセスを静かに要求します。
iOSでのテストを通じてReeve氏の報告を確認すると、Googleアカウントオプションを選択すると、アプリは標準的なGoogleアプリ内ログイン画面を表示し、2要素認証が有効になっている場合は2要素認証も要求します。しかし、アプリ側もGoogleのログインプロセス側も、アプリがフルアクセス権を取得していることを明らかにしていません。Googleアカウントの「接続済みのアプリとサイト」リンクにアクセスすると、アプリのアクセス状況を確認できます。(Androidでは、アクセスを許可することなく認証が行われることが、テストと複数のAndroidユーザーによる確認で確認されています。連絡先、カメラ、その他の機能に対するローカル権限のみが付与され、それぞれに個別のプロンプトが表示されます。)
アクセスを取り消してもアプリは無効になりません。
ただし、アプリを無効にしなくてもアクセスを取り消すことは可能です。「接続済みアプリとサイト」設定で「Pokémon GO Release」をクリックし、「削除」をクリックしてから「OK」をクリックしてください。ゲームは引き続き動作しますが、後で再度認証を求められる可能性があります。
なぜこれが問題になるのか
フルアクセスにより、アプリやウェブサイトは、メール、連絡先、Googleドライブのファイルへのアクセスを含め、アカウント所有者であるかのように事実上機能することができます。(Googleにフルアクセスの範囲を明確にするよう要請しましたが、回答はありませんでした。)フルアクセスは本質的にセキュリティ上の欠陥ではありませんが、社内または社外の第三者によってシステムが侵害された場合、Nianticのユーザーはリスクにさらされます。また、ユーザーに代わってGmailを送信するなど、この高度なアクセス権限を行使することを選択した場合、Nianticは自滅の糸口を見つける可能性があります。
攻撃のリスクは、Googleアカウントの連携の仕組みに起因します。トレーナークラブのようなローカルで管理されるアカウントシステムでは、アカウントデータベースには、ユーザーのアカウント名やメールアドレスなどの要素の暗号化されていないエントリと、パスワードの暗号化されたエントリが混在しています。優れた暗号化システム設計であれば、たとえ攻撃者がデータベース全体を入手したとしても、多大な労力を費やしてもパスワードを抽出できません。(脆弱なシステムはブルートフォース攻撃を許してしまいます。)
しかし、Google、Twitter、Facebookなど、他のサイトが運営するアカウントを認証に利用するアプリやサイトは、サードパーティサイトのパスワード(暗号化の有無に関わらず)を保存しません。ユーザーがサードパーティサイトにログインし、アカウントが認証されると、開発者はトークン(短い一意のテキスト)を受け取ります。トークンは保存され、インタラクションの処理に使用されます。
攻撃者は、Twitter にメッセージを投稿する場合でも、Google でメールを読む場合でも、リンクされたアカウントを利用するためにそのトークンを取得するだけで済みます。
リーブ氏が指摘するように、メールへのアクセスだけでは、複数のサイトで誰かの個人情報やアカウントを乗っ取るための、ほんのわずかなきっかけに過ぎない。多くの人がGmailをメインまたはサブのメールアドレスとして利用しているため、他のサイトからそのGmailアカウントにパスワード再設定用のメールが送られてくる可能性がある。メールアドレスとトークンを持つ攻撃者は、ポケモンGOユーザーがアカウントを持っている可能性のある人気サイトでパスワードをリセットし、関連アカウントを乗っ取ろうとする可能性がある。
ゲーム開発元であるNianticの広報担当者は、現時点ではこの件についてコメントできないと述べた。Googleにも連絡を取り、新たな情報が入り次第、この記事を更新していく。(NianticはかつてGoogleの傘下でしたが、2015年10月にGoogle、株式会社ポケモン、そして株式会社ポケモンの株式の3分の1を保有する任天堂の投資により、独立した会社としてスピンオフしました。)
Niantic の完全な声明:
iOS 版 Pokémon GO アカウント作成プロセスにおいて、ユーザーの Google アカウントへのフルアクセス権限を誤って要求していることが最近判明しました。Pokémon GO は基本的な Google プロフィール情報(具体的にはユーザー ID とメールアドレス)のみにアクセスし、その他の Google アカウント情報にはアクセスも収集もされていません。このエラーに気付いた後、実際にアクセスするデータに合わせて、基本的な Google プロフィール情報のみの権限を要求するクライアント側の修正に取り組み始めました。Google は、Pokémon GO および Niantic がその他の情報を受信またはアクセスしていないことを確認しています。Google はまもなく、Pokémon GO の権限を、Pokémon GO に必要な基本的なプロフィールデータのみに縮小する予定ですので、ユーザー自身で何らかの対応をする必要はありません。詳細については、Niantic のプライバシーポリシー(https://www.nianticlabs.com/privacy/pokemongo/en)をご覧ください。
更新: このストーリーは、Niantic からの回答と、Google アカウントへのアクセスを取り消す手順とともに更新されました。