チートを防ぐには何が必要なのか?セキュリティソリューション開発会社DNPハイパーテックにチートの実態と性質を訊く(前編)

チートおよびクラック対策のプロフェッショナルであるDNPハイパーテックにお邪魔し、開発会社を困らせるゲームのチートにまつわるさまざまなことをお聞きする企画。前編は主にチートの性質と実態を中心に解説してもらう。チートはどのように生まれ、どのような被害をもたらすのだろうか?

チートは、ゲームにおいてプレイヤーを困らせる悩みの種だ。特にオンラインゲームを遊んでいる最中に、チートによる迷惑行為により被害を受けた人もいるだろう。不正な迷惑行為は、そのゲームにおける体験を著しく落とすことになり、ゲームの質すら落とし得る。そしてチートはプレイヤーだけでなく、運営者をもまた大きく困らせる。

そうした被害を最小限に留めるツールを企業向けに開発・販売し、サポートしているのが株式会社DNPハイパーテックだ。主力商品である「CrackProof」は、ゲームを含むソフトウェアにプロテクトをかけ、違法行為から守るという。対象となるソフトウェアは、Windowsからモバイルまで幅広い。今回は、そんなチートおよびクラック対策のプロフェッショナルであるDNPハイパーテックにお邪魔し、チートにまつわるさまざまなことをお聞きした。前編は主にチートの性質と実態を中心に解説してもらう。

――はじめに、会社紹介をしていただけますか。

鶴衛正紘氏(以下、鶴衛氏):
弊社、株式会社DNPハイパーテックは1994年に設立しました。代表が技術者で、創業時光ディスク関連の事業を中心にしていました。現在のメイン事業であるセキュリティ事業は2003年頃からですね。もともと弊社が保有していたセキュリティに関するノウハウを製品化したのが「CrackProof」で、BtoB向け堅牢化ソリューションとして提供しています。

所在地はずっと京都です。2015年に大日本印刷グループとなり、現在の社名DNPハイパーテックになりました。

鶴衛正紘氏

須山徹氏(以下、須山氏):
一般的なセキュリティというわけではなく、アプリケーション回りのセキュリティです。セキュリティというと、ウイルス対策ソフトなどを連想されるかもしれませんが、解析から守るためのセキュリティという特殊なセキュリティになります。

鶴衛氏:
「CrackProof」は2003年当初は業務用ソフト向けに販売していました。業務用ソフトのクラック対策として使われていたんですが、2007年ぐらいからWindows向けのMMORPGタイトルでチート対策として使っていただくことが徐々に増えました。その後スマートフォンが世に出てくると、その時点では需要は未知数でしたがいずれモバイルゲームのチート対策も必要になるだろうと考え、2010年にAndroid、2012年にはiOSに対応した「CrackProof」の提供を開始しました。

その後2012~2013年にかけてスマートフォンのゲームが盛り上がってくると、それに比例する形で「CrackProof」のお客様にPCのオンラインゲームだけでなくスマートフォン版を利用してもらえるようになりました。また新しく事業を始められたパブリッシャーさんからもご相談いただけるようになりましたね。

――なるほど。「CrackProof」はWindowsからiOSやAndroidといったスマートフォン向けソフトウェアまで対応されているんですね。では、まずはアンチチートのスペシャリストとしてお話を聞かせていただければと思います(笑)。早速ですが、DNPハイパーテックさまが定義するチートとはなんでしょうか。

鶴衛氏:
広い意味でいうと、ゲーム内ですることの“ズル”すべてだと思いますが、ただそれだとキリがないので弊社で定義させていただいています。行為としては「スコアやHPの改ざん」「ステージやシナリオの開放」「レアキャラクターの入手」「現在位置の変更」「課金アイテムの入手」をチートと呼んでいます。「リセマラ」や「マクロ」といった手法に関してはチートにあたらないのかなと。

須山氏:
難しい話ですよね。私達もすべてがチートだとは思っているのですが、とはいえ広い括りでチートといってしまうと区別がつかない。そういう意味で、我々はゲームのメモリを書き換えてスコアやお金を手に入れることを主にチートと呼んでいます。FPSの壁抜けのようなケースを「ウォールハック」と呼ぶなど、個別の事例としての呼び方をするときもあります。そういう意味でも、我々もチートという言葉を広く使うときもあれば、狭く使うときもあります。使い分けていますね。結論としては、我々が対応できるリバース・エンジニアリング(解析および分析)やメモリアタックを、我々の業務的な事情で「チート」と定義させていただいている形になりますね。

――DNPハイパーテックさんが対応されるチート事例として、一番多いものはなんでしょうか。

