ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

【ポケモン GO】使用不能になったポケモンGO向けリアルタイムマップの現状と見通し【Pokémon GO】

      2016/10/24

Pokemon go reverse engineering 00000

2016年10月5日の「コイル警備員」が実装されたゲームサーバー側のアップデート以降、リアルタイムマップに代表される「Pokémon GO(ポケモン GO)」用サードパーティーのツールやサービスが一斉に使えなくなりました。

「コイル警備員」とは、「Pokémon GO(ポケモン GO)」のサーバーに接続しているのが正規のゲームアプリかどうかを判定し、正規のゲームアプリでない非正規のアクセスだと疑われる場合に、人間でないと操作できないWebページを介在させ、確認を入れる仕組み。

人間かどうかを判断するのにはGoogleが開発した「reCAPTCHA」を使用しています。

ひとたび非正規なアクセスだと疑われ、reCAPTCHAによる認証を要求されると、それを機械が解除するのは非常に困難。

2016年10月7日からは、ゲームサーバーとゲームアプリとの間に、新しい暗号化された通信方式が採用されました。「Pokémon GO(ポケモン GO)」のゲームサーバーと任意に通信をするためには、この新しい暗号通信方式に則って通信をする必要がありますが、いまだこれを解き明かした人は現れていません。

サードパーティーツールの開発難度が非常に高くなったため、これまで「Pokémon GO(ポケモン GO)」の解析を手がけた開発者はおおよそ手を引いてしまいました。

現状を打開するための解析が進行中

上記のような理由で、現状サードパーティーのツールやサービスがゲームサーバーと通信をすることができなくなっています。

再び機能させるためには、運営が施した新しい対策をかいくぐるための情報が必要です。

今なお「Pokémon GO(ポケモン GO)」関連で動作しているサービスは、過去の通信実績から構築したデータベースを使用しているか、ユーザーからの投稿に依っているかのどちらかです。

サードパーティーのツールやサービスに対して壊滅的なダメージを与えたこれらのセキュリティ関連のアップデートですが、もちろんこれに抗う試みが進行しています。

中心人物は、「Pokémon GO(ポケモン GO)」のリアルタイムマップFastPokeMapを運営する @FastPokeMapCom 氏(Reddit上では whitelist_ip というハンドル名で活動)。

Pokemon go reverse engineering 00001

南アフリカを拠点に活動する、セキュリティリサーチャー、ネットワークセキュリティの専門家である @FastPokeMapCom 氏を中心に、彼が雇ったARM CPUの解析経験のある協力者とチームを作って共に解析を進めています。

非正規アクセスへの対策を強化した最新版の「Pokémon GO(ポケモン GO)」の解析は、氏が思っていたより順調に進み、遅くとも今週末(2016年10月15日〜16日)には解析完了の予定ということです。

解析にはハードウェアブレークポイントなどのARM CPUの知識、Linux OSにあるptraceという実行中のプログラムを操作する機能を使う知識を用いており、通信内容を解析していたと思われる「Pokémon GO(ポケモン GO)」初期の解析作業から、大分異なる様相を呈しています。

こうなるに至ったのは、バージョン0.37以降に導入されたObfuscation、つまり難読化処理が影響しています。ゲームサーバーとの通信が暗号化された上に、さらにアプリケーション自体にも難読化処理が施されたのです。

Android OSでGoogleが提供する改造OS検知の仕組み、SafetyNetも加えると、解析者を阻むハードルは四つにも及びます。

  • 不審なアクセスを弾く「コイル警備員」(reCAPTCHA)
  • 新しい未知の暗号化通信
  • アプリケーションの難読化
  • 改造OSを検出し、アプリの動作を停止するSafetyNet(Androidのみ)

@FastPokeMapCom 氏からの問題提起

それをすべて掻い潜り、FastPokeMap の再稼働にこぎつけようとしている @FastPokeMapCom 氏は、解析で得た知見を元に「ポケモンGOの秋」という題名の長文ツイートで、それにまつわる問題提起をしています。

