(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下に、本願に係る異常検知装置および異常検知方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係る異常検知装置および異常検知方法が限定されるものではない。
【0013】
[第一の実施の形態]
以下の実施の形態では、第一の実施の形態に係る通信システムの構成、異常検知装置の構成、異常検知装置における処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
【0014】
[通信システムの構成]
まず、
図1を用いて、第一の実施の形態に係る通信システムについて説明する。
図1は、第一の実施の形態に係る通信システムの構成の一例を示す図である。第一の実施の形態に係る通信システムは、異常検知装置10、複数の通信機器20A〜20C、複数のサーバ30A、30Bおよび複数のNW(Network)機器40を有し、各装置はネットワーク50を介して接続されている。なお、複数の通信機器20A〜20C、複数のサーバ30A、30Bについて、特に区別なく説明する場合には、通信機器20、サーバ30と記載する。また、
図1に示す各装置の数は、あくまで一例であり、これに限られるものではない。
【0015】
異常検知装置10は、各通信機器20A〜20Cの単位時間あたりのトラヒック量の最新情報をNW機器40から取得し、通信機器のトラヒック量から第一の期間におけるトラヒック量の平均値を算出し、該算出したトラヒック量の平均値が第一の閾値を上回った場合には、第一の期間の開始時点から所定時刻まで遡った時刻を開始時点とする第二の期間におけるトラヒック量の平均値を算出する。そして、異常検知装置10は、算出された第二の期間におけるトラヒック量の平均値が第一の閾値を上回った場合には、該当する通信機器20の異常を検知する。
【0016】
複数の通信機器20A〜20Cは、例えば、IoT機器である。各通信機器20A〜20Cは、正常時にはあらかじめ定められたサーバ30とだけ通信を行い、定められた以外のサーバ30やその他の通信機器20とは通信を行わない。各通信機器20A〜20Cは、自身が具備するセンサから取得すること等により生成された固定長のデータを一定周期毎にあらかじめ定められたサーバ30に送信する。
【0017】
また、各通信機器20A〜20Cは、あらかじめ定められたサーバ30へのデータ送信時に、無線圏外等の要因によりネットワーク50に接続できなかった場合にはデータ送信は行わず、次の送信タイミングにおいて未送信データをまとめて送信する。また、各通信機器20A〜20Cは、1回の送信タイミングで送信可能なデータサイズに上限があり、上限を超えた場合は次の送信タイミングでの送信を行う。
【0018】
複数のサーバ30A、30Bは、各通信機器20A〜20Cからのデータを受信し、サーバ30内のDB(Data Base)に格納する。NW機器40は、通信機器20からサーバ30へ送信されるデータを中継するルータやスイッチ等の中継装置である。NW機器40は、各通信機器20A〜20Cの通信トラヒック量を計測し、異常検知装置10に通知する。
【0019】
[異常検知装置の構成]
次に、
図2を用いて、
図1に示した異常検知装置10の構成を説明する。
図2は、第一の実施の形態に係る異常検知装置の構成例を示すブロック図である。
図2に示すように、この異常検知装置10は、通信処理部11、制御部12および記憶部13を有する。以下に異常検知装置10が有する各部の処理を説明する。
【0020】
通信処理部11は、接続される装置との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部11は、NW機器40から各通信機器20A〜20Cの通信トラヒック量を受信する。
【0021】
また、記憶部13は、制御部12による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、通信機器トラヒック情報記憶部13aを有する。例えば、記憶部13は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【0022】
通信機器トラヒック情報記憶部13aは、各通信機器20の単位時間あたりのトラヒック量を記憶する。ここで、
図3の例を用いて、通信機器トラヒック情報記憶部13aに記憶される情報について説明する。
図3は、通信機器トラヒック情報記憶部に記憶される情報の一例を示す図である。
図3に例示するように、通信機器トラヒック情報記憶部13aは、トラヒック量が計測された「時刻」と、各通信機器20A〜20Cの「トラヒック量」とを対応付けて記憶する。
【0023】
図3に例示するように、通信機器トラヒック情報記憶部13aは、時刻「1:50」に対応付けて、通信機器20Aのトラヒック量「15000」バイト、通信機器20Bのトラヒック量「7000」バイト、および、通信機器20Cのトラヒック量「10000」バイトを記憶する。
【0024】
制御部12は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、取得部12a、算出部12bおよび検知部12cを有する。ここで、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。
【0025】
取得部12aは、サーバ30に固定長のデータを定期的に送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得する。具体的には、取得部12aは、所定時間が経過するたびに、各通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、取得したトラヒック量を通信機器トラヒック情報記憶部13aに格納する。
【0026】
算出部12bは、取得部12aによって取得された通信機器20のトラヒック量から、第一の期間におけるトラヒック量の平均値を算出し、該算出したトラヒック量の平均値が第一の閾値を上回った場合には、第一の期間の開始時点から所定時刻まで遡った時刻を開始時点とする第二の期間におけるトラヒック量の平均値を算出する。具体的には、算出部12bは、取得部12aによって各通信機器20のトラヒック量を取得するたびに、第一の期間における平均トラヒック量をそれぞれ算出する。
【0027】
そして、算出部12bは、各通信機器20について、平均トラヒック量が第一の閾値を上回っているか判定する。この結果、算出部12bは、平均トラヒック量が第一の閾値を上回っていると判定した場合には、該当する通信機器20について、第二の期間の平均トラヒック量を算出する。
【0028】
ここで、
図4の例を用いて平均トラヒック量の算出処理を説明する。
図4は、平均トラヒック量の算出処理を説明する図である。
図4の例では、算出部12bは、あらかじめ設定した期間の平均トラヒック量として、開始時点「02:27」〜終了時点「02:31」の間の平均トラヒック量を計算する。そして、
図4の例では、あらかじめ設定した期間の平均トラヒック量が第一の閾値を上回る(
図4の(1)参照)。
【0029】
この場合には、算出部12bは、第一の期間の開始時点を、あらかじめ設定した時間幅減算した時刻までさかのぼり、平均トラヒック量を算出する(
図4の(2)参照)。
図4の例では、算出部12bは、開始時点「02:27」から22分を減算した「02:05」までさかのぼり、開始時点「02:05」〜終了時点「02:31」の間の平均トラヒック量を算出する。
【0030】
例えば、通信機器20がネットワーク50に接続できなかった後のデータ再送による一時的なトラヒック量の増加により、第一の期間においてトラヒック量の平均値が大きい場合には、過去に通信機器20がネットワーク50に接続できなかった期間(
図4の例では「02:00」〜「02:28」の期間)があるため、第一の期間の開始時点から所定時刻まで遡った時刻を開始時点とする第二の期間のトラヒック量の平均値は小さくなる。
【0031】
また、算出部12bは、第一の期間におけるトラヒック量の平均値が第一の閾値を上回った場合には、単位時間当たりのトラヒック量が第二の閾値を下回り、かつ、第三の閾値を上回るトラヒック量の時点まで遡り、該時点を開始時点とする第二の期間におけるトラヒック量の平均値を算出するようにしてもよい。
【0032】
ここで、
図5の例を用いて平均トラヒック量の算出処理を説明する。
図5は、平均トラヒック量の算出処理を説明する図である。
図5の例では、算出部12bは、あらかじめ設定した期間の平均トラヒック量として、開始時点「02:27」〜終了時点「02:31」の間の平均トラヒック量を計算する。そして、
図5の例では、あらかじめ設定した期間の平均トラヒック量が第一の閾値を上回る(
図5の(1)参照)。
【0033】
この場合には、算出部12bは、第一の期間の開始時点を、第二の閾値を下回り、かつ第三の閾値を上回る比較的正常な通信が発生する時刻までさかのぼり、平均トラヒック量と閾値の比較を行う(
図5の(2)参照)。
図5の例では、算出部12bは、開始時点「02:27」から、第二の閾値を下回り、かつ第三の閾値を上回る比較的正常な通信が発生する時刻「01:57」までさかのぼり、開始時点「01:57」〜終了時点「02:31」の間の平均トラヒック量を算出する。このように、通常の通信が発生していた時点まで溯って第二の期間を決めることができるため、より正確に異常の誤検知を防止することが可能である。
【0034】
検知部12cは、算出部12bによって算出された第二の期間におけるトラヒック量の平均値が第一の閾値を上回った場合には、通信機器20の異常を検知する。具体的には、検知部12cは、第二の期間におけるトラヒック量が算出された通信機器20について、第二の期間における平均トラヒック量が第一の閾値を上回るか否かを判定する。この結果、検知部12cは、第二の期間における平均トラヒック量が第一の閾値を上回る場合には、該当する通信機器20の異常を検知する。
【0035】
[異常検知装置の処理の流れ]
次に、
図6を用いて、第一の実施の形態に係る異常検知装置10の処理の流れを説明する。
図6は、第一の実施の形態に係る異常検知装置による処理を説明するフローチャートである。
【0036】
図6に示すように、異常検知装置10の取得部12aは、所定時間が経過すると(ステップS101肯定)、通信機器20のトラヒック情報をNW機器40から取得する(ステップS102)。具体的には、取得部12aは、所定時間が経過するたびに、各通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、取得したトラヒック量を通信機器トラヒック情報記憶部13aに格納する。
【0037】
そして、算出部12bは、第一の期間の平均トラヒック量を算出する(ステップS103)。具体的には、算出部12bは、取得部12aによって各通信機器20のトラヒック量を取得するたびに、第一の期間における平均トラヒック量をそれぞれ算出する。
【0038】
そして、算出部12bは、各通信機器20について、平均トラヒック量が第一の閾値を上回っているか判定する(ステップS104)。この結果、算出部12bは、各通信機器20について、平均トラヒック量が第一の閾値を上回っていないと判定した場合には(ステップS104否定)、そのまま処理を終了する。
【0039】
一方、算出部12bは、平均トラヒック量が第一の閾値を上回っていると判定した場合には(ステップS104肯定)、該当する通信機器20について、第二の期間の平均トラヒック量を算出する(ステップS105)。
【0040】
そして、検知部12cは、第二の期間における平均トラヒック量が第一の閾値を上回るか否かを判定する(ステップS106)。この結果、検知部12cは、第二の期間における平均トラヒック量が第一の閾値を上回っていないと判定した場合には(ステップS106否定)、そのまま処理を終了する。一方、検知部12cは、第二の期間における平均トラヒック量が第一の閾値を上回っていると判定した場合には(ステップS106肯定)、該当する通信機器20の異常を検知する(ステップS107)。
【0041】
[第一の実施の形態の効果]
このように、第一の実施の形態に係る異常検知装置10は、各通信機器20A〜20Cの単位時間あたりのトラヒック量の最新情報をNW機器40から取得し、通信機器のトラヒック量から第一の期間におけるトラヒック量の平均値を算出し、該算出したトラヒック量の平均値が第一の閾値を上回った場合には、第一の期間の開始時点から所定時刻まで遡った時刻を開始時点とする第二の期間におけるトラヒック量の平均値を算出する。そして、異常検知装置10は、算出された第二の期間におけるトラヒック量の平均値が第一の閾値を上回った場合には、該当する通信機器20の異常を検知する。このため、ネットワークにおける異常の誤検知を改善する。
【0042】
つまり、異常検知装置10は、例えば、第一の期間でトラヒック量の平均値が大きくても、第一の期間の開始時点から所定時刻まで遡った時刻を開始時点とする第二の期間におけるトラヒック量の平均値が第一の閾値以下であれば、通信機器20がネットワーク50に接続できなかった後のデータ再送による一時的なトラヒック量の増加であり、マルウェア感染等の異常でないものと判断することが可能であり、異常の誤検知を防止することが可能である。
【0043】
また、異常検知装置10は、第一の期間におけるトラヒック量の平均値が第一の閾値を上回った場合には、単位時間当たりのトラヒック量が第二の閾値を下回り、かつ、第三の閾値を上回るトラヒック量の時点まで遡り、該時点を開始時点とする第二の期間におけるトラヒック量の平均値を算出する。このため、通常の通信が発生していた時点まで溯って第二の期間を決めることができるため、より正確に異常の誤検知を防止することが可能である。
【0044】
[第二の実施の形態]
上述した第一の実施の形態では、通信機器20の平均トラヒック量を用いて、通信機器20の異常を検知する場合について説明したが、これに限定されるものではない。例えば、通信機器20の平均トラヒック量とサーバ30の平均トラヒック量とを用いて、通信機器20の異常を検知するようにしてもよい。
【0045】
そこで、以下では、第二の実施の形態に係る異常検知装置10Aが、所定期間における通信機器20のトラヒック量の平均値と、通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出し、サーバ30のトラヒック量の平均値に対する通信機器20のトラヒック量の平均値の割合が所定の閾値を上回った場合には、通信機器20の異常を検知する場合について説明する。なお、第一の実施の形態に係る通信システムと同様の構成や処理については説明を省略する。
【0046】
第二の実施の形態に係る通信システムにおける異常検知装置10Aは、サーバ30にデータを送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得する。そして、異常検知装置10Aは、取得された通信機器20のトラヒック量を用いて、所定期間における通信機器20のトラヒック量の平均値を算出し、サーバ30のトラヒック量を用いて、通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する。続いて、異常検知装置10Aは、サーバ30のトラヒック量の平均値に対する通信機器20のトラヒック量の平均値の割合が所定の閾値を上回った場合には、通信機器20の異常を検知する。
【0047】
第二の実施の形態に係る通信システムにおける各サーバ30A、30Bは、各通信機器20A〜20Cからのデータを受信し、サーバ内のDBに格納する。各サーバ30A、30Bは、通信機器20A〜20C毎のトラヒック量を計測し、異常検知装置10Aに提供する。通信機器20A〜20C毎のトラヒック量については、サーバのアクセスログに記録されたアドレスやデータサイズからネットワーク層のトラヒック量を算出してもよいし、その他の方法で算出してもよい。
【0048】
図7は、第二の実施の形態に係る異常検知装置の構成例を示すブロック図である。
図7に示すように、異常検知装置10Aは、通信処理部11、制御部12および記憶部13を有する。以下に異常検知装置10Aが有する各部の処理を説明する。
【0049】
通信処理部11は、接続される装置との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部11は、各通信機器20A〜20Cの通信トラヒック量をNW機器40から受信し、各サーバ30A、30Bの通信トラヒック量を各サーバ30A、30Bから受信する。
【0050】
また、記憶部13は、制御部12による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、通信機器トラヒック情報記憶部13a、サーバトラヒック情報記憶部13bおよび通信先サーバ情報記憶部13cを有する。通信機器トラヒック情報記憶部13aは、第一の実施の形態と同様に、各通信機器20の単位時間あたりのトラヒック量を記憶する。
【0051】
サーバトラヒック情報記憶部13bは、各サーバ30の通信機器20ごとの単位時間あたりのトラヒック量を記憶する。ここで、
図8の例を用いて、サーバトラヒック情報記憶部13bに記憶される情報について説明する。
図8は、サーバトラヒック情報記憶部に記憶される情報の一例を示す図である。なお、
図8の例では、サーバ30Aと各通信機器20A〜20Cとのトラヒック量を示すが、実際には、サーバトラヒック情報記憶部13bは、他のサーバ30Bのトラヒック量と各通信機器20A〜20Cとのトラヒック量も記憶している。
図8に例示するように、サーバトラヒック情報記憶部13bは、トラヒック量が計測された「時刻」と、サーバ30Aと各通信機器20A〜20Cとの「トラヒック量」とを対応付けて記憶する。
【0052】
図8の例を挙げて具体的に説明すると、サーバトラヒック情報記憶部13bは、時刻「1:50」に対応付けて、通信機器20Aのトラヒック量「15000」バイト、通信機器20Bのトラヒック量「0」バイト、および、通信機器20Cのトラヒック量「0」バイトを記憶する。
【0053】
通信先サーバ情報記憶部13cは、各通信機器20A〜20Cの正常時の通信先となるサーバ30の情報を保持する。ここで、
図9の例を用いて、通信先サーバ情報記憶部13cに記憶される情報について説明する。
図9は、通信先サーバ情報記憶部に記憶される情報の一例を示す図である。
図9に例示するように、通信先サーバ情報記憶部13cは、各「通信機器」と、各通信機器20A〜20Cの正常時の「通信先サーバ」とを対応付けて記憶する。
【0054】
図9の例を挙げて具体的に説明すると、通信先サーバ情報記憶部13cは、「通信機器20A」の正常時の通信先サーバとして「サーバ30A」を記憶し、「通信機器20B」および「通信機器20C」の正常時の通信先サーバとして「サーバ30B」を記憶する。
【0055】
制御部12は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、取得部12d、算出部12eおよび検知部12fを有する。
【0056】
取得部12dは、サーバ30にデータを送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、サーバ30の単位時間あたりのトラヒック量をサーバ30から取得する。具体的には、取得部12dは、所定時間が経過するたびに、サーバ30に固定長のデータを定期的に送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得して通信機器トラヒック情報記憶部13aに格納する。また、取得部12dは、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得し、サーバトラヒック情報記憶部13bに格納する。
【0057】
算出部12eは、取得部12dによって取得された通信機器20のトラヒック量を用いて、所定期間における通信機器20のトラヒック量の平均値を算出し、該算出したトラヒック量の平均値が第一の閾値を上回った場合には、サーバ30のトラヒック量を用いて、通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する。
【0058】
具体的には、算出部12eは、通信機器トラヒック情報記憶部13aに記憶された通信機器20のトラヒック量を参照し、所定期間における通信機器20の平均トラヒック量を算出する。そして、算出部12eは、所定期間における各通信機器20の平均トラヒック量が第一の閾値を上回っているか判定する。
【0059】
この結果、算出部12eは、平均トラヒック量が第一の閾値を上回っていると判定した場合には、該当する通信機器20について、通信先サーバ情報記憶部13cに記憶された情報を参照して、正常時の接続先となるサーバ30を特定する。そして、算出部12eは、サーバトラヒック情報記憶部13bに記憶されたサーバ30のトラヒック量を参照し、同一期間におけるサーバ30の平均トラヒック量を算出する。
【0060】
検知部12fは、サーバ30のトラヒック量の平均値に対する通信機器20のトラヒック量の平均値の割合が所定の閾値を上回った場合には、通信機器20の異常を検知する。具体的には、検知部12fは、サーバ30の平均トラヒック量に対する通信機器20の平均トラヒック量の割合を算出し、算出した平均トラヒック量の割合が所定の閾値を上回るか否かを判定する。この結果、検知部12fは、平均トラヒック量の割合が所定の閾値を上回る場合には、該当する通信機器20の異常を検知する。
【0061】
つまり、
図10に示すように、第二の実施の形態に係る異常検知装置10Aでは、サーバ30にデータを送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得する。そして、サーバ30の平均トラヒック量に対する通信機器20の平均トラヒック量の割合を算出し、算出した平均トラヒック量の割合が所定の閾値を上回るか否かを判定することで、通信機器20の異常の有無を確認する。
図10は、第二の実施の形態に係る異常検知装置による異常検知処理を説明する図である。
【0062】
次に、
図11を用いて、第二の実施の形態に係る異常検知装置10Aの処理の流れを説明する。
図11は、第二の実施の形態に係る異常検知装置による処理を説明するフローチャートである。
【0063】
図11に示すように、異常検知装置10Aの取得部12dは、所定時間が経過すると(ステップS201肯定)、通信機器20およびサーバ30のトラヒック情報を取得する(ステップS202)。具体的には、取得部12dは、所定時間が経過するたびに、サーバ30に固定長のデータを定期的に送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得して通信機器トラヒック情報記憶部13aに格納する。また、取得部12dは、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得し、サーバトラヒック情報記憶部13bに格納する。
【0064】
そして、算出部12eは、所定期間の平均トラヒック量を算出する(ステップS203)。具体的には、算出部12eは、通信機器トラヒック情報記憶部13aに記憶された通信機器20のトラヒック量を参照し、所定期間における通信機器20の平均トラヒック量を算出する。そして、算出部12eは、所定期間における各通信機器20の平均トラヒック量が第一の閾値を上回っているか判定する(ステップS204)。
【0065】
この結果、算出部12eは、各通信機器20について、平均トラヒック量が第一の閾値を上回っていないと判定した場合には(ステップS204否定)、そのまま処理を終了する。一方、算出部12eは、平均トラヒック量が第一の閾値を上回っていると判定した場合には(ステップS204肯定)、該当する通信機器20について、通信先サーバ情報記憶部13cに記憶された情報を参照して、正常時の接続先となるサーバ30を特定する(ステップS205)。そして、算出部12eは、サーバトラヒック情報記憶部13bに記憶されたサーバ30のトラヒック量を参照し、同一期間におけるサーバ30の平均トラヒック量を算出する(ステップS206)。
【0066】
そして、検知部12fは、サーバ30の平均トラヒック量に対する通信機器20の平均トラヒック量の割合を算出し(ステップS207)、算出した平均トラヒック量の割合が所定の閾値を上回るか否かを判定する(ステップS208)。この結果、検知部12fは、算出した平均トラヒック量の割合が所定の閾値を上回っていないと判定した場合には(ステップS208否定)、そのまま処理を終了する。一方、検知部12fは、平均トラヒック量の割合が所定の閾値を上回る場合には(ステップS208肯定)、該当する通信機器20の異常を検知する(ステップS209)。
【0067】
[第二の実施の形態の効果]
このように、第二の実施の形態に係る異常検知装置10Aは、サーバ30にデータを送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得する。そして、異常検知装置10Aは、取得された通信機器20のトラヒック量を用いて、所定期間における通信機器20のトラヒック量の平均値を算出し、サーバ30のトラヒック量を用いて、通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する。続いて、異常検知装置10Aは、サーバ30のトラヒック量の平均値に対する通信機器20のトラヒック量の平均値の割合が所定の閾値を上回った場合には、通信機器20の異常を検知する。このため、ネットワークにおける異常の誤検知を改善する。
【0068】
つまり、異常検知装置10Aは、例えば、通信機器20の送信量とサーバ30の受信量が不一致であれば、サーバ30のトラヒック量の平均値に対する通信機器20のトラヒック量の平均値の割合が大きくなり、通信機器20がマルウェア感染等により正常時の接続先となるサーバ30以外にデータを送信していると推測できる。一方、サーバ30のトラヒック量の平均値に対する通信機器20のトラヒック量の平均値の割合が所定の閾値以下である場合には、マルウェア感染等の異常でないものと判断することが可能であり、異常の誤検知を防止することが可能である。
【0069】
また、異常検知装置10Aは、サーバ30に固定長のデータを定期的に送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得し、通信機器20のトラヒック量を用いて、所定期間における通信機器20のトラヒック量の平均値を算出し、該算出したトラヒック量の平均値が第一の閾値を上回った場合には、サーバ30のトラヒック量を用いて、通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する。これにより、所定期間における通信機器20のトラヒック量の平均値が第一の閾値を上回った場合のみ、サーバ30の所定期間におけるトラヒック量の平均値を算出するので、処理負荷を軽減しつつ、異常検知を行うことが可能である。
【0070】
[第三の実施の形態]
上述した第二の実施の形態では、所定期間における通信機器20のトラヒック量の平均値が第一の閾値を上回った場合に、該通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する場合を説明したが、これに限定されるものではない。例えば、所定時間が経過するたびに、所定期間における通信機器20のトラヒック量の平均値とともに、該通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出するようにしてもよい。
【0071】
そこで、以下では、第三の実施の形態に係る異常検知装置10Bが、所定時間が経過するたびに、所定期間における通信機器20のトラヒック量の平均値とともに、該通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する場合について説明する。なお、第二の実施の形態に係る通信システムと同様の構成や処理については説明を省略する。
【0072】
第三の実施の形態に係る通信システムにおける各通信機器20A〜20Cは、自身が具備するセンサから取得すること等により生成された固定長もしくは可変長のデータを、あらかじめ定められたサーバ30に送信する。
【0073】
また、第三の実施の形態に係る異常検知装置10Bの取得部12dは、サーバ30に固定長または可変長のデータを送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得する。
【0074】
第三の実施の形態に係る異常検知装置10Bの算出部12eは、所定時間が経過するたびに、取得部12dによって取得された通信機器20のトラヒック量を用いて、所定期間における通信機器20のトラヒック量の平均値を算出するとともに、サーバ30のトラヒック量を用いて、通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する。
【0075】
次に、
図12を用いて、第三の実施の形態に係る異常検知装置10Bの処理の流れを説明する。
図12は、第三の実施の形態に係る異常検知装置による処理を説明するフローチャートである。
【0076】
図12に示すように、異常検知装置10Bの取得部12dは、所定時間が経過すると(ステップS301肯定)、通信機器20およびサーバ30のトラヒック情報を取得する(ステップS302)。具体的には、取得部12dは、所定時間が経過するたびに、サーバ30に固定長または可変長のデータを送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得して通信機器トラヒック情報記憶部13aに格納する。また、取得部12dは、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得し、サーバトラヒック情報記憶部13bに格納する。
【0077】
そして、算出部12eは、所定期間の平均トラヒック量を算出する(ステップS303)。具体的には、算出部12eは、通信機器トラヒック情報記憶部13aに記憶された通信機器20のトラヒック量を参照し、所定期間における通信機器20の平均トラヒック量を算出する。そして、算出部12eは、各通信機器20について、通信先サーバ情報記憶部13cに記憶された情報を参照して、正常時の接続先となるサーバ30を特定する(ステップS304)。そして、算出部12eは、サーバトラヒック情報記憶部13bに記憶されたサーバ30のトラヒック量を参照し、同一期間におけるサーバ30の平均トラヒック量を算出する(ステップS305)。
【0078】
そして、検知部12fは、サーバ30の平均トラヒック量に対する通信機器20の平均トラヒック量の割合を算出し(ステップS306)、算出した平均トラヒック量の割合が所定の閾値を上回るか否かを判定する(ステップS307)。この結果、検知部12fは、算出した平均トラヒック量の割合が所定の閾値を上回っていないと判定した場合には(ステップS307否定)、そのまま処理を終了する。一方、検知部12fは、平均トラヒック量の割合が所定の閾値を上回る場合には(ステップS307肯定)、該当する通信機器20の異常を検知する(ステップS308)。
【0079】
[第三の実施の形態の効果]
このように、第三の実施の形態に係る異常検知装置10Bは、サーバ30に固定長または可変長のデータを送信する通信機器20の単位時間あたりのトラヒック量をNW機器40から取得し、サーバ30の通信機器20ごとの単位時間あたりのトラヒック量をサーバ30から取得し、所定時間が経過するたびに、通信機器20のトラヒック量を用いて、所定期間における通信機器20のトラヒック量の平均値を算出するとともに、サーバ30のトラヒック量を用いて、通信機器20の正常時の接続先となるサーバ30の所定期間におけるトラヒック量の平均値を算出する。このため、サーバ30のトラヒック量の平均値に対する通信機器20のトラヒック量の平均値の割合が所定の閾値以下である場合には、マルウェア感染等の異常でないものと判断することが可能であり、異常の誤検知を防止することが可能である。
【0080】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0081】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0082】
[プログラム]
図13は、異常検知プログラムを実行するコンピュータを示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0083】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
【0084】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、異常検知装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、装置における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0085】
また、上述した実施の形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0086】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク、WANを介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。