ポケモンGOをめぐるリスクについて

最近注目されているポケモンGOについて、FortiGuardでも分析しないわけにはいきません。ポケモンの捕獲に行くか、またはポケストップでモンスターボールをねらうかといったゲーム戦略のお役には立てませんが、今回はポケモンGOを分析し、インストールしても安全かどうかなどの第一印象について述べます。

バージョン

ポケモンGOのアプリケーションには2種類あります。

1. Niantic社が公開している公式バージョン。

公式バージョンについては後述しますが、手短に言って、これは不正アプリケーションではありません。

2. ハッキングされたバージョン。これらは「MOD」と呼ばれ、さまざまな理由により他の開発者が公開するバージョンです。マルウェアが検出されるのは、ほとんどの場合このカテゴリに属するアプリケーションです。たとえば、DroidJack RATを使用してリパッケージされたバージョンが実環境で検出されています(後述)。

15db22fd7d961f4d4bd96052024d353b3ff4bd135835d2644d94d74c925af3c4

ただし、ハッキングされたすべてのバージョンに必ずしも悪意があるわけではありません。Android 4.0で使用(通常はバージョン4.4以降での使用が要件)したりGPS座標を変更したりするハッキングバージョンを調査したところ、いずれにも悪意は見られませんでした。

baf0dc2e19c6ec9ebfc2853785e92e175064c522a82410c2e56e204fad156838
4d482cf9beef8d4f03a6c609025fc6025069c0c83598032e46380d23a75f1979

手動での調査に加えて、これらの検体をSherlockDroid / Alligator(フォーティネットの学習ベースのAndroid予測エンジン)に送りました

ここでも同じ結果が得られました。

リスク1:感染したバージョンのインストール

前述のとおり、次のsha256を含む検体が検出されています。

15db22fd7d961f4d4bd96052024d353b3ff4bd135835d2644d94d74c925af3c4

これは、Android/SandrC.tr(通称DroidJack RAT)に感染しています。

このマルウェアは、2015年からシグネチャが割り当てられている既知のものです。したがって、フォーティネットのお客様は、この不正ポケモンアプリケーションについては最初から保護されています。

このマルウェアの拡散は広がっており、フォーティネット社内統計によると、1年間の検出数が8,800件を越え、先月だけでも160件が検出されています。また、レポート機能がデフォルトで有効になっていないなどのさまざまな理由により、これらの数字はかなり少なく見積もられたものです。したがって、基本的には、これが現在も実環境に多く存在する活発なマルウェアであることに注意する必要があります。

マルウェアがさらに登場する可能性はあるでしょうか。

マルウェア作成者は今後、さまざまなマルウェアを使用してリパッケージしたゲームを配信していく可能性が高いと考えられます。たとえば、このゲームが全世界で同時にリリースされなかった(このため、待ちきれないユーザーが代替のゲームをWebに求める)こと、さらにゲームのハッキング(これは問題なし)とチート(これは不正)が広く行われていることを併せて考えると、感染したバージョンがダウンロードされる可能性は高まる一方です。

リスク2:Googleアカウント情報に対する完全なアクセス(解決済み)

Adam Reeve氏は、このゲームがGoogleアカウントへの完全なアクセスを要求することを指摘しました。注:これはAndroidの許可ではなく、Googleアカウントに連携するアプリケーションの許可を指します

これは不備であり、Niantic社はこの問題を修正しました。したがって、必ずアカウントから許可を削除し、ポケモンGOアプリケーションをアップグレードしてください。

最後に、この報告では「完全なアクセス」の範囲が明確でない点に注意する必要がありますが、現時点ではこの問題を利用するマルウェアや攻撃は報告されていません。

リスク3:望まないネットワークトラフィック

ユーザーの位置情報、近くにいるポケモンの詳細など、ゲームの実行にどうしても必要なパケットだけがネットワークで送信されることが理想です。

しかし、現実はこれとは程遠く、何年もの間、大部分のAndroidアプリケーションにはサードパーティキット(分析、クラッシュレポート、クロスプラットフォームエンジンなど)がバンドルされてきました。これらの機能が、ユーザーのスマートフォンの正確なモデルといった比較的影響の小さい情報から、最悪の場合は電話番号などの個人情報まで、何らかの有用性のある二次的情報を送受信するために帯域幅を使用します。

ポケモンGOも、このような帯域幅を多く消費するアプリケーションです。私もこのアプリケーションを2週間前にダウンロードしましたが、すでに携帯電話のアプリケーションの中で帯域幅消費が最も多いアプリケーションの1つとなっています。

モバイルユーザーにとって、帯域幅の消費は大きな問題です。平均して、アプリケーションのトラフィックの24%はサードパーティの追跡と広告サービスに使用されています。この割合が98%にも達するアプリケーションも存在します。

