(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】分析装置、分析方法、および、分析プログラム
(51)【国際特許分類】
H04L 41/06 20220101AFI20241106BHJP
H04L 43/04 20220101ALI20241106BHJP
【FI】
H04L41/06
H04L43/04
(21)【出願番号】P 2023526786
(86)(22)【出願日】2021-06-10
(86)【国際出願番号】 JP2021022220
(87)【国際公開番号】W WO2022259496
(87)【国際公開日】2022-12-15
【審査請求日】2023-09-28
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】篠原 正紀
(72)【発明者】
【氏名】小山 高明
(72)【発明者】
【氏名】永渕 幸雄
(72)【発明者】
【氏名】青柳 真紀子
(72)【発明者】
【氏名】寺本 泰大
【審査官】羽岡 さやか
(56)【参考文献】
【文献】中国特許出願公開第112600792(CN,A)
【文献】特開2017-111796(JP,A)
【文献】国際公開第2016/208158(WO,A1)
【文献】特表2017-509262(JP,A)
【文献】井原 敏宏,ケーススタディ 活用 ケイ・オプティコム,日経コンピュータ no.921 NIKKEI COMPUTER,日本,日経BP社 Nikkei Business Publications,Inc.,2016年09月15日,P.54-57
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/00-43/55
(57)【特許請求の範囲】
【請求項1】
正常な通信の特徴を示すモデルに基づき、正常な通信ではないと判定された通信のアラートを蓄積する蓄積部と、
前記蓄積されたアラートに含まれる通信の特徴量を用いて、前記アラートのクラスタリングを行うクラスタリング部と、
前記クラスタリングにより生成されたクラスタそれぞれについて、前記クラスタが同種のアラートにより構成されているか否かを判定する判定部と、
前記クラスタリングの結果と、前記クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを出力する結果出力部と、
を備えることを特徴とする分析装置。
【請求項2】
前記クラスタリング部は、
前記モデルの学習に用いた通信の特徴量と、前記アラートに含まれる通信の特徴量とを比較し、前記通信の端末機器のIPアドレス、セッションの送信元IPアドレス、セッションの送信先IPアドレス、セッションの送信先ポート番号およびプロトコル番号の組み合わせが異なるアラートを、前記クラスタリングの対象から除いてクラスタリングを行うこと
を特徴とする請求項1に記載の分析装置。
【請求項3】
前記クラスタリング部は、
前記アラートに含まれる通信の特徴量のうち、セッション持続時間、正方向総バイト数、正方向総パケット数、逆方向総バイト数および逆方向総パケット数の少なくともいずれかを用いて、前記アラートのクラスタリングを行うこと
を特徴とする請求項1に記載の分析装置。
【請求項4】
前記クラスタリング部は、
端末機器ごとに、前記モデルの学習に用いられた通信の特徴量の値と、前記アラートに含まれる当該通信の特徴量の値との差分を算出し、前記特徴量の差分の値を対数スケールに変換した値を用いて、前記アラートのクラスタリングを行うこと
を特徴とする請求項1に記載の分析装置。
【請求項5】
前記判定部は、
前記生成されたクラスタごとに、当該クラスタを構成するアラートの数の、全アラートの数に対する比率が、所定の閾値以上のクラスタを、同種のアラートのアラートにより構成されるクラスタと判定する
ことを特徴とする請求項1に記載の分析装置。
【請求項6】
前記判定部は、
前記生成されたクラスタごとに、当該クラスタにアラートの対象となった端末機器が何台含まれるかを算出し、前記算出した台数が、所定の閾値以下であるクラスタを、同種のアラートのアラートにより構成されるクラスタと判定する
ことを特徴とする請求項1に記載の分析装置。
【請求項7】
前記判定部は、
前記生成されたクラスタの散布図を作成し、前記散布図上のクラスタの面積と、当該クラスタに含まれるアラート数とを用いて、当該クラスタの密度を算出し、前記算出した密度が、所定の閾値以上のクラスタを、同種のアラートから構成されるクラスタと判定する ことを特徴とする請求項1に記載の分析装置。
【請求項8】
分析装置により実行される分析方法であって、
正常な通信の特徴を示すモデルに基づき、正常な通信ではないと判定された通信のアラートを蓄積する工程と、
前記蓄積されたアラートに含まれる通信の特徴量を用いて、前記アラートのクラスタリングを行うクラスタリングを行う工程と、
前記クラスタリングにより生成されたクラスタそれぞれについて、前記クラスタが同種のアラートにより構成されているか否かを判定する工程と、
前記クラスタリングの結果と、前記クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを出力する工程と、
を含むことを特徴とする分析方法。
【請求項9】
正常な通信の特徴を示すモデルに基づき、正常な通信ではないと判定された通信のアラートを蓄積する工程と、
前記蓄積されたアラートに含まれる通信の特徴量を用いて、前記アラートのクラスタリングを行うクラスタリングを行う工程と、
前記クラスタリングにより生成されたクラスタそれぞれについて、前記クラスタが同種のアラートにより構成されているか否かを判定する工程と、
前記クラスタリングの結果と、前記クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを出力する工程と、
をコンピュータに実行させるための分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信の異常を示すアラートを分析するための、分析装置、分析方法、および、分析プログラムに関する。
【背景技術】
【0002】
従来技術において、正常な通信の特徴を示すモデルに基づき、通信の異常検知を行う場合、検知対象の通信に新たな通信が追加されると、追加された通信が正常な通信であっても異常として検知(過検知)されてしまう。その結果、同じようなアラートが大量に発生してしまう可能性がある。ここで、運用者は、アラートが過検知か否かの判断を端末機器ごとアラートごとに行う。このため、アラートが大量に発生すると、運用者の作業が膨大になる。
【0003】
そこで、運用者の作業負荷を削減するため、いくつかの技術が提案されている。例えば、検知システムがアラートを提示する際に、アラートの示す脅威のタイプ、端末機器ID、プロトコル、ポート番号等のカテゴリ変数が同じものをまとめて提示する技術がある(非特許文献1参照)。また、検知システムが、アラートの示すIPアドレス、ポート番号、プロトコル番号等のカテゴリ変数や、通信開始日時をキーとしてアラートをフィルタリングする技術がある(特許文献1,2参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-005184号公報
【文献】特開2020-135655号公報
【非特許文献】
【0005】
【文献】NOZOMI Guardian、[2021年5月25日検索]、インターネット<URL:https://www.exclusive-networks.com/fr/wp-content/uploads/sites/17/2020/12/FR-VR-Nozomi-Networks-Guardian.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上記した技術はいずれも、アラートのうち、通信先等の特徴が同じでデータ量等が異なる通信のアラートについては、グルーピングができない。また、上記した技術により、データ量に基づいてアラートのグルーピングを行おうとしても、グルーピングの対象の特徴量の項目数が多くなると、各グループの特徴が不明確になってしまう。そのため、従来技術によりアラートをグルーピングしたとしても、アラートが過検知によるものか否かの判断に膨大な作業を要する。
【0007】
そこで、本発明は、前記した問題を解決し、アラートが過検知によるものか否かの判断に要する作業を削減することを課題とする。
【課題を解決するための手段】
【0008】
前記した課題を解決するため、本発明は、正常な通信の特徴を示すモデルに基づき、正常な通信ではないと判定された通信のアラートを蓄積する蓄積部と、前記蓄積されたアラートに含まれる通信の特徴量を用いて、前記アラートのクラスタリングを行うクラスタリング部と、前記クラスタリングにより生成されたクラスタそれぞれについて、前記クラスタが同種のアラートにより構成されているか否かを判定する判定部と、前記クラスタリングの結果と、前記クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを出力する結果出力部と、を備えることを特徴とする。
【発明の効果】
【0009】
本発明によれば、アラートが過検知によるものか否かの判断に要する作業を削減することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、分析システムの構成例および概要を説明するための図である。
【
図2】
図2は、分析サーバがアラートのクラスタリングに用いる項目の例を示す図である。
【
図3】
図3は、分析サーバによるクラスタリングの例を示す図である。
【
図4】
図4は、分析サーバの処理手順の例を示すフローチャートである。
【
図5】
図5は、分析サーバの処理手順の例を示すフローチャートである。
【
図6】
図6は、分析サーバによるアラートのクラスタリングの結果を用いた、運用者によるアラートの対応例を示す図である。
【
図7】
図7は、分析サーバによるアラートのクラスタリングの結果と、同種のアラートの判定結果の例を示す図である。
【
図8】
図8は、分析プログラムを実行するコンピュータの構成例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、以下に説明する実施形態に限定されない。
【0012】
[概要]
まず、
図1を参照しながら、分析サーバ(分析装置)10を含む分析システム1の動作概要を説明する。
【0013】
分析システム1は、センシング装置2と分析サーバ10とを備える。センシング装置2は、端末機器(例えば、IoT機器)の通信を観測する。
【0014】
例えば、センシング装置2は、端末機器が接続するNW(ネットワーク)機器のミラー設定により、当該端末機器の通信を観測する。そして、センシング装置2は、端末機器の通信の観測結果を加工した情報(加工情報)を生成し、その加工情報から通信の特徴量を生成し、分析サーバ10へ送信する。
【0015】
なお、上記の通信の特徴量は、例えば、当該通信を行う端末機器のIPアドレス、セッションの送信元IPアドレス、セッションの送信先IPアドレス、セッションの送信先ポート番号、プロトコル番号、セッション持続時間、正方向総バイト数、正方向総パケット数、逆方向総バイト数、逆方向総パケット数等を示した情報である。
【0016】
分析サーバ10は、センシング装置2から送信された通信の特徴量と、正常な通信の特徴を示すモデルとに基づき、当該通信が正常な通信か否かを判定し、当該通信が異常であると判定した場合、アラートを出力する。
【0017】
例えば、分析サーバ10は、センシング装置2から送信された通信の特徴量と、正常な通信の特徴を示すモデルとの乖離を示すアノマリスコアを算出し、アノマリスコアが所定の閾値を超える場合、アラートを出力する。その後、分析システム1の運用者は、アラートの内容を確認し、当該アラートが過検知であればその旨をフィードバックする。ここでのフィードバックは、例えば、運用者が、当該アラートが過検知であることを分析サーバ10に登録することで、分析サーバ10において同種の特徴量については以後はアラートが発生しないようにする作業である。
【0018】
ここで、大量のアラートが発生すると、運用者による上記の確認作業が膨大になる。そこで、運用者が上記の確認作業を効率的に行える(同種のアラートの確認作業をまとめて行える)よう、分析サーバ10は、各クラスタの特徴が明確に現れるような、アラートのクラスタリングを行う。
【0019】
例えば、分析サーバ10は、アラートのクラスタリングを行う際、上記のモデルの学習に用いられた通信データに含まれない通信(例えば、新規の端末機器による通信)のアラートを、クラスタリングの対象から除外する。また、分析サーバ10は、通信の特徴が現れやすい特徴量の項目(例えば、セッション持続時間、正方向総バイト数、正方向総パケット数、逆方向総バイト数、逆方向総パケット数等)を用いて、アラートをクラスタリングする。さらに、分析サーバ10は、アラートのクラスタリングを行う際、アラートに示される端末機器ごとに、項目ごとに、モデルの学習に用いられた値との差分をとり、正規化を行った値でクラスタリングを行う。
【0020】
このようにすることで、分析サーバ10は、各クラスタの特徴が明確に現れるようなアラートのクラスタリングを行うことができる。
【0021】
また、分析サーバ10は、クラスタそれぞれについて同種のアラートから構成されるか否かの判定結果を出力する。これにより、運用者は、クラスタのうち、同種のアラートから構成されるため、一度の過検知判断で済ませられるクラスタを識別することができる。その結果、アラートが過検知によるものか否かの判断に要する作業を削減することができる。
【0022】
また、分析サーバ10は、アラートのクラスタリングを行う際、特定のペイロードに依存したペイロード情報も利用しないため、暗号化された通信のアラートのクラスタリングにも対応することができる。
【0023】
[構成例]
次に、
図1を参照しながら、分析サーバ10の構成例を説明する。分析サーバ10は、記憶部12と、特徴量受付部131と、学習部132と、分析部(蓄積部)133と、画面表示処理部134と、クラスタリング部135と、判定部136と、結果出力部137とを備える。
【0024】
記憶部12は、分析サーバ10が各種処理を実行する際に参照する情報や、各種処理の実行結果を記憶する。
【0025】
例えば、記憶部12は、センシング装置2から取得した通信の特徴量、学習部132により学習された正常な通信の特徴を示すモデル、モデルの学習に用いられた特徴量の通信タプル(初期タプル)、分析部133による通信の分析結果(例えば、上記のアノマリスコア)、上記のモデルに基づき正常な通信ではないと判定された通信のアラート群等を記憶する。
【0026】
なお、以下の説明において、特徴量に含まれるカテゴリ変数の一部を通信タプルと呼ぶ。このうち、モデルの学習に用いた特徴量の通信タプルを初期タプルと呼ぶ。初期タプルは、例えば、モデルの学習に用いられた特徴量に含まれる、端末機器のIPアドレス、セッションの送信元IPアドレス、セッションの送信先IPアドレス、セッションの送信先ポート番号、プロトコル番号等であるが、上記の5つに限定されない。
【0027】
特徴量受付部131は、センシング装置2から通信の特徴量を受け付ける。そして、特徴量受付部131は、受け付けた通信の特徴量を記憶部12に蓄積する。例えば、特徴量受付部131は、まず、モデルの学習用の通信の特徴量(正常な通信の特徴量)を受け付け、記憶部12に蓄積する。その後、特徴量受付部131は、検知対象の通信の特徴量を受け付け、記憶部12に蓄積する。
【0028】
学習部132は、記憶部12に蓄積された通信の特徴量(正常な通信の特徴量)を用いて、正常な通信の特徴を示すモデルの学習を行う。その後、学習部132は、学習されたモデルの各パラメータ、モデルの学習に用いたデータ(例えば、初期タプル等)を、記憶部12に記憶する。
【0029】
分析部133は、学習部132により学習されたモデルを用いて、検知対象の通信の分析を行う。例えば、分析部133は、検知対象の通信の特徴量と上記のモデルとの乖離を示すアノマリスコアを算出する。そして、分析部133は、アノマリスコアが所定の閾値を超える場合(つまり、正常な通信ではない可能性が高い場合)、アラートを出力する。アラートは、例えば、アラートの対象となった通信の識別情報、当該通信の発生日時等を含む。出力されたアラートは、記憶部12に蓄積される。
【0030】
画面表示処理部134は、記憶部12に蓄積されたアラートを画面表示する。例えば、画面表示処理部134は、運用者の指示入力に基づき、記憶部12に蓄積されたアラートの一覧を画面表示する。これにより、運用者は、どのようなアラートが出力されたかを画面上で確認することができる。
【0031】
クラスタリング部135は、記憶部12に蓄積されたアラートに含まれる通信の特徴量に基づき、アラートのクラスタリングを行う。
【0032】
例えば、クラスタリング部135は、記憶部12から、アラートと、当該アラートの対象となっている通信の特徴量とを取得する。そして、クラスタリング部135は、取得した通信の特徴量に基づきアラートのクラスタリングを行う。ここで、クラスタリング部135は、各クラスタの特徴が明確に現れるように、アラートの対象となっている通信の特徴量のうち、クラスタリングに用いる特徴量の項目の絞り込みと正規化を行う。
【0033】
例えば、クラスタリング部135は、モデルの学習に用いられた特徴量の通信タプル(初期タプル)と異なる通信タプルのアラートを、クラスタリングの対象から除外する。例えば、クラスタリング部135は、モデルの学習に用いたられた特徴量の通信タプル(初期タプル)と、アラートに含まれる通信の特徴量の通信タプルとを比較し、カテゴリ変数(端末機器自身のIPアドレス、セッションの送信元IPアドレス、セッションの送信先IPアドレス、セッションの送信先ポート番号およびプロトコル番号の組み合わせ)が異なるアラートをクラスタリングの対象から除外する。
【0034】
このようにすることで、クラスタリング部135は、例えば、新規の端末機器からの通信等、アラートの理由が明確なアラートをクラスタリングの対象から除外することができる。
【0035】
また、クラスタリング部135は、アラートに含まれる情報のうち、通信の発生日時、アノマリスコア等の情報を除外してクラスタリングを行う。例えば、クラスタリング部135は、アラートに含まれる通信の特徴量のうち、セッション持続時間、正方向総バイト数、正方向総パケット数、逆方向総バイト数、および、逆方向総パケット数の少なくともいずれかを用いて、アラートのクラスタリングを行う。
【0036】
さらに、クラスタリング部135は、端末機器ごとに、モデルの学習に用いられた通信の特徴量の値(初期学習時の値)と、アラートに含まれる当該通信の特徴量の値との差分を正規化した値を用いて、アラートのクラスタリングを行う。
【0037】
例えば、クラスタリング部135は、端末機器ごとに、アラートの通信の特徴量のうち、セッション持続時間、正方向総バイト数、正方向総パケット数、逆方向総バイト数、逆方向総パケット数の値それぞれについて、初期学習時の値との差分を算出する。そして、クラスタリング部135は、その差分を対数スケールに変換した値を用いて、アラートのクラスタリングを行う(
図2参照)。
【0038】
クラスタリング部135によるクラスタリングの結果の例を、
図3の符号301に示す。ここでは、クラスタリング部135が、5つの端末機器(Iot-A、Iot-B、Iot-C、Iot-D、Iot-E)に関する165個のアラートを、セッション持続時間、正方向総バイト数、正方向総パケット数、逆方向総バイト数および逆方向総パケット数の5つの特徴量に基づきクラスタリングした結果(cluster0~cluster7)を示す。なお、符号301は、上記のクラスタリングの結果を、セッション持続時間および逆方向総バイト数を軸とする方向から見た状態を示している。
【0039】
なお、クラスタリング部135が用いるクラスタリングアルゴリズムは、例えば、Birch、k-means等である。クラスタリング部135がどのようなクラスタリングアルゴリズムを用いるかは、分析サーバ10のユーザが設定可能である。
【0040】
図1の説明に戻る。判定部136は、クラスタリング部135により生成された各クラスタが同種のアラートにより構成されているか否かを判定する。
【0041】
例えば、判定部136は、全アラートに対する各クラスタのアラート数の比率、各クラスタにおけるアラートの対象となった端末機器の数、各クラスタの密度等に基づき、各クラスタが同種のアラートから構成されているか否かを判定する。
【0042】
例えば、判定部136は、クラスタごとに、(当該クラスタを構成するアラートの数/全アラートの数)の値を算出し、その値が所定の閾値(例えば、70%)以上のクラスタを、同種のアラートのアラートにより構成されるクラスタと判定する。
【0043】
また、例えば、判定部136は、クラスタごとに、当該クラスタにアラートの対象となった端末機器が何台含まれるかを算出し、算出した台数が、所定の閾値以下(例えば、1台)であるクラスタを、同種のアラートにより構成されるクラスタと判定する。
【0044】
また、例えば、判定部136は、クラスタの散布図を作成し、散布図上のクラスタの面積と、当該クラスタに含まれるアラート数とを用いて、当該クラスタの密度を算出し、算出した密度が、所定の閾値以上のクラスタを、同種のアラートから構成されるクラスタと判定する。例えば、判定部136は、クラスタごとに、(当該クラスタを構成するアラートの数/当該クラスタの面積)を算出し、算出した値が、所定の閾値(例えば、1000)以上であるクラスタを、同種のアラートにより構成されるクラスタと判定する。
【0045】
例えば、判定部136が、
図3の符号301に示すクラスタ(cluster1~cluster7)について、符号302に示す情報に基づき、以下の(1)~(3)のいずれかの条件を満たすクラスタを、同種のアラートから構成されるクラスタと判定する場合について説明する。
【0046】
(1)全アラート数に対する当該クラスタのアラート数の比率が70%以上
(2)当該クラスタにおけるアラートの対象となった端末機器の数が1台
(3)当該クラスタの密度が1000以上
【0047】
なお、符号302に示す情報は、符号301に示すクラスタ(cluster0~cluster7)ごとに、各端末機器(Iot-A、Iot-B、Iot-C、Iot-D、Iot-E)のアラート数、面積、密度を示した情報である。
【0048】
符号302に示す情報を参照すると、全アラートの対する当該クラスタのアラート数の比率が70%以上のクラスタは存在しない。ただし、クラスタ0(cluster0)は、Iot-Cのアラートのみのクラスタであり、密度も1000以上である。また、クラスタ3(cluster3)も、Iot-Eのアラートのみのクラスタであり、密度も1000以上である。よって、判定部136は、cluster0およびcluster3を、同種のアラートにより構成されるクラスタと判定する。
【0049】
図1の説明に戻る。結果出力部137は、クラスタリング部135によるクラスタリングの結果と、判定部136によるクラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを出力する。
【0050】
例えば、結果出力部137は、
図3の符号301に示すクラスタリングの結果と、符号301に示す各クラスタ(cluster1~cluster7)のうち、cluster0およびcluster3が同種のアラートにより構成されているクラスタである旨の情報とを出力する。
【0051】
このような分析サーバ10によれば、アラートのクラスタリングを行う際に、各クラスタの特徴が明確に現れたクラスタを生成することができる。また、分析サーバ10は、クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果を出力する。これにより、運用者は、一度の過検知判断で済ませられるクラスタを識別することができる。その結果、アラートが過検知によるものか否かの判断に要する作業を削減することができる。
【0052】
[処理手順の例]
次に、
図4、
図5を用いて、分析サーバ10の処理手順の例を説明する。まず、
図4を用いて、分析サーバ10がアラートを蓄積する処理を説明し、次に、
図5を用いて、分析サーバ10が蓄積されたアラートのクラスタリングを行う処理を説明する。
【0053】
まず、分析サーバ10の特徴量受付部131は、センシング装置2から送信された通信の特徴量(正常な通信の特徴量)を記憶部12に蓄積する(
図4のS1)。次に、学習部132は、S1で蓄積された通信の特徴量を用いて、正常な通信の特徴を示すモデルの学習(初期学習)を行う(S2)。
【0054】
S2のモデルの学習が完了すると、特徴量受付部131は、検知対象の通信の特徴量を記憶部12に蓄積する(S3)。そして、分析部133は、検知対象の通信の特徴量と、S2で学習したモデルとの乖離を示すアノマリスコアを算出する(S4)。
【0055】
ここで、分析部133は、S4で算出したアノマリスコアが所定の閾値を超えると判定した場合(S5でYes)、当該通信のアラートを生成し、記憶部12に蓄積する(S6)。そして、まだいずれかの検知対象の通信に対し、処理を実行していなければ(S7でNo)、分析サーバ10は、まだ処理を実行していない検知対象の通信について、S4以降の処理を実行する。一方、全ての検知対象の通信に対し、処理を実行済みであれば(S7でYes)、分析サーバ10は処理を終了する。
【0056】
また、分析部133が、S4で算出したアノマリスコアが所定の閾値以下と判定し(S5でNo)、まだいずれかの検知対象の通信に対し処理を実行済みでなければ(S7でNo)、まだ処理を実行していない検知対象の通信について、S4以降の処理を実行する。
【0057】
次に、
図5を用いて、分析サーバ10が蓄積されたアラートのクラスタリングを行う処理を説明する。
【0058】
まず、分析サーバ10のクラスタリング部135は、記憶部12に蓄積されたアラートのうち、モデルの学習に用いた特徴量の通信タプル(初期タプル)と異なる通信タプルのアラートをクラスタリングの対象から除外する(
図5のS11)。
【0059】
例えば、クラスタリング部135は、モデルの学習に用いた通信タプル(初期タプル)と、アラートに含まれる通信の特徴量の通信タプルとを比較し、初期タプルとカテゴリ変数(端末機器のIPアドレス、セッションの送信元IPアドレス、セッションの送信先IPアドレス、セッションの送信先ポート番号およびプロトコル番号の組み合わせ)が異なるアラートをクラスタリングの対象から除外する。
【0060】
S11の後、クラスタリング部135は、アラートに含まれる通信の特徴量のうち、セッション持続時間、正方向総バイト数、正方向総パケット数、逆方向総バイト数、逆方向総パケット数に基づき、アラートをクラスタリングする(S12)。
【0061】
S12の後、判定部136は、S12のクラスタリングにより生成されたクラスタそれぞれについて、当該クラスタが同種のアラートにより構成されているか否かを判定する(S13)。
【0062】
例えば、判定部136は、全アラートに対する各クラスタのアラート数の比率、各クラスタにおけるアラートの対象となった端末機器の数、各クラスタの密度等に基づき、各クラスタが同種のアラートから構成されているか否かを判定する。
【0063】
S13の後、結果出力部137は、S12のクラスタリングの結果と、S13におけるクラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを出力する(S14)。
【0064】
[運用者によるアラートの対応例]
次に、
図6を用いて、分析サーバ10が出力した、アラートのクラスタリングの結果と、クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを用いた、運用者によるアラートの対応例について説明する。
【0065】
例えば、分析サーバ10は、アラートの発生後、アラートのクラスタリングと、クラスタそれぞれが同種のアラートにより構成されているか否かの判定とを行う(S101:クラスタリング)。
【0066】
そして、運用者は、上記のアラートのクラスタリングの結果と、クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを用いてアラートの確認を行う。例えば、運用者は、1つのアラートごと、もしくはクラスタ単位で、S102~S108に示すアラートの確認処理を未確認のアラートが無くなるまで行う。
【0067】
まず、運用者は、アラートの対象となっている通信パターンが、モデルの学習時には無かった新たな通信パターンか否かの確認を確認する(S102)。また、運用者は、アラートの対象となっている通信パラメータが、学習済みの通信パターンの新たな通信パラメータか否かを確認する(S103)。運用者は、上記の確認結果に基づき、アラートの対象となった端末機器の所轄の部署へ問合わせを行う(S104)。そして、問合わせの結果、端末機器に異常がある場合(S105でYes)、運用者は、当該異常に応じた対処を行う(S106)。そして、アラートの確認処理を終える。その後、分析サーバ10は監視を継続する。
【0068】
一方、問合わせの結果、端末機器に異常がなかった場合(S105でNo)、運用者は、当該アラートが過検知によるものか否かを判断する(S107)。そして、運用者が、当該アラートは過検知によるものと判断した場合(S107でYes)、過検知のフィードバックを実施する(S108)。このとき、運用者は、同種のアラートのクラスタについては、まとめて過検知のフィードバックを実施する。
【0069】
一方、運用者が、当該アラートは過検知によるものではないと判断した場合(S107でNo)、対処は行わず、アラートの確認処理を終える。そして、分析サーバ10は、端末機器の通信の監視を継続する。
【0070】
このように分析サーバ10がアラートのクラスタリングの結果と、クラスタそれぞれが同種のアラートにより構成されているか否かの判定結果とを出力することで、運用者は、同種のアラートのクラスタについては、クラスタ単位で過検知の判断を行い、フィードバックを実施することができる。その結果、アラートが過検知によるものか否かの判断に要する作業を削減することができる。
【0071】
[クラスタリングの実験結果]
次に、
図7を用いて、分析サーバ10による、アラートのクラスタリングの実験結果を説明する。ここでは、分析サーバ10が、処理対象とする通信に、正常状態の通信と比較して、正差分の小さな負荷2種類(10
0.2倍、10
0.4倍)、正差分の大きな負荷4種類(10
1倍、10
1.2倍、10
1.4倍、10
1.6倍)、負差分の小さな負荷3種類(10
-0.2倍、10
-0.4倍、10
-0.6倍)、相違通信タプルの負荷(カテゴリ変数による差異)の10パターンの負荷(通信に対する変更)を印加し、アラートを生成した。また、分析サーバ10は、アラートのクラスタリングアルゴリズムにBirchを用い、クラスタ数は最大で10個となるよう設定した。
【0072】
上記の条件に基づき、分析サーバ10が、上記の10パターンの通信に関するアラートをクラスタリングした結果を
図7に示す。
図7に示すように、相違通信タプルによるアラートを除く828件のアラートのうち、アラート比率が70%を超える最大クラスタに含まれるアラート数は643件であった。
【0073】
ここで、分析サーバ10が、上記のアラート比率が70%を超える最大クラスタを同種のアラートから構成されるクラスタと判定し、その判定結果を出力することにより、運用者は当該クラスタについての過検知の判断を一括して行うことができる。これにより、上記の643件のアラートが9件(負荷ごとに1件)に圧縮されるため、運用者が過検知の判断とする件数は、939件から305件に削減される(67.5%減)。
【0074】
[システム構成等]
また、図示した各部の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0075】
また、前記した実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0076】
[プログラム]
前記した分析サーバ10は、パッケージソフトウェアやオンラインソフトウェアとしてプログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置を分析サーバ10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等の端末等がその範疇に含まれる。
【0077】
また、分析サーバ10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の処理に関するサービスを提供するサーバ装置として実装することもできる。この場合、サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0078】
図8は、分析プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0079】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0080】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の分析サーバ10が実行する各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、分析サーバ10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0081】
また、上述した実施形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0082】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続される他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0083】
1 分析システム
2 センシング装置
10 分析サーバ
12 記憶部
131 特徴量受付部
132 学習部
133 分析部(蓄積部)
134 画面表示処理部
135 クラスタリング部
136 判定部
137 結果出力部