1.実施形態
1−1.マルウェア影響範囲特定システム100の構成
図1は、本発明の一実施形態に係るマルウェア影響範囲特定システム100の構成を示す図である。このマルウェア影響範囲特定システム100は、同図に示されるように、通信ネットワーク1と、データベース(以下、「DB」という。)2と、OpenFlowコントローラ(以下、「OFC」という。)3と、検知装置4と、ネットワーク可視化装置(以下、「NW可視化装置」という。)5とにより構成される。
通信ネットワーク1は、OpenFlow仕様に準拠したネットワークであり、複数のOpenFlowスイッチ(以下、「OFS」という。)6と、複数の端末7とにより構成される。DB2は、通信ネットワーク1のネットワーク構成情報を記憶する。OFC3は、通信ネットワーク1と接続され、OFS6の経路制御情報を更新することによって通信ネットワーク1の構成を変更する。また、OFC3は、DB2と接続され、通信ネットワーク1のネットワーク構成情報を時系列でDB2に記録する。検知装置4は、通信ネットワーク1と接続され、通信ネットワーク1上で収集されるログを定期的に解析して、マルウェアの侵入を検知する。また、検知装置4はユーザUにより操作され、マルウェアの侵入を検知するとユーザUに対してアラートを出す。ここで、ユーザUは、例えば、通信ネットワーク1のセキュリティ担当者やネットワーク管理者である。NW可視化装置5は、DB2と接続され、DB2に記憶されるネットワーク構成情報を取得して、当該情報を画面上に表示する。このNW可視化装置5はユーザUにより操作される。
なお、各要素同士の接続方法は、有線であっても無線であってもよい。
1−2.マルウェア影響範囲特定方式の概要
図2は、本実施形態に係るマルウェア影響範囲特定方法の概要を示す図である。本方式は主に、ログ解析と、情報取得と、保存と、視覚化の4つの要素からなる。本方式において検知装置4は、通信ネットワーク1上で収集されるログを定期的に解析し、マルウェアの侵入を検知すると、そのマルウェアにより侵入された端末を示す端末情報と、その侵入の時点を示す時間情報とを出力する。OFC3は、通信ネットワーク1のネットワーク構成情報を定期的に取得して、時間情報と対応付けてDB2に記録する。具体的には、物理リンク情報と論理リンク情報については定期的に取得し、端末接続状態情報についてはログイン時又はログアウト時に取得して、それぞれ時間情報と対応付けてDB2に記録する。NW可視化装置5は、検知装置4から出力された端末情報と時間情報とをユーザUの操作を介して取得すると、侵入時点を含む検知時点までのネットワーク構成情報をDB2から取得して、当該情報により示されるネットワーク構成図を画面上に表示する。
以上が、本実施形態に係るマルウェア影響範囲特定方法の概要である。以下では、マルウェア影響範囲特定システム100を構成する各要素について詳述する。
1−3.通信ネットワーク1の構成
図3は、通信ネットワーク1の構成の一例を示す図である。通信ネットワーク1は、同図に示されるように、6つのOFS6A〜6F(以下、特に区別する必要がない場合には「OFS6」と総称する。)と、4つの端末7A〜7D(以下、特に区別する必要がない場合には「端末7」と総称する。)とにより構成される。OFS6Aは、端末7A及び7Bと、OFS6Bとに物理リンクを介して接続されている。OFS6B〜6Eは、それぞれ互いに物理リンクを介して接続されている。OFS6Fは、OFS6Dと、端末7C及び7Dとに物理リンクを介して接続されている。ここで、物理リンクとは、例えば通信ケーブルを介した物理的な接続をいう。各OFS6は、それぞれ通信ケーブルが接続される複数のポート(接続口)を備え、いずれかのポートを介して他の機器と接続される。なお、OFS6A及び6Fはエッジスイッチであり、OFS6B〜6Eはコアスイッチである。
OFS6は、OpenFlow仕様に準拠した伝送装置(又は中継装置、転送装置)であって、ハードウェアで行われるパケット伝送処理を行う伝送装置である。ここで、OpenFlowとは、通信ネットワークを構成するネットワーク機器を1つの制御装置で集中管理し、複雑な転送制御を行ったり柔軟にネットワーク構成を変更したりすることができる技術である。OpenFlowは、SDNを実現するプロトコルの1つである。なおここで、SDNとは、コンピュータネットワークを構成する通信機器を単一のソフトウェアによって集中的に制御し、ネットワークの構造や構成、設定などを柔軟かつ動的に変更することを可能とする技術の総称、または、そのような技術によって構築されたネットワークのことである。
OFS6は、複数の端末7の間で経路制御情報(又は中継制御情報、転送制御情報)に基づいて通信パケットを中継する。具体的には、記憶するフローテーブルを参照して、通信パケットの転送制御を行う。ここで、フローテーブルとは、OFC3により計算された経路情報を保存するテーブルであって、OFS6がパケット転送を処理する際に参照されるテーブルである。このフローテーブルは1以上のフローエントリにより構成され、各フローエントリは、データ転送の条件(Match)と、条件合致時の動作指示(Instructions)とにより構成される。条件部分には、例えば、送信元又は宛先IP(Internet Protocol)アドレスや、送信元又は宛先MAC(Media Access Control)アドレスや、VLAN(Virtual Local Area Network)IDや、入力ポート番号等の、パケットのヘッダ情報が指定される。または、1以上のヘッダフィールド(Type of Serviceフィールドや、Class of Serviceフィールドも含む。)に設定される任意のビット値や複数の異なるビットが指定される。一方、動作指示部分には、例えば、データの転送(Output命令)、データの破棄(Drop命令)、データのヘッダ情報の書き換え(Set-Field命令)が指定される。OFS6は、パケットを受信すると、フローテーブル内に当該パケットのヘッダ情報と合致する条件が存在するか否かを調べ、存在する場合には当該条件に対応する動作指示に従って処理を実行する。なお、フローエントリには、優先度(Priority)や、カウンタ(Counters)や、有効期間(Timeouts)や、クッキー(Cookie)が指定されてもよい。
OFS6は、図示せぬOpenFlowチャネル(セキュアチャネル)を介して、OpenFlowプロトコルに従ってOFC3との間で通信を行う。OFS6は、OFC3からフローエントリ変更メッセージ(Flow Modifyメッセージ)を受信すると、当該メッセージに従って、フローエントリの追加、更新、削除等の処理を行う。また、OFS6は、パケット受信時に、当該パケットのヘッダ情報と合致する条件がフローテーブルに存在しない場合には、OFC3に対してPacketInメッセージを送信する。このPacketInメッセージは、受信したパケットに合致するフローエントリが存在しない場合に、OFC3にパケットの処理方法を問い合わせるために送信されるメッセージである。このメッセージに対する応答としてOFC3からフローエントリ変更メッセージが送られてくると、OFS6は当該メッセージに従ってフローエントリの追加処理を行う。
次に、端末7は、OFS6を介して互いに通信を行うコンピュータ装置である。端末7は、例えば、CPU(Central Processing Unit)等の演算装置と、HDD(Hard Disk Drive)等の記憶装置と、キーボードやマウス等の入力装置と、液晶ディスプレイ等の表示装置と、ネットワークカード等の通信インタフェースを備える。
1−4.DB2の構成
図4は、DB2を構成する各種テーブルを示す図である。DB2は、同図に示されるように、物理リンク情報テーブル21と、論理リンク情報テーブル22と、端末接続状態テーブル23と、スナップ情報テーブル24とを備える。物理リンク情報テーブル21は、後述するマルウェア影響範囲可視化処理において物理ネットワークのトポロジ図を描画するために利用される。その他のテーブルは同処理において仮想ネットワークのトポロジ図を描画するために利用される。
図5は、物理リンク情報テーブル21の一例を示す図である。この物理リンク情報テーブル21は、通信ネットワーク1を構成するOFS6間の物理リンクを示す物理リンク情報を保存するテーブルである。物理リンク情報テーブル21を構成する各レコードは、同図に示されるように、送信元OFS6のDPID(src_DPID)と、送信元OFS6の送信ポート番号(src_PortNo)と、宛先OFS6のDPID(dst_DPID)と、宛先OFS6の受信ポート番号(dst_PortNo)と、スナップID(SnapID)の各フィールドにより構成される。ここで、DPID(Datapath ID)は、OFS6を一意に識別するための識別情報である。スナップIDについては後述する。
図6は、論理リンク情報テーブル22の一例を示す図である。この論理リンク情報テーブル22は、通信ネットワーク1を構成するOFS6間の論理リンクを示す論理リンク情報をスナップIDと対応付けて保存するテーブルである。論理リンク情報テーブル22を構成する各レコードは、同図に示されるように、送信元OFS6のDPID(src_DPID)と、送信元OFS6の送信ポート番号(src_PortNo)と、ネットワークIDと、ユーザIDと、対端末フラグと、スナップIDの各フィールドにより構成される。ここで、ネットワークIDは、本実施形態においてはネットワークを一意に識別するための識別情報である。ネットワークIDは、特に断りがない限りは、データ転送の条件(Match)にあるVLAN−IDを用いる。なお、ネットワークIDは、VLAN−ID数の上限である4094に制限されるため、これ以上のネットワーク数が必要である場合は、別のデータ転送の条件部分を組み合わせて利用する。ユーザIDは、端末7を一意に識別するための識別情報である。対端末フラグは、OFS6が端末7と直接接続されているか否かを示すフラグ(boolean型の変数)である。直接接続されている場合には「true」となり、直接接続されていない場合には「false」となる。スナップIDについては後述する。
図7は、端末接続状態テーブル23の一例を示す図である。この端末接続状態テーブル23は、通信ネットワーク1を構成する各端末7の接続状態を示す接続状態情報をタイムスタンプ(timestamp)と対応付けて保存するテーブルである。端末接続状態テーブル23を構成する各レコードは、同図に示されるように、ユーザIDと、ログイン認証済みのアカウント名と、接続状態(loginStatus)と、送信元IPアドレスと、送信元MACアドレスと、ネットワークIDと、スナップIDの各フィールドにより構成される。ここで、接続状態は、端末7が接続されているか否かを示すboolean型の変数であり、例えば、接続されている場合には「true」となり、切断されている場合には「false」となる。この接続状態は、端末7がネットワークに接続している接続期間を特定するために参照される。
図8は、スナップ情報テーブル24の一例を示す図である。このスナップ情報テーブル24は、スナップIDとタイムスタンプとを対応付けて保存するテーブルである。スナップ情報テーブル24を構成する各レコードは、同図に示されるように、スナップIDと、タイムスタンプと、論理リンク取得識別子の各フィールドにより構成される。ここで、スナップIDは、各タイムスタンプを一意に識別するための識別情報である。タイムスタンプは、ネットワーク構成情報がOFC3によりDB2に記録された日時(具体的には、年月日(yyyy/mm/dd)及び時刻(hh:mm:ss))を示す文字列である。論理リンク取得識別子は、論理リンク情報が記録された日時を示すスナップIDを識別するための識別子である。
1−5.OFC3の構成
OFC3は、OpenFlow仕様に準拠した制御装置であって、複数のOFS6の振る舞いを一括して管理する制御装置である。OFC3は、通信ネットワーク1におけるデータ転送の経路計算を行って、計算した経路に沿ってデータ転送が行われるように各OFS6を制御する。
図9は、マルウェア影響範囲特定システム100の機能構成の一例を示す図である。OFC3は、同図に示されるように、ネットワーク制御部31と、記録部32の機能を備える。記録部32は、物理リンク記録部321と、論理リンク記録部322と、端末接続状態記録部323と、スナップ情報記録部324とを有する。これらの各機能は、例えば、CPU等の演算装置によりプログラムが実行されることにより実現される。
ネットワーク制御部31は、通信ネットワーク1の経路計算を行って、各OFS6に記憶される経路制御情報を更新して通信ネットワーク1の構成を変更する。具体的には、各OFS6に対してフローエントリ変更メッセージを送信し、OFS6に記憶されるフローエントリを更新することで、通信ネットワーク1の論理リンクを変更する。各OFS6に記録されるフローエントリは図示せぬフロー管理テーブルにおいて集中的に管理され、各OFS6においてフローエントリの更新が行われると、これに伴ってフロー管理テーブルの情報が更新される。
物理リンク記録部321は、通信ネットワーク1全体の物理リンク情報を物理リンク情報テーブル21に記録する。言い換えると、通信ネットワーク1の物理トポロジを示す情報を物理リンク情報テーブル21に記録する。なお、本実施形態では当該記録は定期的に実行されるものとしているが、物理トポロジの変更の検出を契機として実行されてもよい。または、通信ネットワーク1の経路計算や、端末7のログイン又はログアウトを契機として逐次実行されてもよい。
図10は、通信ネットワーク1の物理トポロジを検出する方法の一例を説明する図である。同図に示される例では、LLDP(Link Layer Discovery Protocol)が利用されている。また、同例では、OFS6Aのポート11に接続する物理リンクを調べる場合を想定している。
まず、OFC3は、OFS6AのDPIDとポート番号「11」とを埋め込んだLLDPパケットを作成する(ステップSa1)。次に、OFC3は、「ポート11から出力する」という動作指示を含むPacketOutメッセージとして、上記のLLDPパケットをOFS6Aに送信する(ステップSa2)。LLDPパケットを受信したOFS6Aは、動作指示に従い、ポート11からLLDPパケットを出力する(ステップSa3)。ポート11と接続されるOFS6Bは、OFS6Aから出力されたLLDPパケットを受信すると、自身のフローテーブルを参照して当該パケットの処理方法を調べる。しかしこの時、OFS6Bでは、当該パケットに合致するフローエントリはあえて設定されていないため、OFS6Bは、受信したLLDPパケットをPacketInメッセージとしてOFC3に出力する(ステップSa4)。LLDPパケットを受信したOFC3は、当該パケットを解析することにより、OFS6AとOFS6Bの間の物理リンクの存在を検出する(ステップSa5)。もし仮に、いずれのOFS6からもn回連続でLLDPパケットが送られてこない場合には、OFC3は、OFS6Aのポート11に接続する物理リンクは断線していると判断する。
以上説明した手続きを、接続されるOFS6に対して繰り返し行うことにより、OFC3は、通信ネットワーク1の物理トポロジを把握する。このようにLLDPパケットの送出は、物理リンクの変化を捉える契機となる。
次に、論理リンク記録部322は、通信ネットワーク1全体の論理リンク情報をスナップIDと対応付けて論理リンク情報テーブル22に記録する。言い換えると、通信ネットワーク1の論理トポロジを示す情報をスナップIDと対応付けて論理リンク情報テーブル22に記録する。論理リンク記録部322は、上述したフロー管理テーブルから論理リンク情報を読み出して論理リンク情報テーブル22に書き込む。ここで、スナップIDは、当該記録の時点を示すタイムスタンプを識別する識別情報として生成される。なお、本実施形態では論理リンク情報テーブル22に対する情報の記録は定期的に実行されるものとしているが、論理トポロジの変更を契機として実行されてもよい。
図11は、論理リンク情報テーブル22に記録される論理リンク情報の一例を説明する図である。図11(a)は、論理リンク情報(言い換えると、フローエントリ)のデータ構成の一例を示す図であり、図11(b)は、論理リンク情報により表される論理トポロジの一例を示す図である。図11に示される例は、通信ネットワーク1において、端末7Aから端末7Cに対して通信を行う際に設定される論理リンクの一例を示している。
図12は、論理リンク情報テーブル22に記録される論理リンク情報の他の例を説明する図である。図12(a)は、論理リンク情報(言い換えると、フローエントリ)のデータ構成の他の例を示す図であり、図12(b)は、論理リンク情報により表される論理トポロジの他の例を示す図である。図12に示される例は、通信ネットワーク1において、端末7Bから端末7Dに対して通信を行う際に設定される論理リンクの一例を示している。
次に、端末接続状態記録部323は、通信ネットワーク1を構成する各端末7の接続状態を示す接続状態情報をタイムスタンプと対応付けて端末接続状態テーブル23に記録する。当該記録は、端末7のログイン時及びログアウト時に実行される。
図13は、ログイン時に接続状態情報を記録する際の手順の一例を説明する図である。同図に示される手順によれば、OFS6Aは、自身のフローテーブルに合致しないパケットを端末7Aから受信すると(ステップSb1)、PacketInメッセージを用いて受信パケットをOFC3に送信する(ステップSb2)。当該パケットを受信したOFC3は、当該パケットのヘッダ情報を参照して送信元IPアドレスと送信元MACアドレスとを特定する。また、OFC3は、特定したアドレス情報に基づいてユーザIDとアカウント名とを特定する。また、OFC3は、接続状態として変数「true」を特定するとともに、受信パケットを転送するパスに割り当てるネットワークIDを特定する。そして、以上特定した情報(すなわち、接続状態情報)を、当該記録の時点を示すタイムスタンプと対応付けて端末接続状態テーブル23に記録する(ステップSb3)。
一方、ログアウト時とは、具体的には、端末7から送信されたログアウトを要求するパケットをOFS6を介してOFC3が受信した時や、端末7がセッションタイムアウトによりログアウトとしたOFC3が判断した時である。これらの際にはOFC3は、接続状態として変数「false」を指定する接続状態情報を、当該記録の時点を示すタイムスタンプと対応付けて端末接続状態テーブル23に記録する。
なお、ログイン及びログアウトの判断方法は上記の例に限られない。例えば、ログイン及びログアウトは、外部の認証サーバ(例えば、LDAP(Lightweight Directory Access Protocol)サーバやアクティブディレクトリ)とOFC3とが連携して判断してもよい。または、外部サーブレット機能とOFC3とが連携して判断してもよい。
次に、スナップ情報記録部324は、スナップIDとタイムスタンプとを対応付けてスナップ情報テーブル24に記録する。ここで、スナップIDと対応付けられるタイムスタンプは、論理リンク記録部322により論理リンク情報テーブル22に対して論理リンク情報が記録された時点か、または、端末接続状態記録部323により端末接続状態テーブル23に対して接続状態情報が記録された時点を示すタイムスタンプである。スナップIDに紐付けられたネットワーク構成情報(物理リンク情報、論理リンク情報または接続状態情報)をスナップショットという。
1−6.検知装置4の構成
検知装置4は、例えば、SIEM(Security Information and Event Management、セキュリティ情報及びイベント管理)を備えたコンピュータ装置である。検知装置4は、通信ネットワーク1上に存在するサーバや、ネットワーク機器や、セキュリティ機器等からリアルタイムでログ情報やイベントデータを収集して、これらを相関分析することでマルウェアの侵入を検知する。そして、マルウェアの侵入を検知すると、当該マルウェアの侵入の時点を特定し、当該侵入時点を示す時間情報と、当該マルウェアに侵入された端末7の識別情報(具体的には、IPアドレスとMACアドレス)とをユーザUに通知する。
ここで、上記のセキュリティ機器には、例えば、ファイアウォールや、IDS(Intrusion Detection System、侵入検知システム)や、IPS(Intrusion Prevention System、侵入防止システム)や、SPF(Sender Policy Framework)や、スパムフィルタや、ウェブフィルタリングが含まれる。SPF(Sender Policy Framework)とスパムフィルタはメール型マルウェアを検知し、ウェブフィルタリングはウェブ型マルウェアを検知する。IDSとIPSはすべての通信についてマルウェアを検知する。また、本実施形態においてマルウェアとは、有害なソフトウェアのことである。
なお、検知装置4は、サンドボックス型のファイアウォールであってもよい。具体的には、自身を通過したファイルをクラウド上の仮想空間(サンドボックス)で実行し、その動作を監視することでマルウェアを検知し、随時シグネチャを更新するファイアウォールであってもよい。
1−7.NW可視化装置5の構成
NW可視化装置5は、図9に示されるように、侵入時点特定部51と、感染端末特定部52と、スナップID取得部53と、感染端末ID取得部54と、仮想ネットワーク特定部(以下、「仮想NW特定部」という。)55と、感染被疑端末特定部56と、物理リンク特定部57と、論理リンク特定部58と、スコア算出部59と、トポロジ図作成部60と、表示部61の機能を備える。これらの各機能は、例えば、CPU等の演算装置によりプログラムが実行されることにより実現される。
侵入時点特定部51は、マルウェアに侵入された第1端末7について、その侵入時点Tを示す時間情報を取得する。この侵入時点Tを示す時間情報は、例えば、ユーザUによりNW可視化装置5に対して入力される。この侵入時点Tは、例えば、年月日(yyyy/mm/dd)と時刻(hh:mm:ss)の組み合わせにより表される。
感染端末特定部52は、マルウェアに侵入された第1端末7を示す端末情報を取得する。この端末情報は第1端末7を識別する識別情報であり、具体的にはIPアドレスやMACアドレスである。この端末情報は、例えば、ユーザUによりNW可視化装置5に対して入力される。
スナップID取得部53は、侵入時点特定部51により特定された侵入時点Tに対応するスナップIDを取得する。具体的には、侵入時点特定部51により取得された時間情報により示される侵入時点Tに基づいて特定されるタイムスタンプと対応付けられているスナップIDをスナップ情報テーブル24から取得する。ここで取得されるスナップIDは、具体的には、侵入時点Tよりも過去のタイムスタンプと対応付けられているスナップIDであって、その論理リンク取得識別子が「1」である直近のスナップIDである。
感染端末ID取得部54は、感染端末特定部52により特定された第1端末7のユーザIDを取得する。具体的には、感染端末特定部52により取得された端末情報と対応付けられているユーザIDを端末接続状態テーブル23から取得する。
仮想NW特定部55は、感染端末特定部52により特定された第1端末7が所属していた第1仮想ネットワーク(又は、論理ネットワーク)を特定する。具体的には、感染端末特定部52により取得された端末情報や、感染端末ID取得部54により取得されたユーザIDと対応付けられている第1仮想ネットワーク情報を端末接続状態テーブル23から取得する。ここで仮想ネットワーク情報とは、例えばネットワークIDや、ネットワークセグメントIDである。
感染被疑端末特定部56は、仮想NW特定部55により特定された第1仮想ネットワークを介して副次的に感染した可能性のある第2端末7を特定する。具体的には、仮想NW特定部55により取得された第1仮想ネットワーク情報と対応付けられている、感染端末特定部52により取得された端末情報に示される第1端末7とは異なる第2端末7を示す端末情報を端末接続状態テーブル23から取得する。ここで取得される端末情報とは例えばユーザID等の識別情報である。
感染被疑端末特定部56は、第2端末7を特定する際、仮想NW特定部55により特定された第1仮想ネットワークに対するログイン期間が、感染端末特定部52により特定された第1端末7と重複する第2端末7を特定する。具体的には、仮想NW特定部55により取得された第1仮想ネットワーク情報により示される第1仮想ネットワークに対して接続状態にあった期間が第1端末7と重複する第2端末7を特定する。
また、感染被疑端末特定部56は、第2端末7を特定する際、上記の重複するログイン期間の少なくとも一部が侵入時点T以降である第2端末7を特定する。言い換えると、上記の重複する、第1仮想ネットワークに対して接続状態にあった期間の少なくとも一部が侵入時点T以降である第2端末7を特定する。
また、感染被疑端末特定部56は、第2端末7の特定に加えて、仮想NW特定部55により第1端末7が所属していた第2仮想ネットワークが特定された場合に、この第2仮想ネットワークを介して副次的に感染した可能性のある第3端末7を特定する。具体的には、仮想NW特定部55により第1端末7の端末情報と対応付けられている第2仮想ネットワーク情報が端末接続状態テーブル23から取得されると、この第2仮想ネットワーク情報と対応付けられている、第1及び第2端末7とは異なる第3端末7を示す端末情報を端末接続状態テーブル23から取得する。
また、感染被疑端末特定部56は、第2端末7を特定後に、仮想NW特定部55により第2端末7が所属していた第3仮想ネットワークが特定されると、この第3仮想ネットワークを介して副次的に感染した可能性のある第4端末7を特定する。具体的には、仮想NW特定部55により第2端末7を示す端末情報と対応付けられる第3仮想ネットワーク情報が端末接続状態テーブル23から取得されると、この第3仮想ネットワーク情報と対応付けられている、第1乃至第3端末7とは異なる第4端末7を示す端末情報を端末接続状態テーブル23から取得する。
物理リンク特定部57は、通信ネットワーク1の物理リンク情報を物理リンク情報テーブル21から取得する。具体的には、スナップID取得部53により取得されたスナップID以降のスナップIDと対応付けられている物理リンク情報を取得する。
論理リンク特定部58は、通信ネットワーク1の論理リンク情報を論理リンク情報テーブル22から取得する。具体的には、スナップID取得部53により取得されたスナップID以降のスナップIDと対応付けられている論理リンク情報を取得する。
スコア算出部59は、感染被疑端末特定部56により特定された各端末7について、マルウェア感染の確率を示すスコアPを算出する。
トポロジ図作成部60は、通信ネットワーク1のトポロジを示す図を描画する。ここで、トポロジとは、通信ネットワーク1の物理的及び/又は論理的な接続形態である。トポロジ図作成部60は、具体的には、物理リンク特定部57により取得された物理リンク情報を参照して、OFS6をノードで示し、OFS6間の物理リンクをエッジとする物理トポロジ図を描画する。また、トポロジ図作成部60は、論理リンク特定部58により取得された論理リンク情報を参照して、OFS6をノードで示し、OFS6間の論理リンクをエッジとする論理トポロジ図を描画する。この際、トポロジ図作成部60は、物理トポロジ図に重ねて論理トポロジ図を描画する。また、トポロジ図作成部60は、論理トポロジ図において、感染被疑端末特定部56により特定された各端末7をノードとして描画する。なお、この際描画される各端末7を示すノードの表示態様は、スコア算出部59により算出されたスコアPに応じて決定される。
表示部61は、トポロジ図作成部60により作成されたトポロジ図を、例えば液晶ディスプレイ等の表示装置に表示する。この表示部61は、トポロジ図作成部60により作成されたトポロジ図を示すデータを出力する出力部の一例である。
1−8.マルウェア影響範囲特定システム100の動作
マルウェア影響範囲特定システム100の動作について説明する。具体的には、マルウェアの侵入を検知時に当該マルウェアの影響範囲を特定する処理と、特定したマルウェアの影響範囲を可視化する処理とについて説明する。
1−8−1.マルウェア影響範囲特定処理
図14及び15は、マルウェア影響範囲特定処理を示すフローチャートである。本処理は、例えば、検知装置4からマルウェアの検知のアラートを受けたユーザUが、NW可視化装置5に対して当該マルウェアの侵入を受けた端末7の識別情報と侵入時点Tを示す時間情報とを入力することにより実行される。
本処理のステップSc1においてNW可視化装置5の感染端末特定部52は、マルウェアに侵入された端末7(以下、本処理の説明において「感染端末7」という。)の端末情報(具体的には、IPアドレスとMACアドレス)を取得し、侵入時点特定部51は、その侵入時点Tを示す時間情報を取得する。
次に、スナップID取得部53は、侵入時点Tよりも過去のタイムスタンプと対応付けられているスナップIDであって、その論理リンク取得識別子が「1」である直近のスナップIDをスナップ情報テーブル24から取得する(ステップSc2)。ここで、論理リンク取得識別子が「1」であるスナップIDを取得しているのは、スナップ情報テーブル24に記録されるスナップIDのうち、論理リンク情報が記録された時点に対応するスナップIDを取得するためである。例えば、スナップID取得部53は、侵入時点Tが「2015/03/01 12:30:00」である場合には、図8に示されるスナップ情報テーブル24においては、スナップID「1」を取得する。
次に、感染端末ID取得部54は、感染端末7のユーザIDを端末接続状態テーブル23から取得する(ステップSc3)。例えば、感染端末ID取得部54は、感染端末7のIPアドレスが「ip2」であり、MACアドレスが「mac2」である場合には、図7に示される端末接続状態テーブル23においては、ユーザID「2」を取得する。そして、感染端末ID取得部54は、取得したユーザIDを、以降のループL1の処理対象として、例えばRAM(Random Access Memory)に記録する。
次に、ループL1の処理が実行される。このループL1においては、RAMに記録されている各ユーザIDについて、当該ユーザIDにより識別される端末7(以下、本処理の説明において「感染源端末7」という。)を介して副次的に感染した可能性のある他の端末7(以下、本処理の説明において「感染被疑端末7」という。)の情報を取得する。
まず、仮想NW特定部55は、感染源端末7が所属していたネットワークを特定する(ステップSc4)。具体的には、ループL1の処理対象のユーザIDと対応付けられているネットワークIDを端末接続状態テーブル23から取得する。例えば、仮想NW特定部55は、ループL1の処理対象のユーザIDが「2」である場合には、図7に示される端末接続状態テーブル23においては、ネットワークID「vlan2」及び「vlan8」を取得する。
次に、ループL2の処理が実行される。このループL2においては、ステップSc4において特定した各ネットワークIDについて、感染被疑端末7の情報を取得する。言い換えると、感染源端末7が所属していた各ネットワークを感染経路とする感染被疑端末7の情報を取得する。
まず、感染被疑端末特定部56は、感染経路となるネットワークに感染源端末7がログインしていた期間(すなわち、ログイン期間)を特定する(ステップSc5)。具体的には、ループL2の処理対象のネットワークIDにより識別されるネットワークに、ループL1の処理対象のユーザIDにより識別される端末7がログインしていた期間を端末接続状態テーブル23を参照して特定する。例えば、感染被疑端末特定部56は、ループL2の処理対象のネットワークIDが「vlan2」であり、ループL1の処理対象のユーザIDが「2」である場合には、図7に示される端末接続状態テーブル23においては、ログイン期間としてスナップID「3」〜「8」を取得する。
次に、感染被疑端末特定部56は、感染経路のネットワークに所属していた、感染被疑端末7の候補となる端末(以下、本処理の説明において「感染被疑候補端末7」という。)を特定する(ステップSc6)。具体的には、ループL2の処理対象のネットワークIDと対応付けられているユーザIDを端末接続状態テーブル23から取得する。例えば、感染被疑端末特定部56は、ループL2の処理対象のネットワークIDが「vlan2」である場合には、図7に示される端末接続状態テーブル23においては、ユーザID「4」を取得する。
次に、ループL3の処理が実行される。このループL3においては、ステップSc6において取得した各ユーザIDについて、感染被疑端末7としてその情報を取得すべきか否かについて判断を行う。言い換えると、感染被疑候補端末7の各々について、感染被疑端末7であるか否かの判断を行う。
まず、感染被疑端末特定部56は、感染被疑候補端末7が、感染経路のネットワークにログインしていた期間(すなわち、ログイン期間)を特定する(ステップSc7)。具体的には、ループL3の処理対象のユーザIDにより識別される端末7が、ループL2の処理対象のネットワークIDにより識別されるネットワークにログインしていた期間を特定する。例えば、感染被疑端末特定部56は、ループL3の処理対象のユーザIDが「4」であり、ループL2の処理対象のネットワークIDが「vlan2」である場合には、図7に示される端末接続状態テーブル23においては、ログイン期間としてスナップID「5」〜「11」を取得する。
次に、感染被疑端末特定部56は、感染源端末7のログイン期間と、感染被疑候補端末7のログイン期間とが重複するか否かについて判断する(ステップSc8)。具体的には、ステップSc5において特定したログイン期間と、ステップSc7において特定したログイン期間とが重複するか否かについて判断する。例えば、ステップSc5においてログイン期間としてスナップID「3」〜「8」が取得され、ステップSc7においてログイン期間としてスナップID「5」〜「11」が取得されていた場合には、スナップID「5」〜「8」において両者は重複するため、感染被疑端末特定部56はログイン期間が重複すると判断する。この判断の結果が肯定的であった場合には(ステップSc8;YES)、感染被疑端末特定部56はステップSc9を実行する。
ステップSc9において感染被疑端末特定部56は、感染源端末7と感染被疑候補端末7との間で重複するログイン期間の少なくとも一部が、感染源端末7がその感染を受けた可能性のある期間の始期以降であるか否かについて判断する(ステップSc9)。具体的には、ステップSc8において重複するログイン期間の少なくとも一部が、ループL1の処理対象のユーザIDと対応付けられてRAMに記録されている重複ログイン期間の始期以降であるか否かについて判断する。ただし、本ステップにおいて、ループL1の処理対象のユーザIDが感染端末7のユーザIDである場合には、ステップSc8において重複するログイン期間の少なくとも一部が、侵入時点T以降であるか否かについて判断する。例えば、感染被疑端末特定部56は、ステップSc8において重複するログイン期間としてスナップID「5」〜「8」が特定され、ステップSc2において特定されたスナップIDが「2」である場合には、スナップID「5」〜「8」はスナップID「2」よりも後の時間を示す識別子であるため、重複するログイン期間は侵入時点T以降であると判断する。
この判断の結果が肯定的であった場合には(ステップSc9;YES)、感染被疑端末特定部56は、感染被疑候補端末7を感染被疑端末7であると判断し、感染被疑候補端末7の情報を取得する(ステップSc10)。具体的には、ステップSc6において特定したユーザIDと対応付けられているアカウント名と、IPアドレスと、MACアドレスとを端末接続状態テーブル23から取得する。
また、感染被疑端末特定部56は、感染被疑候補端末7のユーザID(すなわち、ステップSc6において特定したユーザID)を、ループL1の処理対象としてRAMに記録する(ステップSc11)。この際、感染被疑端末特定部56は、感染被疑候補端末7のユーザIDの先頭に、感染源端末7のユーザID(すなわち、ループL1の処理対象となっているユーザID)を付加した上でRAMに記録する。例えば、感染被疑端末特定部56は、ステップSc6において特定したユーザIDが「4」であり、ループL1の処理対象となっているユーザIDが「2」である場合には、「2−4」というユーザIDをRAMに記録する。これは、後で説明するステップSc6の処理において、排除すべき先祖ノードのユーザIDを特定するためである。
また、感染被疑端末特定部56は、ステップSc9において特定される重複するログイン期間を、感染被疑候補端末7のユーザID(すなわち、ステップSc6において特定したユーザID)に対応付けて、例えばRAMに記録する(ステップSc12)。なおこの際も感染被疑端末特定部56は、感染被疑候補端末7のユーザIDの先頭に、感染源端末7のユーザID(すなわち、ループL1の処理対象となっているユーザID)を付加した上でRAMに記録する。
ステップSc12の実行後、または、ステップSc8若しくはSc9の判断結果が否定的であった場合であって(ステップSc8又はSc9;NO)、ループL3の処理対象のユーザIDが存在する場合には、当該ユーザIDについてループL3が実行される。もしそのようなユーザIDが存在しない場合であって、ループL2の処理対象のネットワークIDが存在する場合には、当該ネットワークIDについてループL2が実行される。もしそのようなネットワークIDが存在しない場合であって、ループL1の処理対象のユーザIDが存在する場合には、当該ユーザIDについてループL1が実行される。もしそのようなユーザIDが存在しない場合には、本処理は終了する。
ここで仮に、ループL3とループL2について処理対象が存在せず、ループL1の処理対象としてユーザID「2−4」が存在するとする。この場合、処理はステップSc4に戻り、仮想NW特定部55は、ユーザID「2−4」により識別される感染源端末7が所属していたネットワークを特定する。具体的には、ユーザID「2−4」と対応付けられているネットワークIDを端末接続状態テーブル23から取得する。なおこの際、仮想NW特定部55は、ユーザIDが「2−4」のように数列である場合には、当該数列の末尾のユーザID(ここでは「4」)と対応付けられているネットワークIDを取得する。本ステップにおいて仮想NW特定部55は、図7に示される端末接続状態テーブル23においては、ネットワークID「vlan2」及び「vlan10」を取得する。
次に、ループL2の処理が実行される。このループL2においては、ステップSc4において特定したネットワークID「vlan2」及び「vlan10」について、感染被疑端末7の情報を取得する。言い換えると、感染源端末7が所属していた各ネットワークを感染経路とする感染被疑端末7の情報を取得する。
まず、ネットワークID「vlan2」をループL2の処理対象としたとすると、感染被疑端末特定部56は、ネットワークID「vlan2」により識別される感染経路のネットワークに感染源端末7がログインしていた期間(すなわち、ログイン期間)を特定する(ステップSc5)。具体的には、ネットワークID「vlan2」により識別されるネットワークに、ユーザID「2−4」により識別される端末7がログインしていた期間を端末接続状態テーブル23を参照して特定する。なおこの際、感染被疑端末特定部56は、ユーザIDが「2−4」のように数列である場合には、当該数列の末尾のユーザID(ここでは「4」)により識別される端末7がログインしていた期間を特定する。本ステップにおいて、感染被疑端末特定部56は、図7に示される端末接続状態テーブル23においては、ログイン期間としてスナップID「5」〜「11」を取得する。
次に、感染被疑端末特定部56は、感染経路のネットワークに所属していた感染被疑候補端末7を特定する(ステップSc6)。具体的には、ネットワークID「vlan2」と対応付けられているユーザIDを端末接続状態テーブル23から取得する。本ステップにおいて、感染被疑端末特定部56は、図7に示される端末接続状態テーブル23においては、ユーザID「2」を取得する。ただし、本ステップにおいて感染被疑端末特定部56は、処理対象のユーザIDの先祖ノードに該当するユーザIDについては排除する。ここで、先祖ノードとは、感染源端末7自身が感染するに至るその過程において当該感染を仲介してきた直系の端末7のことである。取得されたユーザID「2」は、ユーザID「2−4」の先祖ノードに該当するため、排除される。
次に、ループL3の処理が実行される。しかし、本ループの処理対象となるユーザIDは存在しないため、本ループの処理は終了する。そして、処理はステップSc5に戻り、ネットワークID「vlan10」についてループL2の処理が開始される。
ネットワークID「vlan10」をループL2の処理対象とすると、感染被疑端末特定部56は、ネットワークID「vlan10」により識別される感染経路のネットワークに感染源端末7がログインしていた期間(すなわち、ログイン期間)を特定する(ステップSc5)。具体的には、ネットワークID「vlan10」により識別されるネットワークに、ユーザID「2−4」により識別される端末7がログインしていた期間を端末接続状態テーブル23を参照して特定する。本ステップにおいて感染被疑端末特定部56は、図7に示される端末接続状態テーブル23においては、ログイン期間としてスナップID「17」〜「25」を取得する。
次に、感染被疑端末特定部56は、感染経路のネットワークに所属していた感染被疑候補端末7を特定する(ステップSc6)。具体的には、ネットワークID「vlan10」と対応付けられているユーザIDを端末接続状態テーブル23から取得する。本ステップにおいて感染被疑端末特定部56は、図7に示される端末接続状態テーブル23においては、ユーザID「16」を取得する。なお、このユーザID「16」は、ユーザID「4」の先祖ノードに該当しないため排除されない。
次に、ループL3の処理が実行される。このループL3においては、ユーザID「16」により識別される感染被疑候補端末7が感染被疑端末7であるか否かの判断を行う。
まず、感染被疑端末特定部56は、感染被疑候補端末7が、感染経路のネットワークにログインしていた期間(すなわち、ログイン期間)を特定する(ステップSc7)。具体的には、ユーザID「16」により識別される端末7が、ネットワークID「vlan10」により識別されるネットワークにログインしていた期間を特定する。本ステップにおいて感染被疑端末特定部56は、図7に示される端末接続状態テーブル23においては、ログイン期間としてスナップID「18」〜「24」を取得する。
次に、感染被疑端末特定部56は、感染源端末7のログイン期間と、感染被疑候補端末7のログイン期間とが重複するか否かについて判断する(ステップSc8)。具体的には、ステップSc5において特定したログイン期間と、ステップSc7において特定したログイン期間とが重複するか否かについて判断する。この判断において感染被疑端末特定部56は、ステップSc5において特定したスナップIDとステップSc7において特定したスナップIDとは、スナップID「18」〜「24」の間において重複するため、ログイン期間は重複すると判断する(ステップSc8;YES)。
この判断の結果が肯定的であった場合、感染被疑端末特定部56は次に、感染源端末7と感染被疑候補端末7との間で重複するログイン期間が、感染源端末7がその感染を受けた可能性のある期間の始期以降であるか否かついて判断する(ステップSc9)。具体的には、ステップSc8において重複するログイン期間が、ユーザID「2−4」と対応付けられてRAMに記録されている重複ログイン期間の始期以降であるか否かについて判断する。この判断において感染被疑端末特定部56は、ステップSc8において重複するログイン期間はスナップID「18」〜「24」であり、ユーザID「2−4」と対応付けられてRAMに記録されている重複ログイン期間の始期はスナップID「5」であり、スナップID「18」〜「24」はスナップID「5」よりも後の時間を示す識別子であるため、肯定的な判断を下す(ステップSc9;YES)。
この判断の結果が肯定的であった場合、感染被疑端末特定部56は、感染被疑候補端末7を感染被疑端末7であると判断し、感染被疑候補端末7の情報を取得する(ステップSc10)。具体的には、ユーザID「16」と対応付けられているアカウント名と、IPアドレスと、MACアドレスとを端末接続状態テーブル23から取得する。
また、感染被疑端末特定部56は、感染被疑候補端末7のユーザID(すなわち、ユーザID「16」)を、ループL1の処理対象としてRAMに記録する(ステップSc11)。この際、感染被疑端末特定部56は、感染被疑候補端末7のユーザIDの先頭に、感染源端末7のユーザID(すなわち、ユーザID「2−4」)を付加した上でRAMに記録する。本ステップにおいて感染被疑端末特定部56は、「2−4−16」というユーザIDをRAMに記録する。
また、感染被疑端末特定部56は、ステップSc9において特定した重複するログイン期間を、感染被疑候補端末7のユーザID(すなわち、ユーザID「2−4−16」)に対応付けてRAMに記録する(ステップSc12)。
ステップSc12の実行後は、ループL3とループL2の処理対象は存在しないため、ループL1が実行される。このループL1では、ユーザID「2−4−16」を含むRAMに記録されているユーザIDが処理対象となる。
以上が、マルウェア影響範囲特定処理についての説明である。
次に、上記のマルウェア影響範囲特定処理の適用例について、図16〜19を参照して説明する。
まず、図16は、上記のマルウェア影響範囲特定処理におけるステップSc1〜Sc5が実行された後の状態を示す図である。具体的には、ステップSc1〜Sc5が実行された結果、感染端末7のユーザIDが特定され、感染端末7が所属していたネットワークのネットワークIDが特定され、さらに感染端末7のログイン期間が特定された状態を示す図である。図16(a)は、この状態において特定されているマルウェアの影響範囲を示すツリー図であり、16(b)は、本適用例においてマルウェア影響範囲特定処理が適用される端末接続状態テーブル23Aの一例を示す図である。
図16(a)に示されるツリー図は、より具体的には、推定されるマルウェアの感染拡大の経緯を示す図である。同図において、端末7はノードとして表され、感染源端末7と被感染端末7の関係はリンクで表される。ツリーの下位に行くほど、感染の次数が増加する。このツリー図に関する説明は、以降に登場する図17〜図19のツリー図においても妥当する。図16(a)に示される状態では、ユーザAのみが1次感染源として特定されている。
図16(b)に示される端末接続状態テーブル23Aは、上述の図7に示される端末接続状態テーブル23を簡略化したテーブルである。この端末接続状態テーブル23Aでは、端末接続状態テーブル23に記録されるデータのうち、ユーザIDと、ネットワークIDと、スナップIDのみが記録されている。端末接続状態テーブル23Aの各行はユーザIDに対応し、各列はスナップIDに対応し、行と列が交差する位置にはネットワークIDが格納されている。例えば本テーブルは、ユーザ「A」の端末7が、スナップID「1」〜「10」により示される期間において、ネットワークID「VID1」により識別されるネットワークに所属していることを示している。
なお、本適用例の説明においては、この端末接続状態テーブル23AにおけるスナップID「1」が示す時点においてマルウェアの侵入が発生し、スナップID「10」が示す時点においてマルウェア影響範囲特定処理が実行されているものと仮定している。また、端末接続状態テーブル23AにおけるいずれのスナップIDが示す時点においても、いずれのユーザIDにより識別される端末7もログイン状態であると仮定している。以上の端末接続状態テーブル23Aについての説明は、以降に登場する図17及び18の端末接続状態テーブル23Aにおいても妥当する。
次に、図17は、上記のマルウェア影響範囲特定処理におけるループL1がユーザ「A」について実行された後の状態を示している。図17(b)に示されるように、ユーザ「A」を除く各ユーザのうち、ユーザ「B」は、スナップID「1」〜「5」に示される期間においてネットワークID「VID1」がユーザ「A」と共通している(図14のステップSc6参照)。また、ユーザ「B」はユーザ「A」にとっての先祖ノードに該当しない(図14のステップSc6参照)。また、同期間においてユーザ「A」及び「B」は、いずれもログイン状態にある(図15のステップSc8参照)。また、同期間は、スナップID「1」により示されるマルウェアの侵入時点T以降である(図15のステップSc9参照)(侵入時点Tは、図17(b)において調査期間の開始時点としても表されている。)。よって、ユーザID「B」は、図17(a)に示されるように、2次感染源として特定されている。なお、図17に示される状態では、ユーザ「B」と同様に、ユーザ「E」及び「F」も2次感染源として特定されている。
図18は、上記のマルウェア影響範囲特定処理におけるループL1がユーザ「B」(ユーザ「A」を親ノードとするユーザ「B」)について実行された後の状態を示している。図18(b)に示されるように、ユーザ「A」及び「B」を除く各ユーザのうち、ユーザ「C」は、スナップID「6」〜「10」に示される期間においてネットワークID「VID2」がユーザ「B」と共通している(図14のステップSc6参照)。また、ユーザ「C」はユーザ「B」にとっての先祖ノードに該当しない(図14のステップSc6参照)。また、同期間においてユーザ「B」及び「C」は、いずれもログイン状態にある(図15のステップSc8参照)。また、同期間は、ユーザ「B」が感染を受けた可能性のある期間の始期以降である(図15のステップSc9参照)(当該始期は、図18(b)において調査期間の開始時点として表されている。)。よって、ユーザID「C」は、図18(a)に示されるように、3次感染源として特定されている。なお、図18に示される状態では、ユーザ「C」と同様に、ユーザ「E」及び「F」も3次感染源として特定されている。
図19は、上記のマルウェア影響範囲特定処理におけるループL1が繰り返された結果、ループL1の処理対象であるユーザIDがすべて処理された場合に特定されるマルウェアの影響範囲を示すツリー図である。同図に示されるツリー図では、6次感染源まで特定されている。
1−8−2.マルウェア影響範囲可視化処理
図20は、マルウェア影響範囲可視化処理を示すフローチャートである。本処理は例えば、上記のマルウェア影響範囲特定処理の実行後に自動的に実行される。または、上記のマルウェア影響範囲特定処理の実行後に、ユーザUによる所定の指示を受けて実行される。
本処理のステップSd1においてNW可視化装置5の物理リンク特定部57は、上記のマルウェア影響範囲特定処理のステップSc2において取得されたスナップIDと対応付けられている物理リンク情報を物理リンク情報テーブル21から取得する。この際、物理リンク情報テーブル21に、当該スナップIDに示される日時以降の日時を示す他のスナップIDが存在する場合には、そのスナップIDと対応付けられている物理リンク情報も取得する。そして、取得した物理リンク情報をトポロジ図作成部60に出力する。
次に、論理リンク特定部58は、上記のマルウェア影響範囲特定処理のステップSc2において取得されたスナップIDと対応付けられている論理リンク情報を論理リンク情報テーブル22から取得する(ステップSd2)。この際、論理リンク情報テーブル22に、当該スナップIDに示される日時以降の日時を示す他のスナップIDが存在する場合には、そのスナップIDと対応付けられている論理リンク情報も取得する。例えば、論理リンク特定部58は、上記のマルウェア影響範囲特定処理のステップSc2においてスナップID「1」が取得された場合には、図6に示される論理リンク情報テーブル22においては、スナップID「1」〜「7」のいずれかと対応付けられている論理リンク情報をすべて取得する。そして、論理リンク特定部58は、取得した論理リンク情報をトポロジ図作成部60に出力する。
次に、スコア算出部59は、上記のマルウェア影響範囲特定処理の結果、感染被疑端末7として特定された各端末7について、マルウェア感染の確率を示すスコアPを算出する(ステップSd3)。このスコアPは、例えば、各端末7について、M次感染端末7を感染源とした場合のスコアQをまず算出して、各感染の次数ごとに算出されたスコアQを合計することにより算出される。スコアQは、例えば下式により表される。
Q=(X・a)(Y・b)cM
この式において「X」、「Y」、「M」はそれぞれ時間、端末数、感染の次数を示す。この式によれば、M次感染端末7とX時間、通信可能な状態にあり、M+1次感染端末7としてY回出現したときのスコアQが求められる。なお、「a」、「b」、「c」はそれぞれ、時間、端末数、次数の係数である。
図21は、スコアPの算出方法の一例を説明する図である。同図に示される例は、上記の図19に示されるツリーを構成する各端末7についてスコアPを算出する場合を示している。図21(a)は、各端末7について感染の次数ごとの出現数を示すテーブルを示し、図21(b)は、各端末7についてM次感染端末7との間で重複するログイン期間の累計を示すテーブルを示し、図21(c)は、各端末7について、M次感染端末7を感染源とした場合のスコアQと、スコアQの合計値であるスコアPと、スコアPから決定される対応優先度とを示すテーブルを示す。なお、図21に示される例では、スコアQは、係数「a」、「b」、「c」をそれぞれ「0.7」、「0.7」、「0.5」として計算されている。
スコアQの計算例について具体的に説明する。図21(b)によれば、例えば、ユーザ「B」の端末7は、「M=1」次感染端末7と「X=5」時間、通信可能な状態となっている。また、図21(a)によれば、ユーザ「B」の端末7は、「M+1=2」次感染端末7として「Y=1」回出現している。以上のことからユーザ「B」の端末7が「M=1」次感染端末7を感染源とした場合のスコアQB1は下式のように表される。
QB1=(5・0.7)(1・0.7)0.51=1.225
スコア算出部59は、本ステップにおいて各端末7について算出したスコアPをトポロジ図作成部60に出力する。
次に、トポロジ図作成部60は、ステップSd1において物理リンク特定部57により取得された物理リンク情報を参照して、OFS6を矩形のノードで示し、OFS6間の物理リンクをエッジとする物理トポロジ図を描画する(ステップSd4)。この際、トポロジ図作成部60は、物理トポロジ図が目立たないように、当該図を細線や薄い色で描画する。
次に、トポロジ図作成部60は、ステップSd2において論理リンク特定部58により取得された論理リンク情報を参照して、OFS6を矩形のノードで示し、OFS6間の論理リンクをエッジとする論理トポロジ図を描画する(ステップSd5)。この際、トポロジ図作成部60は、論理トポロジ図を物理トポロジ図に重ねて描画する。また、トポロジ図作成部60は、物理トポロジ図よりも論理トポロジ図が目立つように、論理トポロジ図を太線や濃い色で描画する。
次に、トポロジ図作成部60は、ステップSd5において描画した論理トポロジ図において、上記のマルウェア影響範囲特定処理の結果、感染被疑端末7として特定された各端末7を円形のノードとしてさらに描画するとともに、各端末7とOFS6との間の論理リンクをエッジとしてさらに描画する(ステップSd6)。このときトポロジ図作成部60は、各端末7と論理リンクにより結ばれるOFS6を、ステップSd2において論理リンク特定部58により取得された論理リンク情報を参照して特定する。また、トポロジ図作成部60は、物理トポロジ図よりも目立つように、ノードとエッジとを太線や濃い色で描画する。なおこの際、トポロジ図作成部60は、ステップSd3においてスコア算出部59により算出されたスコアPに基づいて各端末7を示すノードの表示態様(具体的には、色や形状やサイズ)を決定する。トポロジ図作成部60は、本ステップにおいて完成させたトポロジ図(物理トポロジ図と論理トポロジ図の組)を示す画像データを表示部61に出力する。
次に、表示部61は、ステップSd6においてトポロジ図作成部60により完成されたトポロジ図を含む画面を表示する(ステップSd7)。
図22は、表示部61により表示される画面の一例を示す図である。同図に示される画面は、トポロジ図が表示される表示領域A1と、表示対象のトポロジ図を物理トポロジ図と論理トポロジ図のうちから選択するためのチェックボックスCB1及びCB2と、表示対象とする論理トポロジが形成されていた期間の始期と終期とを指定するための入力フィールドF1及びF2と、1次感染源の端末7のユーザ名とIPアドレスとMACアドレスとネットワークIDがそれぞれ表示される表示領域A2〜A5と、表示対象とする感染被疑端末7の感染の次数を指定するための入力フィールドF3とにより構成される。
表示領域A1に表示されるトポロジ図において黒丸のノードは1次感染端末7を示し、網掛けのノードは感染被疑端末7を示す。このトポロジ図において、各端末7を示すノードと対応付けて、対応優先度の値を表示するようにしてもよい。チェックボックスCB1及びCB2は、これらを使用すれば、物理トポロジ図のみを表示させたり、論理トポロジ図のみを表示させたりすることができる。入力フィールドF1、F2及びF3については後で詳述する。
なお、表示領域A1に表示される論理トポロジ図が、複数の時点の論理リンク情報(言い換えると、各々異なるスナップIDと対応付けられている複数セットの論理リンク情報)を参照して描画される場合には、各時点の論理トポロジ図が合成されて、1つの論理トポロジ図が生成される。
図23は、複数の論理トポロジ図が合成される場合の一例を説明する図である。同図に示される例では、それぞれスナップID「X」、「Y」、「Z」に対応する論理リンク情報に基づいて描画される論理トポロジ図が併合されて1つの論理トポロジ図が生成されている。
以上が、マルウェア影響範囲可視化処理についての説明である。
以上説明した本実施形態に係るマルウェア影響範囲特定システム100によれば、ネットワーク構成情報が所定のタイミングで時系列に保存されるため、ネットワーク状態が頻繁に変化するSDN環境においても、マルウェア感染の影響範囲を特定することができる。また、マルウェア感染の影響範囲を提示することで、フォレンジックのためのログ取得の簡便化が図られる。また、ネットワーク内のセキュリティリスクを視覚的に把握することができ、マルウェア感染の影響範囲の妥当性を評価することができる。
2.変形例
上記の実施形態は、以下に示すように変形してもよい。また、以下の変形例は互いに組み合わせてもよい。
2−1.変形例1
上述の図22に示される画面の入力フィールドF3に感染の次数Nが入力されると、N次感染までの感染被疑端末7が上記のマルウェア影響範囲特定処理により特定されて、特定された感染被疑端末7を示すノードとこれらの端末7が所属していた論理ネットワークとが表示される。例えば、ユーザUにより感染次数「1」が指定された場合には、ステップSd7において表示される画面には、1次感染端末7を示すノードと、当該端末7が所属していた論理ネットワークとが表示される。
2−2.変形例2
上述の図22に示される画面の入力フィールドF1及びF2に表示期間の始期と終期が入力されると、上記のマルウェア影響範囲可視化処理が再実行される。この際、NW可視化装置5のスナップID取得部53は、侵入時点Tに代えて、入力された始期よりも過去のタイムスタンプと対応付けられているスナップIDであって、その論理リンク取得識別子が「1」である直近のスナップIDをスナップ情報テーブル24から取得する。そして、物理リンク特定部57は、ステップSd1において、スナップID取得部53により取得されたスナップIDと対応付けられている物理リンク情報を物理リンク情報テーブル21から取得する。この際、当該スナップIDに示される日時以降の日時であって、入力された終期以前の日時を示す他のスナップIDが存在する場合には、物理リンク特定部57は、そのスナップIDと対応付けられている物理リンク情報も取得する。次に、論理リンク特定部58は、ステップSd2において、スナップID取得部53により取得されたスナップIDと対応付けられている論理リンク情報を論理リンク情報テーブル22から取得する。この際、論理リンク情報テーブル22に当該スナップIDに示される日時以降の日時であって、入力された終期以前の日時を示す他のスナップIDが存在する場合には、論理リンク特定部58は、そのスナップIDと対応付けられている論理リンク情報も取得する。また、トポロジ図作成部60は、ステップSd6において、マルウェア影響範囲特定処理の結果、感染被疑端末7として特定された各端末7のうち、入力された始期と終期の間にログイン状態にあった端末7のみを論理トポロジ図に描画する。この結果、ユーザUは、侵入時点Tから現在までのうちの特定の期間(例えば、侵入時点Tから検知時点までの期間)について、マルウェアの影響範囲を特定することができる。
2−3.変形例3
上述の図22に示される画面の表示領域A2〜A4には、上記の実施形態では、1次感染源の端末7の情報が表示されているが、これらの領域は、検索対象の端末7を指定するための入力フィールドとして使用されてもよい。例えば、NW可視化装置5の表示部61は、マルウェア影響範囲特定処理の結果、特定された感染被疑端末7のうち、当該入力フィールドによって指定された端末7を示すノードのみを表示するようにしてもよい。または、当該ノードを強調表示するようにしてもよい。
2−4.変形例4
上記の実施形態ではマルウェア影響範囲特定処理の処理結果を図示しているが、図示せずに文字情報として出力するようにしてもよい。具体的には、NW可視化装置5の表示部61は、マルウェア影響範囲特定処理の結果、特定された感染被疑端末7のユーザID等の情報と、マルウェア影響範囲可視化処理のステップSd2の結果、取得された論理リンク情報とを文字情報として表示してもよい。この際、論理リンク情報のうち、ネットワークIDのみ、またはネットワークID以外の情報のみを表示するようにしてもよい。または、マルウェア影響範囲可視化処理のステップSd1の結果、取得された物理リンク情報を文字情報として表示してもよい。
2−5.変形例5
上記の実施形態に係る通信ネットワーク1及びOFC3は、OpenFlow仕様に準拠するものとなっているが、SDNを実現するものであれば他のプロトコルに準拠するものであってもよい。
2−6.変形例6
上記の実施形態に係るNW可視化装置5は表示部61を備え、トポロジ図作成部60により作成されたトポロジ図を表示可能な構成となっているが、必ずしも表示部61を備えなくてもよい。例えば、NW可視化装置5は、トポロジ図作成部60により作成されたトポロジ図を示すデータを出力する出力部を備え、ユーザUが有するコンピュータ装置に当該データを出力するようにしてもよい。
また、上記の実施形態では、検知装置4により検知されたマルウェア感染に関する情報(具体的には、感染端末7のIPアドレス及びMACアドレスと、侵入時点Tを示す情報)がユーザUによりNW可視化装置5に対して入力されているが、検知装置4から直接NW可視化装置5に対して当該情報を送信するようにしてもよい。
また、上記の実施形態では、OFC3がDB2に対して各種情報を記録しているが、OFC3とは異なる他の装置によりDB2に対する情報の記録が行われてもよい。
2−7.変形例7
上記の実施形態においてOFC3又はNW可視化装置5において実行されるプログラムは、コンピュータ装置が読み取り可能な記録媒体を介して提供されてもよい。ここで、記録媒体とは、例えば、磁気テープや磁気ディスクなどの磁気記録媒体や、光ディスクなどの光記録媒体や、光磁気記録媒体や、半導体メモリ等である。また、このプログラムは、インターネット等のネットワークを介して提供されてもよい。