ポケモンGOの二次的トラフィックの割合は正確には測定されていませんが、サードパーティ機能が多く含まれることを考慮すると、50%を超えてもおかしくはないと思われます。

バージョン0.31.0に含まれるサードパーティ機能は、以下のとおりです。

  • Crittercism(現在はApteligentと呼ばれています):モバイルアプリケーションの「パフォーマンス管理ソリューション」
  • Dagger:高速の依存関係インジェクター
  • Androidサポートライブラリ:ほとんどすべてのAndroidアプリケーションに共通するライブラリ
  • Apache Commons I/O
  • Unity3D:ポケモンGOが大きく依存するゲームエンジン
  • SpaceMadness Lunar Console:iOS/Androidネイティブの小型Unityロガー
  • Google広告
  • Google GSON
  • Jackson XML:Java用JSONライブラリ
  • JNIブリッジ
  • Upsight:モバイル向け分析/マーケティングプラットフォーム
  • Google Billing
  • Square Otto:イベントバス
  • Voxel Busters:「クロスプラットフォームのネイティブプラグイン」を使用
  • リアクティブプログラミング用Rx

このような、サードパーティサーバーへの「重要ではない」ネットワークトラフィックと共に、一般的なデータ漏洩の問題があります。Niantic LabsとUnity3D(ゲームエンジン)が位置情報にアクセスする(ポケモンとポケストップの位置を特定するため)ことは当然予想されるとしても、Crittercism、Google広告、Jackson XML、Upsightなどのアプリケーションまでもが位置情報を取得するとは、通常は予想されないでしょう。

逆アセンブルされたコードからは、Voxel Bustersが携帯電話に格納されている完全な連絡先情報を構築していることが分かります(以下参照)。すべての連絡先の表示名、電話番号、および電子メールにアクセスし、リストをJSONオブジェクトにコンパイルしてUnitySendMessageという関数に送ります。データはさらに、Unity共有ライブラリ(libunity.so)によってエクスポートされ、別の関数に送られます。その先の処理については、現時点では不明です。連絡先情報がリモートサーバーに送られるのかどうかについては、まだ確認されていませんが、その可能性が懸念されます。

このように、ポケモンGOを使用するときには、位置情報だけでなく他の詳細情報(ネットワーク事業者名、携帯電話のブランド名など)も一緒に複数のリモートサーバーに送信され、このような二次的なトラフィックについても帯域幅を消費するという形で「料金」が発生していることを認識する必要があります。残念ながら、これは今日のアプリケーションストアで提供されているほとんどすべてのゲームに当てはまる問題です。

リスク4:偽装されたポケモンマップ/アクティビティ

ポケモンGOアプリケーションは、Niantic社のサーバーとの通信にHTTPSを使用します(以下参照)。さらにバージョン0.31.0では、Niantic社はアプリケーションが正規のポケモンGOサーバー以外と情報をやりとりしないように、Certificate Pinningを導入しました。


ポケモンGOサーバーとのTLSハンドシェークの開始

しかし、Certificate Pinningが有効でない場合、攻撃者はMITM攻撃を実行して、ターゲット向けにゲームを完全に改ざんすることが可能です。たとえば、rastapastaはポケストップのカスタマイズに成功しています。


rastapastaによってハッキングされたポケストップ

悪意があれば、ポケストップに感染リンクを表示したり、感染トラフィックを直接挿入したりするなどの他のカスタマイズを簡単に思いつくでしょう。ただし、そのような攻撃の実現は可能とは言え困難であり、また、ポケモンGO用のMITMプロキシがセットアップされたネットワークでしか機能しません。

まとめ

  • ポケモンGOは不正アプリケーションではありません
  • このアプリケーションからユーザーの電子メールに完全にアクセスすることは、現在はできなくなっています。以前のバージョンにはリスクがありますが、この問題は今のところ実証されていません。
  • 実環境では、マルウェアを使用してリパッケージされたポケモンGOのバージョンが存在し、その数はさらに増えると予想されます。このため、安全なアプリケーションストアからアプリケーションを取得していない場合は、公式バージョンに対してSHA256ハッシュを確認するか、またはアンチウイルスツールでアプリケーションをスキャンすることをお勧めします。
  • 現在使用されているほとんどのアプリケーションと同様、ポケモンGO(または、使用されるサードパーティアプリケーション)はユーザーのプライバシーにアクセスし、また望まないネットワークトラフィックを発生させます。
  • Niantic社がゲームサーバーへのアクセスの保護に配慮していることは明らかですが、ローカルではスキルの高い攻撃者によるMITMプロキシ攻撃の可能性が依然としてあります。

このトピックについては今後も追跡していきます。

-- Crypto Girl