須山氏:
最近の話でいうと、apk(Androidの実行ファイル)の改造ですね。広義のチートでいえば、海賊サイトに違法apkを上げられるという事例が一番多いですね。時代の変化も影響していますよね。昔であれば、チート使うにはデバイスをroot化して、「GameGuardian」のようなツールを使ってパラメータをいじるといった手法が横行していました。一連の操作を理解できない人のために、YouTubeでガイドするといった時代があったんですよ。ところが今はそれより敷居が下がっているんです。というのも、改造apkだとroot化しなくても誰でもできてしまうんです。そういう簡単に導入できるものが今の流行りかなと思います。つまり、技術のある人たちが素人でも使えるようなものを仕上げてきているんです。

――改造apkはスマートフォン向けアプリのものですよね。それはオフラインだけでなくソーシャル要素のあるものも含めてですか。

鶴衛氏:
はい、そうなります。そうしたアプリの改造apkを違法サイトに置いている形です。無料のものもあれば有料のものもありますよね。

須山氏:
ユーザーから注文を受けて作るような、受注型のモデルもありますね。簡単なやつだと無料で、手間がかかっているのは有料だったりします。一か月10ドルのサブスクリプション方式もあったり。

鶴衛氏:
Twitterでツールを販売している業者もいますね。

須山徹氏

――チートツールなどの販売方法も時代と共に変化してきているんですね。対応された事例について、具体的に教えていただけますか。

須山氏:
最近ではUnityさんの事例が多いですね。C#でプログラムを書けばいろんなプラットフォームに出せて便利なのですが、Unityは普通にビルドすると中間コードになってしまうんです。そうなると、ちょっとしたツールを使うことで簡単にリバース・エンジニアリングできてしまうんです。Unityを使われているお客様が、そうした改造apkの被害にあっているということで、ご相談にこられることが多いですね。また「CrackProof」がUnityに対応しているということもあってか、Unityのお客様が多いですね。

――チートの実際の被害というものは、どのようなものがありますか。

須山氏:
チートは、RMTの被害にもつながりますね。一番といってもいいんじゃないですかね。今はFree to Playタイトルを中心に、ゲーム内にマイクロトランザクションを導入しているものが多く、その収益に影響を与えますよね。

――チートで得たアイテムでRMTをする、と。

鶴衛氏:
我々がチート対策を始めた頃は、RMTというとメモリをいじって手に入れたアイテムを売りに出すという事例が多かったですね。それを問題視したパブリッシャーが対策を講じるというケースが多かったです。

須山氏:
ほかの被害としては、前述したように改造が多いですね。ツールを使えない人が増えてきた印象です。

小林亜実氏

小林亜実氏(以下、小林氏):
実際の被害は、なかなか数字化しづらいんですよね。本来得られていたものが得られないという形になるので。企業も計りづらいところはあります。ただ、ゲームの評価について気にされる企業は多いですね。Google Playのレビュー欄が荒れてしまうので。

鶴衛氏:
ゲームの収益が減ること、ゲームの評価が悪くなってしまうことがチートの主な被害だといえますね。

――PCゲームの話でいうと、Steamはレビューシステムが充実しているので、チート被害の多い作品はたちまち不評が目立つようになります。一般的には、こうした評価はやはり企業さま側も気にされていますか。

鶴衛氏:
それはもう、一番重要視されていると思いますよ。どれだけ宣伝してもレビューがダメだとコンバージョンも下がりますよね。

須山氏:
ストアレビューなどはスタートアップがとても重要なんです。最初に悪い評価がついてしまうと誰もダウンロードしなくなりますよね。昔の製品なら、うちのソフトはこれだけいいんですよと一方的な宣伝ができますが、今はユーザーの生の声が出てくるのでリアルですよね。

鶴衛氏:
2007~2008年頃は荒れるといっても2ちゃんねる(現5ちゃんねる)で荒れるというものだったじゃないですか。今となってはApp StoreやGoogle Playでそうした状況が発生します。そのゲームをプレイしていないユーザーでも、そのゲームがどういう状況か見てすぐにわかってしまうので、ゲームの評価はむしろ重要性が高まっている気がしますね。

須山氏:
そのほかの被害事例としては、ゲームバランス崩壊によるユーザー離れですね。また最近e-Sports進出というトレンドがありますが、チートが蔓延しているとそもそもe-Sportsとして厳しいと思います。競技として使えませんので。

――チートそのものの性質について教えていただけますか。たとえば、モバイルアプリでチートによってゲーム内で何をされるんですか。

