JP2017162042A - 不正処理解析装置、および不正処理解析方法 - Google Patents
不正処理解析装置、および不正処理解析方法 Download PDFInfo
- Publication number
- JP2017162042A JP2017162042A JP2016044031A JP2016044031A JP2017162042A JP 2017162042 A JP2017162042 A JP 2017162042A JP 2016044031 A JP2016044031 A JP 2016044031A JP 2016044031 A JP2016044031 A JP 2016044031A JP 2017162042 A JP2017162042 A JP 2017162042A
- Authority
- JP
- Japan
- Prior art keywords
- malware
- communication process
- host
- execution
- virtual machine
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】マルウェアが用いるコンフィグファイルを小計算機資源で高速に動的解析する不正処理解析装置とその方法を提供すること。特に、コンフィグファイルが難読化された場合にも有効な技術を提供する。
【解決手段】不正処理解析装置(1)にホストOSを動作させるホストOS実行処理部(101)、ホストOS上で、仮想化層を形成してゲストOS(103)を動作させる仮想マシン実行処理部(102)、マルウェアを実行するマルウェア実行処理部(104)、マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出部(105)、通信プロセスIDを受理して通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得部(107)、そのログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定部(107)を備え、少なくとも抽出された文字列を解析結果として出力する。
【選択図】図1
【解決手段】不正処理解析装置(1)にホストOSを動作させるホストOS実行処理部(101)、ホストOS上で、仮想化層を形成してゲストOS(103)を動作させる仮想マシン実行処理部(102)、マルウェアを実行するマルウェア実行処理部(104)、マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出部(105)、通信プロセスIDを受理して通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得部(107)、そのログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定部(107)を備え、少なくとも抽出された文字列を解析結果として出力する。
【選択図】図1
Description
本発明は、不正処理解析装置、および不正処理解析方法に関し、特にマルウェアに対する設定情報を含むコンフィグファイルの内容を解析する技術に係る。
近年のマルウェアは、攻撃対象のURLやIPアドレス、データファイル等が記述された設定情報を含むコンフィグファイルをネットワーク経由で取得し、コンフィグファイルに従って攻撃を行うものが存在する。コンフィグファイルを配信する装置はcommand and control server (C&Cサーバ)と呼ばれ、マルウェアがコンフィグファイルをC&Cサーバから取得し、その中で指示された攻撃先情報に基づいて攻撃を行うことがある。
従って、コンフィグファイルの内容を把握できれば早期に対策を行うために有効であるが、一方でコンフィグファイルは頻繁に更新されるため、更新されるたびに高速で解析を行う必要がある。
ところで、マルウェアの解析手法として静的解析と動的解析が行われている。静的解析はマルウェアを逆アセンブルするなど、人手によってマルウェアの備える機能を網羅的に解析する手法である。動的解析は、実際の環境下でマルウェアを動作させ、その時の挙動を観察することで、マルウェアの機能を解析する手法である。
この動的解析の方法の1つとして動的テイント解析と呼ばれる方法が提案されている。動的テイント解析では、例えば仮想マシンを用い、仮想CPUが、仮想メモリや仮想ディスク等でマルウェアが読み書きするデータの流れを追跡する。
特許文献1には機密情報の漏洩を検出する方法が次の通り開示されている。すなわち、第1のフェーズにおいて、仮想CPUがマルウェアを動作させ、機密情報を含むファイルがメモリに読み込まれる段階で、機密情報を含むファイルのメモリにおける格納位置に対応付けて、機密情報を意味するテイントタグを付与する。このテイントタグは、OSが管理する物理メモリとは別に用意された領域に格納される。この領域は、OSやアプリケーション(マルウェアを含む)からはアクセスできないように実装される。
第2のフェーズにおいて、仮想CPUは、レジスタとメモリ領域との間の転送命令等を監視することで、機密情報のコピーに応じてテイントタグが伝搬する。そして、第3のフェーズでは、仮想CPUは、ネットワークインタフェースから出力されるデータに、機密情報を意味するテイントタグが付与されているかを確認する。仮想CPUは、出力されるデータにテイントタグが付与されている場合、機密情報が外部へ出力されようとしたことを検出する。
また、動的テイント解析を応用した例として、デバッガにおけるブレークポイントをテイントタグにより実現する技術がある。この技術では、利用者が、プログラムを中断させたい箇所(「ブレークポイント」を設定する箇所)に対して、テイントタグを事前に割り当てる。そして、仮想CPUは、実行する命令に対応付けてテイントタグが付与されているかを検査し、テイントタグが付与されている場合にプログラムを中断する。
このような従来技術を踏まえて、特許文献1では、付与部と、特定部とを有する情報処理装置が開示されている。付与部は、解析対象であるプログラムによって通信先装置から受信されたデータに、当該通信先装置を識別可能なタグを付与する。特定部は、新たなプログラムの起動又は起動予約を検出したときに、当該新たなプログラムが実行するデータに前記タグが付与されている場合、当該タグにより識別される通信先装置を特定する。
また、関連する技術として、デバッガにおけるブレークポイントをテイントタグにより実現する技術に係る特許文献2も開示されている。
非特許文献1には、端末で発生する通信の中から、C&Cサーバとマルウェアとの通信を特定する技術が開示される。この技術によれば、C&CサーバのIPアドレスやドメインを特定することができ、対策に役立てることができる。しかし、コンフィグファイルの内容までは、把握できない。
非特許文献2には、動的解析時にマルウェアから呼び出されるAPIに関して、引数、引数に設定されたテイントタグの値、APIからマルウェアへの復帰時にAPIに追って書き込まれる値、その値に設定されたテイントタグの値をログに出力することが記載されている。ログ出力を解析することにより、マルウェアが送信時に利用したAPIとその引数、マルウェアが受信時に利用したAPIとその引数を特定することができる。
しかし、マルウェア動作時のAPIに関するログをすべて取得するので、膨大な計算機資源を必要とする。また、本技術では、APIによる暗号化や圧縮等の難読化に対して、制限があることが文献で述べられている。
しかし、マルウェア動作時のAPIに関するログをすべて取得するので、膨大な計算機資源を必要とする。また、本技術では、APIによる暗号化や圧縮等の難読化に対して、制限があることが文献で述べられている。
Jacob,G.,Hund,R.,Kruegel,C.and Holz,T."JACKSTRAWS:Picking Command and Control Connections from Bot Traffic,"Proceedings of the 20th,USENIX conference on Security,2011.
川古谷, 塩治, 岩村, 針生 "APIコール間のデータ依存関係を利用したマルウェア通信内容の特定"マルウェア対策研究人材育成ワークショップ2013(MWS 2013)
本発明は、上記従来技術の有する問題点に鑑みて創出されたものであり、マルウェアが用いるコンフィグファイルを小計算機資源で高速に動的解析する不正処理解析装置とその方法を提供することを目的とする。特に、コンフィグファイルが難読化された場合にも有効な技術を提供する。
本発明は上記課題を解決するため、本発明は次のような不正処理解析装置を提供する。
すなわち、攻撃方法に係る設定情報を含むコンフィグファイルに従って他のホストに対する不正な処理を行うマルウェアに関し、マルウェアがネットワーク上の配布サーバからコンフィグファイルを受信する構成において、マルウェアを実行する際にコンフィグファイルの内容を解析する不正処理解析装置に係る。
すなわち、攻撃方法に係る設定情報を含むコンフィグファイルに従って他のホストに対する不正な処理を行うマルウェアに関し、マルウェアがネットワーク上の配布サーバからコンフィグファイルを受信する構成において、マルウェアを実行する際にコンフィグファイルの内容を解析する不正処理解析装置に係る。
本発明では該装置に、ホストOSを動作させるホストOS実行処理部と、ホストOS上で、仮想化層を形成してゲストOSを動作させる仮想マシン実行処理部と、ゲストOS上でマルウェアを実行するマルウェア実行処理部と、マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出部と、通信プロセスIDを受理して通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得部と、ログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定部を備える。
そして、少なくとも抽出された文字列を出力することで、コンフィグファイルの内容を解析するものである。
そして、少なくとも抽出された文字列を出力することで、コンフィグファイルの内容を解析するものである。
上記のメモリ情報取得部において、上記のログファイルが所定の容量に達した時に、上記のマルウェア実行処理部がマルウェアの実行を停止するように構成してもよい。
上記のデータ特定部において用いる規則が、特定のエスケープシーケンス又は特定のキャラクターを定義したデータテーブルを用い、エスケープシーケンス又は複数のキャラクターの連続について抽出するようにしてもよい。
本発明は次のような不正処理解析方法を提供することもできる。
すなわち、コンピュータのホストOS実行処理部がホストOSを動作させ、仮想マシン実行処理部がホストOS上で、仮想化層を形成してゲストOSを動作させる構成において、
(S1)マルウェア実行処理部が、ゲストOS上でマルウェアを実行するマルウェア実行処理ステップ、
(S2)通信プロセス検出部が、マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出ステップ、
(S3)メモリ情報取得部が、通信プロセスIDを受理して通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得ステップ、
(S4)データ特定部が、ログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定ステップ、
(S5)出力部が、少なくとも抽出された文字列を出力する出力ステップ、
を有するコンピュータの不正処理解析方法を提供する。
すなわち、コンピュータのホストOS実行処理部がホストOSを動作させ、仮想マシン実行処理部がホストOS上で、仮想化層を形成してゲストOSを動作させる構成において、
(S1)マルウェア実行処理部が、ゲストOS上でマルウェアを実行するマルウェア実行処理ステップ、
(S2)通信プロセス検出部が、マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出ステップ、
(S3)メモリ情報取得部が、通信プロセスIDを受理して通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得ステップ、
(S4)データ特定部が、ログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定ステップ、
(S5)出力部が、少なくとも抽出された文字列を出力する出力ステップ、
を有するコンピュータの不正処理解析方法を提供する。
上記のメモリ情報取得ステップにおいて、上記のログファイルが所定の容量に達した時に、上記のマルウェア実行処理ステップのマルウェアの実行を停止することもできる。
上記のデータ特定ステップにおいて用いる規則が、特定のエスケープシーケンス又は特定のキャラクターを定義したデータテーブルを用い、エスケープシーケンス又は複数のキャラクターの連続について抽出する構成であってもよい。
本発明は、不正処理解析装置において実行されるコンピュータプログラムであって、上記の不正処理解析方法を実行させるための不正処理解析プログラムとして提供してもよい。
本発明は以上の構成により通信プロセスに限定してテイント解析を行い、テイント解析中の文字列操作に着目することによってコンフィグファイルに含まれる情報を解析することができる。本方法は、小計算機資源で簡易的なデータ解析を行うことにより、短時間での解析を実現し、早期対策を可能にするものである。
以下、本発明の実施形態を図面を用いて説明する。本発明は以下の実施例に限定されず請求項記載の範囲で適宜実施することができる。
図1は、本発明における不正処理解析装置(以下、本装置と呼ぶ)のブロック図であり、図2は、不正処理解析装置上で実行される不正処理解析方法のフローチャートである。
図1は、本発明における不正処理解析装置(以下、本装置と呼ぶ)のブロック図であり、図2は、不正処理解析装置上で実行される不正処理解析方法のフローチャートである。
本装置(1)は、公知のパーソナルコンピュータなどにより構成することができ、周知のように各種の処理を行うCPU(10)、CPU(10)と協働するメモリ(図示せず)、外部記憶装置(図示せず)、インターネットなどの通信ネットワークとの通信を行うネットワークアダプタ(11)、出力結果などを表示するためのモニタ(12)、キーボードやマウスなどの入力手段(図示せず)を備えている。
本発明の実施においてはネットワークアダプタ(11)を通してインターネット(2)と接続し、インターネット(2)ではマルウェアやそのコンフィグファイルを配布する配布サーバ(3)と接続される。また、本来はマルウェアの動作の結果としてインターネット(2)で接続された攻撃対象ホスト(4)に対して攻撃がなされるが、本発明では後述するように実際の攻撃は阻止される。
本装置(1)が解析対象とするのは、マルウェアに対して攻撃方法、例えば攻撃対象のURLやIPアドレスなどの設定情報を含むコンフィグファイルである。従来技術としても挙げたように近年では、最新のコンフィグファイルを配布サーバ(3)から受信して攻撃を行う攻撃方法が知られている。コンフィグファイルを用いるマルウェアの特徴として、マルウェア自体には攻撃に用いる具体的な情報を持たず、コンフィグファイルの読み出しとその指示に従った実行機能だけを有するものがある。この場合、従来のようにマルウェア単体を静的、動的に解析してもその挙動が把握できない問題があった。
また、コンフィグファイルは常に最新の攻撃態様に姿を変えるために高速に解析を行う必要もある。さらに、コンフィグファイル自体が難読化されているケースが多く、コンフィグファイルだけを解析しても定義された攻撃方法が把握できないことも、従来の技術では解決できていない課題であった。
本発明はこのようなコンフィグファイルを動的解析、特に動的テイント解析によって内容を解析すると共に、特に小計算機資源で簡易的なデータ解析の方法を提供することに寄与する技術である。
図1に示すように本装置(1)のCPU(10)上ではホストOSを動作させるホストOS実行処理部(101)、ホストOS上で、仮想化層を形成してゲストOS(103)を動作させる仮想マシン実行処理部(102)とを有する。仮想マシンを実行する環境については周知であるから詳細な説明は省略する。
ゲストOS(103)上で意図的にマルウェアを実行するマルウェア実行処理部(104)と、マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出部(105)を有する。
ここで、動的テイント解析においては仮想マシン上で実行されたプロセス全てを監視することが従来技術として知られているが、本発明ではコンフィグファイルを最適な方法で解析するために、通信プロセスが発生したことを検出する点に特徴がある。
ここで、動的テイント解析においては仮想マシン上で実行されたプロセス全てを監視することが従来技術として知られているが、本発明ではコンフィグファイルを最適な方法で解析するために、通信プロセスが発生したことを検出する点に特徴がある。
ホストOS上で実行される処理部として、通信プロセス検出部(105)から通知された通信プロセスIDを受理して通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得部(106)を備える。ここでも通信プロセスIDが使用するメモリ領域、あるいは通信プロセスIDに関連するメモリ領域だけを監視対象とすることで省資源化、簡易化に寄与している。
さらに、メモリ情報取得部(106)を取得したログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定部(107)も備える。
なお、データ特定部(107)は、本実施例では他の処理部と同一のホストOS上で処理する例を示しているが、データ特定部は他のホストOS上で動作する構成でもよい。
抽出されたデータはモニタ(12)などから出力される。
なお、データ特定部(107)は、本実施例では他の処理部と同一のホストOS上で処理する例を示しているが、データ特定部は他のホストOS上で動作する構成でもよい。
抽出されたデータはモニタ(12)などから出力される。
図2を用いて本発明の処理方法を説明する。
上述したように、コンピュータのホストOS実行処理部(101)がホストOSを動作させ、仮想マシン実行処理部(102)がホストOS上で、仮想化層を形成してゲストOSを動作させる。このような環境において、通信プロセス検出部(105)が仮想マシン上における通信プロセスの発生を監視する(S10:通信プロセス監視開始ステップ)。
上述したように、コンピュータのホストOS実行処理部(101)がホストOSを動作させ、仮想マシン実行処理部(102)がホストOS上で、仮想化層を形成してゲストOSを動作させる。このような環境において、通信プロセス検出部(105)が仮想マシン上における通信プロセスの発生を監視する(S10:通信プロセス監視開始ステップ)。
通信プロセスの監視下において、マルウェア実行処理部(104)が、ゲストOS上でマルウェアを実行する。(S11:マルウェア実行処理ステップ)
このとき、マルウェアは配布サーバ(3)からコンフィグファイルを受信するか、又は予め受信して仮想マシン上で格納されているコンフィグファイルを利用して不正処理を実行する。
このとき、マルウェアは配布サーバ(3)からコンフィグファイルを受信するか、又は予め受信して仮想マシン上で格納されているコンフィグファイルを利用して不正処理を実行する。
コンフィグファイルは配布サーバ(3)から送信される時には難読化されているケースがあるが、本発明では仮想マシン上でマルウェアを実際に動作させることにより復号されるので検出が可能になる。この点においても従来技術では不可能であった効果を奏する。
通信プロセス検出部(105)は本実施例においてゲストOS上で動作することとしているが、本発明ではこれに限定されない。通信プロセス検出部(105)はホストOS上で動作する構成でもよい。
通信プロセス検出部(105)が、マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、メモリ情報取得部(106)に対してその通信プロセスIDを通知する。(S12:通信プロセス検出ステップ)
プロセスIDは、一般的にはOSのAPIによって取得することが出来るが、例えばAPIフックの技術により隠匿されたプロセスIDを取得するなど、公知の取得技術を用いることができる。
プロセスIDは、一般的にはOSのAPIによって取得することが出来るが、例えばAPIフックの技術により隠匿されたプロセスIDを取得するなど、公知の取得技術を用いることができる。
次に、メモリ情報取得部(106)が、通信プロセスIDを受理して通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、当該メモリ領域において書き込み(書き換え)処理が行われた時にそのメモリダンプをログファイルとして保存する。(S13:メモリ情報取得ステップ)
メモリ情報取得部(106)における監視は公知のテイント解析によって行われ、ゲストOS(103)が使用するメモリとして割り当てることで実現された仮想メモリを監視の対象とする。仮想メモリの構成についても公知であるが、本装置(1)の物理メモリにおける所定領域を仮想マシン上で動作するゲストOS(103)が使用するメモリとして割り当てることで実現されている。
メモリ情報取得部(106)における監視は公知のテイント解析によって行われ、ゲストOS(103)が使用するメモリとして割り当てることで実現された仮想メモリを監視の対象とする。仮想メモリの構成についても公知であるが、本装置(1)の物理メモリにおける所定領域を仮想マシン上で動作するゲストOS(103)が使用するメモリとして割り当てることで実現されている。
メモリ情報取得ステップ(S13)において、通信プロセスIDが使用する仮想メモリからそのメモリダンプを物理メモリ上のホストOSが使用するメモリ領域、又は外部記憶装置上にログファイル(20)として記録する。
このとき、通信プロセスIDが使用するメモリダンプだけを保存するので従来よりも大幅にログファイルの容量を小さくすることができる。
このとき、通信プロセスIDが使用するメモリダンプだけを保存するので従来よりも大幅にログファイルの容量を小さくすることができる。
ここで、テイント解析では、検体が使用するメモリダンプをログファイルとして記録しているが、この解析処理は処理に従って書き換えられるメモリダンプを全て監視し記憶するために大きな計算機資源とメモリ容量が必要である。本発明では通信プロセスIDが使用するメモリダンプだけを監視し、記録するので大幅に処理を軽減化することができる。
ただし、本発明においてもマルウェアを動作させる時間によりメモリダンプを保存したログファイルのサイズがどんどん増加する場合がある。そこで、次のデータ特定部(107)による処理を効率化するために、ログファイルのサイズが例えば5Mbyte〜10Mbyteとなるようにマルウェア実行処理部(104)におけるマルウェアの実行を停止させることもできる。
このとき、ログファイル(20)の容量を監視して所定容量となったときにマルウェアの実行を停止させることもできるし、予め実行時間を定めてその時間だけ実行するようにしてもよい。
このとき、ログファイル(20)の容量を監視して所定容量となったときにマルウェアの実行を停止させることもできるし、予め実行時間を定めてその時間だけ実行するようにしてもよい。
次に、データ特定部(107)が、ログファイル(20)から、あらかじめ定義される規則に従った文字列を抽出する。(S14:データ特定ステップ)
データ特定部(107)は、メモリ情報取得部(106)が作成したログフィル(20)を解析し、URL、IPアドレス等のコンフィグファイルに含まれる情報を抽出する。このように抽出される情報は、コンフィグファイルが定義する攻撃対象である可能性が高い。
データ特定部(107)は、メモリ情報取得部(106)が作成したログフィル(20)を解析し、URL、IPアドレス等のコンフィグファイルに含まれる情報を抽出する。このように抽出される情報は、コンフィグファイルが定義する攻撃対象である可能性が高い。
ここでコンフィグファイルについて詳述する。図3は、コンフィグファイル(30)の一例を示している。この例では、マルウェアに予め備えられるコンフィグファイル(30)の内容を示しており、コンフィグファイルの所在(すなわち配布サーバ(3))を示すURL情報(31)、マルウェアの配布サーバを示すURL情報(32)、コンフィグファイルを復号する際の鍵(33)、別の攻撃サーバを追加するための情報(34)などを備えている。もちろんこれらの情報自体はマルウェアに格納されており通常は不可視である。
図3のコンフィグファイルでは、コンフィグファイルとマルウェア自身のダウンロード場所を指定している。これにより、新しい機能と攻撃対象を更新する。コンフィグファイルとマルウェアのバイナリを別のサーバに配置し、分散環境を構築している点も従来の解析方法では解析しきれない原因となる。
図4は、配布サーバ(3)から配布されるコンフィグファイル(40)の一例であり、攻撃対象の大手銀行に関する攻撃方法を定義している。例えば、図3のコンフィグファイルに記載されたコンフィグファイルの所在を示すURL情報(31)から実際に取得されるコンフィグファイルと考えると分かりやすい。
このコンフィグファイル(40)では、攻撃対象の大手銀行のURL情報(41)が定義されている。このURLにアクセスした場合に、正規にネットバンキングで問い合わせられる情報に変えて、ユーザーに対して入力を求める書き換え情報(42)が記載されている。例えば、パスワードを入力される画面に合わせて、アクセスキーを同時に入力させてしまうようなフィールド情報(偽画面情報)である。
ここでもコンフィグファイルは難読化されており通常は不可視であることが多い。
ここでもコンフィグファイルは難読化されており通常は不可視であることが多い。
以上のように、コンフィグファイルにはさまざな設定情報が含まれている。まとめると、端末に感染しているマルウェア自身を更新するための、ダウンロード場所、コンフィグファイルを更新するためのダウンロードURL、情報を盗み出す対象のURL、そのURLにユーザがアクセスした際に表示する偽画面情報などである。
また、スパムを送信するマルウェアのコンフィグファイルでは、スパムを送る際のメールの内容が含まれる場合もある。
また、スパムを送信するマルウェアのコンフィグファイルでは、スパムを送る際のメールの内容が含まれる場合もある。
本発明は、マルウェアによる通信プロセスを監視することで、不可視であったコンフィグファイルについても、可視化されてメモリダンプに表れたときに、この文字列を抽出するものである。
データ特定部(107)では、ログファイル(20)から、あらかじめ定義される規則に従った文字列を抽出するが、その時の文字列の特定方法の例を説明する。
まず、メモリや外部記憶装置に上記の規則として、特定のエスケープシーケンス又は特定のキャラクターを定義したデータテーブルを用い、エスケープシーケンス又は複数のキャラクターの連続について抽出する構成とすることができる。
まず、メモリや外部記憶装置に上記の規則として、特定のエスケープシーケンス又は特定のキャラクターを定義したデータテーブルを用い、エスケープシーケンス又は複数のキャラクターの連続について抽出する構成とすることができる。
エスケープシーケンスとしては、例えば’\n’等がある場合には、エスケープシーケンスで終端される部分を文字列と判断する。また、複数のキャラクターテーブルを備え、キャラクターであるかどうかを判別する。キャラクターであるものが3文字以上連続した場合、該当部分を文字列と判断する。
さらに抽出する文字列を絞る場合には、
・httpから始まるもののみ、
・ipv4アドレスの形式(1バイトずつ“.”で区切って10進数で表記) ***.***.***.***
・ipv6アドレス形式(2バイトずつ“:”で区切って、16進数) 2001:0db8:0000:0000:0000:0000:dead:beaf
に当てはまるもののみを抽出することもできる。
・httpから始まるもののみ、
・ipv4アドレスの形式(1バイトずつ“.”で区切って10進数で表記) ***.***.***.***
・ipv6アドレス形式(2バイトずつ“:”で区切って、16進数) 2001:0db8:0000:0000:0000:0000:dead:beaf
に当てはまるもののみを抽出することもできる。
ログファイル(20)から特定の文字列の抽出方法は公知であるから本発明では限定されないが、上述したコンフィグファイルに含まれる有意な情報を抽出することができる。
例えば、passwordやkeyなど攻撃にしばしば使われる文字列を抽出してもよいし、あるいは辞書データを備えて、辞書に含まれる文字、すなわち言語として有意な文字列を全て抽出することもできる。
例えば、passwordやkeyなど攻撃にしばしば使われる文字列を抽出してもよいし、あるいは辞書データを備えて、辞書に含まれる文字、すなわち言語として有意な文字列を全て抽出することもできる。
図5は、本発明において取得される文字列情報(50)の一例を示す。本装置(1)からは、このような文字列情報(50)を例えばモニタ(12)からの表示として出力する。(S15:解析結果出力ステップ)
本発明は、不正処理解析装置において実行されるコンピュータプログラムであって、上記の不正処理解析方法を実行させるための不正処理解析プログラムとして提供してもよい。
本発明は以上の構成により通信プロセスに限定してテイント解析を行い、テイント解析中の文字列操作に着目することによってコンフィグファイルに含まれる情報を解析することができる。
一方、従来のテイント解析はプロセスを限定せずに解析している。テイント解析の処理中は、マルウェア自体の処理が非常に遅くなるため、テイント解析のタイミングを絞ることが解析の効率化において特に有効である。
本方法は、小計算機資源で簡易的なデータ解析を行うことにより、短時間での解析を実現し、早期対策を可能にするものである。
一方、従来のテイント解析はプロセスを限定せずに解析している。テイント解析の処理中は、マルウェア自体の処理が非常に遅くなるため、テイント解析のタイミングを絞ることが解析の効率化において特に有効である。
本方法は、小計算機資源で簡易的なデータ解析を行うことにより、短時間での解析を実現し、早期対策を可能にするものである。
1 不正処理解析装置
2 インターネット
3 配布サーバ
4 攻撃対象ホスト
10 CPU
11 ネットワークアダプタ
12 モニタ
101 ホストOS実行処理部
102 仮想マシン実行処理部
103 ゲストOS
104 マルウェア実行処理部
105 通信プロセス検出部
106 メモリ情報取得部
107 データ特定部
2 インターネット
3 配布サーバ
4 攻撃対象ホスト
10 CPU
11 ネットワークアダプタ
12 モニタ
101 ホストOS実行処理部
102 仮想マシン実行処理部
103 ゲストOS
104 マルウェア実行処理部
105 通信プロセス検出部
106 メモリ情報取得部
107 データ特定部
Claims (7)
- 攻撃方法に係る設定情報を含むコンフィグファイルに従って他のホストに対する不正な処理を行うマルウェアに関し、該マルウェアがネットワーク上の配布サーバから該コンフィグファイルを受信する構成において、該マルウェアを実行する際に該コンフィグファイルの内容を解析する不正処理解析装置であって、
ホストOSを動作させるホストOS実行処理部と、
該ホストOS上で、仮想化層を形成してゲストOSを動作させる仮想マシン実行処理部と、
該ゲストOS上で該マルウェアを実行するマルウェア実行処理部と、
該マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出部と、
該通信プロセスIDを受理して該通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得部と、
該ログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定部
を備え、少なくとも抽出された該文字列を出力する
ことを特徴とする不正処理解析装置。 - 前記メモリ情報取得部において、前記ログファイルが所定の容量に達した時に、前記マルウェア実行処理部がマルウェアの実行を停止する
請求項1に記載の不正処理解析装置。 - 前記データ特定部において用いる前記規則が、特定のエスケープシーケンス又は特定のキャラクターを定義したデータテーブルを用い、該エスケープシーケンス又は複数のキャラクターの連続について抽出する構成である
請求項1又は2に記載の不正処理解析装置。 - 攻撃方法に係る設定情報を含むコンフィグファイルに従って他のホストに対する不正な処理を行うマルウェアに関し、該マルウェアがネットワーク上の配布サーバから該コンフィグファイルを受信する構成において、該マルウェアを実行する際に該コンフィグファイルの内容を解析する不正処理解析方法であって、
コンピュータのホストOS実行処理部がホストOSを動作させ、仮想マシン実行処理部がホストOS上で、仮想化層を形成してゲストOSを動作させる構成において、
マルウェア実行処理部が、該ゲストOS上で該マルウェアを実行するマルウェア実行処理ステップ、
通信プロセス検出部が、該マルウェアの実行中に仮想マシン上で通信プロセスが発生したことを検出し、その通信プロセスIDを通知する通信プロセス検出ステップ、
メモリ情報取得部が、該通信プロセスIDを受理して該通信プロセスIDに関する仮想マシン上のメモリ領域を監視し、メモリダンプをログファイルとして保存するメモリ情報取得ステップ、
データ特定部が、該ログファイルから、あらかじめ定義される規則に従った文字列を抽出するデータ特定ステップ、
出力部が、少なくとも抽出された該文字列を出力する出力ステップ、
を有することを特徴とするコンピュータの不正処理解析方法。 - 前記メモリ情報取得ステップにおいて、前記ログファイルが所定の容量に達した時に、前記マルウェア実行処理ステップのマルウェアの実行を停止する
請求項4に記載の不正処理解析方法。 - 前記データ特定ステップにおいて用いる前記規則が、特定のエスケープシーケンス又は特定のキャラクターを定義したデータテーブルを用い、該エスケープシーケンス又は複数のキャラクターの連続について抽出する構成である
請求項4又は5に記載の不正処理解析方法。 - 不正処理解析装置において実行されるコンピュータプログラムであって、
前記請求項4ないし6のいずれかに記載の不正処理解析方法を実行させるための不正処理解析プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016044031A JP2017162042A (ja) | 2016-03-08 | 2016-03-08 | 不正処理解析装置、および不正処理解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016044031A JP2017162042A (ja) | 2016-03-08 | 2016-03-08 | 不正処理解析装置、および不正処理解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017162042A true JP2017162042A (ja) | 2017-09-14 |
Family
ID=59852961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016044031A Pending JP2017162042A (ja) | 2016-03-08 | 2016-03-08 | 不正処理解析装置、および不正処理解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017162042A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022195739A1 (ja) * | 2021-03-16 | 2022-09-22 | 日本電信電話株式会社 | 活動痕跡抽出装置、活動痕跡抽出方法および活動痕跡抽出プログラム |
-
2016
- 2016-03-08 JP JP2016044031A patent/JP2017162042A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022195739A1 (ja) * | 2021-03-16 | 2022-09-22 | 日本電信電話株式会社 | 活動痕跡抽出装置、活動痕跡抽出方法および活動痕跡抽出プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797677B2 (en) | Cloud based just in time memory analysis for malware detection | |
US10489583B2 (en) | Detecting malicious files | |
US11550912B2 (en) | Detection of exploitative program code | |
US11151252B2 (en) | Just in time memory analysis for malware detection | |
US20200065492A1 (en) | Malicious Program Identification Based on Program Behavior | |
CN107004088B (zh) | 确定装置、确定方法及记录介质 | |
KR20070118074A (ko) | 외래 코드 검출을 위한 시스템 및 방법 | |
US9742804B2 (en) | Computer network defense system | |
JPWO2016203759A1 (ja) | 分析システム、分析方法、分析装置及び、コンピュータ・プログラムが記憶された記録媒体 | |
JP6096389B2 (ja) | 検知装置、検知方法及び検知プログラム | |
US10902122B2 (en) | Just in time memory analysis for malware detection | |
US9202053B1 (en) | MBR infection detection using emulation | |
CN110659478A (zh) | 在隔离的环境中检测阻止分析的恶意文件的方法 | |
JP2017204173A (ja) | データ保護プログラム、データ保護方法及びデータ保護装置 | |
JP2017162042A (ja) | 不正処理解析装置、および不正処理解析方法 | |
Chen et al. | Combating the OS-level malware in mobile devices by leveraging isolation and steganography | |
JP6258189B2 (ja) | 特定装置、特定方法および特定プログラム | |
US11914711B2 (en) | Systems and methods for automatically generating malware countermeasures | |
Gilbert et al. | Dymo: Tracking dynamic code identity | |
WO2020255185A1 (ja) | 攻撃グラフ加工装置、方法およびプログラム | |
US12001554B2 (en) | Just in time memory analysis for malware detection | |
JP6687844B2 (ja) | マルウエア解析装置、マルウエア解析方法及びマルウエア解析プログラム | |
JP7013297B2 (ja) | 不正検知装置、不正検知ネットワークシステム、及び不正検知方法 | |
Easttom et al. | Windows Memory Forensics: Chuck Easttom, Ph. D., D. Sc. | |
Balci et al. | Art of anti detection–1 introduction to av & detection techniques |