(57)【要約】      （修正有）【課題】ログ情報に残る異常な振る舞いの異常度判定において、異常判定器が利用する学習データの生成に、正解データを含めるか否かを適切に決定できる異常判定システムを提供する。【解決手段】異常判定システム１は、１又は２以上の異常指標出力器１０−１〜ｎと、異常判定学習器２０とを備える。異常指標出力器は、ログ情報から測定される態様に関する異常指標を出力する。異常判定学習器は、取得した異常指標に対して、学習データに基づき異常度を判定する異常度判定部と、判定した異常度に対してフィードバックされた正解データを管理するフィードバック結果保持部と、フィードバック結果保持部で管理する正解データを用いて、学習データを更新する学習データ生成部を備える。学習データ生成部は、フィードバック結果保持部で保持する正解データの内容及び異常度判定された指標の内容を基に、正解データを学習データの生成に利用するか否かを決定する。【選択図】図１
2020170350.tif 000002
【特許請求の範囲】
【請求項１】
ログ情報から測定される態様に関する指標を取得する異常指標入力手段と、
取得した前記指標に対して、学習データに基づき異常度を判定する異常度判定手段と、
判定した前記異常度に対してフィードバックされた正解データを管理するフィードバック結果保持手段と、
前記フィードバック結果保持手段で管理する前記正解データを用いて、前記学習データを更新する学習データ生成手段とを備え、
前記学習データ生成手段は、前記フィードバック結果保持手段で保持する前記正解データの内容、及び、異常度判定された前記指標の内容を基に、前記正解データを前記学習データの生成に利用するか否かを決定する
ことを特徴とする異常判定学習器。
【請求項２】
前記学習データ生成手段は、前記正解データの時刻情報を参照し、所定の時刻よりも古い前記正解データを前記学習データの生成に利用しないことを特徴とする請求項１に記載の異常判定学習器。
【請求項３】
前記学習データ生成手段は、前記正解データの時刻情報を参照し、現時刻との乖離度合に応じて前記正解データとしての重みを変更することを特徴とする請求項１に記載の異常判定学習器。
【請求項４】
前記学習データ生成手段は、前記正解データについて正解の種類ごとに異常判定している前記指標の内容を参照し、同一指標の総数に応じて前記正解データの重みを変更することを特徴とする請求項１に記載の異常判定学習器。
【請求項５】
コンピュータを、
ログ情報から測定される態様に関する指標を取得する異常指標入力手段と、
取得した前記指標に対して、学習データに基づき異常度を判定する異常度判定手段と、
判定した前記異常度に対してフィードバックされた正解データを管理するフィードバック結果保持手段と、
前記フィードバック結果保持手段で管理する前記正解データを用いて、前記学習データを更新する学習データ生成手段として機能させ、
前記学習データ生成手段は、前記フィードバック結果保持手段で保持する前記正解データの内容、及び、異常度判定された前記指標の内容を基に、前記正解データを前記学習データの生成に利用するか否かを決定する
ことを特徴とする異常判定学習プログラム。
【請求項６】
異常判定学習器に使用する異常判定学習方法であって、
異常指標入力手段、異常度判定手段、フィードバック結果保持手段、及び学習データ生成手段を備え、
前記異常指標入力手段は、ログ情報から測定される態様に関する指標を取得し、
前記異常度判定手段は、取得した前記指標に対して、学習データに基づき異常度を判定し、
前記フィードバック結果保持手段は、判定した前記異常度に対してフィードバックされた正解データを管理し、
前記学習データ生成手段は、前記フィードバック結果保持手段で管理する前記正解データを用いて、前記学習データを更新し、
前記学習データ生成手段は、前記フィードバック結果保持手段で保持する前記正解データの内容、及び、異常度判定された前記指標の内容を基に、前記正解データを前記学習データの生成に利用するか否かを決定する
ことを特徴とする異常判定学習方法。
【請求項７】
１又は２以上の異常指標出力器と、異常判定学習器とを備える異常判定システムであって、
前記異常判定学習器として、請求項１〜４のいずれかに記載の異常判定学習器を適用したことを特徴とする異常判定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常判定学習器、異常判定学習プログラム、異常判定学習方法、及び異常判定システムに関し、例えば、サイバー攻撃監視のための異常検知システムに適用し得る。
【背景技術】
【０００２】
従来、サイバー攻撃監視の目的で、プロキシサーバなどの社内装置に記録されるログ情報を調査し、マルウェアのダウンロードや攻撃者サーバとの通信といった悪性通信を検出する取り組みが実施されている。
【０００３】
一般にアクセス履歴などのログ情報は膨大であり、そのほとんどが悪性でない通信によるログ情報であることが多い。そのような前提で、すべてのログ情報の中から悪性通信を総当り的に見つけ出すというアプローチは、監視工数が大きく効率的ではない。
【０００４】
近年、悪性通信の検知に教師なし学習を利用してログ情報を分析し、定常状態からの逸脱を検知する取り組みが盛んに行われている。本アプローチでは、攻撃の情報を用いた複雑なルールを構築する必要がない代わりに、誤検知及び検出漏れ又は検知ミスが多くなるという問題も考えられる。
【０００５】
一方、既知の攻撃の情報を用いることで、複雑ではあるが感度の高いルールを構築し、誤検知及び検知漏れ数の軽減を目指す取り組みもある。例えば、特許文献１には、将来のネットワーク攻撃を検知及び予測するために、教師あり学習により判定ルールを自動的に学習するシステムが開示されている。特許文献１に記載のシステムのルールは、新たな攻撃についてのフィードバック信号を分析することにより定期的に更新され、新たな攻撃に自動的に追従することが想定されている。このように、システムに対して教師データをフィードバックすることで自動学習させ、検知精度を高めるという概念は、サイバー攻撃による悪性通信の検知にも適用し得るものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−０６０７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、サイバー攻撃による悪性通信の検知に、「正常」、「異常」といった教師データをフィードバックする場合には、対象とする指標の教師データとしての有効性を考慮しなければならない。例えば、正常時の教師データとして接続先ＦＱＤＮ（Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ）に関連する指標をフィードバックする場合、その後、その接続先サイトが改ざんされ、マルウェアを仕込まれるようなケースを考慮しなければならない。
【０００８】
また逆に、正規サイトに埋め込まれたマルウェアを検知し、異常時の教師データとして接続先ＦＱＤＮに関連する指標をフィードバックする場合、その後、その接続先サイトからマルウェアが除去され、正常状態に復帰するようなケースを考慮しなければならない。
【０００９】
このように「正常」、「異常」といった教師データをフィードバックすることで検知精度を向上させるシステムにおいては、時間経過により変化する教師データ自体の有効性を考慮する必要があった。
【００１０】
そのため、ログ情報に残る異常な振る舞いの異常度判定において、異常判定器が利用する学習データの生成に、前記教師データ（以下、「正解データ」と呼ぶ）を含めるか否かを適切に決定できる異常判定学習器、異常判定学習プログラム、異常判定学習方法、及び異常判定システムが望まれている。
【課題を解決するための手段】
【００１１】
第１の本発明の異常判定学習器は、（１）ログ情報から測定される態様に関する指標を取得する異常指標入力手段と、（２）取得した前記指標に対して、学習データに基づき異常度を判定する異常度判定手段と、（３）判定した前記異常度に対してフィードバックされた正解データを管理するフィードバック結果保持手段と、（４）前記フィードバック結果保持手段で管理する前記正解データを用いて、前記学習データを更新する学習データ生成手段とを備え、（５）前記学習データ生成手段は、前記フィードバック結果保持手段で保持する前記正解データの内容、及び、異常度判定された前記指標の内容を基に、前記正解データを前記学習データの生成に利用するか否かを決定することを特徴とする。
【００１２】
第２の本発明の異常判定学習プログラムは、コンピュータを、（１）ログ情報から測定される態様に関する指標を取得する異常指標入力手段と、（２）取得した前記指標に対して、学習データに基づき異常度を判定する異常度判定手段と、（３）判定した前記異常度に対してフィードバックされた正解データを管理するフィードバック結果保持手段と、（４）前記フィードバック結果保持手段で管理する前記正解データを用いて、前記学習データを更新する学習データ生成手段として機能させ、（５）前記学習データ生成手段は、前記フィードバック結果保持手段で保持する前記正解データの内容、及び、異常度判定された前記指標の内容を基に、前記正解データを前記学習データの生成に利用するか否かを決定することを特徴とする。
【００１３】
第３の本発明の異常判定学習方法は、異常判定学習器に使用する異常判定学習方法であって、異常指標入力手段、異常度判定手段、フィードバック結果保持手段、及び学習データ生成手段を備え、（１）前記異常指標入力手段は、ログ情報から測定される態様に関する指標を取得し、（２）前記異常度判定手段は、取得した前記指標に対して、学習データに基づき異常度を判定し、（３）前記フィードバック結果保持手段は、判定した前記異常度に対してフィードバックされた正解データを管理し、（４）前記学習データ生成手段は、前記フィードバック結果保持手段で管理する前記正解データを用いて、前記学習データを更新し、（５）前記学習データ生成手段は、前記フィードバック結果保持手段で保持する前記正解データの内容、及び、異常度判定された前記指標の内容を基に、前記正解データを前記学習データの生成に利用するか否かを決定することを特徴とする。
【００１４】
第４の本発明の異常判定システムは、１又は２以上の異常指標出力器と、異常判定学習器とを備える異常判定システムであって、前記異常判定学習器として、第１の本発明の異常判定学習器を適用したことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ログ情報に残る異常な振る舞いの異常度判定において、異常判定器が利用する学習データの生成に、正解データを含めるか否かを適切に決定できる。
【図面の簡単な説明】
【００１６】
【図１】実施形態に係る異常判定システムの構成を示すブロック図である。
【図２】実施形態に係る異常指標出力器の内部構成を示すブロック図である。
【図３】実施形態に係る異常判定学習器の内部構成を示すブロック図である。
【図４】実施形態に係る異常判定システムの動作の一例を示す説明図である。
【発明を実施するための形態】
【００１７】
（Ａ）主たる実施形態
以下、本発明に係る異常判定学習器、異常判定学習プログラム、異常判定学習方法、及び異常判定システムの主たる実施形態を、図面を参照しながら詳述する。
【００１８】
（Ａ−１）実施形態の構成
（Ａ−１−１）全体構成
図１は、実施形態に係る異常判定システムの構成を示すブロック図である。
【００１９】
図１で示す異常判定システム１は、１又は２以上の異常指標出力器１０と、異常判定学習器２０とを備える。異常判定システム１は、種々様々な装置に搭載することができるが、例えば、社内ネットワークと社外ネットワークの境界に設置される装置（ファイアウォール）、プロキシサーバ等に搭載しても良いし、また社内ネットワーク上のログを一元管理する装置等に搭載しても良い。
【００２０】
（Ａ−１−２）異常指標出力器１０の詳細な構成
図２は、実施形態に係る異常指標出力器の内部構成を示すブロック図である。
【００２１】
図２において、異常指標出力器１０は、ログ情報入力部１１及び異常指標出力部１２を有する。実施施形態に係る異常指標出力器は、図２に示す各構成部を搭載した専用のＩＣチップ等のハードウェアとして構成しても良いし、又は、ＣＰＵと、ＣＰＵが実行するプログラムを中心としてソフトウェア的に構成して良いが、機能的には、図２で表すことができる。
【００２２】
ログ情報入力部１１は、様々な種別のログ情報を取得し、異常指標出力部１２へ与えるものである。ログ情報としては特に限定しないが、例えば、組織内外の通信を中継するプロキシサーバのログ（以下、「プロキシログ」と呼ぶ）であったり、ファイアウォールのログであったり、不正侵入検知システム（ＩＤＳ）のログであったり、トラフィックログ等である。例えば、プロキシログを例に説明すると、プロキシログには、時刻、送信元ＩＰアドレス、ユーザＩＤ、接続先ＦＱＤＮ、パス、クエリ、ＨＴＴＰステータス、ダウンロードサイズ、アップロードサイズ、ユーザーエージェント、リファラー情報等の情報が含まれていても良い。
【００２３】
異常指標出力部１２は、ログ情報入力部１１から与えられたログ情報を分析し、異常と思われる指標を検知するものである。指標とは例えば、接続先ＦＱＤＮであったり、送信元ＩＰアドレスであったり、ファイル名（パス）であったり、利用するユーザーエージェントであったりと、様々な形が考えられるが、本実施形態では特に限定しない。
【００２４】
また、異常の検知方法についても特に限定しない。例えば、教師なし学習で通常とは異なる傾向の指標を検知しても良いし、ルールベースでダウンロードサイズやアップロードサイズが閾値を超えたことを検知しても良いし、統計ベースで特定の送信元ＩＰアドレスから発生する通信ログが異常に多いことを検知しても良い。
【００２５】
さらに、異常指標出力部１２は、複数の指標の組み合わせで異常と思われる指標を検知しても良い。例えば、パスがｅｘｅファイルであり、ダウンロードサイズが異常に大きいことで、そのダウンロード元となるＩＰアドレスやユーザＩＤを異常な指標として検知しても良い。
【００２６】
また、異常指標出力部１２は、１行のログに対して異常な指標を検知しても良いし、任意期間のログ情報を対象として分析した結果として異常な指標を検知しても良い。
【００２７】
異常指標出力部１２は、異常と検知した指標、及び当該指標を含むログ情報を異常判定学習器２０へ与える。ここで、異常指標出力部１２は、異常度の大きさに応じて前記指標にスコア付けして与えても良い。
【００２８】
（Ａ−１−３）異常判定学習器２０の詳細な構成
図３は、実施形態に係る異常判定学習器の内部構成を示すブロック図である。
【００２９】
図３において、異常判定学習器２０は、異常指標入力部２１、異常度判定部２２、フィードバック結果保持部２３、及び学習データ生成部２４を有する。実施施形態に係る異常判定学習器は、図３に示す各構成部を搭載した専用のＩＣチップ等のハードウェアとして構成しても良いし、又は、ＣＰＵと、ＣＰＵが実行するプログラムを中心としてソフトウェア的に構成して良いが、機能的には、図３で表すことができる。
【００３０】
異常指標入力部２１は、ｎ個の異常指標出力器１０から異常と検知した指標、及び当該指標を含むログ情報を取得するものである。異常指標入力部２１は取得した指標を異常度判定部２２へ与える。
【００３１】
異常度判定部２２は、異常指標入力部２１より与えられた様々な指標と、後述する学習データ生成部２４より与えられた学習データを基に、任意の指標に対する総合的な異常度を判定するものである。ここで、異常度判定部２２は、異常度の大きさに応じて前記指標にスコア付けして出力したり、異常度判定したログ情報を出力したりしても良い。
【００３２】
異常度判定部２２は、学習データに基づき異常度を出力する教師あり異常度判定エンジンを有する。例えば、決定木、ランダムフォレスト、ロジスティック回帰、サポートベクターマシーン等、様々な手法を適用し得るが、これらの例に限定されるものではない。
【００３３】
また、異常度判定部２２は、後述する学習データ生成部２４より、学習データを与えられることにより、異常度判定の基準となる学習を再実施する。
【００３４】
フィードバック結果保持部２３は、任意の指標に対して、それが異常か正常かを正解データとして保持するものである。また、異常、正常以外に、正常ではないが異常とも言いきれないといった指標をグレー判定として含んでも良い。
【００３５】
正解データは事前に設定されても良い。例えば、指標が接続先ＦＱＤＮの場合には、世の中で利用されているホワイトリストやブラックリストを参照することにより取得し、それぞれ正常、異常と異常度判定した結果として保持しても良い。また、正解データは、異常度判定部２２が判定した結果に対して詳細調査された結果（異常、正常、グレー等）をフィードバックされることで与えられても良い。例えば、異常度判定部２２としては、総合的に異常と判定した指標に対して、人が詳細調査し、その結果、正常（誤検知）と判断する場合には、当該指標が正常であることを正解データとじてフィードバックしても良い。
【００３６】
フィードバック結果保持部２３は、保持する正解データを学習データ生成部２４へ与える。
【００３７】
学習データ生成部２４は、フィードバック結果保持部２３より与えられた正解データから、学習データを生成し、生成した学習データを異常度判定部２２へ与えるものである。学習データ生成部２４は、正解データの内容及び異常度判定された指標の内容を基に、当該正解データを学習データの生成に利用するか否か、またどのように利用するかを決定する。
【００３８】
例えば、学習データ生成部２４は、正解データの時刻情報を参照し、任意の時刻よりも古い正解データを学習データの生成に利用しないとしても良い。また、学習データ生成部２４は、現時刻との乖離度合に応じて、正解データとしての重みを変更するようにしても良い。そして、学習データ生成部２４は、同一の指標、同一の正解を持つ正解データの総数に応じて重みを変更するようにしても良い。
【００３９】
また、学習データ生成部２４は、異常度判定された指標の種類に応じて、学習データの生成に利用するか否かの基準を変更しても良い。例えば、正解データの中で接続先ＦＱＤＮが正常と判定されている場合にのみ、上述のように時刻情報を参照し、生成に利用するか否か、またその重みを決定しても良い。また、学習データ生成部２４は、同一の指標について、複数の異なる判定がされている場合には、最新の判定のみを学習データの生成に利用するようにしても良い。ここで利用する指標には、接続先ＵＲＬ、パス、クエリ等も含んだＵＲＬ、ダウンロード／アップロードサイズ、ユーザーエージェント、リファラー情報等、様々なものがあるが、特に限定しない。また、正解データとしての重みを変更する方法も特に限定しない。例えば、任意の正解データの重みを増やす場合には、当該正解データの複製を大量に用意する等の方法が考えられる。
【００４０】
（Ａ−２）実施形態の動作
次に、以上のような構成を有する実施形態に係る異常判定システム１の動作を、図面を参照しながら説明する。
【００４１】
図４は、実施形態に係る異常判定システムの動作の一例を示す説明図である。図４の各部の構成は、先述の図１と同様であるが、各部において実行される各動作（異常指標の出力、総合異常度判定、学習データの更新）を対応付けて示している。
【００４２】
図４において、異常判定システム１の処理は、大別すると、ログ情報を取得し、異常指標を出力するステップＳ１０１の処理（異常指標の出力）と、異常指標から異常度を判定するステップＳ１０２の処理（総合異常度判定）と、学習データを更新するステップＳ１０３の処理（学習データの更新）に大別できる。以下では各処理の詳細について述べる。
【００４３】
［Ｓ１０１］異常指標の出力
各異常指標出力器１０のログ情報入力部１１にログ情報が与えられる。例えば、１日ごとや１時間ごとにバッチ的に与えられても良いし、１行のログごとに実時間で与えられても良い。
【００４４】
各異常指標出力器１０の異常指標出力部１２において、異常と思われる指標が検知され、検知された指標および当該指標を含むログ情報が異常判定学習器２０に出力される。異常と思われる指標の検知には、例えば、システムで設定された時間区間毎にログ情報に含まれる指標を集計し、統計的に有意に大きい指標（正規分布を仮定した際の平均値から３σを越えて大きいもの）や、逆に稀な指標（正規分布を仮定した際の平均値から３σを越えて小さいもの）を計算により求め、得られた指標を出力するものが挙げられる。
【００４５】
［Ｓ１０２］総合異常度判定
異常判定学習器２０の異常指標入力部２１に、各異常指標出力器１０から異常と検知した指標および当該指標を含むログ情報が与えられる。
【００４６】
異常判定学習器２０の異常度判定部２２において、事前に学習データを用いて学習された異常判定エンジンを用いて、任意の指標に対する総合的な異常度を判定し、異常判定結果として出力する。例えば、正解の内容（異常、正常、等）とログ情報と指標のセットを正解データとしてフィードバック結果保持部２３で保持しており、特定の指標と当該指標が含まれる時間情報を基に学習データを生成する。これにより、当該指標が特定の周期性を持っていた場合、次に異常が現れる時間と指標を基に、異常度を判定できる学習データとなる。この学習データを用いて、異常度判定部２２で異常性を判定し、異常判定結果として出力することができる。
【００４７】
［Ｓ１０３］学習データの更新
異常判定学習器２０のフィードバック結果保持部２３に、任意の指標に対して、異常か正常かを含む正解データが保持される。また、正解データは、異常判定学習器２０からの異常判定結果を詳細調査し、その結果に対する異常か正常かがフィードバックされることにより保持されても良い。
【００４８】
異常判定学習器２０の学習データ生成部２４において、正解データが与えられ学習データが更新される。学習データ生成部２４は、正解データの内容及び異常度判定された指標の内容を基に、当該正解データを学習データの生成に利用するか否か、またその方法を決定し、生成した学習データを異常度判定部２２へ与える。
【００４９】
異常判定学習器２０の異常度判定部２２において、更新された学習データが与えられ、当該異常度判定部２２が異常度判定するための事前学習を実施する。事前学習では、例えば、クラスター分析により学習データを評価し、クラスター境界面を複雑にする要素（外れ値など）を取り除く。例えば、時間が経過して信頼性が低くなった要素は学習に利用しないという前処理をすることによって、１正解データを除去することにより、精度の高い学習モデルとしても良い。
【００５０】
（Ａ−３）実施形態の効果
本実施形態によれば、異常判定学習器２０が、ログ情報に残る異常な振る舞いの異常度判定において、異常度判定部２２が学習データの生成に利用する正解データを、当該正解データの内容（「正常」、「異常」等）や、異常度判定された指標の内容（ユーザＩＤ、ＩＰアドレス、ＵＲＬ、ダウンロードサイズ、等）に基づき、取捨選択することを特徴とする。これにより、サイバー攻撃のような時間の経過と共に、正常、異常かが推移するような指標の検知において、学習データとして有効な正解データのみを異常度判定に利用することができ、システムの検知精度を向上させることができる。
【００５１】
（Ｂ）他の実施形態
上記実施形態の説明においても、種々変形実施形態に言及したが、さらに以下に例示するような変形実施形態も挙げることができる。
【００５２】
上記実施形態では、異常と判定された指標と共にログ情報をやりとりする動作で説明したが、この動作に限定するものではない。例えば、別途各ログの識別情報をＤＢテーブルに管理しておき、各ログの識別情報のみをやりとりする動作にしても良い。
【符号の説明】
【００５３】
１…異常判定システム、１０…異常指標出力器、１１…ログ情報入力部、１２…異常指標出力部、２０…異常判定学習器、２１…異常指標入力部、２２…異常度判定部、２３…フィードバック結果保持部、２４…学習データ生成部。
【図１】
2020170350.tif 000003
【図２】
2020170350.tif 000004
【図３】
2020170350.tif 000005
【図４】
2020170350.tif 000006