須山氏:
不正apkの場合ですと、経験値が通常の10倍稼げたり、お金がすぐに得られるようになったり、今まで不正ツールなどでおこなっていたパラメータの改ざんが容易にできます。昔は端末をroot化してメモリエディタを使用しないといけなかったので難易度が高かったんです。dexファイルは中間コードなので容易にJavaソースコードに戻すことができます。ソースコードに戻ってしまえば都合よく改造して再コンパイル、再パッケージ化、再署名をすればパッケージとして再配布することができます。簡単なプロセスで改造できるものは無料で配布されていて、手のこんだものが有料になるという形ですね。

――チートのクオリティに比例して、ツールの価格が変わってくると。

鶴衛氏:
愉快犯なら別ですが、基本はなんでもお金につながると思うので、そうなりますね。

須山氏:
ちなみに、改造apkはAndroidにフォーカスした話ですが、iOSの場合はJailbreak端末上で動かせるかというのがポイントになってきます。Jailbreak上でなら不正がおこないやすいので。Jailbreak端末上では動かさないというセキュリティをかけているアプリもあるんですが、それを避けるようなツールも販売されていたりしますね。

――iOSにてJailbreakするユーザーは多いんですか。

須山氏:
多いようです。というのも、iOSはサンドボックスという形で端末への制限がかかっています。Androidはroot化しなくても、7~8割、もしかすると9割ぐらいは使えていると思うんですが、ところがiOSでは潜在能力の1割ぐらいしか引き出せない。だからJailbreakしたいと思うユーザーは多いのだろうと思っています。いろんなマーケットから多様なツールがダウンロードできますよね。

そういう面で、Androidでroot化する人はかなり限られてくると思うんですが、iOSでJailbreakする人は多いようです。あるゲームのお客様の話を聞いたのですが、そのゲームの海外ユーザーの50%がJailbreakユーザーだったようです。Jailbreakが一般化するとは思えませんが、無視できない存在になりつつあるのかなと。Jailbreakをすると“悪いこと”をできるようになるのですが、全員が悪いことをしたいというわけではなく、中には単にできることを増やしたいというユーザーも一定数いる気はしますね。

――iOSはセキュリティが強いというイメージはありますが、かといってiOSだから大丈夫だろうという話にはならないと。

鶴衛氏:
ならないですね。そういう認識の会社さんは多いんですが、そうでもないんです。

――Jailbreakをするのにもユーザーの知識がいりますよね。

須山氏:
そうですね。昔はJailbreakするのはすごく大変でした。しかし最近ではツールを入れて簡単にできます。最近のiOSはプロビジョニングファイルを信頼しさえすれば非Jailbreak端末でもApp Store以外で入手したIPAファイルをインストールできるようになったので改造apkを見かけるようになりました。
さすがに非Jailbreak状態だとメモリ改変はできませんがゲームを有利に進める改造apkを使用した被害がAndroid同様拡がりつつあります。

――ありがとうございます。では実態を聞いたところで、次はチートといって連想しやすいBOTの性質について聞かせてください。

須山氏:
どういう形でBOTを実現しているかという点が重要になりますね。種類がたくさんありますから。たとえばAIM Botなどになりますと、敵の座標をなんらかの形で取得していることになります。そして座標にあわせて撃てば敵を倒せるという形ですね。となると、サーバーに対してどうすれば座標を取得できるかがチーターにバレている状態ですよね。トータル的に考えると高度な技術だと思います。

――「自動的に撃つ」のと「自動的に狙って撃つ」のとは大きく性質が変わるということですか。

須山氏:
単なる連射はプレイヤー側の情報だけでできます。しかし敵の情報が含まれるとなると、一気に高度になります。たとえば、ウォールハックで考えてみましょう。「壁が透ける」と「壁を抜ける」は大きく違うんです。壁が透けるとなると、DirectXなどにフックしてテクスチャを誤魔化すと透けて見えますので、それほど高度な技術ではないんですよね。ところが壁を抜けようとすると、当たり判定に細工しないといけないので少し高い技術を求められます。

――壁透けと壁抜けは似ているようで全然違うと。

須山氏:
延長線上にはあると思いますが、技術的には雲泥の差があると思います。壁抜けとなるとクライアントに細工しているかサーバーに送る情報を誤魔化しているか。どちらかになりますね。サーバーにどれだけ情報を持たせて、クライアントにどれだけ情報を持たせているか、そしてそれらをどう通信させるかはタイトルによって全然違うので、一概に言えない部分もあります。

 

――送る情報を誤魔化しているんですね。ちなみに一般的なAIM Botの機能の流れを教えていただけますか。

