情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

「ポケモンGOマップ」アプリがモンストが開くはずのURLスキームを乗っ取り全画面広告に転送してくるので注意

セキュリティ (62) ポケモンGO (157) ポケモンGO-iPhone (27) ポケモンGO-セキュリティ (1) ポケモンGO-ポケモン地図 (33)

ポケモンの出現位置をリアルタイムで表示する地図アプリ「ポケモンGO マップ - リアルタイムでポケモンを探そう!」が人気で、AppStoreの無料総合ランキング上位に位置しています。

しかし、このアプリについて、「モンストマルチ掲示板が乗っ取られる」「モンストマルチのLINE募集機能が使えなくなる」などとレビューされています

これは一体どういうことなのか。実際に試してみたので、その問題やカラクリを紹介します。

pokemon-go-pokemon-go-map-url-scheme-appstore

早い話、「モンスト」アプリが起動するためのURLを開くと、なぜか「ポケモンGOマップ」アプリが代わりに開いて「全画面広告」を表示してくる、しかもポケモンGOマップのせいだと気が付きにくい仕組み&結果モンストが正しく動作しない、そんな現象が、ポケモンGOマップをインストールしたユーザーに発生しています。

「ポケモンGO マップ」が人気

「ポケモンGO マップ」は、ポケモンGOのゲーム内において、どの位置にどのポケモンが現在居るのかを確認するための地図アプリです(PokeVisionやPokeWhereなどと同様の機能を持つアプリ)

pokemon-go-pokemon-go-map-url-scheme-appstorer-ueno-park

現在少しランクを落としましたが、AppStore無料総合で「13位」に位置している、有名アプリです。

pokemon-go-pokemon-go-map-url-scheme-appstorer-rank-13

「モンストが使えなくなる」等の謎のレビュー

このアプリ、「ポケモンが見つからない」「ポケモンが表示されない」「ポケモンが表示されるまでが遅い」「隠れているポケモンと違う」「騙された」「嘘表示」などなどの酷評もあってか評価が低くなっているのですが、その一方で、本来関係の無いはずのゲーム「モンスト」に言及するレビューが散見されます

例えば、

  • モンストのURLが乗っ取られる
  • モンストマルチが乗っ取られる

他にも、「他のアプリが乗っ取られる」「個人情報が取られる」など、気になる表現がありました。

「モンスト」について実験してみる

そこで、レビューで具体的に言及されている「モンスト」について実験をしてみることにしました。

モンストには、よく「マルチ」と呼ばれる、複数人同時プレイ機能があります。

その一緒にプレイする仲間を募集するための専用URL「http://static.monster-strike.com/line/?pass_code=XXXX」や、URLスキームによる記法「monsterstrike-app://joingame/?join=XXXX」が存在するのですが、どうやらレビューから推測すると、それらのURLが「乗っ取られている」というように読めます

しかし、レビューは短いものが多く、詳細はよく分かりません。

実験してみる

そこで実際に、それらのモンスト用招待用URLを開いてみることにしました。実験です。

実験端末には、以前からインストールされていた「モンスターストライク」アプリと、インストールしたばかりの「ポケモンGOマップ」アプリ、両方がインストールされている状態です。

モンストをプレイしていたユーザーが、ポケモンGOを使い始めて、ランキング上位のポケモンGOマップをインストールした、という状態です(iPhone 6s Plus + iOS 9.3.4 最新)。

モンストのURLスキーム「monsterstrike-app://」が「ポケモンGOマップ(Map)」に転送される

実際に、「monsterstrike-app://joingame/?join=XXXX」を開いてみた画面がこちらです(画像のアドレスバーの表示は、ミスの名残で、必ずこう表示されるわけではありません)

pokemon-go-pokemon-go-map-url-scheme-open-with-map

このページを"Map"で開きますか?
[キャンセル] [開く]

また、マルチのLINE募集で利用される「http://static.monster-strike.com/line/?pass_code=XXXX」にアクセスしてみても、同様に、次の画面となりました。

pokemon-go-pokemon-go-map-url-scheme-open-with-map-line-url

ポップアップメッセージでのアプリ名は「Map」となっていますが、これは、「ポケモンGOマップ」の、インストール後のアプリ名表記です。

pokemon-go-pokemon-go-map-url-scheme-app-name

つまり、モンストのURLスキームが、ポケモンGOマップアプリに転送される状態になってしまっているわけです。

本来は「モンスト」のはず

本来、モンストのみをインストールしている環境であれば、次の画面になります。

pokemon-go-pokemon-go-map-url-scheme-open-with-monst

このページを"モンスト"で開きますか?

