(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-17
(45)【発行日】2022-11-28
(54)【発明の名称】サービスサーバ、データパケットをモニタリングする方法、およびその方法を実行させるためのコンピュータプログラム
(51)【国際特許分類】
G06F 16/906 20190101AFI20221118BHJP
【FI】
G06F16/906
(21)【出願番号】P 2018196243
(22)【出願日】2018-10-17
【審査請求日】2021-08-11
(31)【優先権主張番号】10-2017-0136034
(32)【優先日】2017-10-19
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】321003371
【氏名又は名称】LINE株式会社
(74)【代理人】
【識別番号】110003199
【氏名又は名称】弁理士法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】ソ・ドンピル
(72)【発明者】
【氏名】チョン・サンフン
(72)【発明者】
【氏名】ミン・ギョンーグク
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】韓国公開特許第10-2013-0089904(KR,A)
【文献】特開2002-111727(JP,A)
【文献】特開2000-261483(JP,A)
【文献】米国特許出願公開第2016/0373470(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
クライアント端末から受信されたデータパケットの経路を指定し、指定された経路にしたがってデータパケットを伝達するルーティングモジュールと、
1つ以上のクライアント端末からプレイログを受信し、前記受信されたプレイログをクラスタリングし、クラスタリングした結果に基づいてプレイログを分類し、所定の不審基準を満たすログを不審ユーザクラスタとして選別し、前記不審ユーザクラスタと関連するユーザ情報を不審ユーザ群として分類する一般モードサーバ装置と、
を含
み、
前記ルーティングモジュールは、
不審ユーザ群に属する第1クライアント端末から受信されたデータパケットの経路を、前記一般モードサーバ装置ではない監視モードサーバ装置として設定し、
前記監視モードサーバ装置は、
不審ユーザ群に属する前記第1クライアント端末から送受信されるデータパケットをリアルタイムでモニタリングし、前記第1クライアント端末から受信されたデータパケットに含まれたインプットイベントおよびロジックに基づいて結果データを推論するリアルタイムシミュレーションを行い、前記リアルタイムシミュレーションによる結果データと前記データパケットに含まれた結果データとを比較して前記第1クライアント端末が異常ユーザ群に該当するか判断する、サービスサーバ。
【請求項2】
前記監視モードサーバ装置は、
判断結果、前記第1クライアント端末が異常ユーザ群に該当しない場合、前記第1クライアント端末を一般ユーザ群として再分類し、前記第1クライアント端末を不審ユーザ群から除去するように更新する、請求項
1に記載のサービスサーバ。
【請求項3】
前記ルーティングモジュールは、
格納された不審ユーザ群のユーザデータを参照することにより、データパケットの経路を決定する、請求項1に記載のサービスサーバ。
【請求項4】
前記ルーティングモジュールは、
前記クライアント端末が異常ユーザ群に属する場合、受信されたデータパケットを直ちに遮断するように制御する、請求項1に記載のサービスサーバ。
【請求項5】
サービスサーバが、クライアント端末からデータパケットを受信する段階と、
前記サービスサーバが、前記クライアント端末から受信されたプレイログをクラスタリングし、クラスタリングした結果に基づいてプレイログを分類し、所定の不審基準を満たすログを不審ユーザクラスタとして選別し、前記不審ユーザクラスタと関連するユーザ情報を不審ユーザ群として分類することで、前記クライアント
端末が属するグループが一般ユーザ群
および不審ユーザ群
のいずれであるか判断する段階と、
判断結果として、前記
クライアント端末が一般ユーザ群に属する場合、前記データパケットを一般モードサーバ装置に伝達して処理する段階と、
判断結果として、前記
クライアント端末が不審ユーザ群に属する場合、前記データパケットを監視モードサーバ装置に伝達して処理する段階と、
前記監視モードサーバ装置が、不審ユーザ群に属する前記クライアント端末から送受信されるデータパケットをリアルタイムでモニタリングし、不審ユーザ群に属する前記クライアント端末から受信されたデータパケットに含まれたインプットイベントおよびロジックに基づいて結果データを推論するリアルタイムシミュレーションを行い、前記リアルタイムシミュレーションによる結果データと前記データパケットに含まれた結果データとを比較して前記クライアント端末が異常ユーザ群に該当するか判断する段階と、
判断結果として、前記
クライアント端末が
異常ユーザ群に属する場合、前記データパケットを処理せず、遮断する段階と、
を含む
、データパケットをモニタリングする方法。
【請求項6】
前記
リアルタイムシミュレーションの実行以後に、
前記
リアルタイムシミュレーションによる結果データ
と前記データパケットに含まれた結果データ
とが一致しない場合、
前記クライアント
端末のユーザ情報を不審ユーザ群から異常ユーザ群に移動させて管理し
、データベースに格納された異常ユーザ群に関する情報をアップデートする段階と、
を含む、請求項
5に記載
のデータパケットをモニタリングする方法。
【請求項7】
前記
リアルタイムシミュレーションの実行以後に、
前記
リアルタイムシミュレーションによる結果データ
と前記データパケットに含まれた結果データ
とが一致する場合、前
記クライアント端末のユーザ情報を不審ユーザ群から一般ユーザ群に移動させて管理し、不審ユーザ群に関する情報をアップデートする段階と、
を含む、請求項
5に記載
のデータパケットをモニタリングする方法。
【請求項8】
コンピュータを利用して請求項
5の方法を実行させるためにコンピュータで読み取り可能な格納媒体に格納された、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サービスサーバ、不審ユーザによるデータパケットをモニタリングする方法、およびその方法を実行させるためのコンピュータプログラムに関する。
【背景技術】
【0002】
一般的なMMORPG(Massively Multiplayer Online Role Playing Game)をプレイするとき、ゲームプレイヤは、オンラインゲーム内でプレイヤキャラクタを操作しながらゲームを進めるようになる。このとき、ゲームプレイ過程では、アイテムを獲得したり、ゲームマネーを払ってゲーム内のNPC(Non Player Character)からアイテムを購入したりする。
【0003】
アイテムとゲーム内で通用する貨幣であるゲームマネーは、オンラインゲームの進行を容易にするだけでなく、ゲームの楽しさを倍増させる要素でもあると言える。人気のある一部のMMORPGの場合には、ゲーム内のレアアイテムやゲームマネーを、ゲームプレイヤどうしが現金で売買する自体も起こっている。
【0004】
一方、このようなアイテムやゲームマネーの現金取引が頻繁に行われるようになることで、アイテムやゲームマネーを自動で収集するボット(BOT)プログラムが登場し始めた。
【0005】
ボットプログラムにはいくつかの種類があるが、その大部分は、クライアント端末にセキュリティプログラムをインストールしてボットプログラムのパターンを探知するなどの方式によって検出するようになる。
【0006】
ところが、最近では、
図1に概念的に示したように、多数のPC(Personal Computer)を利用して集団的にボットプログラムを駆動することによって大量にアイテムやゲームマネーを収集し、これを一般のゲームプレイヤに販売して収益を得る、言わば「作業場」が登場するまでに至っている。
【0007】
このような「作業場」は、一般的には知られていない非公開ボットプログラムを購入して使用する場合が多く、セキュリティプログラムによる検出が容易ではない。
【0008】
たとえ、どうにかしてボットプログラムのパターンを入手し、セキュリティプログラムによってボットプログラムを駆動するアカウントを検出し、このアカントをブロックするなどの制裁を加えたとしても、「作業場」の特性上、ボットアカウントからアイテムやゲームマネーを集めるアカウント自体がこのような制裁を受けるものではないため、ボットプログラムを駆動する新たなアカウントを生成し直すといういとも簡単な作業だけで、「作業場」の運営を再開できるようになってしまう。
【0009】
このようなことから、ボットプログラムを検出するだけでは、オンラインゲームの正常な運営に支障を与える「作業場」のアカウントを完全に把握するには限界がある。したがって、ボットプログラムを駆動しないアカウントを含んでおり、「作業場」に属するアカウント全体を把握するための新たなアクセス法が必要となっている。
【発明の概要】
【発明が解決しようとする課題】
【0010】
クライアント端末から受信されたプレイログをクラスタリングして不審ユーザ群を選別し、選別された不審ユーザ群のデータパケットを別に備えらえた監視モードサーバ装置によってモニタリングすることができる、サービスサーバおよび方法を提供する。
【課題を解決するための手段】
【0011】
本発明の実施形態に係るコンピュータプログラムは、コンピュータを利用することで、本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法のうちのいずれか1つの方法を実行させるために媒体に格納されてよい。
【0012】
この他にも、本発明を実現するための他の方法、他のシステム、および前記方法を実行するためのコンピュータプログラムを記録するコンピュータで読み取り可能な記録媒体がさらに提供される。
【0013】
上述した以外の他の側面、特徴、利点は、添付の図面、特許請求の範囲、および発明の詳細な説明によって明確になるであろう。
【発明の効果】
【0014】
本発明の実施形態によると、クライアント端末から受信されたプレイログをクラスタリングして不審ユーザ群を選別し、選別された不審ユーザ群のデータパケットを別に備えられた監視モードサーバ装置によってモニタリングすることができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施形態における、システムの構造を示した図である。
【
図2】本発明の実施形態における、サービスサーバの構造を示した図である。
【
図3】本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【
図4】本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【
図5】本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【
図6a】クライアント端末およびサービスサーバ間のデータパケット処理を説明するための図である。
【
図6b】クライアント端末およびサービスサーバ間のデータパケット処理を説明するための図である。
【発明を実施するための形態】
【0016】
本発明には多様な変換を加えることができ、多様な実施形態を有することができることから、特定の実施形態を図面に例示することによって詳細な説明をより詳細に説明する。本発明の効果および特徴、またはこれらを達成しようとする方法は、図面と共に詳細に説明されている以下の実施形態を参照すれば明確になるであろう。しかし、発明は、以下で開示される実施形態に限定されてはならず、多様な形態で実現されることが可能である。
【0017】
図1は、本発明の実施形態における、システムの構成図である。
【0018】
図1を参照すると、本発明の実施形態に係るゲームサービスシステム10は、ゲームサーバ100、クライアント端末200、201、202、203、204、通信網300を含む。
図1は発明の説明のための一例に過ぎず、クライアント端末の数やサーバの数が
図1のように限定されることはない。
【0019】
ゲームサーバ100は、複数のクライアント端末201、202、203、204と通信網300を介して通信し、命令、コード、ファイルコンテンツ、サービスなどを提供する1つまたは複数の装置で実現されてよい。
【0020】
一例として、ゲームサーバ100は、通信網300を介して接続した第1クライアント端末201に、ゲームアプリケーションのインストールのためのファイルを提供してよい。この場合、第1クライアント端末201は、提供されたファイルを利用してアプリケーションをインストールしてよい。また、第1クライアント端末201が含むオペレーティングシステムおよび少なくとも1つのプログラム(一例として、ブラウザや前記インストールされたアプリケーション)の制御にしたがってサービスサーバ100に接続し、サービスサーバ100が提供するサービスやコンテンツの提供を受けてもよい。例えば、第1クライアント端末201が、アプリケーションの制御にしたがって通信網300を介してサービス要請メッセージをサービスサーバ100に送信すると、サービスサーバ100は、サービス要請メッセージに対応するコードを第1クライアント端末201に送信してよく、第1クライアント端末201は、アプリケーションの制御にしたがってコードによる画面を構成して表示することにより、ユーザにコンテンツを提供してよい。
【0021】
クライアント端末200、201、202、203、204は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数のクライアント端末200、201、202、203、204の例としては、スマートフォン(smart phone)、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、PDA(Personal Digital Assitants)、PMP(Portable Multimedia Player)、タブレットなどがある。第1クライアント端末201は、無線または有線通信方式を利用し、通信網300を介して他のクライアント端末202、203、204および/またはサービスサーバ100と通信してよい。
【0022】
通信方式が限定されることはなく、通信網300は、移動通信網、有線インターネット、無線インターネット、放送網を活用する通信方式だけではなく、端末間の近距離無線通信が含まれてもよい。例えば、通信網300は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、通信網300は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的(hierarchical)ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0023】
図2は、本発明の実施形態における、サービスサーバ100の構造を示したブロック図である。
【0024】
図2を参照すると、サービスサーバ100は、ルーティングモジュール110、一般モードサーバ装置120、監視モードサーバ装置130、データベース140を含んでよい。
【0025】
本明細書において、データパケットとは、クライアント端末にインストールされたアプリケーションの動作にしたがって生成されるデータの束を意味する。データパケットは、サービスサーバ100の要請に応じて形式を変更してよい。例えば、データパケットは、アプリケーションの実行中に発生するプレイログを含むか、アプリケーション上のユーザ入力およびユーザ入力による動作に対する結果値であるインプット(input)および結果データを含んでよい。データパケットには、「オンラインゲーム内」で行われた行為が含まれてよい。
【0026】
本発明の実施形態に係るサービスサーバ100は、アプリケーションに接続するクライアント端末のうちから不審ユーザが発見された場合、不審ユーザに該当するクライアント端末のアプリケーションの実行行為を、別に動作する監視モードサーバ装置によってモニタリングする。本発明の実施形態に係るサービスサーバ100は、ユーザを、一般ユーザ群、不審ユーザ群、異常ユーザ群に分類して管理するようになる。不審ユーザ群は、プレイログをクラスタリングすることによって判断されてよく、異常ユーザ群は、不審ユーザ群に該当するクライアント端末からのデータパケットを別のシミュレーション装置によって処理することにより、リアルタイムシミュレーションによって判断されてよい。サービスサーバ100は、教師なし学習(Unsupervised Learning)方法に基づいてプレイログを分類し、一般ユーザが実行しない行動と関連するログを選別する。サービスサーバ100は、類似するログを1つのクラスタとして分類し、一般ユーザではない異常ユーザによる行動は別に分類する。
【0027】
サービスサーバ100に含まれた一般モードサーバ装置120および監視モードサーバ装置130は、互いに影響を及ぼさずに動作してよい。サービスサーバ100は、1つ以上のプロセッサを含み、一般モードサーバ装置120および監視モードサーバ装置130を独立して動作させてよい。
【0028】
サービスサーバ100は、受信されたデータパケット数の増加に伴い、一般モードサーバ装置120および監視モードサーバ装置130にそれぞれ割り当てられたプロセッサの数およびメモリの容量を調節してよい。
【0029】
サービスサーバ100は、一般ユーザ群、不審ユーザ群、異常ユーザ群のユーザデータを格納管理するデータベース140を含んでよい。
【0030】
ルーティングモジュール110は、データパケットの発信者であるクライアントのグループを考慮した上で、受信されたデータパケットの経路を指定し、指定された経路にデータパケットを伝達する機能を実行する。クライアントのグループは、クライアントによって発生したデータパケットを分析した結果を利用することによって決定されてよい。クライアントのグループは、一般ユーザ群、不審ユーザ群、異常ユーザ群のうちの1つが決定されてよい。
【0031】
ルーティングモジュール110は、データパケットの経路と対応するフラグ値を生成してよい。フラグ値は、一般ユーザ群に対応する値(0)、不審ユーザ群に対応する値(1)、異常ユーザ群に対応する値(-1)のうちの1つが設定されてよい。データパケットのフラグ値が一般ユーザ群に対応する値の場合には、データパケットは一般モードサーバ装置に伝達され、データパケットのフラグの値が不審ユーザ群に対応する値の場合には、データパケットは監視モードサーバ装置に伝達される。データパケットのフラグの値が異常ユーザ群に対応する値の場合には、データパケットは処理されず、遮断される。ルーティングモジュール110は、一般ユーザ群および不審ユーザ群のユーザデータが格納されたデータベース140を参照することで、第1クライアント端末のデータパケットの経路を一般モードサーバ装置120または監視モードサーバ装置130に設定するか、データパケットを遮断するようになる。ルーティングモジュール110は物理的に分離して実現されてもよいが、アプリケーション層で実現され、1つのコンピュータ装置にサーバ装置と共に設置されてもよい。
【0032】
一般モードサーバ装置120は、アプリケーションによって生成されたデータパケットを処理する機能を実行する。一般モードサーバ装置120は、ルーティングモジュールによって伝達されたデータパケットを処理する機能を実行する。ルーティングモジュール110は、一般ユーザ群に該当するクライアント端末からのデータパケットを一般モードサーバ装置120に伝達してよい。一般モードサーバ装置120は、受信されたデータパケットのうちから、プレイログに基づいて不審ユーザ群を検索する機能を実行する。
【0033】
一般モードサーバ装置120は、プレイログフィルタ部121、ユーザクラスタリング部122を備える。
【0034】
プレイログフィルタ部121は、データパケットのうちからプレイログをフィルタリングしてよい。プレイログフィルタ部121は、データパケットに含まれるヘッダ値に基づいてプレイログをフィルタリングしてよい。ユーザクラスタリング部122は、多様なアルゴリズムを利用してプレイログをクラスタリングする。ユーザクラスタリング部122は、教師なし学習方法を利用してプレイログをクラスタリングする。ユーザクラスタリング部122は、ウェブページアクセス順序、エラー発生時のやり直し回数、テスト中間の遊休時間などを含むプレイログをクラスタリングする。ユーザクラスタリング部122は、多様な基準により、極めて多く存在するプレイログを、互いに類似するものどうし群集化してよい。プレイログは、類似または非類似に区分される。
【0035】
具体的に、ユーザクラスタリング部122は、機械学習アルゴリズムを利用することで、プレイログをベクトル化、正規化する作業を実行して群集化する。プレイログに含まれた単語を所定のベクトル値に変更してよい。存在する単語間の関係を予め設定した相関行列(Correlation Matrix)が活用されてよい。ここで、相関行列とは、固有名詞を2次元座標において点および連結線によって表現したものを意味する。このとき、固有名詞の位置および連結線は、固有名詞間の関係によって設定されてよい。例えば、「韓国」と「ソウル」の関係(同義または反義、上位概念または下位概念など)は、「日本」および「東京」の関係と等しいため、「韓国」および「ソウル」間の点の位置および連結線は、「日本」および「東京」間の点の位置および連結線と等しい方向を有するようになる。相関行列を活用することにより、ログに含まれたエラー値だけでなく、ログに含まれた単語を分析するのに単語の意味まで考慮される。相関行列を活用することにより、単に単語を区分するだけでなく、単語の意味までも区分するように設計される。
【0036】
他の実施形態において、ユーザクラスタリング部122は、k-meansアルゴリズムを利用して群集化してよい。ユーザクラスタリング部122は、収集されたプレイログをn個に分割したグループに区分してよい。生成されたk個のグループ内のデータオブジェクト同士の類似度は、予め設定された第1値以上に増加し、他のグループとのデータオブジェクトとの類似度は、前記第2値以下に減少するようになる。例えば、ユーザクラスタリング部122は、群集化されたグループのうち、含まれたログの数が少ないクラスタを不審ユーザクラスタとして分類してよい。不審ユーザクラスタに分類されたグループに含まれたログの特徴が、不審ユーザ群または異常ユーザ群を決定する基準となってよい。例えば、第1行為、第1結果を有するプレイログは第1グループに分類し、第2行為、第2結果を有するプレイログは第2グループに分類した場合、第1グループおよび第2グループに属するプレイログは、非類似として評価される。
【0037】
他の実施形態において、ユーザクラスタリング部122は、群集化されたグループのうち、所定の不審基準を満たすログを不審ユーザクラスタとして分類してよい。不審基準は、発生頻度が予め設定された閾値以下であるか、予め設定された異常行為条件に符合するか、極めて多くの回数、例えば10,000回以上が発生したかのうちの少なくとも1つであってよい。ここで、不審基準は、管理者によって設定され、変更も可能である。ユーザクラスタリング部122は、群集化されたグループのうち、予め設定された最小閾値以下で発生する、すなわち、最小閾値以下のログを含むクラスタを不審ユーザクラスタとして選別してよい。ユーザクラスタリング部122は、不審ユーザクラスタに含まれたプレイログを発生させた第2クライアント端末を不審ユーザ群として決定する。ユーザクラスタリング部122は、データベース140の一般ユーザ群から第2クライアント端末と関連するユーザ情報を除去する命令語を生成するとともにデータベース140の不審ユーザ群に第2クライアント端末と関連するユーザ情報を追加する命令語を生成することにより、データベース140の格納内容を更新する。ユーザクラスタリング部122は、データベースをアップデートする命令語をデータベース140に伝達して処理する。
【0038】
監視モードサーバ装置130は、ゲームアプリケーションによって生成されたデータパケットを処理する機能を実行する。監視モードサーバ装置130は、ルーティングモジュールによって伝達されたデータパケットを処理する機能を実行する。特に、監視モードサーバ装置130は、ルーティングモジュールによって生成された経路にしたがい、データベース140の不審ユーザ群に該当するクライアント端末からデータパケットを受信する。
【0039】
監視モードサーバ装置130は、リアルタイムシミュレータ部131、異常ユーザ分類部132を備えてよい。
【0040】
リアルタイムシミュレータ部131は、クライアント端末からデータパケットを受信し、データパケットをリアルタイムでモニタリングする。不審ユーザ群に属するクライアント端末は、監視モードサーバ装置130の制御にしたがい、ゲームアプリケーション内の行為によるデータパケットをリアルタイムで送信する。
【0041】
本実施形態によると、リアルタイムシミュレータ部131は、リアルタイムで受信されるデータパケットが異常行動基準に属するか判断したり、データパケットに含まれた結果データの正当性を判断したりしてよい。ゲームアプリケーション内の行為によるデータパケットは、インプットイベント、これに関するロジック、クライアント端末によってインプットイベントが処理された結果データを含むように構成されてよい。ここで、インプットイベントとは、ユーザによって入力されたユーザ入力に対応するものであるが、アプリケーションのコードにしたがって処理されなければならないロジック、または関数に対する入力変数の形態に変換された値であってよい。ロジックとは、インプットイベントの入力を受けて処理するように実現された関数、コード、プログラムを意味する。受信されたデータパケットは、インプットイベントを該当のロジックに適用して算出された結果データをさらに含む。リアルタイムシミュレータ部131は、受信されたデータパケットに含まれたインプットイベントおよびロジックを適用して結果データを推論してよい。リアルタイムシミュレータ部131は、クライアント端末から受信されたデータパケットに含まれた結果データと前記推論された結果データとが一致するか判断することにより、データパケットに対応する行為が異常行動基準に該当するか判断してよい。例えば、第1データパケットに含まれたユーザから受信された第1攻撃行為の結果データが「アイテム減少」であることに比べ、リアルタイムシミュレータ部131によって推論された結果データが「アイテム獲得」である場合、第1データパケットは異常行動基準に該当すると判断してよい。第2データパケットに含まれた第2攻撃行為の結果データが「レベルダウン」であることに比べ、推論された結果データが「レベルアップ」である場合、第2データパケットは異常行動基準に該当すると判断してよい。
【0042】
リアルタイムシミュレータ部131は、異常行動基準に該当するデータパケットを監視してよい。ここで、異常行動基準とは、ユーザによる行為ではなくボットによる行為に該当するか判断する基準を意味する。異常行動基準は、アプリケーション内の行為によるプレイログを群集化(クラスタリング)した結果を利用して設定されてよい。不審ユーザ群に属するグループの特徴が、異常行動基準として設定されてよい。異常行動基準は、一般モードサーバ装置によって群集化されたログを利用して設定されてよい。異常ユーザ分類部132は、リアルタイムシミュレータ部131によって異常行動基準に該当するデータパケットと関連するクライアント端末またはユーザ情報を異常ユーザ群として分類してよい。異常ユーザ分類部132は、異常行動基準に該当するデータパケットを閾値回数以上に発生させたクライアント端末のユーザ情報を、異常ユーザ群として分類してよい。
【0043】
異常行動基準に該当するデータパケットを閾値回数以上発生させたクライアント端末のユーザ情報は、データベース140の異常ユーザ群に追加してよい。ここで、閾値回数は、1回が設定されてもよいし、複数値が設定されてもよい。このような場合、複数回以上の行為を発生させたクライアント端末またはユーザを、異常ユーザ群として分類してよい。異常行動基準に該当するデータパケットを閾値回数以上発生させたクライアント端末のユーザ情報は、一般ユーザ群および不審ユーザ群から除去され、異常ユーザ群に含んでよい。
【0044】
ルーティングモジュール110は、データベース140を参照しながら、異常ユーザ群に該当するユーザのアカウントへのアクセスあるいは実行を中止させてよい。すなわち、ルーティングモジュール110は、異常ユーザ群に該当するクライアント端末からのデータパケットの経路を設定するのではなく、ゲーム実行が不可能なアカウントであるというメッセージをクライアント端末に送信するようになる。
【0045】
データベース140は、一般ユーザ群、不審ユーザ群、および異常ユーザ群に属するユーザ情報を格納および管理する。一般モードサーバ装置120から受信された命令語に基づき、一般ユーザ群および/または不審ユーザ群の内容が更新される。監視モードサーバ装置130から受信された命令語に基づき、異常ユーザ群の内容が更新されてよい。ルーティングモジュール110は、データベース140の内容を参照しながら、データパケットの経路を指定してよい。
【0046】
これにより、本発明の実施形態に係るサービスサーバ100は、ゲームアプリケーション内でなされる不審行為と関連のあるクライアント端末を、一般モードサーバ装置とは別に実行される監視モードサーバ装置を利用して処理することができる。本発明の実施形態によると、別に実行される監視モードサーバ装置により、不審ユーザ群に属するクライアント端末のデータパケットは、リアルタイムでモニタリングが可能となる。物理的または論理的に区別されて存在する監視モードサーバ装置は、不審ユーザ群の行為が異常ユーザ群に該当するかモニタリングし、モニタリングの結果にしたがって一般ユーザ群、不審ユーザ群、異常ユーザ群の内容が更新される。
【0047】
図3~
図5は、本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法を示したフローチャートである。
【0048】
本発明の実施形態における、不審ユーザによるデータパケットをモニタリングする方法は、ルーティングモジュールによってデータパケットを受信する段階S110、ルーティングモジュールによってデータパケットの経路を設定し、設定された経路によってデータパケットを伝達する段階S120、データパケットの経路の目的地が一般モードサーバ装置であるか判断する段階S130、データパケットが一般モードサーバ装置で処理されるように制御する段階S140、データパケットが監視モードサーバ装置で処理されるように制御する段階S150を含んでよい。
【0049】
段階S110で、サービスサーバは、ルーティングモジュールによってデータパケットを受信する。
【0050】
段階S120で、サービスサーバは、ルーティングモジュールによってデータパケットの経路を設定し、設定された経路にしたがってデータパケットを伝達する。ルーティングモジュールは、データベースに格納された一般ユーザ群、不審ユーザ群、異常ユーザ群を考慮した上で、クライアント端末から受信されたデータパケットの経路を指定し、指定された経路にデータパケットを伝達する。一般ユーザ群に該当するクライアント端末からのデータパケットは、一般モードサーバ装置に伝達されるように経路が設定され、不審ユーザ群に該当するクライアント端末からのデータパケットは、監視モードサーバ装置に伝達されるように経路が設定される。また、異常ユーザ群に該当するクライアント端末からのデータパケットは処理されず、ゲーム実行が不可能なアカウントであるというメッセージをクライアント端末に伝達する。
【0051】
段階S130で、サービスサーバは、データパケットの経路の目的地が一般モードサーバ装置であるか判断する。
【0052】
段階S140で、サービスサーバは、データパケットの経路の目的地が一般モードサーバ装置である場合、前記データパケットが一般モードサーバ装置によって処理されるように制御する。
【0053】
段階S150で、サービスサーバは、データパケットの経路の目的地が監視モードサーバ装置である場合、前記データパケットが監視モードサーバ装置によって処理されるように制御する。
【0054】
段階S130の動作については、
図4および
図5で詳しく説明する。
【0055】
図4に示すように、段階S140の動作のうち、一般モードサーバ装置によって実行される方法は、複数のプレイログを収集する段階S141、プレイログをクラスタリングする段階S142、予め設定された最小閾値以下で発生するクラスタに含まれたプレイログと関連するユーザグループを不審ユーザ群として分類する段階S143を含んでよい。
【0056】
段階S141で、サービスサーバは、一般ユーザ群に属するクライアント端末から複数のプレイログを受信する。
【0057】
段階S142で、サービスサーバは、プレイログを分析し、教師なし学習方法を利用して類似度の高いプレイログを1つのクラスタとして生成する。
【0058】
段階S143で、サービスサーバは、頻度数または発生ユーザの数などを総合的に考慮した上で、不審ユーザクラスタを選別してよい。サービスサーバは、予め設定された最小閾値以下のログを含むか、少し多めの頻度数を有するクラスタを不審ユーザクラスタとして選別する。不審ユーザクラスタとは、一般的なユーザの行為ではなく、ボットや機械によって発生するプレイログおよびログパターンを含む概念である。統計的に見るとき、頻繁に発生しない行為または極めて頻繁に発生しない行為の特徴を不審ユーザクラスタとして定め、不審ユーザクラスタに属するプレイログを選別する。
【0059】
サービスサーバは、不審ユーザクラスタに含まれたユーザグループを不審ユーザ群として分類する。サービスサーバは、不審ユーザクラスタにしたがって一般ユーザ群および不審ユーザ群を更新する。
【0060】
図5に示すように、段階S150の動作のうち、監視モードサーバ装置によって実行される方法は、第1クライアント端末からデータパケットをリアルタイムで受信する段階S151、データパケットに含まれたインプットイベントおよびロジックをシミュレーションして推論結果データを算出する段階S152、前記推論結果データおよびデータパケットに含まれた結果データが一致するか判断する段階S153、一致しなかった場合、第1クライアント端末を異常ユーザ群として分類する段階S154、一致した場合、第1クライアント端末を一般ユーザ群として分類する段階S155を含んでよい。
【0061】
段階S151で、サービスサーバは、第1クライアント端末からデータパケットを受信し、受信されたデータパケットをリアルタイムでモニタリングする。
【0062】
段階S152で、サービスサーバは、データパケットに含まれたインプットイベントおよびロジックをシミュレートして推論結果データを算出する。このとき、サービスサーバは、クライアント端末にインストールされたゲームアプリケーションと同じプログラミング環境が実現されたシミュレーションコードを仮想的に実行させて推論結果データを出力する。
【0063】
段階S153で、サービスサーバは、推論結果データおよび受信されたデータパケットに含まれた結果データが一致するか判断する。
【0064】
段階S154で、推論結果データおよび結果データが一致する場合、サービスサーバは、第1クライアント端末を一般ユーザ群として分類してよい。第1クライアント端末は、今後は不審ユーザ群に属することはなく、第1クライアント端末からのデータパケットは一般モードサーバ装置によって処理される。サービスサーバは、一般ユーザ群および不審ユーザ群の内容をアップデートするようになる。
【0065】
段階S155で、サービスサーバは、推論結果データおよび結果データが一致しない場合、第1クライアント端末を不審ユーザ群から異常ユーザ群に移動させて管理する。サービスサーバは、不審ユーザ群および異常ユーザ群の内容をアップデートするようになる。
【0066】
図6aおよび
図6bは、クライアント端末からのデータパケットを処理する過程を説明するための図である。本発明の実施形態に係るサービスサーバは、同じアプリケーションで生成されたデータパケットであったとしても、異なる経路、異なる装置によって処理してよい。
【0067】
図6aは、一般ユーザ群に属する第1クライアント端末201のパケットを処理する過程を示した図である。サービスサーバは、第1クライアント端末201から受信されたデータパケットを、クライアント端末が該当するユーザ群に基づいて一般モードサーバ装置120に伝達させて処理するように制御する。
【0068】
図6bでは、不審ユーザ群に属する第1クライアント端末201のパケットを処理する過程を示した図である。サービスサーバは、第1クライアント端末201から受信されたデータパケットを、ルーティングモジュール110によって指定された経路にしたがって監視モードサーバ装置130に伝達させる。不審ユーザ群に属する第1クライアント端末201は、アプリケーション内の実行および実行結果を含むデータパケットをリアルタイムまたは予め設定された時間間隔ごとにサービスサーバに伝達するようになる。このとき、データパケットは、時間値、インプットイベント、ロジック、結果データを含む形態を有する。
【0069】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0070】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置、または伝送される信号波に永久的または一時的に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてよい。
【0071】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成されてよく、その逆も同じである。
【0072】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0073】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0074】
100:サービスサーバ
110:ルーティングモジュール
120:一般モードサーバ装置
130:監視モードサーバ装置
140:データベース