(57)【要約】【課題】従来のような攻撃パターン情報に基づく検出パターンに依存せずに不正プログラムによる異常ログを検出する。【解決手段】異常ログ検出部１０１は、特徴量抽出部１１２によって抽出された、各セッションの特徴量に基づいて異常ログを抽出する。この異常ログ抽出においては教師無し学習を用いているので、従来のような攻撃パターン情報に基づく検出パターンに依存せずに不正プログラムによる異常ログを検出することが可能となる。さらに、誤検出ログに関しては教師あり学習を用いて除外するようにしているので、誤検出の可能性を小さくすることができる。【選択図】図２
2019082746.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信ログを所定の基準に従って通信ログ群に分割する分割部と、
分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出部と、
抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出部と
を備えることを特徴とする異常ログ検出装置。
【請求項２】
前記異常ログ検出部は、
各々の前記通信ログ群に圧縮処理を行い、
各々の前記通信ログ群と、当該通信ログ群に圧縮処理を行ったデータとの誤差を算出し、
算出した前記誤差に基づいて前記異常ログを抽出する
ことを特徴とする請求項１記載の異常ログ検出装置。
【請求項３】
前記特徴量抽出部は、分割された１の前記通信ログ群に含まれる各通信ログの関係において特定される特徴量を抽出する
ことを特徴とする請求項１又は２記載の異常ログ検出装置。
【請求項４】
前記特徴量の解析観点、前記特徴量の解析対象、前記特徴量の表記方法及び前記特徴量の次元数を含む情報を記憶する特徴量記憶部を備え、
前記特徴量抽出部は、前記特徴量記憶部に記憶されている情報に基づいて、複数次元の行列で表現される前記通信ログ群の特徴量を抽出し、
前記異常ログ検出部は、前記圧縮処理として、前記特徴量を次元削減する圧縮処理を行う
ことを特徴とする請求項２記載の異常ログ検出装置。
【請求項５】
前記異常ログ検出部は、
抽出した前記異常ログにおいて誤って抽出された誤検出ログに基づく学習を行い、
当該学習結果に基づいて前記異常ログを抽出する
ことを特徴とする請求項１〜３のいずれか１項に記載の異常ログ検出装置。
【請求項６】
通信ログの監視対象となる複数の通信装置のうち閾値以上の通信装置が通信を行った発信先がある場合には、当該発信先を含む通信ログを、異常ログの検出対象から除外する
ことを特徴とする請求項１〜４のいずれか１項に記載の異常ログ検出装置。
【請求項７】
前記分割部は、前記通信ログの発生日時に関する前記基準に従って前記分割を行う
ことを特徴とする請求項１〜５のいずれか１項に記載の異常ログ検出装置。
【請求項８】
前記分割部は、同一の発信元を含む通信ログのうち、連続する通信ログの発生日時の時間間隔が閾値未満となる１又は複数の通信ログを１の前記通信ログ群として分割する
ことを特徴とする請求項６に記載の異常ログ検出装置。
【請求項９】
複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、
分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、
抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップと
を備えることを特徴とする異常ログの検出方法。
【請求項１０】
コンピュータに、
複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、
分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、
抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップと  を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正プログラムによる異常ログを検出する技術に関する。
【背景技術】
【０００２】
いわゆるマルウェアと呼ばれるような不正プログラムを検出するため、例えば実ネットワークに接続可能な仮想ネットワーク環境上でマルウェアを実行してそのマルウェアで引き起こす挙動を把握する方法が知られている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】青木一史、岩村誠、伊藤光恭、「半透性仮想ネットワークを用いたボットの動的解析手法の提案」、電子情報通信学会２００８年総合大会、２００８年３月１８日
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この種の不正プログラムの感染を検出する技術として、プロキシサーバ装置等に蓄積された通信ログを不正プログラム感染時に固有の通信ログの検出パターンと照合する、というものがある。しかし、この検出パターンは、プログラミングに精通した専門家でなければ作成が難しいことに加え、その作成には例えば２週間といった長い時間がかかるという問題がある。また、この検出パターンは、不正プログラムによる攻撃に関する情報が例えばＷＥＢサイト等で公開されるとそれを入手して作成するものであるが、この攻撃情報の公開や入手にも一定の時間を要する。さらに、特定の組織を狙った不正プログラムに関しては、その攻撃情報が公開されず、その組織自身が不正プログラムによる攻撃を検出しなければならないという問題もある。
【０００５】
本発明は、このような事情を考慮してなされたものであり、従来のような検出パターンに依存せずに、不正プログラムによる異常ログを検出することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、複数の通信ログを所定の基準に従って通信ログ群に分割する分割部と、分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出部と、抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出部とを備えることを特徴とする異常ログ検出装置を提供する。
【０００７】
前記異常ログ検出部は、各々の前記通信ログ群に圧縮処理を行い、各々の前記通信ログ群と、当該通信ログ群に圧縮処理を行ったデータとの誤差を算出し、算出した前記誤差に基づいて前記異常ログを抽出するようにしてもよい。
【０００８】
前記特徴量抽出部は、分割された１の前記通信ログ群に含まれる各通信ログの関係において特定される特徴量を抽出するようにしてもよい。
【０００９】
前記特徴量の解析観点、前記特徴量の解析対象、前記特徴量の表記方法及び前記特徴量の次元数を含む情報を記憶する特徴量記憶部を備え、前記特徴量抽出部は、前記特徴量記憶部に記憶されている情報に基づいて、複数次元の行列で表現される前記通信ログ群の特徴量を抽出し、前記異常ログ検出部は、前記圧縮処理として、前記特徴量を次元削減する圧縮処理を行うようにしてもよい。
【００１０】
前記異常ログ検出部は、抽出した前記異常ログにおいて誤って抽出された誤検出ログに基づく学習を行い、当該学習結果に基づいて前記異常ログを抽出するようにしてもよい。
【００１１】
通信ログの監視対象となる複数の通信装置のうち閾値以上の通信装置が通信を行った発信先がある場合には、当該発信先を含む通信ログを、異常ログの検出対象から除外するようにしてもよい。
【００１２】
前記分割部は、前記通信ログの発生日時に関する前記基準に従って前記分割を行うようにしてもよい。
【００１３】
前記分割部は、同一の発信元を含む通信ログのうち、連続する通信ログの発生日時の時間間隔が閾値未満となる１又は複数の通信ログを１の前記通信ログ群として分割するようにしてもよい。
【００１４】
また、本発明は、複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップとを備えることを特徴とする異常ログの検出方法を提供する。
【００１５】
また、本発明は、コンピュータに、複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップとを実行させるためのプログラムを提供する。
【発明の効果】
【００１６】
本発明によれば、従来のような検出パターンに依存せずに、不正プログラムによる異常ログを検出することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係る異常ログ検出装置のハードウェア構成を示すブロック図である。
【図２】異常ログ検出装置の機能構成を示すブロック図である。
【図３】通信ログの一例を示す図である。
【図４】通信ログの分割例を示す図である。
【図５】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【図６】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【図７】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【図８】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【図９】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【図１０】異常ログを検出する処理の手順を示すフローチャートである。
【図１１】特徴量検出において注目する特徴量を例示する図である。
【図１２】或る通信ログから特徴量を検出する例を示す図である。
【図１３】変形例において異常ログを検出する処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１８】
［実施形態］
［構成］
図１は、本発明の一実施形態に係る異常ログ検出装置１０のハードウェア構成を示す図である。異常ログ検出装置１０はコンピュータによって実現される。異常ログ検出装置１０は、例えばインターネットのようなオープンネットワークと例えば社内ＬＡＮ（Local Area Network）のようなクローズドネットワークとの間においてデータ中継を行うゲートウェイ設備に接続されている。
【００１９】
図１に示すように、異常ログ検出装置１０は、制御部１１と、通信部１２と、記憶部１３とを少なくとも備えている。制御部１１は、ＣＰＵ（Central Processing Unit）などの演算装置と、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）などの記憶装置を備えている。ＲＯＭは、ＣＰＵによって利用されるプログラムや各種データを記憶している。通信部１２は、他のコンピュータ（通信装置）と通信を行うインタフェースである。記憶部１３は、例えばハードディスクなどの大容量の記憶手段であり、ＣＰＵによって利用されるプログラムや各種データを記憶している。ＣＰＵは、ＲＯＭや記憶部１３に記憶されたプログラムやデータをＲＡＭに展開し、そのプログラムに既述された手順に従って処理を行うことにより、図２に示す各種機能を実現する。
【００２０】
図２は、異常ログ検出装置１０の機能構成を示すブロック図である。異常ログ検出装置１０は、セッション分割部１１１、特徴量抽出部１１２、特徴量記憶部１１３、圧縮処理部１１４、誤差算出部１１５、異常判定部１１６、誤検出ログ記憶部１１８及び誤検出ログ除外部１１９という機能を備える。これらの機能はいずれも、制御部１１がプログラムに既述された手順に従って処理を行うことによって実現される。これらの機能は主に、いわゆる教師無し学習によって、膨大な通信ログから不正プログラム感染時の異常ログを検出しようとするものである。なお、図２に示した誤検出ログ抽出処理１１７は、異常ログ検出装置１０に必須の構成ではなく、例えばプログラミングに精通した専門家が行う処理（作業）を表現したものである。
【００２１】
クローズドネットワークに含まれるコンピュータ（通信装置）がオープンネットワークに含まれるコンピュータ（通信装置）との間で行った通信に関する通信ログは、例えばプロキシサーバ装置、ＤＮＳ（Domain Name System）サーバ装置、ファイヤウォールサーバ装置又はメールサーバ装置等のサーバ装置群に蓄積され、さらに、それらのサーバ装置群からログサーバ装置へと収集、蓄積される。
【００２２】
ここで、図３は通信ログの一例を示す図である。図３における１行分の情報は、１回の通信（アクセス）に対応する１の通信ログである、図３の例では、各通信ログに、「time」、「発信元ＩＰ」、「メソッド」、「url」、「ステータスコード」、「UserAgent」及び「送信データサイズ」が含まれている。ただし、通信に関するログであれば図３の例に限定されず、例えば「リファラ」等の通信ログとして取得可能なものは全て含まれ得る。
【００２３】
セッション分割部１１１は、ログサーバ装置２０から複数の通信ログを取得し、これらを所定の基準に従って、セッションと呼ばれる通信ログ群に分割する。なお、セッション分割部１１１は、ログサーバ装置２０から通信ログを取得するのではなく、ログサーバ装置２０を経由せずに、上述したプロキシサーバ装置等のサーバ装置群から直接、通信ログを取得してもよい。
【００２４】
ここでいうセッションとは、通信ログの発生日時に関する基準に従って分割された１つの単位である。このセッションは１又は複数の通信ログを含み、このセッションを単位として異常ログの検出がなされる。セッションの分割について、より具体的には、クローズドネットワークに含まれる同一の発信元コンピュータのアドレスを含む通信ログのうち、時間的に連続する通信ログの発生日時の時間間隔が閾値未満となる通信ログ群が１つのセッションに含まれる。例えば閾値を３０秒とした場合、前後３０秒という期間を空けずに行われた通信の通信ログ群は全て１つのセッションに含まれる。また、前後３０秒という期間を空けて行われた通信の通信ログは、たとえそれが１回の通信であっても、１つのセッションとして取り扱われる。１つ１つの通信ログを観察しただけでは不正プログラム感染時の異常ログとは推定できない場合も多いが、本実施形態のように、セッションという複数の通信ログを束ねた単位で観察したときには異常ログと推定できる可能性が高まる。
【００２５】
図４は通信ログの分割例を示す図である。ここでは、上記閾値を３０秒とした場合に図３に示す通信ログを分割した例を示している。図示しているように、Ｎｏ．１の通信ログは、次に発生したＮｏ．２の通信ログと３０秒以上の期間が空いているため、１つのセッションＳ１として分割されている。また、Ｎｏ．２〜Ｎｏ．７の通信ログは、同一の発信元ＩＰを含む通信ログであり、時間的に連続する通信ログの発生日時の時間間隔が３０秒以内であり、且つＮｏ．８の通信ログと３０秒以上の期間が空いている。このため、これらＮｏ．２〜Ｎｏ．７の通信ログは、１つのセッションＳ２として分割されている。同様に、Ｎｏ．８の通信ログは、前のＮｏ．７の通信ログと３０秒以上の期間が空いているため、１つのセッションＳ３として分割されている。
【００２６】
特徴量抽出部１１２は、分割された各々のセッションについて、予め決められた特徴量に関する情報に基づいて通信ログの特徴量を抽出する。ここでいう通信ログの特徴量とは、不正プログラムの検出において有用であることが既に確認されている既知の特徴量のほか、有用である可能性は高いが不正プログラムの検出時の処理負担等を考慮して今まで採用されていなかった特徴量や、有用であるか否かが不明である特徴量等を含む。
【００２７】
ここで、図５〜９は、特徴量記憶部１１３に記憶されている通信ログの特徴量に関する情報を例示した図である。ここで、異常ログ検出装置１０において異常ログ検出に利用される通信ログの特徴量の数を「次元数」と表現している。特徴量は、全ての特徴量の次元数を合計した次元数で表される。特徴量は次元数の行列で表現される。 特徴量記憶部１１３には、特徴量の識別子である「名称」、特徴量を３つの観点で種別に分類した「特徴種別」、特徴量の「解析観点」、特徴量の「解析対象」、特徴量の解析内容を説明する「解析に関する説明」、「特徴量の表記方法」、及び特徴量の「次元数」が対応付けられて記憶されている。特徴量の表記方法とは、特徴量を、０／１の値のみで表すのか又は非負整数値で表すのかを定めたものである。特徴量の次元数が複数の場合は、その特徴量について予め複数の項目が定められている。 例えば、Ｎｏ．「１７」の「ブラウザのバージョン」という特徴量の場合は、次元数が３０である。これは３０個のブラウザ名及びバージョンの組にそれぞれ対応する項目群、具体的には「BrowserA  ver50、BrowserA  ver51、BrowserB  ver8、BrowserB  ver9・・・、その他」といった３０個の項目群において、通信ログに該当するブラウザ名及びバージョンの項目には「１」という値が書き込まれ、それ以外のブラウザ名及びバージョンの項目には「０」という値が書き込まれることになる。 特徴量の「解析観点」「解析対象」「次元数」などの各項目は、利用者によって予め定義され、特徴量記憶部１１３に記憶される。特徴量抽出部１１２は、特徴量記憶部１１３に記憶されている情報に基づいて、それぞれの通信ログ群（セッション）の特徴量を抽出する。なお、特徴量は行列でなくても、他の次元を表す表記方法によって表現されてもよい。
【００２８】
図５において、例えばＮｏ．「１」の特徴量の名称は「direct_ip_ratio」である。ここでは、ユーザが発信先コンピュータとしてＩＰアドレスそのものを直接指定することは通常の通信においては稀であるという理由から、１のセッションに含まれる通信ログにおいて宛先がＩＰアドレスで直接指定されている通信ログの割合、というものが特徴量として設定されている。この特徴量は、分割された通信ログ群に相当するセッション単位で観察したときに特定される特徴量であるから、その特徴種別は「１のセッションから求まる特徴量」となっている。
【００２９】
これに対し、例えばＮｏ．「３８」の特徴量は、オープンネットワークにおける発信先コンピュータのＩＰアドレスおよびポートである。これは１回の通信のみを観察したときに特定可能な特徴量であるから、その特徴種別は「１回の通信から求まる特徴量」となっている。
【００３０】
また、例えばＮｏ．「５」の特徴量は、発信先コンピュータを指定するＵＲＬ（Uniform Resource  Locator）末尾のファイル拡張子である。これは通信の実体的な内容に相当するという観点から、その特徴種別は「１のセッションから求まる特徴量」であり且つ「通信の実体的内容における特徴量」となっている。なお、「通信の実体的内容における特徴量」とは、より具体的には、通信されるデータのサイズ又は文字列等による特徴量である。
【００３１】
図５〜９に例示した特徴量のうち、セッションにおける特徴量として有用性があると考えられるのは、例えばＮｏ．「１」「２」「３」のような、セッションにおいてＩＰアドレスを発信先とした通信に関する特徴量である（特にＮＯ．「１」のＩＰアドレス直接指定の割合）。これは、前述したように、通常の通信においてドメインを指定した通信が大半であるのに対し、不正プログラム感染時にはＩＰアドレスを発信先とした通信がよく観測されるためである。
【００３２】
また、セッションにおける特徴量として有用性があると考えられるものとして、例えばＮｏ．「７」「８」「９」のような、セッションにおいて発信先のポートを直接指定した通信に関する特徴量もある（特にＮｏ．「９」のポートが直接指定されている比率）。これも、不正プログラム感染量時には発信先のポートを直接指定した通信がよく観測されるためである。
【００３３】
また、セッションにおける特徴量として有用性があると考えられるものとして、例えばＮｏ．「１１」のような、セッションにおけるＵＲＬ中のパラメータの値（引数）の長さの平均に関する特徴量もある。これも、不正プログラム感染時には、パラメータが極端に短い通信が続くとか或いはその逆の傾向が観測されるためである。
【００３４】
また、セッションにおける特徴量として有用性があると考えられるものとして、例えばＮｏ．「２２」「２３」「２４」のような、セッションにおける特定メソッド（特にＰＯＳＴ）の出現に関する特徴量もある。これは不正プログラム感染時には、ＰＯＳＴで情報を外部（クローズドネットワークからオープンネットワーク）に繰り返しかつ多数回送信することが観測されるためである。
【００３５】
図２の説明に戻る。圧縮処理部１１４、誤差算出部１１５、異常判定部１１６、誤検出ログ記憶部１１８、誤検出ログ除外部１１９によって、異常ログ検出部１０１が構成されている。この異常ログ検出部１０１は、特徴量抽出部１１２によって抽出された特徴量に基づいて、他の通信ログ群（セッション）と特徴量が異なる通信ログ群（セッション）を異常ログとして検出する機能である。より具体的に説明すると、特徴量抽出部１１２によって各通信ログ群（セッション）の特徴量が抽出されると、圧縮処理部１１４は、抽出した各通信ログ群（セッション）の特徴量に対して次元削減等の圧縮処理を行う。誤差算出部１１５は、各通信ログ群（セッション）について、圧縮処理前の特徴量と圧縮処理後の特徴量との間の誤差を算出する。Ｄ次元の特徴量を表記したベクトルＸをＤ’次元のベクトルＸ’に次元削減する場合において（Ｄ＞Ｄ’）、その変換行列をＡとすると、Ｘ’＝Ａ・Ｘという数式で表されるが、ここでいう誤差とは、ベクトルＸ’とベクトルＸとの間の距離に相当する。このような圧縮処理及び誤差算出処理が、分割された通信ログ群（セッション）のそれぞれについて行われることで、各々の通信ログ群（セッション）についての特徴量、圧縮処理後の特徴量及びこれらの間の誤差が求められることになる。異常判定部１１６は、各々の通信ログ群（セッション）について求められた誤差を参照し、その誤差が閾値以上となる通信ログ群（セッション）を第１異常ログとして出力する。異常判定部１１６で使用する閾値は予め決められていてもよいし、各通信ログ群（セッション）の誤差に基づいて下限５％を閾値とするなど、動的に決定されてもよい。
【００３６】
この第１異常ログには、正常の通信であるにもかかわらず不正プログラムの感染によるものであると誤って検出されたものが含まれている可能性を否定できない。そこで、プログラミングの専門家等による第１異常ログから誤検出ログを抽出する作業を経て（誤検出ログ抽出処理１１７）、誤検出であるとされた第１異常ログは、誤検出ログ記憶部１１８に記憶される。誤検出ログ除外部１１９は、誤検出ログ記憶部１１８に記憶された誤検出ログに基づいて、いわゆる教師あり学習を行う。そして、誤検出ログ除外部１１９は、その学習結果に従って、第１異常ログから誤検出ログを含む通信ログ群（セッション）と推定されるものを除外し、第１異常ログから誤検出ログを除外した通信ログ群（セッション）を第２異常ログとして出力する。
【００３７】
［動作］
図１０に示したフローチャートを参照して、異常ログ検出装置１０の動作の概要を説明する。図１０において、まず、セッション分割部１１１は、ログサーバ装置２０から複数の通信ログを取得し（ステップＳ１１）、これらを前述した通信ログの発生日時に関する基準に従って、セッションに分割する（ステップＳ１２）。次に、特徴量抽出部１１２は、特徴量記憶部１１３に予め記憶されている内容に従い、分割された各々のセッションにおける通信ログの特徴量を抽出する（ステップＳ１３）。
【００３８】
ここで、図１１に示した特徴量に関する情報に注目して、或る通信ログ群（セッション）から特徴量を検出した例を、図１２を用いて説明する。図１１に示した特徴量の次元数は「８」である。図１２に示した５つの通信ログのうち、Ｎｏ．２の通信ログは、図１１のＮｏ．１「direct_ip_ratio」という特徴量、つまりＩＰアドレスの直打ちに相当する。この特徴量は、セッション中に含まれる通信ログ群における割合（次元数１，非負整数値）として表記されるから（図５参照）、１／５＝「０．２」という表記となる。また、Ｎｏ．２「direct_ip_flag」という特徴量、つまりＩＰアドレスの有無は、「０／１」において有りを意味する「１」という表記となる。
【００３９】
図１２に示した５つの通信ログの送信データサイズの平均値（Ｎｏ．３「send_size_mean」の特徴量）は、（１０００＋１０００００＋１０００００＋１０００００＋１０００）／５＝６００４０となる。これを、次元数１として非負整数値で表記すると、「６００４０」となる。
【００４０】
また、図１２に示した５つの通信ログにおいて用いられるメソッドには、GETとCONNECTが含まれている。Ｎｏ．４「method_flag」という特徴量においては、メソッドの表記順序が予め決められており、ここでは「GET、CONNECT、POST、PUT、HEAD」となっている。このため、メソッドの出現有無という特徴量は、「１，１，０，０，０」という行列形式の表記となる。このように図１１の特徴量に関する情報に基づいて抽出された特徴量は、８次元の行列「０．２，１，６００４０，１，１，０，０，０」 となる。
【００４１】
圧縮処理部１１４は、分割された通信ログ群のそれぞれに対して、前述の次元削減等の圧縮処理を行い、通信ログ群と、それに対応する圧縮後の特徴量とを関連付ける（ステップＳ１４）。誤差算出部１１５は、分割された通信ログ群の特徴量と、当該通信ログ群の圧縮後の特徴量との間の誤差を通信ログ群のそれぞれについて算出し、各通信ログ群と、それに対応する圧縮後の特徴量と、算出した誤差とを関連付ける（ステップＳ１５）。異常判定部１１６は、算出されたそれぞれの誤差に基づいて予め定めた閾値を超える誤差を抽出し、その誤差に関連づけられている通信ログ群を第１異常ログとして出力する（ステップＳ１６）。そして、誤検出ログ除外部１１９は、第１異常ログから誤検出ログと推定されるものを除外し、第２異常ログとして出力する（ステップＳ１７）。
【００４２】
［効果］
本実施形態によれば、既知の不正プログラムによる攻撃情報に依存しない教師無し学習を用いることで、膨大な通信ログの中から不正プログラムによる異常ログを検出することが可能となる。さらに、誤検出ログに関しては、教師あり学習を用いて除外するようにしているので、正常な通信ログを異常ログとして誤って検出する可能性を小さくすることができる。これらの結果、不正プログラムの検出に関わる人手や時間を大幅に削減することが可能となる。
【００４３】
さらに、本発明者らの実験によれば、従来の検出パターンを用いた仕組みでは検出が困難であった、いわゆるＣ＆Ｃ通信（マルウェアに感染してボットと化したコンピュータ群に指令を送る不正制御の下で行われる通信）を検出できることが分かった。
【００４４】
［変形例］
上述した実施形態は次のような変形が可能である。また、以下の変形例を互いに組み合わせて実施してもよい。
［変形例１］
実施形態で説明したような圧縮処理前後の誤差算出に基づく異常ログ検出は、必ずしも必須ではない。例えば圧縮処理部１１４が、特徴量抽出部１１２によって抽出された各通信ログ群（セッション）の特徴量に対して次元削減等の圧縮処理を行い、実施形態に係る異常判定部１１６に代わる本変形例の外れ値抽出部が、その圧縮後の特徴量に基づいて例えばＬＯＦ（Local Outlier Factor）処理を行って、外れ値に相当する特徴量に対応する通信ログ群（セッション）を異常ログとして出力するようにしてもよい。ただし、実施形態で説明したような圧縮処理前後の誤差算出に基づく異常ログ検出は、上記のＬＯＦ処理を行う場合よりも、異常ログの検出率が高く、また、処理負荷も小さいという利点がある。
【００４５】
図１３は、この変形例に係る情報処理装置の処理手順を示すフローチャートである。図１３において図１０と共通の処理には同一符号を付している。この変形例に係る情報処理装置は、ハードウェアとしては実施形態と同一であるが、機能的には、異常判定部１１６に代わる外れ値抽出部を備えている。図１３において、まず、セッション分割部１１１は、ログサーバ装置２０から複数の通信ログを取得し（ステップＳ１１）、これらを通信ログ群（セッション）に分割する（ステップＳ１２）。次に、特徴量抽出部１１２は、特徴量記憶部１１３に予め記憶されている内容に従い、分割された各々の通信ログ群における通信ログの特徴量を抽出する（ステップＳ２１）。圧縮処理部１１４は、特徴量抽出部１１２によって抽出された複数次元の行列で表現される特徴量について次元削減等の圧縮処理を行う（ステップＳ１４）。外れ値抽出部は、圧縮後の特徴量についてＬＯＦを用いた解析を行って外れ値を抽出し、その外れ値に相当する通信ログ群を第１異常ログとして出力する（ステップＳ２２）。そして、誤検出ログ除外部１１９は、第１異常ログから誤検出ログと推定されるものを除外し、第２異常ログとして出力する（ステップＳ１７）。
【００４６】
なお、実施形態及び上記変形例で説明したような第１異常ログから誤検出ログを除外して第２異常ログを出力する処理は必須ではなく、第１異常ログを出力するだけでもよい。ただし、本発明者らの実験によれば、第１異常ログから誤検出ログを除外して第２異常ログを出力するほうが、第１異常ログを出力する場合と比べて、誤検出ログを約１０％低減できることが分かっている。
【００４７】
以上のとおり、要するに、異常ログ検出部１０１は、各通信ログ群（セッション）ごとに抽出した特徴量に基づいて異常ログを抽出すればよい。
【００４８】
［変形例２］
異常ログ検出部１０１は、通信ログの監視対象となる複数のコンピュータ（通信装置）のうち閾値以上のコンピュータ（通信装置）が通信を行った発信先がある場合には、当該発信先のアドレスを含む通信ログを、異常ログの検出対象から除外するようにしてもよい。これは、例えば監視対象となるクローズドネットワークに含まれる、閾値（例えば５台）以上のコンピュータ（通信装置）が通信を行った発信先のドメインを含む通信ログは、不正プログラム感染による通信である可能性が小さい、という考え方によるものである。このような通信ログを除外するタイミングは、処理負荷低減の観点から、実施形態で説明したセッション分割の前であることが望ましいが、これに限らず、例えばセッション分割と特徴量抽出の処理の間であってもよいし、特徴量抽出と異常ログ検出の処理の間であってもよい。
【００４９】
［変形例３］
図３〜９に図示した通信ログの特徴量は一例にすぎず、図示した内容に限定されない。
【００５０】
［変形例４］
本発明は、異常ログ検出装置だけでなく、異常ログ検出装置が行う検出方法や、コンピュータを異常ログ検出装置として機能させるためのプログラムといった形態でも実施が可能である。このプログラムは、光ディスク等の記録媒体に記録した形態でコンピュータに提供されたり、インターネット等のネットワークを介してコンピュータに提供されたりしてもよい。
【符号の説明】
【００５１】
１０・・・異常ログ検出装置、１１・・・制御部、１２・・・通信部、１３・・・記憶部、１０１・・・異常ログ検出部、１１１・・・セッション分割部、１１２・・・特徴量抽出部、１１３・・・特徴量記憶部、１１４・・・圧縮処理部、１１５・・・誤差算出部、１１６・・・異常判定部、１１７・・・誤検出ログ抽出処理、１１８・・・誤検出ログ記憶部、１１９・・・誤検出ログ除外部、２０・・・ログサーバ装置。
【図１】
2019082746.tif 000003
【図２】
2019082746.tif 000004
【図３】
2019082746.tif 000005
【図４】
2019082746.tif 000006
【図５】
2019082746.tif 000007
【図６】
2019082746.tif 000008
【図７】
2019082746.tif 000009
【図８】
2019082746.tif 000010
【図９】
2019082746.tif 000011
【図１０】
2019082746.tif 000012
【図１１】
2019082746.tif 000013
【図１２】
2019082746.tif 000014
【図１３】
2019082746.tif 000015