JPWO2016117317A1 - Software judgment device, software judgment method, software judgment program, software analysis device, and malware diagnosis device - Google Patents
Software judgment device, software judgment method, software judgment program, software analysis device, and malware diagnosis device Download PDFInfo
- Publication number
- JPWO2016117317A1 JPWO2016117317A1 JP2016570542A JP2016570542A JPWO2016117317A1 JP WO2016117317 A1 JPWO2016117317 A1 JP WO2016117317A1 JP 2016570542 A JP2016570542 A JP 2016570542A JP 2016570542 A JP2016570542 A JP 2016570542A JP WO2016117317 A1 JPWO2016117317 A1 JP WO2016117317A1
- Authority
- JP
- Japan
- Prior art keywords
- software
- determination
- information
- setting
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Abstract
ソフトウェアの動作を容易に検証することができるソフトウェア判定装置等を提供する。ソフトウェア判定装置101は、仮想計算機106が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも1つ以上のファイルとファイルを仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、対象ソフトウェアが実行されているか否かを判定する処理に際して仮想計算機106の外部において実行する実行処理と、実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、設定情報に基づき構成を有する仮想計算機106を設定する構成設定部102と、ソフトウェア情報に含まれている手順に従い、仮想計算機106を構成する記憶部107にファイルを設定するソフトウェア設定部103と、設定された仮想計算機106を起動する起動部104と、判定情報に基づき、タイミングに実行処理を実行し、実行した結果に関して判定条件を満たすか否かを判定し、判定条件を満たしている場合に、対象ソフトウェアが実行されていると判定し、判定条件を満たしていない場合に、対象ソフトウェアが実行されていないと判定する判定部105とを有する。Provided is a software determination device that can easily verify the operation of software. The software determination apparatus 101 includes setting information representing a configuration of the virtual computer 106, software information in which at least one file required to execute the target software and a procedure for setting the file in the virtual computer are associated with each other, and In the process of determining whether or not the target software is being executed, determination information in which an execution process executed outside the virtual computer 106, a timing for executing the execution process, and a determination condition representing the determination condition are associated with each other. A configuration setting unit 102 that sets a virtual computer 106 having a configuration based on setting information, and software that sets a file in the storage unit 107 that configures the virtual computer 106 according to the procedure included in the software information when given Starts the setting unit 103 and the set virtual machine 106 Based on the activation unit 104 and the determination information, the execution process is executed at the timing, it is determined whether the determination result satisfies the determination condition regarding the execution result, and the target software is executed when the determination condition is satisfied And a determination unit 105 that determines that the target software is not executed when the determination condition is not satisfied.
Description
本発明は、たとえば、ソフトウェアが動作するか否かを判定するソフトウェア判定装置等に関する。 The present invention relates to, for example, a software determination device that determines whether or not software operates.
静的解析プログラムは、コンピュータソフトウェア(以降、「ソフトウェア」と表す)に関して、オブジェクトプログラムを実行することなく、ソースプログラムを解析することにより、該ソフトウェアに含まれる不具合等を解析する。静的解析プログラムは、ソースプログラムにおいて不具合であると判定される箇所(フロー)を指摘することにより、ソフトウェアの開発を支援する情報を提供する。 The static analysis program analyzes a source program with respect to computer software (hereinafter referred to as “software”) without analyzing the object program, thereby analyzing a defect or the like included in the software. The static analysis program provides information for supporting software development by pointing out a part (flow) determined to be a defect in the source program.
たとえば、特許文献1は、静的解析プログラムを用いてソースプログラムを解析した結果に基づいて、警告文を出力する解析装置を開示する。該解析装置は、ソースプログラムを解析した結果を表すファイルを、複数のバージョンに関してそれぞれ作成し、該ファイル間の差分を作成する。次に、該解析装置は、作成した差分に関連付けされた警告文を出力する。
For example,
一方、ソフトウェアに関するソースプログラムが開示されていない場合に、該ソフトウェアを解析する手法としてリバースエンジニアリングが知られている。リバースエンジニアリングにおいては、ソフトウェアのオブジェクトプログラムを逆アセンブルすることにより、ソフトウェアの機能が解明される。また、不正な動作を実行するソフトウェアを表すマルウェアをリバースエンジニアリングすることにより、マルウェアに対する対策を講じることができる。 On the other hand, when a source program related to software is not disclosed, reverse engineering is known as a technique for analyzing the software. In reverse engineering, software functions are elucidated by disassembling software object programs. In addition, it is possible to take countermeasures against malware by reverse-engineering malware representing software that performs illegal operations.
たとえば、特許文献2には、マルウェアが内包されるパッキングプログラムから、マルウェアを抽出する技術が開示されている。また、特許文献3及び特許文献4には、仮想計算機においてソフトウェアを解析することにより、該ソフトウェアを解析する技術が開示されている。
For example,
特許文献2は、ソフトウェアが実行するプロセスがメモリにおいてアクセスした領域の変化に基づき、パッキングプログラムからマルウェアを抽出する抽出装置を開示する。
特許文献3は、ソフトウェアを解析するプログラム及び検証ツールを用いて、ソフトウェアを検証する検証サービス提供システムを開示する。該提供システムは、プログラムを解析する解析ツールを仮想計算機に導入し、該仮想計算機において、導入した解析ツールを用いてソフトウェアを解析する。
特許文献4は、仮想計算機において、マルウェア候補サンプルが実行する処理に伴い出力されるセッション情報等に基づき、該サンプルがマルウェアであるか否かを判定するマルウェア解析装置を開示する。該マルウェア解析装置は、該サンプルがマルウェアであると判定する場合に、該マルウェアを識別可能なシグネチャを出力する。
たとえば、特許文献1に開示される解析装置を用いて、ソフトウェアに関するソースプログラムを解析することにより、ある計算機環境においてソフトウェアが動作するか否かを検証することができる。尚、計算機環境は、ハードウェアを構成する構成要素、計算機にインストールされているソフトウェア等が組み合わせられた態様を表す。
For example, it is possible to verify whether or not the software operates in a certain computer environment by analyzing a source program related to software using the analysis device disclosed in
しかし、上述したようないずれの装置を用いてソフトウェアを解析したとしても、ソフトウェアの動作を検証する処理に多くの処理量(計算量)を要する。たとえば、ソースプログラムを解析する解析作業においては、1つ1つの命令文を解析する必要があるので、該解析作業に多くの処理量を要する。また、オブジェクトプログラムをリバースエンジニアリングする場合には、逆アセンブルすることにより得られる結果を解析するのに多くの人手(作業、処理量)を要する。 However, even if the software is analyzed using any of the above-described apparatuses, a large amount of processing (calculation amount) is required for the processing for verifying the operation of the software. For example, in the analysis work for analyzing a source program, it is necessary to analyze each statement, so that the analysis work requires a large amount of processing. Also, when reverse engineering an object program, it takes a lot of manpower (work, processing amount) to analyze the result obtained by disassembling.
そこで、本発明の主たる目的は、ソフトウェアの動作を検証する処理量を軽減するソフトウェア判定装置等を提供することである。 Therefore, a main object of the present invention is to provide a software determination device or the like that reduces the amount of processing for verifying the operation of software.
前述の目的を達成するために、本発明の一態様において、ソフトウェア判定装置は、
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも1つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定手段と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否か判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定手段と
を備える。In order to achieve the above object, in one aspect of the present invention, a software determination device includes:
Setting information representing the configuration of the virtual machine, software information in which at least one or more files required for executing the target software and a procedure for setting the file in the virtual machine are associated, and the target software executes Determination processing in which execution processing executed outside the virtual machine, processing timing to execute the execution processing, and determination conditions representing the determination conditions are associated with each other is determined. A configuration setting means for setting the virtual machine having the configuration based on the setting information;
In accordance with the procedure included in the software information, software setting means for setting the file in storage means constituting the virtual machine;
Starting means for starting the set virtual machine;
Based on the determination information, the execution process is executed at the timing, it is determined whether or not the determination condition is satisfied with respect to an execution result, and the target software is executed when the determination condition is satisfied. Determining means for determining that the target software is not executed when the determination condition is not satisfied.
また、本発明の他の見地として、ソフトウェア判定方法は、
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも1つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定し、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定し、
設定された前記仮想計算機を起動し、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する。As another aspect of the present invention, the software determination method includes:
Setting information representing the configuration of the virtual machine, software information in which at least one or more files required for executing the target software and a procedure for setting the file in the virtual machine are associated, and the target software executes Determination processing in which execution processing executed outside the virtual machine, processing timing to execute the execution processing, and determination conditions representing the determination conditions are associated with each other is determined. In this case, the virtual machine having the configuration is set based on the setting information,
According to the procedure included in the software information, the file is set in the storage means configuring the virtual machine,
Start the virtual machine that has been set,
Based on the determination information, the execution process is executed at the timing, it is determined whether or not the determination condition is satisfied with respect to the execution result, and the target software is executed when the determination condition is satisfied. If the determination condition is not satisfied, it is determined that the target software is not being executed.
また、本発明の他の見地として、ソフトウェア判定プログラムは、
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも1つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定機能と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定機能と
をコンピュータに実現させる。As another aspect of the present invention, the software determination program is
Setting information representing the configuration of the virtual machine, software information in which at least one or more files required for executing the target software and a procedure for setting the file in the virtual machine are associated, and the target software executes Determination processing in which execution processing executed outside the virtual machine, processing timing to execute the execution processing, and determination conditions representing the determination conditions are associated with each other is determined. A configuration setting function for setting the virtual machine having the configuration based on the setting information;
In accordance with the procedure included in the software information, a software setting function for setting the file in a storage unit configuring the virtual machine;
A start function for starting the set virtual machine;
Based on the determination information, the execution process is executed at the timing, it is determined whether or not the determination condition is satisfied with respect to the execution result, and the target software is executed when the determination condition is satisfied. And a determination function for determining that the target software is not being executed when the determination condition is not satisfied.
さらに、同目的は、係るソフトウェア判定プログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。 Further, the object is realized by a computer-readable recording medium that records the software determination program.
本発明に係るソフトウェア判定装置等によれば、ソフトウェアの動作を容易に検証することができる。 According to the software determination apparatus and the like according to the present invention, the operation of software can be easily verified.
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。 Next, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
<第1の実施形態>
本発明の第1の実施形態に係るソフトウェア判定装置が有する構成と、ソフトウェア判定装置が行う処理とについて、図1と図2とを参照しながら詳細に説明する。図1は、本発明の第1の実施形態に係るソフトウェア判定装置101が有する構成を示すブロック図である。図2は、第1の実施形態に係るソフトウェア判定装置101における処理の流れを示すフローチャートである。<First Embodiment>
The configuration of the software determination apparatus according to the first embodiment of the present invention and the processing performed by the software determination apparatus will be described in detail with reference to FIG. 1 and FIG. FIG. 1 is a block diagram showing the configuration of the
第1の実施形態に係るソフトウェア判定装置101は、構成設定部102と、ソフトウェア設定部103と、起動部104と、判定部105とを有する。
A
ソフトウェア判定装置101は、仮想計算機106と通信接続することができる。仮想計算機106は、情報を不揮発的に記憶可能な記憶部107を有する。仮想計算機106において実行されている処理に関するデータは、メインメモリ(以降、「メモリ」と表す)108に記憶されている。処理に関するデータは、たとえば、ソフトウェアが処理する対象となっている処理データ(情報)、該ソフトウェアを表す実行プログラム等である。
The
構成設定部102は、図3に例示するような設定情報と、図4に例示するようなソフトウェア情報と、図5に例示するような判定情報とを受信するのに応じて、受信した情報に基づき、仮想計算機106に含まれる構成要素を設定する(ステップS101)。すなわち、構成設定部102は、設定情報と、ソフトウェア情報と、判定情報とが与えられるのに応じて、与えられた情報に基づき、仮想計算機106に含まれる構成要素を設定する。図3は、設定情報が有する構成の一例を概念的に表す図である。図4は、ソフトウェア情報が有する構成の一例を概念的に表す図である。図5は、判定情報が有する構成の一例を概念的に表す図である。図3乃至図5を参照しながら設定情報、ソフトウェア情報、及び、判定情報を説明した後に、図2に示す処理について詳述する。
The
図3を参照しながら設定情報について説明する。設定情報は、仮想計算機106に含まれる構成要素を表す名称(識別子)と、該構成要素に設定する値とが関連付けされた情報である。図3に示された例を参照すると、たとえば、設定情報は、名称「プロセッサの数」と、設定値「4」とが関連付けされた情報を含む。これは、仮想計算機106を構成するプロセッサの台数を4台に設定することを表す。また、設定情報は、名称「ディスプレイ解像度(縦)」と、設定値「480」とが関連付けされた情報を含む。これは、仮想計算機106を構成するディスプレイにおける縦方向の解像度を480に設定することを表す。ただし、IPは、インターネットプロトコルを表す。OSは、オペレーティングシステムを表す。
The setting information will be described with reference to FIG. The setting information is information in which a name (identifier) representing a component included in the
次に、図4を参照しながらソフトウェア情報について説明する。ソフトウェア情報は、判定対象であるソフトウェア(以降、「対象ソフトウェア」と表す)に関するファイルと、該ファイルを記憶部107に設定する設定手順とが関連付けされた情報である。ソフトウェア情報においては、該ファイルと、該設定手順とに加え、さらに、該対象ソフトウェアの名称(識別子)が関連付けされてもよい。図4に示された例を参照すると、ソフトウェア情報には、以下の3つの項目が含まれる。すなわち、
名称「A」、
ファイル「AAA.exe,BBB.dll,CCC.dll」、
設定手順「「AAA.exe」を「¥111¥222¥333」に「AAA.exe」として保存する。BBB.dllを「¥111」に保存する」。Next, software information will be described with reference to FIG. The software information is information in which a file related to software to be determined (hereinafter, referred to as “target software”) and a setting procedure for setting the file in the
Name “A”,
Files "AAA.exe, BBB.dll, CCC.dll",
Setting procedure “AAA.exe” is stored in “¥ 111 ¥ 222 ¥ 333” as “AAA.exe”. BBB. “Save dll in“ ¥ 111 ””.
ただし、「¥」は、英文用キーボードでは、いわゆる、バックスラッシュに相当(対応)する。「¥」は、ファイル等を格納する場所を表すディレクトリ(フォルダ)の構成を表す。 However, “¥” corresponds (corresponds) to a so-called backslash in an English keyboard. “¥” represents the configuration of a directory (folder) representing a location for storing files and the like.
図4に例示されたソフトウェア情報は、ソフトウェア「A」(この例において、対象ソフトウェア)が、ファイル「AAA.exe」、ファイル「BBB.dll」、及び、ファイル「CCC.dll」を含むことを表す。該ファイルは、たとえば、ソフトウェアAに含まれているファイルではなく、ソフトウェア「A」が参照する入出力ファイルであってもよい。また、設定手順は、記憶部107において、「AAA.exe」を「¥111¥222¥333」に「AAA.exe」なる名称にて保存し、さらに、「BBB.dll」を「¥111」に保存することにより、ソフトウェア「A」を実行する仮想計算機106を設定できることを表す。
The software information illustrated in FIG. 4 indicates that the software “A” (the target software in this example) includes the file “AAA.exe”, the file “BBB.dll”, and the file “CCC.dll”. Represent. The file may be, for example, an input / output file referred to by the software “A” instead of the file included in the software A. In the setting procedure, “AAA.exe” is stored in “¥ 111 ¥ 222 ¥ 333” with the name “AAA.exe” in the
次に、図5を参照しながら判定情報について説明する。判定情報は、仮想計算機106において実行する処理を表す実行処理と、該実行処理を実行するタイミングと、該実行処理の結果に基づいて対象ソフトウェアが実行されているか否かを判定する条件を表す判定条件とが関連付けされた情報である。判定情報においては、該実行処理と、該タイミングと、該判定条件とに加え、さらに、ソフトウェアの名称が関連付けされてもよい。判定情報における判定条件は、対象ソフトウェアが仮想計算機106において実行されているか否かを判定する場合に参照される条件を表す。
Next, the determination information will be described with reference to FIG. The determination information indicates an execution process representing the process executed in the
たとえば、図5に示された例の場合、判定情報は、ソフトウェアAに関する判定情報を表す。この場合に、ソフトウェアAが仮想計算機106において実行されているか否かを判定する処理は、たとえば、次に示す項目1及び項目2を順に実行することにより、実現することができる。すなわち、
(項目1)仮想計算機106を起動して10分経過した後に、仮想計算機106に対する応答時間を計測する(図5における列「実行処理」及び列「実行処理を実行するタイミング」)、
(項目2)計測された応答時間が3秒以上である場合には、ソフトウェアAが実行されていると判定する。計測された応答時間が3秒未満である場合には、ソフトウェアAが実行されていないと判定する(図5における列「判定条件」)。For example, in the example shown in FIG. 5, the determination information represents determination information related to software A. In this case, the process for determining whether or not the software A is being executed in the
(Item 1) After 10 minutes have passed since the
(Item 2) When the measured response time is 3 seconds or more, it is determined that the software A is being executed. If the measured response time is less than 3 seconds, it is determined that the software A is not being executed (column “determination condition” in FIG. 5).
本発明の各実施形態において、判定情報に含まれる実行処理は、仮想計算機106を対象として実行する処理であるとする。すなわち、該実行処理は、仮想計算機106内において実行される処理ではなく、仮想計算機106を外部から監視する処理であるとする。たとえば、該実行処理は、仮想計算機106に関する応答時間を計測する、メモリ108をダンプする、または、仮想計算機106に関して送受信される通信内容を読み取る等の処理である。
In each embodiment of the present invention, it is assumed that the execution process included in the determination information is a process executed on the
図2乃至図5に示された例を参照しながら、本実施形態に係るソフトウェア判定装置101について詳述する。構成設定部102は、図3に例示された設定情報を受信する場合に、ステップS101にて、たとえば、受信した設定情報に従いプロセッサの数を4に設定することにより、仮想計算機106に含まれる構成要素を設定する。
The
次に、ソフトウェア設定部103は、図4に例示されたソフトウェア情報に含まれる手順に従い、仮想計算機106が有する構成要素の1つである記憶部107に、該手順と関連付けされたファイルを設定する(ステップS102)。この結果、仮想計算機106は、記憶部107からソフトウェア設定部103にて設定されたファイルを読み取り、読み取ったファイルを実行することによって、該対象ソフトウェアを実行することができる。
Next, the
次に、起動部104は、仮想計算機106を起動する(ステップS103)。起動部104は、さらに、ソフトウェア設定部103にて設定された対象ソフトウェアを起動してもよい。ソフトウェア情報がマルウェアに関する情報である場合には、起動部104は、対象ソフトウェアを起動しない設定であってもよい。この場合に、仮想計算機106が起動するに応じて、対象ソフトウェアは起動する。
Next, the
次に、判定部105は、図5に例示された判定情報に基づき、該判定情報に含まれるタイミングに、該タイミングに関連付けされた実行処理を実行する(ステップS104)。たとえば、該実行処理は、仮想計算機106の応答時間を計測する処理、メモリ108をダンプする処理、または、仮想計算機106に関して送受信される通信内容を読み取る等の処理である。該実行処理は、たとえば、ソフトウェア「A」が外部と通信する機能を有している場合に、ソフトウェアAに通信を送った後に、応答するまでの時間を計測する処理である。
Next, based on the determination information illustrated in FIG. 5, the
次に、判定部105は、実行処理を実行した結果に基づいて、該実行処理に関連付けされた判定条件に基づき、対象ソフトウェアが仮想計算機106において実行されているか否かを判定する(ステップS105)。判定部105は、該実行処理の実行結果が該判定条件を満たしていると判定した場合に(ステップS105にてYES)、対象ソフトウェアが実行されていると判定する(ステップS106)。判定部105は、該実行処理の実行結果が該判定条件を満たしていないと判定した場合に(ステップS105にてNO)、対象ソフトウェアが実行されていないと判定する(ステップS107)。
Next, based on the result of executing the execution process, the
図5に例示された判定情報の場合に、判定部105は、ステップS103にて仮想計算機106が起動してから10分経過した後に、仮想計算機106の応答時間を計測する。次に、判定部105は、計測された応答時間が3秒以上であるか否かを判定することにより、仮想計算機106において、対象ソフトウェアが実行されているか否かを判定する。
In the case of the determination information illustrated in FIG. 5, the
尚、判定情報が、1つの対象ソフトウェアに関して複数の実行処理(タイミング、判定条件)を含む場合には、判定部105は、各実行処理に関して、ステップS104乃至ステップS107に示す処理を実行する。
When the determination information includes a plurality of execution processes (timing and determination conditions) for one target software, the
次に、第1の実施形態に係るソフトウェア判定装置101に関する効果について説明する。
Next, effects related to the
ソフトウェア判定装置101によれば、対象ソフトウェアの動作を容易に検証することができる。この理由は、ソフトウェア判定装置101が、ソースプログラムを解析することなく、設定情報に基づき設定される仮想計算機106を起動し、起動後に実行する実行処理の実行結果等に基づき、該対象ソフトウェアが実行されているか否かを判定するからである。
According to the
「背景技術」にて説明したように、ソースプログラムを解析する処理には多くの処理を要する。これに対して、実行結果等に基づき対象ソフトウェアが実行されているか否かを判定する判定処理は、ある判定条件を満たすか否かを判定することにより実行される処理であるので、該処理には多くの処理を必要としない。したがって、本実施形態に係るソフトウェア判定装置101によれば、対象ソフトウェアの動作を容易に検証することができる。
As described in “Background Art”, the process of analyzing a source program requires many processes. On the other hand, the determination process for determining whether or not the target software is executed based on the execution result is a process executed by determining whether or not a certain determination condition is satisfied. Does not require much processing. Therefore, according to the
また、ソフトウェア判定装置101は、仮想計算機106の外部から実行処理をするので、対象ソフトウェアが実行されているか否かを解析する解析ソフトウェアを仮想計算機106に設定しない。たとえば、該解析ソフトウェアが、判定対象である対象ソフトウェアに関する処理に影響を与える場合には、判定対象である対象ソフトウェアを正確に判定することができない。したがって、本実施形態に係るソフトウェア判定装置101によれば、たとえ、仮想計算機106における解析ソフトウェアの有無に応じて対象ソフトウェアの動作が異なる場合であっても、対象ソフトウェアの動作をより正確に検証することができる。
In addition, since the
<第2の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。<Second Embodiment>
Next, a second embodiment of the present invention based on the first embodiment described above will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the characteristic parts according to the present embodiment will be mainly described, and the same components as those in the first embodiment described above will be denoted by the same reference numerals, and redundant description will be omitted. To do.
図6と図7とを参照しながら、第2の実施形態に係るソフトウェア判定装置201が有する構成と、ソフトウェア判定装置201が行う処理とについて説明する。図6は、本発明の第2の実施形態に係るソフトウェア判定装置201が有する構成を示すブロック図である。図7は、第2の実施形態に係るソフトウェア判定装置201における処理の流れを示すフローチャートである。
The configuration of the
第2の実施形態に係るソフトウェア判定装置201は、構成設定部102と、ソフトウェア設定部103と、起動部104と、判定部105と、情報送信部202と、表示部203とを有する。ソフトウェア判定装置201は、設定情報記憶部204に接続されていてもよい。
A
以降の説明においては、説明の便宜上、情報送信部を、「情報提供部」と表すこともある。 In the following description, for convenience of explanation, the information transmission unit may be expressed as an “information providing unit”.
ソフトウェア判定装置201は、仮想計算機106と通信接続することができる。
The
まず、情報送信部202は、図4に例示されているようなソフトウェア情報と、図5に例示されているような判定情報とを受信する。次に、情報送信部202は、複数種類の設定情報が含まれる設定情報セット(図8に例示)に基づき、設定情報を作成する(ステップS201)。図8は、設定情報セットが有する構成の一例を概念的に表す図である。尚、設定情報記憶部204は、設定情報セットを記憶している。
First, the
図8に例示された設定情報セットは、仮想計算機106に含まれる構成要素の名称と、該構成要素に設定する値の種類と、該値の初期値及び最大値と、該値として可能な値と、該値の刻み幅(図8の「ステップ」)と、図3に例示された設定情報に値を設定する場合の行数とが関連付けされた情報を含んでいる。尚、設定情報セットは、上述した項目以外の項目を含んでいてもよい。また、設定情報セットは、必ずしも、上述した項目をすべて含んでいる必要はない。
The setting information set illustrated in FIG. 8 includes a name of a component included in the
たとえば、図8に例示された設定情報セットの1行目は、仮想計算機106の構成要素の1つである項目「プロセッサの台数」に関して設定可能な一連の値を表す。この場合、情報送信部202は、設定情報記憶部204から該設定情報セットを読み取り、項目「プロセッサの数」に関して1台(初期値)から8台(最大値)まで1台(ステップ)ずつ、設定情報(図3に例示)における1行目(設定行数)に設定した設定情報を作成する。すなわち、この場合、情報送信部202は、8種類の設定情報を作成する。
For example, the first line of the setting information set illustrated in FIG. 8 represents a series of values that can be set for the item “number of processors” that is one of the components of the
図8に例示された設定情報セットの6行目は、仮想計算機106の構成要素の1つである項目「プロセッサの名称」に関して設定可能な一連の値を表す。この場合、情報送信部202は、設定情報記憶部204から該設定情報セットを読み取り、項目「プロセッサの名称」に関して読み取った「AAA」と「BBB」とを、それぞれ、設定情報(図3に例示)における2行目(設定行数)に設定することにより、2種類の設定情報を作成する。
The sixth line of the setting information set illustrated in FIG. 8 represents a series of values that can be set for the item “processor name” that is one of the components of the
情報送信部202は、上述した2つの項目に関して設定情報を作成する場合には、該2つの項目の組み合わせである16(=8×2)種類の設定情報を作成する。すなわち、情報送信部202は、設定情報セットに含まれる構成要素を組み合わせることにより、設定情報を作成する。
When creating setting information regarding the two items described above, the
次に、情報送信部202は、受信した判定情報(図5に例示)と、受信したソフトウェア情報(図4に例示)と、作成した設定情報のうちの1つの設定情報とを、構成設定部102に送信する。すなわち、情報送信部202(情報提供部)は、受信した判定情報と、受信したソフトウェア情報と、作成した設定情報のうちの1つの設定情報とを、構成設定部102に提供する。
Next, the
以降、構成設定部102、ソフトウェア設定部103、起動部104、及び、判定部105は、図2のステップS101乃至ステップS107に示した処理と同様の処理を実行する(ステップS202)。
Thereafter, the
次に、情報送信部202は、判定部105から判定結果を受信し、受信した判定結果と、構成設定部102に送信した設定情報とが関連付けされた結果情報を作成する(ステップS203)。
Next, the
情報送信部202は、ステップS201からステップS203に至る処理を、作成した設定情報に関して、それぞれ実行する(ステップS201からステップS204に至る反復処理)。
The
次に、表示部203は、作成した結果情報から、判定条件を満たす判定結果に関連付けされた設定情報を特定し、特定した設定情報を表示する。たとえば、表示部203は、図9に例示されているように、特定した設定情報を総括的に含む設定情報を表示してもよい。図9は、表示部203に表示される設定情報の一例を概念的に表す図である。
Next, the
図9に例示されている設定情報において、オペレーティングシステム(OS)の欄には、OS_Aと、OS_Bとの2通りが含まれる。また、プロセッサ数の欄には、2と3と4との3通りが含まれる。これは、設定情報のうち、判定条件を満たす設定情報が、該OSと、該プロセッサ数との組み合わせである6(=2×3)通りあることを表す。 In the setting information illustrated in FIG. 9, the operating system (OS) column includes two types, OS_A and OS_B. The column for the number of processors includes three types of 2, 3, and 4. This indicates that among the setting information, there are 6 (= 2 × 3) kinds of setting information satisfying the determination condition, which are combinations of the OS and the number of processors.
表示部203は、判定条件を満たしている設定情報を総括的に表示したが、判定部105が判定するのに応じて、判定条件を満たしている個々の設定情報を表示してもよい。
Although the
次に、第2の実施形態に係るソフトウェア判定装置201に関する効果について説明する。
Next, effects related to the
本実施形態に係るソフトウェア判定装置201によれば、対象ソフトウェアの動作を容易に検証することができる。さらに、本実施形態に係るソフトウェア判定装置201によれば、設定情報セットに含まれる複数の設定情報の中から、対象ソフトウェアが動作する設定情報を、容易に特定することができる。
According to the
この理由は、理由1及び理由2である。すなわち、
(理由1)第2の実施形態に係るソフトウェア判定装置201が有する構成は、第1の実施形態に係るソフトウェア判定装置101が有する構成を含むからである、
(理由2)設定情報セット(図8に例示)に含まれる各設定情報に関して、判定部105が判定条件を満たすと判定する場合に、表示部203が該設定情報を出力するからである。判定条件が満たされた場合に、対象ソフトウェアは、設定情報に基づき構成された仮想計算機106において動作する。この結果、表示部203は、対象ソフトウェアが動作する設定情報を出力する。The reason is
(Reason 1) The configuration of the
(Reason 2) When the
<第3の実施形態>
次に、上述した第2の実施形態を基本とする本発明の第3の実施形態について説明する。<Third Embodiment>
Next, a third embodiment of the present invention based on the above-described second embodiment will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the description will focus on the characteristic parts according to the present embodiment, and the same components as those in the second embodiment described above will be denoted by the same reference numerals, and redundant description will be omitted. To do.
図10と図11とを参照しながら、第3の実施形態に係るマルウェア解析装置301が有する構成と、マルウェア解析装置301が行う処理とについて説明する。図10は、本発明の第3の実施形態に係るマルウェア解析装置301が有する構成を示すブロック図である。図11は、第3の実施形態に係るマルウェア解析装置301における処理の流れを示すフローチャートである。尚、マルウェア解析装置301は、ソフトウェアを解析する装置であるので、以降、ソフトウェア解析装置と表すこともある。
The configuration of the
第3の実施形態に係るマルウェア解析装置301は、判定情報設定部302と、ソフトウェア情報設定部303と、ソフトウェア判定装置201とを有する。さらに、マルウェア解析装置301は、判定情報記憶部304と、ソフトウェア情報記憶部305と、記憶部107とを有してもよい。
The
ソフトウェア情報記憶部305は、図12に例示するような、複数種類のソフトウェア情報を含むソフトウェア情報セットを記憶している。図12は、ソフトウェア情報セットが有する構成の一例を概念的に表す図である。
The software
図12に示された例において、ソフトウェア情報は、たとえば、ソフトウェアの名称「F」と、ファイル「FFFF.exe」と、ファイルの処理手順「FFFF.exeを「¥12345」に保存する」とを関連付けする。これは、「FFFF.exe」を記憶領域「¥12345」に保存することにより、ソフトウェア「F」を実行することが可能な仮想計算機106を設定できることを表す。ソフトウェアは、たとえば、マルウェアであってもよい。
In the example shown in FIG. 12, the software information includes, for example, a software name “F”, a file “FFFF.exe”, and a file processing procedure “save FFFF.exe in“ ¥ 12345 ””. Associate. This indicates that the
判定情報記憶部304は、図13に例示されたような、複数種類の判定情報を含む判定情報セットを記憶している。図13は、判定情報セットが有する構成の一例を概念的に表す図である。
The determination
図13に例示された判定情報セットにおいては、たとえば、ソフトウェアの名称「F」と、「メモリダンプする」と、「仮想計算機が通信を開始する」と、「メモリ中に文字列「CRYPT ENGINE」が存在するか?」とが関連付けされている。これは、仮想計算機が通信を開始する場合に、メモリダンプを作成し、作成したメモリダンプ(すなわち、メモリ)中に文字列「CRYPT ENGINE」が存在するか否かに応じて、ソフトウェアFが実行されているか否かを判定することを表す。尚、「CRYPT ENGINE」は、たとえば、暗号化する機能(プログラム、エンジン)を表す。 In the determination information set illustrated in FIG. 13, for example, software name “F”, “memory dump”, “virtual machine starts communication”, “character string“ CRYPT ENGINE ”in memory Is there? ”. This is because when the virtual machine starts communication, a software dump is created, and the software F executes depending on whether or not the character string “CRYPT ENGINE” exists in the created memory dump (ie, memory) It represents that it is determined whether or not. “CRYPT ENGINE” represents, for example, a function (program, engine) for encryption.
まず、ソフトウェア情報設定部303は、たとえば、図14に例示されているようなユーザインターフェース(マンマシンインターフェース、グラフィカルユーザインターフェース)を介して、対象ソフトウェアの名称等を受信する。図14は、第3の実施形態に係るユーザインターフェースの一例を表す図である。
First, the software
たとえば、ユーザは、図14に例示されているようなユーザインターフェースにおける、ソフトウェアの名称の欄に、対象ソフトウェアの名称を入力し、その後、「実行する」欄の左のチェックボックスにチェックを入れ、「参照」ボタンを押下する。これにより、ソフトウェアの名称と、該対象ソフトウェアを実行する命令とは、ソフトウェア情報設定部303に送信される。
For example, the user inputs the name of the target software in the software name column in the user interface as illustrated in FIG. 14, and then checks the check box to the left of the “Execute” column, Press the “Browse” button. As a result, the name of the software and the instruction to execute the target software are transmitted to the software
次に、ソフトウェア情報設定部303は、ソフトウェア情報記憶部305を参照することにより、ソフトウェア情報セットの中から受信したソフトウェアの名称を含むソフトウェア情報を選ぶ(ステップS301)。次に、ソフトウェア情報設定部303は、選んだソフトウェア情報を、ソフトウェア判定装置201に送信する(与える)。
Next, the software
判定情報設定部302は、判定情報記憶部304を参照することにより、判定情報セットの中から、ソフトウェア情報設定部303が受信した名称を含む判定情報を選ぶ(ステップS302)。次に、判定情報設定部302は、選んだ判定情報を、ソフトウェア判定装置201に送信する。
The determination
次に、ソフトウェア判定装置201は、判定情報と、ソフトウェア情報とを受信するのに応じて、図7に示されたステップS201からステップS204に至る処理を実行する(ステップS303)。ソフトウェア判定装置201は、判定結果を表示してもよい(ステップS304)。
Next, in response to receiving the determination information and the software information, the
次に、第3の実施形態に係るマルウェア解析装置301に関する効果について説明する。
Next, effects related to the
本実施形態に係るマルウェア解析装置301によれば、たとえば、設定情報に応じて異なる動作を実行するマルウェア等のソフトウェアに関して、ソフトウェアが動作する設定情報を特定することができる。この結果、本実施形態に係るマルウェア解析装置301によれば、たとえば、マルウェア等のソフトウェアに対する対策を講じる情報を提供することができる。
According to the
<第4の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第4の実施形態について説明する。<Fourth Embodiment>
Next, a fourth embodiment of the present invention based on the first embodiment described above will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the characteristic parts according to the present embodiment will be mainly described, and the same components as those in the first embodiment described above will be denoted by the same reference numerals, and redundant description will be omitted. To do.
図15と図16とを参照しながら、第4の実施形態に係るマルウェア診断装置401が有する構成と、マルウェア診断装置401が行う処理とについて説明する。図15は、本発明の第4の実施形態に係るマルウェア診断装置401が有する構成を示すブロック図である。図16は、第4の実施形態に係るマルウェア診断装置401における処理の流れを示すフローチャートである。
The configuration of the malware
第4の実施形態に係るマルウェア診断装置401は、ソフトウェア判定装置101と、転送部402と、判定部403とを有する。
A
まず、マルウェア診断装置401は、設定情報(図3に例示)と、ソフトウェア情報(図4に例示)と、判定情報(図5に例示)とを受信する。この場合、マルウェア診断装置401は、複数種類の設定情報、または、複数種類の判定情報のうち、少なくとも一方を受信する。
First, the
次に、転送部402は、受信した設定情報と、受信したソフトウェア情報と、受信した判定情報とをソフトウェア判定装置101に送信する。転送部402は、複数種類の設定情報に含まれている各設定情報、複数種類の判定情報に含まれている各判定情報に関して、それぞれ、上述した処理を実行する。
Next, the
ソフトウェア判定装置101は、上述した情報を受信するのに応じて、第1の実施形態に示した処理に従い処理を実行する(ステップS401)。
In response to receiving the information described above, the
次に、判定部403は、ソフトウェア判定装置101が該処理を実行することによって算出した判定結果を受信する。すなわち、判定部403は、転送部402が転送した各設定情報、または、転送部402が転送した各判定情報に関して、それぞれ、該判定結果を受信する。判定部403は、受信した複数種類の判定結果において、対象ソフトウェアが実行される場合と、対象ソフトウェアが実行されない場合とがあるか否かを判定する(ステップS402)。
Next, the
判定部403は、受信した複数種類の判定結果において、対象ソフトウェアが実行される設定情報と、対象ソフトウェアが実行されない設定情報とがある場合に(ステップS402にてYES)、受信したソフトウェア情報に関する対象ソフトウェアがマルウェアであると判定する(ステップS403)。判定部403は、受信した複数種類の判定結果において、どちらか一方の判定になる場合に(ステップS402にてNO)、受信したソフトウェア情報に関する対象ソフトウェアがマルウェアでないと判定する(ステップS404)。
If there are setting information for executing the target software and setting information for not executing the target software in the plurality of types of determination results received (YES in step S402), the
次に、第4の実施形態に係るマルウェア診断装置401に関する効果について説明する。
Next, effects related to the
本実施形態に係るマルウェア診断装置401によれば、たとえば、計算機環境に応じて動作が変化するマルウェアを見つけることができる。
According to the
この理由は、マルウェア診断装置401が複数種類の設定情報に関して判定結果が異なる場合に、対象ソフトウェアがマルウェアであると判定するからである。
This is because the
より具体的に、複数種類の設定情報のみが設定される場合に、ソフトウェア判定装置101は、マルウェア等を解析可能な解析ソフトウェア(たとえば、デバッガ)を仮想計算機106に設定するのではなく、仮想計算機が及ぼす影響を解析することにより、対象ソフトウェアを解析する。たとえば、仮想計算機が実行する通信を外部から監視したり、仮想計算機が利用するメインメモリのダンプを解析したりすることにより、ソフトウェア判定装置101は、仮想計算機が及ぼす影響を調べることができる。
More specifically, when only a plurality of types of setting information are set, the
また、複数の判定情報は、次に示す判定情報1及び判定情報2を含んでいてもよい。すなわち、
(判定情報1)実行処理が、ソフトウェア情報に含まれる対象ソフトウェアと異なるソフトウェア(たとえば、解析ソフトウェア)を起動する場合を表す、
(判定情報2)実行処理が、該異なるソフトウェア(たとえば、該解析ソフトウェア)を実行しない場合を表す。The plurality of pieces of determination information may include
(Determination information 1) represents a case where the execution process starts software (for example, analysis software) different from the target software included in the software information.
(Decision information 2) This represents a case where the execution process does not execute the different software (for example, the analysis software).
この場合、本実施形態に係るマルウェア診断装置401によれば、ソフトウェアを解析する解析ソフトウェアを検知するマルウェアであっても、検知することができる。
In this case, according to the
ソフトウェアを解析することが可能な解析ソフトウェア(たとえば、デバッガ)が起動されていることを検知するのに応じて、活動を停止するマルウェアも数多く知られている。この場合、該マルウェアは、解析ソフトウェアが起動されている仮想計算機106において活動を停止する。一方で、該マルウェアは、解析ソフトウェアが起動されていない仮想計算機において活動する。したがって、マルウェア診断装置401は、複数の判定情報に関して判定結果が異なるか否かを判定するので、入力された対象ソフトウェアがマルウェアであるか否かを判定することができる。
Many malwares that stop activity in response to detecting that analysis software (e.g., a debugger) capable of analyzing the software is activated are also known. In this case, the malware stops the activity in the
また、上述した解析ソフトウェアは、仮想計算機106の内部において、通信情報(内容)を解析する機能であってもよい。この場合、マルウェア診断装置401は、通信情報を解析する解析ソフトウェアを検知するマルウェアであっても、検知することができる。
Further, the analysis software described above may have a function of analyzing communication information (contents) inside the
(ハードウェア構成例)
上述した本発明の各実施形態におけるソフトウェア判定装置、ソフトウェア解析装置、及び、マルウェア診断装置を、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係るソフトウェア判定装置、係るソフトウェア解析装置、及び、係るマルウェア診断装置は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係るソフトウェア判定装置、係るソフトウェア解析装置、及び、係るマルウェア診断装置は、専用の装置として実現してもよい。(Hardware configuration example)
A configuration example of hardware resources for realizing the software determination device, the software analysis device, and the malware diagnosis device in each embodiment of the present invention described above using one calculation processing device (information processing device, computer) will be described. . However, the software determination device, the software analysis device, and the malware diagnosis device may be realized using at least two calculation processing devices physically or functionally. In addition, the software determination device, the software analysis device, and the malware diagnosis device may be realized as a dedicated device.
図17は、本発明の各実施形態におけるソフトウェア判定装置、ソフトウェア解析装置、及び、マルウェア診断装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置20は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)21、メモリ22、ディスク23、及び、不揮発性記録媒体24を有する。計算処理装置20は、さらに、通信インターフェース(以降、「通信IF」と表す。)27、及び、ディスプレイ28を有する。計算処理装置20は、入力装置25、及び、出力装置26に接続されていてもよい。計算処理装置20は、通信IF27を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
FIG. 17 is a diagram schematically illustrating a hardware configuration example of a calculation processing device capable of realizing a software determination device, a software analysis device, and a malware diagnosis device in each embodiment of the present invention. The
不揮発性記録媒体24は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体24は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体24は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体24は、上述した媒体に限定されない。また、不揮発性記録媒体24の代わりに、通信IF27を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
The
すなわち、CPU21は、ディスク23が記憶するソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ22にコピーし、演算処理を実行する。CPU21は、プログラム実行に必要なデータをメモリ22から読み取る。表示が必要な場合には、CPU21は、ディスプレイ28に出力結果を表示する。外部への出力が必要な場合には、CPU21は、出力装置26に出力結果を出力する。外部からプログラムを入力する場合、CPU21は、入力装置25からプログラムを読み取る。CPU21は、上述した図1、図6、図10、または、図15に示す各部が表す機能(処理)に対応するところのメモリ22にあるソフトウェア判定プログラム(図2、または、図7)、マルウェア解析プログラム(図11)、または、マルウェア診断プログラム(図16)を解釈し実行する。CPU21は、上述した本発明の各実施形態において説明した処理を順次行う。
That is, the
すなわち、このような場合、本発明は、係るソフトウェア判定プログラム、マルウェア解析プログラム、または、マルウェア診断プログラムによっても成し得ると捉えることができる。更に、係るソフトウェア判定プログラム、マルウェア解析プログラム、または、マルウェア診断プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。 That is, in such a case, it can be understood that the present invention can also be realized by such a software determination program, a malware analysis program, or a malware diagnosis program. Furthermore, it can be understood that the present invention can also be realized by a computer-readable non-volatile recording medium in which the software determination program, the malware analysis program, or the malware diagnosis program is recorded.
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。 The present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the above-described embodiment. That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.
この出願は、2015年1月22日に出願された日本出願特願2015−010119を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2015-010119 for which it applied on January 22, 2015, and takes in those the indications of all here.
101 ソフトウェア判定装置
102 構成設定部
103 ソフトウェア設定部
104 起動部
105 判定部
106 仮想計算機
107 記憶部
108 メモリ
201 ソフトウェア判定装置
202 情報送信部
203 表示部
204 設定情報記憶部
301 マルウェア解析装置
302 判定情報設定部
303 ソフトウェア情報設定部
304 判定情報記憶部
305 ソフトウェア情報記憶部
401 マルウェア診断装置
402 転送部
403 判定部
20 計算処理装置
21 CPU
22 メモリ
23 ディスク
24 不揮発性記録媒体
25 入力装置
26 出力装置
27 通信IF
28 ディスプレイDESCRIPTION OF
22
28 display
Claims (11)
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定手段と
を備えるソフトウェア判定装置。Setting information representing the configuration of the virtual machine, software information in which at least one or more files required for executing the target software and a procedure for setting the file in the virtual machine are associated, and the target software executes Determination processing in which execution processing executed outside the virtual machine, processing timing to execute the execution processing, and determination conditions representing the determination conditions are associated with each other is determined. A configuration setting means for setting the virtual machine having the configuration based on the setting information;
In accordance with the procedure included in the software information, software setting means for setting the file in storage means constituting the virtual machine;
Starting means for starting the set virtual machine;
Based on the determination information, the execution process is executed at the timing, it is determined whether or not the determination condition is satisfied with respect to the execution result, and the target software is executed when the determination condition is satisfied And a determination unit that determines that the target software is not executed when the determination condition is not satisfied.
請求項1に記載のソフトウェア判定装置。The software determination apparatus according to claim 1, wherein when the plurality of pieces of determination information having different execution processes are given with respect to the target software, the determination unit determines each piece of determination information included in the plurality of pieces of determination information. .
提供した各前記設定情報に関して、前記判定手段が前記判定条件を満たしていると判定した前記設定情報を表示する表示手段と
をさらに備える
請求項1または請求項2に記載のソフトウェア判定装置。When the software information, the determination information, and a setting information set including a plurality of types of setting information are given, the setting information in the setting information set, the software information, and the determination Information providing means for providing information to the configuration setting means;
The software determination apparatus according to claim 1, further comprising: a display unit configured to display the setting information determined by the determination unit to satisfy the determination condition for each provided setting information.
ソフトウェア情報設定手段と
を備え、
前記ソフトウェア情報においては、前記対象ソフトウェアを識別可能な識別子と、前記ファイルと、前記手順とが関連付けされており、
前記判定情報においては、前記識別子と、前記実行処理と、前記タイミングと、前記判定条件とが関連付けされており、
前記ソフトウェア情報設定手段は、特定の前記識別子が与えられるに応じて、複数種類の前記ソフトウェア情報が含まれているソフトウェア情報セットから、前記特定の識別子に関連付けされた前記ファイルと、前記特定の識別子に関連付けされた前記手順とを求め、さらに、複数種類の前記判定情報が含まれている判定情報セットから、前記特定の識別子に関連付けされた前記実行処理と、前記特定の識別子に関連付けされた前記タイミングと、前記特定の識別子に関連付けされた前記判定条件とを求め、求めた前記ファイルと、求めた前記手順と、求めた前記実行処理と、求めた前記タイミングと、求めた前記判定条件とを、前記ソフトウェア判定装置に与える
ソフトウェア解析装置。A software determination device according to claim 3;
Software information setting means, and
In the software information, an identifier capable of identifying the target software, the file, and the procedure are associated with each other,
In the determination information, the identifier, the execution process, the timing, and the determination condition are associated,
The software information setting means includes a file associated with the specific identifier from a software information set including a plurality of types of the software information in response to the specific identifier, and the specific identifier. And the execution process associated with the specific identifier from the determination information set including a plurality of types of the determination information, and the process associated with the specific identifier. The timing and the determination condition associated with the specific identifier are obtained, the obtained file, the obtained procedure, the obtained execution process, the obtained timing, and the obtained determination condition. A software analysis device for supplying to the software determination device.
をさらに備え、
前記ソフトウェア情報設定手段は、前記ユーザインターフェースを介して指定された前記特定の識別子に基づいて、前記ファイルと前記手順とを求める
請求項4に記載のソフトウェア解析装置。A user interface capable of designating the specific identifier and a process related to the target software represented by the specific identifier;
The software analysis apparatus according to claim 4, wherein the software information setting unit obtains the file and the procedure based on the specific identifier designated via the user interface.
1つの対象ソフトウェアに関して、前記ソフトウェア判定装置における前記判定手段が判定した判定結果が異なる場合に、前記1つの対象ソフトウェアがマルウェアであると判定し、該判定結果が一致する場合に、前記1つの対象ソフトウェアがマルウェアでないと判定するマルウェア判定手段と
を備えるマルウェア診断装置。A software determination device according to claim 3;
When the determination result determined by the determination unit in the software determination device is different for one target software, the one target software is determined to be malware, and the determination result matches, the one target A malware diagnosis device comprising: malware determination means for determining that software is not malware.
前記対象ソフトウェアがマルウェアであるか否かを判定するマルウェア判定手段と
を備え、
前記複数の判定情報は、前記実行処理が前記対象ソフトウェアと異なるソフトウェアを起動する処理を表す場合と、前記実行処理が前記異なるソフトウェアを起動しない処理を表す場合とを含み、
前記マルウェア判定手段は、前記ソフトウェア判定装置における判定結果が、2つの該実行処理に関して異なる場合に、前記対象ソフトウェアをマルウェアであると判定し、該2つの実行処理に関して同じである場合に、前記対象ソフトウェアをマルウェアでないと判定する
マルウェア診断装置。A software determination device according to claim 2;
Malware judging means for judging whether or not the target software is malware,
The plurality of pieces of determination information include a case where the execution process represents a process of starting software different from the target software and a case where the execution process represents a process of not starting the different software,
The malware determination unit determines that the target software is malware when the determination results in the software determination device are different with respect to the two execution processes, and when the target software is the same with respect to the two execution processes, Malware diagnostic device that determines that software is not malware.
請求項7に記載のマルウェア診断装置。The malware diagnosis apparatus according to claim 7, wherein the different software is software capable of analyzing an object program related to the target software.
請求項7に記載のマルウェア診断装置。The malware diagnosis apparatus according to claim 7, wherein the different software is software capable of analyzing communication information transmitted and received in communication executed by the target software.
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定し、
設定された前記仮想計算機を起動し、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定するソフトウェア判定方法。Setting information representing the configuration of the virtual machine, software information in which at least one or more files required for executing the target software and a procedure for setting the file in the virtual machine are associated, and the target software executes Determination processing in which execution processing executed outside the virtual machine, processing timing to execute the execution processing, and determination conditions representing the determination conditions are associated with each other is determined. In this case, the virtual machine having the configuration is set based on the setting information,
According to the procedure included in the software information, the file is set in the storage means configuring the virtual machine,
Start the virtual machine that has been set,
Based on the determination information, the execution process is executed at the timing, it is determined whether or not the determination condition is satisfied with respect to the execution result, and the target software is executed when the determination condition is satisfied A software determination method that determines that the target software is not being executed when it is determined that the target software is not satisfied.
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定機能と
をコンピュータに実現させるソフトウェア判定プログラムが格納された記録媒体。Setting information representing the configuration of the virtual machine, software information in which at least one or more files required for executing the target software and a procedure for setting the file in the virtual machine are associated, and the target software executes Determination processing in which execution processing executed outside the virtual machine, processing timing to execute the execution processing, and determination conditions representing the determination conditions are associated with each other is determined. A configuration setting function for setting the virtual machine having the configuration based on the setting information;
In accordance with the procedure included in the software information, a software setting function for setting the file in a storage unit configuring the virtual machine;
A start function for starting the set virtual machine;
Based on the determination information, the execution process is executed at the timing, it is determined whether or not the determination condition is satisfied with respect to the execution result, and the target software is executed when the determination condition is satisfied. A recording medium storing a software determination program that causes a computer to realize a determination function that determines that the target software is not executed when the determination condition is not satisfied.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015010119 | 2015-01-22 | ||
JP2015010119 | 2015-01-22 | ||
PCT/JP2016/000192 WO2016117317A1 (en) | 2015-01-22 | 2016-01-15 | Software determination device, software determination method, recording medium in which software determination program is stored, software analysis device, and malware diagnosis device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2016117317A1 true JPWO2016117317A1 (en) | 2017-11-02 |
Family
ID=56416872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016570542A Pending JPWO2016117317A1 (en) | 2015-01-22 | 2016-01-15 | Software judgment device, software judgment method, software judgment program, software analysis device, and malware diagnosis device |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2016117317A1 (en) |
WO (1) | WO2016117317A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9400887B2 (en) * | 2011-11-15 | 2016-07-26 | Japan Science And Technology Agency | Program analysis/verification service provision system, control method for same, computer readable non-transitory storage medium, program analysis/verification device, program analysis/verification tool management device |
US9361459B2 (en) * | 2013-04-19 | 2016-06-07 | Lastline, Inc. | Methods and systems for malware detection based on environment-dependent behavior |
JP6116524B2 (en) * | 2014-06-05 | 2017-04-19 | 株式会社日立システムズ | Program analysis apparatus, program analysis method, and program analysis system |
-
2016
- 2016-01-15 WO PCT/JP2016/000192 patent/WO2016117317A1/en active Application Filing
- 2016-01-15 JP JP2016570542A patent/JPWO2016117317A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2016117317A1 (en) | 2016-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2955658B1 (en) | System and methods for detecting harmful files of different formats | |
US9396082B2 (en) | Systems and methods of analyzing a software component | |
US20090119647A1 (en) | Device and method for inspecting software for vulnerabilities | |
JP4732484B2 (en) | Exploit code analysis method and apparatus in non-executable file using virtual environment | |
EP3264274B1 (en) | Input discovery for unknown program binaries | |
US10366226B2 (en) | Malicious code analysis device and method based on external device connected via USB cable | |
US11048799B2 (en) | Dynamic malware analysis based on shared library call information | |
US10691791B2 (en) | Automatic unpacking of executables | |
TWI656453B (en) | Detection system and detection method | |
JP2008129707A (en) | Program analyzing device, program analyzing method, and program | |
JP2018109910A (en) | Similarity determination program, similarity determination method, and information processing apparatus | |
EP2942728B1 (en) | Systems and methods of analyzing a software component | |
WO2016117317A1 (en) | Software determination device, software determination method, recording medium in which software determination program is stored, software analysis device, and malware diagnosis device | |
JP5811859B2 (en) | Source code static analysis device, system, method, and program therefor | |
JP6919570B2 (en) | Software analysis device, software analysis method, and software analysis program | |
DeMott et al. | Towards an automatic exploit pipeline | |
JP4957521B2 (en) | Software partial test system, method and program used therefor | |
KR101513662B1 (en) | Search system and method of executable GUI | |
JPWO2019049478A1 (en) | Call stack acquisition device, call stack acquisition method, and call stack acquisition program | |
JP7238439B2 (en) | Information processing device, test method, and test program | |
KR101583306B1 (en) | Analysis method and analysis apparatus of executable file applied virtualization obfuscation | |
KR101116770B1 (en) | Apparatus for?diagnosing and curing malicious code and method thereof | |
WO2022249421A1 (en) | Code implementation omission detection device, code implementation omission detection method, and program | |
WO2018122990A1 (en) | Information processing device, information processing method, and information processing program | |
JP2022136477A (en) | Test control program, information processing device and test control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170621 |