(57)【要約】【課題】遠隔操作型マルウェアに感染した端末を踏み台とする、他の端末への攻撃を検知する。【解決手段】検知装置は、取得通信データが所定範囲外からの通信である場合、送信元及び送信先アドレスとを含む外部通信データを格納部に格納し、通信データが、所定範囲内への通信であって且つサービスの開始に該当する場合、通信データの送信元アドレスを送信先アドレスとする外部通信データを格納部において抽出し、当該外部通信データに対応付けて通信データの送信先アドレスを含むサービス開始データを格納部に格納し、通信データが所定範囲外への通信である場合、通信データの送信元アドレスを送信先アドレスとするサービス開始データが格納部に格納されており、通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致する場合には攻撃検知を通知する。【選択図】図４
2015015581.tif 000002
【特許請求の範囲】
【請求項１】
通信データを取得する取得部と、
取得された前記通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納する外部通信特定部と、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された前記通信データの送信元アドレスを送信先アドレスとする外部通信データを前記データ格納部において抽出し、当該外部通信データに対応付けて前記通信データの送信先アドレスを含むサービス開始データを前記データ格納部に格納するサービス開始抽出部と、
取得された前記通信データが、前記予め規定された範囲外への通信である場合、取得された前記通信データの送信元アドレスを送信先アドレスとするサービス開始データが前記データ格納部に格納されており、取得された前記通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する検知部と、
を有する検知装置。
【請求項２】
前記外部通信データが、取得された前記通信データの通信時刻をさらに含み、
前記サービス開始抽出部が、
取得された前記通信データの送信元アドレスを送信先アドレスとし且つ取得された前記通信データの通信時刻との通信時間差が第１の所定時間内である外部通信データを前記データ格納部において抽出する
請求項１記載の検知装置。
【請求項３】
前記サービス開始データが、取得された前記通信データの通信時刻をさらに含み、
前記第３の条件が、取得された前記通信データの通信時刻と前記サービス開始データに含まれる通信時刻との差が第２の所定時間内であるという条件をさらに含む
請求項１又は２記載の検知装置。
【請求項４】
前記第１の条件が、取得された前記通信データの送信元アドレスと送信先アドレスとの間のコネクションの継続時間が第３の所定時間以上であるという条件をさらに含む
請求項１乃至３のいずれか１つ記載の検知装置。
【請求項５】
前記サービス開始抽出部が、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当しない場合、バッファに当該通信データ及び当該通信データの通信時刻とを格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を満たす場合には、前記バッファにおいて、取得された前記通信データの送信元アドレスと送信先アドレスとの間のコネクションについての通信データであって且つ前記サービス開始までに行われ且つ予め規定された通信シーケンスのうち最も古い通信データの通信時刻を特定し、
取得された前記通信データの送信元アドレスを送信先アドレスとし且つ特定された前記通信時刻との通信時間差が第４の所定時間内である外部通信データを前記データ格納部において抽出する
請求項１記載の検知装置。
【請求項６】
前記サービス開始抽出部が、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当しない場合であって、予め規定された通信シーケンスの開始候補に該当する場合には、バッファに当該通信データ及び当該通信データの通信時刻とを格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を満たす場合には、前記バッファにおいて、取得された前記通信データの送信元アドレスと送信先アドレスとの間のコネクションについての通信データであって且つ最も古い通信データの通信時刻を特定し、
取得された前記通信データの送信元アドレスを送信先アドレスとし且つ特定された前記通信時刻との通信時間差が第５の所定時間内である外部通信データを前記データ格納部において抽出する
請求項１記載の検知装置。
【請求項７】
通信データを取得し、
取得された前記通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された前記通信データの送信元アドレスを送信先アドレスとする外部通信データを前記データ格納部において抽出し、当該外部通信データに対応付けて前記通信データの送信先アドレスを含むサービス開始データを前記データ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲外への通信である場合、取得された前記通信データの送信元アドレスを送信先アドレスとするサービス開始データが前記データ格納部に格納されており、取得された前記通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する
処理を、コンピュータに実行させるためのプログラム。
【請求項８】
通信データを取得し、
取得された前記通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された前記通信データの送信元アドレスを送信先アドレスとする外部通信データを前記データ格納部において抽出し、当該外部通信データに対応付けて前記通信データの送信先アドレスを含むサービス開始データを前記データ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲外への通信である場合、取得された前記通信データの送信元アドレスを送信先アドレスとするサービス開始データが前記データ格納部に格納されており、取得された前記通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する
処理を含み、コンピュータにより実行される検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されたシステムのセキュリティ対策技術に関する。
【背景技術】
【０００２】
現在、独自に開発したり、カスタマイズしたマルウェアを利用した攻撃が頻繁に行われるようになってきている。特に、特定の企業を標的とする標的型攻撃の被害事例が増加している。このような被害事例の多くでは、企業内のユーザ端末が遠隔操作型のマルウェアに感染し、感染した端末を踏み台として、他の企業内のユーザ端末に侵入して、遠隔操作型のマルウェアに感染させる攻撃手法が利用されている。
【０００３】
従来のネットワーク監視技術として、マルウェア毎に遠隔操作における通信の通信データのパターンを定義し、ネットワークを流れる通信データとパターンを比較してマルウェアを検知するシグネチャ方式がある。しかし、シグネチャ方式では、既に通信データのパターンが用意されているマルウェアしか検知することができず、カスタマイズされたマルウェアや、独自に開発されたマルウェアは検知できない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１７９９９９号公報
【特許文献２】特開２００６−１５７１４４号公報
【特許文献３】特開２００６−１１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、本発明の目的は、一側面によれば、遠隔操作型のマルウェアに感染した端末を踏み台とする、他の端末への攻撃を検知する技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る検知装置は、（Ａ）通信データを取得する取得部と、（Ｂ）取得された通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納する外部通信特定部と、（Ｃ）取得された通信データが、予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された通信データの送信元アドレスを送信先アドレスとする外部通信データをデータ格納部において抽出し、当該外部通信データに対応付けて通信データの送信先アドレスを含むサービス開始データをデータ格納部に格納するサービス開始抽出部と、（Ｄ）取得された通信データが、予め規定された範囲外への通信である場合、取得された通信データの送信元アドレスを送信先アドレスとするサービス開始データがデータ格納部に格納されており、取得された通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する検知部とを有する。
【発明の効果】
【０００７】
一側面によれば、遠隔操作型のマルウェアに感染した端末を踏み台とする、他の端末への攻撃を検知できるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、システムの一例を示す図である。
【図２】図２は、攻撃の一例を示す図である。
【図３】図３は、攻撃を検知するための観点を模式的に示す図である。
【図４】図４は、第１の実施の形態に係る検知装置の構成例を示す図である。
【図５】図５は、第１の実施の形態に係る処理フローを示す図である。
【図６】図６は、第１の実施の形態に係る関連付けデータ格納部に格納されるデータの第１の状態例を示す図である。
【図７】図７は、第１の実施の形態に係る関連付けデータ格納部に格納されるデータの第２の状態例を示す図である。
【図８】図８は、第１の実施の形態に係る処理フローを示す図である。
【図９】図９は、第１の実施の形態に係る関連付けデータ格納部に格納されるデータの第３の状態例を示す図である。
【図１０】図１０は、第２の実施の形態に係る検知装置の構成例を示す図である。
【図１１】図１１は、第２の実施の形態に係る処理フローを示す図である。
【図１２】図１２は、外部通信データ格納部に格納されるデータの一例を示す図である。
【図１３】図１３は、第２の実施の形態に係る処理フローを示す図である。
【図１４】図１４は、第３の実施の形態の概要を説明するための図である。
【図１５】図１５は、第３の実施の形態に係る検知装置の構成例を示す図である。
【図１６】図１６は、想定シーケンス格納部に格納されるデータの一例を示す図である。
【図１７】図１７は、第３の実施の形態に係る処理フローを示す図である。
【図１８】図１８は、第３の実施の形態に係る関連付けデータ格納部に格納されるデータの第１の状態例を示す図である。
【図１９】図１９は、第３の実施の形態に係る通信データバッファに格納されるデータの一例を示す図である。
【図２０】図２０は、第３の実施の形態に係る処理フローを示す図である。
【図２１】図２１は、第３の実施の形態に係る関連付けデータ格納部に格納されるデータの第２の状態例を示す図である。
【図２２】図２２は、第４の実施の形態に係る検知装置の構成例を示す図である。
【図２３】図２３は、第４の実施の形態に係る処理フローを示す図である。
【図２４】図２４は、第４の実施の形態に係る通信データバッファに格納されるデータの一例を示す図である。
【図２５】図２５は、第４の実施の形態に係る処理フローを示す図である。
【図２６】図２６は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【０００９】
［実施の形態１］
本実施の形態に係るシステムの概要を図１を用いて説明する。図１に示すように、インターネット１０００には、様々なサーバ２０００や攻撃者が操作する攻撃者端末２１００と、例えば企業におけるルータなどの通信装置１１００も接続されている。通信装置１１００には、検知装置１２００と、ユーザ端末Ａ、ユーザ端末Ｂ及び管理者端末１３００を含む複数のユーザ端末や、サーバ等が接続されている。なお、通信装置１１００は、当該通信装置１１００を介して流れる通信データ（具体的にはパケット）をミラーリングで検知装置１２００に出力する。
【００１０】
踏み台を経由して標的のユーザ端末を遠隔操作型マルウェアに感染させる場合、攻撃者端末２１００と、踏み台となるユーザ端末Ａと、攻撃を受けるユーザ端末Ｂとの間で、図２に示すような通信が発生する。まず、攻撃者端末２１００からユーザ端末Ａに対して指令となるデータを載せた通信（すなわち外部通信（１））が発生する。これは例えばＨＴＴＰ（Hyper Text Transfer Protocol）やＨＴＴＰＳ（Hypertext Transfer Protocol Secure）での通信である。次に、ユーザ端末Ａからユーザ端末Ｂへ実行コードやプログラムを送り込み、実行する通信（サービス開始（２））が発生する。これは例えばＳＭＢ（Server Message Block）による通信である。そして、最後に、ユーザ端末Ｂから攻撃者端末Ａに対して、新たなコネクションを構築する通信（外部接続（３））が発生する。コネクションを構築する手順は、例えば3 way handshakeである。外部通信、サービス開始及び外部接続はそれぞれ独立に判断すれば正常な通信であり、攻撃であるとは判定できない。
【００１１】
そこで、本実施の形態では、図３に示すように、攻撃者端末２１００からユーザ端末Ａへの外部通信と、ユーザ端末Ａからユーザ端末Ｂへのサービス開始の通信と、ユーザ端末Ｂから攻撃者端末２１００への外部接続とで、閉ループが形成される点に着目し、この閉ループを検出するものである。
【００１２】
このため、本実施の形態における検知装置１２００は、図４に示すような構成を有する。すなわち、検知装置１２００は、通信データ取得部１２０１と、外部通信抽出部１２０２と、サービス開始抽出部１２０４と、外部接続抽出部１２０５と、ＩＰアドレスリスト格納部１２０３と、関連付けデータ格納部１２０６と、判定条件格納部１２０７と、判定部１２０８と、出力部１２０９とを有する。
【００１３】
通信データ取得部１２０１は、通信装置１１００から通信データを受信する。ＩＰアドレスリスト格納部１２０３は、システム内部に属するＩＰアドレスのリストを格納する。外部通信抽出部１２０２は、ＩＰアドレスリスト格納部１２０３に格納されているＩＰアドレスのリストに基づき、通信データ取得部１２０１からの通信データが外部通信に該当するか否かなどの判断を行い、外部通信に該当する場合には、関連付けデータ格納部１２０６に、外部通信データを格納する。
【００１４】
サービス開始抽出部１２０４は、通信データ取得部１２０１からの通信データがサービス開始に該当するか否かなどの判断を行い、さらに関連する外部通信データを関連付けデータ格納部１２０６において抽出して、当該外部通信データに対応付けてサービス開始データを関連付けデータ格納部１２０６に格納する。
【００１５】
外部接続抽出部１２０５は、通信データ取得部１２０１からの通信データが外部接続に該当するか否かなどの判断を行い、通信データが外部接続に該当する場合には、当該外部接続に関連するサービス開始データ及び外部通信データを関連付けデータ格納部１２０６において抽出する。判定部１２０８は、抽出されたデータが判定条件格納部１２０７に格納されている判定条件を満たしているか否かを判定する。判定条件を満たしている場合、判定部１２０８は、攻撃検出の通知を出力部１２０９に管理者端末１３００へ送信させる。
【００１６】
次に、検知装置１２００の処理内容について、図５乃至図９を用いて説明する。通信データ取得部１２０１は、通信装置１１００から通信データを取得すると（図５：ステップＳ１）、通信データを、外部通信抽出部１２０２、サービス開始抽出部１２０４及び外部接続抽出部１２０５に出力する。
【００１７】
これに対して、外部通信抽出部１２０２は、通信データを受け取ると、当該通信データに係る通信が外部通信に該当するのか否かを判断するため、通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）が、ＩＰアドレスリスト格納部１２０３に格納されるＩＰアドレスのリストに含まれない、すなわちシステム外部の装置のＩＰアドレスであるか否かを判断する（ステップＳ３）。この条件を満たさない場合には、サービス開始抽出部１２０４に処理を指示する。通信データには、パケットのデータと例えば通信装置１１００又は検知装置１２００が当該パケットを受信した時刻（通信時刻と呼ぶ）とが含まれる。
【００１８】
一方、通信データの送信元ＩＰアドレスがシステム外部の装置のＩＰアドレスである場合には、外部通信抽出部１２０２は、受け取った通信データがＨＴＴＰ又はＨＴＴＰＳについての通信データであるか否かを判断する（ステップＳ５）。ＴＣＰ送信元ポート番号が８０や８０８０、４４３であるか否かを判定する。この条件を満たさない場合にも、サービス開始抽出部１２０４に処理を指示する。
【００１９】
受け取った通信データがＨＴＴＰ又はＨＴＴＰＳについての通信データであれば、着目すべき外部通信であるので、外部通信抽出部１２０２は、当該通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）と送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とを、関連付けデータ格納部１２０６に格納する（ステップＳ７）。なお、着目すべき外部通信が検出された場合には、外部通信抽出部１２０２は、サービス開始抽出部１２０４及び外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。
【００２０】
例えば、図６に示すようなデータが関連付けデータ格納部１２０６に格納される。図６の例では、送信元ＩＰアドレスと送信先ＩＰアドレスと通信時刻とを含む外部通信データと、送信先ＩＰアドレスと通信時刻とを含むサービス開始データと、通信時刻を含む外部接続データとが対応付けて格納されるようになっている。この例では、攻撃者端末２１００のＩＰアドレスが「１００．１００．１．１」であり、ユーザ端末ＡのＩＰアドレスが「１９２．１６８．０．２」であり、通信時刻が「８：５０：０．０００」であるものとする。
【００２１】
その後、例えば通信データ取得部１２０１は、処理終了が指示されているか判断し（ステップＳ９）、処理終了が指示されていなければ、処理はステップＳ１に戻る。一方、処理終了が指示されていれば、処理を終了する。
【００２２】
一方、サービス開始抽出部１２０４は、外部通信抽出部１２０２から処理を指示されると（ステップＳ３又はＳ５：Ｎｏルート）、受け取った通信データが、ＳＭＢの通信に係る通信データであり且つ当該通信データに含まれるＳＭＢのコマンドがTrans Request等のサービス開始に係る所定のコマンドであるか否かを判断する（ステップＳ１１）。この条件を満たさない場合には、外部接続抽出部１２０５に処理を指示する。処理は端子Ａを介して図８の処理に移行する。
【００２３】
受け取った通信データが、ＳＭＢの通信に係る通信データであり且つ当該通信データに含まれるＳＭＢのコマンドがTrans Request等のサービス開始に係る所定のコマンドである場合には、サービス開始抽出部１２０４は、通信データのＳＭＢの上位プロトコルがＤＣＥＲＰＣ（Distributed Computing Environment / Remote Procedure Calls）であり且つＤＣＥＲＰＣヘッダ内のオプションがStartServiceWであるか否かを判断する（ステップＳ１３）。すなわち、具体的にサービス開始を指示するものであるか否かを判断する。この条件を満たさない場合にも、外部接続抽出部１２０５に処理を指示する。処理は端子Ａを介して図８の処理に移行する。
【００２４】
通信データのＳＭＢの上位プロトコルがＤＣＥＲＰＣであり且つＤＣＥＲＰＣヘッダ内のオプションがStartServiceWである場合には、サービス開始抽出部１２０４は、この通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とする外部通信データが、関連付けデータ格納部１２０６に格納されているか否かを判断する（ステップＳ１５）。なお、サービス開始が検出された場合には、サービス開始抽出部１２０４は外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。
【００２５】
この通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とする外部通信データを、この通信データの通信時刻より前に遡って特定する。
【００２６】
この通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とする外部通信データが関連付けデータ格納部１２０６において抽出できない場合には、処理はステップＳ９に移行する。
【００２７】
一方、この通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とする外部通信データが抽出されると、サービス開始抽出部１２０４は、抽出された外部通信データの通信時刻と、受け取った通信データの通信時刻との時間差が一定以内（例えば１００ｍｓ以内）であるか否かを判断する（ステップＳ１７）。外部通信データについてのレコードが複数抽出された場合には、それぞれについて本ステップで判断する。
【００２８】
抽出された外部通信データの通信時刻と、受け取った通信データの通信時刻との時間差が一定以内ではない場合、抽出された外部通信データと受け取った通信データとは関連がないものとして、処理はステップＳ９に移行する。
【００２９】
一方、抽出された外部通信データの通信時刻と、受け取った通信データの通信時刻との時間差が一定以内である場合には、関連する外部通信データが抽出されたことになるので、サービス開始抽出部１２０４は、受け取った通信データの送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とを含むサービス開始データを、抽出された外部通信データに対応付けて関連付けデータ格納部１２０６に格納する（ステップＳ１９）。その後処理はステップＳ９に移行する。
【００３０】
例えば、図７に示すようなデータが、関連付けデータ格納部１２０６に格納されることになる。図７の例では、受け取った通信データの送信先ＩＰアドレスが、「１９２．１６８．０．３」であったので、受け取った通信データの送信先ＩＰアドレス「１９２．１６８．０．３」と通信時刻「８：５０：０．０５０」を、サービス開始データとして格納する。
【００３１】
外部接続抽出部１２０５は、サービス開始抽出部１２０４から指示を受けると、受け取った通信データの送信先ＩＰアドレス（ＤｓｔＩＰアドレス）が、ＩＰアドレスリスト格納部１２０３に格納されているシステム内のＩＰアドレスのリストに含まれていない、すなわち外部の装置のＩＰアドレスであるか否かを判断する（ステップＳ２１）。この条件を満たさない場合には、処理は端子Ｂを介して図５のステップＳ９に戻る。
【００３２】
一方、受け取った通信データの送信先ＩＰアドレス（ＤｓｔＩＰアドレス）が、外部の装置のＩＰアドレスである場合には、外部接続抽出部１２０５は、関連付けデータ格納部１２０６において、受け取った通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とするサービス開始データが存在するか判断する（ステップＳ２３）。例えば、受け取った通信データの送信元ＩＰアドレスが「１９２．１６８．０．３」を送信先ＩＰアドレスとして含むサービス開始データを検索する。このようなサービス開始データが存在していない場合には、処理は端子Ｂを介して図５のステップＳ９に戻る。
【００３３】
一方、関連付けデータ格納部１２０６において、受け取った通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とするサービス開始データが存在する場合には、外部接続抽出部１２０５は、受け取った通信データの送信先ＩＰアドレスと、抽出されたサービス開始データに関連付けられている外部通信データにおける送信元ＩＰアドレスとが一致するか判断する（ステップＳ２５）。なお、サービス開始データのレコードが複数抽出された場合には、それぞれについて判断する。受け取った通信データの送信先ＩＰアドレスが「１００．１００．１．１」であれば、図７で示されているレコードは、本ステップの条件を満たしている。このような条件を満たしていない場合には、処理は端子Ｂを介して図５のステップＳ９に戻る。
【００３４】
一方、受け取った通信データの送信先ＩＰアドレスと、抽出されたサービス開始データに関連付けられている外部通信データにおける送信元ＩＰアドレスとが一致する場合には、外部接続抽出部１２０５は、この通信データの通信時刻を、上で述べた処理で抽出されたサービス開始データ及び外部通信データに対応付けて関連付けデータ格納部１２０６に格納する（ステップＳ２７）。
【００３５】
例えば図９に示すようなデータが関連付けデータ格納部１２０６に格納されることになる。図９の例では、外部接続データについてその通信データの通信時刻「８：５０：０．１００」が追加で登録される。
【００３６】
そうすると、外部接続抽出部１２０５は、判定部１２０８に対して、関連付けデータ格納部１２０６に通信時刻を格納したレコードを指定した判定処理を指示する。
【００３７】
判定部１２０８は、判定条件格納部１２０７に格納されている判定条件である閾値時間（例えば５０ｍｓ）を基に、外部接続データの通信時刻とサービス開始データの通信時刻との差が閾値時間以内であるという条件を含む判定条件を満たすか否かを判断する（ステップＳ２９）。なお、外部接続データの通信時刻に代わって又は追加して、外部通信データの通信時刻との時間差を判定するようにしても良い。さらに、外部通信の送信元又は送信先ＩＰアドレス、サービス開始の送信先ＩＰアドレスが、判定条件格納部１２０７に予め規定されたホワイトリスト（例えば安全な外部サーバ（例えばサーバ２０００）や、管理者端末１３００のＩＰアドレス）に一致するか否かを判定するようにしても良い。ホワイトリストに一致する場合には条件を満たさないと判断される。このような条件を満たしていない場合、処理は端子Ｂを介して図５のステップＳ９に戻る。
【００３８】
一方、外部接続データの通信時刻とサービス開始データの通信時刻との差が閾値時間以内であるという条件を含む判定条件を満たしている場合には、判定部１２０８は、出力部１２０９に対して、判定条件を満たすような外部通信データ、サービス開始データ及び外部接続データを含む攻撃検知メッセージを管理者端末１３００へ送信させる（ステップＳ３１）。そして処理は端子Ｂを介して図５のステップＳ９に戻る。
【００３９】
このように、踏み台（ユーザ端末Ａ）を経由して標的のユーザ端末（ユーザ端末Ｂ）を遠隔操作型のマルウェアに感染させる攻撃に対して、外部通信とサービス開始、サービス開始と外部接続といった関連する通信を抽出して対応付けることで、一連の通信を攻撃として検知することが可能となる。特に、通信データのパターンが用意されていないマルウェアであっても対応可能となる。
【００４０】
［実施の形態２］
通常業務の通信において、外部通信とサービス開始の組み合わせ候補は多数存在することが想定されるので、処理負荷や精度の観点から絞り込みを行うことが好ましい。本実施の形態では、遠隔操作型のマルウェアは、コネクションを構築し且つ維持することで、リアルタイムな遠隔操作を実現する特徴があるため、この特徴に着目して第１の実施の形態を変形する。
【００４１】
本実施の形態に係る検知装置１２００ｂの構成を図１０に示す。本実施の形態に係る検知装置１２００ｂは、通信データ取得部１２０１と、外部通信抽出部１２０２ｂと、ＩＰアドレスリスト格納部１２０３と、サービス開始抽出部１２０４と、外部接続抽出部１２０５と、関連付けデータ格納部１２０６と、判定条件格納部１２０７と、判定部１２０８と、出力部１２０９と、外部通信データ格納部１２１０とを有する。第１の実施の形態と同じ機能を有する構成要素については、同じ参照符号が付されている。
【００４２】
外部通信抽出部１２０２ｂは、外部通信データ格納部１２１０にコネクションの継続時間を判定するためのデータを保持して、コネクションの継続時間が閾値を超えているか否かを判断した上で、関連付けデータ格納部１２０６に外部通信データを格納する。
【００４３】
次に、図１１乃至図１３を用いて、第２の実施の形態に係る処理内容を説明する。
【００４４】
まず、通信データ取得部１２０１は、通信装置１１００から通信データを取得すると（図１１：ステップＳ４１）、通信データを、外部通信抽出部１２０２ｂ、サービス開始抽出部１２０４及び外部接続抽出部１２０５に出力する。
【００４５】
これに対して、外部通信抽出部１２０２ｂは、通信データを受け取ると、当該通信データに係る通信が外部通信に該当するのか否かを判断する（ステップＳ４３）。本ステップは、ステップＳ３及びＳ５と同様である。この条件を満たさない場合には、サービス開始抽出部１２０４に処理を指示する。すなわち、処理はステップＳ５７に移行する。
【００４６】
一方、受け取った通信データが外部通信に該当する場合には、外部通信抽出部１２０２ｂは、受け取った通信データと同一コネクションのデータを、外部通信データ格納部１２１０において検索する（ステップＳ４５）。初期的には外部通信データ格納部１２１０には何も格納されていないので、何も検出されない。なお、外部通信が検出された場合には、外部通信抽出部１２０２ｂは、サービス開始抽出部１２０４及び外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。
【００４７】
そして、外部通信抽出部１２０２ｂは、受け取った通信データと同一コネクションのデータを検出できたか判断する（ステップＳ４７）。初回の場合には検出できないので、外部通信抽出部１２０２ｂは、受け取った通信データ、すなわち外部通信の送信元ＩＰアドレス（ＳｒｃＩＰアドレス）及び送信先ＩＰアドレス（ＤｓｔＩＰアドレス）、送信元ＴＣＰポート番号及び送信先ＴＣＰポート番号、開始時刻（受け取った通信データの通信時刻）とを、外部通信データ格納部１２１０に格納する（ステップＳ４９）。そうすると、例えば図１２に示すようなデータが格納される。図１２の例では、送信元ＩＰアドレスと、送信元ＴＣＰポート番号と、送信先ＩＰアドレスと、送信先ＴＣＰポート番号と、開始時刻とがコネクションデータとして格納されるようになっている。処理はステップＳ５５に移行する。
【００４８】
一方、受け取った通信データと同一コネクションのデータを検出できた場合には、外部通信抽出部１２０２ｂは、受け取った通信データの通信時刻と、外部通信データ格納部１２１０に格納されているコネクションデータにおける開始時刻との差であるコネクション継続時間が一定値以上であるか否かを判断する（ステップＳ５１）。コネクション継続時間が一定値未満であれば、本実施の形態では外部通信データを関連付けデータ格納部１２０６に格納しないので、処理はステップＳ５５に移行する。
【００４９】
一方、コネクション継続時間が一定値以上であれば、着目すべき外部通信であるので、外部通信抽出部１２０２ｂは、当該通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）と送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とを、関連付けデータ格納部１２０６に格納する（ステップＳ５３）。例えば、図６に示すようなデータが関連付けデータ格納部１２０６に格納される。
【００５０】
その後、例えば通信データ取得部１２０１は、処理終了が指示されているか判断し（ステップＳ５５）、処理終了が指示されていなければ、処理はステップＳ４１に戻る。一方、処理終了が指示されていれば、処理を終了する。
【００５１】
一方、サービス開始抽出部１２０４は、外部通信抽出部１２０２ｂから処理を指示されると（ステップＳ４３：Ｎｏルート）、受け取った通信データが、サービス開始に係る通信データであるか否かを判断する（ステップＳ５７）。本ステップは、第１の実施の形態におけるステップＳ１１及びＳ１３と同様である。この条件を満たさない場合には、外部接続抽出部１２０５に処理を指示する。処理は端子Ｃを介して図１３の処理に移行する。
【００５２】
一方、受け取った通信データがサービス開始に係る通信データであれば、サービス開始抽出部１２０４は、この通信データに関連する外部通信データ、すなわち、この通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とする外部通信データを、関連付けデータ格納部１２０６において検索する（ステップＳ５９）。なお、関連する外部通信データの検索条件については、受け取った通信データの通信時刻との時間差が一定以内（例えば１００ｍｓ以内）であるという条件を付加しても良い。また、サービス開始が検出された場合には、サービス開始抽出部１２０４は外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。
【００５３】
そして、サービス開始抽出部１２０４は、この通信データに関連する外部通信データが抽出できたか判断する（ステップＳ６１）。この通信データに関連する外部通信データが抽出できなかった場合には、処理はステップＳ５５に移行する。
【００５４】
一方、この通信データに関連する外部通信データが抽出できた場合には、サービス開始抽出部１２０４は、受け取った通信データの送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とを含むサービス開始データを、抽出された外部通信データに対応付けて関連付けデータ格納部１２０６に格納する（ステップＳ６３）。その後処理はステップＳ５５に移行する。例えば、図７に示すようなデータが、関連付けデータ格納部１２０６に格納されることになる。
【００５５】
処理は図１３の端子Ｃ以降の処理に移行して、外部接続抽出部１２０５は、サービス開始抽出部１２０４から指示を受けると、受け取った通信データの送信先ＩＰアドレス（ＤｓｔＩＰアドレス）が、ＩＰアドレスリスト格納部１２０３に格納されているシステム内のＩＰアドレスのリストに含まれていない、すなわち受け取った通信データが外部接続に該当するか否かを判断する（ステップＳ６５）。この条件を満たさない場合には、処理は端子Ｄを介して図１１のステップＳ５５に戻る。なお、本ステップはステップＳ２１と同様である。
【００５６】
一方、受け取った通信データが外部接続に該当する場合には、外部接続抽出部１２０５は、関連付けデータ格納部１２０６において、受け取った通信データに関連する、サービス開始データと外部通信データとの組み合わせを検索する（ステップＳ６７）。
【００５７】
より具体的には、受け取った通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とするサービス開始データ、及び当該サービス開始データに対応付けられ且つ受け取った通信データの送信先ＩＰアドレスを送信元ＩＰアドレスとする外部通信データを抽出する。本ステップは、ステップＳ２３及びＳ２５と同様である。
【００５８】
ステップＳ６７の条件を満たす、サービス開始データ及び外部通信データの組み合わせを抽出できない場合には（ステップＳ６９：Ｎｏルート）、処理は端子Ｄを介して図１１のステップＳ５５に戻る。
【００５９】
受け取った通信データに関連する、サービス開始データと外部通信データとの組み合わせが抽出された場合には（ステップＳ６９：Ｙｅｓルート）、外部接続抽出部１２０５は、この通信データの通信時刻を、上で述べた処理で抽出されたサービス開始データ及び外部通信データに対応付けて関連付けデータ格納部１２０６に格納する（ステップＳ７１）。例えば図９に示すようなデータが関連付けデータ格納部１２０６に格納されることになる。本ステップは、ステップＳ２７と同様である。
【００６０】
そうすると、外部接続抽出部１２０５は、判定部１２０８に対して、関連付けデータ格納部１２０６に通信時刻を格納したレコードを指定した判定処理を指示する。
【００６１】
判定部１２０８は、判定条件格納部１２０７に格納されている判定条件である閾値時間（例えば５０ｍｓ）を基に、外部接続データの通信時刻とサービス開始データの通信時刻との差が閾値時間以内であるという条件を含む判定条件を満たすか否かを判断する（ステップＳ７３）。なお、外部接続データの通信時刻ではなく、外部通信データの通信時刻との時間差を判定するようにしても良い。さらに、外部通信の送信元又は送信先ＩＰアドレス、サービス開始の送信先ＩＰアドレスが、判定条件格納部１２０７に予め規定されたホワイトリスト（例えば安全な外部サーバ（例えばサーバ２０００）や、管理者端末１３００のＩＰアドレス）に一致するか否かを判定するようにしても良い。ホワイトリストに一致する場合には条件を満たさないと判断される。本ステップは、ステップＳ２９と同様である。このような条件を満たしていない場合、処理は端子Ｄを介して図１１のステップＳ５５に戻る。
【００６２】
一方、外部接続データの通信時刻とサービス開始データの通信時刻との差が閾値時間以内であるという条件を含む判定条件を満たしている場合には、判定部１２０８は、出力部１２０９に対して、判定条件を満たすような外部通信データ、サービス開始データ及び外部接続データを含む攻撃検知メッセージを管理者端末１３００へ送信させる（ステップＳ７５）。本ステップは、ステップＳ３１と同様である。そして処理は端子Ｄを介して図１１のステップＳ５５に戻る。
【００６３】
このように、踏み台（ユーザ端末Ａ）を経由して標的のユーザ端末（ユーザ端末Ｂ）を遠隔操作型のマルウェアに感染させる攻撃に対して、外部通信とサービス開始、サービス開始と外部接続といった関連する通信を抽出して対応付けることで、一連の通信を攻撃として検知することが可能となる。
【００６４】
さらに、外部通信を抽出する際に、コネクション型の通信でコネクションの継続時間が一定値以上のものに限定することで、短時間のＷｅｂアクセスなどを外部通信の候補から除外することができる。これによって、攻撃の抽出精度を上げることができるようになる。
【００６５】
［実施の形態３］
一般的な業務の通信において、外部通信及びサービス開始の候補は多数存在することが想定され、問題のない外部通信及びサービス開始の候補を組み合わせてしまう可能性がある。
【００６６】
攻撃において、外部通信の直後に踏み台となるユーザ端末Ａから、標的のユーザ端末Ｂに向けて、サービス開始シーケンスが開始され、その後にシーケンス上で実際のサービス開始が発生する。本実施の形態では、外部通信とサービス開始の組み合わせを見つける際に、外部通信とサービス開始との時間差ではなく、外部通信とサービス開始シーケンスの先頭との時間差を判定条件とする。これによって、本来は関係のない外部通信の候補を除外することができる。
【００６７】
より具体的には、図１４に示すように、サービス開始を抽出した際に、サービス開始と同一のコネクションの過去の通信データと、予め分かっている想定シーケンスと比較しながら遡ることで（矢印Ａ）、最後に一致した通信時刻をサービス開始シーケンスの先頭時刻として捉える。これにより、本来は関係のない外部通信の候補を、サービス開始と組み合わせてしまう可能性を低下させることが可能となる。
【００６８】
このため本実施の形態では、図１５に示すような検知装置１２００ｃを採用する。
【００６９】
本実施の形態に係る検知装置１２００ｃは、通信データ取得部１２０１と、外部通信抽出部１２０２と、ＩＰアドレスリスト格納部１２０３と、サービス開始抽出部１２０４ｃと、外部接続抽出部１２０５と、関連付けデータ格納部１２０６ｃと、判定条件格納部１２０７と、判定部１２０８と、出力部１２０９と、通信データバッファ１２１１と、想定シーケンス格納部１２１２とを有する。第１の実施の形態と同じ機能を有する構成要素については、同じ参照符号が付されている。
【００７０】
サービス開始抽出部１２０４ｃは、通信データバッファ１２１１に、以下で示す条件を満たす通信データを格納し、さらに想定シーケンス格納部１２１２に格納されているデータを用いてサービス開始シーケンスの先頭時刻を特定する。
【００７１】
想定シーケンス格納部１２１２に格納されるデータは、例えば図１６に示すようなデータである。図１６の例では、アクセス先のユーザ端末Ｂに管理ツールをサービスとして送り込み、開始する際のシーケンス例を示している。一般的には、この後、このサービスが任意のプログラムを受け取って実行する。具体的には、順番に、「3 way handshake」（ＴＣＰコネクション構築）、「Negotiate Protocol」（認証方法の確認）、「Session Setup AndX」（認証手続き）、「Tree Connect AndX」（利用したリソース（権限とほぼ同義）を要求）、「NT Create AndX」（特定のファイルにアクセス（サービスを送り込む準備）、「NT Create AndX」（特定のファイルにアクセス（サービスを管理するWindows（登録商標）のプロセス）、「SVCCTL:CreateServiceW」（新規サービスの生成）、「SVCCTL:OpenServiceW」（生成したサービスにアクセス）、そして「SVCCT:StartServiceW」（サービスを開始）となる。なお、図１６における属性は第４の実施の形態に関係するデータであるので、ここでは説明を省略する。
【００７２】
関連付けデータ格納部１２０６ｃに格納されるデータは、サービス開始シーケンスの先頭時刻がサービス開始データに追加される点が異なる。
【００７３】
次に、図１７乃至図２１を用いて、第３の実施の形態に係る処理内容を説明する。
【００７４】
まず、通信データ取得部１２０１は、通信装置１１００から通信データを取得すると（図１７：ステップＳ８１）、通信データを、外部通信抽出部１２０２、サービス開始抽出部１２０４ｃ及び外部接続抽出部１２０５に出力する。
【００７５】
これに対して、外部通信抽出部１２０２は、通信データを受け取ると、当該通信データに係る通信が外部通信に該当するのか否かを判断する（ステップＳ８３）。本ステップは、ステップＳ３及びＳ５と同様である。この条件を満たさない場合には、サービス開始抽出部１２０４ｃに処理を指示する。すなわち、処理はステップＳ８７に移行する。
【００７６】
一方、受け取った通信データが外部通信に該当する場合には、外部通信抽出部１２０２は、この通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）と送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とを、関連付けデータ格納部１２０６ｃに格納する（ステップＳ８５）。なお、外部通信と判断された場合には、外部通信抽出部１２０２は、サービス開始抽出部１２０４ｃ及び外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。例えば図１８に示すようなデータが関連付けデータ格納部１２０６ｃに格納される。この段階では、図６と同様であるが、サービス開始データについて、サービス開始シーケンスの先頭時刻（シーケンス先頭時刻と記す）が追加格納される点が異なる。  その後、例えば通信データ取得部１２０１は、処理終了が指示されているか判断し（ステップＳ９５）、処理終了が指示されていなければ、処理はステップＳ８１に戻る。一方、処理終了が指示されていれば、処理を終了する。
【００７７】
一方、サービス開始抽出部１２０４ｃは、外部通信抽出部１２０２から処理を指示されると（ステップＳ８３：Ｎｏルート）、受け取った通信データが、サービス開始と同じ通信プロトコルについての通信データであるか否かを判断する（ステップＳ８７）。例えば、送信元又は送信先ポート番号が１３９又は４４５であるＴＣＰ通信であるか否かを判断する。
【００７８】
受け取った通信データが、サービス開始と同じ通信プロトコルについての通信データではない場合には、処理は端子Ｃを介して図１３の処理に移行する。すなわち、外部接続抽出部１２０５に処理を指示する。図１３は、第２の実施の形態と同様であるので、説明は省略する。
【００７９】
一方、受け取った通信データが、サービス開始と同じ通信プロトコルについての通信データであれば、サービス開始抽出部１２０４ｃは、サービス開始に係る通信データであるか否かを判断する（ステップＳ８９）。本ステップは、第１の実施の形態におけるステップＳ１１及びＳ１３と同様である。この条件を満たす場合には、処理は端子Ｅを介して図２０の処理に移行する。なお、サービス開始が検出された場合には、サービス開始抽出部１２０４ｃは外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。
【００８０】
一方、受け取った通信データがサービス開始に係る通信データでなければ、後にサービス開始シーケンスを後ろから辿る処理を行うため、サービス開始抽出部１２０４ｃは、通信データを通信時刻と共に、通信データバッファ１２１１に格納する（ステップＳ９１）。また、サービス開始抽出部１２０４ｃは、通信データバッファ１２１１において、通信時刻に基づき、一定時間（例えば１０分など）経過した通信データを削除する（ステップＳ９３）。そして処理はステップＳ９５に移行する。なお、通信データバッファ１２１１には、図１９に示すように、通信データであるパケットデータと通信時刻との組み合わせが蓄積されて行く。
【００８１】
図２０の処理の説明に移行して、サービス開始抽出部１２０４ｃは、通信データバッファ１２１１において、同一コネクションの通信データを新しい順に検索する（ステップＳ９７）。具体的には、最初はサービス開始の時刻、その後は特定された最も古い先頭時刻より前の通信時刻を有する通信データのうち、送信元ＩＰアドレス及び送信先ＩＰアドレス並びに送信元ＴＣＰポート番号及び送信先ＴＣＰポート番号が一致する通信データを時間を遡るように検索し、条件を満たす最も新しい１パケット分を抽出する。
【００８２】
ここで、サービス開始抽出部１２０４ｃは、該当する通信データが抽出でき且つ当該通信データが想定シーケンス格納部１２１２に格納されている想定シーケンスと一致するか否かを判断する（ステップＳ９９）。想定シーケンスについては、ステップ９７を実行する毎にサービス開始より前のパケットを１つずつ繰り上げて判断対象パケットを特定し、比較する。
【００８３】
該当する通信データが抽出でき且つ当該通信データが想定シーケンスと一致する場合には、サービス開始抽出部１２０４ｃは、該当する通信データの通信時刻を、サービス開始シーケンスの先頭時刻として保持する（ステップＳ１０１）。そして処理はステップＳ９７に戻る。
【００８４】
このような処理を繰り返し実施すれば、想定シーケンスを遡ってサービス開始シーケンスの先頭時刻が巻き戻ることになる。
【００８５】
一方、該当する通信データが抽出できなくなるか、又は抽出できた場合でもその通信データが想定シーケンスと一致しなくなった場合には、サービス開始抽出部１２０４ｃは、受け取った通信データに関連する外部通信データ、すなわち、受け取った通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とする外部通信データであって、サービス開始シーケンスの先頭時刻との時間差が一定以内（例えば１００ｍｓ以内）である外部通信データを、関連付けデータ格納部１２０６ｃにおいて検索する（ステップＳ１０３）。
【００８６】
そして、サービス開始抽出部１２０４ｃは、受け取った通信データに関連する外部通信データが抽出できたか判断する（ステップＳ１０５）。この通信データに関連する外部通信データが抽出できなかった場合には、処理は端子Ｄを介してステップＳ９５に移行する。
【００８７】
一方、この通信データに関連する外部通信データが抽出できた場合には、サービス開始抽出部１２０４ｃは、受け取った通信データの送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とシーケンス先頭時刻とを含むサービス開始データを、抽出された外部通信データに対応付けて関連付けデータ格納部１２０６ｃに格納する（ステップＳ１０７）。その後処理は端子Ｄを介してステップＳ９５に移行する。
【００８８】
例えば、図２１に示すようなデータが、関連付けデータ格納部１２０６ｃに格納されることになる。図２１の例では、サービス開始シーケンスの先頭時刻についても登録するようになっている。
【００８９】
上でも述べたように、外部接続抽出部１２０５の処理については第２の実施の形態と同様であるから説明を省略する。
【００９０】
このような処理を行うことで、外部通信データとサービス開始データとの対応付けの精度向上によって、精度良く攻撃を検知できるようになる。
【００９１】
［実施の形態４］
第３の実施の形態では、サービス開始と同一のプロトコルという条件で通信データを蓄積しているので、通信データバッファ１２１１に大量の通信データが蓄積されることになる。これによって記憶容量の問題や検索速度の問題が生ずる可能性がある。本実施の形態では、蓄積すべき通信データを限定することで、効率的にサービス開始シーケンスの先頭時刻を特定できるようにする。
【００９２】
このため本実施の形態では、図２２に示すような検知装置１２００ｄを採用する。
【００９３】
本実施の形態に係る検知装置１２００ｄは、通信データ取得部１２０１と、外部通信抽出部１２０２と、ＩＰアドレスリスト格納部１２０３と、サービス開始抽出部１２０４ｄと、外部接続抽出部１２０５と、関連付けデータ格納部１２０６ｃと、判定条件格納部１２０７と、判定部１２０８と、出力部１２０９と、通信データバッファ１２１３と、候補リスト格納部１２１４とを有する。第１又は第３の実施の形態と同じ機能を有する構成要素については、同じ参照符号が付されている。
【００９４】
サービス開始抽出部１２０４ｄは、サービス開始シーケンスの先頭候補パケットのデータを格納する候補リスト格納部１２１４を参照して、先頭候補パケットに該当する通信データを、通信データバッファ１２１３に格納する。また、サービス開始抽出部１２０４ｄは、サービス開始に係る通信データを受信すると、同一コネクションに係る通信データを通信データバッファ１２１３において検索して、最も古い通信データの通信時刻を特定する。
【００９５】
候補リスト格納部１２１４は、例えば、図１６において属性が「先頭候補」となっているパケットのデータを格納しておく。サービス開始シーケンスの先頭として抽出すべきパケットとして適切なパケットを予め特定して、候補リスト格納部１２１４に格納しておく。
【００９６】
次に、図２３乃至図２５を用いて、第４の実施の形態に係る処理内容を説明する。
【００９７】
まず、通信データ取得部１２０１は、通信装置１１００から通信データを取得すると（図２３：ステップＳ１１１）、通信データを、外部通信抽出部１２０２、サービス開始抽出部１２０４ｄ及び外部接続抽出部１２０５に出力する。
【００９８】
これに対して、外部通信抽出部１２０２は、通信データを受け取ると、当該通信データに係る通信が外部通信に該当するのか否かを判断する（ステップＳ１１３）。本ステップは、ステップＳ３及びＳ５と同様である。この条件を満たさない場合には、サービス開始抽出部１２０４ｄに処理を指示する。すなわち、処理はステップＳ１１７に移行する。
【００９９】
一方、受け取った通信データが外部通信に該当する場合には、外部通信抽出部１２０２は、この通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）と送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とを、関連付けデータ格納部１２０６ｃに格納する（ステップＳ１１５）。なお、外部通信と判断された場合には、外部通信抽出部１２０２は、サービス開始抽出部１２０４ｄ及び外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。例えば図１８に示すようなデータが関連付けデータ格納部１２０６ｃに格納される。
【０１００】
その後、例えば通信データ取得部１２０１は、処理終了が指示されているか判断し（ステップＳ１２５）、処理終了が指示されていなければ、処理はステップＳ１１１に戻る。一方、処理終了が指示されていれば、処理を終了する。
【０１０１】
一方、サービス開始抽出部１２０４ｄは、外部通信抽出部１２０２から処理を指示されると（ステップＳ１１３：Ｎｏルート）、受け取った通信データが、サービス開始と同じ通信プロトコルについての通信データであるか否かを判断する（ステップＳ１１７）。例えば、送信元又は送信先ポート番号が１３９又は４４５であるＴＣＰ通信であるか否かを判断する。
【０１０２】
受け取った通信データが、サービス開始と同じ通信プロトコルについての通信データではない場合には、処理は端子Ｃを介して図１３の処理に移行する。すなわち、外部接続抽出部１２０５に処理を指示する。図１３は、第２の実施の形態と同様であるので、説明は省略する。
【０１０３】
一方、受け取った通信データが、サービス開始と同じ通信プロトコルについての通信データであれば、サービス開始抽出部１２０４ｄは、候補リスト格納部１２１４に格納されている候補リストとを照合して、受け取った通信データがサービス開始シーケンスの先頭候補に該当するか否かを判断する（ステップＳ１１９）。この条件を満たさない場合には、処理は端子Ｆを介して図２５の処理に移行する。なお、サービス開始と同じ通信プロトコルについての通信データであると判断された場合には、サービス開始抽出部１２０４ｄは外部接続抽出部１２０５に対して、今回受け取った通信データを破棄させる。
【０１０４】
一方、受け取った通信データがサービス開始シーケンスの先頭候補に該当する場合には、後に検索を行って最も古い先頭候補を特定するために、サービス開始抽出部１２０４ｄは、通信データを通信時刻と共に、通信データバッファ１２１３に格納する（ステップＳ２１）。また、サービス開始抽出部１２０４ｄは、通信データバッファ１２１３において、通信時刻に基づき、一定時間（例えば１０分など）経過した通信データを削除する（ステップＳ１２３）。そして処理はステップＳ１２５に移行する。なお、通信データバッファ１２１３には、図２４に示すように、先頭候補の通信データであるパケットデータと通信時刻との組み合わせが蓄積されて行く。
【０１０５】
図２５の処理の説明に移行して、サービス開始抽出部１２０４ｄは、通信データバッファ１２１３において、同一コネクションの通信データ、すなわちサービス開始シーケンスの先頭候補の通信データを検索する（ステップＳ１２７）。
【０１０６】
そして、サービス開始抽出部１２０４ｄは、抽出された通信データのうち、最も古いものの通信時刻をシーケンス先頭時刻として特定する（ステップＳ１２９）。
【０１０７】
このような処理を実施すれば、想定シーケンスを遡って、サービス開始シーケンスの最も古い先頭時刻を特定できる。
【０１０８】
その後、サービス開始抽出部１２０４ｄは、受け取った通信データに関連する外部通信データ、すなわち、受け取った通信データの送信元ＩＰアドレス（ＳｒｃＩＰアドレス）を宛先とする外部通信データであって、シーケンス先頭時刻との時間差が一定以内（例えば１００ｍｓ以内）である外部通信データを、関連付けデータ格納部１２０６ｃにおいて検索する（ステップＳ１３１）。
【０１０９】
そして、サービス開始抽出部１２０４ｄは、受け取った通信データに関連する外部通信データが抽出できたか判断する（ステップＳ１３３）。この通信データに関連する外部通信データが抽出できなかった場合には、処理は端子Ｄを介してステップＳ１２５に移行する。
【０１１０】
一方、この通信データに関連する外部通信データが抽出できた場合には、サービス開始抽出部１２０４ｄは、受け取った通信データの送信先ＩＰアドレス（ＤｓｔＩＰアドレス）と通信時刻とシーケンス先頭時刻とを含むサービス開始データを、抽出された外部通信データに対応付けて関連付けデータ格納部１２０６ｃに格納する（ステップＳ１３５）。その後処理は端子Ｄを介してステップＳ１２５に移行する。例えば、図２１に示すようなデータが、関連付けデータ格納部１２０６ｃに格納されることになる。
【０１１１】
上でも述べたように、外部接続抽出部１２０５の処理については第２の実施の形態と同様であるから説明を省略する。
【０１１２】
このような処理を行うことで、外部通信データとサービス開始データとの対応付けの精度向上によって、精度良く攻撃を検知できるようになる。
【０１１３】
さらに、効率的にサービス開始シーケンスの先頭時刻を抽出できるようになる。
【０１１４】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、検知装置１２００及び１２００ｂ乃至１２００ｄの機能ブロック図は一例であって、プログラムモジュール構成とは一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、複数ステップを並列に実行したり、ステップの順番を入れ替えたりしても良い。上で述べた説明では、外部通信抽出部、サービス開始抽出部及び外部接続抽出部が、シリアルに動作する例を示したが、動作開始の判定条件を整えて並列に動作するようにしても良い。
【０１１５】
また、上で述べた実施の形態の一部分を組み合わせても良い。さらに、通信装置１１００は、スイッチ、ファイアウォールその他の装置であっても良い。また、検知装置１２００及び１２００ｂ乃至１２００ｄと通信装置１１００が一体化される場合もある。
【０１１６】
なお、上で述べた想定シーケンス等については特定のプロトコルについて一例を示したが、他のプロトコルについても想定シーケンスを用意して対処できるようにしても良い。さらに、複数種類の想定シーケンスを前提にデータを用意するようにしても良い。
【０１１７】
さらに、検知装置１２００等は、１台のコンピュータではなく、複数のコンピュータで構成される場合もある。
【０１１８】
なお、上で述べた検知装置１２００等は、コンピュータ装置であって、図２４に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１１９】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１２０】
本実施の形態に係る検知装置は、（Ａ）通信データを取得する取得部と、（Ｂ）取得された通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納する外部通信特定部と、（Ｃ）取得された通信データが、予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された通信データの送信元アドレスを送信先アドレスとする外部通信データをデータ格納部において抽出し、当該外部通信データに対応付けて通信データの送信先アドレスを含むサービス開始データをデータ格納部に格納するサービス開始抽出部と、（Ｄ）取得された通信データが、予め規定された範囲外への通信である場合、取得された通信データの送信元アドレスを送信先アドレスとするサービス開始データがデータ格納部に格納されており、取得された通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する検知部とを有する。
【０１２１】
このようにデータの関連付けを辿ることで、遠隔操作型のマルウェアに感染した端末を踏み台とする、他の端末への攻撃を検知できるようになる。
【０１２２】
なお、上で述べた外部通信データが、取得された通信データの通信時刻をさらに含むようにしても良い。この場合、サービス開始抽出部が、取得された通信データの送信元アドレスを送信先アドレスとし且つ取得された通信データの通信時刻との通信時間差が第１の所定時間内である外部通信データをデータ格納部において抽出するようにしても良い。これによって、攻撃検知の精度が向上する。
【０１２３】
また、上で述べたサービス開始データが、取得された通信データの通信時刻をさらに含むようにしても良い。この場合、上で述べた第３の条件が、取得された通信データの通信時刻とサービス開始データに含まれる通信時刻との差が第２の所定時間内であるという条件をさらに含むようにしても良い。これによって、攻撃検知の精度が向上する。
【０１２４】
さらに、上で述べた第１の条件が、取得された通信データの送信元アドレスと送信先アドレスとの間のコネクションの継続時間が第３の所定時間以上であるという条件をさらに含むようにしても良い。上で述べた攻撃の特性を利用して攻撃検知を向上させることができる。
【０１２５】
さらに、上で述べたサービス開始抽出部が、（ｃ１）取得された通信データが、予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当しない場合、バッファに当該通信データ及び当該通信データの通信時刻とを格納し、（ｃ２）取得された通信データが、予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を満たす場合には、上記バッファにおいて、取得された通信データの送信元アドレスと送信先アドレスとの間のコネクションについての通信データであって且つサービス開始までに行われ且つ予め規定された通信シーケンスのうち最も古い通信データの通信時刻を特定し、（ｃ３）取得された通信データの送信元アドレスを送信先アドレスとし且つ特定された通信時刻との通信時間差が第４の所定時間内である外部通信データをデータ格納部において抽出するようにしても良い。
【０１２６】
このようにすれば、外部通信データとサービス開始データとの対応付けの精度を向上させることができるようになる。
【０１２７】
また、上で述べたサービス開始抽出部が、（ｃ４）取得された通信データが、予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当しない場合であって、予め規定された通信シーケンスの開始候補に該当する場合には、バッファに当該通信データ及び当該通信データの通信時刻とを格納し、（ｃ５）取得された通信データが、予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を満たす場合には、上記バッファにおいて、取得された通信データの送信元アドレスと送信先アドレスとの間のコネクションについての通信データであって且つ最も古い通信データの通信時刻を特定し、（ｃ６）取得された通信データの送信元アドレスを送信先アドレスとし且つ特定された通信時刻との通信時間差が第５の所定時間内である外部通信データをデータ格納部において抽出するようにしても良い。
【０１２８】
このようにすれば、外部通信データとサービス開始データとの対応付けの精度が向上し、効率的な処理が行われるようになる。
【０１２９】
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１３０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３１】
（付記１）
通信データを取得する取得部と、
取得された前記通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納する外部通信特定部と、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された前記通信データの送信元アドレスを送信先アドレスとする外部通信データを前記データ格納部において抽出し、当該外部通信データに対応付けて前記通信データの送信先アドレスを含むサービス開始データを前記データ格納部に格納するサービス開始抽出部と、
取得された前記通信データが、前記予め規定された範囲外への通信である場合、取得された前記通信データの送信元アドレスを送信先アドレスとするサービス開始データが前記データ格納部に格納されており、取得された前記通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する検知部と、
を有する検知装置。
【０１３２】
（付記２）
前記外部通信データが、取得された前記通信データの通信時刻をさらに含み、
前記サービス開始抽出部が、
取得された前記通信データの送信元アドレスを送信先アドレスとし且つ取得された前記通信データの通信時刻との通信時間差が第１の所定時間内である外部通信データを前記データ格納部において抽出する
付記１記載の検知装置。
【０１３３】
（付記３）
前記サービス開始データが、取得された前記通信データの通信時刻をさらに含み、
前記第３の条件が、取得された前記通信データの通信時刻と前記サービス開始データに含まれる通信時刻との差が第２の所定時間内であるという条件をさらに含む
付記１又は２記載の検知装置。
【０１３４】
（付記４）
前記第１の条件が、取得された前記通信データの送信元アドレスと送信先アドレスとの間のコネクションの継続時間が第３の所定時間以上であるという条件をさらに含む
付記１乃至３のいずれか１つ記載の検知装置。
【０１３５】
（付記５）
前記サービス開始抽出部が、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当しない場合、バッファに当該通信データ及び当該通信データの通信時刻とを格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を満たす場合には、前記バッファにおいて、取得された前記通信データの送信元アドレスと送信先アドレスとの間のコネクションについての通信データであって且つ前記サービス開始までに行われ且つ予め規定された通信シーケンスのうち最も古い通信データの通信時刻を特定し、
取得された前記通信データの送信元アドレスを送信先アドレスとし且つ特定された前記通信時刻との通信時間差が第４の所定時間内である外部通信データを前記データ格納部において抽出する
付記１記載の検知装置。
【０１３６】
（付記６）
前記サービス開始抽出部が、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当しない場合であって、予め規定された通信シーケンスの開始候補に該当する場合には、バッファに当該通信データ及び当該通信データの通信時刻とを格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を満たす場合には、前記バッファにおいて、取得された前記通信データの送信元アドレスと送信先アドレスとの間のコネクションについての通信データであって且つ最も古い通信データの通信時刻を特定し、
取得された前記通信データの送信元アドレスを送信先アドレスとし且つ特定された前記通信時刻との通信時間差が第５の所定時間内である外部通信データを前記データ格納部において抽出する
付記１記載の検知装置。
【０１３７】
（付記７）
通信データを取得し、
取得された前記通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された前記通信データの送信元アドレスを送信先アドレスとする外部通信データを前記データ格納部において抽出し、当該外部通信データに対応付けて前記通信データの送信先アドレスを含むサービス開始データを前記データ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲外への通信である場合、取得された前記通信データの送信元アドレスを送信先アドレスとするサービス開始データが前記データ格納部に格納されており、取得された前記通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する
処理を、コンピュータに実行させるためのプログラム。
【０１３８】
（付記８）
通信データを取得し、
取得された前記通信データが、ネットワークにおいて予め規定された範囲外からの通信であるという条件を含む第１の条件を満たす場合、送信元アドレス及び送信先アドレスとを含む外部通信データをデータ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲内への通信であって且つ予め定められたサービスの開始に該当するという条件を含む第２の条件を満たす場合、取得された前記通信データの送信元アドレスを送信先アドレスとする外部通信データを前記データ格納部において抽出し、当該外部通信データに対応付けて前記通信データの送信先アドレスを含むサービス開始データを前記データ格納部に格納し、
取得された前記通信データが、前記予め規定された範囲外への通信である場合、取得された前記通信データの送信元アドレスを送信先アドレスとするサービス開始データが前記データ格納部に格納されており、取得された前記通信データの送信先アドレスが当該サービス開始データに対応付けられている外部通信データに含まれる送信元アドレスとが一致するという条件を含む第３の条件を満たすか判断し、満たしている場合には攻撃検知を通知する
処理を含み、コンピュータにより実行される検知方法。
【符号の説明】
【０１３９】
１２０１  通信データ取得部
１２０２，１２０２ｂ  外部通信抽出部
１２０３  ＩＰアドレスリスト格納部
１２０４，１２０４ｃ，１２０４ｄ  サービス開始抽出部
１２０５  外部接続抽出部
１２０６，１２０６ｃ  関連付けデータ格納部
１２０７  判定条件格納部
１２０８  判定部
１２０９  出力部
１２１０  外部通信データ格納部
１２１１，１２１３  通信データバッファ
１２１２  想定シーケンス格納部
１２１４  候補リスト格納部
【図１】
2015015581.tif 000003
【図２】
2015015581.tif 000004
【図３】
2015015581.tif 000005
【図４】
2015015581.tif 000006
【図５】
2015015581.tif 000007
【図６】
2015015581.tif 000008
【図７】
2015015581.tif 000009
【図８】
2015015581.tif 000010
【図９】
2015015581.tif 000011
【図１０】
2015015581.tif 000012
【図１１】
2015015581.tif 000013
【図１２】
2015015581.tif 000014
【図１３】
2015015581.tif 000015
【図１４】
2015015581.tif 000016
【図１５】
2015015581.tif 000017
【図１６】
2015015581.tif 000018
【図１７】
2015015581.tif 000019
【図１８】
2015015581.tif 000020
【図１９】
2015015581.tif 000021
【図２０】
2015015581.tif 000022
【図２１】
2015015581.tif 000023
【図２２】
2015015581.tif 000024
【図２３】
2015015581.tif 000025
【図２４】
2015015581.tif 000026
【図２５】
2015015581.tif 000027
【図２６】
2015015581.tif 000028