(57)【要約】【課題】巧妙に高度化した攻撃による異常な通信を検知すること。【解決手段】情報収集部１５ａがネットワークに接続される端末間の通信の履歴を表すトラフィックデータを取得し、グラフ生成部１５ｂが、取得された正常な通信のトラフィックデータを用いて、各端末をノードとし端末間の通信をエッジとするグラフを生成し、該グラフから、該グラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出し、異常判定部１５ｃが、コミュニティが抽出された後に取得されたトラフィックデータに含まれる異常な通信を、コミュニティに基づいて判定する。【選択図】図３
2018148267.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される端末間の通信の履歴を表すトラフィックデータを取得する取得部と、
取得された正常な通信のトラフィックデータを用いて、各端末をノードとし端末間の通信をエッジとするグラフを生成し、該グラフから、該グラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出する抽出部と、
前記コミュニティが抽出された後に取得されたトラフィックデータに含まれる異常な通信を、前記コミュニティに基づいて判定する判定部と、
を備えることを特徴とする検知装置。
【請求項２】
前記抽出部は、前記コミュニティを抽出する際、複数のアルゴリズムから選択して適用することを特徴とする請求項１に記載の検知装置。
【請求項３】
前記抽出部は、前記コミュニティを抽出する前に、他のノードとの接続数が多い順に所定数のノードを除去することを特徴とする請求項１または２に記載の検知装置。
【請求項４】
前記取得部は、初期状態には、前記トラフィックデータを前記抽出部に引き渡し、所定の時間が経過した後、または変更の指示入力を受け付けた場合に、前記トラフィックデータを前記判定部に引き渡すことを特徴とする請求項１〜３のいずれか１項に記載の検知装置。
【請求項５】
検知装置で実行される検知方法であって、
ネットワークに接続される端末間の通信の履歴を表すトラフィックデータを取得する取得工程と、
取得された正常な通信のトラフィックデータを用いて、各端末をノードとし端末間の通信をエッジとするグラフを生成し、該グラフから、該グラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出する抽出工程と、
前記コミュニティが抽出された後に取得されたトラフィックデータに含まれる異常な通信を、前記コミュニティに基づいて判定する判定工程と、
を含んだことを特徴とする検知方法。
【請求項６】
ネットワークに接続される端末間の通信の履歴を表すトラフィックデータを取得する取得ステップと、
取得された正常な通信のトラフィックデータを用いて、各端末をノードとし端末間の通信をエッジとするグラフを生成し、該グラフから、該グラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出する抽出ステップと、
前記コミュニティが抽出された後に取得されたトラフィックデータに含まれる異常な通信を、前記コミュニティに基づいて判定する判定ステップと、
をコンピュータに実行させることを特徴とする検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知装置、検知方法および検知プログラムに関する。
【背景技術】
【０００２】
従来、ネットワークトラフィックデータを監視して、攻撃者による異常な通信を検知する技術が知られている。例えば、未使用ＩＰアドレスへのアクセスやシーケンシャルなＩＰアドレスへのアクセスを検知したり、通信頻度を特徴として機械学習してその変化を検知したりして、異常な通信を検知している（非特許文献１，２参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】David.W，et  al，“ARP-based  Detection  of  Scanning  Worms  Within  an  Enterprise  Network”，Proc  of  annual  computer  security  applications  conference(ACSAC  2005)，Tucson，AZ，2005年12月
【非特許文献２】Yasser.Y，et  al，“A  Novel  Unsupervised  Classication  Approach  for  Network  Anomaly  Detection  by  K-Means  Clustering  and  ID3  Decision  Tree  Learning  Methods”，The  Journal  of  Supercomputing，Volume  53  Issue  1，2010年7月，pp.231-245
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術によって検知できない巧妙に高度化した攻撃が想定される。例えば、攻撃者がネットワーク内のトラフィックを取得し監視したり、ディレクトリサーバの情報を参照したり、ネットワークを探索したりした場合に、未使用ＩＰアドレスへのアクセスが回避され、攻撃を検知できない恐れがある。また、パスワードのかわりにハッシュ化されたパスワードを用いてハッキングを行ういわゆるＰａｓｓ−ｔｈｅ−ｈａｓｈのような攻撃では、通信頻度の変化やシーケンシャルなＩＰアドレスへのアクセスが回避され、攻撃を検知できない恐れがある。
【０００５】
本発明は、上記に鑑みてなされたものであって、巧妙に高度化した攻撃による異常な通信を検知することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係る検知装置は、ネットワークに接続される端末間の通信の履歴を表すトラフィックデータを取得する取得部と、取得された正常な通信のトラフィックデータを用いて、各端末をノードとし端末間の通信をエッジとするグラフを生成し、該グラフから、該グラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出する抽出部と、前記コミュニティが抽出された後に取得されたトラフィックデータに含まれる異常な通信を、前記コミュニティに基づいて判定する判定部と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、巧妙に高度化した攻撃による異常な通信を検知することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の一実施形態に係る検知装置の処理対象を説明するための説明図である。
【図２】図２は、本実施形態の検知装置の処理概要を説明するための説明図である。
【図３】図３は、本実施形態の検知装置の概略構成を例示する模式図である。
【図４】図４は、本実施形態の抽出処理手順を示すフローチャートである。
【図５】図５は、本実施形態の判定処理手順を示すフローチャートである。
【図６】図６は、検知プログラムを実行するコンピュータを例示する図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１０】
［検知装置の処理概要］
まず、図１を参照して、本実施形態に係る検知装置の処理対象について説明する。本実施形態において、検知装置は、ネットワークに接続される複数の端末における通信を処理対象とする。例えば、遠隔操作マルウェアに感染した端末が存在すると、攻撃者がその感染端末を遠隔操作可能となる。また、攻撃者は未使用ＩＰアドレスへのアクセスやシーケンシャルなＩＰアドレスへのアクセスというような特徴的な活動は行わないことが想定される。また、Ｐａｓｓ−ｔｈｅ−ｈａｓｈ攻撃では、１回の通信でＬＡＮ内の同一サブネット内の他端末への侵入が想定される。
【００１１】
そこで、本実施形態に係る検知装置は、図１に示すように、あるルータ（Ｒｏｕｔｅｒ）の配下にあるＬ２スイッチ（ＳＷ）に接続されるサブネット内の端末における通信を処理対象とする。検知装置は、処理対象の通信の履歴を示すトラフィックデータを取得して、後述する検知処理を実行する。
【００１２】
次に、図２を参照して、本実施形態に係る検知装置の処理概要について説明する。図２に示すように、本実施形態に係る検知装置は、トラフィックデータとして、通信の際にサブネット内の端末に向けてブロードキャストされるＡＲＰリクエスト（Arp  Request）を取得する。検知装置は、ＡＲＰリクエストの通信元ＩＰアドレス（図２に示すＢ）と通信先すなわちＭＡＣアドレス解決対象のＩＰアドレス（図２に示すＡ）とを用いて、ＩＰアドレスに対応する端末をノードとし通信があったことをエッジで示すグラフを生成する。そして、検知装置は、グラフから、通信の密度すなわちグラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出する。また、検知装置は、その後に取得したトラフィックデータの通信の通信元と通信先との組み合わせのパターンについて、抽出した正常な通信のパターンからなるコミュニティと対比して、異常な通信を検知する。例えば、検知装置は、コミュニティに含まれる通信、あるいは、過去に観測されている通信のいずれでもないパターンの通信を、異常な通信と判定する。
【００１３】
［検知装置の構成］
次に、図３を参照して、本実施形態に係る検知装置の概略構成を説明する。図３に示すように、本実施形態に係る検知装置１０は、ワークステーションやパソコン等の汎用コンピュータで実現され、入力部１１と出力部１２と通信制御部１３と、記憶部１４と、制御部１５とを備える。
【００１４】
入力部１１は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部１５に対して各種指示情報を入力する。出力部１２は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現され、後述する検知処理の結果等を操作者に対して出力する。
【００１５】
通信制御部１３は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した管理サーバ等の外部の装置と制御部１５との通信を制御する。
【００１６】
記憶部１４は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部１４には、検知装置１０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。記憶部１４は、通信制御部１３を介して制御部１５と通信する構成でもよい。
【００１７】
制御部１５は、ＣＰＵ（Central  Processing  Unit）等の演算処理装置がメモリに記憶された処理プログラムを実行することにより、図３に例示するように、情報収集部１５ａ、グラフ生成部１５ｂおよび異常判定部１５ｃとして機能する。なお、これらの機能部は、それぞれ、あるいは一部が異なるハードウェアに実装されてもよい。
【００１８】
情報収集部１５ａは、取得部として機能する。すなわち、情報収取部１５ａは、ネットワークに接続される端末間の通信の履歴を表すトラフィックデータを取得する。具体的に、情報収集部１５ａは、入力部１１あるいは通信制御部１３を介して、トラフィックデータとして、通信の際に送受されるＡＲＰリクエストを取得する。例えば、情報収集部１５ａは、ＬＡＮ内の各サブネットの任意のネットワーク機器の任意のポートに設置されたＲａｓｐｂｅｒｒｙ  ＰＩ３を用いて実装された情報処理装置から、ＡＲＰリクエストを取得する。
【００１９】
また、情報収集部１５ａは、ＡＲＰリクエストから、送信元ＩＰアドレスを通信元ＩＰアドレスとして、ＭＡＣアドレス解決対象のＩＰアドレスを通信先ＩＰアドレスとして抽出する。
【００２０】
なお、情報収集部１５ａは、後述する検知処理において、状態変数の初期値として学習期間を示す値が設定されている。また、学習期間の開始から予め設定された所定の時間間隔が経過した場合、あるいは状態変数の変更を指示する操作入力があった場合に、状態変数が検知期間を示す値に変更される。そして、情報収集部１５ａは、学習期間において抽出処理を実行し、取得したトラフィックデータを、グラフ生成部１５ｂに引き渡す。一方、情報収集部１５ａは、検知期間において検知処理を実行し、取得したトラフィックデータを異常判定部１５ｃに引き渡す。
【００２１】
グラフ生成部１５ｂは、抽出部として機能する。すなわち、グラフ生成部１５ｂは、取得された正常な通信のトラフィックデータを用いて、各端末をノードとし端末間の通信をエッジとするグラフを生成し、該グラフから、該グラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出する。
【００２２】
具体的に、グラフ生成部１５ｂは、異常な通信が観測されていない期間に収集されたトラフィックデータの通信元ＩＰアドレスと通信先ＩＰアドレスとを用いて、各ＩＰアドレスに対応する端末をノードとし、通信があったことをエッジで示すグラフを生成する（図２参照）。ここで生成されるグラフは、無向グラフとし、１組のノード間に張られるエッジは１本のみの単純グラフとする。
【００２３】
また、グラフ生成部１５ｂは生成したグラフから、通信密度すなわちエッジの密度が相対的に高い部分、つまりグラフに対するエッジ数の割合が相対的に高い部分グラフをコミュニティとして抽出する。本実施形態において、グラフ生成部１５ｂは、エッジの密度が高いコミュニティを抽出するアルゴリズムとして、以下に説明するように、エッジの媒介中心性を利用したアルゴリズムを適用する。ただし、グラフ生成部１５ｂが適用するアルゴリズムは、エッジの媒介中心性を利用したアルゴリズムに限定されない。また、複数のアルゴリズムから選択して適用してもよい。
【００２４】
ここで、媒介中心性とは、ノードとノードとを結ぶ経路上にあるノードを高く評価する指標であり、あるノードが他のノード間を接続する最短経路上にある度合いを示す。また、エッジの媒介中心性とは、媒介中心性をエッジに適用した指標であり、グラフ上の各エッジが、グラフ上の任意の２ノード間を接続する最短経路上にある度合いを示す。すなわち、媒介中心性の高いエッジとは、グラフ内のエッジの密度が高いコミュニティ同士を接続するエッジを意味する。したがって、グラフ生成部１５ｂは、媒介中心性の高いエッジを切り離すことにより、エッジの密度が高いコミュニティを抽出することができる。
【００２５】
まず、グラフ生成部１５ｂは、コミュニティ抽出の前処理として、他のノードとの接続数が多い順に所定数のノードを除去する。これにより、特定のコミュニティには属さないゲートウェイ等のノードが除去される。ここで除去するノードの数は限定されず、上限数を任意に設定可能である。本実施形態においては、グラフ生成部１５ｂは、他ノードとの接続数が多い順に０個〜１５個のノードを除去した１６通りのグラフを生成し、次の処理の対象とする。
【００２６】
そして、グラフ生成部１５ｂは、上記の１６通りのグラフのそれぞれについて、媒介中心性の高いエッジを順に切り離す。また、グラフ生成部１５ｂは、エッジの切り離しにより分割された各部分グラフについて、グラフ内のエッジの密度を表す評価関数であるモジュラリティを算出し、モジュラリティが最大となる部分グラフ群を抽出する。
【００２７】
次に、グラフ生成部１５ｂは、抽出された１６通りの部分グラフ群のそれぞれにつき、新規に発生した通信がどれだけ部分グラフ内に収まるかを表す評価関数として予測精度を算出する。そして、グラフ生成部１５ｂは、予測精度が最大となる部分グラフ群を、以下の異常判定部１５ｃの処理に用いられるコミュニティ群として抽出する。すなわち、ここで抽出されるコミュニティ群は、最も精度高く正常な通信のパターンを予測できるコミュニティ群と言うことができる。ここで、通信のパターンとは、通信元と通信先との組み合わせを意味する。
【００２８】
また、グラフ生成部１５ｂは、抽出したコミュニティと抽出元のグラフとの組み合わせを異常判定部１５ｃに出力する。例えば、グラフ生成部１５ｂは、各コミュニティ内の通信およびコミュニティ抽出元のグラフに含まれる観測された通信を用いてホワイトリストを作成し、異常判定部１５ｃに出力する。
【００２９】
異常判定部１５ｃは、判定部として機能する。すなわち、異常判定部１５ｃは、コミュニティが抽出された後に取得されたトラフィックデータに含まれる異常な通信を、コミュニティに基づいて判定する。
【００３０】
例えば、異常判定部１５ｃは、グラフ生成部１５ｂからホワイトリストが出力された場合に、ホワイトリストにない通信のパターンを異常な通信と判定する。すなわち、異常判定部１５ｃは、抽出されたコミュニティ群に含まれる通信、あるいは、コミュニティ抽出元のグラフに含まれる観測された通信のいずれにもないパターンの通信を、異常な通信と判定する。
【００３１】
［検知処理］
次に、図４および図５を参照して、検知装置１０の検知処理について説明する。本実施形態の検知処理は、抽出処理と判定処理とを含む。まず、図４は抽出処理手順を例示するフローチャートである。図４のフローチャートは、例えば、抽出処理の開始を指示する操作入力があったタイミングで開始される。
【００３２】
まず、情報収集部１５ａが、状態変数が学習期間を示している場合に、正常な通信のトラフィックデータを取得して（ステップＳ１）、グラフ生成部１５ｂに引き渡す。
【００３３】
グラフ生成部１５ｂは、トラフィックデータを用いてグラフを生成し、エッジの密度が高い部分をコミュニティとして抽出する（ステップＳ２）。また、グラフ生成部１５ｂは、抽出したコミュニティを基に、例えば、コミュニティ内の通信およびコミュニティ抽出元のグラフに含まれる観測された通信を用いてホワイトリストを作成する。これにより、一連の抽出処理を終了する。
【００３４】
次に、図５は、判定処理手順を例示するフローチャートである。図５のフローチャートは、例えば、判定処理の開始を指示する操作入力があったタイミングで開始される。
【００３５】
情報収集部１５ａは、状態変数が検知期間を示している場合に、トラフィックデータを取得して（ステップＳ３）、異常判定部１５ｃに引き渡す。
【００３６】
異常判定部１５ｃは、トラフィックデータに含まれる異常な通信を、コミュニティに基づいて判定する（ステップＳ４）。例えば、異常判定部１５ｃは、トラフィックデータの通信のパターンを、抽出されたコミュニティを基に作成されたホワイトリストと対比して、ホワイトリストにないパターンの通信を異常な通信と判定する。すなわち、異常判定部１５ｃは、抽出されたコミュニティに含まれる通信、あるいは、コミュニティ抽出元のグラフに含まれる観測された通信のいずれでもないパターンの通信を、異常な通信と判定する。これにより、一連の判定処理を終了する。
【００３７】
以上、説明したように、本実施形態の検知装置１０では、情報収集部１５ａがネットワークに接続される端末間の通信の履歴を表すトラフィックデータを取得する。また、グラフ生成部１５ｂが、取得された正常な通信のトラフィックデータを用いて、各端末をノードとし端末間の通信をエッジとするグラフを生成し、該グラフから、該グラフに対するエッジ数の割合が相対的に高い部分をコミュニティとして抽出する。また、異常判定部１５ｃが、コミュニティが抽出された後に取得されたトラフィックデータに含まれる異常な通信を、コミュニティに基づいて判定する。
【００３８】
これにより、本実施形態の検知装置１０の検知処理によれば、正常な通信のパターンから外れた通信を異常な通信と検知することができる。したがって、例えば、未使用ＩＰアドレスへのアクセスやシーケンシャルなＩＰアドレスへのアクセスが回避された攻撃や、通信頻度の変化が回避された攻撃等、巧妙に高度化した攻撃による異常な通信を検知することが可能となる。
【００３９】
また、グラフ生成部１５ｂは、エッジの密度が高いコミュニティを抽出する際、複数のアルゴリズムから選択して適用してもよい。これにより、より効率よくコミュニティを抽出することができる。
【００４０】
また、グラフ生成部１５ｂは、エッジの密度が高いコミュニティを抽出する際に、他のノードとの接続数が多い順に所定数のノードを除去する。これにより、いずれのコミュニティにも属さないノードを除去して、より効率よくコミュニティを抽出できる。
【００４１】
［プログラム］
上記実施形態に係る検知装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、検知装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の検知処理を実行する検知プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検知プログラムを情報処理装置に実行させることにより、情報処理装置を検知装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などがその範疇に含まれる。また、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の検知処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、検知装置１０は、トラフィックデータを入力とし、異常な通信の検知結果を出力する検知処理サービスを提供するサーバ装置として実装される。この場合、検知装置１０は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の検知処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。以下に、検知装置１０と同様の機能を実現する検知プログラムを実行するコンピュータの一例を説明する。
【００４２】
図６に示すように、検知プログラムを実行するコンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００４３】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１０５１およびキーボード１０５２が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１０６１が接続される。
【００４４】
ここで、図６に示すように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ１０３１やメモリ１０１０に記憶される。
【００４５】
また、検知プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、ハードディスクドライブ１０３１に記憶される。具体的には、上記実施形態で説明した検知装置１０が実行する各処理が記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【００４６】
また、検知プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えば、ハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００４７】
なお、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮやＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００４８】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００４９】
１０  検知装置
１１  入力部
１２  出力部
１３  通信制御部
１４  記憶部
１５  制御部
１５ａ  情報収集部
１５ｂ  グラフ生成部
１５ｃ  異常判定部
【図１】
2018148267.tif 000003
【図２】
2018148267.tif 000004
【図３】
2018148267.tif 000005
【図４】
2018148267.tif 000006
【図５】
2018148267.tif 000007
【図６】
2018148267.tif 000008