JP2009031859A - Information collection system and information collection method - Google Patents
Information collection system and information collection method Download PDFInfo
- Publication number
- JP2009031859A JP2009031859A JP2007192352A JP2007192352A JP2009031859A JP 2009031859 A JP2009031859 A JP 2009031859A JP 2007192352 A JP2007192352 A JP 2007192352A JP 2007192352 A JP2007192352 A JP 2007192352A JP 2009031859 A JP2009031859 A JP 2009031859A
- Authority
- JP
- Japan
- Prior art keywords
- guest
- information
- code
- application
- information collection
- 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.)
- Granted
Links
Images
Abstract
Description
この発明は、情報収集システムおよび情報収集方法に関する。 The present invention relates to an information collection system and an information collection method.
従来より、アンチウィルスソフト、ホスト型侵入検知システム(非特許文献1を参照)、パーソナルファイアウォール等のセキュリティソフトウェアは、保護対象がOSであれば、当該OS上で動作し、保護対象がアプリケーションであれば、当該アプリケーションがインストールされているOS上(以下、保護対象システム内)で動作するものである。これらのセキュリティソフトウェアは、保護対象としているOSまたはそのOS上で動作するアプリケーションの振る舞いを監視し、OSやアプリケーションがアクセスする資源やその資源に対する操作を監視することで、不正なプログラムの不正な振る舞いを防止している。 Conventionally, security software such as anti-virus software, host-type intrusion detection system (see Non-Patent Document 1), personal firewall, etc. operates on the OS if the protection target is an OS, and if the protection target is an application. , And operates on the OS in which the application is installed (hereinafter referred to as the protection target system). These security software monitors the behavior of an OS to be protected or an application running on the OS, and monitors the resources accessed by the OS and applications and the operations on the resources, thereby illegal behavior of an unauthorized program. Is preventing.
しかし、マルウェア(例えば、ボット、ウィルス、Shellcode等、ソフトウェアの利用者が意図しない動作を行うプログラムやモジュール)の中には、ターゲットとするターゲットシステム内で起動されると、セキュリティソフトウェアの有無をチェックし、セキュリティソフトウェアがターゲットシステム内で動作していた場合、そのセキュリティソフトウェアを強制的に停止させてしまう機能を持つマルウェアが存在する(非特許文献2を参照)。 However, some malware (eg, bots, viruses, Shellcode, etc., programs or modules that perform operations unintended by the software user) are checked for security software when activated in the target system. However, when security software is operating in the target system, there is malware having a function of forcibly stopping the security software (see Non-Patent Document 2).
すなわち、セキュリティソフトウェアを保護対象システム内で動作させていると、マルウェアが、保護対象システム内(マルウェアにとってのターゲットシステム内)のセキュリティソフトウェアの有無をチェックし、強制的に停止させてしまう。言い換えると、保護対象システム内にマルウェアの侵入を許してしまった場合、マルウェアは保護対象システム内でセキュリティソフトウェアと同じ権限を取得することが可能となるため、セキュリティソフトウェアに対して攻撃を行うことが可能となってしまう。 That is, when the security software is operated in the protection target system, the malware checks whether there is security software in the protection target system (in the target system for the malware) and forcibly stops it. In other words, if malware is allowed to enter the protected system, the malware can acquire the same authority as the security software in the protected system, so it can attack the security software. It becomes possible.
このため、非特許文献3に示すように、保護対象システムを仮想マシン上でゲストソフトウェアとして動作させ、セキュリティソフトウェアはゲストソフトウェアの外側からゲストソフトウェアの内側を監視することで対応する、という研究が行われている。ここで、仮想マシンとは、コンピュータのハードウェア上で動作するOS(以下、ホストOS)にインストールされて仮想的に作り出されたコンピュータのことである。また、ゲストソフトウェアとは、仮想マシンを構成する仮想的なハードウェア上で動作するOS(以下、ゲストOS)や、ゲストOSにインストールされているアプリケーションのことである。かかる研究においては、ゲストソフトウェアの外からゲストソフトウェアに関する情報を収集し、収集した情報からゲストソフトウェアの内側で起きている事象を捉えたり、収集した情報を検査することで、ゲストソフトウェアの異常性を判断する手法が開示されている。 For this reason, as shown in Non-Patent Document 3, research has been conducted in which the protection target system is operated as guest software on a virtual machine, and security software is supported by monitoring the inside of the guest software from the outside of the guest software. It has been broken. Here, the virtual machine is a computer that is virtually created by being installed in an OS (hereinafter referred to as a host OS) operating on the hardware of the computer. The guest software is an OS (hereinafter referred to as a guest OS) that operates on virtual hardware that constitutes a virtual machine or an application installed in the guest OS. In such research, information on guest software is collected from outside the guest software, the events occurring inside the guest software are captured from the collected information, and the collected information is inspected to check the abnormality of the guest software. A method for judging is disclosed.
ところで、上記した従来の技術は、以下に説明するように、ゲストソフトウェアに関する情報を簡易に収集することができないという課題がある。ゲストソフトウェアから必要な情報を収集するにあたっては、通常、ゲストソフトウェア内で起こっている事象を正確に把握する必要があり、また、ゲストソフトウェアが利用しているメモリやディスクのどこに必要としている情報が配置されているかを正確に把握していなければならない。すなわち、従来技術の手法によれば、ゲストソフトウェアとして動作するOSやアプリケーションのデータ構造体やファイルシステムを完全に把握する必要があることから、ゲストソフトウェアとして動作するOSの種類や、ゲストソフトウェアのバージョンが変わるたびに、ゲストソフトウェアに関する情報を収集する手法を大きく変化させなければならないことになる。例えば、Windows(登録商標)などのOSに関するデータ構造体などは一般には公開されていない情報であるので、これらのゲストソフトウェアから必要とする情報を収集するのは非常に困難な作業となる。 By the way, as described below, the above-described conventional technique has a problem in that information relating to guest software cannot be easily collected. In collecting the necessary information from the guest software, it is usually necessary to accurately grasp the events that are occurring in the guest software, and the information that is needed anywhere in the memory or disk used by the guest software You must know exactly where it is located. That is, according to the technique of the prior art, it is necessary to completely grasp the data structure and file system of the OS and applications that operate as guest software. Therefore, the type of OS that operates as guest software and the version of the guest software Every time changes, the method of collecting information about guest software will have to change significantly. For example, since a data structure related to an OS such as Windows (registered trademark) is information that is not disclosed to the public, it is extremely difficult to collect necessary information from these guest software.
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、ゲストソフトウェアに関する情報を簡易に収集することが可能な情報収集システムおよび情報収集方法を提供することを第一の目的とする。 Therefore, the present invention has been made to solve the above-described problems of the prior art, and the first is to provide an information collection system and an information collection method capable of easily collecting information about guest software. The purpose.
また、この発明は、ゲストソフトウェア内部で起きている事象を正確に把握することが可能な情報収集システムおよび情報収集方法を提供することを第二の目的とする。 A second object of the present invention is to provide an information collecting system and an information collecting method capable of accurately grasping an event occurring inside the guest software.
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集手段を備え、前記情報収集手段は、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握し、把握した当該コードを前記情報を収集する命令が記述された情報収集コードに入れ替え、当該情報収集コードが当該ゲストOSまたは当該アプリケーションにおいて実行されるように、当該情報の収集対象となる当該ゲストOSまたは当該アプリケーションによってコードが実行されるメモリ空間に当該情報収集コードを挿入するコード挿入手段と、前記ゲストOSまたは前記アプリケーションによって実行された前記情報収集コードの実行結果を収集することで、前記情報を収集する実行結果収集手段と、を備えたことを特徴とする。 In order to solve the above-described problems and achieve the object, the invention according to claim 1 is applied to a virtual machine that is a computer created virtually by being installed in a host OS that is an OS that operates on the hardware of the computer. In a configuration in which a guest OS that is an OS that operates on virtual hardware provided by the virtual machine is installed, information for collecting information on the guest OS and / or an application installed on the guest OS If it is a collection system and the information collection target is a guest OS, it operates on an OS different from the guest OS, and if the information collection target is an application, the guest OS on which the application is installed With information collection means that runs on an OS different from The information collecting means acquires information read by a virtual CPU provided by the virtual machine, grasps the code that the guest OS or the application is going to execute, and collects the grasped code to collect the information A memory in which the code is executed by the guest OS or the application from which the information is collected so that the information collection code is executed in the guest OS or the application. Code insertion means for inserting the information collection code into the space; and execution result collection means for collecting the information by collecting execution results of the information collection code executed by the guest OS or the application. It is characterized by that.
また、請求項2に係る発明は、上記の発明において、前記コード挿入手段は、前記情報収集コードとして、前記ゲストOS内または前記アプリケーション内のライブラリおよび/またはプログラムを利用して前記情報を収集する命令が記述された情報収集コードを、前記メモリ空間に挿入することを特徴とする。 In the invention according to claim 2, in the above invention, the code insertion unit collects the information as the information collection code using a library and / or a program in the guest OS or the application. An information collection code in which an instruction is described is inserted into the memory space.
また、請求項3に係る発明は、上記の発明において、前記コード挿入手段は、前記実行結果収集手段によって収集された前記情報から前記ゲストOSまたは前記アプリケーションに異常性が確認された際には、前記情報収集コードとして、当該異常性を解決する命令が記述された情報収集コードを、前記メモリ空間にさらに挿入することを特徴とする。 Further, in the invention according to claim 3, in the above invention, when the code insertion unit confirms abnormality in the guest OS or the application from the information collected by the execution result collection unit, As the information collection code, an information collection code in which an instruction for solving the abnormality is described is further inserted into the memory space.
また、請求項4に係る発明は、上記の発明において、前記情報収集手段は、所定のバイト列を予め記憶しているバイト列記憶手段と、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握することで、当該ゲストOSまたは当該アプリケーションが実行するコードブロックを監視するコードブロック監視手段と、前記コードブロック監視手段によって監視されたコードブロックが、前記バイト列記憶手段によって記憶されている所定のバイト列と一致するか否かを検査する検査手段と、をさらに備えたことを特徴とする。 According to a fourth aspect of the present invention, in the above invention, the information collecting unit is read by a byte sequence storage unit that stores a predetermined byte sequence in advance and a virtual CPU provided by the virtual machine. Code block monitoring means for monitoring the code blocks executed by the guest OS or the application, and the code block monitoring means. It further comprises inspection means for inspecting whether or not the monitored code block matches a predetermined byte string stored by the byte string storage means.
また、請求項5に係る発明は、上記の発明において、前記情報収集手段は、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視する特殊命令監視手段をさらに備えたことを特徴とする。 The invention according to claim 5 is the above invention, wherein the information collecting unit uses the information read by the virtual CPU provided by the virtual machine, so that the guest OS or the application is a system. The system further comprises special instruction monitoring means for monitoring a special instruction executed when a call is issued and monitoring issuance of the system call.
また、請求項6に係る発明は、上記の発明において、前記コード挿入手段は、前記情報収集コードとして、前記特殊命令監視手段によって監視されたシステムコールについて、当該システムコールを発行したプロセス、システムコール番号、当該システムコールに渡される引数のいずれか一つまたは複数を収集する命令が記述された情報収集コードを、前記メモリ空間に挿入することを特徴とする。 According to a sixth aspect of the present invention, in the above-described invention, the code insertion unit, as the information collection code, for a system call monitored by the special instruction monitoring unit, a process that issued the system call, a system call An information collection code in which an instruction to collect one or more of a number and an argument passed to the system call is inserted into the memory space.
また、請求項7に係る発明は、上記の発明において、前記情報収集手段は、前記特殊命令監視手段によって監視されたシステムコールを発行した際の情報を取得するシステムコール情報取得手段をさらに備え、前記実行結果収集手段は、前記システムコール情報取得手段によって取得された情報をさらに用いて前記情報を収集することを特徴とする。 The invention according to claim 7 is the above invention, wherein the information collecting means further comprises system call information obtaining means for obtaining information when a system call monitored by the special instruction monitoring means is issued, The execution result collecting unit collects the information by further using the information acquired by the system call information acquiring unit.
また、請求項8に係る発明は、上記の発明において、前記情報収集手段は、前記ゲストOSまたは前記アプリケーションの所定の挙動を契機として当該ゲストOSまたは当該アプリケーションの実行状態のスナップショットを取得するスナップショット取得手段と、前記スナップショット取得手段によって取得されたスナップショットを用いて、前記ゲストOSまたは前記アプリケーションの実行を再開させる実行再開手段と、をさらに備えたことを特徴とする。 In the invention according to claim 8, in the above invention, the information collection unit is a snap for acquiring a snapshot of the execution state of the guest OS or the application in response to a predetermined behavior of the guest OS or the application. The image processing apparatus further includes: a shot acquisition unit; and an execution restart unit that restarts the execution of the guest OS or the application using the snapshot acquired by the snapshot acquisition unit.
また、請求項9に係る発明は、上記の発明において、前記情報収集手段は、前記実行結果収集手段によって収集された前記情報を、前記ゲストOSまたは前記アプリケーション、および/または、当該ゲストOSまたは当該アプリケーション以外のソフトウェアに伝達する情報伝達手段をさらに備えたことを特徴とする。 The invention according to claim 9 is the above invention, wherein the information collection unit uses the guest OS or the application and / or the guest OS or the information collected by the execution result collection unit. An information transmission means for transmitting to software other than the application is further provided.
また、請求項10に係る発明は、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集手段を備え、前記情報収集手段は、所定のバイト列を予め記憶しているバイト列記憶手段と、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握することで、当該ゲストOSまたは当該アプリケーションが実行するコードブロックを監視するコードブロック監視手段と、前記コードブロック監視手段によって監視されたコードブロックが、前記バイト列記憶手段によって記憶されている所定のバイト列と一致するか否かを検査する検査手段と、を備えたことを特徴とする。
The invention according to
また、請求項11に係る発明は、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集手段を備え、前記情報収集手段は、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視する特殊命令監視手段を備えたことを特徴とする。 According to an eleventh aspect of the present invention, a virtual hardware provided by the virtual machine is installed on a virtual machine that is a computer created virtually by being installed in a host OS that is an OS operating on the hardware of the computer. An information collection system that collects information about a guest OS and / or an application installed on the guest OS in a configuration in which a guest OS that is an OS operating on the hardware is installed, If the OS is a guest OS, the information collection means operates on an OS different from the guest OS, and if the information collection target is an application, the information collection means operates on an OS different from the guest OS in which the application is installed The information collection means includes the virtual machine Special instruction monitoring that monitors the issuance of the system call by monitoring the special instruction that is executed when the guest OS or the application issues a system call by using the information read by the virtual CPU to be provided Means are provided.
また、請求項12に係る発明は、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集方法であって、前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集工程を含み、前記情報収集工程は、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して当該ゲストOSまたは当該アプリケーションが実行しようとしているコードを把握し、把握した当該コードを前記情報を収集する命令が記述された情報収集コードに入れ替え、当該情報収集コードが当該ゲストOSまたは当該アプリケーションにおいて実行されるように、当該情報の収集対象となる当該ゲストOSまたは当該アプリケーションによってコードが実行されるメモリ空間に当該情報収集コードを挿入するコード挿入工程と、前記ゲストOSまたは前記アプリケーションによって実行された前記情報収集コードの実行結果を収集することで、前記情報を収集する実行結果収集工程と、を含んだことを特徴とする。 According to the twelfth aspect of the present invention, a virtual hardware provided by a virtual machine is provided to a virtual machine that is a computer created virtually by being installed in a host OS that is an OS operating on the hardware of the computer. An information collection method for collecting information related to a guest OS and / or an application installed in the guest OS in a configuration in which a guest OS that is an OS operating on hardware is installed. If it is a guest OS, it will run on an OS different from the guest OS, and if the information collection target is an application, it will run on an OS different from the guest OS in which the application is installed And the information collecting step is provided by the virtual machine. The information read by the virtual CPU is acquired, the code that the guest OS or the application is about to execute is grasped, and the grasped code is replaced with an information collection code in which an instruction for collecting the information is described. Code insertion that inserts the information collection code into a memory space in which the code is executed by the guest OS or application to be collected, so that the information collection code is executed by the guest OS or application And an execution result collecting step of collecting the information by collecting an execution result of the information collection code executed by the guest OS or the application.
また、請求項13に係る発明は、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集方法であって、前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集工程を含み、前記情報収集工程は、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握することで、当該ゲストOSまたは当該アプリケーションが実行するコードブロックを監視するコードブロック監視工程と、前記コードブロック監視工程によって監視されたコードブロックが、所定のバイト列を予め記憶しているバイト列記憶部によって記憶されている所定のバイト列と一致するか否かを検査する検査工程と、を含んだことを特徴とする。
The invention according to
また、請求項14に係る発明は、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集方法であって、前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集工程を含み、前記情報収集工程は、前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視する特殊命令監視工程を含んだことを特徴とする。 According to the fourteenth aspect of the present invention, a virtual hardware provided by the virtual machine is installed in a virtual machine that is a computer created virtually by being installed in a host OS that is an OS operating on the hardware of the computer. An information collection method for collecting information related to a guest OS and / or an application installed in the guest OS in a configuration in which a guest OS that is an OS operating on hardware is installed. If it is a guest OS, it will run on an OS different from the guest OS, and if the information collection target is an application, it will run on an OS different from the guest OS in which the application is installed And the information collecting step is provided by the virtual machine. A special instruction monitoring step of monitoring a special instruction executed when the guest OS or the application issues a system call by using information read into the virtual CPU to monitor the issue of the system call It is characterized by including.
請求項1または12の発明によれば、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作し、仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得してゲストOSまたはアプリケーションが実行しようとしているコードを把握し、把握した当該コードを情報を収集する命令が記述された情報収集コードに入れ替え、情報収集コードが当該ゲストOSまたは当該アプリケーションにおいて実行されるように、情報の収集対象となる当該ゲストOSまたは当該アプリケーションによってコードが実行されるメモリ空間に情報収集コードを挿入し、ゲストOSまたはアプリケーションによって実行された情報収集コードの実行結果を収集することで、情報を収集するので、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 According to the first or twelfth aspect of the present invention, a virtual machine provided by a virtual machine is a virtual machine that is a computer created virtually by being installed in a host OS that is an OS operating on the hardware of the computer. An information collection system for collecting information on a guest OS and / or an application installed on the guest OS in a configuration in which a guest OS that is an operating system operating on hardware is installed, If the OS is a guest OS, it operates on an OS different from the guest OS, and if the information collection target is an application, the virtual machine operates on an OS different from the guest OS on which the application is installed. Acquire information read by the virtual CPU provided The code that the guest OS or application intends to execute is grasped, and the grasped code is replaced with an information collecting code in which an instruction for collecting information is described, so that the information collecting code is executed in the guest OS or the application. By inserting the information collection code into the memory space where the code is executed by the guest OS or application to be collected, and collecting the execution result of the information collection code executed by the guest OS or application, Since information is collected, it is possible to easily collect information about guest software.
また、請求項2の発明によれば、情報収集コードとして、ゲストOS内またはアプリケーション内のライブラリおよび/またはプログラムを利用して情報を収集する命令が記述された情報収集コードを、メモリ空間に挿入するので、ゲストソフトウェアに関する情報を簡易かつ効率的に収集することが可能になる。 According to the second aspect of the present invention, as the information collection code, an information collection code in which a command for collecting information using a library and / or program in the guest OS or application is described is inserted into the memory space. Therefore, it becomes possible to collect information about guest software easily and efficiently.
また、請求項3の発明によれば、収集された情報からゲストOSまたはアプリケーションに異常性が確認された際には、情報収集コードとして、異常性を解決する命令が記述された情報収集コードを、メモリ空間にさらに挿入するので(例えば、コードを入れ替えて挿入してもよい)、ゲストソフトウェアに関する情報を簡易に収集することが可能になる他に、ゲストソフトウェアに異常性が確認された際には、異常性を解決することも可能になる。 According to the invention of claim 3, when an abnormality is confirmed in the guest OS or application from the collected information, an information collection code in which a command for solving the abnormality is described is used as the information collection code. Since it is further inserted into the memory space (for example, the code may be replaced and inserted), it becomes possible to easily collect information about the guest software, and when an abnormality is confirmed in the guest software Can also solve the anomaly.
また、請求項4の発明によれば、所定のバイト列を予め記憶し、仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得してゲストOSまたはアプリケーションが実行しようとしているコードを把握することで、ゲストOSまたはアプリケーションが実行するコードブロックを監視し、監視したコードブロックが、記憶している所定のバイト列と一致するか否かを検査するので、ゲストソフトウェア内部での事象を正確に把握した上で(例えば、ゲストソフトウェア上で動作しているプロセスの情報を取得した上で)、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。
According to the invention of
また、請求項5の発明によれば、仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視するので、ゲストソフトウェア内部での事象を正確に把握した上で、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 According to the invention of claim 5, a special instruction that is executed when the guest OS or the application issues a system call by using information read into a virtual CPU provided by the virtual machine. Since the system call issuance is monitored, it is possible to easily collect information about the guest software after accurately grasping the events inside the guest software.
また、請求項6の発明によれば、情報収集コードとして、監視したシステムコールについて、当該システムコールを発行したプロセス、システムコール番号、当該システムコールに渡される引数のいずれか一つまたは複数を収集する命令が記述された情報収集コードを、メモリ空間に挿入するので、ゲストソフトウェア内部での事象を正確に把握した上で、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 According to the invention of claim 6, as the information collection code, for the monitored system call, any one or more of the process that issued the system call, the system call number, and the argument passed to the system call are collected. Since the information collection code describing the instruction to be inserted is inserted into the memory space, it is possible to easily collect information about the guest software after accurately grasping the events inside the guest software.
また、請求項7の発明によれば、監視したシステムコールを発行した際の情報を取得し、取得した情報をさらに用いて情報を収集するので、ゲストソフトウェア内部での事象を正確に把握した上で、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 Further, according to the invention of claim 7, since the information at the time of issuing the monitored system call is acquired, and the information is collected by further using the acquired information, the phenomenon inside the guest software is accurately grasped. This makes it possible to easily collect information about guest software.
また、請求項8の発明によれば、ゲストOSまたはアプリケーションの所定の挙動を契機として当該ゲストOSまたは当該アプリケーションの実行状態のスナップショットを取得し、取得したスナップショットを用いて、ゲストOSまたはアプリケーションの実行を再開させるので、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 According to the invention of claim 8, a snapshot of the execution state of the guest OS or application is acquired in response to a predetermined behavior of the guest OS or application, and the guest OS or application is acquired using the acquired snapshot. Since the execution of the program is resumed, it becomes possible to easily collect information about the guest software.
また、請求項9の発明によれば、収集した情報を、ゲストOSまたはアプリケーション、および/または、当該ゲストOSまたは当該アプリケーション以外のソフトウェアに伝達するので、ゲストソフトウェアに関する情報を簡易に収集することが可能になる他に、収集した情報を他のソフトウェアに伝達することが可能になる(アラートを挙げるなど)。 According to the invention of claim 9, since the collected information is transmitted to the guest OS or application and / or software other than the guest OS or the application, it is possible to easily collect information about the guest software. Besides being possible, the collected information can be communicated to other software (such as raising alerts).
また、請求項10または13の発明によれば、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作し、所定のバイト列を予め記憶し、仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得してゲストOSまたはアプリケーションが実行しようとしているコードを把握することで、当該ゲストOSまたは当該アプリケーションが実行するコードブロックを監視し、監視したコードブロックが、記憶している所定のバイト列と一致するか否かを検査するので、ゲストソフトウェア内部での事象を正確に把握(例えば、ゲストソフトウェア上で動作しているプロセスの情報を取得)することが可能になる。
According to the invention of
また、請求項11または14の発明によれば、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作し、仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視するので、ゲストソフトウェア内部での事象を正確に把握することが可能になる。
According to the invention of
以下に添付図面を参照して、この発明に係る情報収集システムおよび情報収集方法の実施例を詳細に説明する。 Exemplary embodiments of an information collection system and an information collection method according to the present invention will be described below in detail with reference to the accompanying drawings.
以下の実施例1では、実施例1で用いる主要な用語、実施例1に係る情報収集システムの概要および特徴、情報収集システムの構成および処理の手順を順に説明し、最後に実施例1による効果を説明する。 In the following first embodiment, the main terms used in the first embodiment, the outline and features of the information collection system according to the first embodiment, the configuration of the information collection system and the processing procedure will be described in order, and finally the effects of the first embodiment will be described. Will be explained.
[用語の説明]
最初に、以下の実施例で用いる主要な用語を説明する。「仮想マシン」とは、コンピュータの実体あるハードウェア上に仮想的に作り出されたコンピュータのことである。このような「仮想マシン」は、仮想化技術によって実現される。仮想化技術とは、コンピュータの実体あるハードウェア上で動作するOS(Operating System)に対して、仮想的なハードウェア・インタフェースを提供することで、1台のコンピュータ上で複数のOSが同時に動作することを可能にする技術である。具体的には、VMM(Virtual Machine Monitor)と呼ばれるソフトウェアが、OSに対して仮想的なハードウェア・インタフェースを提供し、VMM上で動くOSに対して仮想的なハードウェアを提供する。
[Explanation of terms]
First, key terms used in the following examples will be described. A “virtual machine” is a computer that is virtually created on the actual hardware of the computer. Such a “virtual machine” is realized by a virtualization technology. Virtualization technology provides a virtual hardware interface for an OS (Operating System) that runs on the actual hardware of a computer, so that multiple OSs can run simultaneously on a single computer. It is a technology that makes it possible to do. Specifically, software called VMM (Virtual Machine Monitor) provides a virtual hardware interface to the OS, and provides virtual hardware to the OS running on the VMM.
ここで、以下の実施例では、実体あるハードウェア上で動作するOSのことを「ホストOS」と呼び、VMM上で動くOSのことを「ゲストOS」と呼ぶ。すなわち、「ホストOS」にインストールされた一つのアプリケーションであるVMMが「仮想マシン」であり、「ゲストOS」は「仮想マシン」にインストールされているOSであるという関係にある。なお、「仮想マシン」上においては、複数の「ゲストOS」が動作することが可能である。 Here, in the following embodiments, an OS that operates on actual hardware is referred to as a “host OS”, and an OS that runs on the VMM is referred to as a “guest OS”. That is, the VMM that is one application installed in the “host OS” is a “virtual machine”, and the “guest OS” is an OS installed in the “virtual machine”. A plurality of “guest OSs” can operate on the “virtual machine”.
ところで、「仮想マシン」上で動作する「ゲストOS」や当該「ゲストOS」にインストールされているアプリケーションなどのゲストソフトウェアは、「仮想マシン」が提供する仮想資源を利用することで、各種コードを実行するなどする。この実行の仕組みについて簡単に説明すると、まず、「仮想マシン」が、ゲストソフトウェアによって実行されたコードを変換して「ホストOS」に渡し、「ホストOS」が、渡されたコードについて実行した実行結果を「仮想マシン」に渡し、「仮想マシン」が、渡された実行結果を変換してゲストソフトウェアに渡す、といった仕組みになっている。 By the way, guest software such as a “guest OS” operating on a “virtual machine” and an application installed in the “guest OS” can use various resources by using virtual resources provided by the “virtual machine”. To execute. The execution mechanism will be briefly described. First, the “virtual machine” converts the code executed by the guest software and passes it to the “host OS”, and the “host OS” executes the executed code for the passed code. The result is passed to the “virtual machine”, and the “virtual machine” converts the passed execution result and passes it to the guest software.
そうであるとすると、ゲストソフトウェアに関する情報を収集するにあたっては、ゲストソフトウェアが利用している「仮想マシン」のメモリやディスクについて、どこに必要としている情報が配置されているかを正確に把握した上で、「仮想マシン」のメモリやディスクから情報を収集するという手法が考えられる。しかしながら、このような手法では、ゲストソフトウェアとして動作するOSの種類や、ゲストソフトウェアのバージョンが変わるたびに、ゲストソフトウェアに関する情報を収集する手法を大きく変化させなければならない。本発明に係る情報収集システムは、このような課題を解決するものである。 If so, when collecting information about guest software, it is necessary to know exactly where the required information is located about the memory and disk of the “virtual machine” used by the guest software. A method of collecting information from the memory or disk of a “virtual machine” can be considered. However, in such a method, every time the type of OS that operates as guest software or the version of the guest software changes, the method for collecting information about the guest software must be changed greatly. The information collection system according to the present invention solves such a problem.
[実施例1に係る情報収集システムの概要および特徴]
次に、図1を用いて、実施例1に係る情報収集システムの概要および特徴を説明する。図1は、実施例1に係る情報収集システムの概要および特徴を説明するための図である。なお、図1においては、本発明における情報収集部が、情報収集モジュール(ゲストソフトウェア監視モジュール)として仮想マシン(VMM)内に実装される構成例について説明するが、本発明はこのような構成に限られるものではない。他の構成例については、実施例6で説明することとする。
[Outline and Features of Information Collection System According to Embodiment 1]
Next, the outline and characteristics of the information collection system according to the first embodiment will be described with reference to FIG. FIG. 1 is a diagram for explaining the outline and features of the information collection system according to the first embodiment. In FIG. 1, a configuration example in which the information collection unit according to the present invention is mounted in a virtual machine (VMM) as an information collection module (guest software monitoring module) will be described. It is not limited. Other configuration examples will be described in the sixth embodiment.
実施例1に係る情報収集システムは、仮想マシンにゲストOSがインストールされている構成において、ゲストソフトウェア(ゲストOS、当該ゲストOSにインストールされているアプリケーション)に関する情報を収集することを概要とし、ゲストソフトウェアに関する情報を簡易に収集することを主たる特徴とする。 The information collection system according to the first embodiment is configured to collect information on guest software (guest OS, application installed in the guest OS) in a configuration in which the guest OS is installed in the virtual machine. The main feature is to collect information about software easily.
この主たる特徴について簡単に説明すると、本発明に係る情報収集システムは、情報収集部を備えている。情報収集部は、情報の収集対象がゲストOSであれば、当該ゲストOSとは異なるOS上(実施例1においては、ホストOS)で動作し、かつ、情報の収集対象がアプリケーションであれば、当該アプリケーションがインストールされているゲストOSとは異なるOS上(実施例1においては、ホストOS)で動作する。例えば、図1に示すように、情報収集部は、情報収集モジュール(ゲストソフトウェア監視モジュール)として仮想マシン内に実装される。 Briefly describing this main feature, the information collection system according to the present invention includes an information collection unit. If the information collection target is a guest OS, the information collection unit operates on an OS different from the guest OS (the host OS in the first embodiment), and if the information collection target is an application, It operates on an OS (host OS in the first embodiment) that is different from the guest OS in which the application is installed. For example, as illustrated in FIG. 1, the information collection unit is implemented in a virtual machine as an information collection module (guest software monitoring module).
このような構成のもと、情報収集部は、まず、仮想マシンが提供する仮想的なCPU(Central Processing Unit)に読み込まれた情報を取得してゲストOSまたはアプリケーションが実行しようとしているコードを把握し、把握したコードを、ゲストソフトウェアに関する情報を収集する命令が記述された情報収集コードに入れ替え、情報収集コードがゲストOSまたはアプリケーションにおいて実行されるように、情報の収集対象となるゲストソフトウェアによってコードが実行されるメモリ空間(実行バッファ)に情報収集コードを挿入する(図1の(1)を参照)。 In such a configuration, the information collection unit first acquires information read by a virtual CPU (Central Processing Unit) provided by the virtual machine and grasps the code that the guest OS or application is about to execute. The acquired code is replaced with an information collection code in which an instruction for collecting information about the guest software is described, and the code is collected by the guest software to be collected so that the information collection code is executed in the guest OS or application. Is inserted into a memory space (execution buffer) in which is executed (see (1) in FIG. 1).
すると、ゲストソフトウェアは、情報収集部によってメモリ空間に挿入された情報収集コードを実行する(図1の(2)を参照)。 Then, the guest software executes the information collection code inserted into the memory space by the information collection unit (see (2) in FIG. 1).
そして、情報収集部は、ゲストソフトウェアによって実行された情報収集コードの実行結果を収集することで、ゲストソフトウェアに関する情報を収集する(図1の(3)を参照)。 The information collecting unit collects information related to the guest software by collecting the execution result of the information collecting code executed by the guest software (see (3) in FIG. 1).
このように、実施例1に係る情報収集システムは、ゲストソフトウェアが利用している「仮想マシン」のメモリやディスクについて、どこに必要としている情報が配置されているかを正確に把握することなく情報を収集できることから、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 As described above, the information collection system according to the first embodiment collects information on the memory and disk of the “virtual machine” used by the guest software without accurately knowing where the necessary information is arranged. Since it can be collected, it is possible to easily collect information about guest software.
[実施例1に係る情報収集システムの構成]
続いて、図1〜5を用いて、実施例1に係る情報収集システムの構成を説明する。図2は、実施例1における情報収集部(攻撃検知システム)の構成を示すブロック図であり、図3は、パターンDBを説明するための図であり、図4は、情報収集モジュールライブラリを説明するための図であり、図5は、情報収集コードを説明するための図である。
[Configuration of Information Collection System According to Embodiment 1]
Then, the structure of the information collection system which concerns on Example 1 is demonstrated using FIGS. FIG. 2 is a block diagram illustrating the configuration of the information collection unit (attack detection system) in the first embodiment, FIG. 3 is a diagram for explaining the pattern DB, and FIG. 4 is a diagram for explaining the information collection module library. FIG. 5 is a diagram for explaining the information collection code.
図1に示すように、実施例1に係る情報収集システムにおいては、コンピュータのハードウェア上で動作するホストOS200に仮想マシン100がインストールされ、仮想マシン100にゲストOS30がインストールされている。また、情報収集部10は、ゲストソフトウェア(ゲストOS30、アプリケーション31)とは異なるOS上(ホストOS200上)で動作する。具体的には、情報収集部10は、情報収集モジュールとして仮想マシン100内に実装される。なお、仮想資源20は、ゲストOS30を動作させるために提供される仮想的なリソースである。
As illustrated in FIG. 1, in the information collection system according to the first embodiment, a
また、図2に示すように、実施例1における情報収集部10は、パターンDB11と、情報収集モジュールライブラリ12と、プログラム監視部13と、コード挿入部14とから構成される。なお、情報収集部10は、特許請求の範囲に記載の「情報収集手段」に対応し、パターンDB11は、特許請求の範囲に記載の「バイト列記憶手段」に対応し、プログラム監視部13は、特許請求の範囲に記載の「コードブロック監視手段」と「検査手段」とに対応し、コード挿入部14は、特許請求の範囲に記載の「コード挿入手段」と「実行結果収集手段」とに対応する。
As shown in FIG. 2, the
パターンDB11は、脆弱性を含むコードとして既知であるコード(既知の脆弱性を含むコード)について、当該コードの一部のバイト列をパターンとして持たせたシグネチャを、一つまたは複数記憶している。具体的には、パターンDB11は、一つまたは複数のシグネチャを、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているシグネチャは、後述するプログラム監視部13による処理に利用されるなどする。例えば、パターンDB11は、図3に示すようなシグネチャを予め記憶している。
The
情報収集モジュールライブラリ12は、ゲストソフトウェア内のライブラリやプログラムを利用してゲストソフトウェアの情報を収集することを目的としたライブラリ群を記憶している。具体的には、情報収集モジュールライブラリ12は、ライブラリ群を、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているライブラリ群は、後述するコード挿入部14による処理に利用されるなどする。例えば、情報収集モジュールライブラリ12は、図4の(A)に示すようなライブラリ群を予め記憶している。
The information
ところで、情報収集モジュールライブラリ12は、図4の(B)に示すように、各々の情報収集モジュール12aの中に、ゲストソフトウェアライブラリ検索部12bと、ゲストソフトウェアライブラリ実行部12cとを備えていてもよい。ゲストソフトウェアライブラリ検索部12bは、情報収集に利用するゲストソフトウェア内のライブラリを、ゲストソフトウェアのメモリやディスクの中から探し出すことを目的として利用される。例えば、ゲストソフトウェア上のメモリ情報を管理する部分から引き出す手法や、メモリ空間をスキャンして特定のライブラリの場所を探し出す手法等が考えられる。また、ゲストソフトウェアライブラリ実行部12cは、情報収集に利用するゲストソフトウェア内のライブラリを実際に呼び出すことを目的として利用される。
Incidentally, as shown in FIG. 4B, the information
プログラム監視部13は、ゲストソフトウェアがこれから実行するプログラムブロックをシグネチャと比較することで検査を行う。具体的には、プログラム監視部13は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を取得してゲストソフトウェアが実行しようとしているコードを把握することで、ゲストソフトウェア上で実行されるプログラムブロックを取り出し、パターンDB11に記憶されているシグネチャと比較することで検査を行う。当該検査の結果次第で、コード挿入部14による処理が行われるか否かが決定することになる。すなわち、プログラム監視部13は、プログラムブロックとシグネチャとをマッチングすることによって検査を行い、一致した場合には、コード挿入部14による処理が行われることになる。
The
コード挿入部14は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を取得してゲストソフトウェアが実行しようとしているコードを把握し、把握した当該コードを情報を収集する命令が記述された情報収集コードに入れ替え、情報収集コードがゲストソフトウェアにおいて実行されるように、情報の収集対象となるゲストソフトウェアによってコードが実行されるメモリ空間に情報収集コードを挿入し、ゲストソフトウェアによって実行された実行結果を収集することで情報を収集する。具体的には、コード挿入部14は、プログラム監視部13による検査の結果、プログラムブロックとシグネチャとが一致した場合には、情報収集モジュールライブラリ12によって記憶されているライブラリを利用することでコード(情報収集コード)を作成する。また、コード挿入部14は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報(例えば、EIP(インストラクションポインタ)など)を取得し、ゲストソフトウェアがどのコードを実行しているかを把握する。そして、コード挿入部14は、把握したコードを作成した情報収集コードに入れ替え、メモリ空間に挿入し、実行結果を収集する(図5は、『g_GetNameOfHandle』という情報収集ライブラリを利用して情報収集コードを作成した例である)。なお、コード挿入部14は、情報収集モジュールライブラリ12によって記憶されているライブラリを利用せずに、例えば、予め挿入する情報収集コードとして記憶している情報収集コードを仮想マシン100のメモリ空間に挿入してもよい。
The
実施例1において、例えば、コード挿入部14は、ゲストソフトウェアがこれから実行するプログラムブロックが、既知の脆弱性を狙った攻撃になりえるか否かを検査する情報収集コード(プログラム)を、仮想マシン100のメモリ空間(ゲストソフトウェアの実行空間)に挿入する。また、例えば、コード挿入部14は、情報収集コードの実行結果が「攻撃になりえる」との判断を示すものである場合には、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達するなどしてもよい。また、例えば、コード挿入部14は、運用方針によっては、その既知の脆弱性を狙った攻撃を回避するような情報収集コードを仮想マシン100のメモリ空間にさらに挿入して実行させることで、その脆弱性への攻撃からゲストソフトウェアを保護するなどしてもよい。
In the first embodiment, for example, the
[実施例1に係る情報収集システムの処理の手順]
次に、図6を用いて、実施例1に係る情報収集システムの処理の手順を説明する。図6は、実施例1に係る情報収集システムによる処理の手順を示すフローチャートである。
[Processing Procedure of Information Collection System According to Embodiment 1]
Next, a processing procedure of the information collection system according to the first embodiment will be described with reference to FIG. FIG. 6 is a flowchart of a process procedure performed by the information collection system according to the first embodiment.
まず、情報収集部10のプログラム監視部13は、ゲストソフトウェアの実行ブロックを監視する(ステップS101)。具体的には、プログラム監視部13は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を取得してゲストソフトウェアが実行しようとしているコードを把握することで、ゲストソフトウェア上で実行されるプログラムブロックを取り出す。
First, the
次に、情報収集部10のプログラム監視部13は、シグネチャと一致するか否かを判定する(ステップS102)。具体的には、プログラム監視部13は、ステップS101で取り出したプログラムブロックとパターンDB11に記憶されているシグネチャとをマッチングすることによって、検査を行う。一致しない場合には(ステップS102否定)、プログラム監視部13は、ゲストソフトウェアの実行ブロックを監視する処理に戻る。
Next, the
一方、一致する場合には(ステップS102肯定)、続いて、情報収集部10のコード挿入部14が、情報収集コード(調査コード)を挿入する(ステップS103)。具体的には、コード挿入部14は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を取得してゲストソフトウェアが実行しようとしているコードを把握し、把握したコードを、ゲストソフトウェアがこれから実行するプログラムブロックが、既知の脆弱性を狙った攻撃になりえるか否かを検査する情報収集コードに入れ替え、仮想マシン100のメモリ空間(ゲストソフトウェアの実行空間)に情報収集コードを挿入する。
On the other hand, if they match (Yes at step S102), then the
そして、情報収集部10のコード挿入部14は、攻撃か否かを判定する(ステップS104)。具体的には、コード挿入部14は、調査コードの実行結果が「攻撃になりえる」との判断を示すものであるか否かを判定する。「攻撃になりえる」との判断を示すものでない場合には(ステップS104否定)、プログラム監視部13において、ゲストソフトウェアの実行ブロックを監視する処理に戻る。
Then, the
一方、「攻撃になりえる」との判断を示すものである場合には(ステップS104肯定)、その後、コード挿入部14は、アラートを伝達する(ステップS105)。具体的には、コード挿入部14は、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達する。
On the other hand, if it indicates a determination that “it can be an attack” (Yes at Step S104), then the
さらに、コード挿入部14は、運用方針によっては、攻撃を回避する(ステップS106)。具体的には、コード挿入部14は、その既知の脆弱性を狙った攻撃を回避するようなコードやデータを仮想マシン100のメモリ空間にさらに挿入して実行させることで、その脆弱性への攻撃からゲストソフトウェアを保護する。
Furthermore, the
このように、実施例1に係る情報収集システムは、ゲストソフトウェアが利用している「仮想マシン」のメモリやディスクについて、どこに必要としている情報が配置されているかを正確に把握することなく情報を収集できることから、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 As described above, the information collection system according to the first embodiment collects information on the memory and disk of the “virtual machine” used by the guest software without accurately knowing where the necessary information is arranged. Since it can be collected, it is possible to easily collect information about guest software.
なお、上記の実施例1においては、情報収集システムが、まず、プログラム監視部13においてシグネチャと一致するか否かを判定し、一致すると判定した場合に、コード挿入部14においてコードを挿入する手法について説明したが、本発明はこれに限られるものではない。プログラム監視部13の判定如何に関わらず、コード挿入部14においてコードを挿入する手法や、そもそもプログラム監視部13による監視や判定を行わず、コード挿入部14において適宜コードを挿入する手法などにも、本発明を同様に適用することができる。また、プログラム監視部13による監視や判定のみを行い、コード挿入部14における情報収集コードの挿入は行わない手法などにも、本発明を同様に適用することができる。
In the first embodiment, the information collection system first determines whether or not the signature is matched with the signature in the
また、上記の実施例1においては、コード挿入部14が、情報収集コードとして、プログラムブロックが既知の脆弱性を狙った攻撃になりえるか否かを検査する情報収集コードを挿入する手法について説明したが、本発明はこれに限られるものではない。ゲストソフトウェアに実行させる情報収集コードであって、ゲストソフトウェアに関する情報を収集するコードであれば、いかなる情報収集コードを挿入してもよい。
Also, in the first embodiment, a method is described in which the
また、上記の実施例1においては、コード挿入部14が、ステップS105やステップS106において、アラートを伝達したり、攻撃を回避する手法について説明したが、これらは、運用方針などによって適宜選択されて実施されればよいものである。例えば、本発明に係る情報収集システムは、ハニーポットとして適用されることも可能である。
In the first embodiment, the
[実施例1の効果]
上記してきたように、実施例1によれば、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作し、仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得してゲストOSまたはアプリケーションが実行しようとしているコードを把握し、把握した当該コードを情報を収集する命令が記述された情報収集コードに入れ替え、情報収集コードが当該ゲストOSまたは当該アプリケーションにおいて実行されるように、情報の収集対象となる当該ゲストOSまたは当該アプリケーションによってコードが実行されるメモリ空間に情報収集コードを挿入し、ゲストOSまたはアプリケーションによって実行された情報収集コードの実行結果を収集することで、情報を収集するので、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。
[Effect of Example 1]
As described above, according to the first embodiment, a virtual machine provided by a virtual machine is a virtual machine that is a computer created virtually by being installed in a host OS that is an OS operating on the hardware of the computer. An information collection system that collects information about a guest OS and / or an application installed on the guest OS in a configuration in which a guest OS that is an OS that operates on typical hardware is installed. If the collection target is a guest OS, it runs on an OS different from the guest OS, and if the information collection target is an application, it runs on an OS different from the guest OS on which the application is installed. Information read into the virtual CPU provided by the machine The code that the guest OS or application intends to execute is grasped, the grasped code is replaced with an information collecting code in which an instruction for collecting information is described, and the information collecting code is executed in the guest OS or the application As described above, the information collection code is inserted into the memory space where the code is executed by the guest OS or the application to be collected, and the execution result of the information collection code executed by the guest OS or the application is collected Since information is collected, it is possible to easily collect information about guest software.
すなわち、実施例1によれば、仮想マシン上で動作するゲストソフトウェアを監視する際、ゲストソフトウェアの外側からゲストソフトウェア内部で起きている事象を把握し、効率よくゲストソフトウェアの内部の情報を取得することが可能になる。このため、本発明を利用して攻撃検知システムを構築することにより、ゲストソフトウェアの詳細な情報元に、安全な場所からゲストソフトウェアを監視するシステムを実現することが可能になる。 That is, according to the first embodiment, when the guest software operating on the virtual machine is monitored, an event occurring inside the guest software is grasped from outside the guest software, and information inside the guest software is efficiently acquired. It becomes possible. For this reason, by constructing an attack detection system using the present invention, it is possible to realize a system for monitoring guest software from a safe location based on detailed information about the guest software.
また、実施例1によれば、情報収集コードとして、ゲストOS内またはアプリケーション内のライブラリおよび/またはプログラムを利用して情報を収集する命令が記述された情報収集コードを、メモリ空間に挿入するので、ゲストソフトウェアに関する情報を簡易かつ効率的に収集することが可能になる。 In addition, according to the first embodiment, as the information collection code, the information collection code in which a command for collecting information using a library and / or program in the guest OS or application is described is inserted into the memory space. It becomes possible to collect information about guest software easily and efficiently.
また、実施例1によれば、収集された情報からゲストOSまたはアプリケーションに異常性が確認された際には、情報収集コードとして、異常性を解決する命令が記述された情報収集コードを、メモリ空間にさらに挿入するので(例えば、コードを入れ替えて挿入してもよい)、ゲストソフトウェアに関する情報を簡易に収集することが可能になる他に、ゲストソフトウェアに異常性が確認された際には、異常性を解決することも可能になる。 Further, according to the first embodiment, when an abnormality is confirmed in the guest OS or application from the collected information, an information collection code in which a command for solving the abnormality is described is stored in the memory as the information collection code. Since it is further inserted into the space (for example, the code may be replaced and inserted), in addition to being able to easily collect information about the guest software, when anomalies are confirmed in the guest software, It is also possible to resolve anomalies.
また、実施例1によれば、所定のバイト列を予め記憶し、仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得してゲストOSまたはアプリケーションが実行しようとしているコードを把握することで、ゲストOSまたはアプリケーションが実行するコードブロックを監視し、監視したコードブロックが、記憶している所定のバイト列と一致するか否かを検査するので、ゲストソフトウェア内部での事象を正確に把握した上で(例えば、ゲストソフトウェア上で動作しているプロセスの情報を取得した上で)、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 Further, according to the first embodiment, a predetermined byte string is stored in advance, information read into a virtual CPU provided by the virtual machine is acquired, and the code that the guest OS or application is trying to execute is grasped. Therefore, the code block executed by the guest OS or application is monitored, and it is checked whether the monitored code block matches the stored predetermined byte sequence. In addition, it becomes possible to easily collect information related to the guest software (for example, after acquiring information of a process operating on the guest software).
言い換えると、実施例1によれば、ゲストソフトウェアが現在実行しているコードが前もって用意した特定のパターンと一致するか否かを確認することで、ゲストソフトウェアが現在実行しているプログラムを把握することが可能になる。 In other words, according to the first embodiment, the program currently executed by the guest software is grasped by checking whether or not the code currently executed by the guest software matches a specific pattern prepared in advance. It becomes possible.
また、実施例1によれば、収集した情報を、ゲストOSまたはアプリケーション、および/または、当該ゲストOSまたは当該アプリケーション以外のソフトウェアに伝達するので、ゲストソフトウェアに関する情報を簡易に収集することが可能になる他に、収集した情報を他のソフトウェアに伝達することが可能になる(アラートを挙げるなど)。 Further, according to the first embodiment, the collected information is transmitted to the guest OS or application and / or software other than the guest OS or the application, so that it is possible to easily collect information about the guest software. In addition, the collected information can be transmitted to other software (such as raising an alert).
これまで、実施例1として、本発明に係る情報収集システムを、『既知の脆弱性を狙った攻撃検知システム』として利用する手法について説明してきたが、本発明はこれに限られるものではなく、本発明に係る情報収集システムを、『マルウェア検知システム』として利用してもよい。そこで、以下では、実施例2として、『マルウェア検知システム』の中でも、特に、『ユーザからのリクエストに応じて動作するマルウェア検知システム』の一例について、説明する。 So far, as Example 1, the method of using the information collection system according to the present invention as a “attack detection system targeting a known vulnerability” has been described, but the present invention is not limited to this, The information collection system according to the present invention may be used as a “malware detection system”. Therefore, in the following, as Example 2, an example of “a malware detection system that operates in response to a request from a user” among “malware detection systems” will be described.
まず、図7および8を用いて、実施例2に係る情報収集システムの構成を説明する。図7は、実施例2における情報収集部(マルウェア検知システム)の構成を示すブロック図であり、図8は、スナップショットデータ保存部を説明するための図である。図7に示すように、実施例2における情報収集部10は、スナップショットデータ保存部15と実行制御部16とが追加されている点で、実施例1における情報収集部10と異なる。なお、実行制御部16は、特許請求の範囲に記載の「スナップショット取得手段」と「実行再開手段」とに対応する。
First, the configuration of the information collection system according to the second embodiment will be described with reference to FIGS. FIG. 7 is a block diagram illustrating a configuration of the information collection unit (malware detection system) in the second embodiment, and FIG. 8 is a diagram for explaining the snapshot data storage unit. As illustrated in FIG. 7, the
実施例2におけるパターンDB11は、マルウェアの特徴を表すコードについて、当該コードの一部のバイト列をパターンとして持たせたシグネチャを、一つまたは複数記憶している。具体的には、パターンDB11は、一つまたは複数のシグネチャを、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているシグネチャは、コード挿入部14による処理に利用されるなどする。
The
スナップショットデータ保存部15は、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットを記憶する。具体的には、スナップショットデータ保存部15は、実行制御部16によって取得されたスナップショットを記憶し、記憶したスナップショットは、実行制御部16によってゲストソフトウェアの実行状態が復元される処理に利用されるなどする。例えば、スナップショットデータ保存部15は、図8に示すように、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどを保存する。
The snapshot
実行制御部16は、ユーザからのリクエストを受け付け、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットを取得したり、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させる。具体的には、実行制御部16は、ユーザからのリクエストを受け付けると、スナップショットを取得し、スナップショットデータ保存部15に記憶させる。また、実行制御部16は、コード挿入部14によってゲストソフトウェアの状態に異常がないと判定された場合などに、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させる。なお、実施例2においては、スナップショットデータ保存部15の説明にもあるように、実行制御部16が、スナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどを取得する手法について説明するが、本発明はこれに限られるものではない。実行制御部16がこれらのデータの一部を取得する手法や、全部を取得する手法などにも、本発明を同様に適用することができる。
The
実施例2におけるコード挿入部14は、例えば、ゲストソフトウェアの情報を収集する命令が記述されたコードを、仮想マシンのメモリ空間に挿入する。また、例えば、コード挿入部14は、収集したゲストソフトウェアの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。また、例えば、コード挿入部14は、コードの実行結果が「ゲストソフトウェアの状態に異常がある」との判断を示すものである場合には、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達するなどしてもよい。また、例えば、コード挿入部14は、運用方針によっては、ゲストソフトウェア上でパターンDB11のシグネチャにマッチするコンピュータ資源を削除したり、実行不可能な形にするようなコードを仮想マシンのメモリ空間にさらに挿入して実行させることで、マルウェアからゲストソフトウェアを保護するなどしてもよい。
The
[実施例2に係る情報収集システムの処理の手順]
次に、図9を用いて、実施例2に係る情報収集システムの処理の手順を説明する。図9は、実施例2に係る情報収集システムによる処理の手順を示すフローチャートである。
[Processing Procedure of Information Collection System According to Second Embodiment]
Next, a processing procedure of the information collection system according to the second embodiment will be described with reference to FIG. FIG. 9 is a flowchart of a process procedure performed by the information collection system according to the second embodiment.
まず、情報収集部10の実行制御部16は、外部からのリクエストを監視する(ステップS201)。具体的には、本マルウェア検知システムは、ユーザからのリクエストを契機として動作するものであるので、実行制御部16は、外部からのリクエストを待機する。
First, the
そして、情報収集部10の実行制御部16は、リクエストを受け付けたか否かを判定する(ステップS202)。リクエストを受け付けていない場合には(ステップS202否定)、実行制御部16は、外部からのリクエストを監視する処理に戻る。
Then, the
一方、リクエストを受け付けた場合には(ステップS202肯定)、実行制御部16は、スナップショットを保存する(ステップS203)。具体的には、実行制御部16は、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットを取得し、スナップショットデータ保存部15に記憶させる。
On the other hand, when the request is accepted (Yes at Step S202), the
続いて、情報収集部10のコード挿入部14は、情報収集コード(調査コード)を挿入する(ステップS204)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する情報収集コードを、仮想マシンのメモリ空間に挿入する。
Subsequently, the
そして、情報収集部10のコード挿入部14は、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS205)。具体的には、コード挿入部14は、ステップS204で収集したゲストソフトウェアの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS205否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS206)、ステップS201へ戻る。
Then, the
一方、異常があると判定された場合には(ステップS205肯定)、その後、コード挿入部14は、アラートを伝達する(ステップS207)。具体的には、コード挿入部14は、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達する。
On the other hand, if it is determined that there is an abnormality (Yes at Step S205), then the
さらに、コード挿入部14は、運用方針によっては、削除等対策を行う(ステップS208)。具体的には、コード挿入部14は、ゲストソフトウェア上でパターンDB11のシグネチャにマッチするコンピュータ資源を削除したり、実行不可能な形にするようなコードを仮想マシンのメモリ空間にさらに挿入して実行させることで、マルウェアからゲストソフトウェアを保護する。
Further, the
そして、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS209)、ステップS201へ戻る。
Then, the
このように、実施例2に係る情報収集システムは、ゲストソフトウェアが利用している「仮想マシン」のメモリやディスクについて、どこに必要としている情報が配置されているかを正確に把握することなく情報を収集できることから、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 As described above, the information collection system according to the second embodiment collects information without accurately knowing where the necessary information is arranged in the memory and disk of the “virtual machine” used by the guest software. Since it can be collected, it is possible to easily collect information about guest software.
[実施例2の効果]
上記してきたように、実施例2によれば、実施例1の効果の他に、仮想マシン上で動作するゲストソフトウェアを監視する際、ゲストソフトウェアの外側からゲストソフトウェア内部で起きている事象を把握し、効率よくゲストソフトウェアの内部の情報を取得することが可能になる。このため、本発明を利用してマルウェア検知システムを構築することにより、ゲストソフトウェアの詳細な情報元に、安全な場所からゲストソフトウェアを監視するシステムを実現することが可能になる。
[Effect of Example 2]
As described above, according to the second embodiment, in addition to the effects of the first embodiment, when the guest software operating on the virtual machine is monitored, an event occurring inside the guest software is grasped from outside the guest software. And it becomes possible to acquire the information inside the guest software efficiently. For this reason, by constructing a malware detection system using the present invention, it is possible to realize a system for monitoring guest software from a safe location based on detailed information about the guest software.
また、実施例2によれば、ゲストOSまたはアプリケーションの所定の挙動を契機としてゲストOSまたはアプリケーションの実行状態のスナップショットを取得し、取得したスナップショットを用いて、ゲストOSまたはアプリケーションの実行を再開させるので、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 Further, according to the second embodiment, a snapshot of the execution state of the guest OS or application is acquired in response to a predetermined behavior of the guest OS or application, and execution of the guest OS or application is resumed using the acquired snapshot. Therefore, it is possible to easily collect information about guest software.
これまで、実施例2として、本発明に係る情報収集システムを、『ユーザからのリクエストに応じて動作するマルウェア検知システム』として利用する手法について説明してきたが、本発明はこれに限られるものではなく、本発明に係る情報収集システムを、『ゲストソフトウェアの呼び出すシステムコールを監視することでゲストソフトウェア内のマルウェアの実行を検知するマルウェア検知システム』として利用してもよい。そこで、以下では、実施例3として、『マルウェア検知システム』の中でも、特に、『ゲストソフトウェアの呼び出すシステムコールを監視することでゲストソフトウェア内のマルウェアの実行を検知するマルウェア検知システム』の一例について、説明する。 So far, as the second embodiment, a method of using the information collection system according to the present invention as a “malware detection system that operates in response to a request from a user” has been described, but the present invention is not limited to this. Instead, the information collection system according to the present invention may be used as a “malware detection system that detects execution of malware in guest software by monitoring system calls called by guest software”. Therefore, in the following, as Example 3, among “malware detection system”, in particular, an example of “malware detection system that detects execution of malware in guest software by monitoring a system call called by guest software” explain.
なお、実施例3におけるコード挿入部14は、例えば、ゲストソフトウェアの情報として、特定のシステムコールを呼び出した際の引数や、それに関連するメモリやディスクの情報などを収集するコードを、仮想マシンのメモリ空間に挿入する。また、プログラム監視部13は、特許請求の範囲に記載の「特殊命令監視手段」に対応する。
For example, the
[実施例3に係る情報収集システムの処理の手順]
図10を用いて、実施例3に係る情報収集システムの処理の手順を説明する。図10は、実施例3に係る情報収集システムによる処理の手順を示すフローチャートである。
[Processing Procedure of Information Collection System According to Embodiment 3]
The processing procedure of the information collection system according to the third embodiment will be described with reference to FIG. FIG. 10 is a flowchart of a process procedure performed by the information collection system according to the third embodiment.
まず、情報収集部10のプログラム監視部13は、システムコールの呼び出しを監視する(ステップS301)。具体的には、本マルウェア検知システムは、ゲストウェアのシステムコールの呼び出しを行うための特定の特権命令の実行を契機として動作するものであるので、プログラム監視部13は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を利用することで、ゲストソフトウェアがシステムコールを発行する際に実行する特殊命令を監視して、ゲストソフトウェア内からのシステムコールの呼び出しを監視する。具体的に例を挙げて説明すると、ゲストソフトウェアがシステムコールを発行すると、仮想的なCPUには、特殊命令が読み込まれる。すると、仮想的なCPUは、特殊命令が読み込まれたことをゲストソフトウェアに伝えるために、シグナルを発行する。このシグナルの発行にあたっては、仮想的なCPUから関数が呼び出されるが、プログラム監視部13は、この呼び出しを監視することで、ゲストソフトウェア内からのシステムコールの呼び出しを監視するのである。なお、プログラム監視部13が、仮想的なCPUに特殊命令が読み込まれたか否かを監視する手法にも、本発明を同様に適用することができる。
First, the
そして、情報収集部10のプログラム監視部13は、特権命令が実行されたか否かを判定する(ステップS302)。特権命令が実行されていない場合には(ステップS302否定)、プログラム監視部13は、システムコールの呼び出しを監視する処理に戻る。
Then, the
一方、特権命令が実行された場合には(ステップS302肯定)、実行制御部16が、スナップショットを保存する(ステップS303)。具体的には、実行制御部16は、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットを取得し、スナップショットデータ保存部15に記憶させる。なお、実行制御部16は、スナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどの一部を取得しても、全部を取得してもよい。
On the other hand, when the privileged instruction is executed (Yes at Step S302), the
続いて、情報収集部10のコード挿入部14は、調査コードを挿入する(ステップS304)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する調査コードを、仮想マシンのメモリ空間に挿入する。これによって、コード挿入部14は、システムコールを呼び出したプロセスやシステムコール番号、システムコール呼び出しの際の引数などの情報を収集する。
Subsequently, the
そして、情報収集部10のコード挿入部14は、パターンマッチを行い、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS305)。具体的には、コード挿入部14は、ステップS304で収集したゲストソフトウェアの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS305否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS306)、ステップS301へ戻る。
Then, the
一方、異常があると判定された場合には(ステップS305肯定)、その後、コード挿入部14は、アラートを伝達する(ステップS307)。具体的には、コード挿入部14は、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達する。
On the other hand, if it is determined that there is an abnormality (Yes at Step S305), then the
さらに、コード挿入部14は、運用方針によっては、対策を行う(ステップS308)。具体的には、コード挿入部14は、ゲストソフトウェア上でパターンDB11のシグネチャにマッチするコンピュータ資源を削除したり、実行不可能な形にするようなコードを仮想マシンのメモリ空間にさらに挿入して実行させることで、マルウェアからゲストソフトウェアを保護する。
Furthermore, the
そして、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS309)、ステップS301へ戻る。
Then, the
このように、実施例3に係る情報収集システムは、ゲストソフトウェアが利用している「仮想マシン」のメモリやディスクについて、どこに必要としている情報が配置されているかを正確に把握することなく情報を収集できることから、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 As described above, the information collection system according to the third embodiment collects information without accurately knowing where the necessary information is arranged about the memory and disk of the “virtual machine” used by the guest software. Since it can be collected, it is possible to easily collect information about guest software.
なお、上記の実施例3においては、情報収集システムが、まず、プログラム監視部13において、システムコールの呼び出しを監視し、特権命令が実行されたと判定した場合に、コード挿入部14においてコードを挿入する手法について説明したが、本発明はこれに限られるものではない。プログラム監視部13による監視や判定のみを行い、コード挿入部14におけるコードの挿入は行わない手法などにも、本発明を同様に適用することができる。
In the third embodiment, when the information collection system first monitors the call of the system call in the
[実施例3の効果]
上記してきたように、実施例3によれば、実施例1や2の効果の他に、仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視するので、ゲストソフトウェア内部での事象を正確に把握した上で、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。
[Effect of Example 3]
As described above, according to the third embodiment, in addition to the effects of the first and second embodiments, by using information read into a virtual CPU provided by the virtual machine, the guest OS or the application can be used. Monitors special instructions executed when a system call is issued and monitors the issue of the system call, so it is easy to collect information about the guest software after accurately understanding the events in the guest software. Is possible.
また、情報収集コードとして、監視したシステムコールについて、当該システムコールを発行したプロセス、システムコール番号、当該システムコールに渡される引数のいずれか一つまたは複数を収集する命令が記述された情報収集コードを、メモリ空間に挿入するので、ゲストソフトウェア内部での事象を正確に把握した上で、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 In addition, as the information collection code, for the monitored system call, an information collection code that describes an instruction to collect one or more of the process that issued the system call, the system call number, and the argument passed to the system call Is inserted into the memory space, it is possible to easily collect information about the guest software after accurately grasping the events inside the guest software.
これまで、実施例3として、本発明に係る情報収集システムを、『ゲストソフトウェアの呼び出すシステムコールを監視することでゲストソフトウェア内のマルウェアの実行を検知するマルウェア検知システム』として利用する手法の一例について説明してきた。実施例4では、さらに、本発明に係る情報収集システムを、『ゲストソフトウェアのシステムコールからの復帰時にも同様の検査を行うことで、マルウェアの実行を検知するマルウェア検知システム』として利用する手法の一例について、説明する。なお、実行制御部16は、特許請求の範囲に記載の「システムコール情報取得手段」にも対応する。
So far, as Example 3, an example of a method of using the information collection system according to the present invention as a “malware detection system that detects execution of malware in guest software by monitoring system calls called by guest software” I have explained. In the fourth embodiment, the information collection system according to the present invention is further used as a “malware detection system that detects the execution of malware by performing a similar inspection when returning from a guest software system call”. An example will be described. The
[実施例4に係る情報収集システムの処理の手順]
図11を用いて、実施例4に係る情報収集システムの処理の手順を説明する。図11は、実施例4に係る情報収集システムによる処理の手順を示すフローチャートである。
[Processing Procedure of Information Collection System According to Embodiment 4]
The processing procedure of the information collection system according to the fourth embodiment will be described with reference to FIG. FIG. 11 is a flowchart of a process procedure performed by the information collection system according to the fourth embodiment.
まず、実施例3と同様、情報収集部10のプログラム監視部13は、システムコールの呼び出しを監視する(ステップS401)。そして、実施例3と同様、プログラム監視部13は、特権命令が実行されたか否かを判定する(ステップS402)。特権命令が実行されていない場合には(ステップS402否定)、プログラム監視部13は、システムコールの呼び出しを監視する処理に戻る。
First, as in the third embodiment, the
一方、特権命令が実行された場合には(ステップS402肯定)、実行制御部16が、システムコールに係る情報を記憶部に記憶させる(ステップS403)。具体的には、実行制御部16は、システムコールに係る情報として、例えば、システムコールを呼び出したプロセスやシステムコール番号、システムコールを呼び出した際の引数やメモリ状態などを記憶させる。
On the other hand, when the privileged instruction is executed (Yes at Step S402), the
続いて、情報収集部10のプログラム監視部13は、システムコールからの復帰を監視する(ステップS404)。そして、プログラム監視部13は、システムコール終了のための特権命令が実行されたか否かを判定する(ステップS405)。特権命令が実行されていない場合には(ステップS405否定)、プログラム監視部13は、システムコールからの復帰を監視する処理に戻る。なお、プログラム監視部13は、システムコール終了のための特権命令が実行されたか否かを判定する手法ではなく、実行の権限が変更したか否かを監視して判定してもよい。
Subsequently, the
一方、システムコール終了のための特権命令が実行された場合には(または、実行の権限が変化した際など、ゲストソフトウェアの権限の移行を捉えて)(ステップS405肯定)、実行制御部16が、スナップショットを保存する(ステップS406)。なお、実行制御部16は、スナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどの一部を取得しても、全部を取得してもよい。
On the other hand, when a privileged instruction for ending the system call is executed (or catching the transition of the authority of the guest software, such as when the execution authority changes) (Yes in step S405), the
続いて、情報収集部10のコード挿入部14は、調査コードを挿入する(ステップS407)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する調査コードを、仮想マシンのメモリ空間に挿入する。これによって、コード挿入部14は、ゲストソフトウェアのメモリの状態等の情報を収集する。
Subsequently, the
そして、情報収集部10のコード挿入部14は、パターンマッチを行い、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS408)。具体的には、コード挿入部14は、ステップS403で記憶部に記憶させたシステムコールに係る情報や、ステップS407で収集したゲストソフトウェアの情報を付加的に利用するなどして、これらの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS408否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS409)、ステップS401へ戻る。
Then, the
一方、異常があると判定された場合には(ステップS408肯定)、その後、実施例3と同様、コード挿入部14が、アラートを伝達したり(ステップS410)、運用方針によっては対策を行ったり(ステップS411)、実行制御部16が、スナップショットデータ保存部15に記憶されていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS412)、ステップS401へ戻る。
On the other hand, if it is determined that there is an abnormality (Yes at step S408), then, as in the third embodiment, the
このように、実施例4に係る情報収集システムは、ゲストソフトウェアが利用している「仮想マシン」のメモリやディスクについて、どこに必要としている情報が配置されているかを正確に把握することなく情報を収集できることから、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 As described above, the information collection system according to the fourth embodiment collects information on the memory and disk of the “virtual machine” used by the guest software without accurately knowing where the necessary information is arranged. Since it can be collected, it is possible to easily collect information about guest software.
なお、上記の実施例4においては、情報収集システムが、まず、プログラム監視部13において、システムコールの呼び出しやシステムコールからの復帰を監視し、特権命令が実行されたと判定した場合に、コード挿入部14においてコードを挿入する手法について説明したが、本発明はこれに限られるものではない。プログラム監視部13による監視や判定のみを行い、コード挿入部14におけるコードの挿入は行わない手法などにも、本発明を同様に適用することができる。
In the fourth embodiment, when the information collection system first monitors the call of the system call and the return from the system call in the
また、上記の実施例4においては、情報収集システムが、プログラム監視部13において、システムコールからの復帰を監視し、システムコール終了のための特権命令が実行されたと判定した後に、コード挿入部14においてコードを挿入する手法について説明したが、本発明はこれに限られるものではない。実施例3に係る情報収集システムによる手法と組み合わせることも可能である。すなわち、プログラム監視部13において、システムコールの呼び出しを監視し、システムコール呼び出しのための特権命令が実行されたと判定した後に、まず、コード挿入部14においてコードを挿入し、その上で、システムコールからの復帰も監視し、システムコール終了のための特権命令が実行されたと判定した後にも、コード挿入部14においてコードを挿入するなど、複数回にわたってコードを挿入するなどしてもよい。
In the fourth embodiment, the information collection system monitors the return from the system call in the
[実施例4の効果]
上記してきたように、実施例4によれば、実施例1〜3の効果の他に、監視されたシステムコールを発行した際の情報を取得し、取得した情報をさらに用いて情報を収集するので、ゲストソフトウェア内部での事象を把握した上で、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。
[Effect of Example 4]
As described above, according to the fourth embodiment, in addition to the effects of the first to third embodiments, information at the time of issuing a monitored system call is acquired, and information is further collected using the acquired information. Therefore, it becomes possible to easily collect information about the guest software after grasping the events inside the guest software.
これまで、実施例3や4として、本発明に係る情報収集システムを、システムコールと関連づけてマルウェアの実行を検知するマルウェア検知システムとして利用する手法の一例について説明してきた。実施例5では、さらに、本発明に係る情報収集システムを、『ゲストソフトウェアの呼び出すシステムコール履歴を監視することで、マルウェアの実行を検知するマルウェア検知システム』として利用する手法の一例について、説明する。 So far, examples 3 and 4 have described an example of a method of using the information collection system according to the present invention as a malware detection system that detects execution of malware in association with a system call. In the fifth embodiment, an example of a technique of using the information collection system according to the present invention as a “malware detection system that detects execution of malware by monitoring a system call history called by guest software” will be described. .
まず、図12を用いて、実施例5に係る情報収集システムの構成を説明する。図12は、実施例5における情報収集部(マルウェア検知システム)の構成を示すブロック図である。図12に示すように、実施例5における情報収集部10は、システムコール履歴DB17が追加されている点で、実施例2〜4における情報収集部10と異なる。
First, the configuration of the information collection system according to the fifth embodiment will be described with reference to FIG. FIG. 12 is a block diagram illustrating a configuration of an information collection unit (malware detection system) in the fifth embodiment. As shown in FIG. 12, the
実施例5におけるパターンDB11は、マルウェアか否かを判断するためのマルウェアの特徴的なシステムコールシーケンスを、シグネチャとして、一つまたは複数記憶している。具体的には、パターンDB11は、一つまたは複数のシグネチャを、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているシグネチャは、コード挿入部14による処理に利用されるなどする。
The
例えば、パターンDB11は、図13に示すようなシグネチャを予め記憶している。図13に示すシグネチャの内、『シグネチャ3』が、システムコールシーケンスのシグネチャの例である。なお、パターンDB11が記憶するシステムコールシーケンスのシグネチャには、二通りの使い方を考えることができる。一つは、危険なシステムコールのシーケンスをシグネチャとして持たせ、それと一致した時に危険と判断する手法である。もう一つは、正常状態のシステムコールのシーケンスをシグネチャとして持たせ、そのシグネチャとは異なるコールシーケンスが発生した時に危険と判断する手法である。
For example, the
実施例5における実行制御部16は、実施例2〜4と同様、スナップショットを取得したり、ゲストソフトウェアの実行状態を復元させるなどする他に、ゲストソフトウェアから呼び出されたシステムコールの情報をシステムコール履歴DB17に記憶させる。
In the fifth embodiment, the
[実施例5に係る情報収集システムの処理の手順]
次に、図14を用いて、実施例5に係る情報収集システムの処理の手順を説明する。図14は、実施例5に係る情報収集システムによる処理の手順を示すフローチャートである。
[Processing Procedure of Information Collection System According to Embodiment 5]
Next, a processing procedure of the information collection system according to the fifth embodiment will be described with reference to FIG. FIG. 14 is a flowchart of a process procedure performed by the information collection system according to the fifth embodiment.
まず、実施例3と同様、情報収集部10のプログラム監視部13は、システムコールの呼び出しを監視する(ステップS501)。そして、実施例3と同様、プログラム監視部13は、特権命令が実行されたか否かを判定する(ステップS502)。特権命令が実行されていない場合には(ステップS502否定)、プログラム監視部13は、システムコールの呼び出しを監視する処理に戻る。
First, as in the third embodiment, the
一方、特権命令が実行された場合には(ステップS502肯定)、実施例3と同様、実行制御部16が、スナップショットを保存する(ステップS503)。なお、実行制御部16は、スナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどの一部を取得しても、全部を取得してもよい。
On the other hand, when the privileged instruction is executed (Yes at Step S502), the
そして、情報収集部10の実行制御部16は、ステップS501において呼び出されたシステムコールの情報を、システムコール履歴DB17に記憶させる(ステップS504)。
Then, the
続いて、情報収集部10のコード挿入部14は、調査コードを挿入する(ステップS505)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する調査コードを、仮想マシンのメモリ空間に挿入する。これによって、コード挿入部14は、システムコールの引数情報等の情報を収集する。
Subsequently, the
そして、コード挿入部14は、パターンマッチを行い、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS506)。具体的には、コード挿入部14は、ステップS504で記憶部に記憶させたシステムコールの情報(システムコールシーケンスなど)や、ステップS505で収集したゲストソフトウェアの情報を付加的に利用するなどして、これらの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS506否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS507)、ステップS501へ戻る。
Then, the
一方、異常があると判定された場合には(ステップS506肯定)、その後、実施例3と同様、コード挿入部14が、アラートを伝達したり(ステップS508)、運用方針によっては対策を行ったり(ステップS509)、実行制御部16が、スナップショットデータ保存部15に記憶されていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS510)、ステップS501へ戻る。
On the other hand, if it is determined that there is an abnormality (Yes in step S506), then, as in the third embodiment, the
このように、実施例5に係る情報収集システムは、ゲストソフトウェアが利用している「仮想マシン」のメモリやディスクについて、どこに必要としている情報が配置されているかを正確に把握することなく情報を収集できることから、ゲストソフトウェアに関する情報を簡易に収集することが可能になる。 As described above, the information collection system according to the fifth embodiment collects information on the memory and disk of the “virtual machine” used by the guest software without accurately knowing where the necessary information is arranged. Since it can be collected, it is possible to easily collect information about guest software.
なお、上記の実施例5においては、情報収集システムが、まず、プログラム監視部13において、システムコールの呼び出しを監視し、特権命令が実行されたと判定した場合に、コード挿入部14においてコードを挿入する手法について説明したが、本発明はこれに限られるものではない。プログラム監視部13による監視や判定のみを行い、コード挿入部14におけるコードの挿入は行わない手法などにも、本発明を同様に適用することができる。
In the fifth embodiment, when the information collection system first monitors the system call invocation in the
[他の実施例]
さて、これまで本発明の各種実施例について説明してきたが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[Other embodiments]
Various embodiments of the present invention have been described so far, but the present invention may be implemented in various different forms other than the above-described embodiments.
[システム構成等]
これまで、実施例1〜5として、本発明における情報収集部が、情報収集モジュール(ゲストソフトウェア監視モジュール)として仮想マシン(VMM)内に実装される構成例について説明してきたが(図1を参照)、本発明はこのような構成に限られるものではない。例えば、図15に示すように、仮想マシン上で複数のゲストOSが動作している状態で、本発明における情報収集部が、情報収集モジュールを含むアプリケーションとして、情報の収集対象となるゲストOSとは異なるOS(図15においては、他のゲストOS)内に実装される構成例や、図16に示すように、本発明における情報収集部が、情報収集モジュールを含むアプリケーションとしてホストOS内に実装される構成例などにも、本発明を同様に適用することができる。
[System configuration, etc.]
So far, as the first to fifth embodiments, the configuration example in which the information collection unit in the present invention is implemented in the virtual machine (VMM) as the information collection module (guest software monitoring module) has been described (see FIG. 1). ), The present invention is not limited to such a configuration. For example, as illustrated in FIG. 15, in a state where a plurality of guest OSs are operating on a virtual machine, the information collection unit according to the present invention is configured as an application including an information collection module, The configuration example implemented in a different OS (in FIG. 15, another guest OS), or as shown in FIG. 16, the information collection unit according to the present invention is implemented in the host OS as an application including an information collection module. The present invention can be similarly applied to a configuration example.
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。 In addition, among the processes described in this embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.
また、図示(例えば、図2など)した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。 Each component of each device illustrated (for example, FIG. 2 and the like) is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. Further, all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.
なお、本実施例で説明した情報収集方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。 The information collection method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program can be distributed via a network such as the Internet. The program can also be executed by being recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO, and a DVD and being read from the recording medium by the computer.
以上のように、本発明に係る情報収集システムおよび情報収集方法は、仮想マシンにゲストOSがインストールされている構成において、ゲストソフトウェア(ゲストOS、当該ゲストOSにインストールされているアプリケーション)に関する情報を収集することに有用であり、特に、ゲストソフトウェアに関する情報を簡易に収集することに適する。 As described above, the information collection system and the information collection method according to the present invention provide information on guest software (guest OS, application installed in the guest OS) in a configuration in which the guest OS is installed in the virtual machine. It is useful for collecting information, and is particularly suitable for easily collecting information about guest software.
100 仮想マシン
10 情報収集部
11 パターンDB
12 情報収集モジュールライブラリ
12a 情報収集モジュール
12b ゲストソフトウェアライブラリ検索部
12c ゲストソフトウェアライブラリ実行部
13 プログラム監視部
14 コード挿入部
15 スナップショットデータ保存部
15a レジストリデータ
15b ディスクデータ
15c スタックデータ
15d ヒープ領域データ
16 実行制御部
17 システムコール履歴DB
20 仮想資源
30 ゲストOS
31 アプリケーション
200 ホストOS
100
DESCRIPTION OF
20
31
Claims (14)
前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集手段を備え、
前記情報収集手段は、
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握し、把握した当該コードを前記情報を収集する命令が記述された情報収集コードに入れ替え、当該情報収集コードが当該ゲストOSまたは当該アプリケーションにおいて実行されるように、当該情報の収集対象となる当該ゲストOSまたは当該アプリケーションによってコードが実行されるメモリ空間に当該情報収集コードを挿入するコード挿入手段と、
前記ゲストOSまたは前記アプリケーションによって実行された前記情報収集コードの実行結果を収集することで、前記情報を収集する実行結果収集手段と、
を備えたことを特徴とする情報収集システム。 A guest OS, which is an OS that operates on virtual hardware provided by the virtual machine, is installed in a virtual machine that is virtually created by being installed in a host OS, which is an OS that operates on the computer hardware. Is an information collection system that collects information on the guest OS and / or an application installed on the guest OS in a configuration in which is installed.
If the information collection target is a guest OS, it operates on an OS different from the guest OS. If the information collection target is an application, the information is collected on an OS different from the guest OS on which the application is installed. Equipped with operating information gathering means,
The information collecting means includes
An instruction for acquiring information read by a virtual CPU provided by the virtual machine, grasping the code that the guest OS or the application intends to execute, and collecting the information of the grasped code is described. The information collection code is replaced with the information collection code in the memory space where the code is executed by the guest OS or application to be collected, so that the information collection code is executed in the guest OS or application. A code insertion means for inserting
An execution result collecting means for collecting the information by collecting an execution result of the information collection code executed by the guest OS or the application;
An information collection system characterized by comprising:
所定のバイト列を予め記憶しているバイト列記憶手段と、
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握することで、当該ゲストOSまたは当該アプリケーションが実行するコードブロックを監視するコードブロック監視手段と、
前記コードブロック監視手段によって監視されたコードブロックが、前記バイト列記憶手段によって記憶されている所定のバイト列と一致するか否かを検査する検査手段と、
をさらに備えたことを特徴とする請求項1〜3のいずれか一つに記載の情報収集システム。 The information collecting means includes
Byte sequence storage means for storing a predetermined byte sequence in advance;
Monitor the code block executed by the guest OS or the application by acquiring information read by the virtual CPU provided by the virtual machine and grasping the code that the guest OS or the application intends to execute Code block monitoring means to perform,
Inspection means for inspecting whether the code block monitored by the code block monitoring means matches a predetermined byte string stored by the byte string storage means;
The information collecting system according to claim 1, further comprising:
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視する特殊命令監視手段をさらに備えたことを特徴とする請求項1〜4のいずれか一つに記載の情報収集システム。 The information collecting means includes
By using the information read into the virtual CPU provided by the virtual machine, the guest OS or the application monitors the special instruction executed when issuing the system call to monitor the issue of the system call. The information collection system according to claim 1, further comprising a special command monitoring unit that performs the operation.
前記特殊命令監視手段によって監視されたシステムコールを発行した際の情報を取得するシステムコール情報取得手段をさらに備え、
前記実行結果収集手段は、前記システムコール情報取得手段によって取得された情報をさらに用いて前記情報を収集することを特徴とする請求項5または6に記載の情報収集システム。 The information collecting means includes
Further comprising system call information acquisition means for acquiring information when a system call monitored by the special instruction monitoring means is issued;
The information collection system according to claim 5, wherein the execution result collection unit collects the information by further using the information acquired by the system call information acquisition unit.
前記ゲストOSまたは前記アプリケーションの所定の挙動を契機として当該ゲストOSまたは当該アプリケーションの実行状態のスナップショットを取得するスナップショット取得手段と、
前記スナップショット取得手段によって取得されたスナップショットを用いて、前記ゲストOSまたは前記アプリケーションの実行を再開させる実行再開手段と、
をさらに備えたことを特徴とする請求項1〜7のいずれか一つに記載の情報収集システム。 The information collecting means includes
Snapshot acquisition means for acquiring a snapshot of the execution state of the guest OS or the application triggered by a predetermined behavior of the guest OS or the application;
Execution resuming means for resuming execution of the guest OS or the application using the snapshot acquired by the snapshot acquisition means;
The information collection system according to claim 1, further comprising:
前記実行結果収集手段によって収集された前記情報を、前記ゲストOSまたは前記アプリケーション、および/または、当該ゲストOSまたは当該アプリケーション以外のソフトウェアに伝達する情報伝達手段をさらに備えたことを特徴とする請求項1〜8のいずれか一つに記載の情報収集システム。 The information collecting means includes
The information collected by the said execution result collection means is further provided to the guest OS or the said application, and / or the software other than the said guest OS or the said application, The information transmission means characterized by the above-mentioned. The information collection system as described in any one of 1-8.
前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集手段を備え、
前記情報収集手段は、
所定のバイト列を予め記憶しているバイト列記憶手段と、
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握することで、当該ゲストOSまたは当該アプリケーションが実行するコードブロックを監視するコードブロック監視手段と、
前記コードブロック監視手段によって監視されたコードブロックが、前記バイト列記憶手段によって記憶されている所定のバイト列と一致するか否かを検査する検査手段と、
を備えたことを特徴とする情報収集システム。 A guest OS, which is an OS that operates on virtual hardware provided by the virtual machine, is installed in a virtual machine that is virtually created by being installed in a host OS, which is an OS that operates on the computer hardware. Is an information collection system that collects information on the guest OS and / or an application installed on the guest OS in a configuration in which is installed.
If the information collection target is a guest OS, it operates on an OS different from the guest OS. If the information collection target is an application, the information is collected on an OS different from the guest OS on which the application is installed. Equipped with operating information gathering means,
The information collecting means includes
Byte sequence storage means for storing a predetermined byte sequence in advance;
Monitor the code block executed by the guest OS or the application by acquiring information read by the virtual CPU provided by the virtual machine and grasping the code that the guest OS or the application intends to execute Code block monitoring means to perform,
Inspection means for inspecting whether the code block monitored by the code block monitoring means matches a predetermined byte string stored by the byte string storage means;
An information collection system characterized by comprising:
前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集手段を備え、
前記情報収集手段は、
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視する特殊命令監視手段を備えたことを特徴とする情報収集システム。 A guest OS, which is an OS that operates on virtual hardware provided by the virtual machine, is installed in a virtual machine that is virtually created by being installed in a host OS, which is an OS that operates on the computer hardware. Is an information collection system that collects information on the guest OS and / or an application installed on the guest OS in a configuration in which is installed.
If the information collection target is a guest OS, it operates on an OS different from the guest OS. If the information collection target is an application, the information is collected on an OS different from the guest OS on which the application is installed. Equipped with operating information gathering means,
The information collecting means includes
By using the information read into the virtual CPU provided by the virtual machine, the guest OS or the application monitors the special instruction executed when issuing the system call to monitor the issue of the system call. An information collection system comprising special instruction monitoring means for performing
前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集工程を含み、
前記情報収集工程は、
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して当該ゲストOSまたは当該アプリケーションが実行しようとしているコードを把握し、把握した当該コードを前記情報を収集する命令が記述された情報収集コードに入れ替え、当該情報収集コードが当該ゲストOSまたは当該アプリケーションにおいて実行されるように、当該情報の収集対象となる当該ゲストOSまたは当該アプリケーションによってコードが実行されるメモリ空間に当該情報収集コードを挿入するコード挿入工程と、
前記ゲストOSまたは前記アプリケーションによって実行された前記情報収集コードの実行結果を収集することで、前記情報を収集する実行結果収集工程と、
を含んだことを特徴とする情報収集方法。 A guest OS, which is an OS that operates on virtual hardware provided by the virtual machine, is installed in a virtual machine that is virtually created by being installed in a host OS, which is an OS that operates on the computer hardware. Is an information collection method for collecting information related to the guest OS and / or an application installed in the guest OS,
If the information collection target is a guest OS, it operates on an OS different from the guest OS. If the information collection target is an application, the information is collected on an OS different from the guest OS on which the application is installed. Including a working information gathering process,
The information collecting step includes
An instruction for acquiring the information read by the virtual CPU provided by the virtual machine, grasping the code that the guest OS or the application intends to execute, and collecting the information of the grasped code is described. The information collection code is replaced with the information collection code in the memory space where the code is executed by the guest OS or application to be collected, so that the information collection code is executed in the guest OS or application. A code insertion process for inserting
An execution result collection step for collecting the information by collecting an execution result of the information collection code executed by the guest OS or the application;
An information collection method characterized by including
前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集工程を含み、
前記情報収集工程は、
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を取得して前記ゲストOSまたは前記アプリケーションが実行しようとしているコードを把握することで、当該ゲストOSまたは当該アプリケーションが実行するコードブロックを監視するコードブロック監視工程と、
前記コードブロック監視工程によって監視されたコードブロックが、所定のバイト列を予め記憶しているバイト列記憶部によって記憶されている所定のバイト列と一致するか否かを検査する検査工程と、
を含んだことを特徴とする情報収集方法。 A guest OS, which is an OS that operates on virtual hardware provided by the virtual machine, is installed in a virtual machine that is virtually created by being installed in a host OS, which is an OS that operates on the computer hardware. Is an information collection method for collecting information related to the guest OS and / or an application installed in the guest OS,
If the information collection target is a guest OS, it operates on an OS different from the guest OS. If the information collection target is an application, the information is collected on an OS different from the guest OS on which the application is installed. Including a working information gathering process,
The information collecting step includes
Monitor the code block executed by the guest OS or the application by acquiring information read by the virtual CPU provided by the virtual machine and grasping the code that the guest OS or the application intends to execute A code block monitoring process to perform,
An inspection step of checking whether the code block monitored by the code block monitoring step matches a predetermined byte sequence stored by a byte sequence storage unit that stores a predetermined byte sequence in advance;
An information collection method characterized by including
前記情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、前記情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作する情報収集工程を含み、
前記情報収集工程は、
前記仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視する特殊命令監視工程を含んだことを特徴とする情報収集方法。 A guest OS, which is an OS that operates on virtual hardware provided by the virtual machine, is installed in a virtual machine that is virtually created by being installed in a host OS, which is an OS that operates on the computer hardware. Is an information collection method for collecting information related to the guest OS and / or an application installed in the guest OS,
If the information collection target is a guest OS, it operates on an OS different from the guest OS. If the information collection target is an application, the information is collected on an OS different from the guest OS on which the application is installed. Including a working information gathering process,
The information collecting step includes
By using the information read into the virtual CPU provided by the virtual machine, the guest OS or the application monitors the special instruction executed when issuing the system call to monitor the issue of the system call. An information collecting method characterized by including a special command monitoring step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007192352A JP4938576B2 (en) | 2007-07-24 | 2007-07-24 | Information collection system and information collection method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007192352A JP4938576B2 (en) | 2007-07-24 | 2007-07-24 | Information collection system and information collection method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009031859A true JP2009031859A (en) | 2009-02-12 |
JP4938576B2 JP4938576B2 (en) | 2012-05-23 |
Family
ID=40402334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007192352A Active JP4938576B2 (en) | 2007-07-24 | 2007-07-24 | Information collection system and information collection method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4938576B2 (en) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009223375A (en) * | 2008-03-13 | 2009-10-01 | Ntt Communications Kk | Malicious web site decision device, malicious web site decision system, method thereof, and program |
JP2011003132A (en) * | 2009-06-22 | 2011-01-06 | Nippon Telegr & Teleph Corp <Ntt> | Access control system, access controller and access control method |
WO2011027496A1 (en) * | 2009-09-01 | 2011-03-10 | 株式会社日立製作所 | Unauthorized process detection method and unauthorized process detection system |
JP2011060055A (en) * | 2009-09-11 | 2011-03-24 | Fujitsu Ltd | Virtual computer system, recovery processing method and of virtual machine, and program therefor |
JP2011233125A (en) * | 2010-04-28 | 2011-11-17 | Electronics And Telecommunications Research Institute | Method and apparatus for handling intelligent bot utilizing camouflage virtual machine information |
JP2012064161A (en) * | 2010-09-17 | 2012-03-29 | Toshiba Tec Corp | Computer and program |
US8595511B2 (en) | 2011-06-29 | 2013-11-26 | International Business Machines Corporation | Securely managing the execution of screen rendering instructions in a host operating system and virtual machine |
WO2014098239A1 (en) * | 2012-12-21 | 2014-06-26 | 日本電信電話株式会社 | Monitoring device and monitoring method |
WO2016092962A1 (en) * | 2014-12-08 | 2016-06-16 | 株式会社日立製作所 | Control device state verification system and control device state verification method |
JP2016534479A (en) * | 2013-09-12 | 2016-11-04 | ヴァーセック・システムズ・インコーポレーテッドVirsec Systems,Inc. | Automatic detection during malware runtime |
JP2017102823A (en) * | 2015-12-04 | 2017-06-08 | 日本電信電話株式会社 | Analyzer, analyzing method and analyzing program |
JP2017228136A (en) * | 2016-06-23 | 2017-12-28 | 日本電気株式会社 | Processing control device, processing control method, and processing control program |
US10114726B2 (en) | 2014-06-24 | 2018-10-30 | Virsec Systems, Inc. | Automated root cause analysis of single or N-tiered application |
US10331888B1 (en) | 2006-02-09 | 2019-06-25 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US10354074B2 (en) | 2014-06-24 | 2019-07-16 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
JP2019527429A (en) * | 2016-07-19 | 2019-09-26 | 2236008 オンタリオ インコーポレイテッド | Anomaly detection using system call sequence |
JP2021089685A (en) * | 2019-12-06 | 2021-06-10 | 株式会社日立製作所 | Security risk-reducing method and system |
US11409870B2 (en) | 2016-06-16 | 2022-08-09 | Virsec Systems, Inc. | Systems and methods for remediating memory corruption in a computer application |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003256234A (en) * | 2002-03-05 | 2003-09-10 | Communication Research Laboratory | Fragility-resistant server device and software |
JP2004264914A (en) * | 2003-02-24 | 2004-09-24 | Intellaset:Kk | Apparatus for measuring and analyzing system performance |
JP2006011552A (en) * | 2004-06-22 | 2006-01-12 | Lac Co Ltd | Computer virus information collection device, method, and program |
JP2006178936A (en) * | 2004-12-21 | 2006-07-06 | Microsoft Corp | Computer security management, such as in virtual machine or hardened operating system |
JP2006202279A (en) * | 2004-12-28 | 2006-08-03 | Sap Ag | Monitoring for virtual machine |
-
2007
- 2007-07-24 JP JP2007192352A patent/JP4938576B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003256234A (en) * | 2002-03-05 | 2003-09-10 | Communication Research Laboratory | Fragility-resistant server device and software |
JP2004264914A (en) * | 2003-02-24 | 2004-09-24 | Intellaset:Kk | Apparatus for measuring and analyzing system performance |
JP2006011552A (en) * | 2004-06-22 | 2006-01-12 | Lac Co Ltd | Computer virus information collection device, method, and program |
JP2006178936A (en) * | 2004-12-21 | 2006-07-06 | Microsoft Corp | Computer security management, such as in virtual machine or hardened operating system |
JP2006202279A (en) * | 2004-12-28 | 2006-08-03 | Sap Ag | Monitoring for virtual machine |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599634B1 (en) | 2006-02-09 | 2023-03-07 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US10331888B1 (en) | 2006-02-09 | 2019-06-25 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
JP2009223375A (en) * | 2008-03-13 | 2009-10-01 | Ntt Communications Kk | Malicious web site decision device, malicious web site decision system, method thereof, and program |
JP2011003132A (en) * | 2009-06-22 | 2011-01-06 | Nippon Telegr & Teleph Corp <Ntt> | Access control system, access controller and access control method |
WO2011027496A1 (en) * | 2009-09-01 | 2011-03-10 | 株式会社日立製作所 | Unauthorized process detection method and unauthorized process detection system |
JP2011053893A (en) * | 2009-09-01 | 2011-03-17 | Hitachi Ltd | Illicit process detection method and illicit process detection system |
JP2011060055A (en) * | 2009-09-11 | 2011-03-24 | Fujitsu Ltd | Virtual computer system, recovery processing method and of virtual machine, and program therefor |
JP2011233125A (en) * | 2010-04-28 | 2011-11-17 | Electronics And Telecommunications Research Institute | Method and apparatus for handling intelligent bot utilizing camouflage virtual machine information |
US8813226B2 (en) | 2010-04-28 | 2014-08-19 | Electronics And Telecommunications Research Institute | Defense method and device against intelligent bots using masqueraded virtual machine information |
JP2012064161A (en) * | 2010-09-17 | 2012-03-29 | Toshiba Tec Corp | Computer and program |
US8595511B2 (en) | 2011-06-29 | 2013-11-26 | International Business Machines Corporation | Securely managing the execution of screen rendering instructions in a host operating system and virtual machine |
US9600665B2 (en) | 2012-12-21 | 2017-03-21 | Nippon Telegraph And Telephone Corporation | Monitoring device and monitoring method |
WO2014098239A1 (en) * | 2012-12-21 | 2014-06-26 | 日本電信電話株式会社 | Monitoring device and monitoring method |
JP6005761B2 (en) * | 2012-12-21 | 2016-10-12 | 日本電信電話株式会社 | Monitoring device and monitoring method |
CN104871173B (en) * | 2012-12-21 | 2018-01-16 | 日本电信电话株式会社 | Monitoring arrangement and monitoring method |
US10079841B2 (en) | 2013-09-12 | 2018-09-18 | Virsec Systems, Inc. | Automated runtime detection of malware |
JP2016534479A (en) * | 2013-09-12 | 2016-11-04 | ヴァーセック・システムズ・インコーポレーテッドVirsec Systems,Inc. | Automatic detection during malware runtime |
US11146572B2 (en) | 2013-09-12 | 2021-10-12 | Virsec Systems, Inc. | Automated runtime detection of malware |
US10354074B2 (en) | 2014-06-24 | 2019-07-16 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
US10114726B2 (en) | 2014-06-24 | 2018-10-30 | Virsec Systems, Inc. | Automated root cause analysis of single or N-tiered application |
US11113407B2 (en) | 2014-06-24 | 2021-09-07 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
WO2016092962A1 (en) * | 2014-12-08 | 2016-06-16 | 株式会社日立製作所 | Control device state verification system and control device state verification method |
JP2016110411A (en) * | 2014-12-08 | 2016-06-20 | 株式会社日立製作所 | Controller state verification system and controller state verification method |
JP2017102823A (en) * | 2015-12-04 | 2017-06-08 | 日本電信電話株式会社 | Analyzer, analyzing method and analyzing program |
US11409870B2 (en) | 2016-06-16 | 2022-08-09 | Virsec Systems, Inc. | Systems and methods for remediating memory corruption in a computer application |
JP2017228136A (en) * | 2016-06-23 | 2017-12-28 | 日本電気株式会社 | Processing control device, processing control method, and processing control program |
US11086986B2 (en) | 2016-06-23 | 2021-08-10 | Nec Corporation | Processing control apparatus, processing control method, and non-transitory recoding medium |
JP2019527429A (en) * | 2016-07-19 | 2019-09-26 | 2236008 オンタリオ インコーポレイテッド | Anomaly detection using system call sequence |
JP2021089685A (en) * | 2019-12-06 | 2021-06-10 | 株式会社日立製作所 | Security risk-reducing method and system |
JP7272940B2 (en) | 2019-12-06 | 2023-05-12 | 株式会社日立製作所 | Security risk reduction method and system |
Also Published As
Publication number | Publication date |
---|---|
JP4938576B2 (en) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4938576B2 (en) | Information collection system and information collection method | |
JP7046111B2 (en) | Automatic detection during malware runtime | |
EP3430556B1 (en) | System and method for process hollowing detection | |
US10409983B2 (en) | Detecting malicious instructions in a virtual machine memory | |
US9594881B2 (en) | System and method for passive threat detection using virtual memory inspection | |
KR101737726B1 (en) | Rootkit detection by using hardware resources to detect inconsistencies in network traffic | |
US9853994B2 (en) | Attack analysis system, cooperation apparatus, attack analysis cooperation method, and program | |
US10339300B2 (en) | Advanced persistent threat and targeted malware defense | |
KR101626424B1 (en) | System and method for virtual machine monitor based anti-malware security | |
JP4406627B2 (en) | Computer security management, such as in virtual machines or hardened operating systems | |
EP3039608B1 (en) | Hardware and software execution profiling | |
CN109214170B (en) | Malware identification via auxiliary file analysis | |
US8984629B2 (en) | Apparatus and method for preemptively protecting against malicious code by selective virtualization | |
Srivastava et al. | Automatic discovery of parasitic malware | |
EP2515250A1 (en) | System and method for detection of complex malware | |
US7607173B1 (en) | Method and apparatus for preventing rootkit installation | |
US20160373447A1 (en) | Unauthorized access detecting system and unauthorized access detecting method | |
JP2010092174A (en) | Method, device and program for detecting fraudulence, and information processing system | |
EP2985716B1 (en) | Information processing device and identifying method | |
US7975298B1 (en) | System, method and computer program product for remote rootkit detection | |
CN113632432A (en) | Method and device for judging attack behavior and computer storage medium | |
US9202053B1 (en) | MBR infection detection using emulation | |
US8578495B2 (en) | System and method for analyzing packed files | |
CN117032894A (en) | Container security state detection method and device, electronic equipment and storage medium | |
US10635811B2 (en) | System and method for automation of malware unpacking and analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090722 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110520 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20110520 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120223 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4938576 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |