(57)【要約】【課題】人的負担を軽減しつつ大量のログを効果的に分析できるログ分析支援装置およびログ分析支援方法。【解決手段】ログ分析支援装置１は、ログ記憶装置１００から複数の情報要素を含むログを取得して多次元ベクトル化するとともにベクトル間距離に基づいて複数のクラスタを形成する。そして、ログ分析支援装置１は、最小のクラスタ、すなわち多次元ベクトルを最も少なく含むクラスタに含まれる多次元ベクトルに対応するログを出力する。【選択図】図１
2018132787.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報要素を含むログの分析を支援するログ分析支援装置であって、
複数の前記ログを取得するログ取得部と、
前記ログ取得部により取得された複数の前記ログについて、前記複数の情報要素を数値化した多次元ベクトルを生成するベクトル生成部と、
前記ベクトル生成部により生成された複数の前記多次元ベクトルについて、ベクトル間距離に基づき１または複数の前記多次元ベクトルを含む複数のクラスタを形成するクラスタリング部と、
前記クラスタリング部によって形成された前記クラスタのうちの最小のものに含まれる前記多次元ベクトルに対応する前記ログを出力するログ出力部と、を有していることを特徴とするログ分析支援装置。
【請求項２】
前記ベクトル生成部が、前記情報要素として文字列が設定されているとき、当該情報要素について当該文字列の出現頻度に応じた数値とするように構成されていることを特徴とする請求項１に記載のログ分析支援装置。
【請求項３】
前記ベクトル生成部が、前記情報要素として日時情報が設定されているとき、当該情報要素について所定時刻からの経過時間を表す数値とするように構成されていることを特徴とする請求項１または請求項２に記載のログ分析支援装置。
【請求項４】
前記ベクトル生成部が、あらかじめ設定された重み付け情報を用いて前記複数の情報要素を数値化するように構成されていることを特徴とする請求項１〜請求項３のいずれか一項に記載のログ分析支援装置。
【請求項５】
複数の情報要素を含むログの分析を支援するログ分析支援方法であって、
複数の前記ログを取得するログ取得工程と、
前記ログ取得工程で取得された複数の前記ログについて、前記複数の情報要素を数値化した多次元ベクトルを生成するベクトル生成工程と、
前記ベクトル生成工程で生成された複数の前記多次元ベクトルについて、ベクトル間距離に基づき１または複数の前記多次元ベクトルを含む複数のクラスタを形成するクラスタリング工程と、
前記クラスタリング工程で形成された前記クラスタのうちの最小のものに含まれる前記多次元ベクトルに対応する前記ログを出力するログ出力工程と、を有していることを特徴とするログ分析支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムが出力するログの分析を支援するログ分析支援装置およびログ分析支援方法に関する。
【背景技術】
【０００２】
例えば、コンピュータなどのハードウェアやソフトウェアで構成されるシステムは、各種動作や外部からのアクセスなどのシステムに起きた出来事をログとして記録する。そして、このようなシステムのログは、障害等のシステム異常が発生したときなどに異常原因を特定するために分析に用いられ、さらには、システム異常の予兆や不正侵入などを検出するためにも用いられる。
【０００３】
例えば、システム管理者がログを分析することにより、バッチ処理プログラムの実行において通常であれば１時間で完了する処理に３時間かかっていたことが判明した場合、バッチ処理プログラムもしくは対象とするデータの異常が疑われる。別の例でいえば、ログ分析により、ファイルサーバに格納されている業務情報ファイルが、全く関係のない別部署のユーザアカウントによってアクセスされたことが判明した場合、このユーザアカウントが悪用されたことによる情報流出の可能性が疑われる。
【０００４】
近年のＩｏＴ技術などの普及により多数のシステムがログを出力するようになってきており、また、マルウェアのような不正なプログラムの検出を促進するためにシステムの挙動を事細かにログに出力することが行われており、ログの量が飛躍的に増大してきている。しかしながら、ログの分析は、そのシステムを熟知した管理者等が、経験や勘から導いたキーワードを用いて検索するという手法で行われているので、ログ分析の精度を確保するためには管理者等の技量に頼ることとなる。そのため、管理者等に多大な負担がかかってしまい、また、管理者等においても大量のログを漏れなく分析することは困難であった。
【０００５】
そして、管理者等の負担軽減を目的として、例えば、特許文献１には、グループ化ポリシーに基づいてログをグループ化し、ログ選択ポリシーに基づいてロググループ内から重要なログレコードを抽出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−０３９８７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示されている方法では、重要なログレコードを抽出するために、グループ化ポリシーおよびログ選択ポリシーをあらかじめ定義しておく必要があるところ、このようなポリシーは、ログの分析に熟練した管理者等が自らの知識・ノウハウを用いて作成する必要があるので、ポリシーの作成方法を一般化することが難しかった。そのため、管理者等の負担を軽減することについてまだ改善の余地があり、また、大量のログを効果的に分析するという課題について十分に解決するには至っていない。
【０００８】
本発明は、人的負担を軽減しつつ大量のログを効果的に分析できるログ分析支援装置およびログ分析支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様に係るログ分析支援装置は、複数の情報要素を含むログの分析を支援するログ分析支援装置であって、複数の前記ログを取得するログ取得部と、前記ログ取得部により取得された複数の前記ログについて、前記複数の情報要素を数値化した多次元ベクトルを生成するベクトル生成部と、前記ベクトル生成部により生成された複数の前記多次元ベクトルについて、ベクトル間距離に基づき１または複数の前記多次元ベクトルを含む複数のクラスタを形成するクラスタリング部と、前記クラスタリング部によって形成された前記クラスタのうちの最小のものに含まれる前記多次元ベクトルに対応する前記ログを出力するログ出力部と、を有していることを特徴とする。
【００１０】
本発明によれば、複数の情報要素を含むログを多次元ベクトル化するとともにベクトル間距離に基づいて複数のクラスタを形成（クラスタリング）し、最小のクラスタに含まれる多次元ベクトルに対応するログを出力する。このようにしたことから、システム異常の予兆や不正侵入などに関連するログは、システムにおける通常の出来事を示すログとは異なる情報要素を含む傾向が見られるところ、複数のログについてクラスタリングを行って、共通の情報要素を多く含むことによりベクトル距離が小さい（近い）ログ同士をクラスタとしてまとめることにより、残りのログ、つまり共通の情報要素が少ないログを抽出して出力することができる。そして、共通の情報要素が少ないログは、システムにおける通常の出来事を示すログとは異なる情報要素を含んでいる可能性が高く、このようなログを分析することでシステム異常の予兆や不正侵入などを効果的に検出することができる。
【００１１】
本発明においては、前記ベクトル生成部が、前記情報要素として文字列が設定されているとき、当該情報要素について当該文字列の出現頻度に応じた数値とするように構成されていることが好ましい。このようすることで、出現頻度が高い文字列はシステムにおける通常の出来事に関連し、出現頻度が低い文字列はシステムにおいて通常起こりえない異常に関連する蓋然性が高いものと考えられるので、出現頻度に応じた数値とすることで、出現頻度が高い文字列を含むログ間のベクトル距離を小さくでき、分析精度をより高めることができる。
【００１２】
本発明においては、前記ベクトル生成部が、前記情報要素として日時情報が設定されているとき、当該情報要素について所定時刻からの経過時間を表す数値とするように構成されていることが好ましい。このようにすることで、時間的に近いログ同士は互いに関連する蓋然性が高いと考えられるところ、ログに含まれる日時情報について時間的に近いときは数値の差が小さく、時間的に遠いときは数値の差が大きくなるので、そのようなログ間のベクトル距離を小さくすることができ、分析精度をより高めることができる。
【００１３】
本発明においては、前記ベクトル生成部が、あらかじめ設定された重み付け情報を用いて前記複数の情報要素を数値化するように構成されていることが望ましい。このようにすることで、例えば、システムの実行プログラムやユーザアカウントが設定される情報要素について重みを大きくすることで、プログラムやユーザアカウントが異なった場合のログ間のベクトル距離を大きくすることができる。そのため、通常の処理において実行されることのないプログラムが実行されたときのログや、関係のない他部署のユーザアカウントでログインされたときのログを、効果的に抽出することができ、分析精度をより高めることができる。
【００１４】
本発明の他の一態様に係るログ分析支援方法は、複数の情報要素を含むログの分析を支援するログ分析支援方法であって、複数の前記ログを取得するログ取得工程と、前記ログ取得工程で取得された複数の前記ログについて、前記複数の情報要素を数値化した多次元ベクトルを生成するベクトル生成工程と、前記ベクトル生成工程で生成された複数の前記多次元ベクトルについて、ベクトル間距離に基づき１または複数の前記多次元ベクトルを含む複数のクラスタを形成するクラスタリング工程と、前記クラスタリング工程で形成された前記クラスタのうちの最小のものに含まれる前記多次元ベクトルに対応する前記ログを出力するログ出力工程と、を有していることを特徴とする。
【００１５】
本発明によれば、複数の情報要素を含むログを多次元ベクトル化するとともにベクトル間距離に基づいて複数のクラスタを形成（クラスタリング）し、最小のクラスタに含まれる多次元ベクトルに対応するログを出力する。このようにしたことから、システム異常の予兆や不正侵入などに関連するログは、システムにおける通常の出来事を示すログとは異なる情報要素を含む傾向が見られるところ、複数のログについてクラスタリングを行い、共通の情報要素を多く含むことによりベクトル距離が小さい（近い）ログ同士をクラスタとしてまとめることにより、残りのログ、つまり共通の情報要素が少ないログを抽出して出力することができる。そして、共通の情報要素が少ないログは、システムにおける通常の出来事を示すログとは異なる情報要素を含んでいる可能性が高く、このようなログを分析することでシステム異常の予兆や不正侵入などを効果的に検出することができる。
【発明の効果】
【００１６】
本発明によれば、人的負担を軽減しつつ大量のログを効果的に分析できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係るログ分析支援装置の概略構成を示す図である。
【図２】図１のログ分析支援装置によって処理されるログファイルの一例を説明する図である。
【図３】図２のログファイルに含まれるログから生成された多次元ベクトルの一例を説明する図である。
【図４】図１のログ分析支援装置によって実行される分析支援処理の一例を示すフローチャートである。
【図５】図１のログ分析支援装置におけるデータフローを模式的に示す図である。
【図６】インシデントとなり得るログの一例を説明する図である。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態にかかるログ分析支援装置について、図面を用いて説明する。図１は、本発明の一実施形態に係るログ分析支援装置の概略構成を示す図である。
【００１９】
本実施形態のログ分析支援装置１は、プロセッサおよび記憶装置などを備えたコンピュータで構成されている。図１に示すように、ログ分析支援装置１は、各種システムが出力したログが集約されるログ記憶装置１００にネットワークなどを介して接続されている。ログ分析支援装置１は、ログ記憶装置１００からログファイルを取得して分析を行い、分析結果をログ記憶装置１００に送信して格納し、表示装置２００に表示する。
【００２０】
ログ分析支援装置１は、ログ取得部１１、ベクトル生成部１２、クラスタリング部１３およびログ出力部１４を有している。これら機能部は、ログ分析支援装置１の記憶装置に格納された分析支援処理プログラムをプロセッサが実行することにより実現されている。
【００２１】
ログ取得部１１は、ログ記憶装置１００にアクセスして、分析対象となるログが書き込まれたログファイルＬＦを取得する。ログファイルＬＦの一例を図２に示す。ログファイルＬＦは、テキストファイルであって、改行で区切られる１つの行を１レコードとし、各レコードＲ１〜Ｒｎにログ（ログメッセージとも呼ばれる）が格納されている。各レコードに格納されているログは、所定の順序で並べられた複数の情報要素Ｅ１〜Ｅ８を含む。図２に示す例では、情報要素Ｅ１には「日付」、情報要素Ｅ２には「時刻」、情報要素Ｅ３には「ユーザ名」、情報要素Ｅ４には「コンピュータ名」、情報要素Ｅ５には「ログ種別」、情報要素Ｅ６には「ステータス」、情報要素Ｅ７には「プロセス名」、情報要素Ｅ８には「ファイル名」を示す文字列が設定されている。
【００２２】
「日付」および「時刻」は、対象のログの処理が行われた時点のコンピュータ（すなわちシステム）のローカルシステム時間を表す。「ユーザ名」は、対象の処理を行ったコンピュータにログインしていたユーザのコンピュータ上での名前（アカウント）を表す。「コンピュータ名」は、対象となったコンピュータの名前を表す。「ログ種別」は、対象のログの種別を表す。例えば、ユーザのログイン・ログアウト、ファイルの新規作成・コピー・削除、プロセスの起動・終了などがある。「ステータス」は、処理の成功（ｏｋ）、失敗（ｅｒｒ）を表す。「プロセス名」は、処理を行ったプロセスの名称を表す。「ファイル名」は、処理の対象となったファイルの名称を表す。レコードのログ種別によっては、ファイル名の代わりにユーザ名などが入ることもある。
【００２３】
ベクトル生成部１２は、ログ取得部１１によって取得されたログファイルＬＦからレコードＲ１〜Ｒｎを読み出して、各レコードＲ１〜Ｒｎに格納されたログに含まれる情報要素Ｅ１〜Ｅ８を数値化して、各ログに対応する多次元ベクトルＶ１〜Ｖｎを生成する。
【００２４】
情報要素Ｅ１（日付）および情報要素Ｅ２（時刻）については、これらに対応する１つの次元Ｄ１を生成し、基準時刻からの経過時間（秒数）を表す数値に設定する。具体的には、情報要素Ｅ１、Ｅ２に設定されている文字列が示す日付および時刻について、基準時刻（例えば、１９７０年１月１日０時０分や、ログファイルＬＦに書き込まれたログの中で最も早い日時）からの経過時間を示す数値に変換する。そして、変換した数値について、各ログ間で正規化（例えば、大きさに応じて０〜１の範囲内の値に変換）して次元Ｄ１に設定する。
【００２５】
ログには、ほぼ必ず日時に関する情報要素が存在し、日時の情報は文字列の完全一致で比較するより、数値化して差を比較した方がその特性を効果的にベクトルに反映できる。すなわち、日時を単に文字列として見ると１秒異なっているだけでも全く別の文字列として扱われてしまうが、実際には１秒違いのログ同士と１か月違いのログ同士では、前者の方が関連性や類似性が高いと考えられる。このことから、日時を数値にしてその差で数値化することで、より精度の高い分析結果が得られる。
【００２６】
他の情報要素Ｅ３〜Ｅ８については、それぞれに含まれている文字列の種類毎に次元を生成し、文字列に対応する数値を設定する。具体的には、例えば、レコードＲ１〜Ｒｎに格納されている各ログの情報要素Ｅ３（ユーザ名）には、”ｒｏｏｔ”のみ設定されているので、情報要素Ｅ３に対応する１つの次元Ｄ２を生成して”ｒｏｏｔ”に対応する数値を設定する。同様に、情報要素Ｅ４（コンピュータ名）には、”ｄｂｓｖｒ”のみ設定されているので、情報要素Ｅ４に対応する１つの次元Ｄ３を生成して”ｄｂｓｖｒ”に対応する数値を設定する。
【００２７】
また、レコードＲ１〜Ｒｎに格納されている各ログの情報要素Ｅ５（ログ種別）には、”ｌｏｇｉｎ”、”ｅｘｅｃ”、”ｃｏｐｙ”、”ｌｏｇｏｕｔ”の４種類の文字列が設定されているので、情報要素Ｅ５に対応する４つの次元Ｄ４〜Ｄ７を生成してこれら４種類の文字列を４つの次元にそれぞれ割り当て、各文字列に対応する数値を設定する。”ｌｏｇｉｎ”、”ｅｘｅｃ”、”ｃｏｐｙ”、”ｌｏｇｏｕｔ”は、順にＤ４〜Ｄ７に対応する。同様に、情報要素Ｅ６（ステータス）には２種類の文字列（”ｏｋ”、”ｅｒｒ”）が設定されているので、２つの次元Ｄ８、Ｄ９を生成して各文字列に対応する数値を設定する。”ｏｋ”、”ｅｒｒ”は、順にＤ８、Ｄ９に対応する。情報要素Ｅ７（プロセス名）および情報要素Ｅ８（ファイル名）についても同様である。
【００２８】
本実施形態において、例えば、処理結果（ステータス）を示す情報要素Ｅ６など、重要な情報を含む情報要素に設定される文字列に対応する数値については、他の情報要素に設定される文字列に対応する数値より、大きい値を割り当てて重み付けを行う。一例として、情報要素Ｅ６に設定される”ｏｋ”および”ｅｒｒ”には、「１０」を設定し、他の情報要素Ｅ２〜Ｅ５、Ｅ７、Ｅ８に設定される文字列には、「１」を設定する。
【００２９】
このような重み付けは一例であって、ログに含まれる各情報要素はそれぞれが意味を持っており、システム管理者などがどの情報要素を重要視しているかによってログの特異性が変わってくることである。ひとつ例を挙げると、あるシステム管理者は、レコードとして記録されたログの内容がどのコンピュータで行われたかを重要視して、通常その処理が行われないコンピュータで処理が行われていることがインシデント（システム異常や不正侵入などの保安上の脅威となる事象）になると考えているとする。この場合、コンピュータ名が記録された情報要素が一致するかどうかは、他の情報要素が一致するかどうかよりも重要であり、当該情報要素に設定される文字列に特別な重み付けをすることで、インシデントを示すログを抽出しやすくできる。
【００３０】
また、文字列に対応する数値は、その文字列の出現頻度に応じて決定してもよい。出現頻度の高い文字列については、出現頻度の低い文字列より大きい値を割り当てる。例えば、出現回数が１００増加する毎に、文字列に割り当てる値を１増加させる。出現回数が、１〜１００回は「１」、１０１〜２００回は「２」、２０１〜３００回は「３」・・・などとする。
【００３１】
図３に、ログファイルＬＦのレコードＲ１〜Ｒ４に格納されているログについて生成した多次元ベクトルＶ１〜Ｖ４の一例を示す。図３（ａ）は重み付けなしのベクトルを示し、図３（ｂ）は情報要素Ｅ６について重み付けをしたベクトルを示す。
【００３２】
クラスタリング部１３は、ベクトル生成部１２により生成された複数の多次元ベクトルＶ１〜Ｖｎについて、ベクトル間距離に基づき１または複数の多次元ベクトルを含む複数のクラスタを形成（クラスタリング）する。
【００３３】
本実施形態において、クラスタリング部１３では、ボトムアップクラスタリングを採用し、ベクトル間距離（クラスタ間距離）としてコサイン距離（ベクトルの内積）を用いてクラスタを形成する。もちろん、これ以外にも、例えば、トップダウンクラスタリングを採用したり、ベクトル間距離として他の種類の距離を用いたりしてもよく、本発明の目的に反しない限り、クラスタを形成する方法は任意である。
【００３４】
クラスタリング部１３は、具体的には、（１）始めに、レコードＲ１〜Ｒｎに格納された各ログに対応する複数の多次元ベクトルＶ１〜Ｖｎの全てについて、１つの多次元ベクトルのみを含む複数のクラスタＣ１〜Ｃｎとする。（２）次に、これら複数のクラスタについて他のクラスタとの距離を算出し、最も距離が小さい（近い）２つのクラスタを１つのクラスタとしてまとめる（一方のクラスタに含まれるベクトルを他方のクラスタに含めて、一方のクラスタを削除する）。クラスタ間距離については、距離を算出する２つのクラスタのそれぞれに含まれる全ベクトルについてのコサイン距離の平均値（または、最小値や最大値などでもよい）を用いる。（３）そして、上記（２）の動作を繰り返すことにより、距離が近いクラスタ同士を順次ひとつにまとめていき、例えば、「クラスタ数が減少して所定の下限値に達した」、または、「最も小さいクラスタ間距離が所定の上限値に達した」など、所定の条件を満足するとクラスタリングを終了する。
【００３５】
上記（２）において、コサイン距離の算出に用いる式の一例を以下に示す。ただし、ＳｉｊはベクトルＶｉとベクトルＶｊとの間のコサイン距離であり、ｗｉｋ、ｗｊｋはベクトルのｋ次元に設定されている数値であり、ｋはベクトルにおける次元番号であり、Ｍはベクトルに含まれる次元数であり、ｉおよびｊは、コサイン距離を算出するベクトルに対応するログが格納されているレコード番号である。
【００３６】
【数１】
2018132787.tif 000003
【００３７】
ログ出力部１４は、クラスタリング部１３によって形成された複数のクラスタのうちの最小のもの（すなわち多次元ベクトルを最も少なく含むクラスタ）に含まれる多次元ベクトルに対応するログを出力する。具体的には、ログ出力部１４は、クラスタリング部１３によって形成された複数のクラスタで最終的に残ったもののそれぞれに含まれる多次元ベクトル数を確認し、最も少ない多次元ベクトルを含むクラスタを特定する。そして、ログ出力部１４は、特定したクラスタに含まれる多次元ベクトルに対応するログをログファイルＬＦから抽出し、抽出ログファイルＬＦ１としてまとめて、ログ記憶装置１００および表示装置２００に送信する。ログ記憶装置１００では、抽出ログファイルＬＦ１を受信すると記憶部に格納する。表示装置２００は、抽出ログファイルＬＦ１を受信するとそれに含まれるログを表示する。
【００３８】
次に、本実施形態のログ分析支援装置１における分析支援動作（ログ分析支援方法）の一例について、図４のフローチャートおよび図５のデータフロー図を参照して説明する。
【００３９】
各種コンピュータやＩｏＴ機器などのシステムから出力されたログはログ記憶装置１００に収集され、１または複数のログファイルＬＦとして格納されている。そして、ログ分析支援装置１は、例えば、分析対象としてあらかじめ指定されたシステムのログを含むログファイルＬＦ、または、ログ分析者によって指定されたシステムのログを含むログファイルＬＦを、ログ記憶装置１００から取得する（ステップＳ１１０、ログ取得工程）。
【００４０】
次に、ログ分析支援装置１は、ログファイルＬＦからレコードを読み出し、各レコードに格納されたログに含まれる情報要素を数値化することにより、多次元ベクトルを生成する（ステップＳ１２０、ベクトル生成工程）。このとき、ログ分析支援装置１は、各ログにおいて情報要素の重み付けを行い、情報要素Ｅ６に設定されるステータスを示す文字列について、他の情報要素に設定される文字列より大きい数値を割り当てる。また、ログ分析支援装置１は、出現頻度に応じた数値を文字列に割り当てる。
【００４１】
それから、ログ分析支援装置１は、生成した複数の多次元ベクトルについて、ベクトル間距離を算出するとともに、算出したベクトル間距離に基づいて複数のクラスタを形成する（ステップＳ１３０、クラスタリング工程）。
【００４２】
例えば、ログ分析支援装置１において、生成した複数の多次元ベクトルが４つ（ベクトルＶ１〜Ｖ４）であり、これら４つのベクトルＶ１〜Ｖ４を４つのクラスタＣ１〜Ｃ４とする。この時点で、以下に示すように、各クラスタＣ１〜Ｃ４には１つのベクトルＶ１〜Ｖ４のみ含まれている。
【００４３】
クラスタＣ１［ベクトルＶ１］
クラスタＣ２［ベクトルＶ２］
クラスタＣ３［ベクトルＶ３］
クラスタＣ４［ベクトルＶ４］
【００４４】
そして、ログ分析支援装置１は、それぞれのクラスタ間距離（すなわちベクトル間距離）を算出したところ、以下の関係になったものとする。
【００４５】
クラスタＣ１とクラスタＣ２との距離＝１０
クラスタＣ１とクラスタＣ３との距離＝５
クラスタＣ１とクラスタＣ４との距離＝３
クラスタＣ２とクラスタＣ３との距離＝１５
クラスタＣ２とクラスタＣ４との距離＝９
クラスタＣ３とクラスタＣ４との距離＝６
【００４６】
すると、ログ分析支援装置１は、距離が最も近い２つのクラスタ（ベクトル）を１つのクラスタにまとめる。ここでは、クラスタＣ１とクラスタＣ４との距離が最も近いのでこれらをまとめてクラスタＣ１とする。つまり、クラスタＣ４に含まれるベクトルＶ４をクラスタＣ１に追加して、クラスタＣ４を削除する。
【００４７】
クラスタＣ１［ベクトルＶ１、ベクトルＶ４］
クラスタＣ２［ベクトルＶ２］
クラスタＣ３［ベクトルＶ３］
【００４８】
そして、ログ分析支援装置１において、再度クラスタ間距離を算出したところ、以下の関係になったものとする。
【００４９】
クラスタＣ１とクラスタＣ２との距離＝９．５
クラスタＣ１とクラスタＣ３との距離＝５．５
クラスタＣ２とクラスタＣ３との距離＝１５
【００５０】
すると、ログ分析支援装置１は、再度距離が最も近い２つのクラスタを１つのクラスタにまとめる。ここでは、クラスタＣ１とクラスタＣ３との距離が最も近いのでこれらをまとめてクラスタＣ１とする。
【００５１】
クラスタＣ１［ベクトルＶ１、ベクトルＶ４、ベクトルＶ３］
クラスタＣ２［ベクトルＶ２］
【００５２】
便宜上、４つの多次元ベクトルＶ１〜Ｖ４を例に説明したが、実際には、ログ分析支援装置１は、４つよりはるかに多数の多次元ベクトルについてクラスタリングを行う。
【００５３】
ログ分析支援装置１は、クラスタリングを進めて、クラスタ数が減少して所定の下限値（例えば、３０）になると、またはクラスタ間距離が所定の上限値（例えば、１０）になると、クラスタリングを停止する。
【００５４】
そして、ログ分析支援装置１は、クラスタリングによって形成された複数のクラスタで最終的に残ったもののうちの最小のもの（すなわち多次元ベクトルを最も少なく含むクラスタ）に含まれる多次元ベクトルに対応するログを含む抽出ログファイルＬＦ１を、ログ記憶装置１００および表示装置２００に出力する（ステップＳ１４０、ログ出力工程）。ログ記憶装置１００では、抽出ログファイルＬＦ１を記憶部に格納して、各システムから参照可能とする。また、表示装置２００は、抽出ログファイルＬＦ１を表示する。このようにして、ログ分析支援装置１は、ログ分析者によるログ分析を支援する。
【００５５】
図６に、インシデントとなり得るログの一例を示す。図６のレコードＲ１、Ｒ２は、ユーザ名”ｔｅｓｔｕｓｅｒ”のアカウントによる、ファイル名”顧客名簿一覧．ｃｓｖ”へのアクセスの可能性が考えられる。図６のレコードＲ３は、ユーザ名”ｕｓｅｒＢ”のアカウントが攻撃対象になり、通常では考えられない時間帯にログイン操作が試みられた可能性が考えられる。ログ分析支援装置１は、このようなログについても、対象ユーザ名の使用頻度（出現頻度）やファイル名、日時などの情報要素の重み付けなどによりインシデントとして精度よく抽出できる。
【００５６】
以上より、本実施形態のログ分析支援装置１によれば、複数の情報要素を含むログを多次元ベクトル化するとともにベクトル間距離に基づいて複数のクラスタを形成（クラスタリング）し、最小のクラスタに含まれる多次元ベクトルに対応するログを出力する。このようにしたことから、システム異常の予兆や不正侵入などに関連するログは、システムにおける通常の出来事を示すログとは異なる情報要素を含む傾向が見られるところ、複数のログについてクラスタリングを行い、共通の情報要素を多く含むことによりベクトル距離が小さい（近い）ログ同士をクラスタとしてまとめることにより、残りのログ、つまり共通の情報要素が少ないログを抽出して出力することができる。そして、共通の情報要素が少ないログは、システムにおける通常の出来事を示すログとは異なる情報要素を含んでいる可能性が高く、このようなログを分析することでシステム異常の予兆や不正侵入などのインシデントを効果的に検出することができる。
【００５７】
また、ログ分析支援装置１は、情報要素として文字列が設定されているとき、当該情報要素について当該文字列の出現頻度に応じた数値とするように構成されている。このようすることで、出現頻度が高い文字列はシステムにおける通常の出来事に関連し、出現頻度が低い文字列はシステムにおいて通常起こりえない異常に関連する蓋然性が高いものと考えられるので、出現頻度に応じた数値とすることで、出現頻度が高い文字列を含むログ間のベクトル距離を小さくでき、分析精度をより高めることができる。
【００５８】
また、ログ分析支援装置１は、前記情報要素として日時情報が設定されているとき、当該情報要素について所定時刻からの経過時間を表す数値とするように構成されている。このようにすることで、時間的に近いログ同士は互いに関連する蓋然性が高いと考えられるところ、ログに含まれる日時情報について時間的に近いときは数値の差が小さく、時間的に遠いときは数値の差が大きくなるので、そのようなログ間のベクトル距離を小さくすることができ、分析精度をより高めることができる。
【００５９】
また、ログ分析支援装置１は、あらかじめ設定された重み付け情報を用いて前記複数の情報要素を数値化するように構成されている。このようにすることで、例えば、システムの実行プログラムやユーザアカウントが設定される情報要素について重みを大きくすることで、プログラムやユーザアカウントが異なった場合のログ間のベクトル距離を大きくすることができる。そのため、通常の処理において実行されることのないプログラムが実行されたときのログや、関係のない他部署のユーザアカウントでログインされたときのログを、効果的に抽出することができ、分析精度をより高めることができる。
【００６０】
したがって、ログ分析支援装置１によれば、人的負担を軽減しつつ大量のログを効果的に分析できる。
【００６１】
以上、図面を用いて本発明の実施形態を詳述してきたが、具体的な構成はこの実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。本発明の要旨を逸脱しない範囲における設計変更等があっても、それらは本発明に含まれるものである。
【符号の説明】
【００６２】
１…ログ分析支援装置
１１…ログ取得部
１２…ベクトル生成部
１３…クラスタリング部
１４…ログ出力部
１００…ログ記憶装置
２００…表示装置
Ｒ１〜Ｒｎ…レコード
Ｅ１〜Ｅｎ…情報要素
Ｖ１〜Ｖｎ…多次元ベクトル
Ｄ１〜Ｄｎ…次元
Ｓ１１０…ログ取得工程
Ｓ１２０…ベクトル生成工程
Ｓ１３０…クラスタリング工程
Ｓ１４０…ログ出力工程
ＬＦ…ログファイル
ＬＦ１…抽出ログファイル
【図１】
2018132787.tif 000004
【図２】
2018132787.tif 000005
【図３】
2018132787.tif 000006
【図４】
2018132787.tif 000007
【図５】
2018132787.tif 000008
【図６】
2018132787.tif 000009