以下、図面を参照しながら、情報処理装置、情報処理方法、及び、記録媒体の実施形態について説明する。以下では、情報処理装置、情報処理方法、及び、記録媒体の実施形態が適用された通信システムSYSを用いて、情報処理装置、情報処理方法、及び、記録媒体の実施形態について説明する。
(1)通信システムSYSの構成
(1-1)通信システムSYSの全体構成
初めに、図1を参照しながら、本実施形態における通信システムSYSの全体構成について説明する。図1は、本実施形態における通信システムSYSの全体構成を示すブロック図である。
図1に示すように、通信システムSYSは、プロキシサーバ1と、複数のクライアント2と、複数のサーバ3と、情報処理装置4とを備えている。但し、通信システムSYSは、単一のクライアント2を備えていてもよい。通信システムSYSは、単一のサーバ3を備えていてもよい。プロキシサーバ1と、複数のサーバ3の夫々とは、ネットワーク5を介して通信可能である。ネットワーク5は、有線のネットワークを含んでいてもよいし、無線のネットワークを含んでいてもよい。
プロキシサーバ1は、クライアント2とサーバ3との通信を中継する装置である。例えば、プロキシサーバ1は、クライアント2から取得したリクエストを、ネットワーク5を介して、取得したリクエストで指定されたサーバ3へと送信してもよい。リクエストは、例えば、HTTP(Hyper Text Transfer Protcol)リクエストを含んでいてもよい。但し、リクエストは、HTTPリクエストに限定されることはない。例えば、プロキシサーバ1は、ネットワーク5を介してサーバ3から取得したレスポンスを、レスポンスで指定されたクライアント2へと送信してもよい。レスポンスは、例えば、HTTPレスポンスを含んでいてもよい。但し、レスポンスは、HTTPレスポンスに限定されることはない。
プロキシサーバ1と複数のクライアント2とを含むシステムは、ローカルシステムLと称されてもよい。この場合、プロキシサーバ1は、ローカルシステムLと、ローカルシステムLの外部の広域ネットワークとの境界に配置されているとも言える。プロキシサーバ1は、ローカルシステムLと広域ネットワークとの間の通信を中継するとも言える。
クライアント2は、プロキシサーバ1を介してサーバ3と通信する。例えば、クライアント2は、プロキシサーバ1を介して、所望のデータをサーバ3に送信してもよい。例えば、クライアント2は、プロキシサーバ1を介して、所望のデータをサーバ3から受信してもよい。
サーバ3は、プロキシサーバ1を介してクライアント2と通信する。例えば、サーバ3は、プロキシサーバ1を介して、所望のデータをクライアント2に送信してもよい。例えば、サーバ3は、プロキシサーバ1を介して、所望のデータをクライアント2から受信してもよい。サーバ3は、例えば、HTTPサーバである。但し、サーバ3は、HTTPサーバ以外のサーバであってもよい。
情報処理装置4は、ネットワーク5を介してローカルシステムLに既に侵入している脅威を検出するための脅威検出動作を行う。以下、このような脅威検出動作を行う情報処理装置4の構成について更に説明する。
(1-2)情報処理装置4の構成
図2を参照しながら、本実施形態における情報処理装置4の構成について説明する。図2は、本実施形態における情報処理装置4の構成を示すブロック図である。
図2に示すように、情報処理装置4は、記憶装置41と、演算装置42とを備えている。更に、情報処理装置4は、入力装置43と、出力装置44とを備えていてもよい。但し、情報処理装置4は、入力装置43及び出力装置44の少なくとも一方を備えていなくてもよい。記憶装置41と、演算装置42と、入力装置43と、出力装置44とは、データバス45を介して接続されていてもよい。
記憶装置41は、所望のデータを記憶可能である。例えば、記憶装置41は、演算装置42が実行するコンピュータプログラムを一時的に記憶していてもよい。記憶装置41は、演算装置42がコンピュータプログラムを実行している際に演算装置42が一時的に使用するデータを一時的に記憶してもよい。記憶装置41は、情報処理装置4が長期的に保存するデータを記憶してもよい。尚、記憶装置41は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)及びディスクアレイ装置のうちの少なくとも一つを含んでいてもよい。つまり、記憶装置41は、一時的でない記録媒体を含んでいてもよい。
本実施形態では、記憶装置41は、脅威検出動作を行うために情報処理装置4が利用するデータを記憶する。図1には、脅威検出動作を行うために情報処理装置4が利用するデータの一例として、プロキシログDB(Database:データベース)411と、特徴データセット412と、教師データセット413と、変換モデルTMと、局所モデルLMとが記載されている。つまり、図4は、記憶装置41がプロキシログDB411と、特徴データセット412と、教師データセット413と、変換モデルTMと、局所モデルLMとを記憶する例を示している。
プロキシログDB411は、複数のプロキシログデータ4111(図3参照)を格納する。プロキシログデータ4111は、プロキシサーバ1が中継した通信(つまり、クライアント2とサーバ3との間の通信)の履歴を示すログデータである。このような複数のプロキシログデータ4111を格納するプロキシログDB411のデータ構造が図3に示されている。図3に示すように、プロキシログデータ4111は、例えば、(i)サーバ3と通信したクライアント2を示すログ情報(クライアント情報)と、(ii)クライアント2と通信したサーバ3を示すログ情報(サーバ情報)と、(iii)クライアント2とサーバ3とが通信した日時を示すログ情報(通信日時情報)と、(iv)クライアント2がサーバ3と通信する際に利用したメソッドを示すログ情報(メソッド情報)と、(v)クライアント2がサーバ3に送信したリクエストで指定されていたパス(リクエストパス)を示すログ情報(リクエストパス情報)と、(vi)クライアント2がサーバ3から受信したデータのサイズを示すログ情報(受信サイズ情報)と、(vii)クライアント2がサーバ3に送信したデータのサイズを示すログ情報(送信サイズ情報)とを含んでいてもよい。但し、プロキシログデータ4111は、図3に示す複数のログ情報のうちの少なくとも一つを含んでいなくてもよい。プロキシログデータ4111は、図3に示す複数のログ情報とは異なる他のログ情報を含んでいてもよい。尚、プロキシログデータ4111は、サンプルデータと称されてもよい。また、プロキシログデータ4111に含まれるログ情報は、サンプル情報と称されてもよい。
尚、特徴データセット412と、教師データセット413と、変換モデルTMと、局所モデルLMとについては、後に詳述する。
再び図2において、演算装置42は、例えば、CPU(Central Proecssing Unit)、GPU(Graphical Processing Unit)及びFPGA(Field Programmable Gate Array)のうちの少なくとも一つを含む。演算装置42は、コンピュータプログラムを読み込む。例えば、演算装置42は、記憶装置41が記憶しているコンピュータプログラムを読み込んでもよい。例えば、演算装置42は、コンピュータで読み取り可能であって且つ一時的でない記録媒体が記憶しているコンピュータプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。演算装置42は、通信装置として機能可能な入力装置43を介して、情報処理装置4の外部に配置される不図示の装置からコンピュータプログラムを取得してもよい(つまり、ダウンロードしてもよい又は読み込んでもよい)。演算装置42は、読み込んだコンピュータプログラムを実行する。その結果、演算装置42内には、情報処理装置4が行うべき動作(例えば、上述した脅威検出動作)を実行するための論理的な機能ブロックが実現される。つまり、演算装置42は、情報処理装置4が行うべき動作を実行するための論理的な機能ブロックを実現するためのコントローラとして機能可能である。
図2には、脅威検出動作を実行するために演算装置42内に実現される論理的な機能ブロックの一例が示されている。図2に示すように、演算装置42内には、特徴抽出部421と、計量学習部422と、「変換手段」及び「抽出手段」の夫々の一具体例である検索部423と、「生成手段」の一具体例である局所モデル学習部424と、「算出手段」の一具体例である貢献度算出部425と、出力制御部426とが実現される。
特徴抽出部421は、プロキシログDB411から、所定のログ分類基準に基づいて、同一のログデータ群に分類される複数の(或いは、少なくとも一つの)プロキシログデータ4111を抽出する。所定のログ分類基準は、クライアント情報が同一であり、サーバ情報が同一であり且つ通信日時情報が所定の日時基準を満たす複数のプロキシログデータ4111が同一のログデータ群に分類されるというログ分類基準を含んでいてもよい。所定の日時基準を満たす複数のプロキシログデータ4111は、通信日時情報が示す通信日が同一になるという複数のプロキシログデータ4111を含んでいてもよい。所定の日時基準を満たす複数のプロキシログデータ4111は、は、通信日時情報が示す通信時刻(或いは、通信日時)の間の間隔が所定値未満で連続している複数のプロキシログデータ4111を含んでいてもよい。尚、同一のログデータ群に分類されたプロキシログデータ4111は、サンプルデータ群と称されてもよい。この場合、例えば、特徴抽出部421は、図3に示すプロキシログDB411から、C1という識別子に対応するクライアント2とS1という識別子に対応するサーバ3との間で2019年1月1日に行われた通信の履歴を示す三つのプロキシログデータ4111の夫々を、第1のログデータ群に分類されるプロキシログデータ4111として抽出してもよい。同様に、例えば、特徴抽出部421は、図3に示すプロキシログDB411から、C2という識別子に対応するクライアント2とS2という識別子に対応するサーバ3との間で2019年1月1日に行われた通信の履歴を示す三つのプロキシログデータ4111の夫々を、第1のログデータ群とは異なる第2のログデータ群に分類されるプロキシログデータ4111として抽出してもよい。
特徴抽出部421は更に、抽出した複数のプロキシログデータ4111(つまり、同一のログデータ群に分類される複数のプロキシログデータ4111)の特徴量を示す特徴ベクトルXVを生成する。特徴抽出部421は、同一のログデータ群に分類される複数のプロキシログデータ4111から、一つの特徴ベクトルXVを生成する。このため、特徴抽出部421は、特徴ベクトルXVを、ログデータ群の数だけ生成する。以下の説明では、ログデータ群の数がK(Kは、1以上の整数を示す定数)であり、特徴抽出部421がK個の特徴ベクトルXV(以降、K個の特徴ベクトルXVを、夫々、下付き文字を“インデックスとする特徴ベクトルXV1からXVK”と称する)を生成する例について説明する。また、以下の説明では、K個のログデータ群のうちのインデックスがv(vは、1≦v≦Kを満たす変数)となる一のログデータ群から生成される特徴ベクトルXVを、特徴ベクトルXVvと称する。尚、特徴ベクトルXVは、特徴ベクトルデータXVと称されてもよい。特徴抽出部421は、抽出した複数のプロキシログデータ4111を解析することで、特徴ベクトルXVを生成してもよい。特徴抽出部421は、例えば、複数のプロキシログデータ4111の統計量を算出する演算処理を行うことで、特徴ベクトルXVを生成してもよい。
特徴ベクトルXVは、例えば、送信サイズ情報に関する特徴量を示す要素(つまり、ベクトル成分、以下同じ)を含んでいてもよい。送信サイズ情報に関する特徴量は、送信サイズ情報が示す送信サイズの統計量(例えば、最小値、最大値、平均値、分散及び平均値等の少なくとも一つ)に関する特徴量を含んでいてもよい。特徴ベクトルXVは、例えば、受信サイズ情報に関する特徴量を示す要素を含んでいてもよい。受信サイズ情報に関する特徴量は、受信サイズ情報が示す受信サイズの統計量(例えば、最小値、最大値、平均値、分散及び合計値等の少なくとも一つ)に関する特徴量を含んでいてもよい。特徴ベクトルXVは、例えば、パス情報に関する特徴量を示す要素を含んでいてもよい。パス情報に関する特徴量は、パス情報が示すリクエストパスのデータ長の統計量(例えば、最小値、最大値、平均値及び分散等の少なくとも一つ)に関する特徴量を含んでいてもよい。パス情報に関する特徴量は、パス情報が示すリクエストパスの拡張子の頻度(例えば、拡張子毎のリクエストの頻度)に関する特徴量を含んでいてもよい。特徴ベクトルXVは、例えば、メソッド情報に関する特徴量を示す要素を含んでいてもよい。メソッド情報に関する特徴量は、メソッド情報が示すメソッドの頻度(例えば、GETメソッドの割合、POSTメソッドの割合及びその他のメソッドの割合等の少なくとも一つ)に関する特徴量を含んでいてもよい。特徴ベクトルXVは、例えば、アクセス時刻の分布(例えば、単位時間(例えば、1時間)当たりに送信されたリクエストの割合)に関する特徴量を示す要素を含んでいてもよい。特徴ベクトルXVは、例えば、リクエストが送信された回数に関する特徴量を示す要素を含んでいてもよい。尚、プロキシログデータ4111にヘッダ情報が含まれている場合には、特徴ベクトルXVは、例えば、ヘッダ情報に関する特徴量を示す要素を含んでいてもよい。
特徴抽出部421が生成した特徴ベクトルXVは、記憶装置41によって、特徴データセット412の少なくとも一部として記憶される。特徴データセット412のデータ構造の一例が図4に示されている。上述したように、特徴抽出部421は、同一のログデータ群に分類される複数のプロキシログデータ4111から、一つの特徴ベクトルXVを生成する。このため、記憶装置41は、特徴抽出部421が生成した特徴ベクトルXVを、特徴ベクトルXVに対応するログデータ群を識別するためのデータ識別子と特徴ベクトルXVとが関連付けられた特徴データDVとして記憶してもよい。この場合、図4に示すように、特徴データセット412は、特徴データDV(つまり、特徴ベクトルXV)を、所定のログ分類基準によって分類されるログデータ群の数だけ含む。つまり、特徴データセット412は、K個の特徴データDV(以降、K個の特徴データDVを、夫々、下付き文字をインデックスとする“特徴データDV1からDVK”と称する)を含んでいてもよい。尚、以下の説明では、特徴ベクトルXVvを含む特徴データDVを、特徴データDVvと称する。上述した説明では、所定のログ分類基準が、クライアント情報、サーバ情報及び通信日時情報が同一になる複数のプロキシログデータ4111が同一のログデータ群に分類されるというログ分類基準を含んでいる。この場合には、図4に示すように、記憶装置41は、生成した特徴ベクトルXVを、クライアント情報、サーバ情報及び通信日時情報を一意に示すデータ識別子と特徴ベクトルXVとが関連付けられた特徴データDVとして記憶してもよい。
計量学習部422は、特徴ベクトルXVを変換するために用いる変換モデルTMを生成する。特徴ベクトルXVは、表現空間(つまり、ベクトル空間)内で、プロキシログデータ4111の特徴量を示している。変換モデルTMは、このような表現空間内でプロキシログデータ4111の特徴量を示す特徴ベクトルXVを、表現空間とは異なるベクトル空間である潜在空間内でプロキシログデータ4111の特徴量を示す潜在ベクトルZVに変換するモデルである。上述したようにK個の特徴ベクトルXV1からXVKが生成されるため、変換モデルTMは、K個の特徴ベクトルXV1からXVKを、夫々、K個の潜在ベクトルZV1からZVKに変換してもよい。つまり、変換モデルTMは、特徴ベクトルXVvを、潜在ベクトルZVvに変換してもよい。尚、潜在ベクトルZVは、潜在ベクトルデータZVと称されてもよい。計量学習部422が生成した変換モデルTMは、例えば、記憶装置41によって記憶される。尚、変換モデルTMを生成する動作については、図5等を参照しながら後に詳述する。
潜在ベクトルZVのベクトル成分の要素数(つまり、潜在ベクトルZVが示す特徴量の要素数であり、潜在空間の次元数)は、典型的には、特徴ベクトルXVのベクトル成分の要素数(つまり、特徴ベクトルXVが示す特徴量の要素数であり、表現空間の次元数)よりも少なくなることが好ましい。このため、潜在ベクトルZVは、低次元ベクトルと称されてもよいし、特徴ベクトルXVは、高次元ベクトルと称されてもよい。このように特徴ベクトルXVが特徴ベクトルXVよりも低次元の潜在ベクトルZVに変換される場合には、特徴ベクトルXVが潜在ベクトルZVに変換されない場合と比較して、脅威検出動作に対して人の感覚が相対的に強く反映される(つまり、人の感覚が相対的に強く考慮された上で、脅威が検出される)というメリットがある。但し、潜在ベクトルZVのベクトル成分の要素数は、特徴ベクトルXVのベクトル成分の要素数と同一であってもよい。潜在ベクトルZVのベクトル成分の要素数は、特徴ベクトルXVのベクトル成分の要素数よりも多くてもよい。
検索部423は、脅威検出動作によって検出したい脅威(以降、“検出ターゲット脅威”と称する)を指定するクエリデータDQに基づいて、特徴データセット412から、クエリデータDQに対する類似度が他の特徴データDVと比較して高い少なくとも一つの特徴データDVを検索する。本実施形態では、クエリデータDQと特徴データDVとの類似度と示す指標値として、潜在空間におけるクエリデータDQと特徴データDVとの間の距離が用いられる例について説明する。尚、潜在空間におけるクエリデータDQと特徴データDVとの間の距離は、クエリデータDQが示す特徴ベクトルXQ(つまり、検出ターゲット脅威の特徴量を示す特徴ベクトル)を変換モデルTMで変換することで得られる潜在ベクトルZQと、特徴データDVが示す特徴ベクトルXVを変換モデルTMで変換することで得られる潜在ベクトルZVとの間の距離を意味する。このため、本実施形態では、検索部423は、特徴データセット412から、潜在空間におけるクエリデータDQからの距離が他の特徴データDVと比較して短い少なくとも一つの特徴データDVを検索する。
クエリデータDQは、検出ターゲット脅威の特徴量を示す特徴ベクトルXQを含んでいてもよい。この際、クエリデータDQの特徴ベクトルXQの次元数は、特徴データDVの特徴ベクトルXVの次元数と同じであることが好ましい。つまり、特徴ベクトルXVの次元数がF(但し、Fは、1以上の整数を示す定数)である場合には、特徴ベクトルXQの次元数もまたFであることが好ましい。特に、特徴ベクトルXVのF個のベクトル成分が夫々示すF個の特徴量の種類は、特徴ベクトルXQのF個のベクトル成分が夫々示すF個の特徴量の種類と同一であることが好ましい。例えば、特徴ベクトルXVが、受信サイズに関する特徴量を示すベクトル成分と送信サイズに関する特徴量を示すベクトル成分とを含む場合には、特徴ベクトルXQもまた、受信サイズに関する特徴量を示すベクトル成分と送信サイズに関する特徴量を示すベクトル成分とを含むことが好ましい。
本実施形態では、検索部423が、特徴データセット412から、潜在空間におけるクエリデータDQからの距離が他の特徴データDVと比較して短いn(尚、nは、1≦n≦特徴データDVの総数Kを満たす整数を示す定数)個の特徴データDVを検索する例について説明する。この場合、検索部423は、検索されたn個の特徴データDVを、夫々、n個の近傍データDN(以下、n個の近傍データDNを、夫々、“近傍データDN1からDNn”と称する)として抽出する。
近傍データDNi(尚、iは、1≦i≦nを満たす整数を示す変数である)は、潜在空間においてクエリデータDQの近傍に位置するデータに相当する。つまり、近傍データDNiは、クエリデータDQが指定する検出ターゲット脅威と同じ又は類似する脅威の痕跡を示すプロキシログデータ4111の特徴量を示す特徴データDVに相当する。このため、近傍データDNiが検出された場合には、検出ターゲット脅威と同じ又は類似する脅威がローカルシステムLに既に侵入した可能性があると想定される。このため、抽出された近傍データDNi(或いは、近傍データDNiに対応するプロキシログデータ4111)は、ローカルシステムLに実際に脅威が侵入したか否かを判定するために、更に解析されてもよい。
局所モデル学習部424は、近傍データDN1からDNnに基づいて、局所モデルLMを生成する。局所モデルLMは、表現空間におけるクエリデータDQと近傍データDNiとの差分に関する差分情報Viが入力された場合に、潜在空間内におけるクエリデータDQと近傍データDNiとの間の距離diの推定値dpiを出力するモデルである。尚、局所モデルLMを生成する動作については、図7等を参照しながら後に詳述する。
差分情報Viは、例えば、クエリデータDQと近傍データDNiとのベクトル成分毎の(つまり、ベクトル成分に対応する特徴量の要素(種類)毎の)差分を示す差分情報vi,fを含んでいてもよい。つまり、差分情報Viは、クエリデータDQの特徴ベクトルXQと近傍データDNiの特徴ベクトルXNiとのベクトル成分毎の差分を示す差分情報vi,fを含んでいてもよい。尚、特徴ベクトルXNiのf(但し、fは、1≦f≦Fを満たす整数を示す変数)番目のベクトル成分(つまり、近傍データDNiのf番目の要素に相当する特徴量)がxni,fであり、特徴ベクトルXQのf番目のベクトル成分がxqfである場合には、差分情報vi,fは、ベクトル成分xni,fとベクトル成分xqfとの差分に基づく値であってもよい。例えば、差分情報vi,fとして、ベクトル成分xni,fとベクトル成分xqfとの差分の絶対値(=|xqf-xni,f|)又はベクトル成分xni,fとベクトル成分xqfとの差分の二乗(=(xqf-xni,f)2)が用いられてもよい。上述したように、特徴ベクトルXQ及びXNiの夫々の次元数がFであるため、差分情報Viは、差分情報vi,1と、差分情報vi,2と、・・・、差分情報vi,fと、・・・、差分情報vi,Fとを含んでいてもよい。
貢献度算出部425は、潜在空間内におけるあるクエリデータとある近傍データとの間の距離に対して、当該近傍データの特徴ベクトルの各ベクトル成分が与える影響の大きさを表す要素貢献度cを算出する。具体的には、貢献度算出部425は、潜在空間内におけるクエリデータDQと近傍データDNiとの間の距離diに対して、特徴ベクトルXNiのf番目のベクトル成分(つまり、近傍データDNiのf番目の要素に相当する特徴量)が与える影響の大きさを表す要素貢献度cを算出する。尚、以下の説明では、距離diに対して特徴ベクトルXNiのf番目のベクトル成分が与える影響の大きさを表す要素貢献度cを、“要素貢献度ci、f”と称する。言い換えれば、貢献度算出部425は、距離diを算出する際の特徴ベクトルXNiのf番目のベクトル成分の重要度の大きさを表す要素貢献度ci、fを算出する。具体的には、貢献度算出部425は、差分情報vi、fと局所モデル学習部424が生成した局所モデルLMとに基づいて、要素貢献度ci、fを算出する。尚、要素貢献度ci、fの算出動作については、図7等を参照しながら後に詳述する。
出力制御部426は、検索部423が抽出したn個の近傍データDN1からDNnの少なくとも一つに関する情報を出力するように、後述する出力装置44を制御してもよい。出力制御部426は、n個の近傍データDN1からDNnの少なくとも一つに関する情報に加えて又は代えて、貢献度算出部425が算出した要素貢献度ci、fを出力するように、後述する出力装置44を制御してもよい。
入力装置43は、情報処理装置4の外部からの情報処理装置4に対する情報の入力を受け付ける装置である。例えば、入力装置43は、情報処理装置4のユーザが操作可能な操作装置(例えば、キーボード、マウス及びタッチパネルのうちの少なくとも一つ)を含んでいてもよい。例えば、入力装置43は、情報処理装置4の外部から通信ネットワークを介して情報処理装置4にデータとして送信される情報を受信可能な受信装置(つまり、通信装置)を含んでいてもよい。
出力装置44は、情報を出力する装置である。例えば、出力装置44は、情報処理装置4が行う脅威検出動作に関する情報(例えば、検出された脅威に関する情報)を出力してもよい。このような出力装置44の一例として、情報を画像として出力可能な(つまり、表示可能な)ディスプレイ(表示装置)があげられる。出力装置44の一例として、情報を音声として出力可能なスピーカ(音声出力装置)があげられる。出力装置44の一例として、情報が印刷された文書を出力可能なプリンタがあげられる。出力装置44の一例として、通信ネットワーク又はデータバスを介して情報をデータとして送信可能な送信装置(つまり、通信装置)があげられる。
(2)情報処理装置4が行う動作
続いて、情報処理装置4が行う動作について説明する。上述したように、情報処理装置4は、ローカルシステムLに既に侵入している脅威を検出するための脅威検出動作を行う。更に、情報処理装置4は、脅威検出動作を行う前に、脅威検出動作で用いる変換モデルTMを生成するためのモデル生成動作を行ってもよい。このため、以下では、モデル生成動作と脅威検出動作とについて順に説明する。
(2-1)モデル生成動作
初めに、図5を参照しながら、情報処理装置4が行うモデル生成動作について説明する。図5は、情報処理装置4が行うモデル生成動作の流れを示すフローチャートである。
図5に示すように、計量学習部422は、教師データセット413から少なくとも一つの教師データ4131を取得する(ステップS11)。
教師データセット413のデータ構造の一例が、図6に示されている。図6に示すように、教師データセット413は、複数の教師データ4131を含む。計量学習部422は、教師データセット413に含まれる複数の教師データ4131の全てを取得してもよい。或いは、計量学習部422は、教師データセット413に含まれる複数の教師データ4131の一部を取得する一方で、教師データセット413に含まれる複数の教師データ4131の他の一部を取得しなくてもよい。
各教師データ4131は、特徴データセット412に含まれている複数の特徴データDV(つまり、特徴データDV1からDVK)のうちの二つを指定するデータ指定情報を含む。上述したように、特徴データDVは、特徴データDVに含まれる特徴ベクトルXVに対応するログデータ群を識別するためのデータ識別子によって一意に区別可能である。このため、図6に示すように、データ指定情報は、二つの特徴データDVのデータ識別子を含んでいてもよい。
各教師データ4131は更に、データ指定情報が指定する二つの特徴データDVが、正例に相当するのか又は負例に相当するのかを示すラベル情報を含む。図6に示す例では、「0」を表すラベル情報は、データ指定情報が指定する二つの特徴データDVが負例に相当することを示し、「1」を表すラベル情報は、データ指定情報が指定する二つの特徴データDVが正例に相当することを示すものとする。本実施形態では、正例に相当する二つの特徴データDVは、特徴が似ている二つの特徴データDVを意味していてもよい。ここで、特徴が似ている二つの特徴データDVは、二つの特徴データDVの間の潜在空間における距離が所定の第1閾値未満になる二つの特徴データDVであってもよい。一方で、負例に相当する二つの特徴データDVは、特徴が似ていない二つの特徴データDVを意味していてもよい。ここで、特徴が似ていない二つの特徴データDVは、二つの特徴データDVの間の潜在空間における距離が所定の第2閾値(但し、第2閾値は、上述した第1閾値以上)より大きくなる二つの特徴データDVであってもよい。
再び図5において、計量学習部422は、ステップS11で取得した教師データ4131に基づいて、変換モデルTMを生成する(ステップS12)。具体的には、例えば、計量学習部422は、変換モデルTMを学習するための学習動作を行うことで、変換モデルTMを生成してもよい。このため、変換モデルTMは、学習可能なモデルであってもよい。例えば、変換モデルTMは、パラメータ(例えば、重み及びバイアスの少なくとも一つ)を学習可能なニューラルネットワークを含むモデルであってもよい。
本実施形態では、計量学習部422は、計量学習(言い換えれば、メトリック学習)を行うことで、変換モデルTMを生成してもよい。計量学習は、一般的には、ベクトル空間内において、類似する二つ以上のデータの間の距離が相対的に短くなり且つ類似しない二つ以上のデータの間の距離が相対的に長くなるように各データの特徴ベクトルを変換可能な変換モデルを生成するための学習方法である。このため、本実施形態では、計量学習部422は、計量学習を行うことで、類似する二つ以上の特徴データDVの間の潜在空間内での距離(つまり、類似する二つ以上の特徴データDVに夫々対応する二つ以上の潜在ベクトルZVの間の距離)が相対的に短くなり、且つ、類似しない二つ以上の特徴データDVの間の距離(つまり、類似しない二つ以上の特徴データDVに夫々対応する二つ以上の潜在ベクトルZVの間の距離)が相対的に長くなるように、複数の特徴ベクトルXVを夫々複数の潜在ベクトルZVに変換可能な変換モデルTMを生成してもよい。例えば、計量学習部422は、計量学習を行うことで、類似する二つ以上の特徴データDVの間の潜在空間内での距離が、類似しない二つ以上の特徴データDVの間の潜在空間内での距離以上になるように、複数の特徴ベクトルXVを夫々複数の潜在ベクトルZvに変換可能な変換モデルTMを生成してもよい。例えば、計量学習部422は、計量学習を行うことで、(i)類似する二つ以上の特徴データDVの間の潜在空間内での距離が、類似する二つ以上の特徴データDVの間の表現空間内での距離(つまり、類似する二つ以上の特徴データDVに夫々対応する二つ以上の特徴ベクトルXVの間の距離)以下になり、且つ、(ii)類似しない二つ以上の特徴データDVの間の潜在空間内での距離が、類似しない二つ以上の特徴データDVの間の表現空間内での距離(つまり、類似しない二つ以上の特徴データDVに夫々対応する二つ以上の特徴ベクトルXVの間の距離)以上になるように、複数の特徴ベクトルXVを夫々複数の潜在ベクトルZVに変換可能な変換モデルTMを生成してもよい。
計量学習部422は、例えば、計量学習を行うために用いられるニューラルネットワークを用いて、計量学習を行ってもよい。計量学習を行うために用いられるニューラルネットワークの一例として、シャムネットワーク(Siamese Network)及びトリプレットネットワーク(Triplet Network)の少なくとも一つがあげられる。
教師データ4131を用いて行われる計量学習の一例について以下に説明する。計量学習部422は、教師データ4131に基づいて、正例に相当するラベル情報が付与された二つの特徴ベクトルXVを含むデータセットを、特徴データセット412から少なくとも一組抽出する。更に、計量学習部422は、教師データ4131に基づいて、負例に相当するラベル情報が付与された二つの特徴ベクトルXVを、特徴データセット412から少なくとも一組抽出する。計量学習部422は、抽出した二つの特徴ベクトルXVを変換モデルTMに入力することで、二つの特徴ベクトルXVに対応する二つの潜在ベクトルZVを取得する。その後、計量学習部422は、二つの潜在ベクトルZVの間の距離を算出する。計量学習部422は、正例に相当するラベル情報が付与された二つ特徴ベクトルXVを変換することで得られた二つの潜在ベクトルZVの間の距離が相対的に短くなり、且つ、負例に相当するラベル情報が付与された二つ特徴ベクトルXVを変換することで得られた二つの潜在ベクトルZVの間の距離が相対的に長くなるように、計量学習を行う。このため、計量学習部422は、潜在空間内での二つの潜在ベクトルZVの間の距離に基づいて定まる損失関数を用いて、計量学習を行ってもよい。例えば、上述したように、計量学習部422がシャムネットワークを用いて計量学習を行う場合には、計量学習部422は、Contrastive Lossに基づく損失関数を用いてもよい。
その後、記憶装置41は、ステップS12で生成された変換モデルTMを記憶する(ステップS13)。記憶装置41が記憶している変換モデルTMは、後述する脅威検出動作において用いられる。
(2-2)脅威検出動作
続いて、図7を参照しながら、情報処理装置4が行う脅威検出動作について説明する。図7は、情報処理装置4が行う脅威検出動作の流れを示すフローチャートである。尚、図7に示す脅威検出動作は、情報処理装置4に対するクエリデータDQの入力をトリガに開始されてもよい。複数のクエリデータDQが情報処理装置4に入力された場合には、各クエリデータDQを対象に脅威検出動作が行われる。例えば、第1のクエリデータDQと第2のクエリデータDQとが情報処理装置4に入力された場合には、第1のクエリデータDQを対象に脅威検出動作と、第2のクエリデータDQを対象とする脅威検出動作とが行われる。
図7に示すように、まず、検索部423は、クエリデータDQを取得する(ステップS21)。例えば、検索部423は、ユーザが操作可能な操作装置として機能可能な入力装置43を介して情報処理装置4に入力される、検出ターゲット脅威(或いは、特徴ベクトルXQ)を直接的に又は間接的に指定する情報を、クエリデータDQとして取得してもよい。例えば、検索部423は、通信装置として機能可能な入力装置43を介して情報処理装置4に送信される、検出ターゲット脅威(或いは、特徴ベクトルXQ)を直接的に又は間接的に指定するための情報を、クエリデータDQとして取得してもよい。
その後、検索部423は、ステップS21で取得したクエリデータDQに基づいて、特徴データセット412から、n個の近傍データDN1からDNnを抽出する(ステップS22)。以下、図8を参照しながら、n個の近傍データDN1からDNnを抽出する動作について説明する。図8は、n個の近傍データDN1からDNnを抽出する動作の流れを示すフローチャートである。
図8に示すように、検索部423は、記憶装置41が記憶している変換モデルTMを用いて、ステップ21で取得したクエリデータDQの特徴ベクトルXQを、潜在空間内で検出ターゲット脅威の特徴量を示す潜在ベクトルZQに変換する(ステップS221)。
ステップS221の動作と並行して又は相前後して、検索部423は、特徴データセット412に含まれる複数の特徴データDVのうちの一の特徴データDVvを抽出する(ステップS222)。その後、検索部423は、変換モデルTMを用いて、抽出した一の特徴データDVvの特徴ベクトルXVvを、潜在ベクトルZVvに変換する(ステップS222)。その後、検索部423は、ステップS221で生成された潜在ベクトルZQとステップS222で生成された潜在ベクトルZVvとの間の距離(つまり、潜在空間での距離)を算出する(ステップS223)。
検索部423は、ステップS222からステップS223までの動作を、特徴データセット412に含まれる複数の特徴データDVを対象に繰り返す(ステップS224)。上述したように、特徴データセット412には、K個の特徴データDV1からDVKが含まれている。このため、検索部423は、K個の特徴データDV1からDVKに夫々対応するK個の潜在ベクトルZV1からZVKと潜在ベクトルZQとの間のK個の距離の算出が完了するまで、特徴データセット412に含まれる複数の特徴データDVの中から、ステップS222において未だ抽出されたことがない一の特徴データDVvを新たに抽出した上で、ステップS222からステップS223までの動作を繰り返す。具体的には、検索部423は、特徴データDV1に対応する潜在ベクトルZV1と潜在ベクトルZQとの間の距離と、特徴データDV2に対応する潜在ベクトルZV2と潜在ベクトルZQとの間の距離と、・・・、特徴データDVKに対応する潜在ベクトルZVKと潜在ベクトルZQとの間の距離との算出が完了するまで、ステップS222からステップS223までの動作を繰り返す。
その後、検索部423は、ステップS223で算出した距離に基づいて、特徴データセット412に含まれる複数の特徴データDVのうちのn個の特徴データDVを、夫々、n個の近傍データDN1からDNnとして抽出する(ステップS225)。具体的には、検索部423は、K個の特徴データDVの中から、他のK-n個の特徴データDVと比較して、潜在空間におけるクエリデータDQからの距離が短いn個の特徴データDVを、夫々、n個の近傍データDN1からDNnとして抽出する。つまり、検索部423は、K個の特徴データDVの中から、算出した距離が短い順にn個の特徴データDVを抽出し、抽出したn個の特徴データDVを夫々n個の近傍データDN1からDNnに設定する。
再び図7において、その後、局所モデル学習部424は、ステップS22において抽出されたn個の近傍データDN1からDNnに基づいて、局所モデルLMを生成する(ステップS23)。
本実施形態では、説明の便宜上、局所モデルLMが線形回帰モデルである例について説明する。上述したように、局所モデルLMは、表現空間におけるクエリデータDQと近傍データDNiとの差分に関する差分情報Vi(=vi,1からvi,F)が入力された場合に、潜在空間内におけるクエリデータDQと近傍データDNiとの間の距離diの推定値dpiを出力するモデルである。このため、局所モデルLMは、差分情報Vi(=vi,1からvi,F)が説明変数として用いられ、且つ、距離diの推定値dpiが目的変数として用いられる線形回帰モデルであってもよい。このような局所モデルLMの一例が数式1に示されている。尚、数式1におけるwfは、差分情報vi、fに掛け合わせられる重みである。重みwf(具体的には、w1からwFの夫々)は、0以上の重みである。つまり、重みwf(具体的には、w1からwFの夫々)は、負値とならない重みである。また、数式1に示すように、局所モデルLMは、バイアス項を含まない(つまり、バイアス項がゼロになる)回帰式で特定される線形回帰モデルである。
但し、局所モデルLMが、数式1に示す線形回帰モデルに限定されることはない。例えば、局所モデルLMは、重みwf(具体的には、w1からwFの少なくとも一つ)が負値となる回帰式で特定される線形回帰モデルであってもよい。例えば、局所モデルLMは、バイアス項を含む(つまり、バイアス項がゼロにならない)回帰式で特定される線形回帰モデルであってもよい。或いは、局所モデルLMが、線形回帰モデルに限定されることはない。例えば、局所モデルLMは、非線形回帰モデルであってもよい。例えば、局所モデルLMは、その他の任意のモデルであってもよい。
局所モデルLMを生成するために、局所モデル学習部424は、差分情報Vi(=vi,1からvi,F)を生成する。つまり、局所モデル学習部424は、差分情報V1(=v1,1からv1,F)、差分情報V2(=v2,1からv2,F)、・・・、及び、差分情報Vn(=vn,1からvn,F)を生成する。尚、以下の説明では、差分情報vi,fが、vi,f=|xqf-xni,f|又はvi,f=(xqf-xni,f)2という上述した数式で特定される例について説明する。従って、局所モデル学習部424は、vi,f=|xqf-xni,f|又はvi,f=(xqf-xni,f)2という数式を用いて、差分情報Viを生成する。
その後、局所モデル学習部424は、ステップS22で抽出した近傍データDN1からDNnと、ステップS23において算出した差分情報V1からVnとに基づいて、局所モデルLMを生成する。
具体的には、局所モデル学習部424は、生成済みの又はデフォルトの局所モデルLMに対して、差分情報V1からVnを順に入力する。その結果、局所モデル学習部424は、潜在空間内におけるクエリデータDQと近傍データDN1との間の距離d1の推定値dp1と、潜在空間内におけるクエリデータDQと近傍データDN2との間の距離d2の推定値dp2と、・・・、潜在空間内におけるクエリデータDQと近傍データDNnとの間の距離dnの推定値dpnとを取得する。
その後、局所モデル学習部424は、実際の距離diと距離diの推定値dpiとの間の誤差に基づく損失関数Lossを用いて、局所モデルLMを規定する重みwf(=w1からwF)を更新する。尚、実際の距離di(つまり、距離diの実際の算出値)は、図8のステップS223において近傍データDNiを抽出するために潜在ベクトルZQと潜在ベクトルZV(つまり、近傍データDNiの特徴ベクトルXNiを変換モデルTMで変換することで生成される潜在ベクトルZNi)とに基づいて算出された距離に相当する。損失関数Lossは、距離diの実際の算出値と距離diの推定値dpiとの間の誤差が小さくなるほど小さくなる損失関数であってもよい。この場合、局所モデル学習部424は、損失関数Lossが最小になるように、局所モデルLMを規定する重みwf(=w1からwF)を更新してもよい。このような損失関数Lossの一例が、数式2に示されている。但し、損失関数Lossが数式2に示される損失関数に限定されることはない。
その後、貢献度算出部425は、潜在空間内におけるクエリデータDQと近傍データDNiとの間の距離diに対して、特徴ベクトルXNiのf番目のベクトル成分(つまり、近傍データDNiのF個の要素に相当する特徴量)が与える影響の大きさを表す要素貢献度ci、fを算出する(ステップS24)。特徴ベクトルXNiのp(但し、pは、1≦p≦Fを満たす整数を示す変数)番目のベクトル成分が一定量変化した場合の距離diの変動量が、特徴ベクトルXNiのr(但し、rは、1≦r≦F且つr≠pを満たす整数を示す変数)番目のベクトル成分が同じ一定量変化した場合の距離diの変動量よりも大きい場合には、距離diに対して特徴ベクトルXNiのp番目のベクトル成分が与える影響は、距離diに対して特徴ベクトルXNiのr番目のベクトル成分が与える影響よりも大きい。このため、要素貢献度ci、pは、要素貢献度ci、rよりも大きくなる。
このような要素貢献度ci、fを算出するために、貢献度算出部425は、ステップS23で生成した局所モデルLMと、差分情報vi,fとに基づいて、要素貢献度ci、fを算出する。例えば、貢献度算出部425は、数式3を用いて、要素貢献度ci、fを算出してもよい。数式3は、局所モデルLMを規定するパラメータ(この場合、重みwf)と差分情報vi,fとに基づいて要素貢献度ci、fを算出するために用いられる数式である。
貢献度算出部425は、変数fを1からFの間で変化させ且つ変数iを1からnの間で変化させながら要素貢献度ci、fを算出することで、要素貢献度c1、1、c1、2、・・・、及びc1、F、要素貢献度c2、1、c2、2、・・・、及びc2、F、・・・、並びに、要素貢献度cn、1、cn、2、・・・、及びcn、Fを算出する。尚、上述した数式3を用いて要素貢献度ci、fが算出される場合には、要素貢献度ci、1からci、Fの総和は、1になる。
その後、出力制御部426は、ステップS23で検索部423が抽出したn個の近傍データDN1からDNnの少なくとも一つに関する情報を出力するように、出力装置44を制御してもよい(ステップS25)。尚、近傍データDNiに関する情報は、近傍データDNiの特徴ベクトルXNiを算出する根拠となったプロキシログデータ4111に関する情報を含んでいてもよい。つまり、出力制御部426は、ステップS23で検索部423が抽出したn個の近傍データDN1からDNnの少なくとも一つに対応するプロキシログデータ4111に関する情報を出力するように、出力装置44を制御してもよい。
或いは、出力制御部426は、n個の近傍データDN1からDNnの少なくとも一つに関する情報に加えて又は代えて、ステップS24で貢献度算出部425が算出した要素貢献度c1、1からcn、Fの少なくとも一つを出力するように、出力装置44を制御してもよい(ステップS25)。
一例として、出力制御部426は、図9に示すように、要素貢献度c1、1からcn、Fのリストを出力するように、出力装置44を制御してもよい。尚、図9は、出力装置44が表示装置である場合に出力装置44が出力する(つまり、表示装置が表示する)要素貢献度c1、1からcn、Fのリストの一例を示している。図9に示す例では、近傍データDNiは、受信サイズの最小値に関する特徴量を示す1番目のベクトル成分と、受信サイズの最大値に関する特徴量を示す2番目のベクトル成分と、送信サイズの最小値に関する特徴量を示す3番目のベクトル成分と、送信サイズの最大値に関する特徴量を示す4番目のベクトル成分と、受信サイズと送信サイズとの総和に関する特徴量を示す5番目のベクトル成分と、メソッド(GET)に関する特徴量を示す6番目のベクトル成分と、メソッド(POST)に関する特徴量を示す7番目のベクトル成分と、メソッド(その他)に関する特徴量を示す8番目のベクトル成分とを含む。この場合、出力制御部426は、距離diに対して受信サイズの最小値に関する特徴量が与える影響を示す要素貢献度ci、1と、距離diに対して受信サイズの最大値に関する特徴量が与える影響を示す要素貢献度ci、2と、距離diに対して送信サイズの最小値に関する特徴量が与える影響を示す要素貢献度ci、3と、距離diに対して送信サイズの最大値に関する特徴量が与える影響を示す要素貢献度ci、4と、距離diに対して受信サイズと送信サイズとの総和に関する特徴量が与える影響を示す要素貢献度ci、5と、距離diに対してメソッド(GET)に関する特徴量が与える影響を示す要素貢献度ci、6と、距離diに対してメソッド(POST)に関する特徴量が与える影響を示す要素貢献度ci、7と、距離diに対してメソッド(その他)に関する特徴量が与える影響を示す要素貢献度ci、8とのリストを出力するように、出力装置44を制御してもよい。
図9に示す例では、要素貢献度c1、1からc1、4が相対的に大きい。このため、潜在空間におけるクエリデータDQと近傍データDN1との間の距離diに対して、受信サイズ及び送信サイズの夫々に関する特徴量が与える影響が相対的に大きいことが分かる。また、図9に示す例では、要素貢献度c2、1からc2、1が相対的に大きい。このため、潜在空間におけるクエリデータDQと近傍データDN2との間の距離d2に対して、受信サイズに関する特徴量が与える影響が相対的に大きいことが分かる。また、図9に示す例では、要素貢献度c3、1からc3、1が相対的に大きい。このため、潜在空間におけるクエリデータDQと近傍データDN3との間の距離d3に対して、受信サイズに関する特徴量が与える影響が相対的に大きいことが分かる。
(3)情報処理装置1の技術的効果
以上説明したように、本実施形態の情報処理装置4は、潜在空間内におけるクエリデータDQと近傍データDNiとの間の距離diに対して、近傍データDNiのf番目の要素に相当する特徴量が与える影響の大きさを表す要素貢献度ci、fを算出することができる。このため、情報処理装置4のユーザは、要素貢献度ci、fに基づいて、距離diに対して相対的に大きな影響を与えている(つまり、距離diの算出に対して相対的に大きく寄与している)特徴量を把握することができる。
また、情報処理装置4は、局所モデルLMを生成し、生成した局所モデルLM(例えば、局所モデルLMを規定する重みwf)を用いて要素貢献度ci、fを算出することができる。このため、情報処理装置4は、比較的容易に要素貢献度ci、fを算出することができる。
また、情報処理装置4は、生成した局所モデルLMを規定する重みwfを用いて要素貢献度ci、fを算出することができる。このため、情報処理装置4は、上述した数式1のような比較的簡易的な数式(特に、行列演算を行う装置にとって扱いやすい数式)を用いて、要素貢献度ci、fを算出することができる。
また、上述した例では、局所モデルLMは、バイアス項を含まない回帰式で特定される線形回帰モデルである。仮に局所モデルLMが、バイアス項を含む回帰式で特定される線形回帰モデルである場合には、情報処理装置4は、局所モデルLMを算出する際に及び/又は要素貢献度ci、fを算出する際に、バイアス項に起因して生ずる原点からのずれ(つまり、表現空間及び/又は潜在空間内でのオフセット量)を考慮する必要がある。つまり、情報処理装置4は、局所モデルLMを算出する及び/又は要素貢献度ci、fを算出するための行列演算を行う際に、行列同士の内積のみならず、行列成分のオフセット量(つまり、加減算)を考慮する必要がある。しかるに、本実施形態では、局所モデルLMが、バイアス項を含まない回帰式で特定される線形回帰モデルであるため、情報処理装置4は、局所モデルLMを算出する際に及び/又は要素貢献度ci、fを算出する際に、バイアス項に起因して生ずる原点からのずれ(つまり、表現空間及び/又は潜在空間内でのオフセット量)を考慮しなくてもよくなる。このため、情報処理装置4は、比較的容易に、局所モデルLMを算出する及び/又は要素貢献度ci、fを算出することができる。
また、上述した例では、局所モデルLMは、重みwfが0以上になる回帰式で特定される線形回帰モデルである。仮に局所モデルLMが、重みwfが0未満となることを許容する回帰式で特定される線形回帰モデルである場合には、要素貢献度ci、fが負の値になる可能性がある。しかしながら、情報処理装置4のユーザにとっては、負の要素貢献度ci、fは、直感的に分かりづらい指標であると想定される。一方で、本実施形態では、局所モデルLMが、重みwfが0以上になる回帰式で特定される線形回帰モデルであるため、要素貢献度ci、fが負の値になることはない。このため、情報処理装置4は、情報処理装置4のユーザにとって直感的に分かりやすい要素貢献度ci、fを算出することができる。
尚、情報処理装置4は、要素貢献度ci、fに基づいて、潜在空間におけるクエリデータDQと近傍データDNiとの間の距離diが相対的に小さくなった要因を特定してもよい。つまり、情報処理装置4は、要素貢献度ci、fに基づいて、クエリデータDQと近傍データDNiとが類似すると判定されることになった要因を特定してもよい。例えば、上述した図9に示す例では、要素貢献度c3、1からc3、2が相対的に大きい。この場合、情報処理装置4は、クエリデータDQと近傍データDN3とが類似すると判定される要因が、受信サイズに起因していると特定してもよい。尚、上述したように、クエリデータDQと近傍データDN3とが類似している場合には、クエリデータDQが指定する検出ターゲット脅威と同じ又は類似する脅威がローカルシステムLに既に侵入した可能性があると想定される。この場合、クエリデータDQと近傍データDN3とが類似すると判定される要因は、近傍データDN3に対応するプロキシログデータ4111が、検出ターゲット脅威と同じ又は類似する脅威の痕跡を示すと判定される要因と等価であるとも言える。
また、情報処理装置4は、要素貢献度ci、fに基づいて、検索部423が抽出したn個の近傍データDN1からDNnを分類してもよい。具体的には、情報処理装置4は、要素貢献度ci、fが類似する近傍データDNiが同じ貢献データ群に分類されるように、n個の近傍データDN1からDNnを分類してもよい。この場合、情報処理装置4は、同じ貢献データ群に分類された近傍データDNiを用いて、局所モデルLMの重みwfを更新するための学習動作を行ってもよい。
また、情報処理装置4は、要素貢献度ci,fに基づいて、検索部423がn個の近傍データDN1からDNnのうちの少なくとも一つを誤って抽出してしまったか否かを判定してもよい。例えば、n個の近傍データDN1からDNnがそもそもクエリデータDQに類似するがゆえに、通常は、近傍データDN1に対応するF個の要素貢献度c1、1からc1、Fから構成されるベクトルと、近傍データDN2に対応するF個の要素貢献度c2、1からc2、Fから構成されるベクトルと、・・・、近傍データDNnに対応するF個の要素貢献度cn,1からcn、Fから構成されるベクトルとが互いに大きく異なるものになる可能性は高くはない。このような状況下で、近傍データDNj(但し、jは、1≦j≦nを満たす整数を示す変数)に対応するF個の要素貢献度cj、fから構成されるベクトルと、近傍データDNj以外の他の近傍データDNに対応するF個の要素貢献度ci、fから構成されるベクトル(つまり、近傍データDN1に対応するF個の要素貢献度c1、fから構成されるベクトル、・・・、近傍データDNj-1に対応するF個の要素貢献度cj-1、fから構成されるベクトル、近傍データDNj+1に対応するF個の要素貢献度cj+1、fから構成されるベクトル、・・・、及び、近傍データDNnに対応するF個の要素貢献度cn、fから構成されるベクトルの夫々)との間の差分が、許容量を超えるほどに大きくなっている場合には、検索部423が、近傍データDNjを、クエリデータDQに類似するデータとして誤って抽出してしまった可能性があると想定される。このような観点から、情報処理装置4は、要素貢献度ci、fに基づいて、検索部423がn個の近傍データDN1からDNnのうちの少なくとも一つを誤って抽出してしまったか否かを判定してもよい。
(4)変形例
続いて、通信システムSYS(特に、情報処理装置4)の変形例について説明する。
(4-1)第1変形例
第1変形例では、情報処理装置4(特に、貢献度算出部425)は、要素貢献度ci,fに加えて、グループ貢献度eを算出してもよい。グループ貢献度eは、ある近傍データの特徴ベクトルの各ベクトル成分(つまり、近傍データが示す特徴量の各要素)が複数の特徴グループの少なくとも一つに所属する(言い換えれば、分類される)という状況下で算出される指標値である。具体的には、グループ貢献度eは、潜在空間内におけるあるクエリデータとある近傍データとの間の距離に対して、各特徴グループが与える影響の大きさを表す。つまり、グループ貢献度eは、潜在空間内におけるあるクエリデータとある近傍データとの間の距離に対して、各特徴グループに所属する少なくとも一つのベクトル成分(つまり、一の特徴グループに分類される少なくとも一つの特徴量の要素)が与える影響の大きさを表す。
一例として、複数の特徴グループは、特徴ベクトルXNiを算出する元となったプロキシログデータ4111が含む複数のログ情報の種類に夫々対応するグループであってもよい。具体的には、上述した例では、プロキシログデータ4111は、複数種類のログ情報として、受信サイズ情報、送信サイズ情報及びメソッド情報を含む。この場合、複数の特徴グループとして、受信サイズに関する特徴グループと、送信サイズに関する特徴グループと、メソッドに関する特徴グループとが用いられてもよい。また、上述した例では、図9に示すように、近傍データDNiは、受信サイズの最小値に関する特徴量を示す1番目のベクトル成分と、受信サイズの最大値に関する特徴量を示す2番目のベクトル成分と、送信サイズの最小値に関する特徴量を示す3番目のベクトル成分と、送信サイズの最大値に関する特徴量を示す4番目のベクトル成分と、受信サイズと送信サイズとの総和に関する特徴量を示す5番目のベクトル成分と、メソッド(GET)に関する特徴量を示す6番目のベクトル成分と、メソッド(POST)に関する特徴量を示す7番目のベクトル成分と、メソッド(その他)に関する特徴量を示す8番目のベクトル成分とを含む。この場合、受信サイズの最小値に関する特徴量を示す1番目のベクトル成分と、受信サイズの最大値に関する特徴量を示す2番目のベクトル成分と、受信サイズと送信サイズとの総和に関する特徴量を示す5番目のベクトル成分とは、受信サイズに関する特徴グループに所属してもよい。送信サイズの最小値に関する特徴量を示す3番目のベクトル成分と、送信サイズの最大値に関する特徴量を示す4番目のベクトル成分と、受信サイズと送信サイズとの総和に関する特徴量を示す5番目のベクトル成分とは、送信サイズに関する特徴グループに所属してもよい。メソッド(GET)に関する特徴量を示す6番目のベクトル成分と、メソッド(POST)に関する特徴量を示す7番目のベクトル成分と、メソッド(その他)に関する特徴量を示す8番目のベクトル成分とは、受信サイズに関する特徴グループに所属してもよい。
近傍データDNiの特徴ベクトルXNiの各ベクトル成分がG(但し、Gは1以上の整数を示す定数)個の特徴グループの少なくとも一つに所属する場合には、貢献度算出部425は、潜在空間内におけるクエリデータDQと近傍データDNiとの間の距離diに対して、g(但し、gは、1≦g≦Gを満たす整数を示す変数)番目の特徴グループが与える影響の大きさを表すグループ貢献度eを算出してもよい。尚、以下の説明では、距離diに対してg番目の特徴グループが与える影響の大きさを表すグループ貢献度eを、“グループ貢献度ei,g”と称する。言い換えれば、貢献度算出部425は、距離diに対して、g番目の特徴グループに所属する少なくとも一つのベクトル成分が与える影響の大きさを表すグループ貢献度ei,gを算出してもよい。この場合、貢献度算出部425は、変数gを1からGの間で変化させながらグループ貢献度ei,gを算出することで、距離diに対して1番目の特徴グループに所属する少なくとも一つのベクトル成分が与える影響の大きさを表すグループ貢献度ei,1と、距離diに対して2番目の特徴グループに所属する少なくとも一つのベクトル成分が与える影響の大きさを表すグループ貢献度ei,2と、・・・、距離diに対してG番目の特徴グループに所属する少なくとも一つのベクトル成分が与える影響の大きさを表すグループ貢献度ei,Gとを算出してもよい。
貢献度算出部425は、要素貢献度ci,fに基づいて、グループ貢献度ei,gを算出してもよい。例えば、貢献度算出部425は、数式4を用いて算出してもよい。数式4を用いて算出されたグループ貢献度ei,gは、後述する所属率bg,fで重み付けされた要素貢献度ci,fの総和となる。
ここで、数式4におけるbg,fは、近傍データDNiのf番目のベクトル成分がg番目の特徴グループに所属する所属率を示す。尚、所属率bg,fは、各ベクトル成分の所属率bg,fの総和(つまり、b1,f+b2,f+・・・+bG,f)が1になるように設定される。例えば、f番目のベクトル成分がg番目の特徴グループにのみ所属する場合には、f番目のベクトル成分がg番目の特徴グループに所属する所属率bg,fは、1(つまり、100%)に設定されていてもよい。一方で、例えば、f番目のベクトル成分がg1(但し、g1は、1≦g1≦Gを満たす整数を示す変数)番目の特徴グループ及びg2(但し、g2は、1≦g2≦G且つg2≠g1を満たす整数を示す変数)番目の特徴グループの双方に所属する場合には、f番目のベクトル成分がg1番目の特徴グループに所属する所属率bg1,fは、1/2(=50%)に設定され、f番目のベクトル成分がg2番目の特徴グループに所属する所属率bg2,fは、1/2(=50%)に設定されていてもよい。つまり、一のベクトル成分がH(但し、Hは2以上の整数を示す定数)個の特徴グループに所属する場合には、一のベクトル成分がH個の特徴グループの夫々に所属する所属率bg,fは、1/N(=100/N%)に設定されていてもよい。尚、所属率bg,fは、予め設定されていてもよいし、情報処理装置4(特に、貢献度算出部425)によって設定されてもよい。
グループ貢献度ei,gが算出された場合には、出力制御部426は、グループ貢献度ei,gを出力するように、出力装置44を制御してもよい。例えば、上述したように、グループ貢献度ei,1からei,Gは、プロキシログデータ4111が含むG種類のログ情報に夫々対応するG個の特徴グループに夫々対応する。このため、出力制御部426は、近傍データDNiに対応するプロキシログデータ4111に含まれるG種類のログ情報の少なくとも一部とG個のグループ貢献度ei,1からei,Gの少なくとも一部とを夫々関連付けた出力態様で、プロキシログデータ4111を出力するように、出力装置44を制御してもよい。
G種類のログ情報の少なくとも一部とG個のグループ貢献度ei,1からei,Gの少なくとも一部とを夫々関連付けた表示態様は、g番目の特徴グループに対応するg番目のログ情報とg番目の特徴グループのグループ貢献度ei,gとを関連付けた表示態様を含んでいてもよい。具体的には、例えば、G種類のログ情報の少なくとも一部とG個のグループ貢献度ei,1からei,Gの少なくとも一部とを夫々関連付けた表示態様は、(i)受信サイズに関するログ情報と受信サイズに関する特徴グループのグループ貢献度ei,gとを関連付けた表示態様、(ii)送信サイズに関するログ情報と送信サイズに関する特徴グループのグループ貢献度ei,gとを関連付けた表示態様、及び、(iii)メソッドに関するログ情報とメソッドに関する特徴グループのグループ貢献度ei,gとを関連付けた表示態様を含んでいてもよい。g番目のログ情報とグループ貢献度ei,gとを関連付けた表示態様は、図11(a)に示すように、g番目のログ情報と共にグループ貢献度ei,gを表示する表示態様を含んでいてもよい。g番目のログ情報とグループ貢献度ei,gとを関連付けた表示態様は、図11(b)に示すように、g番目のログ情報の表示態様(例えば、色、明るさ、輝度及びハイライトの少なくとも一つ)をグループ貢献度ei,gに応じて変更する表示態様を含んでいてもよい。例えば、図11(b)は、グループ貢献度ei,gが相対的に高いログ情報をハイライト表示する例を示している。g番目のログ情報とグループ貢献度ei,gとを関連付けた表示態様は、g番目のログ情報を表示するか否かがグループ貢献度ei,gに応じて決定される表示態様を含んでいてもよい。例えば、グループ貢献度ei,gが所定の表示閾値を下回る場合には、g番目のログ情報は表示されなくてもよい。一方で、例えば、グループ貢献度ei,gが所定の表示閾値を上回る場合には、g番目のログ情報が表示されてもよい。
以上説明した第1変形例によれば、情報処理装置4は、グループ貢献度ei,gを算出することができる。ここで、グループ貢献度ei,gは、例えば、同じ特徴グループに対応する複数の要素貢献度ci,fの総和である。このため、グループ貢献度ei,gのばらつきは、各要素貢献度ci,fのばらつきよりも小さくなる。このため、情報処理装置4は、要素貢献度ci,fと比較して、より安定した貢献度とみなせるグループ貢献度ei,gを算出することができる。
また、複数の特徴グループは、プロキシログデータ4111の複数のログ情報の種類に夫々対応している。このため、情報処理装置4は、近傍データDNiを表示する際に(つまり、近傍データDNiに対応するプロキシログデータ4111を表示する際に)、グループ貢献度ei,gを近傍データDNiに関連付けた表示態様で近傍データDNiを比較的容易に表示することができる。
(4-2)第2変形例
上述した説明では、通信システムSYSは、プロキシサーバ1を備えている。しかしながら、第2変形例では、図12に示すように、通信システムSYSは、プロキシサーバ1を備えていなくてもよい。つまり、クライアント2は、プロキシサーバ1を介することなく、サーバ3と通信してもよい。サーバ3は、プロキシサーバ1を介することなく、クライアント2と通信してもよい。この場合であっても、情報処理装置4は、クライアント2とサーバ3との間の通信の履歴を示すログデータを用いて、上述した脅威検出動作を行ってもよい。
(4-3)第3変形例
上述した説明では、情報処理装置4は、特徴抽出部421を備えている。しかしながら、第3変形例では、図13に示すように、情報処理装置4は、特徴抽出部421を備えていなくてもよい。この場合、記憶装置41は、プロキシログDB411に含まれるプロキシログデータ4111から任意の方法で生成された特徴ベクトルXVを含む特徴データセット412を記憶していてもよい。尚、この場合には、図13に示すように、記憶装置41は、プロキシログDB411を記憶していなくてもよい。
上述した説明では、情報処理装置4は、計量学習部422を備えている。しかしながら、第3変形例では、図13に示すように、情報処理装置4は、計量学習部422を備えていなくてもよい。この場合、記憶装置41は、情報処理装置4とは異なる装置によって生成された変換モデルTMを記憶していてもよい。尚、この場合には、図13に示すように、記憶装置41は、教師データセット413を記憶していなくてもよい。
上述した説明では、情報処理装置4は、出力制御部426を備えている。しかしながら、第3変形例では、図13に示すように、情報処理装置4は、出力制御部426を備えていなくてもよい。この場合、出力制御部426が行っていた近傍データDN1からDNn及び要素貢献度ci、fを出力する動作は、情報処理装置4の外部の装置によって行われてもよい。
(4-4)第4変形例
上述した説明では、脅威検出動作を行う通信システムSYSに対して、情報処理装置、情報処理方法、及び、記録媒体の実施形態が適用されている。しかしながら、第4変形例では、任意のデータを取り扱う任意のデータ処理装置に対して、情報処理装置、情報処理方法、及び、記録媒体の実施形態が適用されてもよい。この場合であっても、データ処理装置が取り扱う複数のデータの間の距離をベクトル空間内で定義可能である限りは、データ処理装置は、上述したモデル生成動作を行ってもよい。同様に、データ処理装置が取り扱う複数のデータの間の距離をベクトル空間内で定義可能である限りは、データ処理装置は、上述した脅威検出動作に準じたデータ検出動作を行ってもよい。尚、データ検出動作は、潜在空間内でクエリデータDQの近傍に位置するデータに相当する近傍データDNiを検出する処理と、潜在空間内でのクエリデータDQと近傍データDNiとの間の距離diに対して近傍データDNiの特徴ベクトルXNiの各ベクトル成分が与える影響の大きさを表す要素貢献度ci、fを算出する処理との少なくとも一つを含んでいてもよい。このようなデータ処理装置が取り扱うデータの一例として、リスト化可能なデータ、データベース化可能なデータ、及び、テーブル化可能なデータのうちの少なくとも一つがあげられる。
本発明は、請求の範囲及び明細書全体から読み取るこのできる発明の要旨又は思想に反しない範囲で適宜変更可能であり、そのような変更を伴う情報処理装置、情報処理方法、及び、記録媒体もまた本発明の技術思想に含まれる。