須山氏:
それぞれケースが異なるのであくまで予想になりますが、敵の姿が見えたら敵の座標を取得。そこに向けて照準をあわせる。画面にて敵が表示されている部分にフックかけてサーバーをハックして座標を取得し、そこに照準をどう合わせるかというプロトコルを投げるという流れだと思われます。

Aim Botの場合は、サーバープロトコルの解析がされているんじゃないかと思います。サーバー↔クライアント間などですね。極端にいえばオンラインゲームではサーバーにすべての情報を置いて、クライアントは表示させるだけにすればいいんです。そうすれば絶対ハックされないんです。サーバー側ですぐに対策できますしね。ただ、今の時点ではデータ量的に現実的ではないですよね。やむを得ず、多くのデータをクライアントに置くことで、ハックされる。あるいは、クライアントにどう表示しなさいとやりとりする部分を読み取られて経路をやられてしまうんですよね。

――では壁抜けの機能の流れはどうですか。

須山氏:
壁抜けも断言するのは難しいですが、本来は「壁は抜けられないよ」とサーバーがクライアントに渡しているのですが、それに嘘をついて何もない空間に見せかけるような形だと思います。

――似たような事例としては、ほかにも瞬間移動がありますね。

須山氏:
ああいうものは、自分の座標を詐称してサーバーにわたす形ですね。座標はXYがあるんですが、Z座標もあります。そのZ座標を書き換えると空を飛べるというものではないでしょうか。ただ本来はありえない速度で移動した場合はサーバー側で弾かれるべきなんですが、そういう対策をしていないと瞬間移動や空を飛ぶことができるんですね。

そういう意味では、我々の考えているセキュリティはクライアントを守るというのも重要なんですが、サーバーのプロトコルも重要視しています。パケットデータは特に狙われやすいので、そのあたりも含めてトータルでお守りすることを考えていますね。

――無敵も問題になりますよね。

須山氏:
無敵は方法によりますね。受けたダメージをクライアント側で計算してサーバーに送る形なら、受けたダメージをクライアント側で書き換えて0にしてサーバーに送れば無敵になりますよね。もう少し賢いものなら、弾を当たった時に弾の座標をずらして外すとか、逆に自分の位置をこそっとずらすとか、いろんな方法があります。無敵が実現できてしまうなら、サーバー側の実装が甘いと考えてしまいますね。

――ゲームにフィルタをかけて見やすくするといったものもありますね。

須山氏:
そういうものは、壁透けと同じようにDirectX関連のものだと思います。DirectXに多くの部分を頼っているタイトルも多いので(笑)。

――次はMMORPGでおこなわれるチートの性質について教えてください。無限バフやクールダウン短縮などさまざまなものがありますよね。

須山氏:
いろんな方法があるんですが、どの事例もフックをかけるというのが一番簡単にできますね。たとえばバフ回数カウントやクールダウン時間計測など重要関数と同じ関数名で有利に働く偽関数を持つDLLを作成してプログラムにDLLインジェクション(DLLファイルをプログラム内に挿し込む)してオリジナル関数をフックするケースが多いようです。それができないのであれば、exeファイル全体を逆アセンブルしてパッチをあて、都合よく書き換えるというのが一般的だと思います。

――プラットフォームによって手法はやや異なるんですね。Windowsゲームとモバイルゲームのチートの性質で違いはありますか。

須山氏:
共通の認識として、Windowsゲームの方がやりたい放題できるというのはあります。Androidで悪いことをしようとすると、root化しなければいけない、エミュレーターで動かなさないといけない、GDBを使ってデバッグとか、それなりの知識と環境を揃える必要があります。逆にWindowsはもともとroot化されたような状態です。いろんなツールも揃っていますし、解析も逆アセンブルもしやすい。Windowsは脅威だと思われているお客様も多いと感じます。

鶴衛氏:
そういう意味では、スマートフォン向けタイトルで被害を受けており、同じタイトルをWindows向けに立ち上げる際に被害を防いでおこうという意図があるのだと思います。多くの事例はありませんが、家庭用ゲーム機版とWindows版の同時の立ち上げに際して、Windows版で弊社のサービスを採用頂いたお客様もいらっしゃいます。

小林氏:
一昔前はWindowsのゲームをスマートフォン向けに移植するというものが多かったんですが、今は逆が増えていますね。スマホのゲームを守る延長で、Windowsに移植する際にあわせて守るという形ですね。

鶴衛氏:
そうなった時にセキュリティに詳しい担当者の方ならWindowsのセキュリティについて理解されていると思うので、対策が必要だということでお声かけいただくパターンが多いですね。

――ありがとうございます。それではチートをどのように対策されているかを教えていただけますか。

後編に続く

AUTOMATON JP
AUTOMATON JP
Articles: 861