JP5437977B2 - 解析システム、解析装置、解析方法及び解析プログラム - Google Patents

解析システム、解析装置、解析方法及び解析プログラム Download PDF

Info

Publication number
JP5437977B2
JP5437977B2 JP2010251733A JP2010251733A JP5437977B2 JP 5437977 B2 JP5437977 B2 JP 5437977B2 JP 2010251733 A JP2010251733 A JP 2010251733A JP 2010251733 A JP2010251733 A JP 2010251733A JP 5437977 B2 JP5437977 B2 JP 5437977B2
Authority
JP
Japan
Prior art keywords
analysis
malware
execution trace
unit
malicious program
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
JP2010251733A
Other languages
English (en)
Other versions
JP2012103893A (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 JP2010251733A priority Critical patent/JP5437977B2/ja
Publication of JP2012103893A publication Critical patent/JP2012103893A/ja
Application granted granted Critical
Publication of JP5437977B2 publication Critical patent/JP5437977B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、解析システム、解析装置、解析方法及び解析プログラムに関する。
従来、コンピュータウイルスやスパイウェアといった不正なコンピュータプログラムが知られている。このような不正プログラムは、マルウェア(Malware)とも呼ばれている。近年、マルウェアによる被害を低減させるために、マルウェアに関する種々の解析が行われている。
例えば、コンピュータがマルウェアに感染した場合に、どのような通信を発生させるのか、または、コンピュータの内部資源にどのような影響を及ぼすのかなどを調べるための解析が行われている。なお、内部資源とは、例えば、不揮発性記憶媒体、揮発性記憶媒体及びそれら記憶媒体によって記憶されるデータなどである。
上述したような解析を実行するための手法としては、例えば、マルウェアのバイナリ(Binary)データを逆アセンブル(Assemble)する静的解析手法が知られている(非特許文献1)。しかしながら、マルウェアの静的解析手法は、機械語命令とデータとが混在するバイナリ列の逆アセンブルが困難であり、解析者のスキルに依存した部分が多い。また、マルウェアの静的解析手法は、マルウェアに内在する耐解析技術が高度化しているため、解析に要する時間が膨大となってしまう(非特許文献2)。
そこで、マルウェアの解析を実行する他の手法として、例えば、動的解析手法が知られている(特許文献1)。動的解析手法は、マルウェアをコンピュータ内で実際に動作させて挙動を解析する解析手法である。動的解析手法では、まず、マルウェアを動作させる動作時間を設定する。そして、動的解析手法では、設定した動作時間でマルウェアを動作させ、動作させている間、マルウェアが実行したプログラムコードに基づいた挙動を解析する。
特開2009−181335号公報
Konstantin Rozinov 「REVERSE CODE ENGINEERING: AN IN-DEPTH ANALYSIS OF THE BAGLE VIRUS」 Lucent Technologies Mark Vincent Yason 「The Art of Unpacking」 Black Hat USA 2007 Briefings
しかしながら、上述した従来技術では、動作時間が異なるマルウェアを効率よく解析することができないという問題があった。
具体的には、上述した従来技術では、マルウェアを動作させる動作時間を一意に設定するだけであり、動作時間が異なるマルウェアを効率よく解析することができない。例えば、マルウェアには、実行直後に特定の動作を示すだけのものや、実行直後に一定の動作を示した後に待機し、特定の時間が経過してから新たな動作を示すものなどが存在する。従って、例えば、設定した動作時間が、実際にマルウェアが動作する時間よりも長い場合には、解析時間に無駄が生じてしまう。また、設定した動作時間が、実際にマルウェアが動作する時間よりも短い場合には、マルウェアを十分に動作させることができず、不完全な解析結果しか取得できないという事態が生じてしまう。すなわち、上述した従来技術では、マルウェアの動作時間を一意に設定することで、解析時間に無駄が生じたり、不完全な解析結果しか取得できなかったりしてしまい、動作時間が異なるマルウェアを効率よく解析することができない。
そこで、本開示の技術は、上述した従来技術の問題に鑑みて、動作時間が異なるマルウェアを効率よく解析することを可能とする解析システム、解析装置、解析方法及び解析プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示のシステムは、コンピュータ内で不正な動作を行う不正プログラムを実行する不正プログラム実行環境と前記不正プログラムの挙動を解析する解析装置とを含む解析システムであって、前記解析装置の収集手段が、前記不正プログラム実行環境によって実行された不正プログラムが前記コンピュータ内で行った動作である実行命令の配置されているアドレスを含む情報を収集する。そして、算出手段が、前記収集手段によって収集された実行命令の配置されているアドレスを含む情報の任意の時間に対する増加量を算出する。そして、判定手段が、前記算出手段によって算出された増加量に基づいて、前記不正プログラムの解析を終了させるか否かを判定する。そして、制御手段が、前記判定手段によって前記不正プログラムの解析を終了すると判定された場合に、前記不正プログラム実行環境によって実行されている不正プログラムの解析を終了させる。
開示のシステムは、動作時間が異なるマルウェアを効率よく解析することを可能にする。
図1は、実施例1に係る解析システムの構成の一例を示す図である。 図2は、実行トレース記憶部によって記憶される実行トレースの一例を説明するための図である。 図3は、実行トレース解析部による実行トレースの増加量の算出を説明するための図である。 図4は、実行トレース解析部によって算出された実行トレースの増加量の経時変化を説明するための図である。 図5は、実行トレース量の経時変化の一例を説明するための図である。 図6は、実行トレースの増加量の経時変化の一例を説明するための図である。 図7は、実行トレース解析部によるマルウェア解析の終了判定処理の一例を説明するための図である。 図8は、実施例1に係る解析システムによる実行トレース収集処理の手順を示すフローチャートである。 図9は、実施例1に係る解析システムによるマルウェア解析の終了判定処理の手順を示すフローチャートである。 図10は、解析プログラムを実行するコンピュータを示す図である。
以下に添付図面を参照して、本願の開示する解析システム、解析装置、解析方法及び解析プログラムの実施例を詳細に説明する。なお、本願の開示する解析システム、解析装置、解析方法及び解析プログラムは、以下の実施例により限定されるものではない。
実施例1に係る解析システムは、コンピュータ内で不正な動作を行う不正プログラムによって実行された命令の増加量を経時的に監視して、当該不正プログラムによって実行される命令が終了したか否かを判定する。そして、実施例1に係る解析システムは、当該不正プログラムによって実行される命令が終了したと判定した場合に、解析を終了するように制御する。なお、不正プログラムとは、例えば、コンピュータウイルスやスパイウェアなどである。また、以下では、不正プログラムをマルウェアと記載する場合がある。
具体的には、実施例1に係る解析システムは、不正プログラムによって実行された命令と当該命令のコードが配置されているアドレスとを対応付けて順次記憶する。そして、実施例1に係る解析システムは、順次記憶した命令及びアドレスの単位時間当たりの増加量を算出し、算出した増加量に基づいて解析を終了するか否かを判定する。ここで、解析を終了すると判定した場合に、実施例1に係る解析システムは、不正プログラムの解析を終了するように制御する。
従って、実施例1に係る解析システムは、不正プログラムごとに異なる動作時間を考慮した解析を行うことができる。すなわち、実施例1に係る解析システムによれば、種々のマルウェアに対して、それぞれ最適な解析時間で解析を行うことができ、動作時間が異なるマルウェアを効率よく解析することを可能にする。例えば、解析対象のマルウェアが実行直後に特定の動作を示すだけのものであった場合でも、実施例1に係る解析システムは、解析時間に無駄が生じることを抑止することできる。また、例えば、解析対象のマルウェアが実行直後に一定の動作を示した後に待機し、特定の時間が経過してから新たな動作を示すものであった場合でも、実施例1に係る解析システムは、マルウェアを十分に動作させることができ、解析結果が不完全になるという事態が生じることを抑止することができる。
[実施例1に係る解析システムの構成]
実施例1に係る解析システム1の構成について説明する。図1は、実施例1に係る解析システム1の構成の一例を示す図である。図1に示すように、実施例1に係る解析システム1は、マルウェアの挙動を解析する解析装置100にマルウェアを動作させるマルウェア実行環境部50を内蔵している。以下では、マルウェア実行環境が解析装置100に内蔵された解析システムについて説明するが、開示の技術はこれに限定されるものではなく、例えば、マルウェア実行環境部50を備えた他の装置が解析装置100に接続される場合であってもよい。
そして、解析システム1においては、解析装置100がネットワーク200を介して接続先300と接続されている。接続先300は、解析装置100において実行されるマルウェアによって要求される通信の接続先である。例えば、接続先300は、ネットワーク200に接続された所定のホストや、或いは、ホストに記憶されている所定のコンテンツなどである。例を挙げれば、接続先300は、ダウンローダによってダウンロードされるマルウェアを記憶するホストや、攻撃者がマルウェアに対する命令を記憶させたホストである。なお、図1においては、接続先が1台のみ示されているが、実際には複数の接続先がネットワーク200を介して解析装置100に接続されている。また、図示しない他の接続先としては、例えば、ダウンローダによってダウンロードされるマルウェアやマルウェアに対する命令などを記憶していないホストなども含まれる。
解析装置100は、図1に示すように、入出力制御I/F部10と、入力部20と、表示部30と、通信部40と、マルウェア実行環境部50と、解析データ記憶部61と、実行トレース記憶部62と、制御部70とを有している。なお、解析装置100は、例えば、PC(Personal Computer)、ワークステーション又は解析用の専用装置である。また、解析データ記憶部61及び実行トレース記憶部62は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。また、マルウェア実行環境部50及び制御部70は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。言い換えると、マルウェア実行環境部50及び制御部70は、物理メモリに展開された各種プログラムを読込んで実行することなどにより、各種処理を実行する。
入出力制御I/F部10は、入力部20、表示部30、通信部40と制御部70との間での各種情報のやり取りを制御するインタフェースである。入力部20は、例えば、解析者による種々の情報の入力処理を受付ける。例えば、入力部20は、キーボードやタッチパネルなどである。表示部30は、例えば、解析者に対して解析結果を表示出力する。例えば、表示部30は、ディスプレイなどである。通信部40は、解析装置100と接続先300との間の通信を制御する。
マルウェア実行環境部50は、コンピュータ内で不正な動作を行うマルウェアを実行する。具体的には、マルウェア実行環境部50は、解析者によって入力されたり、ネットワーク上から取得されたりした解析対象のマルウェアに動作を実行させ、実行させたマルウェアによって要求された各種情報を後述する制御部70に転送する。各種情報としては、例えば、マルウェアが発生させた通信に関する解析結果や、内部リソースアクセス結果、実行トレースなどである。なお、実行トレースについては、後に詳述する。
解析データ記憶部61は、解析装置100によって解析されたマルウェアの情報を記憶する。具体的には、解析データ記憶部61は、マルウェア実行環境部50によって実行され、後述する制御部70によって解析されたマルウェアの挙動などを記憶する。
実行トレース記憶部62は、後述する制御部70の処理結果を記憶する。具体的には、実行トレース記憶部62は、後述する制御部70によって収集された実行トレースを記憶する。ここで、実行トレースとは、マルウェア実行環境部50によって実行されたマルウェアによって要求された命令と当該命令のアドレスとを対応付けた情報である。図2は、実行トレース記憶部62によって記憶される実行トレースの一例を説明するための図である。
図2に示すように、実行トレース記憶部62は、アドレスと命令とを対応付けた実行トレースを記憶する。ここで、「アドレス」とは、マルウェアによって実行される命令のコードが配置されている場所を意味している。また、「命令」とは、マルウェアがコンピュータに実行させる動作を意味している。
例えば、実行トレース記憶部62は、図2に示すように、実行トレースとして「アドレス:0x7C802470、命令:mov edi、edi」を記憶する。なお、上記実行トレースは、メモリアドレス「0x7C802470」に記録されている「mov edi、edi」という命令を実行し、「edi」の値を「edi」の値にすることを意味している。同様に、実行トレース記憶部62は、後述する制御部70によって収集された実行トレース「アドレス:0x7C802472、命令:push ebp」などを順次記憶する。
図1に戻って、制御部70は、応答処理部71と、マルウェア解析部72と、実行トレース収集部73と、実行トレース解析部74と、解析システム制御部75とを有し、マルウェアの通信に対する処理、マルウェアが行う内部リソースアクセスの監視、実行トレースの取得などの各種処理を実行する。応答処理部71は、マルウェア実行環境部50により実行されたマルウェアが要求する接続先との通信を行い、接続先とのデータの送受信を実行する。例えば、応答処理部71は、マルウェア実行環境部50によって実行されたマルウェアの要求に基づいて、接続先300との通信を行い、接続先300に格納された新たなマルウェアを取得する。そして、応答処理部71は、接続先300から取得した新たなマルウェアをマルウェア実行環境部50に転送する。
マルウェア解析部72は、マルウェア実行環境部50によって実行されたマルウェアの挙動を解析して、解析したマルウェアの情報を解析データ記憶部61に格納したり、解析結果を表示部30に表示させたりする。
実行トレース収集部73は、マルウェア実行環境部50によって実行されたマルウェアが要求した命令と当該命令のアドレスとを対応付けた実行トレースを収集する。そして、実行トレース収集部73は、収集した実行トレースを実行トレース記憶部62に格納する。具体的には、実行トレース収集部73は、まず、マルウェア実行環境部50によって実行されるマルウェアのプロセスを、自身が有する実行トレース収集対象プロセスリストに登録する。なお、実行トレース収集部73は、実行トレース対象プロセスリストを記憶するメモリを有している。
そして、実行トレース収集部73は、実行トレース対象プロセスリストに登録したマルウェアのプロセスによって要求された命令と当該命令のアドレスとを実行トレースとして収集し、収集した実行トレースを実行トレース記憶部62に格納する。例えば、実行トレース収集部73は、図2に示すように、マルウェア実行環境部50によって実行されたマルウェアのプロセスが要求した実行トレース「アドレス:0x7C802470、命令:mov edi、edi」を収集して、収集した実行トレースを実行トレース記憶部62に格納する。そして、実行トレース収集部73は、実行トレース対象プロセスリストに登録したマルウェアのプロセスによって要求された実行トレースを順次収集して、図2に示すように、収集した実行トレースを実行トレース記憶部62に格納する。
ここで、マルウェア実行環境部50が実行したマルウェアによって新たなマルウェアが取得された場合について説明する。例えば、このような場合としては、マルウェアがネットワーク上の接続先300から新たなマルウェアを取得するように要求したり、自身のデータ部分から新たなマルウェアを切り出すように要求したりする場合などである。
ネットワーク上から新たなマルウェアが取得される場合には、応答処理部71がネットワーク200を介して接続先300と通信を行い、新たなマルウェアを取得する。そして、応答処理部71は、取得した新たなマルウェアをマルウェア実行環境部50に転送する。ここで、実行トレース収集部73は、新たに取得したマルウェアがマルウェア実行環境部50で実行され、新しいプロセスが生起したことを検出し、新たなマルウェアのプロセスを実行トレース対象プロセスリストに追加する。また、自身のデータ部分から新たなマルウェアが切り出される場合には、マルウェア実行環境部50が、現時点で動作させているマルウェアのデータ部分から新たなマルウェアを切り出す。そして、実行トレース収集部73が、新たに取得したマルウェアがマルウェア実行環境部50で実行され、新しいプロセスが生起したことを検出し、新たなマルウェアのプロセスを実行トレース対象プロセスリストに追加する。すなわち、実行トレース収集部73は、最初に登録したマルウェアによって取得された新たなマルウェアのプロセスが要求した実行トレースも収集し、収集した実行トレースを実行トレース記憶部62に格納する。
実行トレース解析部74は、マルウェア実行環境部50によって実行されたマルウェアのプロセスが要求した命令とアドレスとを対応付けた実行トレースを計数して、所定の時間に対する増加量を算出する。そして、実行トレース解析部74は、算出した増加量に基づいて、マルウェアの解析を終了するか否かを判定する。
具体的には、実行トレース解析部74は、実行トレース記憶部62によって記憶された実行トレースを読み出し、読み出した実行トレースを自身が有する実行済みコードリストに追加する。そして、実行トレース解析部74は、実行済みコードリストに追加した実行トレースの量を経時的に計数して、単位時間当たりの実行トレースの増加量を算出する。なお、実行トレース解析部74は、実行済みコードリストを記憶するメモリを有している。
ここで、実行トレース解析部74は、実行トレース記憶部62から読み出した実行トレースが実行済みコードリストに既に存在する場合には、読み出した実行トレースの実行済みコードリストへの追加を行わない。すなわち、実行トレース解析部74は、実行済みコードリストに追加されていない実行トレースを実行済みコードリストに追加する。
図3は、実行トレース解析部74による実行トレースの増加量の算出を説明するための図である。図3においては、実行済みコードリストに追加された実行トレースの量の経時変化を示している。ここで、図3に示す縦軸は、実行済みコードリストに含まれている実行トレースの量を示している。また、図3に示す横軸は、マルウェア実行環境部50によって実行されたマルウェアの解析時間を示している。また、図3に示す「t」は、単位時間を示している。また、図3に示す「i1」は、解析開始から単位時間「t」が経過した時点の実行トレースの増加量を示している。また、図3に示す「i2」は、解析開始から単位時間「t」が経過した時点からさらに単位時間「t」が経過した時点の実行トレースの増加量を示している。なお、単位時間「t」は、解析システム1の管理者によって任意の時間が決定され、予め設定される。
図3に示すように、実行済みコードリストに追加された実行トレース量は、解析開始から増加し、解析時間が経過するとほぼ一定となる。これは、実行トレース量が増加している間はマルウェアが動作中であり、実行トレース量がほぼ一定になった時点でマルウェアの動作が終了したことを示している。すなわち、単位時間当たりの実行トレース量を算出することにより、マルウェア実行環境部50によって実行されたマルウェアが動作中であるか否かを判定することが可能となる。
例えば、実行トレース解析部74は、図3に示すように、実行済みコードリストに追加された実行トレースの量を経時的に計数して時間「t」が経過した時点の実行トレースの増加量「i1」を算出する。そして、実行トレース解析部74は、図3に示すように、「i1」を算出した時点から単位時間「t」が経過した時点の実行トレースの増加量として、「i1」を算出した時点から単位時間「t」が経過した時点の実行トレース量から「i1」を減算した値「i2」を算出する。このように、実行トレース解析部74は、単位時間「t」当たりの実行トレースの増加量を算出する。
図4は、実行トレース解析部74によって算出された実行トレースの増加量の経時変化を説明するための図である。図4においては、図3に示す増加量の経時変化をグラフにしたものである。ここで、図4に示す縦軸は、実行トレース解析部74によって算出された実行トレース量の増加量を示している。また、図4に示す横軸は、マルウェア実行環境部50によって実行されたマルウェアの解析時間を示している。また、図4に示す「t」は、単位時間を示している。また、図4に示す「i1」は、解析開始から単位時間「t」が経過した時点の実行トレースの増加量を示している。また、図4に示す「i2」は、解析開始から単位時間「t」が経過した時点からさらに単位時間「t」が経過した時点の実行トレースの増加量を示している。
図4に示すように、実行トレースの増加量は、時間の経過に伴って減少していき、解析開始から所定の時間が経過すると、ほぼ「0」に近い状態となる。新たなコードが実行されないということは、当該マルウェアから新たな挙動を観測していないことを意味する。すなわち、実行トレースの増加量がほぼ「0」に近い状態になった時点で、マルウェア実行環境部50によって実行されたマルウェアの動作が終了したと判定することができる。
ところで、マルウェアは種々の動作パターンを有している。例えば、上述したように、実行直後に特定の動作を示すだけのマルウェアや、実行直後に一定の動作を示した後に待機し、特定の時間が経過してから新たな動作を示すマルウェアなどが存在する。解析対象が実行直後に特定の動作を示すだけのマルウェアであった場合には、実行トレース量は、図3に示すように、解析開始から増加し、解析時間が経過するとほぼ一定となる。すなわち、実行トレースの増加量は、図4に示すように、時間の経過に伴って減少していき、解析開始から所定の時間が経過すると、ほぼ「0」に近い状態となる。
一方、解析対象が実行直後に一定の動作を示した後に待機し、特定の時間が経過してから新たな動作を示すマルウェアであった場合には、実行トレース量及び実行トレースの増加量は、それぞれ図3及び図4とは異なる経時変化を示す。図5は、実行トレース量の経時変化の一例を説明するための図である。ここで、図5に示す縦軸は、実行済みコードリストに含まれている実行トレース量を示している。また、図5に示す横軸は、マルウェア実行環境部50によって実行されたマルウェアの解析時間を示している。
例えば、解析対象が実行直後に一定の動作を示した後に待機し、特定の時間が経過してから新たな動作を示すマルウェアであった場合には、実行トレース量は、図5に示すように、解析開始から増加した後、一定になり、再度増加することとなる。そして、実行トレース量は、マルウェアの新たな動作が終了すると再度一定となる。このようなマルウェアの場合には、実行トレースの増加量は、図6に示すような経時変化を示すこととなる。
図6は、実行トレースの増加量の経時変化の一例を説明するための図である。ここで、図6に示す縦軸は、実行トレース解析部74によって算出された実行トレースの増加量を示している。また、図6に示す横軸は、マルウェア実行環境部50によって実行されたマルウェアの解析時間を示している。例えば、解析対象が実行直後に一定の動作を示した後に待機し、特定の時間が経過してから新たな動作を示すマルウェアであった場合には、実行トレースの増加量は、図6に示すように、時間の経過に伴って減少していき、解析開始から所定の時間が経過すると、一定期間ほぼ「0」に近い状態となる。その後、実行トレースの増加量は、再度上昇し、所定の時間が経過すると、ほぼ「0」に近い状態となる。
このように、マルウェアは、単純な動作時間の違いだけではなく、段階的に動作を行うものが存在するため、開示の技術では、このようなマルウェアに対しても効率よく解析が行えるように構成されている。
具体的には、実行トレース解析部74は、算出した単位時間当たりの実行トレースの増加量が所定の閾値を下回るか否かを判定する。ここで、算出した単位時間当たりの実行トレースの増加量が所定の閾値を下回った場合に、実行トレース解析部74は、増加量が所定の閾値を下回った期間が所定の期間を超えるか否かを判定する。そして、増加量が所定の閾値を下回った期間が所定の期間を超えた場合に、実行トレース解析部74は、現時点でマルウェア実行環境部50によって実行されているマルウェアの解析を終了すると判定する。
図7は、実行トレース解析部74によるマルウェア解析の終了判定処理の一例を説明するための図である。図7においては、図4に示す実行トレースの増加量の経時変化を示している。すなわち、図7に示す縦軸は、実行トレース解析部74によって算出された実行トレース量の増加量を示している。また、図7に示す横軸は、マルウェア実行環境部50によって実行されたマルウェアの解析時間を示している。
例えば、実行トレース解析部74は、図7に示すように、実行トレースの増加量が所定の閾値を下回った期間が一定時間を超えた場合に、マルウェア実行環境部50によって実行されているマルウェアの解析を終了すると判定する。なお、解析の終了判定に用いられる閾値及び一定時間は、解析システム1の管理者によって任意に決定され、予め設定される。
このように、実行トレース量が所定の閾値を下回った期間が一定期間を超えた場合にマルウェアの解析を終了すると判定することによって、例えば、実行トレースの増加量が図6に示すような経時変化を示すマルウェアを解析する場合であっても、実行トレースの増加量が一定期間を超える前に再度上昇することで解析を継続することとなり、マルウェアを十分に動作させることができる。従って、実施例1に係る解析システム1は、解析結果が不完全なものになるということを抑止することを可能にする。
図1に戻って、解析システム制御部75は、実行トレース解析部74によってマルウェアの解析を終了すると判定された場合に、マルウェア実行環境部50によって実行されている不正プログラムの解析を終了させる。具体的には、解析システム制御部75は、実行トレース解析部74によってマルウェアの解析を終了すると判定された場合に、マルウェア実行環境部50に対して動作を終了する旨の信号である終了信号を送信する。マルウェア実行環境部50は、解析システム制御部75から終了信号を受信すると、動作を終了する。すなわち、マルウェア解析部72によって実行されているマルウェアの解析が終了することとなる。
[実施例1に係る解析システムによる処理の手順]
次に、実施例1に係る解析システム1による判定処理の手順を説明する。以下では、まず、実施例1に係る解析システム1による実行トレース収集処理の手順を説明する。その後、実施例1に係る解析システム1によるマルウェア解析の終了判定処理の手順を説明する。
[実施例1に係る解析システムによる実行トレース収集処理の手順]
まず、実施例1に係る解析システムによる実行トレース収集処理の手順を説明する。図8は、実施例1に係る解析システム1による実行トレース収集処理の手順を示すフローチャートである。図8に示すように、実施例1に係る解析システム1においては、マルウェア実行環境部50に解析対象のマルウェアが設定されると(ステップS101肯定)、実行トレース収集部73が、実行トレース収集対象プロセスリストに解析対象のマルウェアを登録する(ステップS102)。
そして、マルウェア実行環境部50が解析対象のマルウェアを実行すると(ステップS103)、実行トレース収集部73が、実行トレース収集対象プロセスリスト内のプロセスを監視し(ステップS104)、実行トレース収集対象プロセスの命令が実行されたか否かを判定する(ステップS105)。
ここで、実行トレース収集対象プロセスの命令が実行された場合には(ステップS105肯定)、実行トレース収集部73は、実行された命令と命令のアドレスとを実行トレースとして取得し、取得した実行トレースを実行トレース記憶部62に格納する(ステップ
S106)。なお、実行トレース収集部73は、実行トレース収集対象プロセスの命令を常時監視する(ステップS105否定)。
その後、実行トレース収集部73は、実行トレース収集対象プロセスリスト内のプロセスが新たなプロセスを生起させたか否かを判定する(ステップS107)。ここで、実行トレース収集対象プロセスリスト内のプロセスが新たなプロセスを生起させた場合には(ステップS107肯定)、実行トレース収集部73は、実行トレース対象プロセスリストに生起した新たなプロセスを追加して(ステップS108)、実行トレース収集対象プロセスリスト内のプロセスの命令を監視する(ステップS104)。
一方、実行トレース収集対象プロセスリスト内のプロセスが新たなプロセスを生起させなかった場合には(ステップS107否定)、実行トレース収集部73は、実行トレース解析部74によって解析を終了すると判定されたか否かを判定する(ステップS109)。ここで、実行トレース解析部74によって解析を終了すると判定されなかった場合には(ステップS109否定)、実行トレース収集部73は、実行トレース収集対象プロセスリスト内のプロセスの命令を監視する(ステップS104)。
一方、実行トレース解析部74によって解析を終了すると判定された場合には(ステップS109肯定)、実行トレース収集部73は、処理を終了する。なお、解析システム1は、マルウェア実行環境部50に解析対象のマルウェアが設定されるまで、待機状態である(ステップ101否定)。
[実施例1に係る解析システムによるマルウェア解析の終了判定処理の手順]
次に、実施例1に係る解析システム1によるマルウェア解析の終了判定処理の手順を説明する。図9は、実施例1に係る解析システム1によるマルウェア解析の終了判定処理の手順を示すフローチャートである。図9に示すように、実施例1に係る解析システム1においては、まず、管理者が実行トレースの増加量を算出するための単位時間を設定する(ステップS201)そして、実施例1に係る解析システム1においては、管理者が解析終了を判定するための実行トレースの増加量に対する閾値と期間とを設定する(ステップS202)。
ステップS201及びステップS202において、管理者によって各種設定が行われると、実行トレース解析部74は、実行トレース収集部73によって実行トレースが実行トレース記憶部62に格納されたか否かを判定する(ステップS203)。ここで、実行トレースが実行トレース記憶部62に格納された場合には(ステップS203肯定)、実行トレース解析部74は、実行トレース記憶部62から格納された実行トレースを読み出し(ステップS204)、実行済みコードリストに存在するか否かを判定する(ステップS205)。
ここで、読み出した実行トレースが実行済みコードリストに存在しなかった場合には(ステップS205否定)、実行トレース解析部74は、読み出した実行トレースを実行済みコードリストに追加して(ステップS206)、単位時間が経過したか否かを判定する(ステップS207)。一方、読み出した実行トレースが実行済みコードリストに存在した場合には(ステップS205肯定)、実行トレース解析部74は、単位時間が経過したか否かを判定する(ステップS207)。
ここで、単位時間が経過していなかった場合には(ステップS207否定)、実行トレース解析部74は、ステップS203に戻って、実行トレースが格納されたか否かを確認し、実行トレースが格納された場合には、実行トレースを読み出す。一方、単位時間が経過していた場合には(ステップS207肯定)、実行トレース解析部74は、実行済みコードリストに追加した実行トレースの量を計数し、単位時間当たりの増加量を算出する(ステップS208)。
そして、実行トレース解析部74は、算出した実行トレースの増加量と閾値とを比較して、実行トレースの増加量が閾値を下回っているか否かを判定する(ステップS209)。ここで、実行トレースの増加量が閾値を下回っていない場合には(ステップS209否定)、実行トレース解析部74は、ステップS204に戻って、実行トレースを読み出す。
一方、実行トレースの増加量が閾値を下回っていた場合には(ステップS209肯定)、実行トレース解析部74は、閾値を下回った期間が所定の期間を超えたか否かを判定する(ステップS210)。ここで、閾値を下回った期間が所定の期間を超えていなかった場合には(ステップS210否定)、実行トレース解析部74は、ステップS204に戻って、実行トレースを読み出す。
一方、閾値を下回った期間が所定の期間を超えていた場合には(ステップS210肯定)、実行トレース解析部74は、解析を終了すると判定し、終了信号をマルウェア実行環境部50に送信して(ステップS211)、処理を終了する。
[実施例1の効果]
上述したように、実施例1によれば、コンピュータ内で不正な動作を行うマルウェアを実行するマルウェア実行環境部50とマルウェアの挙動を解析する解析装置100とを含む解析システム1であって、解析装置100の実行トレース収集部73が、マルウェア実行環境部50によって実行されたマルウェアがコンピュータ内で行った動作である実行トレースを収集する。そして、実行トレース解析部74が、実行トレース収集部73によって収集された実行トレースの任意の時間に対する増加量を算出する。さらに、実行トレース解析部74が、算出した増加量に基づいて、マルウェアの解析を終了させるか否かを判定する。そして、解析システム制御部75が、実行トレース解析部74によってマルウェアの解析を終了すると判定された場合に、マルウェア実行環境部50によって実行されているマルウェアの解析を終了させる。従って、実施例1に係る解析システム1は、実行トレースの増加量を監視することによって、マルウェアが動作中であるか否かを判定することができ、動作時間が異なるマルウェアを効率よく解析することを可能にする。
また、実施例1によれば、実行トレース収集部73が、マルウェア実行環境部50によって実行されたマルウェアが要求した命令と当該命令のアドレスとを対応付けた情報を実行トレースとして収集する。従って、実施例1に係る解析システム1は、マルウェアの動作について詳細に監視することで、マルウェアの動作についてより正確に判定することができる。
例えば、マルウェアには、自身のプログラムコードを動的に書き換えながら動作するものが存在する。このようなマルウェアは、同一のアドレスに配置された命令であっても同一の命令が配置されているとは限らないため、アドレスが同一であっても同一の命令を実行しているとは限らない。すなわち、実施例1に係る解析システム1は、命令とアドレスとを対応付けた情報を実行トレースとして用いることで、マルウェアの動作内容を考慮することができ、マルウェアが動作中であるか否かをより正確に判定することを可能にする。
また、実施例1によれば、実行トレース解析部74は、算出した増加量と所定の閾値とを比較し、当該増加量が一定期間所定の閾値を下回った場合に、マルウェアの解析を終了させると判定する。従って、実施例1に係る解析システム1は、段階的に動作するマルウェアに対しても対応することができ、動作時間が異なるマルウェアをより効率よく解析することを可能にする。
また、実施例1によれば、実行トレース収集部73は、マルウェアによって新たなプロセスが生起された場合に、当該新たなプロセスによって実行される命令と当該命令のアドレスとを対応付けて実行トレースとして収集する。従って、実施例1に係る解析システム1は、マルウェアが実行する種々の動作に対応することができ、動作時間が異なるマルウェアをさらに効率よく解析することを可能にする。
これまで実施例1を説明したが、本願が開示する技術は実施例1に限定されるものではない。すなわち、開示の技術は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
(1)マルウェア解析の終了判定機能
上述した実施例1では、マルウェア解析の終了判定機能を有する解析装置100が、マルウェア解析部72を有し、マルウェアの挙動などを解析する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、マルウェア解析の終了判定機能のみを有する解析装置が、マルウェアの挙動などを解析する装置のマルウェア解析の終了判定を行う場合であってもよい。かかる場合には、例えば、実行トレース収集部73と、実行トレース解析部74と、解析システム制御部75と、実行トレース記憶部62とを有した装置が、マルウェアの挙動などを解析する装置に接続され、マルウェアの解析を終了するか否かを制御する。
(2)解析終了の制御
上記した実施例1では、解析システム制御部75がマルウェア実行環境部50に対して終了信号を送信することで、マルウェアの解析を終了させる場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、解析システム制御部75が、マルウェア解析部72に対して解析を終了させる旨の終了信号を送信することで、マルウェアの解析を終了させる場合であってもよい。
(3)実行トレース対象プロセスリスト及び実行済みコードリスト
上記した実施例1では、実行トレース収集部73と実行トレース解析部74とが、それぞれ実行トレース対象プロセスリストと実行済みコードリストとを記憶する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、実行トレース対象プロセスリスト及び実行済みコードリストをそれぞれ記憶部に格納させる場合であってもよい。
(4)システム構成等
例えば、各装置の分散・統合の具体的形態(例えば、図1の形態)は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、解析データ記憶部61と実行トレース記憶部62とを一つの記憶部として統合してもよく、一方、実行トレース解析部74を、実行トレースの増加量を算出する算出部と、マルウェアの解析を終了するか否かを判定する判定部とに分散してもよい。
また、実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。例えば、図9における単位時間の設定処理を、自動で行ってもよい。かかる場合には、例えば、制御部70が、過去に設定された単位時間に基づいて、現時点で実行されるマルウェア解析に最適な単位時間を算出し、算出した単位時間を設定する。
また、マルウェア実行環境部50を解析装置100の外部装置としてネットワーク経由で接続するようにしてもよく、或いは、実行トレース収集部73、実行トレース解析部74を別の装置がそれぞれ有し、ネットワークに接続されて協働することで、上記した解析装置100の機能を実現するようにしてもよい。
(5)解析プログラム
ところで、上記実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本実施例はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図10を用いて上記実施例1に示した解析装置100と同様の機能を有する解析プログラムを実行するコンピュータの一例を説明する。図10は、解析プログラムを実行するコンピュータを示す図である。
図10に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030とを有する。また、図10に示すように、コンピュータ1000は、例えば、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図10に示すように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図10に示すように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図10に示すように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図10に示すように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図10に示すように、例えばディスプレイ1130に接続される。
ここで、図10に示すように、ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、解析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、上述した実施例で説明した実行トレース収集部73と同様の情報処理を実行する収集手順と、実行トレース解析部74と同様の情報処理を実行する算出手順及び判定手順と、解析システム制御部75と同様の情報処理を実行する制御手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。
また、上述した実施例で説明した実行トレース記憶部62に記憶されるデータのように、解析プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、CPU1020が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出し、収集手順、算出手順、判定手順、制御手順を実行する。
なお、解析プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してCPU1020によって読み出されてもよい。
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1 解析システム
50 マルウェア実行環境部
62 実行トレース記憶部
71 応答処理部
72 マルウェア解析部
73 実行トレース収集部
74 実行トレース解析部
75 解析システム制御部
100 解析装置

Claims (7)

  1. コンピュータ内で不正な動作を行う不正プログラムを実行する不正プログラム実行環境と前記不正プログラムの挙動を解析する解析装置とを含む解析システムであって、
    前記解析装置が、
    前記不正プログラム実行環境によって実行された不正プログラムが前記コンピュータ内で行った動作である実行命令の配置されているアドレスを含む情報を収集する収集手段と、
    前記収集手段によって収集された実行命令の配置されているアドレスを含む情報の任意の時間に対する増加量を算出する算出手段と、
    前記算出手段によって算出された増加量に基づいて、前記不正プログラムの解析を終了させるか否かを判定する判定手段と、
    前記判定手段によって前記不正プログラムの解析を終了すると判定された場合に、前記不正プログラム実行環境によって実行されている不正プログラムの解析を終了させる制御手段と、
    を有することを特徴とする解析システム。
  2. 前記収集手段は、前記不正プログラム実行環境によって実行された不正プログラムが要求した命令と当該命令のコードが配置されている場所とを対応付けた情報を前記実行命令の配置されているアドレスを含む情報として収集することを特徴とする請求項1に記載の解析システム。
  3. 前記判定手段は、前記算出手段によって算出された増加量と所定の閾値とを比較し、当該増加量が一定期間所定の閾値を下回った場合に、前記不正プログラムの解析を終了させると判定することを特徴とする請求項1に記載の解析システム。
  4. 前記収集手段は、前記不正プログラムによって新たなプロセスが生起された場合に、当該新たなプロセスによって実行される命令と当該命令のコードが配置されている場所とを対応付けて前記実行命令の配置されているアドレスを含む情報として収集することを特徴とする請求項1に記載の解析システム。
  5. コンピュータ内で不正な動作を行う不正プログラムを実行する不正プログラム実行環境によって実行された不正プログラムが前記コンピュータ内で行った動作である実行命令の配置されているアドレスを含む情報を収集する収集手段と、
    前記収集手段によって収集された実行命令の配置されているアドレスを含む情報の任意の時間に対する増加量を算出する算出手段と、
    前記算出手段によって算出された増加量に基づいて、前記不正プログラムの解析を終了させるか否かを判定する判定手段と、
    前記判定手段によって前記不正プログラムの解析を終了すると判定された場合に、前記不正プログラム実行環境によって実行されている不正プログラムの解析を終了させる制御手段と、
    を有することを特徴とする解析装置。
  6. コンピュータ内で不正な動作を行う不正プログラムを実行する不正プログラム実行環境と前記不正プログラムの挙動を解析する解析装置とを含む解析システムに適用され、前記解析装置が実行する解析方法であって、
    前記解析装置が、
    前記不正プログラム実行環境によって実行された不正プログラムが前記コンピュータ内で行った動作である実行命令の配置されているアドレスを含む情報を収集する収集ステップと、
    前記収集ステップによって収集された実行命令の配置されているアドレスを含む情報の任意の時間に対する増加量を算出する算出ステップと、
    前記算出ステップによって算出された増加量に基づいて、前記不正プログラムの解析を終了させるか否かを判定する判定ステップと、
    前記判定ステップによって前記不正プログラムの解析を終了すると判定された場合に、前記不正プログラム実行環境によって実行されている不正プログラムの解析を終了させる制御ステップと、
    を含んだことを特徴とする解析方法。
  7. コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析装置としてのコンピュータに実行させる解析プログラムであって、
    正プログラム実行環境によって実行された不正プログラムが前記コンピュータ内で行った動作である実行命令の配置されているアドレスを含む情報を収集する収集手順と、
    前記収集手順によって収集された実行命令の配置されているアドレスを含む情報の任意の時間に対する増加量を算出する算出手順と、
    前記算出手順によって算出された増加量に基づいて、前記不正プログラムの解析を終了させるか否かを判定する判定手順と、
    前記判定手順によって前記不正プログラムの解析を終了すると判定された場合に、前記不正プログラム実行環境によって実行されている不正プログラムの解析を終了させる制御手順と、
    を前記解析装置としてのコンピュータに実行させることを特徴とする解析プログラム。
JP2010251733A 2010-11-10 2010-11-10 解析システム、解析装置、解析方法及び解析プログラム Active JP5437977B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010251733A JP5437977B2 (ja) 2010-11-10 2010-11-10 解析システム、解析装置、解析方法及び解析プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010251733A JP5437977B2 (ja) 2010-11-10 2010-11-10 解析システム、解析装置、解析方法及び解析プログラム

Publications (2)

Publication Number Publication Date
JP2012103893A JP2012103893A (ja) 2012-05-31
JP5437977B2 true JP5437977B2 (ja) 2014-03-12

Family

ID=46394212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010251733A Active JP5437977B2 (ja) 2010-11-10 2010-11-10 解析システム、解析装置、解析方法及び解析プログラム

Country Status (1)

Country Link
JP (1) JP5437977B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5920169B2 (ja) * 2012-10-22 2016-05-18 富士通株式会社 不正コネクション検出方法、ネットワーク監視装置及びプログラム
JP5996481B2 (ja) * 2013-04-18 2016-09-21 日本電信電話株式会社 監視装置、監視方法、および、監視プログラム
US20150379268A1 (en) * 2014-06-27 2015-12-31 Prabhat Singh System and method for the tracing and detection of malware
JP6246377B2 (ja) 2014-08-28 2017-12-13 三菱電機株式会社 プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム
US10050798B2 (en) 2015-02-06 2018-08-14 Mitsubishi Electric Corporation Cryptographic block identification apparatus, cryptographic block identification method, and non-transitory computer readable recording medium storing cryptographic block identification program
JP7188208B2 (ja) * 2019-03-20 2022-12-13 日本電気株式会社 マルウェア解析装置、マルウェア解析方法、及び、プログラム

Also Published As

Publication number Publication date
JP2012103893A (ja) 2012-05-31

Similar Documents

Publication Publication Date Title
US10599846B2 (en) Segregating executable files exhibiting network activity
JP5437977B2 (ja) 解析システム、解析装置、解析方法及び解析プログラム
US20120005755A1 (en) Infection inspection system, infection inspection method, storage medium, and program
US20090133125A1 (en) Method and apparatus for malware detection
JP6687761B2 (ja) 結合装置、結合方法および結合プログラム
US9360021B2 (en) Thermal control system based on nonlinear zonal fan operation and optimized fan power
US20150089655A1 (en) System and method for detecting malware based on virtual host
CN101976209A (zh) 相冲突的应用程序的适应性配置
US8800040B1 (en) Methods and systems for prioritizing the monitoring of malicious uniform resource locators for new malware variants
JP6711000B2 (ja) 情報処理装置、ウィルス検出方法及びプログラム
JP2019079492A (ja) コンボリューションのポピュラリティに基づいて異常なイベントを検出するシステムおよび方法
JP6282217B2 (ja) 不正プログラム対策システムおよび不正プログラム対策方法
JP6864610B2 (ja) 特定システム、特定方法及び特定プログラム
JP2017208057A (ja) 不要なソフトウェアの検出システム及び方法
TWI656453B (zh) 檢測系統及檢測方法
JP2008176352A (ja) コンピュータプログラム、コンピュータ装置、及び動作制御方法
US10303876B2 (en) Persistence probing to detect malware
RU2583712C2 (ru) Система и способ обнаружения вредоносных файлов определенного типа
KR101983997B1 (ko) 악성코드 검출시스템 및 검출방법
JP2021077373A (ja) 脅威検出方法及びコンピュータ装置
JP5996481B2 (ja) 監視装置、監視方法、および、監視プログラム
JP5456636B2 (ja) ファイル収集監視方法、ファイル収集監視装置及びファイル収集監視プログラム
KR101896679B1 (ko) 악성코드 탐지장치 및 이의 악성코드 탐지방법
JP7176630B2 (ja) 検知装置、検知方法および検知プログラム
US20150006595A1 (en) Apparatus and method for reconfiguring execution file in virtualization environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131121

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: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131212

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5437977

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350