(57)【要約】【課題】本発明は、サービスサーバ、不審ユーザによるデータパケットをモニタリングする方法、およびその方法を実行させるためのコンピュータプログラムに関する。【解決手段】本明細書によると、クライアント端末から受信されたデータパケットの経路を指定し、指定された経路にしたがってデータパケットを伝達するルーティングモジュールと、１つ以上のクライアント端末からプレイログを受信し、前記受信されたプレイログをクラスタリングし、クラスタリングした結果に基づいてプレイログを分類し、予め設定された最小閾値以下の頻度数を有する不審ユーザクラスタと関連するユーザグループを不審ユーザ群として分類する一般モードサーバ装置とを含むサービスサーバが開示される。【選択図】図１
2019079517.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末から受信されたデータパケットの経路を指定し、指定された経路にしたがってデータパケットを伝達するルーティングモジュールと、
１つ以上のクライアント端末からプレイログを受信し、前記受信されたプレイログをクラスタリングし、クラスタリングした結果に基づいてプレイログを分類し、所定の不審基準を満たすログを不審ユーザクラスタとして選別し、前記不審ユーザクラスタと関連するユーザ情報を不審ユーザ群として分類する一般モードサーバ装置と、
を含む、サービスサーバ。
【請求項２】
前記ルーティングモジュールは、
不審ユーザ群に属する第１クライアント端末から受信されたデータパケットの経路を、前記一般モードサーバ装置ではない監視モードサーバ装置として設定し、
前記監視モードサーバ装置は、
前記第１クライアント端末から送受信されるデータパケットをリアルタイムでモニタリングし、前記データパケットをモニタリングした結果、第１クライアントによる行為が異常行動基準に該当するか判断する、請求項１に記載のサービスサーバ。
【請求項３】
前記監視モードサーバ装置は、
判断結果、前記第１クライアント端末が異常ユーザ群に該当しない場合、前記第１クライアント端末を一般ユーザ群として再分類し、前記第１クライアント端末を不審ユーザ群から除去するように更新する、請求項２に記載のサービスサーバ。
【請求項４】
前記ルーティングモジュールは、
格納された不審ユーザ群のユーザデータを参照することにより、データパケットの経路を決定する、請求項１に記載のサービスサーバ。
【請求項５】
前記監視モードサーバ装置は、
前記第１クライアント端末から受信されたデータパケットに含まれたインプットイベントおよびロジックに基づいて結果データを推論し、前記結果データおよび前記データパケットに含まれた結果データを比較して前記第１クライアント端末が異常ユーザ群に該当するか判断する、請求項２に記載のサービスサーバ。
【請求項６】
前記ルーティングモジュールは、
前記クライアント端末が異常ユーザ群に属する場合、受信されたデータパケットを直ちに遮断するように制御する、請求項１に記載のサービスサーバ。
【請求項７】
サービスサーバが、クライアント端末からデータパケットを受信する段階と、
前記サービスサーバが、データベースに一般ユーザ群、不審ユーザ群、異常ユーザ群を考慮した上で、クライアントが属するグループを決定する段階と、
前記クライアントが属するグループが一般ユーザ群または不審ユーザ群であるか判断する段階と、
判断結果として、前記グループが一般ユーザ群に属する場合、前記データパケットを一般モードサーバ装置に伝達して処理する段階と、
判断結果として、前記グループが不審ユーザ群に属する場合、前記データパケットを監視モードサーバ装置に伝達して処理する段階と、
判断結果として、前記グループが一般ユーザ群にも不審ユーザ群にも属さない場合、前記データパケットを処理せず、遮断する段階と、
を含む、不審ユーザによるデータパケットをモニタリングする方法。
【請求項８】
前記一般モードサーバ装置に伝達して処理する段階は、
１つ以上のクライアント端末からプレイログを受信する段階と、
前記プレイログをクラスタリングする段階と、
所定の不審基準を満たすログを不審ユーザクラスタとして選別し、前記不審ユーザクラスタと関連するユーザ情報を不審ユーザ群として分類する段階と、
を含む、請求項７に記載の不審ユーザによるデータパケットをモニタリングする方法。
【請求項９】
前記監視モードサーバ装置に伝達して処理する段階は、
第１クライアント端末からデータパケットを受信する段階と、
前記データパケットに含まれたインプットイベントおよびロジックに基づいて結果データを推論する段階と、
推論された前記結果データおよび前記データパケットに含まれた結果データを比較して前記第１クライアント端末が異常ユーザ群であるか判断する段階と、
を含む、請求項７に記載の不審ユーザによるデータパケットをモニタリングする方法。
【請求項１０】
前記結果データを推論する段階以後に、
前記推論された結果データおよび前記データパケットに含まれた結果データが一致しない場合、第１クライアントのユーザ情報を不審ユーザ群から異常ユーザ群に移動させて管理し、前記データベースに格納された異常ユーザ群に関する情報をアップデートする段階と、
を含む、請求項９に記載の不審ユーザによるデータパケットをモニタリングする方法。
【請求項１１】
前記結果データを推論する段階以後に、
前記推論された結果データおよび前記データパケットに含まれた結果データが一致する場合、前記第１クライアント端末のユーザ情報を不審ユーザ群から一般ユーザ群に移動させて管理し、不審ユーザ群に関する情報をアップデートする段階と、
を含む、請求項９に記載の不審ユーザによるデータパケットをモニタリングする方法。
【請求項１２】
コンピュータを利用して請求項７の方法を実行させるためにコンピュータで読み取り可能な格納媒体に格納された、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービスサーバ、不審ユーザによるデータパケットをモニタリングする方法、およびその方法を実行させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
一般的なＭＭＯＲＰＧ（Ｍａｓｓｉｖｅｌｙ  Ｍｕｌｔｉｐｌａｙｅｒ  Ｏｎｌｉｎｅ  Ｒｏｌｅ  Ｐｌａｙｉｎｇ  Ｇａｍｅ）をプレイするとき、ゲームプレイヤは、オンラインゲーム内でプレイヤキャラクタを操作しながらゲームを進めるようになる。このとき、ゲームプレイ過程では、アイテムを獲得したり、ゲームマネーを払ってゲーム内のＮＰＣ（Ｎｏｎ  Ｐｌａｙｅｒ  Ｃｈａｒａｃｔｅｒ）からアイテムを購入したりする。
【０００３】
アイテムとゲーム内で通用する貨幣であるゲームマネーは、オンラインゲームの進行を容易にするだけでなく、ゲームの楽しさを倍増させる要素でもあると言える。人気のある一部のＭＭＯＲＰＧの場合には、ゲーム内のレアアイテムやゲームマネーを、ゲームプレイヤどうしが現金で売買する自体も起こっている。
【０００４】
一方、このようなアイテムやゲームマネーの現金取引が頻繁に行われるようになることで、アイテムやゲームマネーを自動で収集するボット（ＢＯＴ）プログラムが登場し始めた。
【０００５】
ボットプログラムにはいくつかの種類があるが、その大部分は、クライアント端末にセキュリティプログラムをインストールしてボットプログラムのパターンを探知するなどの方式によって検出するようになる。
【０００６】
ところが、最近では、図１に概念的に示したように、多数のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を利用して集団的にボットプログラムを駆動することによって大量にアイテムやゲームマネーを収集し、これを一般のゲームプレイヤに販売して収益を得る、言わば「作業場」が登場するまでに至っている。
【０００７】
このような「作業場」は、一般的には知られていない非公開ボットプログラムを購入して使用する場合が多く、セキュリティプログラムによる検出が容易ではない。
【０００８】
たとえ、どうにかしてボットプログラムのパターンを入手し、セキュリティプログラムによってボットプログラムを駆動するアカウントを検出し、このアカントをブロックするなどの制裁を加えたとしても、「作業場」の特性上、ボットアカウントからアイテムやゲームマネーを集めるアカウント自体がこのような制裁を受けるものではないため、ボットプログラムを駆動する新たなアカウントを生成し直すといういとも簡単な作業だけで、「作業場」の運営を再開できるようになってしまう。
【０００９】
このようなことから、ボットプログラムを検出するだけでは、オンラインゲームの正常な運営に支障を与える「作業場」のアカウントを完全に把握するには限界がある。したがって、ボットプログラムを駆動しないアカウントを含んでおり、「作業場」に属するアカウント全体を把握するための新たなアクセス法が必要となっている。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
クライアント端末から受信されたプレイログをクラスタリングして不審ユーザ群を選別し、選別された不審ユーザ群のデータパケットを別に備えらえた監視モードサーバ装置によってモニタリングすることができる、サービスサーバおよび方法を提供する。
【課題を解決するための手段】
【００１１】
本発明の実施形態に係るコンピュータプログラムは、コンピュータを利用することで、本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法のうちのいずれか１つの方法を実行させるために媒体に格納されてよい。
【００１２】
この他にも、本発明を実現するための他の方法、他のシステム、および前記方法を実行するためのコンピュータプログラムを記録するコンピュータで読み取り可能な記録媒体がさらに提供される。
【００１３】
上述した以外の他の側面、特徴、利点は、添付の図面、特許請求の範囲、および発明の詳細な説明によって明確になるであろう。
【発明の効果】
【００１４】
本発明の実施形態によると、クライアント端末から受信されたプレイログをクラスタリングして不審ユーザ群を選別し、選別された不審ユーザ群のデータパケットを別に備えられた監視モードサーバ装置によってモニタリングすることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態における、システムの構造を示した図である。
【図２】本発明の実施形態における、サービスサーバの構造を示した図である。
【図３】本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【図４】本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【図５】本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【図６ａ】クライアント端末およびサービスサーバ間のデータパケット処理を説明するための図である。
【図６ｂ】クライアント端末およびサービスサーバ間のデータパケット処理を説明するための図である。
【発明を実施するための形態】
【００１６】
本発明には多様な変換を加えることができ、多様な実施形態を有することができることから、特定の実施形態を図面に例示することによって詳細な説明をより詳細に説明する。本発明の効果および特徴、またはこれらを達成しようとする方法は、図面と共に詳細に説明されている以下の実施形態を参照すれば明確になるであろう。しかし、発明は、以下で開示される実施形態に限定されてはならず、多様な形態で実現されることが可能である。
【００１７】
図１は、本発明の実施形態における、システムの構成図である。
【００１８】
図１を参照すると、本発明の実施形態に係るゲームサービスシステム１０は、ゲームサーバ１００、クライアント端末２００、２０１、２０２、２０３、２０４、通信網３００を含む。図１は発明の説明のための一例に過ぎず、クライアント端末の数やサーバの数が図１のように限定されることはない。
【００１９】
ゲームサーバ１００は、複数のクライアント端末２０１、２０２、２０３、２０４と通信網３００を介して通信し、命令、コード、ファイルコンテンツ、サービスなどを提供する１つまたは複数の装置で実現されてよい。
【００２０】
一例として、ゲームサーバ１００は、通信網３００を介して接続した第１クライアント端末２０１に、ゲームアプリケーションのインストールのためのファイルを提供してよい。この場合、第１クライアント端末２０１は、提供されたファイルを利用してアプリケーションをインストールしてよい。また、第１クライアント端末２０１が含むオペレーティングシステムおよび少なくとも１つのプログラム（一例として、ブラウザや前記インストールされたアプリケーション）の制御にしたがってサービスサーバ１００に接続し、サービスサーバ１００が提供するサービスやコンテンツの提供を受けてもよい。例えば、第１クライアント端末２０１が、アプリケーションの制御にしたがって通信網３００を介してサービス要請メッセージをサービスサーバ１００に送信すると、サービスサーバ１００は、サービス要請メッセージに対応するコードを第１クライアント端末２０１に送信してよく、第１クライアント端末２０１は、アプリケーションの制御にしたがってコードによる画面を構成して表示することにより、ユーザにコンテンツを提供してよい。
【００２１】
クライアント端末２００、２０１、２０２、２０３、２０４は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数のクライアント端末２００、２０１、２０２、２０３、２０４の例としては、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｔａｎｔｓ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットなどがある。第１クライアント端末２０１は、無線または有線通信方式を利用し、通信網３００を介して他のクライアント端末２０２、２０３、２０４および／またはサービスサーバ１００と通信してよい。
【００２２】
通信方式が限定されることはなく、通信網３００は、移動通信網、有線インターネット、無線インターネット、放送網を活用する通信方式だけではなく、端末間の近距離無線通信が含まれてもよい。例えば、通信網３００は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでよい。さらに、通信網３００は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００２３】
図２は、本発明の実施形態における、サービスサーバ１００の構造を示したブロック図である。
【００２４】
図２を参照すると、サービスサーバ１００は、ルーティングモジュール１１０、一般モードサーバ装置１２０、監視モードサーバ装置１３０、データベース１４０を含んでよい。
【００２５】
本明細書において、データパケットとは、クライアント端末にインストールされたアプリケーションの動作にしたがって生成されるデータの束を意味する。データパケットは、サービスサーバ１００の要請に応じて形式を変更してよい。例えば、データパケットは、アプリケーションの実行中に発生するプレイログを含むか、アプリケーション上のユーザ入力およびユーザ入力による動作に対する結果値であるインプット（ｉｎｐｕｔ）および結果データを含んでよい。データパケットには、「オンラインゲーム内」で行われた行為が含まれてよい。
【００２６】
本発明の実施形態に係るサービスサーバ１００は、アプリケーションに接続するクライアント端末のうちから不審ユーザが発見された場合、不審ユーザに該当するクライアント端末のアプリケーションの実行行為を、別に動作する監視モードサーバ装置によってモニタリングする。本発明の実施形態に係るサービスサーバ１００は、ユーザを、一般ユーザ群、不審ユーザ群、異常ユーザ群に分類して管理するようになる。不審ユーザ群は、プレイログをクラスタリングすることによって判断されてよく、異常ユーザ群は、不審ユーザ群に該当するクライアント端末からのデータパケットを別のシミュレーション装置によって処理することにより、リアルタイムシミュレーションによって判断されてよい。サービスサーバ１００は、教師なし学習（Ｕｎｓｕｐｅｒｖｉｓｅｄ  Ｌｅａｒｎｉｎｇ）方法に基づいてプレイログを分類し、一般ユーザが実行しない行動と関連するログを選別する。サービスサーバ１００は、類似するログを１つのクラスタとして分類し、一般ユーザではない異常ユーザによる行動は別に分類する。
【００２７】
サービスサーバ１００に含まれた一般モードサーバ装置１２０および監視モードサーバ装置１３０は、互いに影響を及ぼさずに動作してよい。サービスサーバ１００は、１つ以上のプロセッサを含み、一般モードサーバ装置１２０および監視モードサーバ装置１３０を独立して動作させてよい。
【００２８】
サービスサーバ１００は、受信されたデータパケット数の増加に伴い、一般モードサーバ装置１２０および監視モードサーバ装置１３０にそれぞれ割り当てられたプロセッサの数およびメモリの容量を調節してよい。
【００２９】
サービスサーバ１００は、一般ユーザ群、不審ユーザ群、異常ユーザ群のユーザデータを格納管理するデータベース１４０を含んでよい。
【００３０】
ルーティングモジュール１１０は、データパケットの発信者であるクライアントのグループを考慮した上で、受信されたデータパケットの経路を指定し、指定された経路にデータパケットを伝達する機能を実行する。クライアントのグループは、クライアントによって発生したデータパケットを分析した結果を利用することによって決定されてよい。クライアントのグループは、一般ユーザ群、不審ユーザ群、異常ユーザ群のうちの１つが決定されてよい。
【００３１】
ルーティングモジュール１１０は、データパケットの経路と対応するフラグ値を生成してよい。フラグ値は、一般ユーザ群に対応する値（０）、不審ユーザ群に対応する値（１）、異常ユーザ群に対応する値（−１）のうちの１つが設定されてよい。データパケットのフラグ値が一般ユーザ群に対応する値の場合には、データパケットは一般モードサーバ装置に伝達され、データパケットのフラグの値が不審ユーザ群に対応する値の場合には、データパケットは監視モードサーバ装置に伝達される。データパケットのフラグの値が異常ユーザ群に対応する値の場合には、データパケットは処理されず、遮断される。ルーティングモジュール１１０は、一般ユーザ群および不審ユーザ群のユーザデータが格納されたデータベース１４０を参照することで、第１クライアント端末のデータパケットの経路を一般モードサーバ装置１２０または監視モードサーバ装置１３０に設定するか、データパケットを遮断するようになる。ルーティングモジュール１１０は物理的に分離して実現されてもよいが、アプリケーション層で実現され、１つのコンピュータ装置にサーバ装置と共に設置されてもよい。
【００３２】
一般モードサーバ装置１２０は、アプリケーションによって生成されたデータパケットを処理する機能を実行する。一般モードサーバ装置１２０は、ルーティングモジュールによって伝達されたデータパケットを処理する機能を実行する。ルーティングモジュール１１０は、一般ユーザ群に該当するクライアント端末からのデータパケットを一般モードサーバ装置１２０に伝達してよい。一般モードサーバ装置１２０は、受信されたデータパケットのうちから、プレイログに基づいて不審ユーザ群を検索する機能を実行する。
【００３３】
一般モードサーバ装置１２０は、プレイログフィルタ部１２１、ユーザクラスタリング部１２２を備える。
【００３４】
プレイログフィルタ部１２１は、データパケットのうちからプレイログをフィルタリングしてよい。プレイログフィルタ部１２１は、データパケットに含まれるヘッダ値に基づいてプレイログをフィルタリングしてよい。ユーザクラスタリング部１２２は、多様なアルゴリズムを利用してプレイログをクラスタリングする。ユーザクラスタリング部１２２は、教師なし学習方法を利用してプレイログをクラスタリングする。ユーザクラスタリング部１２２は、ウェブページアクセス順序、エラー発生時のやり直し回数、テスト中間の遊休時間などを含むプレイログをクラスタリングする。ユーザクラスタリング部１２２は、多様な基準により、極めて多く存在するプレイログを、互いに類似するものどうし群集化してよい。プレイログは、類似または非類似に区分される。
【００３５】
具体的に、ユーザクラスタリング部１２２は、機械学習アルゴリズムを利用することで、プレイログをベクトル化、正規化する作業を実行して群集化する。プレイログに含まれた単語を所定のベクトル値に変更してよい。存在する単語間の関係を予め設定した相関行列（Ｃｏｒｒｅｌａｔｉｏｎ  Ｍａｔｒｉｘ）が活用されてよい。ここで、相関行列とは、固有名詞を２次元座標において点および連結線によって表現したものを意味する。このとき、固有名詞の位置および連結線は、固有名詞間の関係によって設定されてよい。例えば、「韓国」と「ソウル」の関係（同義または反義、上位概念または下位概念など）は、「日本」および「東京」の関係と等しいため、「韓国」および「ソウル」間の点の位置および連結線は、「日本」および「東京」間の点の位置および連結線と等しい方向を有するようになる。相関行列を活用することにより、ログに含まれたエラー値だけでなく、ログに含まれた単語を分析するのに単語の意味まで考慮される。相関行列を活用することにより、単に単語を区分するだけでなく、単語の意味までも区分するように設計される。
【００３６】
他の実施形態において、ユーザクラスタリング部１２２は、ｋ−ｍｅａｎｓアルゴリズムを利用して群集化してよい。ユーザクラスタリング部１２２は、収集されたプレイログをｎ個に分割したグループに区分してよい。生成されたｋ個のグループ内のデータオブジェクト同士の類似度は、予め設定された第１値以上に増加し、他のグループとのデータオブジェクトとの類似度は、前記第２値以下に減少するようになる。例えば、ユーザクラスタリング部１２２は、群集化されたグループのうち、含まれたログの数が少ないクラスタを不審ユーザクラスタとして分類してよい。不審ユーザクラスタに分類されたグループに含まれたログの特徴が、不審ユーザ群または異常ユーザ群を決定する基準となってよい。例えば、第１行為、第１結果を有するプレイログは第１グループに分類し、第２行為、第２結果を有するプレイログは第２グループに分類した場合、第１グループおよび第２グループに属するプレイログは、非類似として評価される。
【００３７】
他の実施形態において、ユーザクラスタリング部１２２は、群集化されたグループのうち、所定の不審基準を満たすログを不審ユーザクラスタとして分類してよい。不審基準は、発生頻度が予め設定された閾値以下であるか、予め設定された異常行為条件に符合するか、極めて多くの回数、例えば１０，０００回以上が発生したかのうちの少なくとも１つであってよい。ここで、不審基準は、管理者によって設定され、変更も可能である。ユーザクラスタリング部１２２は、群集化されたグループのうち、予め設定された最小閾値以下で発生する、すなわち、最小閾値以下のログを含むクラスタを不審ユーザクラスタとして選別してよい。ユーザクラスタリング部１２２は、不審ユーザクラスタに含まれたプレイログを発生させた第２クライアント端末を不審ユーザ群として決定する。ユーザクラスタリング部１２２は、データベース１４０の一般ユーザ群から第２クライアント端末と関連するユーザ情報を除去する命令語を生成するとともにデータベース１４０の不審ユーザ群に第２クライアント端末と関連するユーザ情報を追加する命令語を生成することにより、データベース１４０の格納内容を更新する。ユーザクラスタリング部１２２は、データベースをアップデートする命令語をデータベース１４０に伝達して処理する。
【００３８】
監視モードサーバ装置１３０は、ゲームアプリケーションによって生成されたデータパケットを処理する機能を実行する。監視モードサーバ装置１３０は、ルーティングモジュールによって伝達されたデータパケットを処理する機能を実行する。特に、監視モードサーバ装置１３０は、ルーティングモジュールによって生成された経路にしたがい、データベース１４０の不審ユーザ群に該当するクライアント端末からデータパケットを受信する。
【００３９】
監視モードサーバ装置１３０は、リアルタイムシミュレータ部１３１、異常ユーザ分類部１３２を備えてよい。
【００４０】
リアルタイムシミュレータ部１３１は、クライアント端末からデータパケットを受信し、データパケットをリアルタイムでモニタリングする。不審ユーザ群に属するクライアント端末は、監視モードサーバ装置１３０の制御にしたがい、ゲームアプリケーション内の行為によるデータパケットをリアルタイムで送信する。
【００４１】
本実施形態によると、リアルタイムシミュレータ部１３１は、リアルタイムで受信されるデータパケットが異常行動基準に属するか判断したり、データパケットに含まれた結果データの正当性を判断したりしてよい。ゲームアプリケーション内の行為によるデータパケットは、インプットイベント、これに関するロジック、クライアント端末によってインプットイベントが処理された結果データを含むように構成されてよい。ここで、インプットイベントとは、ユーザによって入力されたユーザ入力に対応するものであるが、アプリケーションのコードにしたがって処理されなければならないロジック、または関数に対する入力変数の形態に変換された値であってよい。ロジックとは、インプットイベントの入力を受けて処理するように実現された関数、コード、プログラムを意味する。受信されたデータパケットは、インプットイベントを該当のロジックに適用して算出された結果データをさらに含む。リアルタイムシミュレータ部１３１は、受信されたデータパケットに含まれたインプットイベントおよびロジックを適用して結果データを推論してよい。リアルタイムシミュレータ部１３１は、クライアント端末から受信されたデータパケットに含まれた結果データと前記推論された結果データとが一致するか判断することにより、データパケットに対応する行為が異常行動基準に該当するか判断してよい。例えば、第１データパケットに含まれたユーザから受信された第１攻撃行為の結果データが「アイテム減少」であることに比べ、リアルタイムシミュレータ部１３１によって推論された結果データが「アイテム獲得」である場合、第１データパケットは異常行動基準に該当すると判断してよい。第２データパケットに含まれた第２攻撃行為の結果データが「レベルダウン」であることに比べ、推論された結果データが「レベルアップ」である場合、第２データパケットは異常行動基準に該当すると判断してよい。
【００４２】
リアルタイムシミュレータ部１３１は、異常行動基準に該当するデータパケットを監視してよい。ここで、異常行動基準とは、ユーザによる行為ではなくボットによる行為に該当するか判断する基準を意味する。異常行動基準は、アプリケーション内の行為によるプレイログを群集化（クラスタリング）した結果を利用して設定されてよい。不審ユーザ群に属するグループの特徴が、異常行動基準として設定されてよい。異常行動基準は、一般モードサーバ装置によって群集化されたログを利用して設定されてよい。異常ユーザ分類部１３２は、リアルタイムシミュレータ部１３１によって異常行動基準に該当するデータパケットと関連するクライアント端末またはユーザ情報を異常ユーザ群として分類してよい。異常ユーザ分類部１３２は、異常行動基準に該当するデータパケットを閾値回数以上に発生させたクライアント端末のユーザ情報を、異常ユーザ群として分類してよい。
【００４３】
異常行動基準に該当するデータパケットを閾値回数以上発生させたクライアント端末のユーザ情報は、データベース１４０の異常ユーザ群に追加してよい。ここで、閾値回数は、１回が設定されてもよいし、複数値が設定されてもよい。このような場合、複数回以上の行為を発生させたクライアント端末またはユーザを、異常ユーザ群として分類してよい。異常行動基準に該当するデータパケットを閾値回数以上発生させたクライアント端末のユーザ情報は、一般ユーザ群および不審ユーザ群から除去され、異常ユーザ群に含んでよい。
【００４４】
ルーティングモジュール１１０は、データベース１４０を参照しながら、異常ユーザ群に該当するユーザのアカウントへのアクセスあるいは実行を中止させてよい。すなわち、ルーティングモジュール１１０は、異常ユーザ群に該当するクライアント端末からのデータパケットの経路を設定するのではなく、ゲーム実行が不可能なアカウントであるというメッセージをクライアント端末に送信するようになる。
【００４５】
データベース１４０は、一般ユーザ群、不審ユーザ群、および異常ユーザ群に属するユーザ情報を格納および管理する。一般モードサーバ装置１２０から受信された命令語に基づき、一般ユーザ群および／または不審ユーザ群の内容が更新される。監視モードサーバ装置１３０から受信された命令語に基づき、異常ユーザ群の内容が更新されてよい。ルーティングモジュール１１０は、データベース１４０の内容を参照しながら、データパケットの経路を指定してよい。
【００４６】
これにより、本発明の実施形態に係るサービスサーバ１００は、ゲームアプリケーション内でなされる不審行為と関連のあるクライアント端末を、一般モードサーバ装置とは別に実行される監視モードサーバ装置を利用して処理することができる。本発明の実施形態によると、別に実行される監視モードサーバ装置により、不審ユーザ群に属するクライアント端末のデータパケットは、リアルタイムでモニタリングが可能となる。物理的または論理的に区別されて存在する監視モードサーバ装置は、不審ユーザ群の行為が異常ユーザ群に該当するかモニタリングし、モニタリングの結果にしたがって一般ユーザ群、不審ユーザ群、異常ユーザ群の内容が更新される。
【００４７】
図３〜図５は、本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【００４８】
本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法は、ルーティングモジュールによってデータパケットを受信する段階Ｓ１１０、ルーティングモジュールによってデータパケットの経路を設定し、設定された経路によってデータパケットを伝達する段階Ｓ１２０、データパケットの経路の目的地が一般モードサーバ装置であるか判断する段階Ｓ１３０、データパケットが一般モードサーバ装置で処理されるように制御する段階Ｓ１４０、データパケットが監視モードサーバ装置で処理されるように制御する段階Ｓ１５０を含んでよい。
【００４９】
段階Ｓ１１０で、サービスサーバは、ルーティングモジュールによってデータパケットを受信する。
【００５０】
段階Ｓ１２０で、サービスサーバは、ルーティングモジュールによってデータパケットの経路を設定し、設定された経路にしたがってデータパケットを伝達する。ルーティングモジュールは、データベースに格納された一般ユーザ群、不審ユーザ群、異常ユーザ群を考慮した上で、クライアント端末から受信されたデータパケットの経路を指定し、指定された経路にデータパケットを伝達する。一般ユーザ群に該当するクライアント端末からのデータパケットは、一般モードサーバ装置に伝達されるように経路が設定され、不審ユーザ群に該当するクライアント端末からのデータパケットは、監視モードサーバ装置に伝達されるように経路が設定される。また、異常ユーザ群に該当するクライアント端末からのデータパケットは処理されず、ゲーム実行が不可能なアカウントであるというメッセージをクライアント端末に伝達する。
【００５１】
段階Ｓ１３０で、サービスサーバは、データパケットの経路の目的地が一般モードサーバ装置であるか判断する。
【００５２】
段階Ｓ１４０で、サービスサーバは、データパケットの経路の目的地が一般モードサーバ装置である場合、前記データパケットが一般モードサーバ装置によって処理されるように制御する。
【００５３】
段階Ｓ１５０で、サービスサーバは、データパケットの経路の目的地が監視モードサーバ装置である場合、前記データパケットが監視モードサーバ装置によって処理されるように制御する。
【００５４】
段階Ｓ１３０の動作については、図４および図５で詳しく説明する。
【００５５】
図４に示すように、段階Ｓ１４０の動作のうち、一般モードサーバ装置によって実行される方法は、複数のプレイログを収集する段階Ｓ１４１、プレイログをクラスタリングする段階Ｓ１４２、予め設定された最小閾値以下で発生するクラスタに含まれたプレイログと関連するユーザグループを不審ユーザ群として分類する段階Ｓ１４３を含んでよい。
【００５６】
段階Ｓ１４１で、サービスサーバは、一般ユーザ群に属するクライアント端末から複数のプレイログを受信する。
【００５７】
段階Ｓ１４２で、サービスサーバは、プレイログを分析し、教師なし学習方法を利用して類似度の高いプレイログを１つのクラスタとして生成する。
【００５８】
段階Ｓ１４３で、サービスサーバは、頻度数または発生ユーザの数などを総合的に考慮した上で、不審ユーザクラスタを選別してよい。サービスサーバは、予め設定された最小閾値以下のログを含むか、少し多めの頻度数を有するクラスタを不審ユーザクラスタとして選別する。不審ユーザクラスタとは、一般的なユーザの行為ではなく、ボットや機械によって発生するプレイログおよびログパターンを含む概念である。統計的に見るとき、頻繁に発生しない行為または極めて頻繁に発生しない行為の特徴を不審ユーザクラスタとして定め、不審ユーザクラスタに属するプレイログを選別する。
【００５９】
サービスサーバは、不審ユーザクラスタに含まれたユーザグループを不審ユーザ群として分類する。サービスサーバは、不審ユーザクラスタにしたがって一般ユーザ群および不審ユーザ群を更新する。
【００６０】
図５に示すように、段階Ｓ１５０の動作のうち、監視モードサーバ装置によって実行される方法は、第１クライアント端末からデータパケットをリアルタイムで受信する段階Ｓ１５１、データパケットに含まれたインプットイベントおよびロジックをシミュレーションして推論結果データを算出する段階Ｓ１５２、前記推論結果データおよびデータパケットに含まれた結果データが一致するか判断する段階Ｓ１５３、一致しなかった場合、第１クライアント端末を異常ユーザ群として分類する段階Ｓ１５４、一致した場合、第１クライアント端末を一般ユーザ群として分類する段階Ｓ１５５を含んでよい。
【００６１】
段階Ｓ１５１で、サービスサーバは、第１クライアント端末からデータパケットを受信し、受信されたデータパケットをリアルタイムでモニタリングする。
【００６２】
段階Ｓ１５２で、サービスサーバは、データパケットに含まれたインプットイベントおよびロジックをシミュレートして推論結果データを算出する。このとき、サービスサーバは、クライアント端末にインストールされたゲームアプリケーションと同じプログラミング環境が実現されたシミュレーションコードを仮想的に実行させて推論結果データを出力する。
【００６３】
段階Ｓ１５３で、サービスサーバは、推論結果データおよび受信されたデータパケットに含まれた結果データが一致するか判断する。
【００６４】
段階Ｓ１５４で、推論結果データおよび結果データが一致する場合、サービスサーバは、第１クライアント端末を一般ユーザ群として分類してよい。第１クライアント端末は、今後は不審ユーザ群に属することはなく、第１クライアント端末からのデータパケットは一般モードサーバ装置によって処理される。サービスサーバは、一般ユーザ群および不審ユーザ群の内容をアップデートするようになる。
【００６５】
段階Ｓ１５５で、サービスサーバは、推論結果データおよび結果データが一致しない場合、第１クライアント端末を不審ユーザ群から異常ユーザ群に移動させて管理する。サービスサーバは、不審ユーザ群および異常ユーザ群の内容をアップデートするようになる。
【００６６】
図６ａおよび図６ｂは、クライアント端末からのデータパケットを処理する過程を説明するための図である。本発明の実施形態に係るサービスサーバは、同じアプリケーションで生成されたデータパケットであったとしても、異なる経路、異なる装置によって処理してよい。
【００６７】
図６ａは、一般ユーザ群に属する第1クライアント端末２０１のパケットを処理する過程を示した図である。サービスサーバは、第1クライアント端末２０１から受信されたデータパケットを、クライアント端末が該当するユーザ群に基づいて一般モードサーバ装置１２０に伝達させて処理するように制御する。
【００６８】
図６ｂでは、不審ユーザ群に属する第1クライアント端末２０１のパケットを処理する過程を示した図である。サービスサーバは、第1クライアント端末２０１から受信されたデータパケットを、ルーティングモジュール１１０によって指定された経路にしたがって監視モードサーバ装置１３０に伝達させる。不審ユーザ群に属する第1クライアント端末２０１は、アプリケーション内の実行および実行結果を含むデータパケットをリアルタイムまたは予め設定された時間間隔ごとにサービスサーバに伝達するようになる。このとき、データパケットは、時間値、インプットイベント、ロジック、結果データを含む形態を有する。
【００６９】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および／またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【００７０】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置、または伝送される信号波に永久的または一時的に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてよい。
【００７１】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてよく、その逆も同じである。
【００７２】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００７３】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００７４】
１００：サービスサーバ
１１０：ルーティングモジュール
１２０：一般モードサーバ装置
１３０：監視モードサーバ装置
１４０：データベース
【図１】
2019079517.tif 000003
【図２】
2019079517.tif 000004
【図３】
2019079517.tif 000005
【図４】
2019079517.tif 000006
【図５】
2019079517.tif 000007
【図６ａ】
2019079517.tif 000008
【図６ｂ】
2019079517.tif 000009