(57)【要約】【課題】ＳＤＮ環境においてマルウェアの影響範囲を特定する。【解決手段】マルウェア影響範囲特定システムは、ＳＤＮ環境において、ネットワークの構成を示すネットワーク構成情報を時系列でデータベースに記録する記録部と、マルウェアに侵入された端末について侵入時点を特定する侵入時点特定部と、特定された侵入時点に基づいて特定される日時とデータベースにおいて対応付けられているネットワーク構成情報を取得するネットワーク構成特定部と、取得されたネットワーク構成情報を表示する表示部とを備える。【選択図】図９
2019037001.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの構成を示すネットワーク構成情報であって、前記ネットワークに含まれる複数の端末のうちのいずれかの端末を示す端末情報と、当該端末情報に示される端末が所属する仮想ネットワークを示す仮想ネットワーク情報とを対応付けてなる端末接続状態情報を含むネットワーク構成情報を時系列でデータベースに記録する記録部と、
マルウェアに侵入された第１端末について当該侵入時点を特定する侵入時点特定部と、
前記特定された侵入時点に基づいて特定される日時と前記データベースにおいて対応付けられているネットワーク構成情報を取得するネットワーク構成特定部と、
前記取得されたネットワーク構成情報を出力する出力部と、
前記第１端末を示す第１端末情報を取得する感染端末特定部と、
前記取得された第１端末情報と前記データベースにおいて対応付けられている第１仮想ネットワーク情報を取得する仮想ネットワーク特定部と、
前記取得された第１仮想ネットワーク情報と前記データベースにおいて対応付けられている、前記第１端末とは異なる第２端末を示す第２端末情報を取得する感染被疑端末特定部と
を備え、
前記出力部は、前記取得された第２端末情報をさらに出力する
ことを特徴とするネットワーク情報出力システム。
【請求項２】
前記ネットワークは、前記複数の端末の間で、経路制御情報に基づいて通信パケットを中継する複数の中継装置を備え、
前記ネットワーク構成情報は、前記複数の中継装置の間の論理リンクを示す論理リンク情報を含み、
前記ネットワーク構成特定部は、前記特定された侵入時点よりも前の日時であって、前記データベースに論理リンク情報が記録された直近の日時と前記データベースにおいて対応付けられている論理リンク情報を取得し、
前記出力部は、前記取得された論理リンク情報を出力する
ことを特徴とする請求項１に記載のネットワーク情報出力システム。
【請求項３】
前記ネットワーク構成特定部は、前記特定された侵入時点よりも前の日時であって、前記データベースに論理リンク情報が記録された直近の日時以降の複数の日時と前記データベースにおいて対応付けられている複数の論理リンク情報を取得することを特徴とする請求項２に記載のネットワーク情報出力システム。
【請求項４】
前記ネットワーク構成情報は、前記複数の端末のうちのいずれかの端末を示す端末情報と、当該端末情報に示される端末が所属する仮想ネットワークを示す仮想ネットワーク情報と、当該仮想ネットワークに対する当該端末の接続期間を特定するための接続状態情報とを対応付けてなる端末接続状態情報を含み、
前記感染被疑端末特定部は、前記取得された第１仮想ネットワーク情報と前記データベースにおいて対応付けられている第２端末であって、当該第１仮想ネットワーク情報により示される第１仮想ネットワークに対する接続期間が前記第１端末と重複する第２端末を示す第２端末情報を取得する
ことを特徴とする請求項１乃至３のいずれか１項に記載のネットワーク情報出力システム。
【請求項５】
前記仮想ネットワーク特定部は、前記取得された第１端末情報と前記データベースにおいて対応付けられている、前記第１仮想ネットワーク情報とは異なる第２仮想ネットワーク情報をさらに取得し、
前記感染被疑端末特定部は、前記取得された第２仮想ネットワーク情報と前記データベースにおいて対応付けられている、前記第１及び第２端末とは異なる第３端末を示す第３端末情報をさらに取得し、
前記出力部は、前記取得された第３端末情報をさらに出力する
ことを特徴とする請求項１乃至３のいずれか１項に記載のネットワーク情報出力システム。
【請求項６】
前記仮想ネットワーク特定部は、前記取得された第２端末情報と前記データベースにおいて対応付けられている、前記第１及び第２仮想ネットワーク情報とは異なる第３仮想ネットワーク情報をさらに取得し、
前記感染被疑端末特定部は、前記取得された第３仮想ネットワーク情報と前記データベースにおいて対応付けられている、前記第１、第２及び第３端末とは異なる第４端末を示す第４端末情報をさらに取得し、
前記出力部は、前記取得された第４端末情報をさらに出力する
ことを特徴とする請求項１乃至５のいずれか１項に記載のネットワーク情報出力システム。
【請求項７】
前記出力部は、前記取得されたネットワーク構成情報により表される前記ネットワークのトポロジを示す図を表示することを特徴とする請求項１乃至６のいずれか１項に記載のネットワーク情報出力システム。
【請求項８】
前記ネットワーク構成情報は、前記複数の中継装置の間の物理リンクを示す物理リンク情報をさらに含み、
前記出力部は、前記物理リンク情報により表される物理リンクの上に、前記取得された論理リンク情報により表される論理リンクを重ねて表示する、前記ネットワークのトポロジを示す図を表示する
ことを特徴とする請求項２に記載のネットワーク情報出力システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェアの影響範囲を特定する技術に関する。
【背景技術】
【０００２】
近年、プログラムによるネットワーク制御を実現するネットワークアーキテクチャであるＳＤＮ（Software-Defined Networking）の普及と実用化が進みつつある。このＳＤＮを実現するプロトコルの１つにOpenFlowがある。OpenFlowでは、OpenFlowスイッチがOpenFlowコントローラによって集中的に制御される（例えば、特許文献１及び２参照。）。ＳＤＮは、ネットワークの経路制御や構成変更を迅速かつ柔軟に実行できることから、データセンタを始め、企業にも導入が進みつつある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１２／１１５０５８号
【特許文献２】国際公開第２０１２／０８６８１６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年報告されている標的型攻撃マルウェアは、組織内部に侵入後に通信を行い、マルウェア拡散や機密情報窃取などの攻撃を展開する。組織としてこのような攻撃に対処するためには、攻撃の検知・遮断ができ、その攻撃情報を追跡できることが必要である。そのため、セキュリティ担当者は、ネットワーク内の端末及びサーバからログを収集し、マルウェアによる攻撃を受けた可能性のある範囲を特定する必要がある。しかし、上述のＳＤＮ環境においては、ネットワーク状態が頻繁に変化するため、攻撃発生時点などの過去の特定時点におけるネットワーク構成情報を把握することが難しいという課題がある。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、ＳＤＮ環境においてマルウェアの影響範囲を特定することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明は、ネットワークの構成を示すネットワーク構成情報であって、前記ネットワークに含まれる複数の端末のうちのいずれかの端末を示す端末情報と、当該端末情報に示される端末が所属する仮想ネットワークを示す仮想ネットワーク情報とを対応付けてなる端末接続状態情報を含むネットワーク構成情報を時系列でデータベースに記録する記録部と、マルウェアに侵入された第１端末について当該侵入時点を特定する侵入時点特定部と、前記特定された侵入時点に基づいて特定される日時と前記データベースにおいて対応付けられているネットワーク構成情報を取得するネットワーク構成特定部と、前記取得されたネットワーク構成情報を出力する出力部と、前記第１端末を示す第１端末情報を取得する感染端末特定部と、前記取得された第１端末情報と前記データベースにおいて対応付けられている第１仮想ネットワーク情報を取得する仮想ネットワーク特定部と、前記取得された第１仮想ネットワーク情報と前記データベースにおいて対応付けられている、前記第１端末とは異なる第２端末を示す第２端末情報を取得する感染被疑端末特定部とを備え、前記出力部は、前記取得された第２端末情報をさらに出力することを特徴とするネットワーク情報出力システムを提供する。
【０００７】
好ましい態様において、前記ネットワークは、前記複数の端末の間で、経路制御情報に基づいて通信パケットを中継する複数の中継装置を備え、前記ネットワーク構成情報は、前記複数の中継装置の間の論理リンクを示す論理リンク情報を含み、前記ネットワーク構成特定部は、前記特定された侵入時点よりも前の日時であって、前記データベースに論理リンク情報が記録された直近の日時と前記データベースにおいて対応付けられている論理リンク情報を取得し、前記出力部は、前記取得された論理リンク情報を出力してもよい。
【０００８】
さらに好ましい態様において、前記ネットワーク構成特定部は、前記特定された侵入時点よりも前の日時であって、前記データベースに論理リンク情報が記録された直近の日時以降の複数の日時と前記データベースにおいて対応付けられている複数の論理リンク情報を取得してもよい。
【０００９】
さらに好ましい態様において、前記ネットワーク構成情報は、前記複数の端末のうちのいずれかの端末を示す端末情報と、当該端末情報に示される端末が所属する仮想ネットワークを示す仮想ネットワーク情報と、当該仮想ネットワークに対する当該端末の接続期間を特定するための接続状態情報とを対応付けてなる端末接続状態情報を含み、前記感染被疑端末特定部は、前記取得された第１仮想ネットワーク情報と前記データベースにおいて対応付けられている第２端末であって、当該第１仮想ネットワーク情報により示される第１仮想ネットワークに対する接続期間が前記第１端末と重複する第２端末を示す第２端末情報を取得してもよい。
【００１０】
さらに好ましい態様において、前記仮想ネットワーク特定部は、前記取得された第１端末情報と前記データベースにおいて対応付けられている、前記第１仮想ネットワーク情報とは異なる第２仮想ネットワーク情報をさらに取得し、前記感染被疑端末特定部は、前記取得された第２仮想ネットワーク情報と前記データベースにおいて対応付けられている、前記第１及び第２端末とは異なる第３端末を示す第３端末情報をさらに取得し、前記出力部は、前記取得された第３端末情報をさらに出力してもよい。
【００１１】
さらに好ましい態様において、前記仮想ネットワーク特定部は、前記取得された第２端末情報と前記データベースにおいて対応付けられている、前記第１及び第２仮想ネットワーク情報とは異なる第３仮想ネットワーク情報をさらに取得し、前記感染被疑端末特定部は、前記取得された第３仮想ネットワーク情報と前記データベースにおいて対応付けられている、前記第１、第２及び第３端末とは異なる第４端末を示す第４端末情報をさらに取得し、前記出力部は、前記取得された第４端末情報をさらに出力してもよい。
【００１２】
さらに好ましい態様において、前記出力部は、前記取得されたネットワーク構成情報により表される前記ネットワークのトポロジを示す図を表示してもよい。
【００１３】
さらに好ましい態様において、前記ネットワーク構成情報は、前記複数の中継装置の間の物理リンクを示す物理リンク情報をさらに含み、前記出力部は、前記物理リンク情報により表される物理リンクの上に、前記取得された論理リンク情報により表される論理リンクを重ねて表示する、前記ネットワークのトポロジを示す図を表示してもよい。
【発明の効果】
【００１４】
本発明によれば、ＳＤＮ環境においてマルウェアの影響範囲を特定することができる。
【図面の簡単な説明】
【００１５】
【図１】マルウェア影響範囲特定システム１００の構成を示す図である。
【図２】マルウェア影響範囲特定方法の概要を示す図である。
【図３】通信ネットワーク１の構成の一例を示す図である。
【図４】ＤＢ２を構成する各種テーブルを示す図である。
【図５】物理リンク情報テーブル２１の一例を示す図である。
【図６】論理リンク情報テーブル２２の一例を示す図である。
【図７】端末接続状態テーブル２３の一例を示す図である。
【図８】スナップ情報テーブル２４の一例を示す図である。
【図９】マルウェア影響範囲特定システム１００の機能構成の一例を示す図である。
【図１０】通信ネットワーク１の物理トポロジを検出する方法の一例を説明する図である。
【図１１】論理リンク情報テーブル２２に記録される論理リンク情報の一例を説明する図である。
【図１２】論理リンク情報テーブル２２に記録される論理リンク情報の他の例を説明する図である。
【図１３】ログイン時に接続状態情報を記録する際の手順の一例を説明する図である。
【図１４】マルウェア影響範囲特定処理を示すフローチャートである。
【図１５】マルウェア影響範囲特定処理を示すフローチャートである。
【図１６】マルウェア影響範囲特定処理の適用例について説明する図である。
【図１７】マルウェア影響範囲特定処理の適用例について説明する図である。
【図１８】マルウェア影響範囲特定処理の適用例について説明する図である。
【図１９】マルウェア影響範囲特定処理の適用例について説明する図である。
【図２０】マルウェア影響範囲可視化処理を示すフローチャートである。
【図２１】スコアＰの算出方法の一例を説明する図である。
【図２２】表示画面の一例を示す図である。
【図２３】複数の論理トポロジ図が合成される場合の一例を説明する図である。
【発明を実施するための形態】
【００１６】
１．実施形態
１−１．マルウェア影響範囲特定システム１００の構成
図１は、本発明の一実施形態に係るマルウェア影響範囲特定システム１００の構成を示す図である。このマルウェア影響範囲特定システム１００は、同図に示されるように、通信ネットワーク１と、データベース（以下、「ＤＢ」という。）２と、OpenFlowコントローラ（以下、「ＯＦＣ」という。）３と、検知装置４と、ネットワーク可視化装置（以下、「ＮＷ可視化装置」という。）５とにより構成される。
【００１７】
通信ネットワーク１は、OpenFlow仕様に準拠したネットワークであり、複数のOpenFlowスイッチ（以下、「ＯＦＳ」という。）６と、複数の端末７とにより構成される。ＤＢ２は、通信ネットワーク１のネットワーク構成情報を記憶する。ＯＦＣ３は、通信ネットワーク１と接続され、ＯＦＳ６の経路制御情報を更新することによって通信ネットワーク１の構成を変更する。また、ＯＦＣ３は、ＤＢ２と接続され、通信ネットワーク１のネットワーク構成情報を時系列でＤＢ２に記録する。検知装置４は、通信ネットワーク１と接続され、通信ネットワーク１上で収集されるログを定期的に解析して、マルウェアの侵入を検知する。また、検知装置４はユーザＵにより操作され、マルウェアの侵入を検知するとユーザＵに対してアラートを出す。ここで、ユーザＵは、例えば、通信ネットワーク１のセキュリティ担当者やネットワーク管理者である。ＮＷ可視化装置５は、ＤＢ２と接続され、ＤＢ２に記憶されるネットワーク構成情報を取得して、当該情報を画面上に表示する。このＮＷ可視化装置５はユーザＵにより操作される。
なお、各要素同士の接続方法は、有線であっても無線であってもよい。
【００１８】
１−２．マルウェア影響範囲特定方式の概要
図２は、本実施形態に係るマルウェア影響範囲特定方法の概要を示す図である。本方式は主に、ログ解析と、情報取得と、保存と、視覚化の４つの要素からなる。本方式において検知装置４は、通信ネットワーク１上で収集されるログを定期的に解析し、マルウェアの侵入を検知すると、そのマルウェアにより侵入された端末を示す端末情報と、その侵入の時点を示す時間情報とを出力する。ＯＦＣ３は、通信ネットワーク１のネットワーク構成情報を定期的に取得して、時間情報と対応付けてＤＢ２に記録する。具体的には、物理リンク情報と論理リンク情報については定期的に取得し、端末接続状態情報についてはログイン時又はログアウト時に取得して、それぞれ時間情報と対応付けてＤＢ２に記録する。ＮＷ可視化装置５は、検知装置４から出力された端末情報と時間情報とをユーザＵの操作を介して取得すると、侵入時点を含む検知時点までのネットワーク構成情報をＤＢ２から取得して、当該情報により示されるネットワーク構成図を画面上に表示する。
以上が、本実施形態に係るマルウェア影響範囲特定方法の概要である。以下では、マルウェア影響範囲特定システム１００を構成する各要素について詳述する。
【００１９】
１−３．通信ネットワーク１の構成
図３は、通信ネットワーク１の構成の一例を示す図である。通信ネットワーク１は、同図に示されるように、６つのＯＦＳ６Ａ〜６Ｆ（以下、特に区別する必要がない場合には「ＯＦＳ６」と総称する。）と、４つの端末７Ａ〜７Ｄ（以下、特に区別する必要がない場合には「端末７」と総称する。）とにより構成される。ＯＦＳ６Ａは、端末７Ａ及び７Ｂと、ＯＦＳ６Ｂとに物理リンクを介して接続されている。ＯＦＳ６Ｂ〜６Ｅは、それぞれ互いに物理リンクを介して接続されている。ＯＦＳ６Ｆは、ＯＦＳ６Ｄと、端末７Ｃ及び７Ｄとに物理リンクを介して接続されている。ここで、物理リンクとは、例えば通信ケーブルを介した物理的な接続をいう。各ＯＦＳ６は、それぞれ通信ケーブルが接続される複数のポート（接続口）を備え、いずれかのポートを介して他の機器と接続される。なお、ＯＦＳ６Ａ及び６Ｆはエッジスイッチであり、ＯＦＳ６Ｂ〜６Ｅはコアスイッチである。
【００２０】
ＯＦＳ６は、OpenFlow仕様に準拠した伝送装置（又は中継装置、転送装置）であって、ハードウェアで行われるパケット伝送処理を行う伝送装置である。ここで、OpenFlowとは、通信ネットワークを構成するネットワーク機器を１つの制御装置で集中管理し、複雑な転送制御を行ったり柔軟にネットワーク構成を変更したりすることができる技術である。OpenFlowは、ＳＤＮを実現するプロトコルの１つである。なおここで、ＳＤＮとは、コンピュータネットワークを構成する通信機器を単一のソフトウェアによって集中的に制御し、ネットワークの構造や構成、設定などを柔軟かつ動的に変更することを可能とする技術の総称、または、そのような技術によって構築されたネットワークのことである。
【００２１】
ＯＦＳ６は、複数の端末７の間で経路制御情報（又は中継制御情報、転送制御情報）に基づいて通信パケットを中継する。具体的には、記憶するフローテーブルを参照して、通信パケットの転送制御を行う。ここで、フローテーブルとは、ＯＦＣ３により計算された経路情報を保存するテーブルであって、ＯＦＳ６がパケット転送を処理する際に参照されるテーブルである。このフローテーブルは１以上のフローエントリにより構成され、各フローエントリは、データ転送の条件（Match）と、条件合致時の動作指示（Instructions）とにより構成される。条件部分には、例えば、送信元又は宛先ＩＰ（Internet Protocol）アドレスや、送信元又は宛先ＭＡＣ（Media Access Control）アドレスや、VLAN(Virtual Local Area Network)ＩＤや、入力ポート番号等の、パケットのヘッダ情報が指定される。または、１以上のヘッダフィールド（Type of Serviceフィールドや、Class of Serviceフィールドも含む。）に設定される任意のビット値や複数の異なるビットが指定される。一方、動作指示部分には、例えば、データの転送（Output命令）、データの破棄（Drop命令）、データのヘッダ情報の書き換え（Set-Field命令）が指定される。ＯＦＳ６は、パケットを受信すると、フローテーブル内に当該パケットのヘッダ情報と合致する条件が存在するか否かを調べ、存在する場合には当該条件に対応する動作指示に従って処理を実行する。なお、フローエントリには、優先度（Priority）や、カウンタ（Counters）や、有効期間（Timeouts）や、クッキー（Cookie）が指定されてもよい。
【００２２】
ＯＦＳ６は、図示せぬOpenFlowチャネル（セキュアチャネル）を介して、OpenFlowプロトコルに従ってＯＦＣ３との間で通信を行う。ＯＦＳ６は、ＯＦＣ３からフローエントリ変更メッセージ（Flow Modifyメッセージ）を受信すると、当該メッセージに従って、フローエントリの追加、更新、削除等の処理を行う。また、ＯＦＳ６は、パケット受信時に、当該パケットのヘッダ情報と合致する条件がフローテーブルに存在しない場合には、ＯＦＣ３に対してPacketInメッセージを送信する。このPacketInメッセージは、受信したパケットに合致するフローエントリが存在しない場合に、ＯＦＣ３にパケットの処理方法を問い合わせるために送信されるメッセージである。このメッセージに対する応答としてＯＦＣ３からフローエントリ変更メッセージが送られてくると、ＯＦＳ６は当該メッセージに従ってフローエントリの追加処理を行う。
【００２３】
次に、端末７は、ＯＦＳ６を介して互いに通信を行うコンピュータ装置である。端末７は、例えば、ＣＰＵ（Central Processing Unit）等の演算装置と、ＨＤＤ（Hard Disk Drive）等の記憶装置と、キーボードやマウス等の入力装置と、液晶ディスプレイ等の表示装置と、ネットワークカード等の通信インタフェースを備える。
【００２４】
１−４．ＤＢ２の構成
図４は、ＤＢ２を構成する各種テーブルを示す図である。ＤＢ２は、同図に示されるように、物理リンク情報テーブル２１と、論理リンク情報テーブル２２と、端末接続状態テーブル２３と、スナップ情報テーブル２４とを備える。物理リンク情報テーブル２１は、後述するマルウェア影響範囲可視化処理において物理ネットワークのトポロジ図を描画するために利用される。その他のテーブルは同処理において仮想ネットワークのトポロジ図を描画するために利用される。
【００２５】
図５は、物理リンク情報テーブル２１の一例を示す図である。この物理リンク情報テーブル２１は、通信ネットワーク１を構成するＯＦＳ６間の物理リンクを示す物理リンク情報を保存するテーブルである。物理リンク情報テーブル２１を構成する各レコードは、同図に示されるように、送信元ＯＦＳ６のＤＰＩＤ（src_DPID）と、送信元ＯＦＳ６の送信ポート番号（src_PortNo）と、宛先ＯＦＳ６のＤＰＩＤ（dst_DPID）と、宛先ＯＦＳ６の受信ポート番号（dst_PortNo）と、スナップＩＤ（SnapID）の各フィールドにより構成される。ここで、ＤＰＩＤ（Datapath ID）は、ＯＦＳ６を一意に識別するための識別情報である。スナップＩＤについては後述する。
【００２６】
図６は、論理リンク情報テーブル２２の一例を示す図である。この論理リンク情報テーブル２２は、通信ネットワーク１を構成するＯＦＳ６間の論理リンクを示す論理リンク情報をスナップＩＤと対応付けて保存するテーブルである。論理リンク情報テーブル２２を構成する各レコードは、同図に示されるように、送信元ＯＦＳ６のＤＰＩＤ（src_DPID）と、送信元ＯＦＳ６の送信ポート番号（src_PortNo）と、ネットワークＩＤと、ユーザＩＤと、対端末フラグと、スナップＩＤの各フィールドにより構成される。ここで、ネットワークＩＤは、本実施形態においてはネットワークを一意に識別するための識別情報である。ネットワークＩＤは、特に断りがない限りは、データ転送の条件（Match）にあるＶＬＡＮ−ＩＤを用いる。なお、ネットワークＩＤは、ＶＬＡＮ−ＩＤ数の上限である４０９４に制限されるため、これ以上のネットワーク数が必要である場合は、別のデータ転送の条件部分を組み合わせて利用する。ユーザＩＤは、端末７を一意に識別するための識別情報である。対端末フラグは、ＯＦＳ６が端末７と直接接続されているか否かを示すフラグ（boolean型の変数）である。直接接続されている場合には「true」となり、直接接続されていない場合には「false」となる。スナップＩＤについては後述する。
【００２７】
図７は、端末接続状態テーブル２３の一例を示す図である。この端末接続状態テーブル２３は、通信ネットワーク１を構成する各端末７の接続状態を示す接続状態情報をタイムスタンプ（timestamp）と対応付けて保存するテーブルである。端末接続状態テーブル２３を構成する各レコードは、同図に示されるように、ユーザＩＤと、ログイン認証済みのアカウント名と、接続状態（loginStatus）と、送信元ＩＰアドレスと、送信元ＭＡＣアドレスと、ネットワークＩＤと、スナップＩＤの各フィールドにより構成される。ここで、接続状態は、端末７が接続されているか否かを示すboolean型の変数であり、例えば、接続されている場合には「true」となり、切断されている場合には「false」となる。この接続状態は、端末７がネットワークに接続している接続期間を特定するために参照される。
【００２８】
図８は、スナップ情報テーブル２４の一例を示す図である。このスナップ情報テーブル２４は、スナップＩＤとタイムスタンプとを対応付けて保存するテーブルである。スナップ情報テーブル２４を構成する各レコードは、同図に示されるように、スナップＩＤと、タイムスタンプと、論理リンク取得識別子の各フィールドにより構成される。ここで、スナップＩＤは、各タイムスタンプを一意に識別するための識別情報である。タイムスタンプは、ネットワーク構成情報がＯＦＣ３によりＤＢ２に記録された日時（具体的には、年月日（yyyy/mm/dd）及び時刻（hh:mm:ss））を示す文字列である。論理リンク取得識別子は、論理リンク情報が記録された日時を示すスナップＩＤを識別するための識別子である。
【００２９】
１−５．ＯＦＣ３の構成
ＯＦＣ３は、OpenFlow仕様に準拠した制御装置であって、複数のＯＦＳ６の振る舞いを一括して管理する制御装置である。ＯＦＣ３は、通信ネットワーク１におけるデータ転送の経路計算を行って、計算した経路に沿ってデータ転送が行われるように各ＯＦＳ６を制御する。
【００３０】
図９は、マルウェア影響範囲特定システム１００の機能構成の一例を示す図である。ＯＦＣ３は、同図に示されるように、ネットワーク制御部３１と、記録部３２の機能を備える。記録部３２は、物理リンク記録部３２１と、論理リンク記録部３２２と、端末接続状態記録部３２３と、スナップ情報記録部３２４とを有する。これらの各機能は、例えば、ＣＰＵ等の演算装置によりプログラムが実行されることにより実現される。
【００３１】
ネットワーク制御部３１は、通信ネットワーク１の経路計算を行って、各ＯＦＳ６に記憶される経路制御情報を更新して通信ネットワーク１の構成を変更する。具体的には、各ＯＦＳ６に対してフローエントリ変更メッセージを送信し、ＯＦＳ６に記憶されるフローエントリを更新することで、通信ネットワーク１の論理リンクを変更する。各ＯＦＳ６に記録されるフローエントリは図示せぬフロー管理テーブルにおいて集中的に管理され、各ＯＦＳ６においてフローエントリの更新が行われると、これに伴ってフロー管理テーブルの情報が更新される。
【００３２】
物理リンク記録部３２１は、通信ネットワーク１全体の物理リンク情報を物理リンク情報テーブル２１に記録する。言い換えると、通信ネットワーク１の物理トポロジを示す情報を物理リンク情報テーブル２１に記録する。なお、本実施形態では当該記録は定期的に実行されるものとしているが、物理トポロジの変更の検出を契機として実行されてもよい。または、通信ネットワーク１の経路計算や、端末７のログイン又はログアウトを契機として逐次実行されてもよい。
【００３３】
図１０は、通信ネットワーク１の物理トポロジを検出する方法の一例を説明する図である。同図に示される例では、ＬＬＤＰ（Link Layer Discovery Protocol）が利用されている。また、同例では、ＯＦＳ６Ａのポート１１に接続する物理リンクを調べる場合を想定している。
【００３４】
まず、ＯＦＣ３は、ＯＦＳ６ＡのＤＰＩＤとポート番号「１１」とを埋め込んだＬＬＤＰパケットを作成する（ステップＳａ１）。次に、ＯＦＣ３は、「ポート１１から出力する」という動作指示を含むPacketOutメッセージとして、上記のＬＬＤＰパケットをＯＦＳ６Ａに送信する（ステップＳａ２）。ＬＬＤＰパケットを受信したＯＦＳ６Ａは、動作指示に従い、ポート１１からＬＬＤＰパケットを出力する（ステップＳａ３）。ポート１１と接続されるＯＦＳ６Ｂは、ＯＦＳ６Ａから出力されたＬＬＤＰパケットを受信すると、自身のフローテーブルを参照して当該パケットの処理方法を調べる。しかしこの時、ＯＦＳ６Ｂでは、当該パケットに合致するフローエントリはあえて設定されていないため、ＯＦＳ６Ｂは、受信したＬＬＤＰパケットをPacketInメッセージとしてＯＦＣ３に出力する（ステップＳａ４）。ＬＬＤＰパケットを受信したＯＦＣ３は、当該パケットを解析することにより、ＯＦＳ６ＡとＯＦＳ６Ｂの間の物理リンクの存在を検出する（ステップＳａ５）。もし仮に、いずれのＯＦＳ６からもｎ回連続でＬＬＤＰパケットが送られてこない場合には、ＯＦＣ３は、ＯＦＳ６Ａのポート１１に接続する物理リンクは断線していると判断する。
以上説明した手続きを、接続されるＯＦＳ６に対して繰り返し行うことにより、ＯＦＣ３は、通信ネットワーク１の物理トポロジを把握する。このようにＬＬＤＰパケットの送出は、物理リンクの変化を捉える契機となる。
【００３５】
次に、論理リンク記録部３２２は、通信ネットワーク１全体の論理リンク情報をスナップＩＤと対応付けて論理リンク情報テーブル２２に記録する。言い換えると、通信ネットワーク１の論理トポロジを示す情報をスナップＩＤと対応付けて論理リンク情報テーブル２２に記録する。論理リンク記録部３２２は、上述したフロー管理テーブルから論理リンク情報を読み出して論理リンク情報テーブル２２に書き込む。ここで、スナップＩＤは、当該記録の時点を示すタイムスタンプを識別する識別情報として生成される。なお、本実施形態では論理リンク情報テーブル２２に対する情報の記録は定期的に実行されるものとしているが、論理トポロジの変更を契機として実行されてもよい。
【００３６】
図１１は、論理リンク情報テーブル２２に記録される論理リンク情報の一例を説明する図である。図１１（ａ）は、論理リンク情報（言い換えると、フローエントリ）のデータ構成の一例を示す図であり、図１１（ｂ）は、論理リンク情報により表される論理トポロジの一例を示す図である。図１１に示される例は、通信ネットワーク１において、端末７Ａから端末７Ｃに対して通信を行う際に設定される論理リンクの一例を示している。
【００３７】
図１２は、論理リンク情報テーブル２２に記録される論理リンク情報の他の例を説明する図である。図１２（ａ）は、論理リンク情報（言い換えると、フローエントリ）のデータ構成の他の例を示す図であり、図１２（ｂ）は、論理リンク情報により表される論理トポロジの他の例を示す図である。図１２に示される例は、通信ネットワーク１において、端末７Ｂから端末７Ｄに対して通信を行う際に設定される論理リンクの一例を示している。
【００３８】
次に、端末接続状態記録部３２３は、通信ネットワーク１を構成する各端末７の接続状態を示す接続状態情報をタイムスタンプと対応付けて端末接続状態テーブル２３に記録する。当該記録は、端末７のログイン時及びログアウト時に実行される。
【００３９】
図１３は、ログイン時に接続状態情報を記録する際の手順の一例を説明する図である。同図に示される手順によれば、ＯＦＳ６Ａは、自身のフローテーブルに合致しないパケットを端末７Ａから受信すると（ステップＳｂ１）、PacketInメッセージを用いて受信パケットをＯＦＣ３に送信する（ステップＳｂ２）。当該パケットを受信したＯＦＣ３は、当該パケットのヘッダ情報を参照して送信元ＩＰアドレスと送信元ＭＡＣアドレスとを特定する。また、ＯＦＣ３は、特定したアドレス情報に基づいてユーザＩＤとアカウント名とを特定する。また、ＯＦＣ３は、接続状態として変数「true」を特定するとともに、受信パケットを転送するパスに割り当てるネットワークＩＤを特定する。そして、以上特定した情報（すなわち、接続状態情報）を、当該記録の時点を示すタイムスタンプと対応付けて端末接続状態テーブル２３に記録する（ステップＳｂ３）。
【００４０】
一方、ログアウト時とは、具体的には、端末７から送信されたログアウトを要求するパケットをＯＦＳ６を介してＯＦＣ３が受信した時や、端末７がセッションタイムアウトによりログアウトとしたＯＦＣ３が判断した時である。これらの際にはＯＦＣ３は、接続状態として変数「false」を指定する接続状態情報を、当該記録の時点を示すタイムスタンプと対応付けて端末接続状態テーブル２３に記録する。
【００４１】
なお、ログイン及びログアウトの判断方法は上記の例に限られない。例えば、ログイン及びログアウトは、外部の認証サーバ（例えば、ＬＤＡＰ（Lightweight Directory Access Protocol）サーバやアクティブディレクトリ）とＯＦＣ３とが連携して判断してもよい。または、外部サーブレット機能とＯＦＣ３とが連携して判断してもよい。
【００４２】
次に、スナップ情報記録部３２４は、スナップＩＤとタイムスタンプとを対応付けてスナップ情報テーブル２４に記録する。ここで、スナップＩＤと対応付けられるタイムスタンプは、論理リンク記録部３２２により論理リンク情報テーブル２２に対して論理リンク情報が記録された時点か、または、端末接続状態記録部３２３により端末接続状態テーブル２３に対して接続状態情報が記録された時点を示すタイムスタンプである。スナップＩＤに紐付けられたネットワーク構成情報（物理リンク情報、論理リンク情報または接続状態情報）をスナップショットという。
【００４３】
１−６．検知装置４の構成
検知装置４は、例えば、ＳＩＥＭ（Security Information and Event Management、セキュリティ情報及びイベント管理）を備えたコンピュータ装置である。検知装置４は、通信ネットワーク１上に存在するサーバや、ネットワーク機器や、セキュリティ機器等からリアルタイムでログ情報やイベントデータを収集して、これらを相関分析することでマルウェアの侵入を検知する。そして、マルウェアの侵入を検知すると、当該マルウェアの侵入の時点を特定し、当該侵入時点を示す時間情報と、当該マルウェアに侵入された端末７の識別情報（具体的には、ＩＰアドレスとＭＡＣアドレス）とをユーザＵに通知する。
【００４４】
ここで、上記のセキュリティ機器には、例えば、ファイアウォールや、ＩＤＳ（Intrusion Detection System、侵入検知システム）や、ＩＰＳ（Intrusion Prevention System、侵入防止システム）や、ＳＰＦ（Sender Policy Framework）や、スパムフィルタや、ウェブフィルタリングが含まれる。ＳＰＦ（Sender Policy Framework）とスパムフィルタはメール型マルウェアを検知し、ウェブフィルタリングはウェブ型マルウェアを検知する。ＩＤＳとＩＰＳはすべての通信についてマルウェアを検知する。また、本実施形態においてマルウェアとは、有害なソフトウェアのことである。
【００４５】
なお、検知装置４は、サンドボックス型のファイアウォールであってもよい。具体的には、自身を通過したファイルをクラウド上の仮想空間（サンドボックス）で実行し、その動作を監視することでマルウェアを検知し、随時シグネチャを更新するファイアウォールであってもよい。
【００４６】
１−７．ＮＷ可視化装置５の構成
ＮＷ可視化装置５は、図９に示されるように、侵入時点特定部５１と、感染端末特定部５２と、スナップＩＤ取得部５３と、感染端末ＩＤ取得部５４と、仮想ネットワーク特定部（以下、「仮想ＮＷ特定部」という。）５５と、感染被疑端末特定部５６と、物理リンク特定部５７と、論理リンク特定部５８と、スコア算出部５９と、トポロジ図作成部６０と、表示部６１の機能を備える。これらの各機能は、例えば、ＣＰＵ等の演算装置によりプログラムが実行されることにより実現される。
【００４７】
侵入時点特定部５１は、マルウェアに侵入された第１端末７について、その侵入時点Ｔを示す時間情報を取得する。この侵入時点Ｔを示す時間情報は、例えば、ユーザＵによりＮＷ可視化装置５に対して入力される。この侵入時点Ｔは、例えば、年月日（yyyy/mm/dd）と時刻（hh:mm:ss）の組み合わせにより表される。
【００４８】
感染端末特定部５２は、マルウェアに侵入された第１端末７を示す端末情報を取得する。この端末情報は第１端末７を識別する識別情報であり、具体的にはＩＰアドレスやＭＡＣアドレスである。この端末情報は、例えば、ユーザＵによりＮＷ可視化装置５に対して入力される。
【００４９】
スナップＩＤ取得部５３は、侵入時点特定部５１により特定された侵入時点Ｔに対応するスナップＩＤを取得する。具体的には、侵入時点特定部５１により取得された時間情報により示される侵入時点Ｔに基づいて特定されるタイムスタンプと対応付けられているスナップＩＤをスナップ情報テーブル２４から取得する。ここで取得されるスナップＩＤは、具体的には、侵入時点Ｔよりも過去のタイムスタンプと対応付けられているスナップＩＤであって、その論理リンク取得識別子が「１」である直近のスナップＩＤである。
【００５０】
感染端末ＩＤ取得部５４は、感染端末特定部５２により特定された第１端末７のユーザＩＤを取得する。具体的には、感染端末特定部５２により取得された端末情報と対応付けられているユーザＩＤを端末接続状態テーブル２３から取得する。
【００５１】
仮想ＮＷ特定部５５は、感染端末特定部５２により特定された第１端末７が所属していた第１仮想ネットワーク（又は、論理ネットワーク）を特定する。具体的には、感染端末特定部５２により取得された端末情報や、感染端末ＩＤ取得部５４により取得されたユーザＩＤと対応付けられている第１仮想ネットワーク情報を端末接続状態テーブル２３から取得する。ここで仮想ネットワーク情報とは、例えばネットワークＩＤや、ネットワークセグメントＩＤである。
【００５２】
感染被疑端末特定部５６は、仮想ＮＷ特定部５５により特定された第１仮想ネットワークを介して副次的に感染した可能性のある第２端末７を特定する。具体的には、仮想ＮＷ特定部５５により取得された第１仮想ネットワーク情報と対応付けられている、感染端末特定部５２により取得された端末情報に示される第１端末７とは異なる第２端末７を示す端末情報を端末接続状態テーブル２３から取得する。ここで取得される端末情報とは例えばユーザＩＤ等の識別情報である。
【００５３】
感染被疑端末特定部５６は、第２端末７を特定する際、仮想ＮＷ特定部５５により特定された第１仮想ネットワークに対するログイン期間が、感染端末特定部５２により特定された第１端末７と重複する第２端末７を特定する。具体的には、仮想ＮＷ特定部５５により取得された第１仮想ネットワーク情報により示される第１仮想ネットワークに対して接続状態にあった期間が第１端末７と重複する第２端末７を特定する。
【００５４】
また、感染被疑端末特定部５６は、第２端末７を特定する際、上記の重複するログイン期間の少なくとも一部が侵入時点Ｔ以降である第２端末７を特定する。言い換えると、上記の重複する、第１仮想ネットワークに対して接続状態にあった期間の少なくとも一部が侵入時点Ｔ以降である第２端末７を特定する。
【００５５】
また、感染被疑端末特定部５６は、第２端末７の特定に加えて、仮想ＮＷ特定部５５により第１端末７が所属していた第２仮想ネットワークが特定された場合に、この第２仮想ネットワークを介して副次的に感染した可能性のある第３端末７を特定する。具体的には、仮想ＮＷ特定部５５により第１端末７の端末情報と対応付けられている第２仮想ネットワーク情報が端末接続状態テーブル２３から取得されると、この第２仮想ネットワーク情報と対応付けられている、第１及び第２端末７とは異なる第３端末７を示す端末情報を端末接続状態テーブル２３から取得する。
【００５６】
また、感染被疑端末特定部５６は、第２端末７を特定後に、仮想ＮＷ特定部５５により第２端末７が所属していた第３仮想ネットワークが特定されると、この第３仮想ネットワークを介して副次的に感染した可能性のある第４端末７を特定する。具体的には、仮想ＮＷ特定部５５により第２端末７を示す端末情報と対応付けられる第３仮想ネットワーク情報が端末接続状態テーブル２３から取得されると、この第３仮想ネットワーク情報と対応付けられている、第１乃至第３端末７とは異なる第４端末７を示す端末情報を端末接続状態テーブル２３から取得する。
【００５７】
物理リンク特定部５７は、通信ネットワーク１の物理リンク情報を物理リンク情報テーブル２１から取得する。具体的には、スナップＩＤ取得部５３により取得されたスナップＩＤ以降のスナップＩＤと対応付けられている物理リンク情報を取得する。
【００５８】
論理リンク特定部５８は、通信ネットワーク１の論理リンク情報を論理リンク情報テーブル２２から取得する。具体的には、スナップＩＤ取得部５３により取得されたスナップＩＤ以降のスナップＩＤと対応付けられている論理リンク情報を取得する。
【００５９】
スコア算出部５９は、感染被疑端末特定部５６により特定された各端末７について、マルウェア感染の確率を示すスコアＰを算出する。
【００６０】
トポロジ図作成部６０は、通信ネットワーク１のトポロジを示す図を描画する。ここで、トポロジとは、通信ネットワーク１の物理的及び／又は論理的な接続形態である。トポロジ図作成部６０は、具体的には、物理リンク特定部５７により取得された物理リンク情報を参照して、ＯＦＳ６をノードで示し、ＯＦＳ６間の物理リンクをエッジとする物理トポロジ図を描画する。また、トポロジ図作成部６０は、論理リンク特定部５８により取得された論理リンク情報を参照して、ＯＦＳ６をノードで示し、ＯＦＳ６間の論理リンクをエッジとする論理トポロジ図を描画する。この際、トポロジ図作成部６０は、物理トポロジ図に重ねて論理トポロジ図を描画する。また、トポロジ図作成部６０は、論理トポロジ図において、感染被疑端末特定部５６により特定された各端末７をノードとして描画する。なお、この際描画される各端末７を示すノードの表示態様は、スコア算出部５９により算出されたスコアＰに応じて決定される。
【００６１】
表示部６１は、トポロジ図作成部６０により作成されたトポロジ図を、例えば液晶ディスプレイ等の表示装置に表示する。この表示部６１は、トポロジ図作成部６０により作成されたトポロジ図を示すデータを出力する出力部の一例である。
【００６２】
１−８．マルウェア影響範囲特定システム１００の動作
マルウェア影響範囲特定システム１００の動作について説明する。具体的には、マルウェアの侵入を検知時に当該マルウェアの影響範囲を特定する処理と、特定したマルウェアの影響範囲を可視化する処理とについて説明する。
【００６３】
１−８−１．マルウェア影響範囲特定処理
図１４及び１５は、マルウェア影響範囲特定処理を示すフローチャートである。本処理は、例えば、検知装置４からマルウェアの検知のアラートを受けたユーザＵが、ＮＷ可視化装置５に対して当該マルウェアの侵入を受けた端末７の識別情報と侵入時点Ｔを示す時間情報とを入力することにより実行される。
【００６４】
本処理のステップＳｃ１においてＮＷ可視化装置５の感染端末特定部５２は、マルウェアに侵入された端末７（以下、本処理の説明において「感染端末７」という。）の端末情報（具体的には、ＩＰアドレスとＭＡＣアドレス）を取得し、侵入時点特定部５１は、その侵入時点Ｔを示す時間情報を取得する。
【００６５】
次に、スナップＩＤ取得部５３は、侵入時点Ｔよりも過去のタイムスタンプと対応付けられているスナップＩＤであって、その論理リンク取得識別子が「１」である直近のスナップＩＤをスナップ情報テーブル２４から取得する（ステップＳｃ２）。ここで、論理リンク取得識別子が「１」であるスナップＩＤを取得しているのは、スナップ情報テーブル２４に記録されるスナップＩＤのうち、論理リンク情報が記録された時点に対応するスナップＩＤを取得するためである。例えば、スナップＩＤ取得部５３は、侵入時点Ｔが「2015/03/01 12:30:00」である場合には、図８に示されるスナップ情報テーブル２４においては、スナップＩＤ「１」を取得する。
【００６６】
次に、感染端末ＩＤ取得部５４は、感染端末７のユーザＩＤを端末接続状態テーブル２３から取得する（ステップＳｃ３）。例えば、感染端末ＩＤ取得部５４は、感染端末７のＩＰアドレスが「ip2」であり、ＭＡＣアドレスが「mac2」である場合には、図７に示される端末接続状態テーブル２３においては、ユーザＩＤ「２」を取得する。そして、感染端末ＩＤ取得部５４は、取得したユーザＩＤを、以降のループＬ１の処理対象として、例えばＲＡＭ（Random Access Memory）に記録する。
【００６７】
次に、ループＬ１の処理が実行される。このループＬ１においては、ＲＡＭに記録されている各ユーザＩＤについて、当該ユーザＩＤにより識別される端末７（以下、本処理の説明において「感染源端末７」という。）を介して副次的に感染した可能性のある他の端末７（以下、本処理の説明において「感染被疑端末７」という。）の情報を取得する。
【００６８】
まず、仮想ＮＷ特定部５５は、感染源端末７が所属していたネットワークを特定する（ステップＳｃ４）。具体的には、ループＬ１の処理対象のユーザＩＤと対応付けられているネットワークＩＤを端末接続状態テーブル２３から取得する。例えば、仮想ＮＷ特定部５５は、ループＬ１の処理対象のユーザＩＤが「２」である場合には、図７に示される端末接続状態テーブル２３においては、ネットワークＩＤ「vlan2」及び「vlan8」を取得する。
【００６９】
次に、ループＬ２の処理が実行される。このループＬ２においては、ステップＳｃ４において特定した各ネットワークＩＤについて、感染被疑端末７の情報を取得する。言い換えると、感染源端末７が所属していた各ネットワークを感染経路とする感染被疑端末７の情報を取得する。
【００７０】
まず、感染被疑端末特定部５６は、感染経路となるネットワークに感染源端末７がログインしていた期間（すなわち、ログイン期間）を特定する（ステップＳｃ５）。具体的には、ループＬ２の処理対象のネットワークＩＤにより識別されるネットワークに、ループＬ１の処理対象のユーザＩＤにより識別される端末７がログインしていた期間を端末接続状態テーブル２３を参照して特定する。例えば、感染被疑端末特定部５６は、ループＬ２の処理対象のネットワークＩＤが「vlan2」であり、ループＬ１の処理対象のユーザＩＤが「２」である場合には、図７に示される端末接続状態テーブル２３においては、ログイン期間としてスナップＩＤ「３」〜「８」を取得する。
【００７１】
次に、感染被疑端末特定部５６は、感染経路のネットワークに所属していた、感染被疑端末７の候補となる端末（以下、本処理の説明において「感染被疑候補端末７」という。）を特定する（ステップＳｃ６）。具体的には、ループＬ２の処理対象のネットワークＩＤと対応付けられているユーザＩＤを端末接続状態テーブル２３から取得する。例えば、感染被疑端末特定部５６は、ループＬ２の処理対象のネットワークＩＤが「vlan2」である場合には、図７に示される端末接続状態テーブル２３においては、ユーザＩＤ「４」を取得する。
【００７２】
次に、ループＬ３の処理が実行される。このループＬ３においては、ステップＳｃ６において取得した各ユーザＩＤについて、感染被疑端末７としてその情報を取得すべきか否かについて判断を行う。言い換えると、感染被疑候補端末７の各々について、感染被疑端末７であるか否かの判断を行う。
【００７３】
まず、感染被疑端末特定部５６は、感染被疑候補端末７が、感染経路のネットワークにログインしていた期間（すなわち、ログイン期間）を特定する（ステップＳｃ７）。具体的には、ループＬ３の処理対象のユーザＩＤにより識別される端末７が、ループＬ２の処理対象のネットワークＩＤにより識別されるネットワークにログインしていた期間を特定する。例えば、感染被疑端末特定部５６は、ループＬ３の処理対象のユーザＩＤが「４」であり、ループＬ２の処理対象のネットワークＩＤが「vlan2」である場合には、図７に示される端末接続状態テーブル２３においては、ログイン期間としてスナップＩＤ「５」〜「１１」を取得する。
【００７４】
次に、感染被疑端末特定部５６は、感染源端末７のログイン期間と、感染被疑候補端末７のログイン期間とが重複するか否かについて判断する（ステップＳｃ８）。具体的には、ステップＳｃ５において特定したログイン期間と、ステップＳｃ７において特定したログイン期間とが重複するか否かについて判断する。例えば、ステップＳｃ５においてログイン期間としてスナップＩＤ「３」〜「８」が取得され、ステップＳｃ７においてログイン期間としてスナップＩＤ「５」〜「１１」が取得されていた場合には、スナップＩＤ「５」〜「８」において両者は重複するため、感染被疑端末特定部５６はログイン期間が重複すると判断する。この判断の結果が肯定的であった場合には（ステップＳｃ８；ＹＥＳ）、感染被疑端末特定部５６はステップＳｃ９を実行する。
【００７５】
ステップＳｃ９において感染被疑端末特定部５６は、感染源端末７と感染被疑候補端末７との間で重複するログイン期間の少なくとも一部が、感染源端末７がその感染を受けた可能性のある期間の始期以降であるか否かについて判断する（ステップＳｃ９）。具体的には、ステップＳｃ８において重複するログイン期間の少なくとも一部が、ループＬ１の処理対象のユーザＩＤと対応付けられてＲＡＭに記録されている重複ログイン期間の始期以降であるか否かについて判断する。ただし、本ステップにおいて、ループＬ１の処理対象のユーザＩＤが感染端末７のユーザＩＤである場合には、ステップＳｃ８において重複するログイン期間の少なくとも一部が、侵入時点Ｔ以降であるか否かについて判断する。例えば、感染被疑端末特定部５６は、ステップＳｃ８において重複するログイン期間としてスナップＩＤ「５」〜「８」が特定され、ステップＳｃ２において特定されたスナップＩＤが「２」である場合には、スナップＩＤ「５」〜「８」はスナップＩＤ「２」よりも後の時間を示す識別子であるため、重複するログイン期間は侵入時点Ｔ以降であると判断する。
【００７６】
この判断の結果が肯定的であった場合には（ステップＳｃ９；ＹＥＳ）、感染被疑端末特定部５６は、感染被疑候補端末７を感染被疑端末７であると判断し、感染被疑候補端末７の情報を取得する（ステップＳｃ１０）。具体的には、ステップＳｃ６において特定したユーザＩＤと対応付けられているアカウント名と、ＩＰアドレスと、ＭＡＣアドレスとを端末接続状態テーブル２３から取得する。
【００７７】
また、感染被疑端末特定部５６は、感染被疑候補端末７のユーザＩＤ（すなわち、ステップＳｃ６において特定したユーザＩＤ）を、ループＬ１の処理対象としてＲＡＭに記録する（ステップＳｃ１１）。この際、感染被疑端末特定部５６は、感染被疑候補端末７のユーザＩＤの先頭に、感染源端末７のユーザＩＤ（すなわち、ループＬ１の処理対象となっているユーザＩＤ）を付加した上でＲＡＭに記録する。例えば、感染被疑端末特定部５６は、ステップＳｃ６において特定したユーザＩＤが「４」であり、ループＬ１の処理対象となっているユーザＩＤが「２」である場合には、「２−４」というユーザＩＤをＲＡＭに記録する。これは、後で説明するステップＳｃ６の処理において、排除すべき先祖ノードのユーザＩＤを特定するためである。
【００７８】
また、感染被疑端末特定部５６は、ステップＳｃ９において特定される重複するログイン期間を、感染被疑候補端末７のユーザＩＤ（すなわち、ステップＳｃ６において特定したユーザＩＤ）に対応付けて、例えばＲＡＭに記録する（ステップＳｃ１２）。なおこの際も感染被疑端末特定部５６は、感染被疑候補端末７のユーザＩＤの先頭に、感染源端末７のユーザＩＤ（すなわち、ループＬ１の処理対象となっているユーザＩＤ）を付加した上でＲＡＭに記録する。
【００７９】
ステップＳｃ１２の実行後、または、ステップＳｃ８若しくはＳｃ９の判断結果が否定的であった場合であって（ステップＳｃ８又はＳｃ９；ＮＯ）、ループＬ３の処理対象のユーザＩＤが存在する場合には、当該ユーザＩＤについてループＬ３が実行される。もしそのようなユーザＩＤが存在しない場合であって、ループＬ２の処理対象のネットワークＩＤが存在する場合には、当該ネットワークＩＤについてループＬ２が実行される。もしそのようなネットワークＩＤが存在しない場合であって、ループＬ１の処理対象のユーザＩＤが存在する場合には、当該ユーザＩＤについてループＬ１が実行される。もしそのようなユーザＩＤが存在しない場合には、本処理は終了する。
【００８０】
ここで仮に、ループＬ３とループＬ２について処理対象が存在せず、ループＬ１の処理対象としてユーザＩＤ「２−４」が存在するとする。この場合、処理はステップＳｃ４に戻り、仮想ＮＷ特定部５５は、ユーザＩＤ「２−４」により識別される感染源端末７が所属していたネットワークを特定する。具体的には、ユーザＩＤ「２−４」と対応付けられているネットワークＩＤを端末接続状態テーブル２３から取得する。なおこの際、仮想ＮＷ特定部５５は、ユーザＩＤが「２−４」のように数列である場合には、当該数列の末尾のユーザＩＤ（ここでは「４」）と対応付けられているネットワークＩＤを取得する。本ステップにおいて仮想ＮＷ特定部５５は、図７に示される端末接続状態テーブル２３においては、ネットワークＩＤ「vlan2」及び「vlan10」を取得する。
【００８１】
次に、ループＬ２の処理が実行される。このループＬ２においては、ステップＳｃ４において特定したネットワークＩＤ「vlan2」及び「vlan10」について、感染被疑端末７の情報を取得する。言い換えると、感染源端末７が所属していた各ネットワークを感染経路とする感染被疑端末７の情報を取得する。
【００８２】
まず、ネットワークＩＤ「vlan2」をループＬ２の処理対象としたとすると、感染被疑端末特定部５６は、ネットワークＩＤ「vlan2」により識別される感染経路のネットワークに感染源端末７がログインしていた期間（すなわち、ログイン期間）を特定する（ステップＳｃ５）。具体的には、ネットワークＩＤ「vlan2」により識別されるネットワークに、ユーザＩＤ「２−４」により識別される端末７がログインしていた期間を端末接続状態テーブル２３を参照して特定する。なおこの際、感染被疑端末特定部５６は、ユーザＩＤが「２−４」のように数列である場合には、当該数列の末尾のユーザＩＤ（ここでは「４」）により識別される端末７がログインしていた期間を特定する。本ステップにおいて、感染被疑端末特定部５６は、図７に示される端末接続状態テーブル２３においては、ログイン期間としてスナップＩＤ「５」〜「１１」を取得する。
【００８３】
次に、感染被疑端末特定部５６は、感染経路のネットワークに所属していた感染被疑候補端末７を特定する（ステップＳｃ６）。具体的には、ネットワークＩＤ「vlan2」と対応付けられているユーザＩＤを端末接続状態テーブル２３から取得する。本ステップにおいて、感染被疑端末特定部５６は、図７に示される端末接続状態テーブル２３においては、ユーザＩＤ「２」を取得する。ただし、本ステップにおいて感染被疑端末特定部５６は、処理対象のユーザＩＤの先祖ノードに該当するユーザＩＤについては排除する。ここで、先祖ノードとは、感染源端末７自身が感染するに至るその過程において当該感染を仲介してきた直系の端末７のことである。取得されたユーザＩＤ「２」は、ユーザＩＤ「２−４」の先祖ノードに該当するため、排除される。
【００８４】
次に、ループＬ３の処理が実行される。しかし、本ループの処理対象となるユーザＩＤは存在しないため、本ループの処理は終了する。そして、処理はステップＳｃ５に戻り、ネットワークＩＤ「vlan10」についてループＬ２の処理が開始される。
【００８５】
ネットワークＩＤ「vlan10」をループＬ２の処理対象とすると、感染被疑端末特定部５６は、ネットワークＩＤ「vlan10」により識別される感染経路のネットワークに感染源端末７がログインしていた期間（すなわち、ログイン期間）を特定する（ステップＳｃ５）。具体的には、ネットワークＩＤ「vlan10」により識別されるネットワークに、ユーザＩＤ「２−４」により識別される端末７がログインしていた期間を端末接続状態テーブル２３を参照して特定する。本ステップにおいて感染被疑端末特定部５６は、図７に示される端末接続状態テーブル２３においては、ログイン期間としてスナップＩＤ「１７」〜「２５」を取得する。
【００８６】
次に、感染被疑端末特定部５６は、感染経路のネットワークに所属していた感染被疑候補端末７を特定する（ステップＳｃ６）。具体的には、ネットワークＩＤ「vlan10」と対応付けられているユーザＩＤを端末接続状態テーブル２３から取得する。本ステップにおいて感染被疑端末特定部５６は、図７に示される端末接続状態テーブル２３においては、ユーザＩＤ「１６」を取得する。なお、このユーザＩＤ「１６」は、ユーザＩＤ「４」の先祖ノードに該当しないため排除されない。
【００８７】
次に、ループＬ３の処理が実行される。このループＬ３においては、ユーザＩＤ「１６」により識別される感染被疑候補端末７が感染被疑端末７であるか否かの判断を行う。
【００８８】
まず、感染被疑端末特定部５６は、感染被疑候補端末７が、感染経路のネットワークにログインしていた期間（すなわち、ログイン期間）を特定する（ステップＳｃ７）。具体的には、ユーザＩＤ「１６」により識別される端末７が、ネットワークＩＤ「vlan10」により識別されるネットワークにログインしていた期間を特定する。本ステップにおいて感染被疑端末特定部５６は、図７に示される端末接続状態テーブル２３においては、ログイン期間としてスナップＩＤ「１８」〜「２４」を取得する。
【００８９】
次に、感染被疑端末特定部５６は、感染源端末７のログイン期間と、感染被疑候補端末７のログイン期間とが重複するか否かについて判断する（ステップＳｃ８）。具体的には、ステップＳｃ５において特定したログイン期間と、ステップＳｃ７において特定したログイン期間とが重複するか否かについて判断する。この判断において感染被疑端末特定部５６は、ステップＳｃ５において特定したスナップＩＤとステップＳｃ７において特定したスナップＩＤとは、スナップＩＤ「１８」〜「２４」の間において重複するため、ログイン期間は重複すると判断する（ステップＳｃ８；ＹＥＳ）。
【００９０】
この判断の結果が肯定的であった場合、感染被疑端末特定部５６は次に、感染源端末７と感染被疑候補端末７との間で重複するログイン期間が、感染源端末７がその感染を受けた可能性のある期間の始期以降であるか否かついて判断する（ステップＳｃ９）。具体的には、ステップＳｃ８において重複するログイン期間が、ユーザＩＤ「２−４」と対応付けられてＲＡＭに記録されている重複ログイン期間の始期以降であるか否かについて判断する。この判断において感染被疑端末特定部５６は、ステップＳｃ８において重複するログイン期間はスナップＩＤ「１８」〜「２４」であり、ユーザＩＤ「２−４」と対応付けられてＲＡＭに記録されている重複ログイン期間の始期はスナップＩＤ「５」であり、スナップＩＤ「１８」〜「２４」はスナップＩＤ「５」よりも後の時間を示す識別子であるため、肯定的な判断を下す（ステップＳｃ９；ＹＥＳ）。
【００９１】
この判断の結果が肯定的であった場合、感染被疑端末特定部５６は、感染被疑候補端末７を感染被疑端末７であると判断し、感染被疑候補端末７の情報を取得する（ステップＳｃ１０）。具体的には、ユーザＩＤ「１６」と対応付けられているアカウント名と、ＩＰアドレスと、ＭＡＣアドレスとを端末接続状態テーブル２３から取得する。
【００９２】
また、感染被疑端末特定部５６は、感染被疑候補端末７のユーザＩＤ（すなわち、ユーザＩＤ「１６」）を、ループＬ１の処理対象としてＲＡＭに記録する（ステップＳｃ１１）。この際、感染被疑端末特定部５６は、感染被疑候補端末７のユーザＩＤの先頭に、感染源端末７のユーザＩＤ（すなわち、ユーザＩＤ「２−４」）を付加した上でＲＡＭに記録する。本ステップにおいて感染被疑端末特定部５６は、「２−４−１６」というユーザＩＤをＲＡＭに記録する。
【００９３】
また、感染被疑端末特定部５６は、ステップＳｃ９において特定した重複するログイン期間を、感染被疑候補端末７のユーザＩＤ（すなわち、ユーザＩＤ「２−４−１６」）に対応付けてＲＡＭに記録する（ステップＳｃ１２）。
【００９４】
ステップＳｃ１２の実行後は、ループＬ３とループＬ２の処理対象は存在しないため、ループＬ１が実行される。このループＬ１では、ユーザＩＤ「２−４−１６」を含むＲＡＭに記録されているユーザＩＤが処理対象となる。
以上が、マルウェア影響範囲特定処理についての説明である。
【００９５】
次に、上記のマルウェア影響範囲特定処理の適用例について、図１６〜１９を参照して説明する。
【００９６】
まず、図１６は、上記のマルウェア影響範囲特定処理におけるステップＳｃ１〜Ｓｃ５が実行された後の状態を示す図である。具体的には、ステップＳｃ１〜Ｓｃ５が実行された結果、感染端末７のユーザＩＤが特定され、感染端末７が所属していたネットワークのネットワークＩＤが特定され、さらに感染端末７のログイン期間が特定された状態を示す図である。図１６（ａ）は、この状態において特定されているマルウェアの影響範囲を示すツリー図であり、１６（ｂ）は、本適用例においてマルウェア影響範囲特定処理が適用される端末接続状態テーブル２３Ａの一例を示す図である。
【００９７】
図１６（ａ）に示されるツリー図は、より具体的には、推定されるマルウェアの感染拡大の経緯を示す図である。同図において、端末７はノードとして表され、感染源端末７と被感染端末７の関係はリンクで表される。ツリーの下位に行くほど、感染の次数が増加する。このツリー図に関する説明は、以降に登場する図１７〜図１９のツリー図においても妥当する。図１６（ａ）に示される状態では、ユーザＡのみが１次感染源として特定されている。
【００９８】
図１６（ｂ）に示される端末接続状態テーブル２３Ａは、上述の図７に示される端末接続状態テーブル２３を簡略化したテーブルである。この端末接続状態テーブル２３Ａでは、端末接続状態テーブル２３に記録されるデータのうち、ユーザＩＤと、ネットワークＩＤと、スナップＩＤのみが記録されている。端末接続状態テーブル２３Ａの各行はユーザＩＤに対応し、各列はスナップＩＤに対応し、行と列が交差する位置にはネットワークＩＤが格納されている。例えば本テーブルは、ユーザ「Ａ」の端末７が、スナップＩＤ「１」〜「１０」により示される期間において、ネットワークＩＤ「VID1」により識別されるネットワークに所属していることを示している。
【００９９】
なお、本適用例の説明においては、この端末接続状態テーブル２３ＡにおけるスナップＩＤ「１」が示す時点においてマルウェアの侵入が発生し、スナップＩＤ「１０」が示す時点においてマルウェア影響範囲特定処理が実行されているものと仮定している。また、端末接続状態テーブル２３ＡにおけるいずれのスナップＩＤが示す時点においても、いずれのユーザＩＤにより識別される端末７もログイン状態であると仮定している。以上の端末接続状態テーブル２３Ａについての説明は、以降に登場する図１７及び１８の端末接続状態テーブル２３Ａにおいても妥当する。
【０１００】
次に、図１７は、上記のマルウェア影響範囲特定処理におけるループＬ１がユーザ「Ａ」について実行された後の状態を示している。図１７（ｂ）に示されるように、ユーザ「Ａ」を除く各ユーザのうち、ユーザ「Ｂ」は、スナップＩＤ「１」〜「５」に示される期間においてネットワークＩＤ「VID1」がユーザ「Ａ」と共通している（図１４のステップＳｃ６参照）。また、ユーザ「Ｂ」はユーザ「Ａ」にとっての先祖ノードに該当しない（図１４のステップＳｃ６参照）。また、同期間においてユーザ「Ａ」及び「Ｂ」は、いずれもログイン状態にある（図１５のステップＳｃ８参照）。また、同期間は、スナップＩＤ「１」により示されるマルウェアの侵入時点Ｔ以降である（図１５のステップＳｃ９参照）（侵入時点Ｔは、図１７（ｂ）において調査期間の開始時点としても表されている。）。よって、ユーザＩＤ「Ｂ」は、図１７（ａ）に示されるように、２次感染源として特定されている。なお、図１７に示される状態では、ユーザ「Ｂ」と同様に、ユーザ「Ｅ」及び「Ｆ」も２次感染源として特定されている。
【０１０１】
図１８は、上記のマルウェア影響範囲特定処理におけるループＬ１がユーザ「Ｂ」（ユーザ「Ａ」を親ノードとするユーザ「Ｂ」）について実行された後の状態を示している。図１８（ｂ）に示されるように、ユーザ「Ａ」及び「Ｂ」を除く各ユーザのうち、ユーザ「Ｃ」は、スナップＩＤ「６」〜「１０」に示される期間においてネットワークＩＤ「VID2」がユーザ「Ｂ」と共通している（図１４のステップＳｃ６参照）。また、ユーザ「Ｃ」はユーザ「Ｂ」にとっての先祖ノードに該当しない（図１４のステップＳｃ６参照）。また、同期間においてユーザ「Ｂ」及び「Ｃ」は、いずれもログイン状態にある（図１５のステップＳｃ８参照）。また、同期間は、ユーザ「Ｂ」が感染を受けた可能性のある期間の始期以降である（図１５のステップＳｃ９参照）（当該始期は、図１８（ｂ）において調査期間の開始時点として表されている。）。よって、ユーザＩＤ「Ｃ」は、図１８（ａ）に示されるように、３次感染源として特定されている。なお、図１８に示される状態では、ユーザ「Ｃ」と同様に、ユーザ「Ｅ」及び「Ｆ」も３次感染源として特定されている。
【０１０２】
図１９は、上記のマルウェア影響範囲特定処理におけるループＬ１が繰り返された結果、ループＬ１の処理対象であるユーザＩＤがすべて処理された場合に特定されるマルウェアの影響範囲を示すツリー図である。同図に示されるツリー図では、６次感染源まで特定されている。
【０１０３】
１−８−２．マルウェア影響範囲可視化処理
図２０は、マルウェア影響範囲可視化処理を示すフローチャートである。本処理は例えば、上記のマルウェア影響範囲特定処理の実行後に自動的に実行される。または、上記のマルウェア影響範囲特定処理の実行後に、ユーザＵによる所定の指示を受けて実行される。
【０１０４】
本処理のステップＳｄ１においてＮＷ可視化装置５の物理リンク特定部５７は、上記のマルウェア影響範囲特定処理のステップＳｃ２において取得されたスナップＩＤと対応付けられている物理リンク情報を物理リンク情報テーブル２１から取得する。この際、物理リンク情報テーブル２１に、当該スナップＩＤに示される日時以降の日時を示す他のスナップＩＤが存在する場合には、そのスナップＩＤと対応付けられている物理リンク情報も取得する。そして、取得した物理リンク情報をトポロジ図作成部６０に出力する。
【０１０５】
次に、論理リンク特定部５８は、上記のマルウェア影響範囲特定処理のステップＳｃ２において取得されたスナップＩＤと対応付けられている論理リンク情報を論理リンク情報テーブル２２から取得する（ステップＳｄ２）。この際、論理リンク情報テーブル２２に、当該スナップＩＤに示される日時以降の日時を示す他のスナップＩＤが存在する場合には、そのスナップＩＤと対応付けられている論理リンク情報も取得する。例えば、論理リンク特定部５８は、上記のマルウェア影響範囲特定処理のステップＳｃ２においてスナップＩＤ「１」が取得された場合には、図６に示される論理リンク情報テーブル２２においては、スナップＩＤ「１」〜「７」のいずれかと対応付けられている論理リンク情報をすべて取得する。そして、論理リンク特定部５８は、取得した論理リンク情報をトポロジ図作成部６０に出力する。
【０１０６】
次に、スコア算出部５９は、上記のマルウェア影響範囲特定処理の結果、感染被疑端末７として特定された各端末７について、マルウェア感染の確率を示すスコアＰを算出する（ステップＳｄ３）。このスコアＰは、例えば、各端末７について、Ｍ次感染端末７を感染源とした場合のスコアＱをまず算出して、各感染の次数ごとに算出されたスコアＱを合計することにより算出される。スコアＱは、例えば下式により表される。
Ｑ＝（Ｘ・ａ）（Ｙ・ｂ）ｃM
この式において「Ｘ」、「Ｙ」、「Ｍ」はそれぞれ時間、端末数、感染の次数を示す。この式によれば、Ｍ次感染端末７とＸ時間、通信可能な状態にあり、Ｍ＋１次感染端末７としてＹ回出現したときのスコアＱが求められる。なお、「ａ」、「ｂ」、「ｃ」はそれぞれ、時間、端末数、次数の係数である。
【０１０７】
図２１は、スコアＰの算出方法の一例を説明する図である。同図に示される例は、上記の図１９に示されるツリーを構成する各端末７についてスコアＰを算出する場合を示している。図２１（ａ）は、各端末７について感染の次数ごとの出現数を示すテーブルを示し、図２１（ｂ）は、各端末７についてＭ次感染端末７との間で重複するログイン期間の累計を示すテーブルを示し、図２１（ｃ）は、各端末７について、Ｍ次感染端末７を感染源とした場合のスコアＱと、スコアＱの合計値であるスコアＰと、スコアＰから決定される対応優先度とを示すテーブルを示す。なお、図２１に示される例では、スコアＱは、係数「ａ」、「ｂ」、「ｃ」をそれぞれ「０．７」、「０．７」、「０．５」として計算されている。
【０１０８】
スコアＱの計算例について具体的に説明する。図２１（ｂ）によれば、例えば、ユーザ「Ｂ」の端末７は、「Ｍ＝１」次感染端末７と「Ｘ＝５」時間、通信可能な状態となっている。また、図２１（ａ）によれば、ユーザ「Ｂ」の端末７は、「Ｍ＋１＝２」次感染端末７として「Ｙ＝１」回出現している。以上のことからユーザ「Ｂ」の端末７が「Ｍ＝１」次感染端末７を感染源とした場合のスコアＱB1は下式のように表される。
ＱB1＝（５・０．７）（１・０．７）０．５1＝１．２２５
【０１０９】
スコア算出部５９は、本ステップにおいて各端末７について算出したスコアＰをトポロジ図作成部６０に出力する。
【０１１０】
次に、トポロジ図作成部６０は、ステップＳｄ１において物理リンク特定部５７により取得された物理リンク情報を参照して、ＯＦＳ６を矩形のノードで示し、ＯＦＳ６間の物理リンクをエッジとする物理トポロジ図を描画する（ステップＳｄ４）。この際、トポロジ図作成部６０は、物理トポロジ図が目立たないように、当該図を細線や薄い色で描画する。
【０１１１】
次に、トポロジ図作成部６０は、ステップＳｄ２において論理リンク特定部５８により取得された論理リンク情報を参照して、ＯＦＳ６を矩形のノードで示し、ＯＦＳ６間の論理リンクをエッジとする論理トポロジ図を描画する（ステップＳｄ５）。この際、トポロジ図作成部６０は、論理トポロジ図を物理トポロジ図に重ねて描画する。また、トポロジ図作成部６０は、物理トポロジ図よりも論理トポロジ図が目立つように、論理トポロジ図を太線や濃い色で描画する。
【０１１２】
次に、トポロジ図作成部６０は、ステップＳｄ５において描画した論理トポロジ図において、上記のマルウェア影響範囲特定処理の結果、感染被疑端末７として特定された各端末７を円形のノードとしてさらに描画するとともに、各端末７とＯＦＳ６との間の論理リンクをエッジとしてさらに描画する（ステップＳｄ６）。このときトポロジ図作成部６０は、各端末７と論理リンクにより結ばれるＯＦＳ６を、ステップＳｄ２において論理リンク特定部５８により取得された論理リンク情報を参照して特定する。また、トポロジ図作成部６０は、物理トポロジ図よりも目立つように、ノードとエッジとを太線や濃い色で描画する。なおこの際、トポロジ図作成部６０は、ステップＳｄ３においてスコア算出部５９により算出されたスコアＰに基づいて各端末７を示すノードの表示態様（具体的には、色や形状やサイズ）を決定する。トポロジ図作成部６０は、本ステップにおいて完成させたトポロジ図（物理トポロジ図と論理トポロジ図の組）を示す画像データを表示部６１に出力する。
【０１１３】
次に、表示部６１は、ステップＳｄ６においてトポロジ図作成部６０により完成されたトポロジ図を含む画面を表示する（ステップＳｄ７）。
【０１１４】
図２２は、表示部６１により表示される画面の一例を示す図である。同図に示される画面は、トポロジ図が表示される表示領域Ａ１と、表示対象のトポロジ図を物理トポロジ図と論理トポロジ図のうちから選択するためのチェックボックスＣＢ１及びＣＢ２と、表示対象とする論理トポロジが形成されていた期間の始期と終期とを指定するための入力フィールドＦ１及びＦ２と、１次感染源の端末７のユーザ名とＩＰアドレスとＭＡＣアドレスとネットワークＩＤがそれぞれ表示される表示領域Ａ２〜Ａ５と、表示対象とする感染被疑端末７の感染の次数を指定するための入力フィールドＦ３とにより構成される。
【０１１５】
表示領域Ａ１に表示されるトポロジ図において黒丸のノードは１次感染端末７を示し、網掛けのノードは感染被疑端末７を示す。このトポロジ図において、各端末７を示すノードと対応付けて、対応優先度の値を表示するようにしてもよい。チェックボックスＣＢ１及びＣＢ２は、これらを使用すれば、物理トポロジ図のみを表示させたり、論理トポロジ図のみを表示させたりすることができる。入力フィールドＦ１、Ｆ２及びＦ３については後で詳述する。
【０１１６】
なお、表示領域Ａ１に表示される論理トポロジ図が、複数の時点の論理リンク情報（言い換えると、各々異なるスナップＩＤと対応付けられている複数セットの論理リンク情報）を参照して描画される場合には、各時点の論理トポロジ図が合成されて、１つの論理トポロジ図が生成される。
【０１１７】
図２３は、複数の論理トポロジ図が合成される場合の一例を説明する図である。同図に示される例では、それぞれスナップＩＤ「Ｘ」、「Ｙ」、「Ｚ」に対応する論理リンク情報に基づいて描画される論理トポロジ図が併合されて１つの論理トポロジ図が生成されている。
以上が、マルウェア影響範囲可視化処理についての説明である。
【０１１８】
以上説明した本実施形態に係るマルウェア影響範囲特定システム１００によれば、ネットワーク構成情報が所定のタイミングで時系列に保存されるため、ネットワーク状態が頻繁に変化するＳＤＮ環境においても、マルウェア感染の影響範囲を特定することができる。また、マルウェア感染の影響範囲を提示することで、フォレンジックのためのログ取得の簡便化が図られる。また、ネットワーク内のセキュリティリスクを視覚的に把握することができ、マルウェア感染の影響範囲の妥当性を評価することができる。
【０１１９】
２．変形例
上記の実施形態は、以下に示すように変形してもよい。また、以下の変形例は互いに組み合わせてもよい。
【０１２０】
２−１．変形例１
上述の図２２に示される画面の入力フィールドＦ３に感染の次数Ｎが入力されると、Ｎ次感染までの感染被疑端末７が上記のマルウェア影響範囲特定処理により特定されて、特定された感染被疑端末７を示すノードとこれらの端末７が所属していた論理ネットワークとが表示される。例えば、ユーザＵにより感染次数「１」が指定された場合には、ステップＳｄ７において表示される画面には、１次感染端末７を示すノードと、当該端末７が所属していた論理ネットワークとが表示される。
【０１２１】
２−２．変形例２
上述の図２２に示される画面の入力フィールドＦ１及びＦ２に表示期間の始期と終期が入力されると、上記のマルウェア影響範囲可視化処理が再実行される。この際、ＮＷ可視化装置５のスナップＩＤ取得部５３は、侵入時点Ｔに代えて、入力された始期よりも過去のタイムスタンプと対応付けられているスナップＩＤであって、その論理リンク取得識別子が「１」である直近のスナップＩＤをスナップ情報テーブル２４から取得する。そして、物理リンク特定部５７は、ステップＳｄ１において、スナップＩＤ取得部５３により取得されたスナップＩＤと対応付けられている物理リンク情報を物理リンク情報テーブル２１から取得する。この際、当該スナップＩＤに示される日時以降の日時であって、入力された終期以前の日時を示す他のスナップＩＤが存在する場合には、物理リンク特定部５７は、そのスナップＩＤと対応付けられている物理リンク情報も取得する。次に、論理リンク特定部５８は、ステップＳｄ２において、スナップＩＤ取得部５３により取得されたスナップＩＤと対応付けられている論理リンク情報を論理リンク情報テーブル２２から取得する。この際、論理リンク情報テーブル２２に当該スナップＩＤに示される日時以降の日時であって、入力された終期以前の日時を示す他のスナップＩＤが存在する場合には、論理リンク特定部５８は、そのスナップＩＤと対応付けられている論理リンク情報も取得する。また、トポロジ図作成部６０は、ステップＳｄ６において、マルウェア影響範囲特定処理の結果、感染被疑端末７として特定された各端末７のうち、入力された始期と終期の間にログイン状態にあった端末７のみを論理トポロジ図に描画する。この結果、ユーザＵは、侵入時点Ｔから現在までのうちの特定の期間（例えば、侵入時点Ｔから検知時点までの期間）について、マルウェアの影響範囲を特定することができる。
【０１２２】
２−３．変形例３
上述の図２２に示される画面の表示領域Ａ２〜Ａ４には、上記の実施形態では、１次感染源の端末７の情報が表示されているが、これらの領域は、検索対象の端末７を指定するための入力フィールドとして使用されてもよい。例えば、ＮＷ可視化装置５の表示部６１は、マルウェア影響範囲特定処理の結果、特定された感染被疑端末７のうち、当該入力フィールドによって指定された端末７を示すノードのみを表示するようにしてもよい。または、当該ノードを強調表示するようにしてもよい。
【０１２３】
２−４．変形例４
上記の実施形態ではマルウェア影響範囲特定処理の処理結果を図示しているが、図示せずに文字情報として出力するようにしてもよい。具体的には、ＮＷ可視化装置５の表示部６１は、マルウェア影響範囲特定処理の結果、特定された感染被疑端末７のユーザＩＤ等の情報と、マルウェア影響範囲可視化処理のステップＳｄ２の結果、取得された論理リンク情報とを文字情報として表示してもよい。この際、論理リンク情報のうち、ネットワークＩＤのみ、またはネットワークＩＤ以外の情報のみを表示するようにしてもよい。または、マルウェア影響範囲可視化処理のステップＳｄ１の結果、取得された物理リンク情報を文字情報として表示してもよい。
【０１２４】
２−５．変形例５
上記の実施形態に係る通信ネットワーク１及びＯＦＣ３は、OpenFlow仕様に準拠するものとなっているが、ＳＤＮを実現するものであれば他のプロトコルに準拠するものであってもよい。
【０１２５】
２−６．変形例６
上記の実施形態に係るＮＷ可視化装置５は表示部６１を備え、トポロジ図作成部６０により作成されたトポロジ図を表示可能な構成となっているが、必ずしも表示部６１を備えなくてもよい。例えば、ＮＷ可視化装置５は、トポロジ図作成部６０により作成されたトポロジ図を示すデータを出力する出力部を備え、ユーザＵが有するコンピュータ装置に当該データを出力するようにしてもよい。
【０１２６】
また、上記の実施形態では、検知装置４により検知されたマルウェア感染に関する情報（具体的には、感染端末７のＩＰアドレス及びＭＡＣアドレスと、侵入時点Ｔを示す情報）がユーザＵによりＮＷ可視化装置５に対して入力されているが、検知装置４から直接ＮＷ可視化装置５に対して当該情報を送信するようにしてもよい。
【０１２７】
また、上記の実施形態では、ＯＦＣ３がＤＢ２に対して各種情報を記録しているが、ＯＦＣ３とは異なる他の装置によりＤＢ２に対する情報の記録が行われてもよい。
【０１２８】
２−７．変形例７
上記の実施形態においてＯＦＣ３又はＮＷ可視化装置５において実行されるプログラムは、コンピュータ装置が読み取り可能な記録媒体を介して提供されてもよい。ここで、記録媒体とは、例えば、磁気テープや磁気ディスクなどの磁気記録媒体や、光ディスクなどの光記録媒体や、光磁気記録媒体や、半導体メモリ等である。また、このプログラムは、インターネット等のネットワークを介して提供されてもよい。
【符号の説明】
【０１２９】
１…通信ネットワーク、２…ＤＢ、３…ＯＦＣ、４…検知装置、５…ＮＷ可視化装置、６…ＯＦＳ、７…端末、２１…物理リンク情報テーブル、２２…論理リンク情報テーブル、２３…端末接続状態テーブル、２４…スナップ情報テーブル、３１…ネットワーク制御部、３２…記録部、５１…侵入時点特定部、５２…感染端末特定部、５３…スナップＩＤ取得部、５４…感染端末ＩＤ取得部、５５…仮想ＮＷ特定部、５６…感染被疑端末特定部、５７…物理リンク特定部、５８…論理リンク特定部、５９…スコア算出部、６０…トポロジ図作成部、６１…表示部、１００…マルウェア影響範囲特定システム、３２１…物理リンク記録部、３２２…論理リンク記録部、３２３…端末接続状態記録部、３２４…スナップ情報記録部
【図１】
2019037001.tif 000003
【図２】
2019037001.tif 000004
【図３】
2019037001.tif 000005
【図４】
2019037001.tif 000006
【図５】
2019037001.tif 000007
【図６】
2019037001.tif 000008
【図７】
2019037001.tif 000009
【図８】
2019037001.tif 000010
【図９】
2019037001.tif 000011
【図１０】
2019037001.tif 000012
【図１１】
2019037001.tif 000013
【図１２】
2019037001.tif 000014
【図１３】
2019037001.tif 000015
【図１４】
2019037001.tif 000016
【図１５】
2019037001.tif 000017
【図１６】
2019037001.tif 000018
【図１７】
2019037001.tif 000019
【図１８】
2019037001.tif 000020
【図１９】
2019037001.tif 000021
【図２０】
2019037001.tif 000022
【図２１】
2019037001.tif 000023
【図２２】
2019037001.tif 000024
【図２３】
2019037001.tif 000025