(57)【要約】【課題】分析対象アラート増加によるアナリストの分析負担を軽減すること。【解決手段】分析装置は、行動履歴情報と行動分類情報と行動シーケンス情報とにアクセス可能であり、監視対象で発生したアラート群の各々のアラートの発生前における監視対象との通信相手の行動の分類結果を取得し、アラート群の中の特定のアラートの発生前における監視対象との特定の通信相手が行動分類情報に存在するか否かを判定し、特定の通信相手が行動分類情報に存在しない場合、特定の通信相手の行動の分類結果と行動履歴情報に記憶された特定の通信相手の過去の行動履歴とに基づいて、特定の通信相手の時系列な行動である特定の行動シーケンスを生成し、行動シーケンス情報を用いて、特定の行動シーケンスが他の行動シーケンスの一部であるか否かを判定し、特定の行動シーケンスが他の行動シーケンスの一部である場合、特定の通信相手の行動の分類結果を選択する。【選択図】図１
2020113216.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する分析装置であって、
前記プロセッサは、行動履歴情報と行動分類情報と行動シーケンス情報とにアクセス可能であり、前記行動履歴情報は、監視対象との通信相手が前記監視対象に対して実行した過去の行動履歴を記憶した情報であり、前記行動分類情報は、前記通信相手と、分類された前記通信相手の行動群と、を対応付けた情報であり、前記行動シーケンス情報は、前記通信相手の時系列な行動である行動シーケンスと、前記行動シーケンスが前記行動シーケンスよりも長い他の行動シーケンスの一部であるか否かを示す被包含情報と、を対応付けた情報であり、
前記プロセッサは、
前記監視対象で発生したアラート群の各々のアラートの発生前の第１所定期間内における前記監視対象との通信相手の行動の分類結果を取得する取得処理と、
前記アラート群の中の特定のアラートの発生前の前記第１所定期間内における前記監視対象との特定の通信相手が前記行動分類情報に存在するか否かを判定する第１判定処理と、
前記第１判定処理によって前記特定の通信相手が前記行動分類情報に存在しないと判定された場合、前記特定の通信相手の行動の分類結果と、前記行動履歴情報に記憶された前記特定の通信相手の過去の行動履歴と、に基づいて、前記特定の通信相手の時系列な行動である特定の行動シーケンスを生成し、前記行動シーケンス情報を用いて、前記特定の行動シーケンスが前記他の行動シーケンスの一部であるか否かを判定する第２判定処理と、
前記第２判定処理によって前記特定の行動シーケンスが前記他の行動シーケンスの一部であると判定された場合、前記特定の通信相手の行動の分類結果を選択する選択処理と、
前記選択処理によって選択された前記特定の通信相手の行動の分類結果を出力する出力処理と、
を実行することを特徴とする分析装置。
【請求項２】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する分析装置であって、
前記プロセッサは、行動履歴情報と行動分類情報と行動シーケンス情報とにアクセス可能であり、前記行動履歴情報は、監視対象との通信相手が前記監視対象に対して実行した過去の行動履歴を記憶した情報であり、前記行動分類情報は、前記通信相手と、分類された前記通信相手の行動群と、を対応付けた情報であり、前記行動シーケンス情報は、前記通信相手の時系列な行動である行動シーケンスと、前記行動シーケンスの出現頻度と、を対応付けた情報であり、
前記プロセッサは、
前記監視対象で発生したアラート群の各々のアラートの発生前の第１所定期間内における前記監視対象との通信相手の行動の分類結果を取得する取得処理と、
前記アラート群の中の特定のアラートの発生前の前記第１所定期間内における前記監視対象との特定の通信相手が前記行動分類情報に存在するか否かを判定する第１判定処理と、
前記第１判定処理によって前記特定の通信相手が前記行動分類情報に存在しないと判定された場合、前記特定の通信相手の行動の分類結果と、前記行動履歴情報に記憶された前記特定の通信相手の過去の行動履歴と、に基づいて、前記特定の通信相手の時系列な行動である特定の行動シーケンスを生成し、前記行動シーケンス情報を用いて、前記特定の行動シーケンスの出現頻度が所定頻度以下であるか否かを判定する第２判定処理と、
前記第２判定処理によって前記特定の行動シーケンスの出現頻度が前記所定頻度以下であると判定された場合、前記特定の通信相手の行動の分類結果を選択する選択処理と、
前記選択処理によって選択された前記特定の通信相手の行動の分類結果を出力する出力処理と、
を実行することを特徴とする分析装置。
【請求項３】
請求項１に記載の分析装置であって、
前記行動分類情報は、前記通信相手の行動に、当該行動が正常な行動であるか異常な行動であるかを示す行動属性と、前記通信相手の行動の出現頻度と、が対応付けられた情報であり、
前記第２判定処理では、前記プロセッサは、前記第１判定処理によって、前記特定の通信相手の行動属性が正常であり、かつ、前記特定の通信相手の行動の出現頻度が所定頻度以下であると判定された場合、前記特定の行動シーケンスが前記他の行動シーケンスの一部であるか否かを判定する、
ことを特徴とする分析装置。
【請求項４】
請求項１に記載の分析装置であって、
前記行動シーケンス情報は、前記行動シーケンスに、前記行動シーケンスの出現頻度と、前記被包含情報と、が対応付けられた情報であり、
前記第２判定処理では、前記プロセッサは、前記特定の行動シーケンスが前記他の行動シーケンスの一部でないと判定された場合、前記特定の行動シーケンスの出現頻度が所定頻度以下であるか否かを判定し、
前記選択処理では、前記プロセッサは、前記第２判定処理によって前記特定の行動シーケンスの出現頻度が前記所定頻度以下であると判定された場合、前記特定の通信相手の行動の分類結果を選択する、
ことを特徴とする分析装置。
【請求項５】
請求項１に記載の分析装置であって、
前記第１判定処理では、前記プロセッサは、前記特定の通信相手が前記行動分類情報に存在しないと判定された場合、前記特定の通信相手と、前記特定の通信相手の行動の分類結果と、を対応付けて前記行動分類情報に登録する、
ことを特徴とする分析装置。
【請求項６】
請求項１に記載の分析装置であって、
前記第２判定処理では、前記プロセッサは、前記特定の行動シーケンスが前記行動シーケンス情報に存在しなかった場合、前記特定の行動シーケンスを前記行動シーケンス情報に登録する、
ことを特徴とする分析装置。
【請求項７】
請求項１に記載の分析装置であって、
前記プロセッサは、前記監視対象の挙動を示す特徴量を記憶する特徴量情報にアクセス可能であり、
前記プロセッサは、
前記第１所定期間以前の第２所定期間内における前記特徴量と、前記第２所定期間内における前記通信相手の行動の分類結果と、の組み合わせに基づいて、前記通信相手の行動の分類結果を予測する分類器を生成する学習処理を実行し、
前記取得処理では、前記プロセッサは、前記第１所定期間内における前記監視対象の挙動を示す特徴量を前記特徴量情報から取得し、当該取得した特徴量を前記学習処理によって生成された分類器に与えることにより、前記通信相手の行動の分類結果を取得する、
ことを特徴とする分析装置。
【請求項８】
請求項７に記載の分析装置であって、
前記学習処理では、前記プロセッサは、前記選択処理によって選択された前記特定の通信相手の行動の分類結果と、当該分類結果に対応し、かつ、前記第１所定期間内における前記監視対象の挙動を示す特徴量と、に基づいて、前記分類器を再学習する、
ことを特徴とする分析装置。
【請求項９】
請求項８に記載の分析装置であって、
前記学習処理では、前記プロセッサは、
前記特定の通信相手の行動の分類結果を追加対象分類結果として分類結果別に集計し、前記追加対象分類結果の総数に対する分類結果別の数を示す比率を算出する算出処理と、
前記各比率と所定の目標比率との差が許容範囲内であるか否かを判断する判断処理と、
前記各比率と前記所定の目標比率との差が許容範囲内である場合に、前記追加対象分類結果と、前記追加対象分類結果に対応し、かつ、前記第１所定期間内における前記監視対象の挙動を示す特徴量と、に基づいて、前記分類結果を再学習する再学習処理と、
前記いずれかの比率と前記所定の目標比率との差が許容範囲内である場合に、前記選択処理によって選択されなかった前記特定の通信相手の行動の分類結果を前記追加対象分類結果に追加して、前記各比率を再算出する再算出処理と、
を実行することを特徴とする分析装置。
【請求項１０】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する分析装置が実行する分析方法であって、
前記プロセッサは、行動履歴情報と行動分類情報と行動シーケンス情報とにアクセス可能であり、前記行動履歴情報は、監視対象との通信相手が前記監視対象に対して実行した過去の行動履歴を記憶した情報であり、前記行動分類情報は、前記通信相手と、分類された前記通信相手の行動群と、を対応付けた情報であり、前記行動シーケンス情報は、前記通信相手の時系列な行動である行動シーケンスと、前記行動シーケンスが前記行動シーケンスよりも長い他の行動シーケンスの一部であるか否かを示す被包含情報と、を対応付けた情報であり、
前記プロセッサは、
前記監視対象で発生したアラート群の各々のアラートの発生前の第１所定期間内における前記監視対象との通信相手の行動の分類結果を取得する取得処理と、
前記アラート群の中の特定のアラートの発生前の前記第１所定期間内における前記監視対象との特定の通信相手が前記行動分類情報に存在するか否かを判定する第１判定処理と、
前記第１判定処理によって前記特定の通信相手が前記行動分類情報に存在しないと判定された場合、前記特定の通信相手の行動の分類結果と、前記行動履歴情報に記憶された前記特定の通信相手の過去の行動履歴と、に基づいて、前記特定の通信相手の時系列な行動である特定の行動シーケンスを生成し、前記行動シーケンス情報を用いて、前記特定の行動シーケンスが前記他の行動シーケンスの一部であるか否かを判定する第２判定処理と、
前記第２判定処理によって前記特定の行動シーケンスが前記他の行動シーケンスの一部であると判定された場合、前記特定の通信相手の行動の分類結果を選択する選択処理と、
前記選択処理によって選択された前記特定の通信相手の行動の分類結果を出力する出力処理と、
を実行することを特徴とする分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを分析する分析装置および分析方法に関する。
【背景技術】
【０００２】
サイバー空間では攻撃側が構造的に優位であり、その攻撃は日々高度化、増加、変化している。そのような中、攻撃対象は、従来の金融事業者およびＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）サービス事業者からインフラ事業者へ拡大している。対策に必要な対策コストは右肩上がりだが、投資がそれに追いつかないのが現状である。セキュリティ専門家の人数も不足しており、将来に向けた人材確保が課題となっている。十分な数のセキュリティ専門家が確保されないため、ＳＯＣ（Ｓｅｃｕｒｉｔｙ  Ｏｐｅｒａｔｉｏｎ  Ｃｅｎｔｅｒ）の運用業務に支障を来たすことが懸念される。特に、社会インフラ事業者は、システム全体を監視する。したがって、これまでに比べて、ＳＯＣ運用性能の大幅な向上が要求される。
【０００３】
ＳＯＣ運用業務において最も工数を要するのは、ＦＷ（Ｆｉｒｅｗａｌｌ）／ＩＰＳ（Ｉｎｔｒｕｓｉｏｎ  Ｐｒｅｖｅｎｔｉｏｎ  Ｓｙｓｔｅｍ）から通知されるセキュリティアラートの重要度を判断する作業（インシデントか誤検知かを人手で判断する作業）である。従来はアラートが発生した際には、ＳＯＣの専門家がシステム内の各装置ログと外部脅威情報（たとえば、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）やマルウェアの危険度評価）を参照し、そのアラートの重要度を経験と勘に基づいて判断していた。増加し続けるサイバー攻撃や監視対象システムの大規模化に対して、将来に渡って持続可能なＳＯＣ運用を実現するには、上記アラート重要度判断の自動化が必須である。しかし、判断ロジックをすべてルール定義することは、コスト面で困難である。よって、機械学習により、専門家によるアラート重要度の蓄積データから、アラート重要度の判断ロジックを作り出す技術が必要となる。
【０００４】
また、特許文献１は、機械学習の教師データとして用いるための、特定の分野に関するデータを収集する教師データ収集装置を開示する。この教師データ収集装置は、予め登録しておいた特定の分野に関するデータの特徴ベクトルである第１の特徴ベクトルを算出する特徴算出部と、前記第１の特徴ベクトルから、前記特定の分野に関するデータの収集に用いる検索条件を生成する生成部と、生成された前記検索条件をもとに、前記特定の分野に関するデータを収集する収集部と、収集した前記データの特徴ベクトルである第２の特徴ベクトルを前記特徴算出部が算出すると、該第２の特徴ベクトルと前記第１の特徴ベクトルとの類似度を算出する類似度算出部と、前記類似度が所定の範囲内にある収集した前記データを前記教師データとして抽出する抽出部と、を備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−１２４６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サイバー攻撃は、時間経過とともに手口が変わる。変化に追随するには、継続的な追加学習が欠かせない。よって、機械的に判断できなかった、判断の確度が低いアラートに対して、専門家であるセキュリティアナリストによる判断（ラベルという）を新たに入力してもらう必要がある。しかしながら、入力回数が増加するにつれ、専門家の負担が増加する。
【０００７】
本開示技術は、分析対象アラート増加によるセキュリティアナリストの分析負担を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
本開示技術の一側面となる分析装置および分析方法は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する分析装置および分析方法であって、前記プロセッサは、行動履歴情報と行動分類情報と行動シーケンス情報とにアクセス可能であり、前記行動履歴情報は、監視対象との通信相手が前記監視対象に対して実行した過去の行動履歴を記憶した情報であり、前記行動分類情報は、前記通信相手と、分類された前記通信相手の行動群と、を対応付けた情報であり、前記行動シーケンス情報は、前記通信相手の時系列な行動である行動シーケンスと、前記行動シーケンスが前記行動シーケンスよりも長い他の行動シーケンスの一部であるか否かを示す被包含情報と、を対応付けた情報であり、前記プロセッサは、前記監視対象で発生したアラート群の各々のアラートの発生前の第１所定期間内における前記監視対象との通信相手の行動の分類結果を取得する取得処理と、前記アラート群の中の特定のアラートの発生前の前記第１所定期間内における前記監視対象との特定の通信相手が前記行動分類情報に存在するか否かを判定する第１判定処理と、前記第１判定処理によって前記特定の通信相手が前記行動分類情報に存在しないと判定された場合、前記特定の通信相手の行動の分類結果と、前記行動履歴情報に記憶された前記特定の通信相手の過去の行動履歴と、に基づいて、前記特定の通信相手の時系列な行動である特定の行動シーケンスを生成し、前記行動シーケンス情報を用いて、前記特定の行動シーケンスが前記他の行動シーケンスの一部であるか否かを判定する第２判定処理と、前記第２判定処理によって前記特定の行動シーケンスが前記他の行動シーケンスの一部であると判定された場合、前記特定の通信相手の行動の分類結果を選択する選択処理と、前記選択処理によって選択された前記特定の通信相手の行動の分類結果を出力する出力処理と、を実行することを特徴とする。
【０００９】
本開示技術の他の側面となる分析装置および分析方法は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する分析装置および分析方法であって、前記プロセッサは、行動履歴情報と行動分類情報と行動シーケンス情報とにアクセス可能であり、前記行動履歴情報は、監視対象との通信相手が前記監視対象に対して実行した過去の行動履歴を記憶した情報であり、前記行動分類情報は、前記通信相手と、分類された前記通信相手の行動群と、を対応付けた情報であり、前記行動シーケンス情報は、前記通信相手の時系列な行動である行動シーケンスと、前記行動シーケンスの出現頻度と、を対応付けた情報であり、前記プロセッサは、前記監視対象で発生したアラート群の各々のアラートの発生前の第１所定期間内における前記監視対象との通信相手の行動の分類結果を取得する取得処理と、前記アラート群の中の特定のアラートの発生前の前記第１所定期間内における前記監視対象との特定の通信相手が前記行動分類情報に存在するか否かを判定する第１判定処理と、前記第１判定処理によって前記特定の通信相手が前記行動分類情報に存在しないと判定された場合、前記特定の通信相手の行動の分類結果と、前記行動履歴情報に記憶された前記特定の通信相手の過去の行動履歴と、に基づいて、前記特定の通信相手の時系列な行動である特定の行動シーケンスを生成し、前記行動シーケンス情報を用いて、前記特定の行動シーケンスの出現頻度が所定頻度以下であるか否かを判定する第２判定処理と、前記第２判定処理によって前記特定の行動シーケンスの出現頻度が前記所定頻度以下であると判定された場合、前記特定の通信相手の行動の分類結果を選択する選択処理と、前記選択処理によって選択された前記特定の通信相手の行動の分類結果を出力する出力処理と、を実行することを特徴とする。
【発明の効果】
【００１０】
本発明の代表的な実施の形態によれば、手口変化の関連性が高いアラートの絞り込みの自動化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】図１は、サイバー攻撃の分析例を示す説明図である。
【図２】図２は、監視システムのシステム構成例を示すブロック図である。
【図３】図３は、図２に示した各種コンピュータのハードウェア構成例を示すブロック図である。
【図４】図４は、特徴量テーブルの一例を示す説明図である。
【図５】図５は、ラベルテーブルの一例を示す説明図である。
【図６】図６は、行動分類テーブルの一例を示す説明図である。
【図７】図７は、行動シーケンステーブルの一例を示す説明図である。
【図８】図８は、比率テーブルの一例を示す説明図である。
【図９】図９は、分析装置の機能的構成例を示すブロック図である。
【図１０】図１０は、分析装置の動作を示すシーケンス図である。
【図１１】図１１は、アナリスト端末の出力画面表示例を示す説明図である。
【図１２】図１２は、図１０に示した行動分類予測（ステップＳ１００５）の詳細な処理手順例を示すフローチャートである。
【図１３】図１３は、図１０に示した通信相手別異常行動判定（ステップＳ１００７）の詳細な処理手順例を示すフローチャートである。
【図１４】図１４は、図１０に示した行動別異常行動判定（ステップＳ１００９）の詳細な処理手順例を示すフローチャートである。
【図１５】図１５は、図１１に示したフィードバック処理（ステップＳ１０１２）の詳細な処理手順例を示すフローチャートである。
【図１６】図１６は、図１０に示した追加学習処理（ステップＳ１０１３）の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
＜サイバー攻撃の分析例＞
図１は、サイバー攻撃の分析例を示す説明図である。図１では、監視対象システム１１０が、サイバー攻撃をおこなう通信端末１２０（単に攻撃者と表記する場合もある）からサイバー攻撃を受けた場合を例に挙げて説明する。監視対象システム１１０は、通信端末１２０からサイバー攻撃を受けると、ＳＯＣ１００にアラートを送信する。アラートは、たとえば、アラートを一意に特定するアラート識別子と、アラートの発生日時と、通信相手（この例では通信端末１２０）と、を含む。
【００１３】
ＳＯＣ１００は、アラート管理装置１０１と、ログ収集装置１０２と、分析装置１０３と、を有する。アラート管理装置１０１は、監視対象システム１１０からのアラートを受信してログ収集装置１０２に転送する。ログ収集装置１０２は、監視対象システム１１０の挙動を示すログ（たとえば、キャッシュミス回数や異常応答回数）を監視対象システム１１０から取得して分析装置１０３に送信する。
【００１４】
分析装置１０３は、ＤＢ１３０を有し、ログ収集装置１０２からアラート発生前の所定期間内ログを取得して、当該所定期間内に発生したアラートのアラート識別子を当該ログに付与し、ＤＢ１３０に格納する。アラート識別子が付与されたログを「アラート特徴データ」と称す。異なるログに同一のアラート識別子が付与されても、それぞれがアラート特徴データとなる。
【００１５】
分析装置１０３は、機械学習処理１３１を実行して、アラート特徴データを分類するための分類器を生成する。分類器は、たとえば、学習パラメータである。なお、機械学習処理１３１において、２種類の学習データが適用される。１つは、教師なしアラート特徴データであり、もう１つは、教師ありアラート特徴データである。
【００１６】
教師なしアラート特徴データは、過去のアラート発生前における監視対象システム１１０またはその通信相手の挙動に関するログである。教師ありアラート特徴データは、過去のアラート発生前における監視対象システム１１０またはその通信相手の挙動に関するログと、当該ログに対してセキュリティアナリスト１４１が付与した分類のラベルと、の組み合わせである。機械学習処理１３１で教師なしアラート特徴データ群をクラスタリングすることにより、教師なしアラート特徴データ群は、複数のクラスタに分類される。各クラスタは、セキュリティアナリスト１４１によってサイバー攻撃の分類を示すラベルが付与される。これにより、教師なしアラート特徴データは、教師ありアラート特徴データとなる。分析装置１０３は、教師ありアラート特徴データを用いて機械学習処理１３１を実行することにより、分類器を生成する。
【００１７】
あらたに、サイバー攻撃の予測対象アラートの発生前所定期間内の予測対象アラート特徴データ群がログ収集装置１０２から得られると、分析装置１０３は、アラート分類処理１３２により、生成済みの分類器を用いて当該予測対象アラート特徴データ群を分類し、分類結果をＤＢ１３０に格納する。
【００１８】
分析装置１０３は、サンプリング処理１３３により、分類器から得られた分類結果であるラベルから手口変化と強い関連があるラベルを、以下の観点（１）および（２）によってサンプリングする。
【００１９】
（１）通信相手別異常行動判定処理１３４により、分析装置１０３は、予測対象アラートの発生原因となる通信相手にとって、付与されたラベルまたはラベルの時系列シーケンスが初出または低頻度であるか否かを判定する。分析装置１０３は、付与されたラベルまたはラベルの時系列シーケンスが初出または低頻度であれば、当該ラベルが付与された予測対象アラート特徴データに対応する予測対象アラートを選択アラートとしてサンプリングする。
【００２０】
（２）行動別異常行動判定処理１３５により、分析装置１０３は、通信相手集団にとって、付与されたラベルまたはラベルの時系列な行動シーケンスが過去に長期攻撃の一部であった実績があるか否かを判定する。分析装置１０３は、付与されたラベルまたは行動シーケンスが過去に長期攻撃の一部であった実績があれば、当該ラベルが付与された予測対象アラート特徴データに対応する予測対象アラートを選択アラートとしてサンプリングする。
【００２１】
観点（１）および（２）により、分析装置１０３は、手口変化の関連性が高い予測対象アラート群を選択アラートに自動的に絞り込むことができる。これにより、セキュリティアナリスト１４１の分析負担を軽減することができる。
【００２２】
アナリスト端末１４０は、サンプリング処理１３３でサンプリングされた選択アラートを受信し、セキュリティアナリスト１４１は、アナリスト端末１４０に表示された当該選択アラートを分析する。たとえば、セキュリティアナリスト１４１は、選択アラートのラベルを変更する。そして、アナリスト端末１４０は、セキュリティアナリスト１４１が作成したフィードバック情報を分析装置１０３に送信する。フィードバック情報は、たとえば、選択アラートの変更後のラベルを含む。分析装置１０３は、フィードバック情報に基づいて、ＤＢ１３０内の選択アラートのラベルを更新する。なお、セキュリティアナリスト１４１は、分析装置１０３で表示された選択アラートを分析したり、分析装置１０３を操作してフィードバック情報を作成してもよい。
【００２３】
また、分析装置１０３は、分類器の再学習の際、調整処理１３７により、分類器に与える追加学習データの分布の偏りを抑制する。追加学習データとは、たとえば、サンプリング処理１３３済みの予測対象アラート特徴データと、当該予測対象アラート特徴データに対してセキュリティアナリスト１４１が新たに付与した分類を示すラベルと、の組み合わせである。具体的には、たとえば、分析装置１０３は、調整処理１３７により、追加学習データ群のラベルが特定のラベルに集中しないよう、ラベルごとの選択アラートの数を以下の観点（３）で調整する。
【００２４】
（３）分析装置１０３は、ラベルごとの選択アラートの数が同数となるように、選択アラートの数が少ないラベルに、サンプリング処理１３３でサンプリングされていない未選択アラートを補充する。
【００２５】
観点（３）により、追加学習データの分布の偏りが抑制される。したがって、分析装置１０３は、追加学習データで再学習する際に、追加学習データの分布の偏り調整についてセキュリティアナリスト１４１へ問い合わせる回数を最小限にすることができる。また、追加学習データの分布の偏りを抑制することにより、特定のラベルに集中することによる過学習を抑制する。したがって、時間経過とともに手口が変わるサイバー攻撃に対応することができる。
【００２６】
＜システム構成例＞
図２は、監視システムのシステム構成例を示すブロック図である。監視システム２００は、監視対象システム１１０と、ＳＯＣ１００と、を有する。監視対象システム１１０とＳＯＣ１００は、通信可能に接続される。
【００２７】
監視対象システム１１０は、ＳＯＣ１００に監視されるシステムである。監視対象システム１１０は、たとえば、第１ネットワーク２１０、１台以上のクライアント端末２１１、業務サーバ２１２、ネットワーク監視装置２１３、第１ＦＷ／ＩＰＳ２１４、およびプロキシサーバ２１６を有する。
【００２８】
第１ネットワーク２１０は、たとえば、バスであり、１台以上のクライアント端末２１１、業務サーバ２１２、ネットワーク監視装置２１３、第１ＦＷ／ＩＰＳ２１４、プロキシサーバ２１６、第２ＦＷ／ＩＰＳ２２３およびＳＯＣ１００を通信可能に接続する。第１ＦＷ／ＩＰＳ２１４は、外部ネットワーク２０２に通信可能に接続される。外部ネットワーク２０２は、たとえば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットである。
【００２９】
また、監視対象システム１１０は、たとえば、第２ネットワーク２２０、制御装置２２１、コントローラ２２２、および第２ＦＷ／ＩＰＳ２２３を有する。第２ネットワーク２２０は、たとえば、バスであり、第２ネットワーク２２０、制御装置２２１、コントローラ２２２、および第２ＦＷ／ＩＰＳ２２３を通信可能に接続する。
【００３０】
ＳＯＣ１００は、たとえば、アラート管理装置１０１と、ログ収集装置１０２と、分析装置１０３と、アナリスト端末１４０と、第３ネットワーク２０３と、を有する。第３ネットワーク２０３は、たとえば、バスであり、アラート管理装置１０１、ログ収集装置１０２、分析装置１０３、アナリスト端末１４０、および外部脅威情報データベース２０１を通信可能に接続する。
【００３１】
アラート管理装置１０１は、事象の一例として、監視対象システム１１０からウィルス検出、異常な挙動検出、未登録装置との接続検出といったアラートを取得して格納する。アラートは、たとえば、アラートの発生日時と、アラート対象（アラートの発生元である監視対象システム１１０内のコンピュータ）と、アラート対象の通信相手（たとえば、通信端末１２０を特定するＩＰアドレス）と、を含む情報である。アラート管理装置１０１は、取得したアラートを分析装置１０３に通知する。
【００３２】
ログ収集装置１０２は、監視対象システム１１０からのログを取得して格納する。ログは、いつ、監視対象システム１１０内のどのコンピュータ３００がどのようなデータをどの通信相手に送受信したかを示す履歴情報である。
【００３３】
分析装置１０３は、アラート管理装置１０１で管理されているアラートとログ収集装置１０２で管理されているログと外部脅威情報データベース２０１に登録されている脅威情報を用いて、アラートを分析する。外部脅威情報データベース２０１は、たとえば、インターネット上で脅威情報を公開するデータベースである。脅威情報には、たとえば、マルウェア、プログラムの脆弱性、スパム、不正ＵＲＬがある。アナリスト端末１４０は、セキュリティアナリスト１４１が操作する端末である。
【００３４】
＜コンピュータのハードウェア構成例＞
図３は、図２に示した各種コンピュータ（クライアント端末２１１、業務サーバ２１２、ネットワーク監視装置２１３、第１ＦＷ／ＩＰＳ２１４、プロキシサーバ２１６、制御装置２２１、コントローラ２２２、第２ＦＷ／ＩＰＳ２２３、アラート管理装置１０１、ログ収集装置１０２、分析装置１０３、アナリスト端末１４０）のハードウェア構成例を示すブロック図である。
【００３５】
コンピュータ３００は、プロセッサ３０１と、記憶デバイス３０２と、入力デバイス３０３と、出力デバイス３０４と、通信インターフェース（通信ＩＦ）３０５と、を有する。プロセッサ３０１、記憶デバイス３０２、入力デバイス３０３、出力デバイス３０４、および通信ＩＦ３０５は、バス３０６により接続される。プロセッサ３０１は、コンピュータ３００を制御する。
【００３６】
記憶デバイス３０２は、プロセッサ３０１の作業エリアとなる。また、記憶デバイス３０２は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス３０２としては、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリがある。入力デバイス３０３は、データを入力する。入力デバイス３０３としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス３０４は、データを出力する。出力デバイス３０４としては、たとえば、ディスプレイ、プリンタがある。通信ＩＦ３０５は、ネットワークと接続し、データを送受信する。
【００３７】
＜特徴量テーブル４００＞
図４は、特徴量テーブル４００の一例を示す説明図である。特徴量テーブル４００は、アラートの特徴量を示すアラート特徴量を記憶するテーブルであり、分析装置１０３によってログ収集装置１０２から収集され、たとえば、分析装置１０３の記憶デバイス３０２に記憶される。特徴量テーブル４００は、ログ収集装置１０２に記憶されていてもよい。
【００３８】
特徴量テーブル４００は、アラート識別子４０１と、集計日時４０２と、プロキシサーバログ４０３と、業務サーバログ４０４と、外部脅威情報４０５と、をフィールドとして有する。ある行における各フィールドの値の組み合わせがアラート特徴データを構成するエントリである。
【００３９】
プロキシサーバログ４０３、業務サーバログ４０４、および外部脅威情報４０５以外にも監視対象システム１１０内の他のコンピュータ（クライアント端末２１１やＦＷ／ＩＰＳ２１４，２２３、ネットワーク監視装置２１３など）についてのログがあってもよいが、図４では省略する。
【００４０】
アラート識別子４０１は、アラートを一意に特定する識別情報である。なお、アラート管理装置１０１からのアラートは、アラート識別子４０１、発生日時、アラート対象、および通信相手を含む。発生日時は、そのアラートが発生した日付時刻である。アラート対象は、アラートの発生元、ここでは、監視対象システム１１０内のコンピュータである。通信相手は、アラート対象が送信したデータの宛先またはアラート対象にデータを送信した送信元である。なお、分析装置１０３は、そのアラートの発生日時前から所定時間遡った日時から発生日時までの時間帯に集計日時４０２が含まれるエントリに、そのアラートのアラート識別子４０１を付与する。
【００４１】
集計日時４０２は、アラート識別子４０１で特定されるアラートの発生日時から所定時間遡った日時から一定時間間隔で発生日時までログ収集装置１０２がログを集計した日付時刻である。本例では、所定時間を１時間とし、一定時間間隔を１０分とする。集計日時４０２は、一定時間間隔の終了日時を示す。たとえば、集計日時４０２が「１０／１０  １２：５７」のエントリは、１０／１０の１２：４８から１２：５７までの１０分間で集計されたログで特定されるアラート特徴データを示す。
【００４２】
たとえば、アラート識別子４０１が「Ａｌｅｒｔ＿００５」であるアラートの発生日時を「１０／１０  １３：５７」とすると、アラート識別子４０１が「Ａｌｅｒｔ＿００５」であるアラートの集計日時４０２は、発生日時である「１０／１０  １３：５７」から１時間遡った「１０／１０  １２：５７」と、「１０／１０  １３：５７」から１０分刻みの「１０／１０  １３：０７」、「１０／１０  １３：１７」、「１０／１０  １３：２７」、「１０／１０  １３：３７」、「１０／１０  １３：４７」、および「１０／１０  １３：５７」となる。このようにして、アラート発生時のアラート特徴データの収集タイミングが設定される。
【００４３】
プロキシサーバログ４０３は、サブフィールドとして、キャッシュミス回数４３１と異常応答回数４３２とを有する。キャッシュミス回数４３１は、集計日時４０２においてプロキシサーバ１１６がキャッシュミスした回数である。異常応答回数４３２は、集計日時４０２においてプロキシサーバ１１６が異常応答を受信した回数である。なお、プロキシサーバログ４０３のサブフィールドは、キャッシュミス回数４３１や異常応答回数４３２以外（たとえば、通信バイト数）であってもよいが、図４では省略する。
【００４４】
業務サーバログ４０４は、サブフィールドとして、異常応答回数４４１とアクセス回数４４２とを有する。異常応答回数４４１は、集計日時４０２において業務サーバ１１２が異常応答を受信した回数である。アクセス回数４４２は、集計日時４０２で特定される一定時間間隔の集計期間において業務サーバ１１２が他のコンピュータ３００にアクセスされた回数である。なお、業務サーバログ４０４のサブフィールドは、異常応答回数４４１やアクセス回数４４２以外（たとえば、認証失敗回数）であってもよいが、図６では省略する。
【００４５】
外部脅威情報４０５は、サブフィールドとして、ＩＰアドレス危険度４５１とＵＲＬ危険度４５２とを有する。ＩＰアドレス危険度４５１は、集計日時４０２におけるアラート対象の通信相手がＩＰアドレスで特定された場合に、外部脅威情報データベース２０１において当該ＩＰアドレスの危険度を段階的に示した指標値である。本例では、０〜５の６段階とし、５が最も危険度が高いことを示す。
【００４６】
ＵＲＬ危険度４５２は、集計日時４０２におけるアラート対象の通信相手がＵＲＬで特定された場合に、外部脅威情報データベース２０１において当該ＵＲＬの危険度を段階的に示した指標値である。本例では、０〜５の６段階とし、５が最も危険度が高いことを示す。なお、外部脅威情報４０５のサブフィールドは、ＩＰアドレス危険度４５１やＵＲＬ危険度４５２以外であってもよいが、図４では省略する。
【００４７】
＜ラベルテーブル５００＞
図５は、ラベルテーブル５００の一例を示す説明図である。ラベルテーブル５００は、分類のラベルを記憶するテーブルであり、たとえば、分析装置１０３の記憶デバイス３０２に記憶される。ラベルテーブル５００は、ログ収集装置１０２に記憶されていてもよい。
【００４８】
ラベルテーブル５００は、アラート識別子４０１と、集計日時４０２と、通信相手分類情報５０３と、行動分類（ラベル）５０４と、確度５０５と、行動分類（旧ラベル）５０６と、サンプリング５０７と、追加学習済み５０８と、をフィールドとして有する。ある行における各フィールドの値の組み合わせが、ラベルデータを構成するエントリである。
【００４９】
通信相手分類情報５０３は、通信相手を分類する情報であり、アラートに含まれる監視対象システム１１０の通信相手である。行動分類（ラベル）５０４は、通信相手の行動、換言すれば、通信端末１２０からのサイバー攻撃を分類する最新のラベルであり、たとえば、マルウェア、プログラムの脆弱性、スパム、不正ＵＲＬなどの脅威情報である。本実施例では、便宜上、行動分類（ラベル）５０４の個々の値をアルファベット大文字で示す。
【００５０】
確度５０５は、行動分類（ラベル）５０４の値の確からしさを示す数値であり、値が大きいほど行動分類（ラベル）５０４が確からしいことを示す。確度５０５の値は、０．０以上１．０以下の範囲を取る。確度５０５の値は、機械学習処理１３１による学習結果である。行動分類（ラベル）５０４の値で特定されるクラスタの中心に近いほど確度５０５の値は大きくなる。
【００５１】
行動分類（旧ラベル）５０６は、過去のラベルを示す。行動分類（ラベル）５０４にあらたなラベルが記録されると、記録される前のラベルは、旧ラベルとして行動分類（旧ラベル）５０６に格納される。
【００５２】
サンプリング５０７は、そのアラートが分析対象としてサンプリングされたか否かを示すフラグであり、初期値は、サンプリングされていないことを示す「Ｎ」である。サンプリングされると、サンプリングされたことを示す「Ｙ」に更新される。
【００５３】
追加学習済み５０８は、調整処理１３７により追加学習データの偏りを抑制する場合に、そのアラートのアラート識別子および行動分類（ラベル）が、追加学習データとして選択されたか否かを示すフラグである。初期値は、追加学習データでないことを示す「Ｎ」であり、追加学習データとして追加されると「Ｙ」に更新される。追加学習データについては後述する。
【００５４】
＜行動分類テーブル６００＞
図６は、行動分類テーブル６００の一例を示す説明図である。行動分類テーブル６００は、攻撃者の行動を記憶するテーブルであり、たとえば、分析装置１０３の記憶デバイス３０２に記憶される。行動分類テーブル６００は、ログ収集装置１０２に記憶されていてもよい。
【００５５】
行動分類テーブル６００は、通信相手分類情報５０３と、行動分類６０１と、をフィールドとして有する。ある行における各フィールドの値の組み合わせが行動分類データを構成するエントリである。
【００５６】
行動分類６０１は、サブフィールドとして、ラベルを有する。したがって、通信相手分類情報５０３で特定される通信相手のラベルごとに、当該ラベルの出現頻度および正常／異常が特定される。ラベルの出現頻度は、その通信相手分類情報５０３で特定される攻撃者からの当該ラベルに該当する通信相手からのアクセス回数ｎで規定される。本実施例では、「Ｈ」（多い）、「Ｍ」（普通）、「Ｌ」（少ない）、空白の４段階で出現頻度が規定される。
【００５７】
空白は、１度もその通信相手のアクセス回数ｎが０（ｎ＝０）であることを示す。「Ｌ」は、その通信相手によるそのラベルの行動でのアクセス回数ｎが１回以上ｎａ−１回（１≦ｎ＜ｎａ−１）であることを示す。「Ｍ」は、その通信相手によるそのラベルの行動でのアクセス回数ｎがｎａ回以上ｎｂ−１回（ｎａ≦ｎ＜ｎｂ−１）であることを示す。「Ｈ」は、その通信相手によるそのラベルの行動でのアクセス回数ｎがｎｂ回以上（ｎｂ≦ｎ）であることを示す。ｎａ、ｎｂは、あらかじめ設定される値である。
【００５８】
なお、通信相手分類情報５０３から行動分類６０１の中のあるラベルに相当するサイバー攻撃などの挙動があったことが検出されると、当該ラベルに該当するアクセス回数ｎが１回加算される。加算後のアクセス回数ｎがｎａになるとラベルの出現頻度が「Ｌ」から「Ｍ」に更新され、加算後の回数ｎからｎｂになると「Ｍ」から「Ｈ」に更新される。また、ラベルが正常であるか異常であるかは、セキュリティアナリスト１４１が決定する。具体的には、たとえば、アナリスト端末１４０からのフィードバック情報に、ラベルが正常であるか異常であるかを示す情報が含まれており、図１に示したフィードバック処理１３６により、更新される。
【００５９】
＜行動シーケンステーブル７００＞
図７は、行動シーケンステーブル７００の一例を示す説明図である。行動シーケンステーブル７００は、通信相手の異常行動を記憶するテーブルであり、たとえば、分析装置１０３の記憶デバイス３０２に記憶される。行動シーケンステーブル７００は、ログ収集装置１０２に記憶されていてもよい。
【００６０】
行動シーケンステーブル７００は、行動シーケンス７０１と、頻度７０２と、長期攻撃の一部７０３と、をフィールドとして有する。ある行における各フィールドの値の組み合わせが行動シーケンスデータを構成するエントリである。なお、行動シーケンステーブル７００は、頻度７０２および長期攻撃の一部７０３のうち少なくとも一方を有していればよい。
【００６１】
行動シーケンス７０１は、１以上のラベルの時系列である。なお、同じラベルが２個以上連続する場合は、１個に縮約される。たとえば、ラベルの時系列が「Ａ→Ｂ→Ｂ→Ｂ→Ｃ」である場合、「Ｂ」が３回連続で出現しているため、行動シーケンス７０１は、「Ａ→Ｂ→Ｃ」となる。
【００６２】
頻度７０２は、行動分類６０１で示した場合と同様、「Ｈ」（多い）、「Ｍ」（普通）、「Ｌ」（少ない）、空白の４段階で規定される行動シーケンス７０１の出現頻度である。
【００６３】
長期攻撃の一部７０３とは、その行動シーケンス７０１が長期攻撃の一部であるか否かを示す被包含情報である。長期攻撃の一部７０３の初期値は、長期攻撃の一部７０３ではないことを示す「Ｎ」であり、長期攻撃の一部７０３に含まれていれば、「Ｙ」に更新される。長期攻撃とは、過去に出現した行動シーケンスであり、行動シーケンス７０１よりもラベル数が１個以上多い。
【００６４】
たとえば、過去の行動シーケンスとして「Ａ→Ｂ→Ｃ→Ｄ」が長期攻撃として規定されている場合、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ａ→Ｂ」、「Ｂ→Ｃ」、「Ｃ→Ｄ」、「Ａ→Ｂ→Ｃ」、「Ｂ→Ｃ→Ｄ」の各行動シーケンス７０１は、長期攻撃の一部７０３に該当する。したがって、これらの行動シーケンス７０１の長期攻撃の一部７０３は、「Ｙ」に更新される。また、長期攻撃の一部７０３のラベル数は、２個以上であってもよい。たとえば、長期攻撃の一部７０３のラベル数が３個以上である場合、上記の例では、「Ａ→Ｂ→Ｃ」、「Ｂ→Ｃ→Ｄ」の各行動シーケンス７０１が、長期攻撃の一部７０３に該当する。
【００６５】
なお、どの行動シーケンス７０１が長期攻撃の一部７０３であるかは、セキュリティアナリスト１４１が決定する。具体的には、たとえば、アナリスト端末１４０からのフィードバック情報に、どの行動シーケンス７０１が長期攻撃の一部７０３であるかを示す情報が含まれる。この場合、図１に示したフィードバック処理１３６により、長期攻撃の一部７０３に該当する行動シーケンス７０１があれば、その長期攻撃の一部７０３が「Ｙ」に更新される。
【００６６】
＜比率テーブル８００＞
図８は、比率テーブル８００の一例を示す説明図である。比率テーブル８００は、ラベルごとのアラート数の比率を記憶するテーブルであり、たとえば、分析装置１０３の記憶デバイス３０２に記憶される。比率テーブル８００は、ログ収集装置１０２に記憶されていてもよい。
【００６７】
比率テーブル８００は、行動分類（ラベル）５０４と、アラート数の比率８０１と、をフィールドとして有する。アラート数の比率８０１は、追加学習データとして追加されるアラート数（すなわち、ラベル数）の比率を示す。追加学習データとして追加されるアラートは、サンプリング５０７が「Ｙ」であるラベルのアラートである。図８では、サンプリング５０７が「Ｙ」であるラベルは「Ａ」、「Ｂ」、「Ｃ」とする。各ラベルのアラート数の比率８０１が均等に近づくほど、機械学習処理１３１での追加学習における学習偏り、すなわち、分類精度低下を抑制することができる。
【００６８】
＜分析装置１０３の機能的構成例＞
図９は、分析装置１０３の機能的構成例を示すブロック図である。分析装置１０３は、特徴量テーブル４００と、ラベルテーブル５００と、行動分類テーブル６００と、行動シーケンステーブル７００と、比率テーブル８００と、学習部９０１と、予測部９０２と、第１判定部９０３と、第２判定部９０４と、通信部９０５と、サンプリング候補リスト９１１と、追加学習用アラートリスト９１２と、を有する。
【００６９】
学習部９０１、予測部９０２、第１判定部９０３、第２判定部９０４、および通信部９０５は、具体的には、たとえば、図３に示した記憶デバイス３０２に記憶されたプログラムをプロセッサ３０１に実行させることにより実現される。また、サンプリング候補リスト９１１および追加学習用アラートリスト９１２は、具体的には、たとえば、図３に示した記憶デバイス３０２により実現される。
【００７０】
学習部９０１は、図１に示した機械学習処理を実行する。予測部９０２は、図１に示したアラート分類処理１３２を実行する。第１判定部９０３は、図１に示した通信相手別異常行動判定処理１３４を実行する。第２判定部９０４は、図１に示した行動別異常行動判定処理１３５およびフィードバック処理１３６を実行する。通信部９０５は、通信ＩＦ３０５により、アナリスト端末１４０とデータを送受信する。
【００７１】
＜分析装置１０３の動作シーケンス＞
図１０は、分析装置１０３の動作を示すシーケンス図である。学習部９０１は、ログ収集装置１０２から特徴量テーブル４００に記憶されたログを取得する（ステップＳ１００１）。学習部９０１は、当該取得したログを教師なしアラート特徴データ群として入力し、機械学習を実行する（ステップＳ１００２）。これにより、教師なしアラート特徴データ群は、複数のクラスタに分類される。各クラスタは、セキュリティアナリスト１４１によって分類を示すラベルが付与される。これにより、分類器９００が生成される。
【００７２】
なお、学習部９０１は、この教師なしアラート特徴データ群にラベルが付与された教師ありアラート特徴データ群を用いて再学習し、分類器９００を更新してもよい。なお、分類器９００は、セキュリティアナリスト１４１が作成してもよい。
【００７３】
つぎに、予測部９０２は、アラート管理装置１０１から監視対象システム１１０で発生した予測対象アラートを取得し、ログ収集装置１０２から特徴量テーブル４００に記憶された予測対象アラート発生前のログを予測対象アラート特徴データとして取得する（ステップＳ１００３）。予測部９０２は、分類器９００を取得する（ステップＳ１００４）。
【００７４】
予測部９０２は、予測対象アラート特徴データ群の各々を分類器９００に与えることで行動分類予測を実行して（ステップＳ１００５）、分類結果（予測対象アラート特徴データが分類されたラベルおよびその確度の組み合わせ）を第１判定部９０３に出力する（ステップＳ１００６）。行動分類予測（ステップＳ１００５）の詳細は、図１２で後述する。なお、行動分類予測（ステップＳ１００５）を実行せず、セキュリティアナリスト１４１が、アナリスト端末１４０で、予測対象アラート特徴データを参照して分類結果を作成してもよい。
【００７５】
つぎに、第１判定部９０３は、分類結果を用いて、通信相手別異常行動判定を実行して（ステップＳ１００７）、初出または低頻度の分類結果を第２判定部９０４に出力する（ステップＳ１００８）。通信相手別異常行動判定（ステップＳ１００７）の詳細は、図１３で後述する。
【００７６】
つぎに、第２判定部９０４は、初出または低頻度の分類結果を用いて、行動別異常行動判定を実行して（ステップＳ１００９）、予測対象アラート群の中からサンプリングすべきアラート（以下、選択アラート）を決定する。選択アラートは、たとえば、選択アラートを特定するアラート識別子４０１と、選択アラートの分類結果と、の組み合わせである。選択アラートは、選択アラートの行動分類（旧ラベル）５０６を含んでもよい。第２判定部９０４は、選択アラートを、通信部９０５を介してアナリスト端末１４０に送信する（ステップＳ１０１０）。行動別異常行動判定（ステップＳ１０１０）の詳細は、図１３で後述する。
【００７７】
アナリスト端末１４０は、通信部９０５から選択アラートを受信してディスプレイに表示する。出力画面表示例については、図１１で後述する。セキュリティアナリスト１４１は、出力画面から選択アラートのラベルや行動属性（正常／異常）などの情報を入力する。これにより、アナリスト端末１４０は、フィードバック情報を生成して、分析装置１０３に送信する（ステップＳ１０１１）。
【００７８】
分析装置１０３は、フィードバック情報を受信すると、フィードバック処理を実行する（ステップＳ１０１２）。具体的には、たとえば、第２判定部９０４は、フィードバック情報にしたがってラベルテーブル５００を更新する（ステップＳ１０２１）。また、第１判定部９０３も、フィードバック情報にしたがって行動分類テーブル６００を更新する（ステップＳ１０２２）。
【００７９】
また、学習部９０１は、追加学習処理を実行する（ステップＳ１０１３）。具体的には、たとえば、学習部９０１は、追加学習データを選択し（ステップＳ１０３１）、比率調整を実行する（ステップＳ１０３２）。これにより、追加学習データの偏りを抑制する。比率調整後、学習部９０１は、追加学習データに基づいて分類器９００を再学習して更新する（ステップＳ１０３３）。これにより、その後あらたにログが取得された場合（ステップＳ１００３）、予測部９０２は、最新の分類器９００で入力アラート群の行動分類を実行することができる。
【００８０】
＜アナリスト端末１４０の出力画面表示例＞
図１１は、アナリスト端末１４０の出力画面表示例を示す説明図である。出力画面１１００は、分析アラートリスト１１０１を表示する。分析アラートリストは、アラート識別子４０１と、発生日時１１０２と、サンプリング結果１１０３と、分析優先度１１０４と、を含む。分析アラートリスト１１０１におけるリスト番号ごとのエントリが選択アラートを規定する。
【００８１】
発生日時１１０２は、アラート識別子４０１で特定される選択アラートがアラート管理装置１０１で発生した日付時刻である。サンプリング結果１１０３は、アラート識別子４０１で特定される選択アラートが選択アラートとしてサンプリングされた経緯を示す文字列である。サンプリング結果１１０３は、たとえば、その選択アラートの行動分類（ラベル）５０４と、行動分類（旧ラベル）５０６と、行動分類（旧ラベル）５０６で特定される最高出現頻度のラベルの出現確率と、を用いて、第１判定部９０３により作成される。たとえば、リスト番号が「１」の選択アラートのサンプリング結果１１０３の場合、行動分類（ラベル）５０４が「Ａ」、行動分類（旧ラベル）５０６が最高出現頻度のラベルである「Ｂ」を含み、「Ｂ」の出現確率が「０．７」である。
【００８２】
分析優先度１１０４とは、アラート識別子４０１で特定される選択アラートをセキュリティアナリスト１４１に分析してもらう際の優先度を示す文字列である。分析優先度１１０４は、たとえば、その選択アラートの行動分類６０１と、行動分類６０１に該当するアラートについての攻撃者の割合と、該当する行動シーケンス７０１についての長期攻撃の一部７０３と、を用いて、第２判定部９０４により作成される。
【００８３】
たとえば、リスト番号が「１」の選択アラートの分析優先度１１０３の場合、行動分類６０１が「Ａ」（「正常／異常」はまだセキュリティアナリスト１４１から付与されていない）である。また、行動分類６０１に該当するアラートについての攻撃者の割合が、通信相手分類情報５０３の全エントリ数で、行動分類６０１の「Ａ」の頻度が「Ｈ」、「Ｍ」、「Ｌ」のいずれかに該当するエントリの数を割った値である。また、該当する行動シーケンス７０１についての長期攻撃の一部７０３が「Ｙ」である。
【００８４】
セキュリティアナリスト１４１は、分析アラートリスト１１０１を参照して、分析アラートリスト１１０１を表示するタブ（ラベル付け依頼アラート）とは別のタブ（不図示）で、入力デバイス３０３を操作することにより、選択アラートのラベルを付与したり、選択アラートのラベルに正常および異常のいずれかを付与したり、長期攻撃の一部７０３であるか否かを示すフラグ（ＹまたはＮ）を付与したりする。これら付与した情報がフィードバック情報となる。そして、アナリスト端末１４０は、フィードバック情報を分析装置１０３に送信する（ステップＳ１０１１）。
【００８５】
＜行動分類予測（ステップＳ１００５）＞
図１２は、図１０に示した行動分類予測（ステップＳ１００５）の詳細な処理手順例を示すフローチャートである。行動分類予測（ステップＳ１００５）は、たとえば、特徴量テーブル４００のエントリである予測対象アラート特徴データ毎に実行される。予測部９０２は、特徴量テーブル４００のエントリである予測対象アラート特徴データを取得する（ステップＳ１２０１）。予測部９０２は、学習部９０１から分類器９００を取得する（ステップＳ１２０２）。予測部９０２は、予測対象アラート特徴データを分類器９００に入力する（ステップＳ１２０３）。
【００８６】
予測部９０２は、予測対象アラート特徴データを分類器９００に入力して、通信相手の行動を分類する（ステップＳ１２０４）。予測部９０２は、分類器９００から分類結果であるラベルおよび確度を取得する（ステップＳ１２０５）。予測部９０２は、ラベルおよび確度５０５をそれぞれラベルテーブル５００の行動分類（ラベル）５０４および確度５０５に格納する（ステップＳ１２０６）。なお、当該格納前に行動分類（ラベル）５０４に格納されていたラベルは、行動分類（旧ラベル）５０６の末尾に格納される。これにより、当該予測対象アラート特徴データついての行動分類予測（ステップＳ１００５）が終了する。
【００８７】
＜通信相手別異常行動判定（ステップＳ１００７）＞
図１３は、図１０に示した通信相手別異常行動判定（ステップＳ１００７）の詳細な処理手順例を示すフローチャートである。通信相手別異常行動判定（ステップＳ１００７）は、たとえば、行動分類予測（ステップＳ１００５）で新たに分類結果が追加されたラベルテーブル５００のラベルデータ毎に実行される。
【００８８】
第１判定部９０３は、ラベルテーブル５００からラベルデータを取得する（ステップＳ１３０１）。第１判定部９０３は、ステップＳ１３０１で取得したアラートに対応する行動分類６０１を行動分類テーブル６００から特定する（ステップＳ１３０２）。第１判定部９０３は、当該行動分類６０１の値があるか否かを判定する（ステップＳ１３０３）。
【００８９】
たとえば、取得したラベルデータに属する通信相手分類情報５０３が「ｗｗｗ．ａａａａ．ｂｂ」で行動分類（ラベル）５０４が「Ａ」である場合、行動分類テーブル６００における通信相手分類情報５０３が「ｗｗｗ．ａａａａ．ｂｂ」のエントリに、行動分類６０１が「Ａ」である場合の値「Ｌ／異常」が存在する。一方、取得したアラートに属する通信相手分類情報５０３が「１２３．４５．６．７」で行動分類（ラベル）５０４が「Ａ」である場合、行動分類テーブル６００における通信相手分類情報５０３が「１２３．４５．６．７」のエントリに、行動分類６０１が「Ａ」である場合の値は存在しない（空欄）。
【００９０】
特定した行動分類６０１の値がない場合（ステップＳ１３０３：Ｎｏ）、第１判定部９０３は、ステップＳ１３０１で取得したラベルデータ（当該ラベルデータへのポインタでもよい）をサンプリング候補リスト９１１に追加する（ステップＳ１３０４）。また、この場合、第１判定部９０３は、通信相手分類情報５０３および行動分類（ラベル）５０４を行動分類テーブル６００に新規登録する。これにより、ステップＳ１３０１で取得したラベルデータについての通信相手別異常行動判定（ステップＳ１００７）が終了する。
【００９１】
また、特定した行動分類６０１の値がある場合（ステップＳ１３０３：Ｙｅｓ）、第１判定部９０３は、そのエントリ内の行動属性が「異常」であるか否かを判断する（ステップＳ１３０５）。なお、このとき、アクセス回数ｎも１回加算され、出現頻度が更新される場合がある。異常である場合（ステップＳ１３０５：Ｙｅｓ）、第１判定部９０３は、ステップＳ１３０１で取得したラベルデータを、通信部９０５を介してアナリスト端末１４０に送信する（ステップＳ１３０６）。ラベルデータではなく、ラベルデータとアラート識別子４０１および集計日時４０２が同一なアラート特徴データを送信してもよい。これにより、取得したラベルデータについての通信相手別異常行動判定（ステップＳ１００７）が終了する。
【００９２】
一方、異常でない場合（ステップＳ１３０５：Ｎｏ）、第１判定部９０３は、特定した行動分類６０１の値に含まれる頻度が「Ｌ」であるか否かを判断する（ステップＳ１３０７）。頻度が「Ｌ」である場合（ステップＳ１３０４：Ｙｅｓ）、第１判定部９０３は、ステップＳ１３０１で取得したラベルデータ（当該ラベルデータへのポインタでもよい）をサンプリング候補リスト９１１に追加する（ステップＳ１３０４）。これにより、取得したラベルデータについての通信相手別異常行動判定（ステップＳ１００７）が終了する。一方、頻度が「Ｌ」でない場合（ステップＳ１３０７：Ｎｏ）、頻度は「Ｌ」よりも高い「Ｍ」または「Ｈ」である。したがって、取得したラベルデータについての通信相手別異常行動判定（ステップＳ１００７）が終了する。
【００９３】
＜行動別異常行動判定（ステップＳ１００９）＞
図１４は、図１０に示した行動別異常行動判定（ステップＳ１００９）の詳細な処理手順例を示すフローチャートである。行動別異常行動判定（ステップＳ１００９）は、たとえば、通信相手別異常行動判定（ステップＳ１００７）でサンプリング候補リスト９１１に登録されたラベルデータ毎に実行される。
【００９４】
第２判定部９０４は、サンプリング候補リスト９１１からラベルデータを取得する（ステップＳ１４０１）。第２判定部９０４は、ステップＳ１４０１で取得したラベルデータに含まれている行動分類（ラベル）５０４および行動分類（旧ラベル）５０６から行動シーケンス７０１を生成する（ステップＳ１４０２）。
【００９５】
第２判定部９０４は、行動シーケンステーブル７００を参照して、ステップＳ１４０２で生成した行動シーケンス７０１のエントリを特定する（ステップＳ１４０３）。当該エントリが特定されない場合（ステップＳ１４０４：Ｎｏ）、すなわち、当該エントリが存在しない場合、第２判定部９０４は、行動シーケンステーブル７００に新規エントリを作成し、ステップＳ１４０１で取得したラベルデータをサンプリング候補リスト９１１から削除する（ステップＳ１４０５）。これにより、当該取得したラベルデータについての行動別異常行動判定（ステップＳ１００９）が終了する。
【００９６】
一方、ステップＳ１４０２で生成した行動シーケンス７０１のエントリが特定された場合（ステップＳ１４０４：Ｙｅｓ）、第２判定部９０４は、特定された行動シーケンス７０１のエントリの長期攻撃の一部７０３が「Ｙ」であるか否かを判定する（ステップＳ１４０６）。「Ｙ」である場合（ステップＳ１４０６：Ｙｅｓ）、第２判定部９０４は、ステップＳ１４０１で取得したラベルデータのサンプリング５０７を「Ｙ」に更新する（ステップＳ１４０７）。これにより、当該取得したラベルデータについての行動別異常行動判定（ステップＳ１００９）が終了する。
【００９７】
一方、特定された行動シーケンス７０１のエントリの長期攻撃の一部７０３が「Ｙ」でない場合（ステップＳ１４０６：Ｎｏ）、第２判定部９０４は、当該特定された行動シーケンス７０１のエントリ内の頻度が「Ｌ」であるか否かを判断する（ステップＳ１４０８）。頻度が「Ｌ」である場合（ステップＳ１４０８：Ｙｅｓ）、ステップＳ１４０７に移行する。すなわち、特定された行動シーケンス７０１が長期攻撃の一部７０３でない場合でも頻度が「Ｌ」であれば、特定された行動シーケンス７０１内の行動分類（ラベル）５０４は、サンプリング対象となる。
【００９８】
一方、頻度が「Ｌ」でない場合（ステップＳ１４０８：Ｎｏ）、第２判定部９０４は、ステップＳ１４０１で取得したラベルデータをサンプリング候補から削除する（ステップＳ１４０９）。これにより、当該取得したラベルデータについての行動別異常行動判定（ステップＳ１００９）が終了する。このあと、サンプリング候補リスト９１１に登録された全ラベルデータについて通信相手別異常行動判定（ステップＳ１００７）が終了した場合、通信部９０５は、サンプリング候補リスト９１１内のラベルデータ群を選択アラート群としてアナリスト端末１４０に送信する。これにより、図１１に示したように、アナリスト端末１４０は、サンプリング候補リスト９１１の各アラートを分析して、分析アラートリスト１１０１を表示する。
【００９９】
＜フィードバック処理（ステップＳ１０１２）＞
図１５は、図１１に示したフィードバック処理（ステップＳ１０１２）の詳細な処理手順例を示すフローチャートである。フィードバック処理（ステップＳ１０１２）は、フィードバック情報に含まれる選択アラート毎に実行される。分析装置１０３は、アナリスト端末１４０からフィードバック情報を取得する（ステップＳ１５０１）。分析装置１０３は、フィードバック情報の中の選択アラートについてラベル更新があるか否かを判断する（ステップＳ１５０２）。ラベル更新がない場合（ステップＳ１５０２：Ｎｏ）、当該選択アラートについては、フィードバック処理が終了する。
【０１００】
一方、ラベル更新がある場合（ステップＳ１５０２：Ｙｅｓ）、分析装置１０３は、第２判定部９０４により、選択アラートであるラベルテーブル５００のラベルデータの行動分類（ラベル）５０４を、フィードバック情報に含まれる同一選択アラートの変更後のラベルに更新し、行動分類（旧ラベル）５０６の末尾に、行動分類（ラベル）５０４に記録されていたラベルを格納する（ステップＳ１５０３）。
【０１０１】
そして、分析装置１０３は、第１判定部９０３により、行動分類テーブル６００を更新する（ステップＳ１５０４）。具体的には、たとえば、分析装置１０３は、選択アラートの通信相手分類情報５０３が行動分類テーブル６００にない場合、行動分類テーブル６００に新規エントリを作成する。
【０１０２】
分析装置１０３は、選択アラートの通信相手分類情報５０３が行動分類テーブル６００にある場合、その行動分類６０１の値の頻度を更新する。また、その行動分類６０１の値に登録されている行動属性（正常／異常）が、フィードバック情報に含まれる選択アラートの行動属性（正常／異常）と異なる場合、分析装置１０３は、その行動分類６０１の値の行動属性を、フィードバック情報に含まれる選択アラートの行動属性（正常／異常）に更新する。
【０１０３】
分析装置１０３は、行動シーケンステーブル７００を参照して、ステップＳ１５０３で更新後の選択アラートから得られる行動シーケンス７０１が長期攻撃の一部７０３であるか否かを判断する（ステップＳ１５０５）。長期攻撃の一部７０３でない場合（ステップＳ１５０５：Ｎｏ）、当該選択アラートについては、フィードバック処理が終了する。
【０１０４】
一方、長期攻撃の一部７０３である場合（ステップＳ１５０５：Ｙｅｓ）、分析装置１０３は、行動シーケンステーブル７００の当該行動シーケンス７０１の長期攻撃の一部７０３を「Ｙ」に更新する。そして、当該選択アラートについては、フィードバック処理が終了する。
【０１０５】
＜追加学習処理（ステップＳ１０１２）＞
図１６は、図１０に示した追加学習処理（ステップＳ１０１３）の詳細な処理手順例を示すフローチャートである。追加学習処理（ステップＳ１０１２）は一定期間ごとに実行される。一定期間とは、予測対象アラートの発生日時から所定期間遡った日時から予測対象アラートの発生日時までの期間でもよく、あらかじめ設定された予定日時から所定期間遡った日時から予定日時までの期間でもよい。
【０１０６】
図１６では、一例として、ラベルテーブル５００には、Ａ〜Ｅのラベルが登録されており、一定期間分のラベルデータの数を１０００個とする。また、この１０００個のラベルデータのうち、サンプリング５０７が「Ｙ」でかつ追加学習済み５０８が「Ｎ」ある選択アラートは、３０個とする。この３０個の内訳は、行動分類（ラベル）５０４の値「Ａ」が１５個、「Ｂ」が１０個、「Ｃ」が５個、「Ｄ」および「Ｅ」がそれぞれ０個とする。
【０１０７】
学習部９０１は、ラベルテーブル５００から一定期間分のラベルデータ（本例では１０００個）を取得する（ステップＳ１６０１）。学習部９０１は、一定期間分のラベルデータからサンプリング５０７が「Ｙ」である選択アラート（本例では３０個）を取得し、追加学習済み５０８を「Ｙ」に更新して、追加学習用アラートリスト９１２に追加する（ステップＳ１６０２）。
【０１０８】
学習部９０１は、追加学習用アラートリスト９１２内の選択アラートを行動分類（ラベル）５０４別に集計し、比率を計算する（ステップＳ１６０３）。比率とは、選択アラートの行動分類（ラベル）５０４ごとに、選択アラートが占める割合である。たとえば、選択アラートは３０個である。そのうち、行動分類（ラベル）５０４が「Ａ」である選択アラートは１５個である。したがって、ラベルＡの比率は、１５／３０＝１／２である。同様に、行動分類（ラベル）５０４が「Ｂ」の比率は１０／３０＝１／３であり、行動分類（ラベル）５０４が「Ｃ」の比率は５／３０＝１／６である。行動分類（ラベル）５０４が「Ｄ」、「Ｅ」の比率は、選択アラートが０個であるため、０である。
【０１０９】
学習部９０１は、一定期間分のアラートに含まれるすべての行動分類（ラベル）５０４が下記式（１）を満たすか否か、すなわち、目標比率からステップＳ１６０３で引いた値の絶対値が閾値以下であるか否かを判断する（ステップＳ１６０４）。
【０１１０】
｜目標比率−比率｜≦閾値・・・（１）
【０１１１】
ここで、目標比率とは、選択アラートの行動分類（ラベル）５０４の種類数の逆数である。本例では、選択アラートの行動分類（ラベル）５０４の種類数はＡ〜Ｅの５個であるため、目標比率は１／５である。また、閾値を０．１５とする。１つでも式（１）を充足しない行動分類（ラベル）５０４が存在する場合（ステップＳ１６０４：Ｎｏ）、ステップＳ１６０５に移行する。すべてのラベルが式（１）を充足する場合（ステップＳ１６０４：Ｙｅｓ）、ステップＳ１６０８に移行する。
【０１１２】
ラベルＡの場合、その比率は１／２であるため、式（１）の左辺は０．３０となり、式（１）を充足しない。ラベルＢの場合、その比率は１／３であるため、式（１）の左辺は０．１３となり、式（１）を充足する。ラベルＣの場合、その比率は１／６であるため、式（１）の左辺は０．０３となり、式（１）を充足する。
【０１１３】
ラベルＤ，Ｅの場合、その比率は０であるため、式（１）の左辺は０．２０となり、式（１）を充足しない。本例では、ステップＳ１６０５に移行する。
【０１１４】
ステップＳ１６０５において、学習部９０１は、ステップＳ１６０４で閾値を超えたラベルを１つ選択する（ステップＳ１６０５）。たとえば、閾値を超えたラベルＡ，Ｄ，ＥからＡが選択されたとする。選択されたラベルを「選択ラベル」と称す。
【０１１５】
学習部９０１は、ステップＳ１６０１で取得した一定期間分のラベルデータのうち、行動分類（ラベル）５０４が選択ラベルでかつサンプリング５０７が「Ｎ」である選択アラートを１つ選択する（ステップＳ１６０６）。すなわち、１０００個ある一定期間分のラベルデータのうち、サンプリング５０７が「Ｙ」である３０個の選択アラートを除いた、９７０個のラベルデータから１つ選択される。学習部９０１は、ステップＳ１６０６での選択アラート（選択アラートへのポインタでもよい）を追加学習用アラートリスト９１２に追加する（ステップＳ１６０７）。そして、ステップＳ１６０３に戻り、比率を再計算して、一定期間分のラベルデータに含まれるすべてのラベルが式（１）を充足するか否かを判断する。
【０１１６】
一定期間分のラベルデータに含まれるすべての行動分類（ラベル）５０４が式（１）を充足する場合、ラベルＡ〜Ｅの比率が、追加学習処理（ステップＳ１０１３）の開始当初に比べて均等に近づいている。この時点で追加学習用アラートリスト９１２に存在する選択アラートが追加学習データの元になる。そして、学習部９０１は、追加学習用アラートリスト９１２内の選択アラートの追加学習済み５０８を「Ｙ」に更新する（ステップＳ１６０８）。
【０１１７】
そして、学習部９０１は、追加学習用アラートリスト９１２内の選択アラートからアラート識別子４０１、集計日時４０２、および行動分類（ラベル）５０４を取得し、取得したアラート識別子４０１および集計日時４０２に一致するアラート特徴データを特徴量テーブル４００から取得して、追加学習データを生成する。そして、学習部９０１は、追加学習データを分類器９００に与えて再学習する（ステップＳ１６０９）。これにより、分類器９００が更新されて過学習が抑制され、分類精度低下が抑制される。
【０１１８】
（１）以上説明したように、本実施例にかかる分析装置１０３は、ラベルテーブル５００と行動分類テーブル６００と行動シーケンステーブル７００とにアクセス可能である。ラベルテーブル５００は、監視対象システム１１０との通信相手分類情報５０３が監視対象システム１１０に対して実行した行動分類（旧ラベル）５０６を記憶した情報である。行動分類テーブル６００は、通信相手分類情報５０３と、分類された通信相手分類情報５０３の行動分類６０１と、を対応付けた情報である。行動シーケンステーブル７００は、通信相手分類情報５０３の時系列な行動である行動シーケンス７０１と、行動シーケンス７０１が行動シーケンス７０１よりも長い他の行動シーケンスの一部であるか否かを示す長期攻撃の一部７０３と、を対応付けた情報である。
【０１１９】
プロセッサ３０１は、監視対象システム１１０で発生したアラート群の各々のアラートの発生前の第１所定期間内における監視対象システム１１０との通信相手分類情報５０３の行動の分類結果を取得する（ステップＳ１００３）。
【０１２０】
プロセッサ３０１は、アラート群の中の特定のアラートの発生前の第１所定期間内における監視対象システム１１０との特定の通信相手分類情報５０３が行動分類テーブル６００に存在するか否かを判定する（ステップＳ１００７）。
【０１２１】
プロセッサ３０１は、特定の通信相手分類情報５０３が行動分類テーブル６００に存在しないと判定された場合、特定の通信相手分類情報５０３の行動の分類結果と、ラベルテーブル５００に記憶された特定の通信相手分類情報５０３の行動分類（旧ラベル）５０６と、に基づいて、特定の通信相手分類情報５０３の時系列な行動である特定の行動シーケンス７０１を生成し、行動シーケンステーブル７００を用いて、特定の行動シーケンス７０１が長期攻撃の一部７０３であるか否かを判定する（ステップＳ１００９）。
【０１２２】
プロセッサ３０１は、特定の行動シーケンス７０１が長期攻撃の一部７０３であると判定された場合、特定の通信相手分類情報５０３の行動の分類結果を選択する（ステップＳ１４０５、Ｓ１４０７、Ｓ１４０９）。
【０１２３】
プロセッサ３０１は、選択された特定の通信相手分類情報５０３の行動の分類結果を出力する（ステップＳ１０１０）。
【０１２４】
選択された特定の通信相手分類情報５０３の行動の分類結果は、その通信相手にとって初出の行動であり、かつ、その通信相手を含む通信相手集団の過去の行動において過去に長期攻撃の一部であるため、手口変化の関連性が高いアラートに属する。したがって、分析装置１０３は、アラート群から手口変化の関連性が高いアラートを自動的に絞り込むことができる。このように、どのアラートが手口変化の関連性が高いかをセキュリティアナリスト１４１が判断する必要がないため、セキュリティアナリスト１４１の負担軽減を図ることができる。
【０１２５】
（２）また、本実施例にかかる分析装置１０３において、プロセッサ３０１は、特定の通信相手分類情報５０３が行動分類テーブル６００に存在しないと判定された場合、特定の通信相手分類情報５０３の行動の分類結果と、ラベルテーブル５００に記憶された特定の通信相手分類情報５０３の行動分類（旧ラベル）５０６と、に基づいて、特定の通信相手分類情報５０３の時系列な行動である特定の行動シーケンス７０１を生成し、行動シーケンステーブル７００を用いて、特定の行動シーケンス７０１の頻度７０２が所定頻度以下であるか否かを判定する（ステップＳ１４０８）。
【０１２６】
プロセッサ３０１は、特定の行動シーケンス７０１の頻度７０２が所定頻度以下であると判定された場合、特定の通信相手分類情報５０３の行動の分類結果を選択する（ステップＳ１４０７、Ｓ１４０９）。
【０１２７】
プロセッサ３０１は、選択された特定の通信相手分類情報５０３の行動の分類結果を出力する（ステップＳ１０１０）。
【０１２８】
選択された特定の通信相手分類情報５０３の行動の分類結果は、その通信相手にとって初出の行動であり、かつ、その通信相手を含む通信相手集団の過去の行動において低頻度の行動シーケンスであるため、手口変化の関連性が高いアラートに属する。したがって、分析装置１０３は、アラート群から手口変化の関連性が高いアラートを自動的に絞り込むことができる。このように、どのアラートが手口変化の関連性が高いかをセキュリティアナリスト１４１が判断する必要がないため、セキュリティアナリスト１４１の負担軽減を図ることができる。
【０１２９】
（３）また、上記（１）の分析装置１０３において、行動分類テーブル６００は、通信相手分類情報５０３の行動に、当該行動が正常な行動であるか異常な行動であるかを示す行動属性と、通信相手分類情報５０３の行動の出現頻度と、が対応付けられた情報である。
【０１３０】
プロセッサ３０１は、特定の通信相手分類情報５０３の行動属性が正常であり、かつ、特定の通信相手分類情報５０３の行動の出現頻度が所定頻度以下であると判定された場合、特定の行動シーケンス７０１が長期攻撃の一部７０３であるか否かを判定する。
【０１３１】
（４）また、上記（１）の分析装置１０３において、行動シーケンステーブル７００は、行動シーケンス７０１に、行動シーケンス７０１の頻度７０２と、長期攻撃の一部７０３と、が対応付けられた情報である。
【０１３２】
プロセッサ３０１は、特定の行動シーケンス７０１が長期攻撃の一部７０３でないと判定された場合、特定の行動シーケンス７０１の頻度７０２が所定頻度以下であるか否かを判定する（ステップＳ１４０８）。
【０１３３】
プロセッサ３０１は、特定の行動シーケンス７０１の頻度７０２が所定頻度以下であると判定された場合、特定の通信相手分類情報５０３の行動の分類結果を選択する。
【０１３４】
選択された特定の通信相手分類情報５０３の行動の分類結果は、その通信相手にとって低頻度の行動であり、かつ、その通信相手を含む通信相手集団の過去の行動において過去に長期攻撃の一部であるため、手口変化の関連性が高いアラートに属する。したがって、分析装置１０３は、アラート群から手口変化の関連性が高いアラートを自動的に絞り込むことができる。このように、どのアラートが手口変化の関連性が高いかをセキュリティアナリスト１４１が判断する必要がないため、セキュリティアナリスト１４１の負担軽減を図ることができる。
【０１３５】
（５）また、上記（１）の分析装置１０３において、プロセッサ３０１は、特定の通信相手分類情報５０３が行動分類テーブル６００に存在しないと判定された場合、特定の通信相手分類情報５０３と、特定の通信相手分類情報５０３の行動の分類結果と、を対応付けて行動分類テーブル６００に登録する。
【０１３６】
これにより、行動分類テーブル６００を自動的に更新することができ、分析装置１０３の管理者（セキュリティアナリスト１４１でもよい。）負担の軽減を図ることができる。
【０１３７】
（６）また、上記（１）の分析装置１０３において、プロセッサ３０１は、特定の行動シーケンス７０１が行動シーケンステーブル７００に存在しなかった場合、特定の行動シーケンス７０１を行動シーケンステーブル７００に登録する。
【０１３８】
これにより、行動シーケンステーブル７００を自動的に更新することができ、分析装置１０３の管理者（セキュリティアナリスト１４１でもよい。）負担の軽減を図ることができる。
【０１３９】
（７）また、上記（１）の分析装置１０３において、プロセッサ３０１は、監視対象システム１１０の挙動を示す特徴量を記憶する特徴量テーブル４００にアクセス可能である。
【０１４０】
プロセッサ３０１は、第１所定期間以前の第２所定期間内における特徴量と、第２所定期間内における通信相手分類情報５０３の行動の分類結果と、の組み合わせに基づいて、通信相手分類情報５０３の行動の分類結果を予測する分類器９００を生成する（ステップＳ１００２）。
【０１４１】
プロセッサ３０１は、第１所定期間内における監視対象システム１１０の挙動を示す特徴量を特徴量テーブル４００から取得し、当該取得した特徴量を分類器９００に与えることにより、通信相手分類情報５０３の行動の分類結果を取得する。
【０１４２】
（８）また、上記（７）の分析装置１０３において、プロセッサ３０１は、選択された特定の通信相手分類情報５０３の行動の分類結果と、当該分類結果に対応し、かつ、第１所定期間内における監視対象システム１１０の挙動を示す特徴量と、に基づいて、分類器９００を再学習する（ステップＳ１０１３）。
【０１４３】
これにより、分類器９００による分類精度の向上を図ることができる。
【０１４４】
（９）また、上記（８）の分析装置１０３において、プロセッサ３０１は、特定の通信相手分類情報５０３の行動の分類結果を追加対象分類結果として分類結果別に集計し、追加対象分類結果の総数に対する分類結果別の数を示す比率を算出する（ステップＳ１６０３）。
【０１４５】
プロセッサ３０１は、各比率と所定の目標比率との差が許容範囲内であるか否かを判断する（ステップＳ１６０４）。
【０１４６】
プロセッサ３０１は、各比率と所定の目標比率との差が許容範囲内である場合に（ステップＳ１６０４：Ｙｅｓ）、追加対象分類結果と、追加対象分類結果に対応し、かつ、第１所定期間内における監視対象システム１１０の挙動を示す特徴量と、に基づいて、分類結果を再学習する（ステップＳ１６０９）。
【０１４７】
プロセッサ３０１は、いずれかの比率と所定の目標比率との差が許容範囲内である場合に（ステップＳ１６０４：Ｎｏ）、選択されなかった特定の通信相手分類情報５０３の行動の分類結果を追加対象分類結果に追加して、各比率を再算出する（ステップＳ１６０５〜Ｓ１６０７、Ｓ１６０３）。
【０１４８】
これにより、追加対象分類結果が特定の分類結果に集中しないよう、分類結果別の周係数が調整される。したがって、分析装置１０３は、追加対象分類結果で分類器９００を再学習する際に、セキュリティアナリスト１４１へ問い合わせる回数を最小限にしつつ、時間経過とともに手口が変わるサイバー攻撃に対応することができる。
【０１４９】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０１５０】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ３０１がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１５１】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。
【０１５２】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１５３】
１０１  アラート管理装置
１０２  ログ収集装置
１０３  分析装置
１１０  監視対象システム
１２０  通信端末
１３１  機械学習処理
１３２  アラート分類処理
１３３  サンプリング処理
１３４  通信相手別異常行動判定処理
１３５  行動別異常行動判定処理
１３６  フィードバック処理
１３７  調整処理
１４０  アナリスト端末
１４１  セキュリティアナリスト
２０１  外部脅威情報データベース
３００  コンピュータ
３０１  プロセッサ
３０２  記憶デバイス
４００  特徴量テーブル
４０１  アラート識別子
５００  ラベルテーブル
５０３  通信相手分類情報
６００  行動分類テーブル
７００  行動シーケンステーブル
７０１  行動シーケンス
７０２  頻度
７０３  長期攻撃の一部
８００  比率テーブル
９００  分類器
９０１  学習部
９０２  予測部
９０３  第１判定部
９０４  第２判定部
９１１  サンプリング候補リスト
９１２  追加学習用アラートリスト
【図１】
2020113216.tif 000003
【図２】
2020113216.tif 000004
【図３】
2020113216.tif 000005
【図４】
2020113216.tif 000006
【図５】
2020113216.tif 000007
【図６】
2020113216.tif 000008
【図７】
2020113216.tif 000009
【図８】
2020113216.tif 000010
【図９】
2020113216.tif 000011
【図１０】
2020113216.tif 000012
【図１１】
2020113216.tif 000013
【図１２】
2020113216.tif 000014
【図１３】
2020113216.tif 000015
【図１４】
2020113216.tif 000016
【図１５】
2020113216.tif 000017
【図１６】
2020113216.tif 000018