(57)【要約】  検知装置（１０）は、通信データに対して、当該通信データの通信先情報に対応づけた属性情報を含むタグを付与し、当該属性情報を含むタグが付与された通信データの伝搬を追跡するデータ伝搬追跡部（１１０）と、通信データに、当該通信データの送信先、もしくは、送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合には、当該通信データの改ざんを検知する改ざん検知部（１１２）と、を備えることを特徴とする。
2016002605.tif 000002
【特許請求の範囲】
【請求項１】
通信データに対して、当該通信データの通信先情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡部と、
前記通信データに、当該通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、当該通信データの改ざんを検知する検知部と
を備えることを特徴とする検知装置。
【請求項２】
システム内で発行される命令を監視する命令監視部を更に備え、
前記検知部は、前記命令監視部によってＡＰＩ（Application  Programming  Interface）呼び出し又はシステムコールが前記命令として検知された場合に、受信データに対して前記改ざんの検知を行うことを特徴とする請求項１に記載の検知装置。
【請求項３】
前記検知部は、仮想ＮＩＣ（Network  Interface  Card）に送信データがコピーされるタイミングで、当該送信データに対して前記改ざんの検知を行うことを特徴とする請求項１に記載の検知装置。
【請求項４】
前記検知部は、前記改ざんを検知した場合に、前記異なる属性情報を含むタグに対応するデータを、改ざん内容として特定することを特徴とする請求項１〜３のいずれか一つに記載の検知装置。
【請求項５】
前記検知部は、前記改ざんを検知した場合に、前記異なる属性情報を含むタグに紐付く通信先を、Ｃ＆Ｃ（Command  and  Control）サーバとして特定することを特徴とする請求項１〜３のいずれか一つに記載の検知装置。
【請求項６】
前記追跡部は、前記通信データに対して複数のタグを所定のデータ長単位で付与するとともに、当該複数のタグの並び順にしたがって通番のＩＤをタグに割り当て、
前記検知部は、通信データに付与されたタグについて、同じ属性情報を含む一連のタグのそれぞれに割り当てられたＩＤが、前記並び順に沿っていない場合に、前記改ざんを検知することを特徴とする請求項１〜３のいずれか一つに記載の検知装置。
【請求項７】
検知装置によって実行される検知方法であって、
通信データに対して、当該通信データの通信先情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡工程と、
前記通信データに、当該通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、当該通信データの改ざんを検知する検知工程と
を含んだことを特徴とする検知方法。
【請求項８】
通信データに対して、当該通信データの通信先情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡ステップと、
前記通信データに、当該通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、当該通信データの改ざんを検知する検知ステップと
をコンピュータに実行させることを特徴とする検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知装置、検知方法及び検知プログラムに関する。
【背景技術】
【０００２】
近年、ＭＩＴＢ（Man-in-the-browser）攻撃機能を具備したマルウェアによるオンラインバンキング詐欺の被害が多発している。ＭＩＴＢ攻撃とは、端末の利用者とＷｅｂサービス間の通信に割り込んで通信内容を搾取、改ざんする攻撃である。ＺＢｏｔやＳｐｙＥｙｅ等のマルウェアはＭＩＴＢ攻撃機能を具備しており、感染端末とオンラインバンクとの間の通信に割り込んで通信データを改ざんすることによって送金金額の操作や偽装入力フォームの表示といった攻撃を行う。【０００３】
ＺＢｏｔ等のマルウェアでは、ＭＩＴＢ攻撃の対象となる通信データは設定ファイルによって指定できる仕組みが採られている。そのため、オンラインバンキングに限らず、攻撃者は意図したＷｅｂサービスとの通信データに対して攻撃を行うことが可能である。設定ファイルはＣ＆Ｃ（Command  and  Control）サーバ上に設置されており、マルウェアは、Ｃ＆Ｃサーバと通信して当該ファイルを取得することで改ざん攻撃の対象と改ざん内容を把握する。その後、ＺＢｏｔ等のマルウェアの場合、ＡＰＩ（Application  Programming  Interface）フックを用いて改ざん攻撃を行う。例えば、通信データの送受信に関わるＡＰＩをフックすることで、暗号化前や復号後の通信データに対して改ざん攻撃が行われる。このような攻撃を受けた場合、通信経路をＳＳＬで保護するだけでは改ざん攻撃を防ぐことはできない。【０００４】
このような脅威への対策を行う場合、マルウェア感染自体を防ぐことが理想である。しかし、感染攻撃の手口は年々巧妙化しており未然に感染を防ぐことが困難な状況にある。そのため、ユーザ端末がマルウェアに感染することを前提とした対策が不可欠である。【０００５】
マルウェア感染後の対策をクライアント側で行う方法は主に２つある。１つは、ＡＰＩフック等が行われないように攻撃対象となるプロセスを保護する方法、もう１つは、改ざん対象と内容を指定する設定ファイルの取得を阻止する方法である。ＡＰＩフックを防ぐことができれば、改ざんの発生を未然に防止できる。しかし、マルウェアに感染した状態で確実にそれを実現することは難しい。一方の設定ファイルの取得を阻止する方法の場合、ネットワーク上での対策ができるため、たとえ端末がマルウェアに感染していたとしても対策可能である。ただし、設定ファイルを配布するＣ＆ＣサーバのＩＰ（Internet  Protocol）アドレス等を事前に把握しておかなければならない。【０００６】
Ｃ＆ＣサーバのＩＰアドレス等を事前に収集するためには、一般にマルウェア解析が行われる。これまでに、マルウェア解析によってＣ＆Ｃサーバを自動で特定する手法として、システムコール間の通信データの受け渡し関係に基づいてＣ＆Ｃサーバを特定する手法が非特許文献１で提案されている。この手法はマルウェアがＣ＆Ｃサーバと通信する時にのみ現れるシステムコール間のデータの受け渡し関係に着目しており、誤検知が少ないという特徴がある。しかし、システムコール間のデータの受け渡し関係に特徴が表れない場合には検知できない。【０００７】
また、これまでに、ＭＩＴＢ攻撃を行うマルウェアの解析手法として非特許文献２のような手法が提案されている。非特許文献２の手法はＷｅｂサービスに影響を与えることなくマルウェアを分析し、改ざん検知及び改ざん場所の特定ができる点で優れている。しかし、改ざん内容を指定したＣ＆Ｃサーバの特定までは実現していない。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ｐ．  Ｗｕｒｚｉｎｇｅｒ，  Ｌ．  Ｂｉｌｇｅ，  Ｔ．  Ｈｏｌｚ，  Ｊ．  Ｇｏｅｂｅｌ，  Ｃ．  Ｋｒｕｅｇｅｌ，  ａｎｄ  Ｅ．  Ｋｉｒｄａ  「Ａｕｔｏｍａｔｉｃａｌｌｙ  Ｇｅｎｅｒａｔｉｎｇ  Ｍｏｄｅｌｓ  ｆｏｒ  Ｂｏｔｎｅｔ  Ｄｅｔｅｃｔｉｏｎ」Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １４ｔｈ  Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｅｓｅａｒｃｈ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｅｃｕｒｉｔｙ
【非特許文献２】瀬川  達也、神薗  雅紀、星澤  裕二、吉岡  克成、松本  勉  「Ｍａｎ−ｉｎ−ｔｈｅ−Ｂｒｏｗｓｅｒ攻撃を行うマルウェアの安全な動的解析手法」  電子情報通信学会技術研究報告
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、通信データの改ざんを詳細に分析することができる検知装置、検知方法及び検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、開示の検知装置は、通信データに対して、当該通信データの通信先情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡部と、前記通信データに、当該通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、当該通信データの改ざんを検知する検知部とを備えることを特徴とする。
【発明の効果】
【００１１】
本願に開示する実施形態によれば、通信データの改ざんを詳細に分析することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施形態に係る検知装置の概要を示す構成図である。
【図２】図２は、本実施形態に係る検知装置における仮想計算機及びデータ伝搬追跡部の構成を示すブロック図である。
【図３】図３は、本実施形態に係るタグの構成例を示す図である。
【図４】図４は、本実施形態に係る通信先情報ＤＢに記憶される情報の一例を示す図である。
【図５】図５は、本実施形態に係る改ざん検知部における受信データに対する処理の流れを示すフローチャートである。
【図６】図６は、本実施形態に係る改ざん検知部における送信データに対する処理の流れを示すフローチャートである。
【図７】図７は、検知プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願に係る検知装置、検知方法及び検知プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る検知装置、検知方法及び検知プログラムが限定されるものではない。
【００１４】
［実施形態］
以下の実施形態では、実施形態に係る検知装置の構成及び処理の流れを順に説明し、その後、最後に実施形態による効果を説明する。
【００１５】
［検知装置の構成］
まず、図１を用いて、検知装置１０の構成を説明する。図１は、本実施形態に係る検知装置の概要を示す構成図である。図１に示すように、この検知装置１０は、マルウェア実行環境部１１、解析結果ＤＢ（Data  Base）１２及びＣ＆Ｃサーバ通信先情報ＤＢ１３を有する。以下に、これらの各部の処理を説明する。
【００１６】
マルウェア実行環境部１１は、プロセス１１Ｂ，１１Ｃ、ゲストＯＳ（Operating  System）１１Ｄ、及び仮想計算機１１Ｅから構成される。ゲストＯＳ１１Ｄは、マルウェア１１Ａを動的解析するための環境である。また、マルウェア１１Ａは、ゲストＯＳ１１Ｄ上で実行され、ゲストＯＳ１１Ｄ上ではブラウザなどのマルウェア１１Ａの攻撃対象となるプロセス１１Ｂ，１１Ｃを動作させる。
【００１７】
仮想計算機１１Ｅは、データ伝搬追跡部１１０、命令監視部１１１、改ざん検知部１１２、及び通信先情報ＤＢ１１３から構成される。
【００１８】
データ伝搬追跡部１１０は、通信データに対してタグを付与し、通信データの伝搬を追跡する。このとき、通信データの送信先、もしくは送信元を一意に特定するため、タグには通信先情報に対応する属性情報等を保持させる。なお、以下の説明において、送信先及び送信元を総称する場合に、「通信先」と表記する。また、通信先情報とは、例えば、通信先のＩＰアドレスやＦＱＤＮ（Fully  Qualified  Domain  Name）、ＵＲＬ（Uniform  Resource  Locator）等の情報である。
【００１９】
ここで、図３を用いて、タグの構成例について説明する。図３は、本実施形態に係るタグの構成例を示す図である。図３に示すように、タグは、「ＩＤ（identification）」と、「属性情報」とを含む。ここで、属性情報は、通信データの送信元や送信先の通信先情報に対応する情報である。ＩＤは、当該属性情報ごとに連続した値（通番）になるように設定される情報である。すなわち、タグは、属性情報とＩＤとの組み合わせによって一意に識別可能となる。なお、タグは、例えば、ある通信データに対して所定のデータ長単位ごとに付与される。
【００２０】
一例として、ＩＰアドレス「１９２．１６８．０．１」の通信先から受信された１０バイトの受信データに対してタグが付与される場合を説明する。なお、この例では、タグが１バイト単位で付与され、ＩＰアドレス「１９２．１６８．０．１」に対応する属性情報が「０ｘ１」である場合を説明する。この場合、１０バイトの受信データに対して１バイト単位でタグが付与されるので、この受信データには１０個のタグが付与される。このうち、１個目のタグは、ＩＤ「１」及び属性情報「０ｘ１」を含み、２個目のタグは、ＩＤ「２」及び属性情報「０ｘ１」を含み、３個目のタグは、ＩＤ「３」及び属性情報「０ｘ１」を含み、・・・１０個目のタグは、ＩＤ「１０」及び属性情報「０ｘ１」を含む。このように、それぞれのタグは、通番で付与されるＩＤと、通信先に応じた属性情報とを含む。なお、ＩＰアドレス「１９２．１６８．０．１」の通信先から再びデータを受信した場合には、その受信データには、例えば、ＩＤ「１１」から始まる通番のＩＤを含む複数のタグが付与される。また、「１９２．１６８．０．２」等、上記とは異なるＩＰアドレスの通信先からデータを受信した場合には、その受信データには、例えば、ＩＤ「１」から始まる通番のＩＤを含む複数のタグが付与される。
【００２１】
なお、上記のように、本実施形態に係るタグが、通信データに対して所定のデータ長単位で複数付与されるとともに、複数のタグのそれぞれのＩＤが通番で割り当てられるのは、これによって、通信データの改ざん内容の特定が可能となるからである。例えば、通番で割り当てられていれば、複数のタグのそれぞれに含まれるＩＤの値は、タグの並び順にしたがって連続している。ところが、複数のタグのそれぞれに含まれるＩＤの値がタグの並び順にしたがって連続していなければ、改ざん検知部１１２は、通信データの改ざんを検知するとともに、連続していない付近のデータが改ざんされたことを特定できる。さらに、例えば、ＩＤの番号が無くなっていたり、他のタグが混入していたりすれば、改ざん検知部１１２は、通信データの書き換えや追記が行われたことを特定できる。また、ＩＤの番号にずれが生じていれば、改ざん検知部１１２は、その付近のデータが削除されたことを特定できる。
【００２２】
すなわち、データ伝搬追跡部１１０は、通信データに対してタグを設定し、設定したタグに含まれる属性情報と、その属性情報に対応する通信先情報とを通信先情報ＤＢ１１３に転送した上で、仮想計算機１１Ｅ上で通信データの伝搬の追跡を行う。通信先情報ＤＢ１１３は、データ伝搬追跡部１１０から転送された属性情報と通信先情報とを対応づけて記憶する。なお、通信先情報ＤＢ１１３に記憶される情報については、後述する。
【００２３】
命令監視部１１１は、システム内で発行される命令を監視する。例えば、命令監視部１１１は、マルウェア１１Ａが実行したＡＰＩ（Application  Programming  Interface）呼び出しやシステムコールの発行といった命令を監視する。
【００２４】
改ざん検知部１１２は、通信データに、その通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、通信データの改ざんを検知する。例えば、改ざん検知部１１２は、通信データに設定されたタグに基づいて改ざんを検知する。そして、改ざん検知部１１２は、改ざんを検知した場合に、通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグに対応するデータを、改ざん内容として特定し、特定した改ざん内容を解析結果ＤＢ１２に転送する。解析結果ＤＢ１２は、改ざん検知部１１２から転送された改ざん内容をはじめとする解析結果を記憶する。
【００２５】
また、改ざん検知部１１２は、改ざんを検知した場合に、通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグに紐付く通信先を、Ｃ＆Ｃサーバとして特定する。そして、改ざん検知部１１２は、特定した通信先情報をＣ＆Ｃサーバの通信先情報としてＣ＆Ｃサーバ通信先情報ＤＢ１３に転送する。Ｃ＆Ｃサーバ通信先情報ＤＢ１３は、改ざん検知部１１２から転送されたＣ＆Ｃサーバの通信先情報を記憶する。
【００２６】
次に、図２を用いて、仮想計算機１１Ｅの構成例について説明する。図２は、本実施形態に係る検知装置における仮想計算機及びデータ伝搬追跡部の構成を示すブロック図である。仮想計算機１１Ｅは、ゲストＯＳ１１Ｄに対して仮想的なハードウェアを提供するソフトウェアである。また、仮想計算機１１Ｅは、仮想ＮＩＣ（Network  Interface  Card）１１４や仮想ディスク１１５、仮想ＨＷコントローラ１１６、仮想メモリ１１７、仮想ＣＰＵ１１８などから構成される。
【００２７】
データ伝搬追跡部１１０は、データに対してタグを設定してデータの伝搬追跡を行うために、仮想ディスク１１５上のデータに対応するタグを保存するためのディスクタグ保存領域１１０Ａ、仮想メモリ１１７上のデータに対応するタグを保存するためのメモリタグ保存領域１１０Ｄ、仮想レジスタ１１８Ｂ上のデータに対応するタグを保存するためのレジスタタグ保存領域１１０Ｆを具備する。
【００２８】
データ伝搬追跡部１１０のタグ付与部１１０Ｂは、通信データに対して送信元を一意に特定できるタグを設定し、通信先情報ＤＢ１１３に転送した上で、タグをメモリタグ保存領域１１０Ｄに保存する。タグを設定するタイミングは、受信データであれば、仮想ＮＩＣ１１４から仮想メモリ１１７に対してデータがコピーされるタイミング、もしくはデータを受信するＡＰＩ／システムコールを呼び出した直後（関数から呼び元に戻るタイミング）であり、また、送信データであれば、ブラウザなどの正規のアプリケーションがデータを送信するためのＡＰＩ呼び出しやシステムコールを発行するタイミングである。データに設定されたタグは、タグ伝搬部１１０Ｃ（タグ伝搬部Ａ）によってデータの伝搬に合わせて伝搬される。
【００２９】
タグ伝搬部１１０Ｃは、ディスクタグ保存領域１１０Ａとメモリタグ保存領域１１０Ｄの間のタグの伝搬を行う。また、タグ伝搬部１１０Ｅ（タグ伝搬部Ｂ）は、メモリタグ保存領域１１０Ｄとレジスタタグ保存領域１１０Ｆとの間やレジスタタグ保存領域１１０Ｆ間のタグの伝搬を行う。
【００３０】
また、命令監視部１１１は、ブラウザなどの正規アプリケーションが実行するＡＰＩ呼び出しを監視する。正規アプリケーションがデータ受信に関わるＡＰＩを呼び出した場合、呼び出し時に関数の引数を全て記録し、戻り時に改ざん検知部１１２に通知を行う。また、命令監視部１１１は、ＡＰＩがデータ送信に関わるものである場合は呼び出し時にデータ伝搬追跡部１１０に通知を行う。通知を受け取ったデータ伝搬追跡部１１０は、タグ付与部１１０Ｂで送信データに対してデータの送信先を一意に特定できるタグを設定する。なお、データ受信やデータ送信に関わるＡＰＩは、マルウェア解析者等が解析前に設定する。
【００３１】
改ざん検知部１１２は、命令監視部１１１から通知を受けた後、受信データに対応するタグを確認することで受信データに対する改ざんの検知、改ざん内容の特定、改ざん内容を指定したＣ＆Ｃサーバの特定を行う。更に、改ざん検知部１１２は、仮想ＮＩＣ１１４においてデータ送信時に送信データに対応するタグを確認することによって、送信データに対する改ざんの検知、改ざん内容の特定、改ざん内容を指定したＣ＆Ｃサーバの特定を行う。なお、データ伝搬時において、暗号化／復号処理を実施するＡＰＩに通信データが受信データ／送信データとして渡された場合、当該ＡＰＩの戻り値に対しても強制的にタグを伝搬させる処理を行っても良い。その際、ＩＤは再度振り直してもよい。
【００３２】
ここで、図４を用いて、通信先情報ＤＢ１１３に記憶される情報について説明する。図４は、本実施形態に係る通信先情報ＤＢ１１３に記憶される情報の一例を示す図である。図４に示すように、通信先情報ＤＢ１１３は、タグに含まれる属性情報と、送受信情報と、通信先情報とを対応づけて記憶する。この送受信情報は、通信先との通信が受信であるか送信であるかを示す情報であり、例えば、「Ｒ」が受信を示し、「Ｓ」が送信を示す。なお、図４では、通信先情報としてＩＰアドレスが記憶される場合を例示する。
【００３３】
図４に示す例では、通信先情報ＤＢ１１３は、属性情報「０ｘ１」と、送受信情報「Ｒ」と、通信先情報「１９２．１６８．０．１」とを対応づけて記憶する。これは、ＩＰアドレス「１９２．１６８．０．１」からの受信データに付与される属性情報が「０ｘ１」であることを示す。また、通信先情報ＤＢ１１３は、属性情報「０ｘＡ」と、送受信情報「Ｒ」と、通信先情報「１９２．１６８．１．１０」とを対応づけて記憶する。これは、ＩＰアドレス「１９２．１６８．１．１０」への受信データに付与される属性情報が「０ｘＡ」であることを示す。
【００３４】
なお、図４の３行目に示すように、通信先情報ＤＢ１１３は、属性情報「０ｘ３」と、送受信情報「Ｓ」と、通信先情報「１９２．１６８．０．１」とを対応づけて記憶する。これは、１行目のＩＰアドレス「１９２．１６８．０．１」と同一のＩＰアドレスであっても、送受信情報が１行目の「Ｒ（受信）」とは異なり「Ｓ（送信）」であれば、異なる属性情報「０ｘ３」が付与されることを示す。すなわち、通信先情報ＤＢ１１３において、属性情報は、送受信情報と通信先情報との組み合わせに対して一意に設定される。なお、通信先情報ＤＢ１１３は、必ずしも送受信情報を記憶しなくても良い。この場合、属性情報は、送受信の向きに限らず、通信先ごとに記憶される。また、属性情報は、可変長のデータであっても良いし、固定長のデータであっても良い。
【００３５】
なお、上記のように、通信先情報ＤＢ１１３が属性情報と通信先の情報とを対応づけて記憶するのは、これによって、通信データの改ざんの検知が可能となるからである。例えば、改ざん検知部１１２は、通信先情報ＤＢ１１３を参照し、処理対象となる通信データの送信先、もしくは送信元に対応する属性情報を取得する。そして、改ざん検知部１１２は、通信データに含まれる属性情報を参照し、取得した属性情報と照合する。ここで、改ざんされていなければ、通信データに含まれる全ての属性情報は、通信先情報ＤＢ１１３から取得した属性情報と一致するはずである。一方、一致しなければ、改ざん検知部１１２は、改ざんを検知することが可能となる。さらに、本来の通信先とは異なる通信先が紐付けられていれば、改ざん検知部１１２は、その通信先をＣ＆Ｃサーバとして特定することができる。
【００３６】
［検知装置による処理］
次に、図５及び図６を用いて、検知装置１０における処理の流れを説明する。図５は、本実施形態に係る改ざん検知部における受信データに対する処理の流れを示すフローチャートである。図６は、本実施形態に係る改ざん検知部における送信データに対する処理の流れを示すフローチャートである。
【００３７】
まず、図５を用いて、改ざん検知部１１２における受信データに対する改ざんの検知、改ざん内容の特定、改ざん内容を指定したＣ＆Ｃサーバの特定に関する処理を説明する。
【００３８】
図５に示すように、改ざん検知部１１２は、最初に、データ受信に関わるＡＰＩの呼び出し時に命令監視部１１１が記録した引数情報と戻り値を取得し（ステップＳ１０１）、各受信データに対応するタグを取得する（ステップＳ１０２）。そして、改ざん検知部１１２は、受信データにタグが設定されている場合には（ステップＳ１０３Ｙｅｓ）、改ざん攻撃の検知処理を開始する。一方、改ざん検知部１１２は、受信データにタグが設定されていない場合には（ステップＳ１０３Ｎｏ）、その受信データについての処理を終了する。
【００３９】
改ざん攻撃の検知処理として、改ざん検知部１１２は、まず、引数情報から通信先を取得する（ステップＳ１０４）。そして、改ざん検知部１１２は、受信データに対応するタグについて、受信データの送信元に対応する属性情報以外の属性情報がついているか否かを確認する（ステップＳ１０５）。ここで、改ざん検知部１１２は、受信データの送信元に対応する属性情報以外の属性情報がついたタグが存在していた場合には（ステップＳ１０５Ｙｅｓ）、改ざん攻撃が行われたと判断して、改ざん攻撃が行われた場所の特定処理を行う（ステップＳ１０６）。この場合、改ざん検知部１１２は、通信先からの受信データに対応する属性情報以外のタグがついているデータが改ざんされていると判断し、解析結果ＤＢ１２に改ざん内容を登録する（ステップＳ１０７）。そして、改ざん検知部１１２は、通信先情報ＤＢ１１３から改ざん後のデータに紐づく通信先を抽出する（ステップＳ１０８）。そして、改ざん検知部１１２は、引数情報から取得した通信先とは異なる通信先から取得したタグが存在した場合には（ステップＳ１０９Ｙｅｓ）、当該タグに紐付く通信先をＣ＆Ｃサーバとして特定し（ステップＳ１１０）、特定した通信先をＣ＆Ｃサーバ通信先情報ＤＢ１３に登録する（ステップＳ１１１）。
【００４０】
そして、改ざん検知部１１２は、同じ属性情報を持つタグのＩＤがデータの並び順に沿って連続した値になっているか否かを確認する（ステップＳ１１２）。これは、タグのＩＤは通番で割り当てられているため、途中で順番がずれていた場合にはデータ削除による改ざん攻撃が行われたと判断されるからである。ここで、連続した値になっていない場合には（ステップＳ１１２Ｎｏ）、改ざん検知部１１２は、データ削除による改ざん攻撃が行われたと判断し、解析結果ＤＢ１２にタグのＩＤと受信データ（検査対象データ）を記録し（ステップＳ１１３）、処理を終了する。
【００４１】
なお、受信データの送信元に対応する属性情報以外の属性情報がついたタグが存在していない場合（ステップＳ１０５Ｎｏ）、及び、引数情報から取得した通信先とは異なる通信先から取得したタグが存在しない場合には（ステップＳ１０９Ｎｏ）、改ざん検知部１１２は、ステップＳ１１２の処理に移行する。また、同じ属性情報を持つタグのＩＤがデータの並び順に沿って連続した値になっている場合には（ステップＳ１１２Ｙｅｓ）、改ざん検知部１１２は、その受信データについての処理を終了する。
【００４２】
次に、図６を用いて、改ざん検知部１１２における送信データに対する改ざんの検知、改ざん内容の特定、改ざん内容を指定したＣ＆Ｃサーバの特定に関する処理を説明する。この処理は、仮想ＮＩＣ１１４まで到達した送信データに対して行われる。
【００４３】
図６に示すように、改ざん検知部１１２は、送信データに対応するタグを取得し（ステップＳ２０１）、タグが存在している場合には（ステップＳ２０２Ｙｅｓ）、改ざん攻撃の検知処理を開始する。一方、改ざん検知部１１２は、送信データにタグが存在しない場合には（ステップＳ２０２Ｎｏ）、その送信データについての処理を終了する。
【００４４】
改ざん攻撃の検知処理として、改ざん検知部１１２は、まず、送信データの送信先を送信データに含まれているヘッダー情報から取得する（ステップＳ２０３）。そして、送信先に対応する属性情報以外の属性情報を含むタグが送信データ内に存在しているか否かを確認する（ステップＳ２０４）。ここで、改ざん検知部１１２は、送信先に対応する属性情報以外の属性情報を含むタグが送信データ内に存在している場合には（ステップＳ２０４Ｙｅｓ）、改ざん攻撃が行われたと判断して、送信先に対応する属性情報以外を含むタグを抽出する（ステップＳ２０５）。そして、改ざん検知部１１２は、抽出したタグに対応するデータを改ざん箇所として解析結果ＤＢ１２に登録する（ステップＳ２０６）。そして、改ざん検知部１１２は、通信先情報ＤＢ１１３から抽出したタグから通信先を取得し（ステップＳ２０７）、タグに通信先が紐付いていれば（ステップＳ２０８Ｙｅｓ）、タグに紐付く通信先をＣ＆Ｃサーバとして特定する（ステップＳ２０９）。そして、改ざん検知部１１２は、特定した通信先をＣ＆Ｃサーバ通信先情報ＤＢ１３に登録する（ステップＳ２１０）。
【００４５】
そして、改ざん検知部１１２は、同じ属性情報を持つタグのＩＤがデータの並び順に沿って連続した値になっているか否かを確認する（ステップＳ２１１）。これは、タグのＩＤは通番で割り当てられているため、途中で順番がずれていた場合にはデータ削除による改ざん攻撃が行われたと判断されるからである。ここで、連続した値になっていない場合には（ステップＳ２１１Ｎｏ）、改ざん検知部１１２は、データ削除による改ざん攻撃が行われたと判断し、解析結果ＤＢ１２にタグのＩＤと送信データ（検査対象データ）を記録し（ステップＳ２１２）、処理を終了する。
【００４６】
なお、送信先に対応する属性情報以外の属性情報を含むタグが送信データ内に存在していない場合（ステップＳ２０４Ｎｏ）、及び、タグに通信先が紐付いていない場合には（ステップＳ２０８Ｎｏ）、改ざん検知部１１２は、ステップＳ２１１の処理に移行する。また、同じ属性情報を持つタグのＩＤがデータの並び順に沿って連続している場合には（ステップＳ２１１Ｙｅｓ）、改ざん検知部１１２は、その送信データについての処理を終了する。
【００４７】
［実施形態の効果］
上述してきたように、検知装置１０は、通信データに対して、当該通信データの通信先情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する。そして、検知装置１０は、通信データに、当該通信データの送信先もしくは送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、当該通信データの改ざんを検知する。これによれば、検知装置１０は、通信データの改ざんを詳細に分析することができる。
【００４８】
例えば、従来の解析手法では、改ざんの検知と改ざん内容の特定は行われていたものの、改ざん内容を指示したＣ＆Ｃサーバを特定できないという問題があった。Ｃ＆Ｃサーバを特定するためには、改ざんの検知と改ざん内容の特定を行った上で、改ざん時に埋め込まれたデータの出自を解析することができる仕組みが求められていた。そこで、本実施形態では、解析システム内でのデータの伝搬を追跡し、特定の２点間を流れるデータの中に本来存在しないはずのデータが含まれていることを、テイント解析を応用して検知し、改ざん検知と改ざん内容の特定だけでなく、改ざん内容を指示したＣ＆Ｃサーバの特定を実現した。
【００４９】
［その他の実施形態］
なお、上記の実施形態では、マルウェア実行環境における解析に適用される場合を説明したが、これに限定されるものではない。例えば、本実施形態に係る各部は、ユーザ端末に導入されてもよい。また、本実施形態を利用する際には、改ざん機能を有したマルウェアか否かの判定や改ざん攻撃が発生したことの警告通知のみを目的として、Ｃ＆Ｃサーバ特定処理を行わず、改ざん攻撃の検知処理のみを実施してもよい。なお、Ｃ＆Ｃサーバ特定処理を実施する際には、Ｃ＆Ｃサーバ通信先情報ＤＢ１３の内容に基づいて、ＶＭＭ（Virtual  Machine  Monitor）側で通信の遮断を実施してもよいし、外部ＩＰＳ（Intrusion  Prevention  System）装置等と連携して通信遮断の措置をとらせてもよい。なお、Ｃ＆Ｃサーバは、「指令サーバ」とも称される。
【００５０】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５１】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５２】
［プログラム］
また、上記実施形態において説明した検知装置１０が実行する処理について、コンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る検知装置１０が実行する処理について、コンピュータが実行可能な言語で記述した検知プログラムを作成することもできる。この場合、コンピュータが検知プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる検知プログラムをコンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録された検知プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図１に示した検知装置１０と同様の機能を実現する検知プログラムを実行するコンピュータの一例を説明する。
【００５３】
図７は、検知プログラムを実行するコンピュータ１０００を示す図である。図７に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００５４】
メモリ１０１０は、図７に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図７に例示するように、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、図７に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース１０５０は、図７に例示するように、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、図７に例示するように、例えばディスプレイ１１３０に接続される。
【００５５】
ここで、図７に例示するように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の検知プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０９０に記憶される。
【００５６】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、実行する。
【００５７】
なお、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００５８】
１０  検知装置
１１  マルウェア実行環境部
１１Ａ  マルウェア
１１Ｂ，１１Ｃ  プロセス
１１Ｄ  ゲストＯＳ
１１Ｅ  仮想計算機
１１０  データ伝搬追跡部
１１０Ａ  ディスクタグ保存領域
１１０Ｂ  タグ付与部
１１０Ｃ  タグ伝搬部Ａ
１１０Ｄ  メモリタグ保存領域
１１０Ｅ  タグ伝搬部Ｂ
１１０Ｆ  レジスタタグ保存領域
１１１  命令監視部
１１２  改ざん検知部
１１３  通信先情報ＤＢ
１１４  仮想ＮＩＣ
１１５  仮想ディスク
１１６  仮想ＨＷコントローラ
１１７  仮想メモリ
１１８  仮想ＣＰＵ
１１８Ｂ  仮想レジスタ
１２  解析結果ＤＢ
１３  Ｃ＆Ｃサーバ通信先情報ＤＢ
【図１】
2016002605.tif 000003
【図２】
2016002605.tif 000004
【図３】
2016002605.tif 000005
【図４】
2016002605.tif 000006
【図５】
2016002605.tif 000007
【図６】
2016002605.tif 000008
【図７】
2016002605.tif 000009
【手続補正書】
【提出日】平成29年2月1日(2017.2.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信データに対して、当該通信データの送信先または送信元のアドレス情報である通信先情報に対応づけた属性情報を含むタグを付与するとともに、該属性情報と該通信先情報とを記憶部に格納し、当該タグが付与された通信データの伝搬を追跡する追跡部と、
前記通信データの受信または送信を行う際に、当該通信データの送信先もしくは送信元に対応する属性情報を前記記憶部から読み出し、読み出された属性情報と前記通信データに付与されたタグに含まれる属性情報とが異なる場合には、当該通信データが改ざんされていると検知し、前記改ざんを検知した場合には、異なる属性情報を含むタグに紐付く通信先を、Ｃ＆Ｃ（Command  and  Control）サーバとして特定する検知部と
を備えることを特徴とする検知装置。
【請求項２】
マルウェアが実行される環境内で発行される命令を監視する命令監視部を更に備え、
前記検知部は、前記命令監視部によってＡＰＩ（Application  Programming  Interface）呼び出し又はシステムコールが前記命令として検知された場合に、受信された通信データに対して前記改ざんの検知を行うことを特徴とする請求項１に記載の検知装置。
【請求項３】
前記検知部は、仮想ＮＩＣ（Network  Interface  Card）に送信された通信データがコピーされるタイミングで、当該送信された通信データに対して前記改ざんの検知を行うことを特徴とする請求項１に記載の検知装置。
【請求項４】
前記検知部は、前記改ざんを検知した場合に、前記異なる属性情報を含むタグに対応するデータを、改ざん内容として特定することを特徴とする請求項１〜３のいずれか一つに記載の検知装置。
【請求項５】
前記追跡部は、前記通信データに対して複数のタグを所定のデータ長単位で付与するとともに、当該複数のタグの並び順にしたがって通番のＩＤをタグに割り当て、
前記検知部は、通信データに付与されたタグについて、同じ属性情報を含む一連のタグのそれぞれに割り当てられたＩＤが、前記並び順に沿っていない場合に、前記改ざんを検知することを特徴とする請求項１〜３のいずれか一つに記載の検知装置。
【請求項６】
検知装置によって実行される検知方法であって、
通信データに対して、当該通信データの送信先または送信元のアドレス情報である通信先情報に対応づけた属性情報を含むタグを付与するとともに、該属性情報と該通信先情報とを記憶部に格納し、当該タグが付与された通信データの伝搬を追跡する追跡工程と、
前記通信データの受信または送信を行う際に、当該通信データの送信先もしくは送信元に対応する属性情報を前記記憶部から読み出し、読み出された属性情報と前記通信データに付与されたタグに含まれる属性情報とが異なる場合には、当該通信データが改ざんされていると検知し、前記改ざんを検知した場合には、異なる属性情報を含むタグに紐付く通信先を、Ｃ＆Ｃ（Command  and  Control）サーバとして特定する検知工程と
を含んだことを特徴とする検知方法。
【請求項７】
通信データに対して、当該通信データの送信先または送信元のアドレス情報である通信先情報に対応づけた属性情報を含むタグを付与するとともに、該属性情報と該通信先情報とを記憶部に格納し、当該タグが付与された通信データの伝搬を追跡する追跡ステップと、
前記通信データの受信または送信を行う際に、当該通信データの送信先もしくは送信元に対応する属性情報を前記記憶部から読み出し、読み出された属性情報と前記通信データに付与されたタグに含まれる属性情報とが異なる場合には、当該通信データが改ざんされていると検知し、前記改ざんを検知した場合には、異なる属性情報を含むタグに紐付く通信先を、Ｃ＆Ｃ（Command  and  Control）サーバとして特定する検知ステップと
をコンピュータに実行させることを特徴とする検知プログラム。
【国際調査報告】
2016002605.tif 000010
2016002605.tif 000011