IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社PFUの特許一覧

特許7045949情報処理装置、通信検査方法及びプログラム
<>
  • 特許-情報処理装置、通信検査方法及びプログラム 図1
  • 特許-情報処理装置、通信検査方法及びプログラム 図2
  • 特許-情報処理装置、通信検査方法及びプログラム 図3
  • 特許-情報処理装置、通信検査方法及びプログラム 図4
  • 特許-情報処理装置、通信検査方法及びプログラム 図5
  • 特許-情報処理装置、通信検査方法及びプログラム 図6
  • 特許-情報処理装置、通信検査方法及びプログラム 図7
  • 特許-情報処理装置、通信検査方法及びプログラム 図8
  • 特許-情報処理装置、通信検査方法及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-24
(45)【発行日】2022-04-01
(54)【発明の名称】情報処理装置、通信検査方法及びプログラム
(51)【国際特許分類】
   H04L 12/66 20060101AFI20220325BHJP
   G06F 21/55 20130101ALI20220325BHJP
   H04L 12/22 20060101ALI20220325BHJP
【FI】
H04L12/66
G06F21/55
H04L12/22
【請求項の数】 18
(21)【出願番号】P 2018133547
(22)【出願日】2018-07-13
(65)【公開番号】P2020014061
(43)【公開日】2020-01-23
【審査請求日】2020-10-12
(73)【特許権者】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(74)【代理人】
【識別番号】100145838
【弁理士】
【氏名又は名称】畑添 隆人
(74)【代理人】
【識別番号】100103137
【弁理士】
【氏名又は名称】稲葉 滋
(72)【発明者】
【氏名】寺田 成吾
(72)【発明者】
【氏名】道根 慶治
(72)【発明者】
【氏名】小林 峻
【審査官】中川 幸洋
(56)【参考文献】
【文献】国際公開第2017/061469(WO,A1)
【文献】特開2017-059964(JP,A)
【文献】小川 秀貴、ほか,リクエスト間隔とレスポンスのボディサイズに基づくマルウェア感染由来のHTTPトラフィック検知,コンピュータセキュリティシンポジウム2016論文集,情報処理学会,2016年10月04日,pp. 408 - 415
【文献】石井 将大、ほか,エントロピーを特徴として用いた初期潜入段階におけるRATの通信検知,電子情報通信学会論文誌 B,Vol.J101-B No.3,2018年03月01日,pp.220-232
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/66
G06F 21/55
H04L 12/22
(57)【特許請求の範囲】
【請求項1】
ネットワークに接続された端末による通信データを取得する通信データ取得手段と、
取得された前記通信データに係る通信に含まれる特徴を抽出する特徴抽出手段と、
抽出された特徴を用いて、同一の通信先に係る複数の通信を比較し、該複数の通信間の類似度を算出する類似度算出手段と、
同一の通信先に係る、類似度が所定以上の通信が所定数以上検出された場合に、取得された前記通信データに基づいて、同一の通信先に係る複数の通信の属性情報の分布を算出する分布算出手段と、
算出された前記分布が所定の基準を満たすか否かを判定することで、検出された通信が所定の種類のソフトウェアによる通信であるか否かを推定する推定手段と、
を備える情報処理装置。
【請求項2】
前記分布算出手段は、前記属性情報の分布として、通信に係るタイミングの規則性、及び通信に係るデータサイズの偏り、の少なくとも何れかを算出し、
前記推定手段は、前記分布算出手段による処理の結果を参照して、所定以上の規則性を有するか、又は偏りが所定以上であるかを判定することで、検出された通信が所定の種類のソフトウェアによる通信であるか否かを推定する、
請求項1に記載の情報処理装置。
【請求項3】
前記分布算出手段は、前記複数の通信のうち、通信に係るタイミング又はデータサイズが所定の範囲の外にある通信を除いた通信について、前記属性情報の分布を算出する、
請求項2に記載の情報処理装置。
【請求項4】
前記分布算出手段は、単一の宛先へのデータのリクエスト送信タイミングについて、前記分布を算出する、
請求項3に記載の情報処理装置。
【請求項5】
前記分布算出手段は、前記複数の通信がHTTP通信である場合に、単一の宛先へのGETメソッド又はPOST/PUTメソッドに係るリクエスト送信タイミングについて、前記分布を算出する、
請求項4に記載の情報処理装置。
【請求項6】
前記分布算出手段は、前記複数の通信がSSL/TLS通信である場合に、単一の宛先へのClientHelloメッセージと該ClientHelloメッセージの直後のClientHelloメッセージとの間隔について、前記分布を算出する、
請求項4に記載の情報処理装置。
【請求項7】
前記分布算出手段は、単一の宛先へのレスポンスに係るデータ長について、前記分布を算出する、
請求項3に記載の情報処理装置。
【請求項8】
前記分布算出手段は、実行ファイルのダウンロードを除くレスポンスにおけるヘッダー部を除くデータ長について、単一の宛先へのGETメソッド又はPOST/PUTメソッド毎に、前記分布を算出する、
請求項7に記載の情報処理装置。
【請求項9】
前記分布算出手段は、所定サイズ以上のレスポンスを除く、単一の宛先へのレスポンスに係るデータ長について、前記分布を算出する、
請求項7に記載の情報処理装置。
【請求項10】
前記特徴抽出手段は、取得された前記通信データに係る通信に含まれる要素毎に特徴を抽出し、
前記類似度算出手段は、前記要素毎に前記複数の通信間の要素類似度を算出し、算出された要素類似度を該要素毎に重み付けすることで、前記複数の通信間の総合類似度を算出する、
請求項1から9のいずれか一項に記載の情報処理装置。
【請求項11】
前記類似度算出手段は、前記要素に係る特徴の共通度又は前記要素に係る特徴の組み合わせ間の距離に基づいて、要素類似度を算出する、
請求項10に記載の情報処理装置。
【請求項12】
前記特徴抽出手段は、前記複数の通信に含まれるリクエストヘッダーの並び順についての特徴を抽出し、
前記類似度算出手段は、前記リクエストヘッダーの並び順についての要素類似度を算出する、
請求項10又は11に記載の情報処理装置。
【請求項13】
前記類似度算出手段は、前記推定手段によって前記所定の種類のソフトウェアによる通信であると推定された第一の通信と、前記ネットワークに接続された端末のうち該第一の通信を行った端末とは異なる第二の端末による第二の通信と、の類似度を更に算出し、
前記推定手段は、前記類似度算出手段によって算出された、前記第一の通信と前記第二の通信との類似度が所定以上である場合に、前記第二の端末を、前記第一の通信に係るソフトウェアと同じグループに属するソフトウェアが動作する端末であると推定する、
請求項1から12の何れか一項に記載の情報処理装置。
【請求項14】
前記推定手段は、当該情報処理装置によって管理される端末の数に対して、前記第一の通信に対する類似度が所定以上である通信を行なう端末の数が占める割合が所定割合以上である場合、前記第一の通信が、前記所定の種類のソフトウェアによる通信であるとの推定を取り消す、
請求項13に記載の情報処理装置。
【請求項15】
前記類似度算出手段は、前記推定手段によって前記所定の種類のソフトウェアによる通信であると推定された第一の通信と、既知のソフトウェアによる既知の通信と、の類似度を更に算出し、
前記推定手段は、前記類似度算出手段によって算出された、前記第一の通信と前記既知の通信との類似度が所定以上である場合に、前記第一の通信を、前記既知のソフトウェアと同じグループに属するソフトウェアによる通信であると推定する、
請求項1から14の何れか一項に記載の情報処理装置。
【請求項16】
前記推定手段は、算出された前記分布が、マルウェア通信における所定のフェーズについて用意された判定基準を満たすか否かを判定することで、検出された通信がマルウェアによる該所定のフェーズの通信であるか否かを推定する、
請求項1から15の何れか一項に記載の情報処理装置。
【請求項17】
コンピューターが、
ネットワークに接続された端末による通信データを取得する通信データ取得ステップと、
取得された前記通信データに係る通信に含まれる特徴を抽出する特徴抽出ステップと、
抽出された特徴を用いて、同一の通信先に係る複数の通信を比較し、該複数の通信間の類似度を算出する類似度算出ステップと、
同一の通信先に係る、類似度が所定以上の通信が所定数以上検出された場合に、取得された前記通信データに基づいて、同一の通信先に係る複数の通信の属性情報の分布を算出する分布算出ステップと、
算出された前記分布が所定の基準を満たすか否かを判定することで、検出された通信が所定の種類のソフトウェアによる通信であるか否かを推定する推定ステップと、
を実行する通信検査方法。
【請求項18】
コンピューターを、
ネットワークに接続された端末による通信データを取得する通信データ取得手段と、
取得された前記通信データに係る通信に含まれる特徴を抽出する特徴抽出手段と、
抽出された特徴を用いて、同一の通信先に係る複数の通信を比較し、該複数の通信間の類似度を算出する類似度算出手段と、
同一の通信先に係る、類似度が所定以上の通信が所定数以上検出された場合に、取得された前記通信データに基づいて、同一の通信先に係る複数の通信の属性情報の分布を算出する分布算出手段と、
算出された前記分布が所定の基準を満たすか否かを判定することで、検出された通信が所定の種類のソフトウェアによる通信であるか否かを推定する推定手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワーク上の通信を検査する技術に関する。
【背景技術】
【0002】
従来、複数の観測点で収集されたアクセスデータを、検知対象アクセス元毎に分類し、検知対象アクセス元毎のネットワーク的特徴量を生成して、アクセス元検知部が、ネットワーク的特徴量を基に、所定の連続アクセスを行なっているアクセス元を検知し、点的特徴量生成部が、単一の観測点で収集されたアクセスデータ毎の特徴量である検知対象点的特徴量と、アクセス元検知部によって検知されたアクセス元のアクセスデータ毎の特徴量である教師点的特徴量と、を生成して、アクセス検知部が、検知対象点的特徴量の教師点的特徴量との類似度が所定値以上であるアクセスデータを、所定の連続アクセスによるアクセスデータとして検知する技術が提案されている(特許文献1を参照)。
【0003】
また、電子証明書を検査することで不正な証明書を利用したマルウェアの通信を検出する技術(特許文献2を参照)や、C&C通信の特徴としてbag-of-words(単語の頻出度)によるHTTP(Hypertext Transfer Protocol)ヘッダーの種類の頻出度を利用すること(非特許文献1を参照)が提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開2017/145843号
【文献】特開2017-98876号公報
【非特許文献】
【0005】
【文献】Hideki Ogawa他、「Malware originated HTTP traffic detection utilizing cluster appearance ratio」、International Conference on Information Networking(ICOIN)、2017年1月11日
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来、所定の種類のソフトウェア(例えば、マルウェア)による通信を検出するために、シグネチャ照合によってシステムへの脅威を検知する技術や、ネットワーク上の端末等の振る舞いの怪しさを判定することで、システムへの脅威を検知する技術が用いられている。しかし、近年では、例えば、ブラウザの通信を偽装したHTTPベースのC&C通信や、正当なSSLサーバ証明書を使用したSSL/TLS(Secure Socket Layer/Transport Layer Security)ベースのC&C通信を行なうマルウェア等が急速に増加し、マルウェアが行なう通信が巧妙に正常な通信(例えば、通常の業務通信)を偽装するようになっている。このため、上記した従来の検出技術では、業務通信とマルウェア通信とを見分けることは困難である。
【0007】
本開示は、上記した問題に鑑み、所定の種類のソフトウェアによる、正常な通信に偽装した通信を検出することを課題とする。
【課題を解決するための手段】
【0008】
本開示の一例は、ネットワークに接続された端末による通信データを取得する通信データ取得手段と、取得された前記通信データに基づいて、同一の通信先に係る複数の通信の属性情報の分布を算出する分布算出手段と、算出された前記分布が所定の基準を満たすか否かを判定することで、検出された通信が所定の種類のソフトウェアによる通信であるか否かを推定する推定手段と、を備える情報処理装置である。
【0009】
本開示は、情報処理装置、システム、コンピューターによって実行される方法またはコンピューターに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピューターその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的または化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。
【発明の効果】
【0010】
本開示によれば、所定の種類のソフトウェアによる、正常な通信に偽装した通信を検出することが可能となる。
【図面の簡単な説明】
【0011】
図1】実施形態に係るシステムの構成を示す概略図である。
図2】実施形態に係るネットワーク監視装置および管理サーバーのハードウェア構成を示す図である。
図3】実施形態に係る管理サーバーの機能構成の概略を示す図である。
図4】実施形態に係る通信検査処理の流れの概要を示すフローチャートである。
図5】実施形態に係るC&C通信検出処理(HTTP)の流れの概要を示すフローチャートである。
図6】実施形態に係るC&C通信検出処理(SSL/TLS)の流れの概要を示すフローチャートである。
図7】実施形態に係る感染範囲推定処理(HTTP)の流れの概要を示すフローチャートである。
図8】実施形態に係るマルウェア・ファミリー推定処理(HTTP)の流れの概要を示すフローチャートである。
図9】実施形態に係るシステムの構成のバリエーションを示す概略図である。
【発明を実施するための形態】
【0012】
以下、本開示に係る情報処理装置、通信検査方法及びプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、通信検査方法及びプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【0013】
本実施形態では、本開示に係る情報処理装置、通信検査方法及びプログラムを、ネットワーク上での不正な活動を発見し、通信遮断やアラート通知等の対処を行うためのシステムにおいて実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、通信検査方法及びプログラムは、ネットワーク上の通信を検査するために広く用いることが可能であり、本開示の適用対象は、本実施形態において示した例に限定されない。
【0014】
<システムの構成>
図1は、本実施形態に係るシステム1の構成を示す概略図である。本実施形態に係るシステム1は、複数の情報処理端末90(以下、「ノード90」と称する)が接続されるネットワークセグメント2と、ノード90に係る通信を監視するためのネットワーク監視装置20(通信監視装置)と、ルータ10を介してネットワークセグメント2と通信可能に接続された管理サーバー50と、を備える。
【0015】
本実施形態において、ネットワーク監視装置20は、スイッチまたはルータ(図1に示した例では、ルータ)のモニタリングポート(ミラーポート)に接続されることで、ノード90によって送受信されるパケットやフレーム等の通信データを取得し、取得した通信データを管理サーバー50に送信する。この場合、ネットワーク監視装置20は、取得したパケットを転送しないパッシブモードで動作してもよい。
【0016】
管理サーバー50は、ネットワーク監視装置20から情報を収集し、ネットワーク監視装置20を管理する。なお、外部ネットワークには、更に検疫サーバーが設けられ、ネットワークセグメント2に接続されたノード90に対して検疫サービスを提供してもよいし、業務サーバーが設けられ、ノード90に対して業務のためのサービスを提供してもよい(図示は省略する)。
【0017】
本実施形態に係るシステム1では、ノード90から接続される各種サーバーは、インターネットや広域ネットワークを介して遠隔地において接続されたものであり、例えばASP(Application Service Provider)によって提供されるが、これらのサーバーは、必ずしも遠隔地に接続されたものである必要はない。例えば、これらのサーバーは、ノード90やネットワーク監視装置20が存在するローカルネットワーク上に接続されていてもよい。
【0018】
図2は、本実施形態に係るネットワーク監視装置20および管理サーバー50のハードウェア構成を示す図である。なお、図2においては、ネットワーク監視装置20および管理サーバー50以外の構成(ルータ10、ノード90等)については、図示を省略している。ネットワーク監視装置20および管理サーバー50は、それぞれ、CPU(Central Processing Unit)11a、11b、RAM(Random Access Memory)13a、13b、ROM(Read Only Memory)12a、12b、EEPROM(Electrically Erasable and Programmable Read Only Memory)やHDD(Hard Disk Drive)等の記憶装置14a、14b、NIC(Network Interface Card)15a、15b等の通信ユニット、等を備えるコンピューターである。
【0019】
図3は、本実施形態に係る管理サーバー50の機能構成の概略を示す図である。管理サーバー50は、記憶装置14bに記録されているプログラムが、RAM13bに読み出され、CPU11bによって実行されて、管理サーバー50に備えられた各ハードウェアが制御されることで、通信データ取得部21、特徴抽出部22、類似度算出部23、分布算出部24及び推定部25を備える情報処理装置として機能する。なお、本実施形態及び後述する他の実施形態では、管理サーバー50の備える各機能は、汎用プロセッサであるCPU11bによって実行されるが、これらの機能の一部または全部は、1または複数の専用プロセッサによって実行されてもよい。
【0020】
また、本実施形態では、本開示に係る情報処理装置が管理サーバー50として実施される例について説明したが、本開示に係る情報処理装置が備える上記各機能の一部又は全部は、ネットワーク監視装置20に備えられていてもよい。上記各機能の一部又は全部がネットワーク監視装置20に備えられる場合には、ネットワーク監視装置20は、記憶装置14aに記録されているプログラムが、RAM13aに読み出され、CPU11aによって実行されて、上記各機能の一部又は全部を備える情報処理装置として機能する。
【0021】
通信データ取得部21は、監視対象ネットワークに設置されたネットワーク監視装置20によってキャプチャされ、管理サーバー50宛に送信された通信データを取得する。この通信データは、監視対象ネットワークに接続されたノード90による通信の通信データである。
【0022】
特徴抽出部22は、通信データ取得部21によって取得された通信データから、通信に含まれる要素(判別ポイント)毎に、予め設定された特徴抽出方法を用いて特徴を抽出することで、対象通信の特徴データを生成する。なお、抽出される特徴は、例えば、HTTP通信の場合は、リクエストヘッダーの内容等、SSL/TLS(HTTPS)通信の場合はトランザクションのハンドシェイクに含まれるパラメタ値等である。なお、本実施形態において、特徴抽出部22は、複数の通信に含まれるリクエストヘッダーの並び順についても、通信の特徴として抽出する。
【0023】
類似度算出部23は、通信に含まれる要素毎に、対象通信について抽出された特徴データと、他の通信の特徴データとを比較して要素類似度を算出する。要素類似度の算出方法には、要素のパラメータの種類毎に適切な類似度算出手法が採用されることが好ましい。具体的には、類似度算出部23は、要素に係る特徴の共通度(例えば、Jacarrd係数)や、要素に係る特徴の組み合わせ間の距離(例えば、Damerau-Levenshtein距離)等に基づいて、要素類似度を算出する。但し、要素類似度の算出には、その他の距離・類似度法が用いられてもよい。
【0024】
また、類似度算出部23は、算出された各要素類似度を、要素毎に重み付けすることで、通信間の総合類似度を算出する。但し、総合類似度は、要素類似度に、要素毎に与えられる重みを反映して算出されたものであればよく、本実施形態において説明した例に限定されない。また、総合類似度は、単一の指標で表現されるものに限定されず、複数の指標の組み合わせによって表現されるものであってもよい。
【0025】
分布算出部24は、同一の通信先に係る、類似度が所定以上の通信が所定数以上検出された場合に、取得された通信データに基づいて、同一の通信先に係る複数の通信の属性情報の分布を算出する。ここで、分布算出部24は、属性情報の分布として、通信に係るタイミングの規則性(例えば、単一の宛先へのデータのリクエスト送信間隔)、及び通信に係るデータサイズ(例えば、単一の宛先へのレスポンスに係るデータ長)の偏り、の少なくとも何れかを算出する。
【0026】
また、本実施形態において、分布算出部24は、複数の通信のうち、通信に係るタイミング又はデータサイズが所定の範囲の外にある通信を除いた通信について、属性情報の分布を算出する。これは、通信のタイミングやデータサイズにおいて、所定の種類の通信であるか否かを判定するにあたってノイズ(ゴミ)となる外れ値を除外するための処理である。
【0027】
なお、本開示では、複数の通信の属性情報の分布の例として、通信に係るタイミングの規則性、及び通信に係るデータサイズの偏り、を挙げているが、分布の算出対象となる属性情報は、本開示における例示に限定されない。算出される分布が、複数の通信の関連性を推定するために有用な属性情報に係るものであれば、その他の属性情報が、分布算出の対象とされてもよい。
【0028】
推定部25は、分布算出部24による処理の結果を参照して、算出された分布が所定の基準を満たすか否か(例えば、所定以上の規則性を有するか、又は偏りが所定以上であるか)を判定することで、検出された通信がマルウェアによる通信であるか否かを推定する。本実施形態では、特に、推定部25は、算出された分布が、マルウェア通信におけるC&C通信フェーズについて用意された判定基準を満たすか否かを判定することで、検出された通信がマルウェアによるC&C通信フェーズの通信であるか否かを推定する。但し、検出対象となるマルウェア通信のフェーズは、C&C通信に限定されない。このような推定を行うことで、検出された通信及び端末を、マルウェア活動における何れかのフェーズに分類(マッピング)し、有効な対策を取るための補助とすることが出来る。
【0029】
更に、推定部25は、類似度算出部23によって算出された、第一の端末による第一の通信と第二の端末による第二の通信との類似度が所定以上である場合に、当該第二の端末を、第一の通信に係るソフトウェアと同じグループに属するソフトウェアが動作する端末であると推定する。このようにすることで、類似度が所定以上の通信を行う端末が同一ネットワーク上に存在する場合に、当該端末を、同一又は類似のマルウェアへの感染端末であると推定することが出来る。
【0030】
但し、監視対象ホストの総台数のうち所定割合以上による通信がマルウェア通信であると検出された場合、過検出である(マルウェアではない正常な業務ソフトウェアによる通信をマルウェアによる通信であると誤検出している)可能性が高い。このため、本実施形態において、推定部25は、当該情報処理装置によって管理される端末(監視対象ホスト)の数に対して、第一の通信に対する類似度が所定以上である通信を行なう端末の数が占める割合が所定割合(例えば、0.1%)以上である場合、第一の通信がマルウェアによる通信であるとの推定を取り消す。
【0031】
更に、推定部25は、類似度算出部23によって算出された、第一の通信と既知の通信との類似度が所定以上である場合に、第一の通信を、当該既知の通信を行うマルウェアと同じグループ(例えば、既知のマルウェア・ファミリー)に属するマルウェアによる通信であると推定する。
【0032】
<処理の流れ>
次に、本実施形態に係る管理サーバー50によって実行される処理の流れを説明する。なお、以下に説明する処理の具体的な内容および処理順序は、本開示を実施するための一例である。具体的な処理内容および処理順序は、本開示の実施の形態に応じて適宜選択されてよい。
【0033】
図4は、本実施形態に係る通信検査処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、ノード90による通信の通信データが、ネットワーク監視装置20によって取得され、管理サーバー50に入力されたことを契機として開始される。
【0034】
ステップS1からステップS3では、通信データが取得され、通信の特徴が抽出される。通信データ取得部21は、ネットワーク監視装置20によって取得されて、管理サーバー50宛に送信された、ノード90による通信データ(パケット)を取得(ステップS1)する。取得された通信データ(パケット)は組み立てられ(ステップS2)、特徴抽出部22は、取得された通信データから、通信に含まれる要素毎に特徴を抽出し、特徴データ(特徴量)を生成する(ステップS3)。特徴抽出処理の詳細については後述する。その後、処理はステップS4へ進む。
【0035】
ステップS4からステップS6では、取得された通信のプロトコル(本実施形態では、HTTP又はSSL/TLS)に応じたC&C通信検出処理が実行される。プロトコルに応じたC&C通信検出処理の詳細については、図5及び図6を参照して後述する。C&C通信検出処理でC&C通信が検出されなかった場合(ステップS7又はステップS8のNO)、本フローチャートに示された処理は終了する。一方、C&C通信が検出されると(ステップS7又はステップS8のYES)、処理はステップS9又はステップS10へ進む。
【0036】
ステップS9からステップS12では、取得された通信のプロトコルに応じた、感染範囲推定処理及びマルウェア・ファミリー推定処理が実行される。プロトコルに応じた感染範囲推定処理及びマルウェア・ファミリー推定処理の詳細については、図7及び図8を参照して後述する。その後、本フローチャートに示された処理は終了する。
【0037】
図5は、本実施形態に係るC&C通信検出処理(HTTP)の流れの概要を示すフローチャートである。本フローチャートは、図4のステップS5に示された処理の詳細を説明するものである。本フローチャートに示された処理は、新たなHTTP通信が受信される毎に実行される。
【0038】
ステップS101からステップS104では、受信された通信が分析の対象となる通信であるか否かが判定される。新たなHTTP通信(以下、「対象通信」と称する)のデータが取得されると、情報処理装置は、対象通信と同一の通信先に関して蓄積されている過去通信データを取得する(ステップS101)。ここで、新たに取得された対象通信が、対象通信と同一の通信先に関して蓄積されている過去通信データにおいて最初のGET又はPOST/PUT通信である場合(ステップS102のYES且つステップS103のYES)、情報処理装置は、当該通信データを1つ目の過去通信データXM0として記録し(ステップS104)、本フローチャートに示された処理は終了する。なお、本実施形態において、下付き文字「」はHTTP通信のメソッドを表す。また、新たに取得された対象通信が、対象通信と同一の通信先に関して蓄積されている過去通信データにおいて2番目以降のGET又はPOST/PUT通信である場合(ステップS102のYES且つステップS103のNO)、処理はステップS105へ進む。一方、対象通信がGET又はPOST/PUT通信でない場合(ステップS102のNO)、本フローチャートに示された処理は終了する。
【0039】
ステップS105では、類似度が算出される。類似度算出部23は、通信に含まれる要素毎に、対象通信について抽出された特徴データと、同一の通信先に係る複数の過去通信の特徴データとを比較して要素類似度を算出し、算出された各要素類似度を、要素毎に重み付けすることで、通信間の総合類似度を算出する。類似度の具体的な算出方法については、後述する。その後、処理はステップS106へ進む。
【0040】
ステップS106からステップS110では、類似度が所定以上の通信が所定数以上検出されたか否かが判定される。情報処理装置は、ステップS105で算出された類似度が、所定値δ以上であるか否かを判定する(ステップS106)。類似度が所定値δ未満である場合、情報処理装置は、対象通信と同一の通信先に関して蓄積されている過去通信データを削除し(ステップS107)、本フローチャートに示された処理は終了する。一方、類似度が所定値δ以上である場合、類似する通信データの累積数Nが1加算され(ステップS108)、類似する通信データの累積数Nが、分布分析に適した所定数σに達したか否かが判定される(ステップS109)。累積数Nが所定数σに達していない場合、対象通信のデータは過去通信データとして蓄積され(ステップS110)、本フローチャートに示された処理は終了する。一方、累積数Nが所定数σに達した場合、処理はステップS111へ進む。
【0041】
ステップS111及びステップS112では、通信タイミングの規則性(例えば、周期性)が分析される。分布算出部24は、複数の通信がHTTP通信である場合に、単一の宛先へのGETメソッド又はPOST/PUTメソッドに係るリクエスト送信タイミングについて、分布(ここでは、通信タイミングの規則性)を算出する(ステップS111)。規則性の具体的な分析方法については、後述する。
【0042】
推定部25は、分析の結果算出された規則性RoIを、C&C通信であると推定可能な規則性の有無を判定するための閾値ρと比較する(ステップS112)。比較の結果、規則性RoIが閾値ρ未満である場合、蓄積された通信のタイミングにC&C通信であると推定可能な規則性はないと判定され、処理はステップS107へ進む。一方、比較の結果、規則性RoIが閾値ρ以上である場合、蓄積された通信のタイミングにC&C通信であると推定可能な規則性があると判定され、処理はステップS113へ進む。
【0043】
ステップS113及びステップS114では、通信のデータサイズの偏りが分析される。分布算出部24は、複数の通信がHTTP通信である場合、実行ファイルのダウンロードを除くレスポンスにおけるヘッダー部を除くデータ長について、単一の宛先へのGETメソッド又はPOST/PUTメソッド毎に分布(ここでは、通信のデータサイズの偏り)を算出する(ステップS113)。データサイズの偏りの具体的な分析方法については、後述する。
【0044】
推定部25は、分析の結果算出された偏りBoRを、C&C通信であると推定可能な偏りの有無を判定するための閾値μと比較する(ステップS114)。比較の結果、偏りBoRが閾値μ未満である場合、蓄積された通信のデータサイズにC&C通信であると推定可能な偏りはないと判定され、処理はステップS107へ進む。一方、比較の結果、偏りBoRが閾値μ以上である場合、蓄積された通信のデータサイズにC&C通信であると推定可能な偏りがあると判定され、処理はステップS115へ進む。
【0045】
ステップS115では、対象通信がC&C通信であると推定される。ステップS111からステップS114までの処理において、閾値ρ以上の規則性RoIが有り、且つ閾値μ以上の偏りBoRが有ると判定された場合、推定部25は、対象通信を、C&C通信であると推定し、対象通信を行なっている端末をC&C通信フェーズで活動するマルウェアに感染した端末として分類(マッピング)する。その後、本フローチャートに示された処理は終了する。
【0046】
図6は、本実施形態に係るC&C通信検出処理(SSL/TLS)の流れの概要を示すフローチャートである。本フローチャートは、図4のステップS6に示された処理の詳細を説明するものである。本フローチャートに示された処理は、新たなSSL/TLS通信が受信される毎に実行される。
【0047】
ステップS201からステップS206では、受信された通信が分析の対象となる通信であるか否かが判定される。新たなSSL/TLS通信(以下、「対象通信」と称する)のデータが取得されると、情報処理装置は、対象通信と同一の通信先に関して蓄積されている過去通信データを取得する(ステップS201)。ここで、新たに取得された対象通信が、ClientHelloメッセージであるがブラウザによる通信である場合(ステップS202のYES且つステップS203のYES)、情報処理装置は、当該通信に係るトランザクションを検査対象から除外する(ステップS204)。一方、対象通信が、ClientHelloメッセージであり且つブラウザによる通信でない場合(ステップS202のYES且つステップS203のNO)、情報処理装置は、当該通信に係るトランザクションを、ClientHelloメッセージ受信済みのトランザクションとして記録する(ステップS205)。その後、本フローチャートに示された処理は終了し、次のSSL/TLS通信の受信が待たれる。
【0048】
対象通信が、ServerHelloメッセージであり且つClientHelloメッセージ受信済みのトランザクションに係るものである場合(ステップS202のNO且つステップS206のYES)、処理はステップS207へ進む。その他の場合、本フローチャートに示された処理は終了する。
【0049】
ステップS207からステップS209では、ClientHelloメッセージ及びServerHelloメッセージを受信済みの分布分析対象トランザクションが所定数以上検出されたか否かが判定される。ここでは、分布分析対象トランザクションの累積数NCHが1加算され(ステップS207)、分布分析対象トランザクションの累積数NCHが、分布分析に適した所定数σに達したか否かが判定される(ステップS208)。なお、本実施形態において、下付き文字「CH」はSSL/TLS通信のClientHelloを表す。累積数NCHが所定数σに達していない場合、対象通信のデータは過去通信データとして蓄積され(ステップS209)、本フローチャートに示された処理は終了する。一方、累積数NCHが所定数σに達した場合、処理はステップS210へ進む。
【0050】
ステップS210からステップS212では、通信タイミングの規則性(例えば、周期性)が分析される。分布算出部24は、複数の通信がSSL/TLS通信である場合に、単一の宛先へのClientHelloメッセージと当該ClientHelloメッセージの直後のClientHelloメッセージとの間隔について、分布(ここでは、通信タイミングの規則性)を算出する(ステップS210)。規則性の具体的な分析方法については、後述する。
【0051】
推定部25は、分析の結果算出された規則性RoIを、C&C通信であると推定可能な規則性の有無を判定するための閾値ρと比較する(ステップS211)。比較の結果、規則性RoIが閾値ρ未満である場合、蓄積された通信のタイミングにC&C通信であると推定可能な規則性はないと判定され、情報処理装置は、対象通信と同一の通信先に関して蓄積されている過去通信データを削除する(ステップS212)。その後、本フローチャートに示された処理は終了する。一方、比較の結果、規則性RoIが閾値ρ以上である場合、蓄積された通信のタイミングにC&C通信であると推定可能な規則性があると判定され、処理はステップS213へ進む。
【0052】
ステップS213及びステップS214では、通信のデータサイズの偏りが分析される。分布算出部24は、所定サイズ以上のレスポンスを除く、単一の宛先へのレスポンスに係るデータ長について、分布(ここでは、通信のデータサイズの偏り)を算出する(ステップS213)。なお、所定サイズ以上のレスポンスを除く理由は、所定サイズ以上のレスポンスは、実行ファイルのダウンロードである可能性があり、C&C通信の分布を分析する際にノイズとなるためである。サイズに基づいて実行ファイルのダウンロードを除外する方法は、本実施形態のように、SSL/TLS通信等の暗号通信でどのようなレスポンスであるか内容が見られない場合に特に有用である。データサイズの偏りの具体的な分析方法については、後述する。
【0053】
推定部25は、分析の結果算出された偏りBoRを、C&C通信であると推定可能な偏りの有無を判定するための閾値μと比較する(ステップS214)。比較の結果、偏りBoRが閾値μ未満である場合、蓄積された通信のデータサイズにC&C通信であると推定可能な偏りはないと判定され、処理はステップS212へ進む。一方、比較の結果、偏りBoRが閾値μ以上である場合、蓄積された通信のデータサイズにC&C通信であると推定可能な偏りがあると判定され、処理はステップS215へ進む。
【0054】
ステップS215では、対象通信がC&C通信であると推定される。ステップS210からステップS214までの処理において、閾値ρ以上の規則性RoIが有り、且つ閾値μ以上の偏りBoRが有ると判定された場合、推定部25は、対象通信を、C&C通信であると推定し、対象通信を行なっている端末をC&C通信フェーズで活動するマルウェアに感染した端末として分類(マッピング)する。その後、本フローチャートに示された処理は終了する。
【0055】
図7は、本実施形態に係る感染範囲推定処理(HTTP)の流れの概要を示すフローチャートである。本フローチャートは、図4のステップS9に示された処理の詳細を説明するものである。本フローチャートに示された処理は、前述したC&C通信検出処理で新たなHTTPのC&C通信が検出される毎に実行される。なお、以下に説明するフローチャートにおいて、新たにC&C通信が検出された端末を、「端末H」とする。
【0056】
ステップS301及びステップS302では、繰り返し処理の制御が行われる。情報処理装置は、処理対象の既知のC&CサーバーCC(H)を示すためのサーバーインデックスjに初期値1を設定する(ステップS301)。その後、サーバーインデックスjが既知のC&Cサーバー数を超えるまで(ステップS302)、ステップS302からステップS308の処理が繰り返し実行される。
【0057】
ステップS303及びステップS304では、類似度が算出される。情報処理装置は、既知のC&CサーバーCC(H)に関して蓄積されている過去通信データを取得する(ステップS303)。そして、類似度算出部23は、端末HiのC&C通信(推定部25によってマルウェアによる通信であると推定された第一の通信)と、既知のC&CサーバーCC(H)について記録されているC&C通信(第一の通信を行った端末とは異なる第二の端末による第二の通信)との類似度SIMTLS(Y(H),X(H))を算出する(ステップS304)。類似度の具体的な算出方法については、後述する。その後、処理はステップS305へ進む。
【0058】
ステップS305からステップS308では、新たにC&C通信が検出された端末Hに感染したマルウェアが、既知のC&CサーバーCC(H)のマルウェアと同種のマルウェアであるか否かが判定される。推定部25は、ステップS304で算出された類似度が、所定値∂より大であるか否かを判定する(ステップS305)。また、推定部25は、新たにC&C通信が検出された端末HのC&Cサーバーと既知のC&CサーバーCC(H)とが共通するか否かを判定する(ステップS306)。類似度が所定値∂より大であるか、又は端末HのC&Cサーバーと既知のC&CサーバーCC(H)とが共通する場合、推定部25は、端末Hを、既知のC&CサーバーCC(H)のマルウェアと同種のマルウェアに感染していると推定し、当該端末を感染端末候補として記録する(ステップS307)。その後、サーバーインデックスjに1加算され(ステップS308)、処理はステップS302へ戻る。
【0059】
ステップS302で、サーバーインデックスjが既知のC&Cサーバー数を超えたと判定されると、処理はステップS309へ進む。情報処理装置は、記録された感染端末候補を、画面に出力する等することで、ユーザーにマルウェアの推定感染範囲を通知する(ステップS309)。その後、本フローチャートに示された処理は終了する。
【0060】
なお、図4のステップS10に示された感染範囲推定処理(SSL/TLS)の流れは、前述したC&C通信検出処理で新たなSSL/TLSのC&C通信が検出される毎に実行される点、及び類似度評価の対象がHTTPリクエストトランザクションではなくSSL/TLSトランザクションである点を除いて、図7を用いて説明した感染範囲推定処理(HTTP)の流れと概略同様であるため、説明を省略する。また、具体的な類似度の算出方法については、後述する。
【0061】
図8は、本実施形態に係るマルウェア・ファミリー推定処理(HTTP)の流れの概要を示すフローチャートである。本フローチャートは、図4のステップS11に示された処理の詳細を説明するものである。本フローチャートに示された処理は、前述したC&C通信検出処理で新たなHTTPのC&C通信が検出される毎に実行される。また、本フローチャートに示された処理は、ユーザーによる、マルウェア・ファミリー推定の対象となるHTTP通信の選択及び推定処理開始の指示が受け付けられたことを契機として開始されてもよい。
【0062】
ステップS401及びステップS402では、マルウェア・ファミリー推定の対象となる通信と、マルウェア通信データベース(マルウェアによる通信データ及び/又はマルウェアによる通信データの特徴データが蓄積されている)に蓄積された複数のマルウェア通信夫々との類似度のうち、最大の類似度が取得される。類似度算出部23は、マルウェア・ファミリー推定の対象となる通信(推定部25によってマルウェアによる通信であると推定された第一の通信)と、マルウェア通信データベースに蓄積された複数の(例えば、全ての)マルウェア通信(既知のソフトウェアによる既知の通信)夫々との類似度を計算する(ステップS401)。具体的な類似度の算出方法については、後述する。そして、情報処理装置は、算出された、マルウェア・ファミリー推定の対象となる通信と、マルウェア通信データベースに蓄積された複数のマルウェア通信夫々との類似度のうち、最大の類似度を、類似度SIMHTTP(Y(β),X(α))として記録する(ステップS402)。その後、処理はステップS403へ進む。
【0063】
ステップS403からステップS407では、マルウェア・ファミリーが推定される。推定部25は、ステップS402で得られた最大の類似度SIMHTTPを、同種であると推定するための閾値A及び亜種であると推定するための閾値B(ここで、閾値A>閾値B)と比較することで(ステップS403及びステップS405)、マルウェア・ファミリー推定の対象となる通信に係るマルウェアが、最大の類似度SIMHTTPを有する既知のマルウェアの同種であるか、亜種であるか、又は別種であるかを推定する。具体的には、推定部25は、最大の類似度SIMHTTPが閾値Aより大である場合、対象通信のマルウェアが、最大の類似度SIMHTTPを有する既知のマルウェアの同種であると推定する(ステップS404)。また、推定部25は、最大の類似度SIMHTTPが閾値A以下であり且つ閾値Bより大である場合、対象通信のマルウェアが、最大の類似度SIMHTTPを有する既知のマルウェアの亜種であると推定する(ステップS406)。そして、推定部25は、最大の類似度SIMHTTPが閾値B以下である場合、対象通信のマルウェアが、最大の類似度SIMHTTPを有する既知のマルウェアと別種であると推定する(ステップS407)。情報処理装置は、推定結果を、画面に出力する等することで、ユーザーに通知してもよい。その後、本フローチャートに示された処理は終了する。
【0064】
なお、図4のステップS12に示されたマルウェア・ファミリー推定処理(SSL/TLS)の流れは、前述したC&C通信検出処理で新たなSSL/TLSのC&C通信が検出される毎に実行される点、ユーザーによる、マルウェア・ファミリー推定の対象となるSSL/TLS通信の選択及び推定処理開始の指示が受け付けられたことを契機として開始されてもよい点、及び類似度評価の対象がHTTPリクエストパケットではなくSSL/TLSトランザクションである点を除いて、図8を用いて説明したマルウェア・ファミリー推定処理(HTTP)の流れと概略同様であるため、説明を省略する。また、具体的な類似度の算出方法については、後述する。
【0065】
<HTTP通信の構造的な類似度>
ここで、対象通信がHTTP通信である場合の類似度の具体的な算出方法について説明する。本実施形態では、HTTP通信の場合、GETメソッド、POST/PUTメソッド毎にHTTPリクエストヘッダーの以下に示す要素について要素類似度を算出し、最終的な総合類似度SIM(X,Y)を算出する。ここで、X及びYはHTTPリクエストを示す。
【0066】
<<HTTPリクエストライン形式の類似度S>>
類似度算出部23は、リクエストラインを所定のルールで抽象化した集合Rで表し、ある2つのリクエストX、Yについて以下の式を用いることで、リクエストラインからメソッドを除いたURIとHTTPバージョンの類似度Sを算出する。なお、ここで、「Jac()」は、Jaccard係数の算出関数であり、集合に含まれる要素の共通度を表す。
Sr(X, Y) = Jac(RL(X), RL(Y))
【0067】
<<HTTPリクエストヘッダーの種類の類似度S>>
類似度算出部23は、リクエストヘッダー名を変換テーブルに従って変換することで、リクエストヘッダーの種類の集合H(X)を準備し、ある2つのリクエストX,Yについて以下の式を用いることで、リクエストヘッダーに含まれるリクエストヘッダーの種類の類似度Sを算出する。本実施形態において、不明なリクエストヘッダーは「未知のリクエストヘッダー」として扱うこととする。
Sn(X, Y) = Jac(Hn(X), Hn(Y))
【0068】
<<HTTPリクエストヘッダーの並びの類似度S>>
類似度算出部23は、リクエストヘッダー名を変換テーブルに従って変換することで、リクエストヘッダーの並びを抽象化した文字列H(X)を準備し、ある2つのリクエストX,Yについて、リクエストヘッダーに含まれるリクエストヘッダーの種類の並び順の類似度Sを算出する。本実施形態において、不明なリクエストヘッダーは「未知のリクエストヘッダー」として扱うこととする。ここで、「NDL()」は、標準化Damerau-Levenshtein距離であり、文字列の類似度を表す。|K|及び|L|は、文字列K及びLの長さ(文字数)を示す。
So(X, Y) = NDL(Ho(X), Ho(Y))
NDL(K, L) = 1.0 - DL(K, L) / max(|K|, |L|)
DL(K, L):K,LのDamerau-Levenshtein距離
【0069】
なお、本実施形態では、Proxy環境で利用されるヘッダー(例えば、「Forwarded」、「Max-Forwards」、「Proxy-Authorization」、「Via」、「Warning」、「X-Forwarded-For」等)が設定されている場合、そのヘッダーは無視される(設定されていないものと見做す)。また、リクエストヘッダーの名前は、大文字小文字を区別せずに判定して、リクエストヘッダー毎にあらかじめ設定された記号に置換される(例えば、「Accept:」は「A」に置換、「Content-Length:」は「L」に置換、等)。
【0070】
<<主要なリクエストヘッダーの値の類似度S>>
類似度算出部23は、主要なリクエストヘッダーの値を変換テーブルに従って変換することで抽象化した集合H(X)を準備し、ある2つのリクエストX,Yについて以下の式を用いることで、共通する主要なリクエストヘッダーに関して、主要なリクエストヘッダーに設定されている値をルールに従って抽象化したときの類似度Sを算出する。
Sv(X, Y) = Jac(Hv(X), Hv(Y))
【0071】
<<リクエストURIのクエリパラメタの類似度S>>
類似度算出部23は、リクエストラインのクエリ部のパラメタのkey値を抽出することで集合P(X)を準備し、ある2つのリクエストX,Yについて以下の式を用いることで、リクエストURIのクエリ部のパラメタ群の種類の類似度Sを算出する。
Sp(X, Y) = Jac(Pr(X), Pr(Y))
【0072】
<<HTTP通信の総合類似度SIMHTTP>>
そして、類似度算出部23は、算出された各類似度を要素類似度として要素毎に重み付け(重み係数:ω、ω、ω、ω、ω)し、合計することで、総合類似度SIMHTTP(X,Y)を算出する。なお、本実施形態において、総合類似度SIMHTTP(X,Y)は所定の範囲(例えば、0以上1.0以下)内の値に正規化される。
SIMHTTP(X, Y) = ωr・Sr(X, Y)+ωn・Sn(X, Y)+ωo・So(X, Y)+ωv・Sv(X, Y)+ωp・Sp(X, Y)
【0073】
<SSL/TLS通信の構造的な類似度>
次に、対象通信がSSL/TLS通信である場合の類似度の具体的な算出方法について説明する。本実施形態では、SSL/TLS通信の場合、「(TCPコネクションの確立)→SSL/TLSネゴシエーション→SSL/TLSセッション上でのデータ送受信→(TCPコネクションの解放)」の一連のトラフィックをSSL/TLSトランザクションと定義し、トランザクション毎の類似性を判定する。
【0074】
<<ClientHelloメッセージのフィンガープリントの類似度TSCHFP>>
類似度算出部23は、SSL/TLSトランザクションSの開始時に送信されるClientHelloメッセージのフィンガープリントの類似度を算出することで、TLSのバージョンや暗号化アルゴリズムのリスト等を比較する。これは、様々なマルウェアが送信するClientHelloメッセージのプロトコル要素には微妙に差異があり、ClientHelloメッセージのプロトコル要素は、マルウェアを特定するための特徴量の一つになるためである。具体的には、本実施形態では、SSL/TLSトランザクションSとTの開始時に送信されるClientHelloメッセージの類似度TSchfp(S,T)を、フィンガープリントが一致する場合には「1」を出力し、フィンガープリントが異なる場合には「0」を出力する二値関数を用いて算出する。
【0075】
<<ClientHelloのSNIの類似度TSCSNI>>
類似度算出部23は、SSL/TLSトランザクションSの開始時に送信されるClientHelloメッセージのSNI(サーバー名)の類似度を算出する。具体的には、本実施形態では、ClientHelloのSNIの類似度TSCSNI(S,T)を、SSL/TLSトランザクションSとTのSNIが一致し且つトランザクションSのSNIがNULLでない場合には「1」を出力し、それ以外の場合には「0」を出力する二値関数を用いて算出する。
【0076】
<<リクエストサイズのパターン数の類似度TSNOSP>>
類似度算出部23は、SSL/TLSトランザクションSi(i=1...)とトランザクションTj(j=1...)のリクエストサイズのパターン数の類似度TSnosp(S,T)を、以下に説明する分類によってトランザクションSi(i=1...)が分類されたクラスの数とトランザクションTj(j=1...)が分類されたクラスの数とが一致する場合には「1」を出力し、それ以外の場合には「0」を出力する二値関数で定義する。
【0077】
ここで、トランザクションの分類は、具体的には、例えば以下の手順で、同一のクライアントとサーバ間で送受信される複数のSSL/TLSトランザクションSj(j=1..)を対象に、クライアントからサーバに向けて送信される最初のリクエストパケットのサイズの傾向を分析することで行われる。
・15個のSSL/TLSトランザクションSj(j=1..15)に対して、SSL/TLSネゴシエーション完了後、クライアントからサーバ向けに送信される最初のApplicationDataのデータ長Rjを計測する。ここで、計測したデータ長の集合をReqSize={R1,R2,R3,...R14,R15}とする。
・データ長の集合ReqSizeを近似値(±10%)でn個の互いに素なクラスCnに分類する。
・上記の手順で求めた互いに素なクラスCnのうち、|Cn|≧3を満たすクラスCnの個数mをリクエストサイズのパターン数NoSP(Number of request Size Patterns)と定義する。ここで、|Cn|≧3を満たすクラスのみに限定しているのは、偶然発生したクラスを除外するためである。
・上記のm個のクラスCk(k=1..m)に属すデータ長Rjの平均値Avg(Ck)の集合をパターンの平均リクエストサイズAoSP(Average of request Size Patterns)と定義する。
【0078】
一般に、マルウェアが送信するリクエストパケットの形式は固定化(=リクエストサイズが固定)されていることが多い。したがって、NoSP(S)の値は、リクエスト形式の種類(GET、POST/PUTなど)に対応するため、マルウェアを特定するための特徴量の一つになる。例えば、HTTPSベースのマルウェアがNoSP(S)=2の場合、GETとPOST/PUTメソッドの両方を使用している可能性が高いと推定できる。
【0079】
<<送信間隔の周期数の類似度TSNOIC>>
類似度算出部23は、SSL/TLSトランザクションSi(i=1...)とトランザクションTj(j=1...)の開始時に送信されるClientHelloメッセージの送信間隔の周期数の類似度TSnoic(S,T)を、送信間隔の周期数NoIC(Number of Interval Cycles)が一致する場合には「1」を出力し、それ以外の場合には「0」を出力する二値関数で定義する。
【0080】
ここで、トランザクションの分類は、具体的には、例えば以下の手順で、同一のクライアントとサーバ間で送受信される複数のSSL/TLSトランザクションSj(j=1..)を対象に、個々のClientHelloメッセージが送信される送信間隔の周期数の類似度を分析することで行われる。
・下記の条件を満たすClientHelloメッセージの送信間隔のクラスCnの個数を送信間隔の周期数NoICと定義する。なお、下記の条件を満たす送信間隔のクラスCnに属する値の平均値<Cn>が個々の周期値を示す。
NoIC(S) = |{Cn | RoIS(Cn)=|Tol(Cn)|/ |Cn|≧ρ,|Cn|≧4}|
【0081】
一般に、マルウェアの送信間隔の周期数は、1であるが、周期数が2や3のマルウェアも存在するため、周期数は、マルウェアを特定するための特徴量の一つになる。
【0082】
<<SSLサーバ証明書のタイプの類似度TSCTYP>>
類似度算出部23は、SSL/TLSトランザクションS及びトランザクションTに含まれる、各々のサーバから送信されるCertificateメッセージに含まれるSSLサーバ証明書のタイプの類似度TSctyp(S,T)を、CertificateメッセージのSSLサーバ証明書のタイプCertType(S)とCertType(T)とが一致する場合には「1」を出力し、それ以外の場合には「0」を出力する二値関数で定義する。具体的には、類似度算出部23は、サーバから送信されるCertificateメッセージのSSLサーバ証明書のタイプ(正当なCA証明書、自己署名証明書、証明書無し、等)の一致性を比較する。攻撃者は、攻撃基盤を構築するにあたり、複数台のC&Cサーバ(または、C&C中継サーバ)を配置するケースが多いが、殆どのケースで同じタイプのSSLサーバ証明書が使用されていることから、C&Cサーバに対応するマルウェアを特定するための特徴量の一つになる。
【0083】
<<SSL/TLS通信の総合類似度SIMTLS>>
そして、類似度算出部23は、算出された各類似度を要素類似度として要素毎に重み付け(重み係数:ω、ω、ω、ω、ω)し、合計することで、総合類似度SIMTLS(X,Y)を算出する。なお、本実施形態において、総合類似度SIMTLS(X,Y)は所定の範囲内の値に正規化される。
SIMTLS(X, Y) = ω1・TSchfp(X, Y)+ω2・TScsni(X, Y)+ω3・TSnosp(X, Y)+ω4・TSnoic(X, Y)+ω5・TSctyp(X, Y)
【0084】
<通信タイミングの規則性>
本実施形態では、上記フローチャートで説明した通り、ネットワーク上で送受信されるリクエスト通信が集められ、この際、送受信された通信について、通信のタイミング(本実施形態では、送信間隔)が記録される。具体的には、HTTP通信の場合、ある宛先Dstに対するHTTPリクエストのGETメソッドまたはPOST/PUTメソッドそれぞれについて、リクエスト送信間隔が求められ、記録される。又、SSL/TLS通信の場合、ある宛先Dstに対するClientHelloメッセージと直後のClientHelloメッセージの送信間隔が求められ、記録される。そして、以下に説明する方法で、通信タイミングの規則性が分析される。
【0085】
分布算出部24は、記録された送信間隔の集合について度数(頻度)分布を分析するために、送信間隔毎のクラス(度数を集計するための区間。C(n=1,2...)で示す)に分割し、規則性(RoI:Regularity of Interval)を算出する。ここで、度数は、クラスCに含まれる計測データの要素数であり、|C|(n=1,2...)で表される。そして、分布算出部24は、算出された規則性RoIに基づいて、送信間隔全体で規則性があるか否かを判定する。なお、本実施形態では、分析の対象とするデータの周期の最小値、最大値を閾値としてもち、外れたものを誤差(ごみ)として分析対象外とすることで、分析の精度を向上させることとしている。
【0086】
本実施形態では、以下の手順で、送信間隔(インターバル時間)の規則性RoIが算出される。本実施形態では、規則性RoIは、0から1の範囲の値で出力され、1に近いほど規則性があると判定される。
(1)パケットXとXi+1∈TR(TRはリクエストの集合)の送信間隔I(i=1~σ)をσ回計測して記録し、その送信間隔の集合を集合Intvlとする。
(2)送信間隔の集合Intvlのうち、I<250msを満たすIを、250msに置換する。(250ms未満の送信間隔は、遅延誤差範囲とみなし、一律、250msとする。)
(3)送信間隔の集合Intvlから、最大値Max(I)と最小値Min(I)を求め、クラス幅(区間)Kを決定する。ここで、クラス数N=1+3.322*log10M(但し、M:数値データの総数)とする。最終的なクラス幅(区間)Kは、小数点以下を四捨五入(整数値)して求められる。Kが1以下の場合は、K=1とする。
KC = (Max(Im)+Min(In))/NC
(4)送信間隔の集合Intvlに対して、クラス幅Kによって、クラス数NのクラスC(n=1~N)に等分割し、計測した送信間隔I∈Intvlを適切なクラスに振り分ける。なお、度数|C|≦1のCについては、(4)、(5)、(6)の計算は省略されてよい。
(5)クラスC(n=1~N)毎に、以下の値を計算する。
Avg(Cn) = ΣCn Ii /|Cn| :I∈Cに属する送信間隔の平均値(msec)
Inf(Cn) = Avg(Cn)*(1―θ) :Cに属する送信間隔の許容下限値(平均―許容誤差)(msec)
Sup(Cn) = Avg(Cn)*(1+θ) :Cに属する送信間隔の許容上限値(平均+許容誤差)(msec)
(6)クラスC(n=1~N)毎に、許容下限値Inf(C)と許容上限値Sup(C)の範囲内に存在する送信間隔Iの集合Tol(C)と、集合に含まれる送信間隔Iの要素数|Tol(C)|を求める。
Tol(Cn) = { Ii ∈ Cn | Inf(Cn) ≦ Ii ≦ Sup(Cn) , |Cn| > 0 } , n=1~NC
(7)送信間隔の規則性RoIを以下の式で定義する。但し、|C|<4のCは、評価対象から除外する。
RoI = min{RoI(Cn) | RoI(Cn)=|Tol(Cn)|/ |Cn| ,∀|Cn|≧4}, 0≦RoI≦1.0
【0087】
<通信データサイズの偏り>
本実施形態では、上記フローチャートで説明した通り、ネットワーク上で送受信されるリクエスト通信が集められ、この際、送受信された通信について、データサイズが記録される。具体的には、HTTP通信の場合、ある宛先Dstに対するHTTPレスポンスについて、GETメソッド、POST/PUTメソッド毎にヘッダー部を除いたデータ長が記録される。但し、レスポンスデータを検査することで、実行ファイルをDLしたと疑われる通信は除外される。また、SSL/TLS通信の場合、ある宛先Dstに対するSSL/TLSトランザクションのClientからServer向きのApplication Data(CtoS)をリクエストデータとし、その直後のServerからClient向きのApplication Data(StoC)をレスポンスデータとして、レスポンスデータそれぞれのLengthフィールド値の合算値が記録される。なお、本実施形態では、途中にApplication Dataメッセージ(CtoS)が割り込まない連続した一連のApplication Dataメッセージ(StoC)をレスポンスデータと見做し、そのLengthフィールド値の合算値をレスポンスデータ長とするが、レスポンスデータ長が65536(64K)バイト以上である場合は、当該レスポンスをバイナリファイルのダウンロードであると見做して、当該SSL/TLSトランザクションを無視(計測対象外)する。そして、以下に説明する方法で、通信データサイズの偏りが分析される。
【0088】
本実施形態では、分布算出部24は、以下の手順で、記録されたレスポンスデータ長の集合の平均値を算出し、平均から大きく外れるデータ長を受信している数を求め、その数の大小で通信データサイズの偏りBoRを算出する。本実施形態では、偏りBoRは、0から1の範囲の値で出力され、1に近いほどデータ長に偏りがあると判定される。
(1)リクエストパケットX∈TR(TRはリクエストの集合)に対応するレスポンスパケットのデータバイト長RL(X)(i=1~δ)をδ回(例えば、σ+1回)計測して記録し、そのレスポンスデータ長の集合を集合RLとする。
(2)レスポンスデータ長の集合RLに対する上限閾値SRLを求める。
SRL= (Σi RL(Xi)/δ)*1.2 , RL(Xi)∈RL: SRL=平均データバイト長×1.2
(3)リクエストパケットXに対応するレスポンスパケットのデータバイト長が上限閾値SRLを下回るリクエストパケットXの集合TRSRLと、集合に含まれる要素数|TRSRL|を求める。
TRSRL = { Xi∈TR | RL(Xi) < SRL , RL(Xi)∈RL}
(4)レスポンスデータ長の偏りの度合いBoRを以下の式で定義する。
BoR = |TRSRL| / δ , 0<BoR≦1.0
【0089】
<C&C通信の検出>
次に、C&C通信の検出の流れを説明する。
【0090】
<<HTTPにおけるC&C通信の検出>>
HTTPを使用する個々のマルウェアのC&C通信は、以下の特徴を有する。
(1)同一のC&Cサーバ(宛先)に対して送受信されるHTTPリクエスト群のURI形式やリクエストヘッダーの構成と形式は、メソッド毎に極めて類似している。即ち、正当なアプリケーションの通信に見られるような、複数の異なる形式のURIやリクエストヘッダーをもつHTTPリクエスト群が使用されることは、ほぼ無い。これは、マルウェアと攻撃者間の単純な情報交換だけが目的であることに起因している。
(2)同一のC&Cサーバ(宛先)に対して送受信されるHTTPリクエストの代表的なリクエストヘッダーの値には、固定値が使用されることが多い。但し、User-Agent,Cookie,拡張/独自ヘッダーの値を使用して、C&Cサーバに情報を伝達するマルウェアも存在する。
(3)同一のC&Cサーバ(宛先)に対して送信されるHTTPリクエストの送信間隔(インターバル時間)は、メソッド毎に規則性(例えば、周期性)を有する。即ち、正当なアプリケーションの通信に比べ、C&C通信の送信間隔は、規則性の度合いが高い。特に、この傾向は、C&Cサーバへのチェックイン直後やビーコンパケット(C&Cサーバへの指令問合せパケット)において顕著に見られる。
(4)C&Cサーバから送信されるデータ(レスポンスデータ)は、バイナリ(実行ファイルのダウンロードフェーズ:マルウェアの更新、新規のマルウェア、各種ツール類)を除くと、マルウェアに対する構成定義情報(データ量:中~大)及び指令(データ量:小)である。このうち、構成定義情報が頻繁に送信されることは稀であり、大部分が指令で構成される。即ち、C&Cサーバから送信されるデータ(レスポンスデータ)は、正当なアプリケーションに比べ、大部分または全てのレスポンスデータ長が特定のサイズに偏る度合いが高い。
【0091】
本実施形態では、上記のマルウェアのC&C通信の特徴を、以下のように定式化する。
TR(Dst): 宛先Dst宛てのHTTPリクエストの集合
TRG(Dst): 実行ファイルのダウンロードフェーズに該当しないGETリクエスト⊂TR(Dst) の集合
TRP(Dst): 実行ファイルのダウンロードフェーズに該当しないPOST/PUTリクエスト⊂TR(Dst)の集合
X: TRG(Dst)またはTRP(Dst)に属する基点とする(最初の)HTTPリクエスト
Y: TRG(Dst)またはTRP(Dst)に属するXに続く任意のHTTPリクエスト
RoIG(Dst): TRG(Dst)に属するHTTPリクエストの送信間隔の規則性の度合い
RoIP(Dst): TRP(Dst)に属するHTTPリクエストの送信間隔の規則性の度合い
BoRG(Dst): TRG(Dst)に属するHTTPリクエストのレスポンスデータ長の偏りの度合い
BoRP(Dst): TRP(Dst)に属するHTTPリクエストのレスポンスデータ長の偏りの度合い
【0092】
そして、本実施形態において、推定部25は、以下の条件を全て満たすDst宛ての通信を、C&C通信であると推定する。
TRG(Dst) = {Y∈TRG(Dst) | SIMHTTP(X, Y)≧ ∂, X,∀Y∈TRG(Dst)} 且つ
TRP(Dst) = {Y∈TRP(Dst) | SIMHTTP(X, Y)≧ ∂, X,∀Y∈TRP(Dst)} 且つ
RoIG(Dst)≧ ρ または RoIP(Dst)≧ ρ 且つ
BoRG(Dst)≧ μ または BoRP(Dst)≧ μ
【0093】
<<SSL/TLSにおけるC&C通信の検出>>
SSL/TLSプロトコルを使用する個々のマルウェアのC&C通信は、以下の特徴を有する。
(1)同一のC&Cサーバ(宛先)に対して送信されるClientHelloメッセージの送信間隔(インターバル時間)は、規則性(例えば、周期性)を有する。即ち、正当なアプリケーションのSSL/TLS通信に比べ、ClientHelloメッセージの送信間隔の規則性の度合いが高い。特に、この傾向は、C&Cサーバへのチェックイン直後やビーコンパケット(C&Cサーバへの指令問合せパケット)において顕著に見られる。
(2)C&Cサーバから送信されるApplication Dataメッセージ(レスポンスデータ)は、バイナリ(マルウェアの更新、新規のマルウェア、各種ツール類)を除くと、マルウェアに対する構成定義情報(データ量:中~大)と指令(データ量:小)である。このうち、構成定義情報が頻繁に送信されることは稀であり、大部分が指令で構成される。即ち、C&Cサーバから送信されるApplication Dataメッセージは、正当なアプリケーションに比べ、大部分または全てのApplication Dataのデータ長が特定のサイズに偏る度合いが高い。
【0094】
本実施形態では、上記のマルウェアのC&C通信の特徴を定式化する。
TRS(Dst): 宛先Dst宛てのSSL/TLSトランザクション(ClientHelloメッセージからEncrypted Alertメッセージまでの一連のSSL/TLSメッセージ群)の集合
BR(CH(Dst)): ブラウザによるSSL/TLSトランザクションの十分条件
RoIS(Dst): TRS(Dst)に属するClientHelloメッセージの送信間隔の規則性の度合い
BoRS(Dst): TRS(Dst)に属するApplication Dataメッセージ(StoC)のデータ長の偏りの度合い
【0095】
そして、本実施形態において、推定部25は、以下の条件を全て満たすDst宛ての通信を、C&C通信であると推定する。なお、本実施形態では、業務通信の大半を占めるブラウザ通信を対象から除外することで、誤検出及び処理負荷を低減することとしている。
¬BR(CH(Dst))(ブラウザによるSSL/TLS通信ではない) 且つ
RoIS(Dst)≧ ρ 且つ
BoRS(Dst)≧ μ
【0096】
<マルウェア・ファミリーの推定>
次に、マルウェア・ファミリーの推定の流れを説明する。
【0097】
<<HTTPにおけるマルウェア・ファミリーの推定>>
本実施形態において、推定部25は、学習データベースMalDBに登録されている既知マルウェアのHTTPトラフィックを使用して、既知または亜種(未知)のマルウェアを検出し、名前を推定する。
【0098】
類似度算出部23は、名前を推定したいマルウェアβが送受信するHTTPトラフィックY(β)に対して、MalDBに登録されているマルウェア(例えば、全てのマルウェア)のトラフィック(例えば、全てのトラフィック)との類似度SIMHTTP(Y(β),X(α))を計算し、類似度が最大となるHTTPトラフィックが属するマルウェアαを求める。そして、推定部25は、最大の類似度SIMHTTPを、同種であると判定するための閾値A及び亜種であると判定するための閾値B(ここで、閾値A>閾値B)と比較することで、対象の通信に係るマルウェアが、最大の類似度SIMHTTPを有する既知のマルウェアの同種であるか、亜種であるか、又は別種であるかを推定する。
【0099】
なお、上記の判定において、SIMHTTP(Y(β),X(α))が同じ値になる複数のマルウェアα(i:マルウェアID)が存在した場合は、以下に示す個々の類似度の合算値を順番に評価し、より値が大きいHTTPトラフィックが属するマルウェアαを選択する。
Sr(Y(β),X(αi)) + Sp(Y(β),X(αi))
Sr(Y(β),X(αi)) + Sp(Y(β),X(αi)) + So(Y(β),X(αi))
Sr(Y(β),X(αi)) + Sp(Y(β),X(αi)) + So(Y(β),X(αi)) + Sn(Y(β),X(αi))
【0100】
<<SSL/TLSにおけるマルウェア・ファミリーの推定>>
本実施形態において、推定部25は、学習データベースMalDBに登録されている既知マルウェアのSSL/TLSトラフィックを使用して、既知または亜種(未知)のマルウェアを検出し、名前を推定する。
【0101】
類似度算出部23は、名前を推定したいマルウェアβが送受信するSSL/TLSトラフィックT(β)に対して、MalDBに登録されているマルウェア(例えば、全てのマルウェア)のトラフィック(例えば、全てのトラフィック)との類似度SIMTLS(T(β),S(α))を計算し、類似度が最大となるSSL/TLSトラフィックが属するマルウェアαを求める。そして、推定部25は、最大の類似度SIMTLSを、同種であると判定するための閾値A及び亜種であると判定するための閾値B(ここで、閾値A>閾値B)と比較することで、対象の通信に係るマルウェアが、最大の類似度SIMTLSを有する既知のマルウェアの同種であるか、亜種であるか、又は別種であるかを推定する。
【0102】
なお、上記の判定において、SIMTLS(T(β),S(α))が同じ値になる複数のマルウェアαi(i:マルウェアID)が存在した場合、推定部25は、上述した「パターンの平均リクエストサイズAoSP(Average of request Size Patterns)」により近い値を持つSSL/TLSトラフィックが属するマルウェアαiを選択する。
【0103】
<感染範囲の推定>
次に、マルウェアの感染範囲の推定の流れを説明する。監視対象のホストHが何らかのマルウェアに感染している場合、複数の種類のマルウェアに同時に感染している場合が考えられる。例えば、1stステージ、2ndステージなど段階を追ってマルウェアが送り込まれてくる場合が考えられる。一般的に、マルウェア毎にC&Cサーバとの通信に使用されるトラフィック(C&Cトラフィック)の特徴が異なるため、ホストHで検出しているC&Cトラフィックを類似度に基づいて分類することで、マルウェアαとマルウェアαのC&Cトラフィック群との対応関係、及びマルウェアαのC&Cトラフィック群とマルウェアαのC&Cサーバアドレス群との対応関係が得られ、感染しているマルウェアの種類単位で、感染範囲を推定することができる。
【0104】
本実施形態において、情報処理装置は、以下の手順で、ホストHについて検出されているC&Cサーバのアドレス群CC(H)を、トラフィックの類似度に基づいてn個の互いに素なクラスCC(H)i(i=1...n)に分類する。
(1)分類の基点とするC&CサーバアドレスA1∈CC(H)を任意に選択する。
(2)類似度評価関数(SIMHTTPまたはSIMTLS)を用いて、n個の互いに素なクラスに分類する。ここで分類されたCC(H)i(i=1...n)には、以下の関係が成立する。ここで、TR(H)は、ホストHについて検出されたC&Cトラフィック群を表す。
CC(H)=CC(H)1∪CC(H)2∪・・・∪CC(H)n 但し、i≠j ならば CC(H)i∩CC(H)j={}
TR(H)=TR(CC(H)1:H)∪TR(CC(H)2:H)∪・・・∪TR(CC(H)n:H)
CC(H)k ⇔ TR(CC(H)k:H) ⇔ マルウェアαk ; 1対1に対応する。
【0105】
<<HTTPにおける感染範囲の推定>>
続く処理は、通信がHTTPである場合とSSL/TLSである場合とで異なる。通信がHTTPである場合、推定部25は、C&Cサーバとの通信にHTTPを使用するマルウェアに対して、感染ホストHと同じ種類のマルウェアに感染しているホスト群Hm(即ち、感染範囲)を、以下の手順で推定する。
【0106】
(1)感染範囲を推定するための起点とする対象ホストHを選択する。
(2)ホストHを除く、他のC&C通信と認定したHTTPリクエストパケット、及びC&Cサーバアドレスが記録されている監視対象ホストから、対象HTTPリクエストパケットとの類似性が所定以上であるか又はC&Cサーバアドレスが同一であるホスト群Inf(H)を抽出する。
(3)(2)で抽出されたホスト群Inf(H)を、ホストHが感染しているマルウェアと同種のマルウェアに感染しているホスト群Hm、即ち、感染範囲と推定する。更に、基点とする対象ホストHが感染している個々のマルウェアαkの感染範囲を推定するには、マルウェアαkに対応するC&Cサーバアドレス群、及びC&Cトラフィック群の範囲内でホスト群Inf(H)(=Inf(H|αk)を求めればよい。
【0107】
<<SSL/TLSにおける感染範囲の推定>>
通信がSSL/TLSである場合、推定部25は、C&Cサーバとの通信にSSL/TLSプロトコルを使用するマルウェアに対して、感染ホストHと同じ種類のマルウェアに感染しているホスト群Hm(即ち、感染範囲)を、以下の手順で推定する。なお、SSL/TLSプロトコルベースのC&C通信として検出したC&Cサーバ候補に対して、類似度評価関数SIMTLS(S,T)が要求する情報(特徴量)が収集されているものとする。
【0108】
(1)感染範囲を推定するための起点とする対象ホストHを選択する。
(2)ホストHを除く、C&C通信と認定したSSL/TLSトランザクション、及びC&Cサーバアドレスが記録されている監視対象ホストから、対象SSL/TLSトランザクションとの類似性が所定以上であるか又はC&Cサーバアドレスが同一であるホスト群Inf(H)を抽出する。
(3)(2)で抽出されたホスト群Inf(H)を、ホストHが感染しているマルウェアと同種のマルウェアに感染しているホスト群Hm、即ち、感染範囲と推定する。更に、基点とする対象ホストHが感染している個々のマルウェアαkの感染範囲を推定するには、マルウェアαkに対応するC&Cサーバアドレス群、及びC&Cトラフィック群の範囲内でホスト群Inf(H)(=Inf(H|αk)を求めればよい。
【0109】
<バリエーション>
上記説明した実施形態では、ネットワーク監視装置20が、スイッチまたはルータのモニタリングポート(ミラーポート)に接続されることでノード90によって送受信されるパケットやフレーム等を取得する例について説明した(図1を参照)。但し、上記実施形態に示したネットワーク構成は、本開示を実施するための一例であり、実施にあたってはその他のネットワーク構成が採用されてもよい。
【0110】
例えば、ネットワーク監視装置20は、モニタリングポート(ミラーポート)に接続されず、単にネットワークセグメント2に接続されている場合であっても、ネットワークセグメント2を流れるフレームを、自身のMACアドレス宛でないものも含めて取得することで、ノード90によって送受信されるパケットやフレーム等を取得することが出来る。この場合も、ネットワーク監視装置20は、パッシブモードで動作してよい。また、例えば、ネットワーク監視装置20は、ネットワークセグメント2のスイッチまたはルータと、その上位にある他のスイッチまたはルータと、の間に接続されることで、通過するパケットやフレーム等を取得してもよい(図9を参照)。この場合、ネットワーク監視装置20は、取得したパケットのうち、遮断しなくてもよいパケットについては転送するインラインモードで動作する。また、ネットワーク監視装置20は、ルータまたはスイッチに内包されてもよい。
【0111】
なお、本実施形態では、ネットワークを流れるパケットを取得して、上記した各種の検知エンジンによりリアルタイムで検知を行う実施形態について説明したが、本開示の適用範囲は、リアルタイム検知に限定されない。例えば、ネットワークを流れる通信に係るデータを蓄積しておいて、蓄積されたデータに対して上記した各種の検知エンジンによる処理を行うこととしてもよい。
【0112】
<効果>
上記説明した実施形態によれば、同一の通信先に係る通信の属性情報の分布を算出し、分布が所定の基準を満たす場合に、検出された通信が所定の種類のソフトウェア(本実施形態では、マルウェア)による通信で有ると推定することで、マルウェア等の所定の種類のソフトウェアによる、正常な通信に偽装した通信を検出することが可能となる。
【0113】
例えば、上記説明した実施形態によれば、ある通信先に対する通信の構造的な類似度を検査し、類似した通信が複数回連続で行われて規定回数を超えた際に通信タイミングの規則性、通信データサイズの偏り度合いを算出し、マルウェアのC&C通信を検出することが可能となる。これは、マルウェアが、ユーザーが操作するブラウザ通信とは異なり、ある宛先に対して同じデータ構造で周期的に通信を行なう傾向があり、また、マルウェアが攻撃者からの命令を待ち受けている間、サーバ側からの応答として返されるデータサイズは、ほぼ同じサイズになる傾向があるためである。
【0114】
更に、上記説明した実施形態によれば、ある感染端末でマルウェア感染が発覚した際に、そのマルウェアのC&C通信と類似した通信を行っている組織内の感染端末を通信の構造的な類似度を特徴量として推定することが可能となる。これは、マルウェアが、同種マルウェアであれば、構造的に類似した通信を行なう特徴があるためである。
【0115】
更に、上記説明した実施形態によれば、ある感染端末でマルウェア感染が発覚した際に、そのマルウェアのC&C通信と類似した通信を行うマルウェア・ファミリーをデータベースより通信の構造的な類似度を特徴量として検索することが可能となる。これは、マルウェアが、同種マルウェアであれば、構造的に類似した通信を行なう特徴があるためである。
【符号の説明】
【0116】
20 ネットワーク監視装置
50 管理サーバー
図1
図2
図3
図4
図5
図6
図7
図8
図9