つまり、まさしく、モンストっようのURLが、乗っ取られてしまっています

モンストのURLスキーム経由でポケモンGOマップを開くと広告が表示される

さて、先ほどの「開きますか?」に「開く」を選択すると、ポケモンGOマップアプリが起動した上で(気が付きにくいが)、「全画面広告」が表示されます。

pokemon-go-pokemon-go-map-url-scheme-full-screen-ad

つまり、モンストユーザーの導線を横取りして広告を強制表示していることになります。

ポケモンGOマップのアプリ内広告による収益に加えて、モンストアプリに対しても広告を表示しているような状態です。

気が付きにくい挙動

右上にある「閉じる」をタップすると、アプリが丸ごと閉じてしまい、ポケモンGOマップが正体であることになかなか気が付けない仕組みとなっています

広告が表示されている状態でアプリ切り替えをしても、広告がすぐ終了してしまうのですが、確かに前面表示されていた、広告を表示していたアプリが、ポケモンGOマップであることは、かろうじて確認できます。

pokemon-go-pokemon-go-map-url-scheme-front-app

他のアプリも乗っ取られている可能性

今回は、レビューで確認できた「モンスト」についてのみ実験をしましたが、全く同じ仕組みで、他のアプリのURLスキーマも乗っ取られている可能性があります。注意してください。

ポケモンGOマップインストール以降に、怪しい挙動が発生していないかを思い出した方が良いかも知れません。

対策:アプリをアンインストールする

この乗っ取り問題を回避するには、アンインストールが有効です。

ポケモンGOマップアプリをアンインストールすると、それ以降、ちゃんとモンストが起動するようになりました

現状、URLスキーマを乗っ取って広告を表示しているだけと思われますが、URLに個人情報が含まれていたとすれば、何らかの悪用も考えられます。モンストの友だち招待URLなら、IDが逆算されるくらいで大したことはない(?)かもしれませんが、他のアプリも乗っ取られていて、URLに投稿文などが含まれていた場合は、収集されている可能性もあるので、意識しておいても良いかも知れません。今回は、そこまで検証できていませんので、可能性として。

「ポケモンGOマップ」含めポケモンGO関連アプリに注意

ポケモンGO人気にあわせて、いろいろなアプリ、サービスが開発されていますが、かなり怪しい仕組みで動作しているものも多く出現しており、注意が必要です(例:PokeIV)。

今回の「ポケモンGO マップ」も、このような怪しい(悪意を感じる)挙動をするため、利用は避けた方が良いと思います

ただ、無料総合ランキングでここまで上位をキープしていると、次々利用者は増えているものと思われます。。。

付録:URL Schemeの優先度について

実際この挙動は、URL Schemeの重複が原因と思われます。

モンストが「monsterstrike-app://」を登録している一方で、ポケモンGOマップも「monsterstrike-app://」を、自アプリのURL Schemeとして登録しているのでしょう。

ただ、このような重複発生時にどちらが優先されるのか、という部分について、はっきりとした指定をする方法や、挙動を明示しているオフィシャルな資料はないようです(ちょっとググった結果。新しい情報も少ないので、今は違うかも)。

とりあえず、後からインストールしたアプリが優先されるのかな、と思うので、ポケモンGOマップ→モンストの順にインストールすると、乗っ取りは発生しないかも知れません。

付録:実験開始直後の挙動について

また、ポケモンGOマップインストール直後は、LINEマルチのURLを開こうとしても、「ページを開けません。アドレスが無効です」エラーになりました。

ポケモンGOマップを一度起動しても直りませんでしたが、Safariを再起動すると、ちゃんとURLが認識されるようになりました。

付録:iOS URL Scheme Hijacking

この種の攻撃は、「URL Scheme Hijacking」と呼ばれているようです(そのままですが)。

これで検索すると、いろいろ出てきます。

“Apple does not enforce the unique naming for App schemes”. Therefore, two completely different apps can use the same identical URL Scheme. Therefore a malicious App can use this to target a legitimate App. 引用元

今回はモンストだからまだだいぶましに見えますが、一応この攻撃で、アクセストークンを盗んだり、フィッシングをする(パスワードなどのログイン情報だとか銀行口座の情報を盗む)というのが定番のようです。

App can use the same URL Scheme as a legit App. This inter-app interaction essentially allows the URL Scheme to be hijacked and thus used in a phishing attack. 引用元

確かにできてしまいますね。。。

付録:モンスト関連サイト側の言及

「モンストマルチ掲示板」と呼ばれる種類のサイト(公式ではない)側も、アナウンスしているみたいです(8/9、だいぶ前・・・)。

コメント(0)

新しいコメントを投稿