JP6258189B2 - 特定装置、特定方法および特定プログラム - Google Patents

特定装置、特定方法および特定プログラム Download PDF

Info

Publication number
JP6258189B2
JP6258189B2 JP2014260629A JP2014260629A JP6258189B2 JP 6258189 B2 JP6258189 B2 JP 6258189B2 JP 2014260629 A JP2014260629 A JP 2014260629A JP 2014260629 A JP2014260629 A JP 2014260629A JP 6258189 B2 JP6258189 B2 JP 6258189B2
Authority
JP
Japan
Prior art keywords
identification information
tag
data
communication data
attack target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014260629A
Other languages
English (en)
Other versions
JP2016122262A (ja
Inventor
知範 幾世
知範 幾世
一史 青木
一史 青木
剛男 針生
剛男 針生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014260629A priority Critical patent/JP6258189B2/ja
Publication of JP2016122262A publication Critical patent/JP2016122262A/ja
Application granted granted Critical
Publication of JP6258189B2 publication Critical patent/JP6258189B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、特定装置、特定方法および特定プログラムに関する。
近年、オンラインバンキングにおける不正送金被害が急増している。原因の1つはマルウェアによるMITB攻撃(Man-In-The-Browser攻撃)であり、MITB攻撃によって端末利用者とWebサービスの間で行われる通信内容の盗聴・改ざんが行われ、搾取されたアカウント情報が不正送金に悪用されている。実際にZBotやSpyEye等のマルウェアにはMITB攻撃機能が備わっており、当該マルウェアに感染すると攻撃対象のサイトにアクセスした際に偽装入力フォームの表示といった攻撃が行われる。
このようなZBotやSpyEye等の近年のマルウェアによるMITB攻撃では、攻撃の対象となるサイトはC&Cサーバ(Command & Controlサーバ)からの設定ファイルに記載されており、攻撃対象を変更する場合には設定ファイルの内容が更新される。
また、攻撃の対象となっているWebサービスは一般にマルウェア解析によって特定される。しかしながら、攻撃対象を特定するための解析を手動で行うことはコストが高く、日々膨大な数のマルウェアが新たに生成されていることを鑑みると、手動の解析によって攻撃対象の変化に追従してくことは困難である。
そのため、これまでに、動的解析によってMITB攻撃を行う可能性のあるマルウェアを自動で解析する手法が提案されている。例えば、Webサービスに影響を与えることなくマルウェアを分析し、改ざん検知および改ざん場所の特定ができる手法が提案されている(例えば、非特許文献1参照)。また、テイント解析を応用して通信データの改ざんを検知し、改ざん内容を指定したC&Cサーバを特定する手法が提案されている(例えば、非特許文献2参照)。
瀬川 達也、神薗 雅紀、星澤 裕二、吉岡 克成、松本 勉 「Man-in-the-Browser攻撃を行うマルウェアの安全な動的解析手法」 電子情報通信学会技術研究報告、 2013-CSEC-61、 pp.1-8、 2013年5月発行 幾世 知範、青木 一史、八木 毅、針生 剛男 「改ざんデータの出自確認に基づいたC&Cサーバ特定手法の提案」 電子情報通信学会通信ソサイエティ大会講演論文集、 no.2、 pp.16、 2014年9月発行
しかしながら、上記の従来技術では、サイトに対する改ざんの発生やC&Cサーバを特定することができるが、マルウェアの攻撃対象を効率的に取得することができないという課題がある。例えば、従来の技術では、マルウェアの攻撃対象の識別情報(URLや、FQDN、IPアドレスなど)を取得するために、動的解析で動作させている攻撃を一つずつ解析して攻撃対象の識別情報を特定するので、処理負荷や処理時間が掛かってしまい、攻撃が発生しなかったものも含めて攻撃対象の識別情報を取得することを効率よく行うことができなかった。
上述した課題を解決し、目的を達成するために、本発明の特定装置は、通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡部と、前記追跡部によって付与されたタグを用いて、前記通信データの改ざんの発生を検知するとともに、該改ざんを指令した指令サーバの識別情報を特定する検知部と、前記検知部によって改ざんの発生が検知された場合に、前記指令サーバの識別情報と改ざん発生時におけるマルウェアによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、前記通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する特定部と、前記特定部によって特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の識別情報であるかを判定する際に参照するデータを前記攻撃対象の識別情報の一覧として前記実行トレースから取得する取得部とを有することを特徴とする。
また、本発明の特定方法は、特定装置によって実行される特定方法であって、通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡工程と、前記追跡工程によって付与されたタグを用いて、前記通信データの改ざんの発生を検知するとともに、該改ざんを指令した指令サーバの識別情報を特定する検知工程と、前記検知工程によって改ざんの発生が検知された場合に、前記指令サーバの識別情報と改ざん発生時におけるマルウェアによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、前記通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する特定工程と、前記特定工程によって特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の識別情報であるかを判定する際に参照するデータを前記攻撃対象の識別情報の一覧として前記実行トレースから取得する取得工程とを含んだことを特徴とする。
また、本発明の特定プログラムは、通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡ステップと、前記追跡ステップによって付与されたタグを用いて、前記通信データの改ざんの発生を検知するとともに、該改ざんを指令した指令サーバの識別情報を特定する検知ステップと、前記検知ステップによって改ざんの発生が検知された場合に、前記指令サーバの識別情報と改ざん発生時におけるマルウェアによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、前記通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する特定ステップと、前記特定ステップによって特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の識別情報であるかを判定する際に参照するデータを前記攻撃対象の識別情報の一覧として前記実行トレースから取得する取得ステップとをコンピュータに実行させることを特徴とする。
本発明によれば、マルウェアの攻撃対象を効率的に取得することができるという効果を奏する。
図1は、本実施形態に係る特定装置の概要を示す構成図である。 図2は、本実施形態に係る特定装置における仮想マシンモニタ及びデータ伝搬追跡部の構成を示すブロック図である。 図3は、本実施形態に係るタグの構成例を示す図である。 図4は、本実施形態に係る識別情報DBに記憶される情報の一例を示す図である。 図5は、ブラウザ操作部により改ざん攻撃対象ではない通信先と通信させることで攻撃対象である正規サイトの識別情報を網羅的に取得する処理を説明する図である。 図6は、本実施形態に係る特定装置における攻撃対象の正規サイトの識別情報を特定する処理の流れを示すフローチャートである。 図7は、特定プログラムを実行するコンピュータを示す図である。
以下に、本願に係る特定装置、特定方法および特定プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る特定装置、特定方法および特定プログラムが限定されるものではない。
[実施形態]
以下の実施形態では、実施形態に係る特定装置の構成及び処理の流れを順に説明し、その後、最後に実施形態による効果を説明する。
[特定装置の構成]
まず、図1を用いて、特定装置10の構成を説明する。図1は、本実施形態に係る特定装置の概要を示す構成図である。図1に示すように、この特定装置10は、マルウェア実行環境部11、解析結果DB(Data Base)12及びC&Cサーバ識別情報DB13を有する。以下に、これらの各部の処理を説明する。
マルウェア実行環境部11は、ブラウザ11B、ブラウザ操作部11C、ゲストOS(Operating System)11D、及び仮想マシンモニタ11Eから構成される。ゲストOS11Dは、マルウェア11Aを動的解析するための環境である。また、特定装置10では、マルウェア11AがゲストOS11D上で実行され、ゲストOS11D上ではマルウェア11Aの改ざん攻撃実施場所となるブラウザ11B等の各種プロセスを動作させる。また、ブラウザ操作部11Cは、ブラウザ11Bに所定の通信先と通信をさせるための操作を行うためのものであり、例えば、マウスやキーボード等の入力デバイス、もしくはブラウザを自動操作するプログラムと巡回先URLリストで構成される。
仮想マシンモニタ11Eは、データ伝搬追跡部110、命令監視部111、改ざん検知部112、識別情報DB113、特定部114および取得部115から構成される。
データ伝搬追跡部110は、通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する。つまり、データ伝搬追跡部110は、マルウェア11A実行の動作を監視するため、テイント解析によってデータに対して属性情報を表すタグを設定することでマルウェア11A実行時のデータの伝搬を追跡する。このとき、通信データの送信先、もしくは送信元を一意に特定するため、タグには識別情報に対応する属性情報等を保持させる。なお、以下の説明において、送信先及び送信元を総称する場合に、適宜「通信先」と表記する。また、識別情報とは、例えば、通信先のIPアドレスやFQDN(Fully Qualified Domain Name)、URL(Uniform Resource Locator)等の情報である。
ここで、図3を用いて、タグの構成例について説明する。図3は、本実施形態に係るタグの構成例を示す図である。図3に示すように、タグは、「ID(identification)」と、「属性情報」とを含む。ここで、属性情報は、通信データの送信元や送信先の識別情報に対応する情報である。IDは、当該属性情報ごとに連続した値(通番)になるように設定される情報である。すなわち、タグは、属性情報とIDとの組み合わせによって一意に識別可能となる。なお、タグは、例えば、ある通信データに対して所定のデータ長単位ごとに付与される。
一例として、IPアドレス「192.168.0.1」の通信先から受信された10バイトの受信データに対してタグが付与される場合を説明する。なお、この例では、タグが1バイト単位で付与され、IPアドレス「192.168.0.1」に対応する属性情報が「0x1」である場合を説明する。この場合、10バイトの受信データに対して1バイト単位でタグが付与されるので、この受信データには10個のタグが付与される。このうち、1個目のタグは、ID「1」及び属性情報「0x1」を含み、2個目のタグは、ID「2」及び属性情報「0x1」を含み、3個目のタグは、ID「3」及び属性情報「0x1」を含み、・・・10個目のタグは、ID「10」及び属性情報「0x1」を含む。
このように、それぞれのタグは、通番で付与されるIDと、通信先に応じた属性情報とを含む。なお、IPアドレス「192.168.0.1」の通信先から再びデータを受信した場合には、その受信データには、例えば、ID「11」から始まる通番のIDを含む複数のタグが付与される。また、「192.168.0.2」等、上記とは異なるIPアドレスの通信先からデータを受信した場合には、その受信データには、例えば、ID「1」から始まる通番のIDを含む複数のタグが付与される。
なお、上記のように、本実施形態に係るタグが、通信データに対して所定のデータ長単位で複数付与されるとともに、複数のタグのそれぞれのIDが通番で割り当てられるのは、これによって、通信データの改ざん内容の特定が可能となるからである。例えば、通番で割り当てられていれば、複数のタグのそれぞれに含まれるIDの値は、タグの並び順にしたがって連続している。ところが、複数のタグのそれぞれに含まれるIDの値がタグの並び順にしたがって連続していなければ、改ざん検知部112は、通信データの改ざんを検知するとともに、連続していない付近のデータが改ざんされたことを特定できる。さらに、例えば、IDの番号が無くなっていたり、他のタグが混入していたりすれば、改ざん検知部112は、通信データの書き換えや追記が行われたことを特定できる。また、IDの番号にずれが生じていれば、改ざん検知部112は、その付近のデータが削除されたことを特定できる。
すなわち、データ伝搬追跡部110は、通信データに対してタグを設定し、設定したタグに含まれる属性情報と、その属性情報に対応する識別情報とを識別情報DB113に転送した上で、仮想マシンモニタ11E上で通信データの伝搬の追跡を行う。識別情報DB113は、データ伝搬追跡部110から転送された属性情報と識別情報とを対応づけて記憶する。なお、識別情報DB113に記憶される情報については、後述する。
なお、データ伝搬追跡部110では、マルウェア11Aが受信した通信データに対しては送信元および何番目の受信データであるかを一意に特定できるタグを設定し、キーボード入力やAPI(Application Programming Interface)の引数に識別情報が指定された際には識別情報であることを示すタグを設定している。
ここで、テイント解析技術とは、データフロー解析を自動化する手法の1つであり、データに対してタグを設定し、伝搬ルールに従ってタグを伝搬させることでシステム内のデータの伝搬を追跡する技術である。タグとは、データに対して付与される属性情報であり、データの出自や種類が設定される。また、伝搬ルールとはタグを伝搬させる条件であり、一般にデータのコピーや演算が伝搬の条件として設定される。
例えば、受信データの利用用途を解析する場合には、受信データに対して取得元を一意に特定可能なタグを設定し、データのコピーや演算に応じてタグを伝搬させる。APIの引数として渡されたデータにタグが設定されていることを確認することで、受信データはAPIの引数として利用されるデータであることが解析できる。なお、テイント解析技術は仮想計算機技術を用いて実現されることが一般的であり、タグはデータとは異なる専用の記録領域にデータと対応が取れるように保持される。
命令監視部111は、システム内で発行される命令を監視する。具体的には、命令監視部111は、マルウェア11Aが実行したAPI呼び出しやシステムコールの発行といった命令を監視する。
例えば、命令監視部111は、マルウェア11Aのプログラムコードが実行したAPI呼び出しや特定のタグのついたデータを参照する命令を監視・記録し、データ伝搬追跡部110にはタグの設定、改ざん検知部112には改ざん発生有無の確認を要求する。
改ざん検知部112は、データ伝搬追跡部110によって付与されたタグを用いて、通信データの改ざんの発生を検知するとともに、該改ざんを指令したC&Cサーバの識別情報を特定する。具体的には、命令監視部111によってAPI呼び出し又はシステムコールが命令として検知された場合に、通信データに対して改ざんの検知を行う。また、改ざん検知部112は、通信データに、その通信データの送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、通信データの改ざんを検知する。
例えば、改ざん検知部112は、データを受信するAPI呼び出し後の戻りアドレスにおいて受信データの改ざん有無を確認し、仮想NIC119A(図2参照)において送信データの改ざん有無を確認する。ここで、改ざんは、データ内に異なる出自情報を持つデータが混在していることを根拠に検知され、混入されたデータの取得元はC&Cサーバとして特定される。
そして、改ざん検知部112は、改ざんを検知した場合に、通信データの送信元に対応する属性情報とは異なる属性情報を含むタグに対応するデータを、改ざん内容として特定し、特定した改ざん内容を解析結果DB12に転送する。解析結果DB12は、改ざん検知部112から転送された改ざん内容をはじめとする解析結果を記憶する。
また、改ざん検知部112は、改ざんを検知した場合に、通信データの送信元に対応する属性情報とは異なる属性情報を含むタグに紐付く通信先を、C&Cサーバとして特定する。そして、改ざん検知部112は、特定した識別情報をC&Cサーバの識別情報としてC&Cサーバ識別情報DB13に転送する。C&Cサーバ識別情報DB13は、改ざん検知部112から転送されたC&Cサーバの識別情報を記憶する。
特定部114は、改ざん検知部112によって改ざんの発生が検知された場合に、C&Cサーバの識別情報と改ざん発生時におけるマルウェア11Aによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する。
具体的には、特定部114は、改ざん攻撃実施時の実行トレースを取得し、実行トレースの中から攻撃対象候補の識別情報であることを表すタグとC&Cサーバに紐付くタグの両方を参照する演算命令や比較命令を抽出し、該演算命令や比較命令を含むプログラムコードを攻撃対象選定のためのプログラムコードとして特定する。ここで、攻撃対象候補の識別情報とは、ブラウザ操作部11Cから入力される識別情報であって、マルウェア11による攻撃対象の候補であるURL等の識別情報のことである。
取得部115は、特定部114によって特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の通信先であるかを判定する際に参照するデータを攻撃対象の識別情報の一覧として実行トレースから取得する。
具体的には、取得部115は、特定部114によって特定されたプログラムコードを解析し、識別情報であることを表すタグとC&Cサーバに紐付くタグとが比較されている場合に、C&Cサーバに紐付くタグが付与されているデータを記録し、記録されたデータの取得元メモリアドレスに存在する文字列を抽出することで攻撃対象の正規サイト一覧を取得する。
次に、図2を用いて、仮想マシンモニタ11Eの構成例について説明する。図2は、本実施形態に係る特定装置における仮想マシンモニタ及びデータ伝搬追跡部の構成を示すブロック図である。仮想マシンモニタ11Eは、ゲストOS11Dに対して仮想的なハードウェアを提供するソフトウェアである。また、仮想マシンモニタ11Eは、仮想NIC(Network Interface Card)119Aや仮想ディスク119B、仮想HWコントローラ116、仮想メモリ117、仮想CPU118などから構成される。
データ伝搬追跡部110は、データに対してタグを設定してデータの伝搬追跡を行うために、仮想ディスク119B上のデータに対応するタグを保存するためのディスクタグ保存領域110A、仮想メモリ117上のデータに対応するタグを保存するためのメモリタグ保存領域110D、仮想レジスタ118B上のデータに対応するタグを保存するためのレジスタタグ保存領域110Fを具備する。
データ伝搬追跡部110のタグ付与部110Bは、通信データに対して送信元を一意に特定できるタグを設定し、識別情報DB113に転送した上で、タグをメモリタグ保存領域110Dに保存する。タグを設定するタイミングは、受信データであれば、仮想NIC119Aから仮想メモリ117に対してデータがコピーされるタイミング、もしくはデータを受信するAPI/システムコールを呼び出した直後(関数から呼び元に戻るタイミング)であり、また、送信データであれば、ブラウザ11Bなどの正規のアプリケーションがデータを送信するためのAPI呼び出しやシステムコールを発行するタイミングである。データに設定されたタグは、タグ伝搬部110C(タグ伝搬部A)によってデータの伝搬に合わせて伝搬される。
タグ伝搬部110Cは、ディスクタグ保存領域110Aとメモリタグ保存領域110Dの間のタグの伝搬を行う。また、タグ伝搬部110E(タグ伝搬部B)は、メモリタグ保存領域110Dとレジスタタグ保存領域110Fとの間やレジスタタグ保存領域110F間のタグの伝搬を行う。
また、命令監視部111は、ブラウザ11Bなどの正規アプリケーションが実行するAPI呼び出しを監視する。正規アプリケーションがデータ受信に関わるAPIを呼び出した場合、呼び出し時に関数の引数を全て記録し、戻り時に改ざん検知部112に通知を行う。また、命令監視部111は、APIがデータ送信に関わるものである場合は呼び出し時にデータ伝搬追跡部110に通知を行う。通知を受け取ったデータ伝搬追跡部110は、タグ付与部110Bで送信データに対してデータの送信先を一意に特定できるタグを設定する。なお、データ受信やデータ送信に関わるAPIは、マルウェア解析者等が解析前に設定する。
改ざん検知部112は、命令監視部111から通知を受けた後、受信データに対応するタグを確認することで受信データに対する改ざんの検知、改ざん内容の特定、改ざん内容を指定したC&Cサーバの特定を行う。更に、改ざん検知部112は、仮想NIC119Aにおいてデータ送信時に送信データに対応するタグを確認することによって、送信データに対する改ざんの検知、改ざん内容の特定、改ざん内容を指定したC&Cサーバの特定を行う。なお、データ伝搬時において、暗号化/復号処理を実施するAPIに通信データが受信データ/送信データとして渡された場合、当該APIの戻り値に対しても強制的にタグを伝搬させる処理を行っても良い。その際、IDは再度振り直してもよい。
ここで、図4を用いて、識別情報DB113に記憶される情報について説明する。図4は、本実施形態に係る識別情報DB113に記憶される情報の一例を示す図である。図4に示すように、識別情報DB113は、タグに含まれる属性情報と、送受信情報と、識別情報とを対応づけて記憶する。この送受信情報は、通信先との通信が受信であるか送信であるかを示す情報であり、例えば、「R」が受信を示し、「S」が送信を示す。なお、図4では、識別情報としてIPアドレスが記憶される場合を例示する。
図4に示す例では、識別情報DB113は、属性情報「0x1」と、送受信情報「R」と、識別情報「192.168.0.1」とを対応づけて記憶する。これは、IPアドレス「192.168.0.1」からの受信データに付与される属性情報が「0x1」であることを示す。また、識別情報DB113は、属性情報「0xA」と、送受信情報「R」と、識別情報「192.168.1.10」とを対応づけて記憶する。これは、IPアドレス「192.168.1.10」への受信データに付与される属性情報が「0xA」であることを示す。
なお、図4の3行目に示すように、識別情報DB113は、属性情報「0x3」と、送受信情報「S」と、識別情報「192.168.0.1」とを対応づけて記憶する。これは、1行目のIPアドレス「192.168.0.1」と同一のIPアドレスであっても、送受信情報が1行目の「R(受信)」とは異なり「S(送信)」であれば、異なる属性情報「0x3」が付与されることを示す。すなわち、識別情報DB113において、属性情報は、送受信情報と識別情報との組み合わせに対して一意に設定される。なお、識別情報DB113は、必ずしも送受信情報を記憶しなくても良い。この場合、属性情報は、送受信の向きに限らず、通信先ごとに記憶される。また、属性情報は、解析時には固定長であるが、解析ごとに長さを変更してもよい。
なお、上記のように、識別情報DB113が属性情報と識別情報とを対応づけて記憶するのは、これによって、通信データの改ざんの検知が可能となるからである。例えば、改ざん検知部112は、識別情報DB113を参照し、処理対象となる通信データの送信先、もしくは送信元に対応する属性情報を取得する。そして、改ざん検知部112は、通信データに含まれる属性情報を参照し、取得した属性情報と照合する。ここで、改ざんされていなければ、通信データに含まれる全ての属性情報は、識別情報DB113から取得した属性情報と一致するはずである。一方、一致しなければ、改ざん検知部112は、改ざんを検知することが可能となる。さらに、本来の通信先とは異なる通信先が紐付けられていれば、改ざん検知部112は、その通信先をC&Cサーバとして特定することができる。
そして、特定部114は、改ざん検知部112におけるC&Cサーバ特定に起因して、攻撃対象選定のプログラムコードを特定する処理を開始する。特定部114は、C&Cサーバ特定後に命令監視部111に対してマルウェア11Aのプログラムコードの実行トレースを取得するように通知する。実行トレースでは、実行アドレスと利用したレジスタや読み書きを行ったメモリ領域、それらが保持するデータおよび設定されているタグを記録する。さらに、実行トレースを取得する際には通信先を指定するAPIの呼び出し時に識別情報に対してタグを設定する。
例えば、Windows(登録商標) OS上のInternet ExplorerにおいてInternetConnect関数が呼ばれた場合にはFQDNやIPアドレスに対して識別情報であることを示すタグを設定する。タグは、フラグ値としてもよいし、どの関数の引数に指定された識別情報かを把握するためにユニークな値を設定してもよい。
実行トレースが有効な状態で、ブラウザ操作部11Cに改ざん攻撃発生が確認されたサイトへのアクセスを行わせ、改ざん攻撃実施時の実行トレースを取得する。なお、改ざん検知前から実行トレースを有効にしないのは、解析負荷を低減させるためである。改ざん攻撃実施時の実行トレースを取得した後、特定部114は、実行トレースの中から攻撃対象候補の識別情報であることを表すタグとC&Cサーバに紐付くタグの両方を参照する演算命令や比較命令を抽出し、攻撃対象選定のためのプログラムコードとして特定する。例えば、識別情報に0x1という値のタグを設定しており、C&Cサーバからの受信データに対して0x2という値のタグを設定していた場合、「cmp eax, ebx」という比較命令においてeaxないしebxにおいて0x1という値のタグが設定されており、他方に0x2という値のタグが設定されていることを確認することで攻撃対象選定のプログラムコードであることを特定する。
その後、取得部115は、ブラウザ操作部11Cに改ざん攻撃発生が確認されていないサイトにアクセスさせることで、改ざん攻撃対象であるか否かを判定する処理の実行トレースを取得する。当該実行トレースの中から攻撃対象を選定するためのプログラムコードで参照されたC&Cサーバに紐付くタグのついたデータを取得し、当該実行トレースを実行とは逆順に辿ることで記録されたデータの取得元のメモリ領域を特定し、当該メモリ領域の文字列情報を抽出する。ここで文字列情報とは、所定の数以上連続するASCIIコードで構成されたデータ列である。これにより、攻撃対象である正規サイトの一覧を取得する。
上述したように、正規サイトの一覧を取得する処理を行う際には、まず、ブラウザ操作部11Cに改ざん攻撃発生が確認されていないサイトにアクセスさせているが、これは、攻撃対象である正規サイトの識別情報を網羅的に取得するためである。
ここで、図5を用いて、ブラウザ操作部11Cにより改ざん攻撃対象ではない通信先と通信させることで攻撃対象である正規サイトの識別情報を網羅的に取得する処理を説明する。図5は、ブラウザ操作部により改ざん攻撃対象ではない通信先と通信させることで攻撃対象である正規サイトの識別情報を網羅的に取得する処理を説明する図である。図5の例では、改ざん攻撃対象ではない識別情報として、URL「http://zzzbank.co.jp/」がブラウザ操作部11Cを介して入力されている場合を例として説明する。なお、改ざん攻撃対象ではない識別情報は、予め設定されて自動的に入力されるものであってもよいし、手動で入力されるものであってもよい。
図5に例示するように、通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードでは、まず、改ざん攻撃対象ではない識別情報であるURL「http://zzzbank.co.jp/」が、攻撃対象の識別情報であるURL「http://AAAbank.com/*」と一致するか比較される。この結果、一致しない場合には、図5に例示するように、照合結果が「×」となり、次の改ざん攻撃対象ではない識別情報であるURL「http://zzzbank.co.jp/」と、攻撃対象の識別情報であるURL「http://BBBbank.*/login.html」とが一致するか比較され、一致しない場合には、照合結果が「×」となる。なお、上記したURLの「*」は、任意の文字列を表すものである。
同様の比較処理が、攻撃対象の識別情報であるURL「http://CCCbank.com/*」、「http://DDDbank.com/*」に対しても行われる。つまり、上記の比較を行った結果、仮に一致してしまうと、そこで比較処理が終了となってしまうが、改ざん攻撃対象ではない通信先と通信させることで、全ての攻撃対象である正規サイトの識別情報についての比較処理が行われる。このように、改ざん攻撃対象ではない通信先と通信させることで、全ての攻撃対象である正規サイトの識別情報についての比較処理が行われるため、プログラムコードを解析することで、正規サイトの識別情報を網羅的に取得することが可能となる。
[特定装置の処理の一例]
次に、図6を用いて、特定装置10における処理の流れを説明する。図6は、本実施形態に係る特定装置における攻撃対象の正規サイトの識別情報を特定する処理の流れを示すフローチャートである。なお、以下の処理は、改ざん検知部112により、改ざんが検知されるとともに、C&Cサーバの識別情報が特定された後に開始される処理である。
図6に示すように、特定装置10の特定部114は、C&Cサーバとタグ、改ざん発生時の通信先を改ざん検知部112から取得する(ステップS101)。なお、ここで、特定部114は、C&Cサーバとタグを取得できなかった場合には(ステップS102否定)、処理を終了する。
また、特定部114は、C&Cサーバとタグを取得できた場合には(ステップS102肯定)、命令監視部111の実行トレース取得を有効化し(ステップS103)、ブラウザ操作部11Cに改ざん発生時の通信先に通信させる(ステップS104)。つまり、実行トレースが有効な状態で、ブラウザ操作部11Cに改ざん攻撃発生が確認されたサイトへのアクセスを行わせ、改ざん攻撃実施時の実行トレースを取得する。なお、改ざん検知前から実行トレースを有効にしないのは、解析負荷を低減させるためである。
そして、特定部114は、改ざん攻撃実施時の実行トレースを取得した後、実行トレースからC&Cサーバのタグと識別情報のタグを参照するプログラムコードを特定する(ステップS105)。具体的には、特定部114は、実行トレースの中から攻撃対象候補の識別情報であることを表すタグとC&Cサーバに紐付くタグの両方を参照する演算命令や比較命令を抽出し、攻撃対象選定のためのプログラムコードとして特定する。なお、ステップS105において条件に合う存在しなかった場合には(ステップS106否定)、ここで処理を終了する。
プログラムコードとして特定する処理について具体的な例を用いて説明すると、識別情報に0x1という値のタグを設定しており、C&Cサーバからの受信データに対して0x2という値のタグを設定していた場合、特定部114は、「cmp eax, ebx」という比較命令においてeaxないしebxにおいて0x1という値のタグが設定されており、他方に0x2という値のタグが設定されていることを確認することで攻撃対象選定のプログラムコードであることを特定する。
そして、ステップS105において条件に合うプログラムコードが存在した場合には(ステップS106肯定)、ブラウザ操作部11Cに改ざん攻撃対象でない通信先と通信させる(ステップS107)。このようにブラウザ操作部11Cに改ざん攻撃対象でない通信先と通信させ、例えば、改ざん攻撃発生が確認されていないサイトにアクセスさせることで、改ざん攻撃対象であるか否かを判定する処理の実行トレースを取得する。
そして、取得部115は、当該プログラムコードで参照されたデータのうち、C&Cサーバに紐づくタグが設定されたデータを記憶する(ステップS108)。そして、取得部115は、実行トレースを遡り、取得元アドレスを特定する(ステップS109)。その後、取得部115は、攻撃対象の識別情報として、取得元アドレスから文字列を取得する(ステップS110)。
つまり、例えば、取得部115は、実行トレースの中から攻撃対象を選定するためのプログラムコードで参照されたC&Cサーバに紐付くタグのついたデータを取得し、当該実行トレースを実行とは逆順に辿り、データの受け渡し関係を1つずつ確認していくことで、記録されたデータの取得元のメモリ領域を特定し、当該メモリ領域の文字列情報(例えば、正規化されたURLやIPアドレス)を抽出する。これにより、攻撃対象である正規サイトの識別情報の一覧を取得する。なお、取得した識別情報に対して、さらに、所定の条件を満たすものだけを抽出するようにしてもよい。例えば、金融サービスに関連する識別情報だけを抽出したい場合には、金融サービスに関連する識別情報を抽出する条件を予め設定し、取得した識別情報から金融サービスに関連する識別情報のみを抽出するようにしてもよい。
[実施形態の効果]
このように、特定装置10は、通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する。そして、特定装置10は、付与されたタグを用いて、通信データの改ざんの発生を検知するとともに、該改ざんを指令したC&Cサーバの識別情報を特定する。続いて、特定装置10は、改ざんの発生が検知された場合に、C&Cサーバの識別情報と改ざん発生時におけるマルウェア11Aによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する。その後、特定装置10は、特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の識別情報であるかを判定する際に参照するデータを攻撃対象の識別情報の一覧として実行トレースから取得する。このため、マルウェアの攻撃対象を効率的に取得することが可能である。
また、特定装置10は、マルウェア11Aが通信データに対して行った改ざん攻撃の検知、改ざん内容を指定したC&Cサーバの特定だけでなく、改ざん攻撃の対象となっている正規サイトを特定するのに有用である。また、特定装置10では、特定した攻撃対象の正規サイトの識別情報は、特定装置10のブラウザ操作部11Cへの入力生成や、注意喚起などへの利用に適している。なお、攻撃対象となっている各正規サイトにアクセスした際に行われる改ざん内容も特定することが可能である。
[その他の実施形態]
なお、上記の実施形態では、マルウェア実行環境における解析に適用される場合を説明したが、これに限定されるものではない。例えば、本実施形態に係る各部は、ユーザ端末に導入されてもよい。また、本実施形態を利用する際には、改ざん機能を有したマルウェアか否かの判定や改ざん攻撃が発生したことの警告通知のみを目的として、C&Cサーバ特定処理を行わず、改ざん攻撃の検知処理のみを実施してもよい。なお、C&Cサーバ特定処理を実施する際には、C&Cサーバ識別情報DB13の内容に基づいて、VMM(Virtual Machine Monitor)側で通信の遮断を実施してもよいし、外部IPS(Intrusion Prevention System)装置等と連携して通信遮断の措置をとらせてもよい。なお、C&Cサーバは、「指令サーバ」とも称される。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。例えば、特定部114と取得部115とを統合してもよい。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
また、上記実施形態において説明した特定装置10が実行する処理について、コンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る特定装置10が実行する処理について、コンピュータが実行可能な言語で記述した特定プログラムを作成することもできる。この場合、コンピュータが特定プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる特定プログラムをコンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録され特定プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図1に示した特定装置10と同様の機能を実現する特定プログラムを実行するコンピュータの一例を説明する。
図7は、特定プログラムを実行するコンピュータ1000を示す図である。図7に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図7に例示するように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図7に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図7に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、図7に例示するように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図7に例示するように、例えばディスプレイ1130に接続される。
ここで、図7に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の特定プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、実行する。
なお、特定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、特定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 特定装置
11 マルウェア実行環境部
11A マルウェア
11B ブラウザ
11C ブラウザ操作部
11D ゲストOS
11E 仮想マシンモニタ
110 データ伝搬追跡部
110A ディスクタグ保存領域
110B タグ付与部
110C タグ伝搬部A
110D メモリタグ保存領域
110E タグ伝搬部B
110F レジスタタグ保存領域
111 命令監視部
112 改ざん検知部
113 識別情報DB
114 特定部
115 取得部
116 仮想HWコントローラ
117 仮想メモリ
118 仮想CPU
118B 仮想レジスタ
119A 仮想NIC
119B 仮想ディスク
12 解析結果DB
13 C&Cサーバ識別情報DB

Claims (7)

  1. 通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡部と、
    前記追跡部によって付与されたタグを用いて、前記通信データの改ざんの発生を検知するとともに、該改ざんを指令した指令サーバの識別情報を特定する検知部と、
    前記検知部によって改ざんの発生が検知された場合に、前記指令サーバの識別情報と改ざん発生時におけるマルウェアによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、前記通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する特定部と、
    前記特定部によって特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の識別情報であるかを判定する際に参照するデータを前記攻撃対象の識別情報の一覧として前記実行トレースから取得する取得部と
    を有することを特徴とする特定装置。
  2. システム内で発行される命令を監視する命令監視部を更に備え、
    前記検知部は、前記命令監視部によってAPI(Application Programming Interface)呼び出しまたはシステムコールが前記命令として検知された場合に、前記通信データに対して前記改ざんの発生の検知を行うことを特徴とする請求項1に記載の特定装置。
  3. 前記検知部は、前記通信データに、当該通信データの送信元に対応する属性情報とは異なる属性情報を含むタグが存在する場合に、当該通信データの改ざんの発生を検知するとともに、前記異なる属性情報を含むタグに紐付く送信元の識別情報を、該改ざんを指令した指令サーバの識別情報として特定することを特徴とする請求項1または2に記載の特定装置。
  4. 前記特定部は、前記実行トレースの中から、攻撃対象候補の識別情報であることを表すタグと指令サーバに紐づくタグの両方を参照する命令を抽出し、該命令を含むプログラムコードを前記攻撃対象の識別情報であるかを判定するプログラムコードとして特定することを特徴とする請求項1〜3のいずれか一つに記載の特定装置。
  5. 前記取得部は、前記攻撃対象でない通信先と通信を行わせて前記プログラムコードを解析し、前記攻撃対象の識別情報であることを表すタグと前記指令サーバに紐付くタグとが比較されている場合に、該指令サーバに紐付くタグが付与されている通信データ内の文字列を抽出することで前記攻撃対象の識別情報の一覧を取得することを特徴とする請求項1〜4のいずれか一つに記載の特定装置。
  6. 特定装置によって実行される特定方法であって、
    通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡工程と、
    前記追跡工程によって付与されたタグを用いて、前記通信データの改ざんの発生を検知するとともに、該改ざんを指令した指令サーバの識別情報を特定する検知工程と、
    前記検知工程によって改ざんの発生が検知された場合に、前記指令サーバの識別情報と改ざん発生時におけるマルウェアによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、前記通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する特定工程と、
    前記特定工程によって特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の識別情報であるかを判定する際に参照するデータを前記攻撃対象の識別情報の一覧として前記実行トレースから取得する取得工程と
    を含んだことを特徴とする特定方法。
  7. 通信データに対して、当該通信データの送信元または送信先の識別情報に対応づけた属性情報を含むタグを付与し、当該タグが付与された通信データの伝搬を追跡する追跡ステップと、
    前記追跡ステップによって付与されたタグを用いて、前記通信データの改ざんの発生を検知するとともに、該改ざんを指令した指令サーバの識別情報を特定する検知ステップと、
    前記検知ステップによって改ざんの発生が検知された場合に、前記指令サーバの識別情報と改ざん発生時におけるマルウェアによる攻撃対象の識別情報とに基づいて、改ざんの発生が検知された実行トレースから、前記通信データの送信元または送信先の識別情報が攻撃対象の識別情報であるかを判定するプログラムコードを特定する特定ステップと、
    前記特定ステップによって特定されたプログラムコードを解析し、当該プログラムコードが攻撃対象の識別情報であるかを判定する際に参照するデータを前記攻撃対象の識別情報の一覧として前記実行トレースから取得する取得ステップと
    をコンピュータに実行させることを特徴とする特定プログラム。
JP2014260629A 2014-12-24 2014-12-24 特定装置、特定方法および特定プログラム Active JP6258189B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014260629A JP6258189B2 (ja) 2014-12-24 2014-12-24 特定装置、特定方法および特定プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014260629A JP6258189B2 (ja) 2014-12-24 2014-12-24 特定装置、特定方法および特定プログラム

Publications (2)

Publication Number Publication Date
JP2016122262A JP2016122262A (ja) 2016-07-07
JP6258189B2 true JP6258189B2 (ja) 2018-01-10

Family

ID=56328992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014260629A Active JP6258189B2 (ja) 2014-12-24 2014-12-24 特定装置、特定方法および特定プログラム

Country Status (1)

Country Link
JP (1) JP6258189B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6786960B2 (ja) 2016-08-26 2020-11-18 富士通株式会社 サイバー攻撃分析支援プログラム、サイバー攻撃分析支援方法およびサイバー攻撃分析支援装置
JP7183904B2 (ja) * 2019-03-26 2022-12-06 日本電信電話株式会社 評価装置、評価方法、および、評価プログラム
US11863690B2 (en) 2020-05-20 2024-01-02 Google Llc Preventing data manipulation and protecting user privacy in telecommunication network measurements

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI461953B (zh) * 2012-07-12 2014-11-21 Ind Tech Res Inst 運算環境安全方法和電子運算系統
US10097567B2 (en) * 2013-05-20 2018-10-09 Nippon Telegraph And Telephone Corporation Information processing apparatus and identifying method

Also Published As

Publication number Publication date
JP2016122262A (ja) 2016-07-07

Similar Documents

Publication Publication Date Title
US8291500B1 (en) Systems and methods for automated malware artifact retrieval and analysis
JP5972401B2 (ja) 攻撃分析システム及び連携装置及び攻撃分析連携方法及びプログラム
EP3200115B1 (en) Specification device, specification method, and specification program
CN109376078B (zh) 移动应用的测试方法、终端设备及介质
CN108429638B (zh) 一种服务器运维方法、装置、***及电子设备
JP6096389B2 (ja) 検知装置、検知方法及び検知プログラム
JP2014203464A (ja) クライアントベースローカルマルウェア検出方法
CN110929264B (zh) 漏洞检测方法、装置、电子设备及可读存储介质
CN111783096B (zh) 检测安全漏洞的方法和装置
CN101964026A (zh) 网页挂马检测方法和***
CN111163095B (zh) 网络攻击分析方法、网络攻击分析装置、计算设备和介质
WO2012103646A1 (en) Determining the vulnerability of computer software applications to privilege-escalation attacks
CN111163094B (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
JP5936798B2 (ja) ログ分析装置、不正アクセス監査システム、ログ分析プログラム及びログ分析方法
CN109997138A (zh) 用于检测计算设备上的恶意进程的***和方法
JP6258189B2 (ja) 特定装置、特定方法および特定プログラム
US11321453B2 (en) Method and system for detecting and classifying malware based on families
CN111030978B (zh) 一种基于区块链的恶意数据获取方法、装置及存储设备
Lee et al. A study on realtime detecting smishing on cloud computing environments
US10880316B2 (en) Method and system for determining initial execution of an attack
JP6018344B2 (ja) 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム
US20160210474A1 (en) Data processing apparatus, data processing method, and program
US11611570B2 (en) Attack signature generation
JP7013297B2 (ja) 不正検知装置、不正検知ネットワークシステム、及び不正検知方法
JP2019074893A (ja) 不正ログイン検出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171206

R150 Certificate of patent or registration of utility model

Ref document number: 6258189

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150