バージョン0.37以降に施されたアプリケーションの難読化処理は、@FastPokeMapCom 氏らの解析により、本命の処理、例えば「1+1」を、「5*39, 45/9.45, 1+1, etc, etc」といった具合に多数の不要な処理の中に紛れ込ませていることが分かりました。

その影響で、「Pokémon GO(ポケモン GO)」はよりバッテリーを消費するようになり、動作はより重くなったのです。

また、改造OSを検出するSafetyNetは、OSを改造していない無実の中国製Android端末、Blackberryを改造OS端末と誤検出し、それらの上でのゲームの実行を阻んでしまいます。

ユーザーの不利益にもつながる対策を打ったところで、結局本気で解析を試みればできてしまうし、抑止力にはなっていない。

一方で、ゲームをより重く遅くし、動作する端末を絞ることは確実にユーザーを減らす。それは賢いやり方ではないのではないか? ということを @FastPokeMapCom 氏は言っています。

サードパーティーツールがゲームサーバーに加える負荷の問題を無視していますし、運営がそうせざるを得ない原因を作っておいて随分勝手な言い分ではあるのですが、この週末に実際に解析が完了し、FastPokeMapが再稼働することになるのなら、後に残るのは動きがカクカクで、バッテリーをバカ食いし、そして少なくないAndroid端末を排除する残念なゲームアプリだけ、というのは虚しい話ではあります。

これからサードパーティーツールはどうなる?

@FastPokeMapCom 氏率いる解析チームは、作業が完了したら、もちろん現在機能停止中のFastPokeMapを復旧させることでしょう。

FastPokeMapが近日中に復旧する可能性は高いといえます。

@FastPokeMapCom 氏は、リアルタイムマップはゲームに必要だと主張する一方でbot行為に対しては異を唱えていて、bot行為が蔓延しないよう、解析を完了しても情報を公開しないつもりだということです。

ARM CPUに対する知識、それを活用した解析の経験がないとできない難度の高い解析作業ですから、彼らが解析結果を元にFastPokeMapを復旧させても、その情報を公開しない限りその他のサードパーティーツールやサービスが復旧することはあり得ないでしょう。

ただ、元々がグレーの世界なので、FastPokeMapにタダ乗りしてアプリを開発したり、別のサービスを開発するところは出てくるかもしれません。

彼らにとっての最初の懸念は、世界中のニーズを独り占めすることになるFastPokeMapが、まともに運営できないことかもしれませんが。

@FastPokeMapCom 氏以外にも、botサービスを提供する業者が、解析に取り組んでいるという情報もあります。こちらの動きはよく分かりませんが、露骨に営利目的でサービスを提供するスタンスでしょうから、こちら経由から情報公開されることもなさそうです。

しばらくは、ゲームサーバーにアクセスするサードパーティーツールは、FastPokeMapと怪しげなbotサービスのみが存在する状況が続きそうですね。

ついに解析完了か

@FastPokeMapCom 氏が「本日、幸運にも我々は失われた(最後の)ピースを発見した」、つまり解析完了をアナウンスしています。

今後の動向からは目が離せませんね。

2016年10月16日17:00追記: まだ解析中とのことです。

@everyone Thanks for understanding. We are still working hard on the API

ついにサービス再開

FastPokeMapがサービス再開しました! 解析結果を、他のサービスやアプリにも公開する方針を取ったとのことです。

Evernote the last sale

ポケモンGO関連の最新情報を収集する効率的な方法

このエントリで紹介しているような情報をはじめ、当サイトでフォローできていない「ポケモンGO」の攻略情報は、スマートニュースで収集するのが効率的です。


Smart news pokemon go

スマートニュース独自の記事評価アルゴリズムで優秀な記事を自動的に集めてくれるため、快適に情報収集ができます。

圏外でも読める作りは、地下鉄での通勤時間をニュース読みに当てる場合の強力な味方になってくれます。弊サイトも時々スマートニュースで紹介されることがあるようで、取り上げられるよう頑張って更新しています(笑)。

スマートニュース / 圏外でもニュースがサクサク読める (SmartNews)
カテゴリ: News
販売元: SmartNews, Inc.(サイズ: 15.9 MB)
全てのバージョンの評価: (27,676 件の評価)

 - Pokemon GO