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 PDF

Info

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
Application number
JP2016570542A
Other languages
Japanese (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2016117317A1 publication Critical patent/JPWO2016117317A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements 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, Patent Document 1 discloses an analysis device that outputs a warning text based on a result of analyzing a source program using a static analysis program. The analysis apparatus creates a file representing the result of analyzing the source program for each of a plurality of versions, and creates a difference between the files. Next, the analysis apparatus outputs a warning text associated with the created difference.

一方、ソフトウェアに関するソースプログラムが開示されていない場合に、該ソフトウェアを解析する手法としてリバースエンジニアリングが知られている。リバースエンジニアリングにおいては、ソフトウェアのオブジェクトプログラムを逆アセンブルすることにより、ソフトウェアの機能が解明される。また、不正な動作を実行するソフトウェアを表すマルウェアをリバースエンジニアリングすることにより、マルウェアに対する対策を講じることができる。   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, Patent Document 2 discloses a technique for extracting malware from a packing program that includes malware. Patent Documents 3 and 4 disclose techniques for analyzing software by analyzing the software in a virtual computer.

特許文献2は、ソフトウェアが実行するプロセスがメモリにおいてアクセスした領域の変化に基づき、パッキングプログラムからマルウェアを抽出する抽出装置を開示する。   Patent Document 2 discloses an extraction device that extracts malware from a packing program based on a change in an area accessed in a memory by a process executed by software.

特許文献3は、ソフトウェアを解析するプログラム及び検証ツールを用いて、ソフトウェアを検証する検証サービス提供システムを開示する。該提供システムは、プログラムを解析する解析ツールを仮想計算機に導入し、該仮想計算機において、導入した解析ツールを用いてソフトウェアを解析する。   Patent Document 3 discloses a verification service providing system that verifies software using a program for analyzing software and a verification tool. The providing system introduces an analysis tool for analyzing a program into the virtual computer, and analyzes the software using the introduced analysis tool in the virtual computer.

特許文献4は、仮想計算機において、マルウェア候補サンプルが実行する処理に伴い出力されるセッション情報等に基づき、該サンプルがマルウェアであるか否かを判定するマルウェア解析装置を開示する。該マルウェア解析装置は、該サンプルがマルウェアであると判定する場合に、該マルウェアを識別可能なシグネチャを出力する。   Patent Document 4 discloses a malware analysis apparatus that determines whether or not a sample is malware based on session information or the like output in association with processing executed by a malware candidate sample in a virtual computer. When determining that the sample is malware, the malware analysis apparatus outputs a signature that can identify the malware.

特開2004−126866号公報JP 2004-126866 A 特許第5389734号公報Japanese Patent No. 5389734 特許第5540160号公報Japanese Patent No. 5540160 特表2014−519113号公報Special table 2014-519113 gazette

たとえば、特許文献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 Patent Document 1. The computer environment represents a mode in which components constituting hardware, software installed in the computer, and the like are combined.

しかし、上述したようないずれの装置を用いてソフトウェアを解析したとしても、ソフトウェアの動作を検証する処理に多くの処理量(計算量)を要する。たとえば、ソースプログラムを解析する解析作業においては、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.

本発明の第1の実施形態に係るソフトウェア判定装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the software determination apparatus which concerns on the 1st Embodiment of this invention has. 第1の実施形態に係るソフトウェア判定装置における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the software determination apparatus which concerns on 1st Embodiment. 設定情報が有する構成の一例を概念的に表す図である。It is a figure which represents notionally an example of the structure which setting information has. ソフトウェア情報が有する構成の一例を概念的に表す図である。It is a figure which represents notionally an example of the structure which software information has. 判定情報が有する構成の一例を概念的に表す図である。It is a figure which represents notionally an example of the structure which judgment information has. 本発明の第2の実施形態に係るソフトウェア判定装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the software determination apparatus concerning the 2nd Embodiment of this invention has. 第2の実施形態に係るソフトウェア判定装置における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the software determination apparatus which concerns on 2nd Embodiment. 設定情報セットが有する構成の一例を概念的に表す図である。It is a figure which represents notionally an example of the structure which a setting information set has. 表示部に表示される設定情報の一例を概念的に表す図である。It is a figure which represents notionally an example of the setting information displayed on a display part. 本発明の第3の実施形態に係るマルウェア解析装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the malware-analysis apparatus concerning the 3rd Embodiment of this invention has. 第3の実施形態に係るマルウェア解析装置における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the malware analyzer which concerns on 3rd Embodiment. ソフトウェア情報セットが有する構成の一例を概念的に表す図である。It is a figure which represents notionally an example of the structure which a software information set has. 判定情報セットが有する構成の一例を概念的に表す図である。FIG. 3 is a diagram conceptually illustrating an example of a configuration included in a determination information set. 第3の実施形態に係るユーザインターフェースの一例を表す図である。It is a figure showing an example of the user interface which concerns on 3rd Embodiment. 本発明の第4の実施形態に係るマルウェア診断装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the malware diagnostic apparatus which concerns on the 4th Embodiment of this invention has. 第4の実施形態に係るマルウェア診断装置における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the malware diagnostic apparatus which concerns on 4th Embodiment. 本発明の各実施形態に係るソフトウェア判定装置等を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。It is a block diagram which shows roughly the hardware structural example of the calculation processing apparatus which can implement | achieve the software determination apparatus etc. which concern on each embodiment of this invention.

次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。   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 software determination apparatus 101 according to the first embodiment of the present invention. FIG. 2 is a flowchart showing the flow of processing in the software determination apparatus 101 according to the first embodiment.

第1の実施形態に係るソフトウェア判定装置101は、構成設定部102と、ソフトウェア設定部103と、起動部104と、判定部105とを有する。   A software determination apparatus 101 according to the first embodiment includes a configuration setting unit 102, a software setting unit 103, an activation unit 104, and a determination unit 105.

ソフトウェア判定装置101は、仮想計算機106と通信接続することができる。仮想計算機106は、情報を不揮発的に記憶可能な記憶部107を有する。仮想計算機106において実行されている処理に関するデータは、メインメモリ(以降、「メモリ」と表す)108に記憶されている。処理に関するデータは、たとえば、ソフトウェアが処理する対象となっている処理データ(情報)、該ソフトウェアを表す実行プログラム等である。   The software determination apparatus 101 can be connected to the virtual computer 106 by communication. The virtual computer 106 includes a storage unit 107 that can store information in a nonvolatile manner. Data relating to processing executed in the virtual computer 106 is stored in a main memory (hereinafter referred to as “memory”) 108. Data related to processing is, for example, processing data (information) that is a target to be processed by software, an execution program representing the software, and the like.

構成設定部102は、図3に例示するような設定情報と、図4に例示するようなソフトウェア情報と、図5に例示するような判定情報とを受信するのに応じて、受信した情報に基づき、仮想計算機106に含まれる構成要素を設定する(ステップS101)。すなわち、構成設定部102は、設定情報と、ソフトウェア情報と、判定情報とが与えられるのに応じて、与えられた情報に基づき、仮想計算機106に含まれる構成要素を設定する。図3は、設定情報が有する構成の一例を概念的に表す図である。図4は、ソフトウェア情報が有する構成の一例を概念的に表す図である。図5は、判定情報が有する構成の一例を概念的に表す図である。図3乃至図5を参照しながら設定情報、ソフトウェア情報、及び、判定情報を説明した後に、図2に示す処理について詳述する。   The configuration setting unit 102 receives the setting information illustrated in FIG. 3, the software information illustrated in FIG. 4, and the determination information illustrated in FIG. Based on this, the constituent elements included in the virtual machine 106 are set (step S101). That is, the configuration setting unit 102 sets configuration elements included in the virtual computer 106 based on the given information in response to the setting information, software information, and determination information. FIG. 3 is a diagram conceptually illustrating an example of a configuration included in the setting information. FIG. 4 is a diagram conceptually illustrating an example of a configuration included in software information. FIG. 5 is a diagram conceptually illustrating an example of a configuration included in the determination information. After describing the setting information, software information, and determination information with reference to FIGS. 3 to 5, the process shown in FIG. 2 will be described in detail.

図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 virtual computer 106 is associated with a value set for the component. Referring to the example shown in FIG. 3, for example, the setting information includes information in which the name “number of processors” is associated with the setting value “4”. This represents setting the number of processors constituting the virtual computer 106 to four. The setting information includes information in which the name “display resolution (vertical)” and the setting value “480” are associated with each other. This represents that the vertical resolution of the display constituting the virtual computer 106 is set to 480. IP represents an Internet protocol. OS represents an operating system.

次に、図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 storage unit 107 are associated with each other. In the software information, in addition to the file and the setting procedure, the name (identifier) of the target software may be further associated. Referring to the example shown in FIG. 4, the software information includes the following three items. That is,
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 storage unit 107, and “BBB.dll” is stored in “¥ 111”. This indicates that the virtual machine 106 that executes the software “A” can be set.

次に、図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 virtual computer 106, a timing for executing the execution process, and a condition for determining whether the target software is being executed based on the result of the execution process. Information associated with a condition. In the determination information, in addition to the execution process, the timing, and the determination condition, a name of software may be further associated. The determination condition in the determination information represents a condition referred to when determining whether or not the target software is being executed in the virtual computer 106.

たとえば、図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 virtual computer 106 can be realized by sequentially executing the following item 1 and item 2, for example. That is,
(Item 1) After 10 minutes have passed since the virtual computer 106 was started, the response time for the virtual computer 106 is measured (column “execution process” and column “execution process execution timing” in FIG. 5).
(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 virtual machine 106. That is, it is assumed that the execution process is not a process executed in the virtual computer 106 but a process for monitoring the virtual computer 106 from the outside. For example, the execution process is a process such as measuring a response time related to the virtual machine 106, dumping the memory 108, or reading communication contents transmitted / received with respect to the virtual machine 106.

図2乃至図5に示された例を参照しながら、本実施形態に係るソフトウェア判定装置101について詳述する。構成設定部102は、図3に例示された設定情報を受信する場合に、ステップS101にて、たとえば、受信した設定情報に従いプロセッサの数を4に設定することにより、仮想計算機106に含まれる構成要素を設定する。   The software determination apparatus 101 according to the present embodiment will be described in detail with reference to the examples illustrated in FIGS. When the configuration setting unit 102 receives the setting information illustrated in FIG. 3, the configuration setting unit 102 includes, for example, a configuration included in the virtual computer 106 by setting the number of processors to 4 according to the received setting information in step S <b> 101. Set the element.

次に、ソフトウェア設定部103は、図4に例示されたソフトウェア情報に含まれる手順に従い、仮想計算機106が有する構成要素の1つである記憶部107に、該手順と関連付けされたファイルを設定する(ステップS102)。この結果、仮想計算機106は、記憶部107からソフトウェア設定部103にて設定されたファイルを読み取り、読み取ったファイルを実行することによって、該対象ソフトウェアを実行することができる。   Next, the software setting unit 103 sets a file associated with the procedure in the storage unit 107, which is one of the components included in the virtual machine 106, according to the procedure included in the software information illustrated in FIG. (Step S102). As a result, the virtual machine 106 can execute the target software by reading the file set by the software setting unit 103 from the storage unit 107 and executing the read file.

次に、起動部104は、仮想計算機106を起動する(ステップS103)。起動部104は、さらに、ソフトウェア設定部103にて設定された対象ソフトウェアを起動してもよい。ソフトウェア情報がマルウェアに関する情報である場合には、起動部104は、対象ソフトウェアを起動しない設定であってもよい。この場合に、仮想計算機106が起動するに応じて、対象ソフトウェアは起動する。   Next, the activation unit 104 activates the virtual computer 106 (step S103). The activation unit 104 may further activate the target software set by the software setting unit 103. When the software information is information related to malware, the activation unit 104 may be set not to activate the target software. In this case, the target software is activated as the virtual computer 106 is activated.

次に、判定部105は、図5に例示された判定情報に基づき、該判定情報に含まれるタイミングに、該タイミングに関連付けされた実行処理を実行する(ステップS104)。たとえば、該実行処理は、仮想計算機106の応答時間を計測する処理、メモリ108をダンプする処理、または、仮想計算機106に関して送受信される通信内容を読み取る等の処理である。該実行処理は、たとえば、ソフトウェア「A」が外部と通信する機能を有している場合に、ソフトウェアAに通信を送った後に、応答するまでの時間を計測する処理である。   Next, based on the determination information illustrated in FIG. 5, the determination unit 105 executes an execution process associated with the timing at the timing included in the determination information (step S104). For example, the execution process is a process of measuring the response time of the virtual machine 106, a process of dumping the memory 108, or a process of reading communication contents transmitted / received with respect to the virtual machine 106. For example, when the software “A” has a function of communicating with the outside, the execution process is a process of measuring a time until a response is made after sending the communication to the software A.

次に、判定部105は、実行処理を実行した結果に基づいて、該実行処理に関連付けされた判定条件に基づき、対象ソフトウェアが仮想計算機106において実行されているか否かを判定する(ステップS105)。判定部105は、該実行処理の実行結果が該判定条件を満たしていると判定した場合に(ステップS105にてYES)、対象ソフトウェアが実行されていると判定する(ステップS106)。判定部105は、該実行処理の実行結果が該判定条件を満たしていないと判定した場合に(ステップS105にてNO)、対象ソフトウェアが実行されていないと判定する(ステップS107)。   Next, based on the result of executing the execution process, the determination unit 105 determines whether the target software is being executed in the virtual machine 106 based on the determination condition associated with the execution process (step S105). . When determining that the execution result of the execution process satisfies the determination condition (YES in step S105), the determination unit 105 determines that the target software is being executed (step S106). If the determination unit 105 determines that the execution result of the execution process does not satisfy the determination condition (NO in step S105), the determination unit 105 determines that the target software is not being executed (step S107).

図5に例示された判定情報の場合に、判定部105は、ステップS103にて仮想計算機106が起動してから10分経過した後に、仮想計算機106の応答時間を計測する。次に、判定部105は、計測された応答時間が3秒以上であるか否かを判定することにより、仮想計算機106において、対象ソフトウェアが実行されているか否かを判定する。   In the case of the determination information illustrated in FIG. 5, the determination unit 105 measures the response time of the virtual computer 106 after 10 minutes have elapsed since the virtual computer 106 was started in step S <b> 103. Next, the determination unit 105 determines whether or not the target software is being executed in the virtual computer 106 by determining whether or not the measured response time is 3 seconds or more.

尚、判定情報が、1つの対象ソフトウェアに関して複数の実行処理(タイミング、判定条件)を含む場合には、判定部105は、各実行処理に関して、ステップS104乃至ステップS107に示す処理を実行する。   When the determination information includes a plurality of execution processes (timing and determination conditions) for one target software, the determination unit 105 executes the processes shown in steps S104 to S107 for each execution process.

次に、第1の実施形態に係るソフトウェア判定装置101に関する効果について説明する。   Next, effects related to the software determination apparatus 101 according to the first embodiment will be described.

ソフトウェア判定装置101によれば、対象ソフトウェアの動作を容易に検証することができる。この理由は、ソフトウェア判定装置101が、ソースプログラムを解析することなく、設定情報に基づき設定される仮想計算機106を起動し、起動後に実行する実行処理の実行結果等に基づき、該対象ソフトウェアが実行されているか否かを判定するからである。   According to the software determination apparatus 101, the operation of the target software can be easily verified. This is because the software determination apparatus 101 starts the virtual computer 106 set based on the setting information without analyzing the source program, and the target software executes based on the execution result of the execution process executed after the start. This is because it is determined whether or not it has been done.

「背景技術」にて説明したように、ソースプログラムを解析する処理には多くの処理を要する。これに対して、実行結果等に基づき対象ソフトウェアが実行されているか否かを判定する判定処理は、ある判定条件を満たすか否かを判定することにより実行される処理であるので、該処理には多くの処理を必要としない。したがって、本実施形態に係るソフトウェア判定装置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 software determination apparatus 101 according to the present embodiment, the operation of the target software can be easily verified.

また、ソフトウェア判定装置101は、仮想計算機106の外部から実行処理をするので、対象ソフトウェアが実行されているか否かを解析する解析ソフトウェアを仮想計算機106に設定しない。たとえば、該解析ソフトウェアが、判定対象である対象ソフトウェアに関する処理に影響を与える場合には、判定対象である対象ソフトウェアを正確に判定することができない。したがって、本実施形態に係るソフトウェア判定装置101によれば、たとえ、仮想計算機106における解析ソフトウェアの有無に応じて対象ソフトウェアの動作が異なる場合であっても、対象ソフトウェアの動作をより正確に検証することができる。   In addition, since the software determination apparatus 101 performs execution processing from outside the virtual computer 106, analysis software for analyzing whether the target software is being executed is not set in the virtual computer 106. For example, when the analysis software affects processing related to the target software that is the determination target, the target software that is the determination target cannot be accurately determined. Therefore, according to the software determination apparatus 101 according to the present embodiment, the operation of the target software is more accurately verified even when the operation of the target software varies depending on the presence or absence of the analysis software in the virtual computer 106. be able to.

<第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 software determination apparatus 201 according to the second embodiment and the processing performed by the software determination apparatus 201 will be described with reference to FIGS. FIG. 6 is a block diagram showing the configuration of the software determination apparatus 201 according to the second embodiment of the present invention. FIG. 7 is a flowchart showing a flow of processing in the software determination apparatus 201 according to the second embodiment.

第2の実施形態に係るソフトウェア判定装置201は、構成設定部102と、ソフトウェア設定部103と、起動部104と、判定部105と、情報送信部202と、表示部203とを有する。ソフトウェア判定装置201は、設定情報記憶部204に接続されていてもよい。   A software determination apparatus 201 according to the second embodiment includes a configuration setting unit 102, a software setting unit 103, an activation unit 104, a determination unit 105, an information transmission unit 202, and a display unit 203. The software determination device 201 may be connected to the setting information storage unit 204.

以降の説明においては、説明の便宜上、情報送信部を、「情報提供部」と表すこともある。   In the following description, for convenience of explanation, the information transmission unit may be expressed as an “information providing unit”.

ソフトウェア判定装置201は、仮想計算機106と通信接続することができる。   The software determination apparatus 201 can be connected to the virtual computer 106 by communication.

まず、情報送信部202は、図4に例示されているようなソフトウェア情報と、図5に例示されているような判定情報とを受信する。次に、情報送信部202は、複数種類の設定情報が含まれる設定情報セット(図8に例示)に基づき、設定情報を作成する(ステップS201)。図8は、設定情報セットが有する構成の一例を概念的に表す図である。尚、設定情報記憶部204は、設定情報セットを記憶している。   First, the information transmission unit 202 receives software information as illustrated in FIG. 4 and determination information as illustrated in FIG. Next, the information transmitting unit 202 creates setting information based on a setting information set (illustrated in FIG. 8) including a plurality of types of setting information (step S201). FIG. 8 is a diagram conceptually illustrating an example of a configuration included in the setting information set. The setting information storage unit 204 stores a setting information set.

図8に例示された設定情報セットは、仮想計算機106に含まれる構成要素の名称と、該構成要素に設定する値の種類と、該値の初期値及び最大値と、該値として可能な値と、該値の刻み幅(図8の「ステップ」)と、図3に例示された設定情報に値を設定する場合の行数とが関連付けされた情報を含んでいる。尚、設定情報セットは、上述した項目以外の項目を含んでいてもよい。また、設定情報セットは、必ずしも、上述した項目をすべて含んでいる必要はない。   The setting information set illustrated in FIG. 8 includes a name of a component included in the virtual computer 106, a type of a value set in the component, an initial value and a maximum value of the value, and possible values as the value. And the step size of the value (“step” in FIG. 8) and the number of rows when setting the value in the setting information illustrated in FIG. 3 are associated with each other. The setting information set may include items other than the items described above. In addition, the setting information set does not necessarily include all the items described above.

たとえば、図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 virtual computer 106. In this case, the information transmission unit 202 reads the setting information set from the setting information storage unit 204 and relates to the item “number of processors” from one (initial value) to eight (maximum value) one by one (step). The setting information set in the first line (setting line number) in the setting information (illustrated in FIG. 3) is created. That is, in this case, the information transmission unit 202 creates eight types of setting information.

図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 virtual computer 106. In this case, the information transmission unit 202 reads the setting information set from the setting information storage unit 204, and reads “AAA” and “BBB” regarding the item “processor name”, respectively, as setting information (illustrated in FIG. 3). ) In the second line (set number of lines), two types of setting information are created.

情報送信部202は、上述した2つの項目に関して設定情報を作成する場合には、該2つの項目の組み合わせである16(=8×2)種類の設定情報を作成する。すなわち、情報送信部202は、設定情報セットに含まれる構成要素を組み合わせることにより、設定情報を作成する。   When creating setting information regarding the two items described above, the information transmission unit 202 creates 16 (= 8 × 2) types of setting information that are combinations of the two items. That is, the information transmission unit 202 creates setting information by combining the constituent elements included in the setting information set.

次に、情報送信部202は、受信した判定情報(図5に例示)と、受信したソフトウェア情報(図4に例示)と、作成した設定情報のうちの1つの設定情報とを、構成設定部102に送信する。すなわち、情報送信部202(情報提供部)は、受信した判定情報と、受信したソフトウェア情報と、作成した設定情報のうちの1つの設定情報とを、構成設定部102に提供する。   Next, the information transmission unit 202 receives the received determination information (illustrated in FIG. 5), the received software information (illustrated in FIG. 4), and one setting information of the created setting information. 102. That is, the information transmitting unit 202 (information providing unit) provides the received setting information, received software information, and one setting information of the created setting information to the configuration setting unit 102.

以降、構成設定部102、ソフトウェア設定部103、起動部104、及び、判定部105は、図2のステップS101乃至ステップS107に示した処理と同様の処理を実行する(ステップS202)。   Thereafter, the configuration setting unit 102, the software setting unit 103, the activation unit 104, and the determination unit 105 execute the same processing as the processing shown in steps S101 to S107 in FIG. 2 (step S202).

次に、情報送信部202は、判定部105から判定結果を受信し、受信した判定結果と、構成設定部102に送信した設定情報とが関連付けされた結果情報を作成する(ステップS203)。   Next, the information transmission unit 202 receives the determination result from the determination unit 105, and creates result information in which the received determination result is associated with the setting information transmitted to the configuration setting unit 102 (step S203).

情報送信部202は、ステップS201からステップS203に至る処理を、作成した設定情報に関して、それぞれ実行する(ステップS201からステップS204に至る反復処理)。   The information transmitting unit 202 executes the process from step S201 to step S203 with respect to the created setting information (repetitive process from step S201 to step S204).

次に、表示部203は、作成した結果情報から、判定条件を満たす判定結果に関連付けされた設定情報を特定し、特定した設定情報を表示する。たとえば、表示部203は、図9に例示されているように、特定した設定情報を総括的に含む設定情報を表示してもよい。図9は、表示部203に表示される設定情報の一例を概念的に表す図である。   Next, the display unit 203 specifies setting information associated with a determination result that satisfies the determination condition from the created result information, and displays the specified setting information. For example, as illustrated in FIG. 9, the display unit 203 may display setting information that collectively includes the specified setting information. FIG. 9 is a diagram conceptually illustrating an example of setting information displayed on the display unit 203.

図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 display unit 203 collectively displays the setting information that satisfies the determination condition, each setting information that satisfies the determination condition may be displayed according to the determination by the determination unit 105.

次に、第2の実施形態に係るソフトウェア判定装置201に関する効果について説明する。   Next, effects related to the software determination device 201 according to the second embodiment will be described.

本実施形態に係るソフトウェア判定装置201によれば、対象ソフトウェアの動作を容易に検証することができる。さらに、本実施形態に係るソフトウェア判定装置201によれば、設定情報セットに含まれる複数の設定情報の中から、対象ソフトウェアが動作する設定情報を、容易に特定することができる。   According to the software determination apparatus 201 according to the present embodiment, the operation of the target software can be easily verified. Furthermore, according to the software determination apparatus 201 according to the present embodiment, setting information on which the target software operates can be easily identified from among a plurality of setting information included in the setting information set.

この理由は、理由1及び理由2である。すなわち、
(理由1)第2の実施形態に係るソフトウェア判定装置201が有する構成は、第1の実施形態に係るソフトウェア判定装置101が有する構成を含むからである、
(理由2)設定情報セット(図8に例示)に含まれる各設定情報に関して、判定部105が判定条件を満たすと判定する場合に、表示部203が該設定情報を出力するからである。判定条件が満たされた場合に、対象ソフトウェアは、設定情報に基づき構成された仮想計算機106において動作する。この結果、表示部203は、対象ソフトウェアが動作する設定情報を出力する。
The reason is Reason 1 and Reason 2. That is,
(Reason 1) The configuration of the software determination apparatus 201 according to the second embodiment includes the configuration of the software determination apparatus 101 according to the first embodiment.
(Reason 2) When the determination unit 105 determines that the determination condition is satisfied for each setting information included in the setting information set (illustrated in FIG. 8), the display unit 203 outputs the setting information. When the determination condition is satisfied, the target software operates on the virtual computer 106 configured based on the setting information. As a result, the display unit 203 outputs setting information for operating the target software.

<第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 malware analysis apparatus 301 according to the third embodiment and the process performed by the malware analysis apparatus 301 will be described with reference to FIGS. 10 and 11. FIG. 10 is a block diagram showing the configuration of the malware analysis apparatus 301 according to the third embodiment of the present invention. FIG. 11 is a flowchart showing the flow of processing in the malware analysis apparatus 301 according to the third embodiment. Note that the malware analysis device 301 is a device that analyzes software, and hence may be hereinafter referred to as a software analysis device.

第3の実施形態に係るマルウェア解析装置301は、判定情報設定部302と、ソフトウェア情報設定部303と、ソフトウェア判定装置201とを有する。さらに、マルウェア解析装置301は、判定情報記憶部304と、ソフトウェア情報記憶部305と、記憶部107とを有してもよい。   The malware analysis device 301 according to the third embodiment includes a determination information setting unit 302, a software information setting unit 303, and a software determination device 201. Furthermore, the malware analysis apparatus 301 may include a determination information storage unit 304, a software information storage unit 305, and a storage unit 107.

ソフトウェア情報記憶部305は、図12に例示するような、複数種類のソフトウェア情報を含むソフトウェア情報セットを記憶している。図12は、ソフトウェア情報セットが有する構成の一例を概念的に表す図である。   The software information storage unit 305 stores a software information set including a plurality of types of software information as illustrated in FIG. FIG. 12 is a diagram conceptually illustrating an example of the configuration of the software information set.

図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 virtual machine 106 capable of executing the software “F” can be set by saving “FFFF.exe” in the storage area “¥ 12345”. The software may be malware, for example.

判定情報記憶部304は、図13に例示されたような、複数種類の判定情報を含む判定情報セットを記憶している。図13は、判定情報セットが有する構成の一例を概念的に表す図である。   The determination information storage unit 304 stores a determination information set including a plurality of types of determination information as exemplified in FIG. FIG. 13 is a diagram conceptually illustrating an example of a configuration included in the determination information set.

図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 information setting unit 303 receives the name of the target software, for example, via a user interface (man machine interface, graphical user interface) illustrated in FIG. FIG. 14 is a diagram illustrating an example of a user interface according to the third embodiment.

たとえば、ユーザは、図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 information setting unit 303.

次に、ソフトウェア情報設定部303は、ソフトウェア情報記憶部305を参照することにより、ソフトウェア情報セットの中から受信したソフトウェアの名称を含むソフトウェア情報を選ぶ(ステップS301)。次に、ソフトウェア情報設定部303は、選んだソフトウェア情報を、ソフトウェア判定装置201に送信する(与える)。   Next, the software information setting unit 303 refers to the software information storage unit 305 to select software information including the received software name from the software information set (step S301). Next, the software information setting unit 303 transmits (gives) the selected software information to the software determination apparatus 201.

判定情報設定部302は、判定情報記憶部304を参照することにより、判定情報セットの中から、ソフトウェア情報設定部303が受信した名称を含む判定情報を選ぶ(ステップS302)。次に、判定情報設定部302は、選んだ判定情報を、ソフトウェア判定装置201に送信する。   The determination information setting unit 302 refers to the determination information storage unit 304, and selects determination information including the name received by the software information setting unit 303 from the determination information set (step S302). Next, the determination information setting unit 302 transmits the selected determination information to the software determination apparatus 201.

次に、ソフトウェア判定装置201は、判定情報と、ソフトウェア情報とを受信するのに応じて、図7に示されたステップS201からステップS204に至る処理を実行する(ステップS303)。ソフトウェア判定装置201は、判定結果を表示してもよい(ステップS304)。   Next, in response to receiving the determination information and the software information, the software determination apparatus 201 executes processing from step S201 to step S204 illustrated in FIG. 7 (step S303). The software determination device 201 may display the determination result (step S304).

次に、第3の実施形態に係るマルウェア解析装置301に関する効果について説明する。   Next, effects related to the malware analysis apparatus 301 according to the third embodiment will be described.

本実施形態に係るマルウェア解析装置301によれば、たとえば、設定情報に応じて異なる動作を実行するマルウェア等のソフトウェアに関して、ソフトウェアが動作する設定情報を特定することができる。この結果、本実施形態に係るマルウェア解析装置301によれば、たとえば、マルウェア等のソフトウェアに対する対策を講じる情報を提供することができる。   According to the malware analysis apparatus 301 according to the present embodiment, for example, regarding software such as malware that executes different operations according to setting information, setting information on which the software operates can be specified. As a result, according to the malware analysis apparatus 301 according to the present embodiment, for example, information for taking measures against software such as malware can be provided.

<第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 diagnostic apparatus 401 according to the fourth embodiment and the processing performed by the malware diagnostic apparatus 401 will be described with reference to FIGS. 15 and 16. FIG. 15 is a block diagram showing the configuration of the malware diagnosis apparatus 401 according to the fourth embodiment of the present invention. FIG. 16 is a flowchart showing the flow of processing in the malware diagnosis apparatus 401 according to the fourth embodiment.

第4の実施形態に係るマルウェア診断装置401は、ソフトウェア判定装置101と、転送部402と、判定部403とを有する。   A malware diagnosis apparatus 401 according to the fourth embodiment includes a software determination apparatus 101, a transfer unit 402, and a determination unit 403.

まず、マルウェア診断装置401は、設定情報(図3に例示)と、ソフトウェア情報(図4に例示)と、判定情報(図5に例示)とを受信する。この場合、マルウェア診断装置401は、複数種類の設定情報、または、複数種類の判定情報のうち、少なくとも一方を受信する。   First, the malware diagnosis apparatus 401 receives setting information (illustrated in FIG. 3), software information (illustrated in FIG. 4), and determination information (illustrated in FIG. 5). In this case, the malware diagnosis apparatus 401 receives at least one of a plurality of types of setting information or a plurality of types of determination information.

次に、転送部402は、受信した設定情報と、受信したソフトウェア情報と、受信した判定情報とをソフトウェア判定装置101に送信する。転送部402は、複数種類の設定情報に含まれている各設定情報、複数種類の判定情報に含まれている各判定情報に関して、それぞれ、上述した処理を実行する。   Next, the transfer unit 402 transmits the received setting information, the received software information, and the received determination information to the software determination apparatus 101. The transfer unit 402 executes the above-described processing for each piece of setting information included in a plurality of types of setting information and each piece of determination information included in a plurality of types of determination information.

ソフトウェア判定装置101は、上述した情報を受信するのに応じて、第1の実施形態に示した処理に従い処理を実行する(ステップS401)。   In response to receiving the information described above, the software determination apparatus 101 executes processing according to the processing described in the first embodiment (step S401).

次に、判定部403は、ソフトウェア判定装置101が該処理を実行することによって算出した判定結果を受信する。すなわち、判定部403は、転送部402が転送した各設定情報、または、転送部402が転送した各判定情報に関して、それぞれ、該判定結果を受信する。判定部403は、受信した複数種類の判定結果において、対象ソフトウェアが実行される場合と、対象ソフトウェアが実行されない場合とがあるか否かを判定する(ステップS402)。   Next, the determination unit 403 receives a determination result calculated by the software determination apparatus 101 executing the process. That is, the determination unit 403 receives the determination result for each setting information transferred by the transfer unit 402 or for each determination information transferred by the transfer unit 402. The determination unit 403 determines whether the target software is executed or the target software is not executed in the received plural types of determination results (step S402).

判定部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 determination unit 403 determines the target related to the received software information. It is determined that the software is malware (step S403). The determination unit 403 determines that the target software related to the received software information is not malware (NO in step S402) when one of the determination results of the received plural types of determination results (NO in step S402).

次に、第4の実施形態に係るマルウェア診断装置401に関する効果について説明する。   Next, effects related to the malware diagnosis apparatus 401 according to the fourth embodiment will be described.

本実施形態に係るマルウェア診断装置401によれば、たとえば、計算機環境に応じて動作が変化するマルウェアを見つけることができる。   According to the malware diagnosis apparatus 401 according to the present embodiment, for example, malware whose operation changes according to the computer environment can be found.

この理由は、マルウェア診断装置401が複数種類の設定情報に関して判定結果が異なる場合に、対象ソフトウェアがマルウェアであると判定するからである。   This is because the malware diagnosis apparatus 401 determines that the target software is malware when the determination results differ for a plurality of types of setting information.

より具体的に、複数種類の設定情報のみが設定される場合に、ソフトウェア判定装置101は、マルウェア等を解析可能な解析ソフトウェア(たとえば、デバッガ)を仮想計算機106に設定するのではなく、仮想計算機が及ぼす影響を解析することにより、対象ソフトウェアを解析する。たとえば、仮想計算機が実行する通信を外部から監視したり、仮想計算機が利用するメインメモリのダンプを解析したりすることにより、ソフトウェア判定装置101は、仮想計算機が及ぼす影響を調べることができる。   More specifically, when only a plurality of types of setting information are set, the software determination apparatus 101 does not set analysis software (for example, a debugger) that can analyze malware or the like in the virtual machine 106, but the virtual machine 106 Analyze the target software by analyzing the effects of. For example, the software determination apparatus 101 can examine the influence of the virtual machine by monitoring the communication executed by the virtual machine from the outside or analyzing the dump of the main memory used by the virtual machine.

また、複数の判定情報は、次に示す判定情報1及び判定情報2を含んでいてもよい。すなわち、
(判定情報1)実行処理が、ソフトウェア情報に含まれる対象ソフトウェアと異なるソフトウェア(たとえば、解析ソフトウェア)を起動する場合を表す、
(判定情報2)実行処理が、該異なるソフトウェア(たとえば、該解析ソフトウェア)を実行しない場合を表す。
The plurality of pieces of determination information may include determination information 1 and determination information 2 shown below. That is,
(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 malware diagnosis apparatus 401 according to the present embodiment, even malware that detects analysis software for analyzing software can be detected.

ソフトウェアを解析することが可能な解析ソフトウェア(たとえば、デバッガ)が起動されていることを検知するのに応じて、活動を停止するマルウェアも数多く知られている。この場合、該マルウェアは、解析ソフトウェアが起動されている仮想計算機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 virtual machine 106 in which the analysis software is activated. On the other hand, the malware operates in a virtual machine on which analysis software is not activated. Therefore, since the malware diagnosis apparatus 401 determines whether or not the determination results are different for a plurality of pieces of determination information, it can determine whether or not the input target software is malware.

また、上述した解析ソフトウェアは、仮想計算機106の内部において、通信情報(内容)を解析する機能であってもよい。この場合、マルウェア診断装置401は、通信情報を解析する解析ソフトウェアを検知するマルウェアであっても、検知することができる。   Further, the analysis software described above may have a function of analyzing communication information (contents) inside the virtual computer 106. In this case, the malware diagnosis apparatus 401 can detect even malware that detects analysis software that analyzes communication information.

(ハードウェア構成例)
上述した本発明の各実施形態におけるソフトウェア判定装置、ソフトウェア解析装置、及び、マルウェア診断装置を、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 computer 20 includes a central processing unit (Central_Processing_Unit, hereinafter referred to as “CPU”) 21, a memory 22, a disk 23, and a nonvolatile recording medium 24. The calculation processing device 20 further includes a communication interface (hereinafter referred to as “communication IF”) 27 and a display 28. The calculation processing device 20 may be connected to the input device 25 and the output device 26. The calculation processing device 20 can transmit / receive information to / from other calculation processing devices and communication devices via the communication IF 27.

不揮発性記録媒体24は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体24は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体24は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体24は、上述した媒体に限定されない。また、不揮発性記録媒体24の代わりに、通信IF27を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。   The nonvolatile recording medium 24 is, for example, a compact disk (Compact_Disc) or a digital versatile disk (Digital_Versatile_Disc) that can be read by a computer. The nonvolatile recording medium 24 may be a universal serial bus memory (USB memory), a solid state drive (Solid_State_Drive), or the like. The non-volatile recording medium 24 retains such a program without being supplied with power, and can be carried. The nonvolatile recording medium 24 is not limited to the above-described medium. Further, the program may be carried via the communication network via the communication IF 27 instead of the nonvolatile recording medium 24.

すなわち、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 CPU 21 copies a software program (computer program: hereinafter simply referred to as “program”) stored in the disk 23 to the memory 22 when executing it, and executes arithmetic processing. The CPU 21 reads data necessary for program execution from the memory 22. When the display is necessary, the CPU 21 displays the output result on the display 28. When output to the outside is necessary, the CPU 21 outputs an output result to the output device 26. When inputting a program from the outside, the CPU 21 reads the program from the input device 25. The CPU 21 is a software determination program (FIG. 2 or FIG. 7) in the memory 22 corresponding to the function (process) represented by each unit shown in FIG. 1, FIG. 6, FIG. 10, or FIG. The analysis program (FIG. 11) or the malware diagnosis program (FIG. 16) is interpreted and executed. The CPU 21 sequentially performs the processes described in the above-described embodiments of the present invention.

すなわち、このような場合、本発明は、係るソフトウェア判定プログラム、マルウェア解析プログラム、または、マルウェア診断プログラムによっても成し得ると捉えることができる。更に、係るソフトウェア判定プログラム、マルウェア解析プログラム、または、マルウェア診断プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。   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 SYMBOLS 101 Software determination apparatus 102 Configuration setting part 103 Software setting part 104 Starting part 105 Determination part 106 Virtual machine 107 Storage part 108 Memory 201 Software determination apparatus 202 Information transmission part 203 Display part 204 Setting information storage part 301 Malware analysis apparatus 302 Determination information setting Unit 303 Software Information Setting Unit 304 Determination Information Storage Unit 305 Software Information Storage Unit 401 Malware Diagnosis Device 402 Transfer Unit 403 Determination Unit 20 Computing Processing Device 21 CPU
22 Memory 23 Disk 24 Non-volatile recording medium 25 Input device 26 Output device 27 Communication IF
28 display

Claims (11)

仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも1つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定手段と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定手段と
を備えるソフトウェア判定装置。
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.
請求項3に記載のソフトウェア判定装置と、
ソフトウェア情報設定手段と
を備え、
前記ソフトウェア情報においては、前記対象ソフトウェアを識別可能な識別子と、前記ファイルと、前記手順とが関連付けされており、
前記判定情報においては、前記識別子と、前記実行処理と、前記タイミングと、前記判定条件とが関連付けされており、
前記ソフトウェア情報設定手段は、特定の前記識別子が与えられるに応じて、複数種類の前記ソフトウェア情報が含まれているソフトウェア情報セットから、前記特定の識別子に関連付けされた前記ファイルと、前記特定の識別子に関連付けされた前記手順とを求め、さらに、複数種類の前記判定情報が含まれている判定情報セットから、前記特定の識別子に関連付けされた前記実行処理と、前記特定の識別子に関連付けされた前記タイミングと、前記特定の識別子に関連付けされた前記判定条件とを求め、求めた前記ファイルと、求めた前記手順と、求めた前記実行処理と、求めた前記タイミングと、求めた前記判定条件とを、前記ソフトウェア判定装置に与える
ソフトウェア解析装置。
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.
請求項3に記載のソフトウェア判定装置と、
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つの該実行処理に関して異なる場合に、前記対象ソフトウェアをマルウェアであると判定し、該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.
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも1つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定し、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定し、
設定された前記仮想計算機を起動し、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定するソフトウェア判定方法。
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.
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも1つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定機能と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定機能と
をコンピュータに実現させるソフトウェア判定プログラムが格納された記録媒体。
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.
JP2016570542A 2015-01-22 2016-01-15 Software judgment device, software judgment method, software judgment program, software analysis device, and malware diagnosis device Pending JPWO2016117317A1 (en)

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)

* Cited by examiner, † Cited by third party
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

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