JP2009031859A - Information collection system and information collection method - Google Patents

Information collection system and information collection method Download PDF

Info

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
Application number
JP2007192352A
Other languages
Japanese (ja)
Other versions
JP4938576B2 (en
Inventor
Yuhei Kawakoya
裕平 川古谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007192352A priority Critical patent/JP4938576B2/en
Publication of JP2009031859A publication Critical patent/JP2009031859A/en
Application granted granted Critical
Publication of JP4938576B2 publication Critical patent/JP4938576B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To easily collect information on guest software. <P>SOLUTION: This information collection system for collecting information related with a guest OS and/or an application installed in the guest OS operates on an OS different from the guest OS when the collection object of information is a guest OS, and operates on the OS different from the guest OS in which the application is installed when the collection object of information is an application. Then the system acquires information read by a virtual CPU, comprehends a code to be executed by the guest OS or application, replaces the comprehended code with an information collection code, and inserts the information collection code into a memory where the code is executed, thereby collecting the execution result of the information collection code executed by the guest OS or the application for collecting the information. <P>COPYRIGHT: (C)2009,JPO&INPIT

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.

「ホストベースのIDSの概要と適用について」、JNSA2001年度WG活動成果物、[online]、[平成19年7月11日検索]、インターネット<http://www.jnsa.org/active/houkoku/IDSBasic.pdf>“Outline and application of host-based IDS”, JNSA 2001 WG Activity Results, [online], [July 11, 2007 search], Internet <http://www.jnsa.org/active/houkoku/ IDSBasic.pdf> 「ボットネット実態調査結果」、Black Hat Japan 2005、Telecom-ISAC Japan 小山 覚“Botnet Survey Results”, Black Hat Japan 2005, Telecom-ISAC Japan Satoshi Koyama 「A Virtual Machine Introspection Based Architecture for Intrusion Detection」、Tal Garfinkel and Mendel Rosenblum、In the Internet Society’s 2003 Symposium on Network and Distributed System Security,page191-206、February 2003.“A Virtual Machine Introspection Based Architecture for Intrusion Detection”, Tal Garfinkel and Mendel Rosenblum, In the Internet Society ’s 2003 Symposium on Network and Distributed System Security, page 191-206, February 2003.

ところで、上記した従来の技術は、以下に説明するように、ゲストソフトウェアに関する情報を簡易に収集することができないという課題がある。ゲストソフトウェアから必要な情報を収集するにあたっては、通常、ゲストソフトウェア内で起こっている事象を正確に把握する必要があり、また、ゲストソフトウェアが利用しているメモリやディスクのどこに必要としている情報が配置されているかを正確に把握していなければならない。すなわち、従来技術の手法によれば、ゲストソフトウェアとして動作する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 claim 10 provides a virtual hardware provided by the virtual machine 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 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 collecting means includes a predetermined byte sequence. By acquiring information read into a virtual CPU provided by the virtual machine and byte code storage means stored in advance and grasping the code that the guest OS or the application intends to execute, the guest Code block monitoring means for monitoring a code block executed by the OS or the application and whether the code block monitored by the code block monitoring means matches a predetermined byte string stored by the byte string storage means And inspection means for inspecting the above.

また、請求項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 claim 13 provides a virtual hardware provided by the virtual machine 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. A code block monitoring step of monitoring a code block executed by the guest OS or the application by acquiring information read by the virtual CPU and grasping a code that the guest OS or the application intends to execute And an inspection step for inspecting whether the code block monitored by the code block monitoring step matches the predetermined byte sequence stored by the byte sequence storage unit that stores the predetermined byte sequence in advance. , Including.

また、請求項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 claim 4, 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. As a result, 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. Thus, it is possible to easily collect information about guest software (for example, after acquiring information on processes operating on guest software).

また、請求項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 claim 10 or 13, 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 operates on an OS different from the guest OS, and if the information collection target is an application, it operates on an OS different from the guest OS on which the application is installed. Is stored in advance, and the virtual machine provides a temporary By acquiring information read into a typical CPU and grasping the code that the guest OS or application intends to execute, the code block executed by the guest OS or application is monitored, and the monitored code block is stored It is possible to check the event in the guest software accurately (for example, to acquire information on processes running on the guest software). Become.

また、請求項11または14の発明によれば、コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、情報の収集対象がゲストOSであれば当該ゲストOSとは異なるOS上で動作し、かつ、情報の収集対象がアプリケーションであれば当該アプリケーションがインストールされているゲストOSとは異なるOS上で動作し、仮想マシンが提供する仮想的なCPUに読み込まれた情報を利用することで、当該ゲストOSまたは当該アプリケーションがシステムコールを発行する際に実行する特殊命令を監視して当該システムコールの発行を監視するので、ゲストソフトウェア内部での事象を正確に把握することが可能になる。   According to the invention of claim 11 or 14, a virtual machine provided by the virtual machine 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 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 To monitor the special instructions executed when the guest OS or the application issues a system call and monitor the issue of the system call, so that the events inside the guest software can be accurately grasped. Is possible.

以下に添付図面を参照して、この発明に係る情報収集システムおよび情報収集方法の実施例を詳細に説明する。   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 virtual machine 100 is installed in a host OS 200 that operates on computer hardware, and a guest OS 30 is installed in the virtual machine 100. The information collecting unit 10 operates on an OS (on the host OS 200) different from the guest software (guest OS 30, application 31). Specifically, the information collection unit 10 is implemented in the virtual machine 100 as an information collection module. The virtual resource 20 is a virtual resource provided to operate the guest OS 30.

また、図2に示すように、実施例1における情報収集部10は、パターンDB11と、情報収集モジュールライブラリ12と、プログラム監視部13と、コード挿入部14とから構成される。なお、情報収集部10は、特許請求の範囲に記載の「情報収集手段」に対応し、パターンDB11は、特許請求の範囲に記載の「バイト列記憶手段」に対応し、プログラム監視部13は、特許請求の範囲に記載の「コードブロック監視手段」と「検査手段」とに対応し、コード挿入部14は、特許請求の範囲に記載の「コード挿入手段」と「実行結果収集手段」とに対応する。   As shown in FIG. 2, the information collection unit 10 according to the first embodiment includes a pattern DB 11, an information collection module library 12, a program monitoring unit 13, and a code insertion unit 14. The information collection unit 10 corresponds to the “information collection unit” described in the claims, the pattern DB 11 corresponds to the “byte string storage unit” described in the claims, and the program monitoring unit 13 The code insertion unit 14 corresponds to the “code block monitoring unit” and the “inspection unit” described in the claims, and the code insertion unit 14 includes the “code insertion unit” and the “execution result collection unit” described in the claims. Corresponding to

パターンDB11は、脆弱性を含むコードとして既知であるコード(既知の脆弱性を含むコード)について、当該コードの一部のバイト列をパターンとして持たせたシグネチャを、一つまたは複数記憶している。具体的には、パターンDB11は、一つまたは複数のシグネチャを、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているシグネチャは、後述するプログラム監視部13による処理に利用されるなどする。例えば、パターンDB11は、図3に示すようなシグネチャを予め記憶している。   The pattern DB 11 stores one or a plurality of signatures having a part of a byte sequence of the code as a pattern for a code known as a code including a vulnerability (code including a known vulnerability). . Specifically, the pattern DB 11 stores one or a plurality of signatures in advance by, for example, being registered in advance by a user of the information collection system, and the stored signatures are recorded by the program monitoring unit 13 described later. Used for processing. For example, the pattern DB 11 stores a signature as shown in FIG. 3 in advance.

情報収集モジュールライブラリ12は、ゲストソフトウェア内のライブラリやプログラムを利用してゲストソフトウェアの情報を収集することを目的としたライブラリ群を記憶している。具体的には、情報収集モジュールライブラリ12は、ライブラリ群を、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているライブラリ群は、後述するコード挿入部14による処理に利用されるなどする。例えば、情報収集モジュールライブラリ12は、図4の(A)に示すようなライブラリ群を予め記憶している。   The information collection module library 12 stores a library group for the purpose of collecting guest software information using libraries and programs in the guest software. Specifically, the information collection module library 12 stores a library group in advance by, for example, being registered in advance by a user of the information collection system, and the stored library group is obtained by a code insertion unit 14 described later. Used for processing. For example, the information collection module library 12 stores in advance a library group as shown in FIG.

ところで、情報収集モジュールライブラリ12は、図4の(B)に示すように、各々の情報収集モジュール12aの中に、ゲストソフトウェアライブラリ検索部12bと、ゲストソフトウェアライブラリ実行部12cとを備えていてもよい。ゲストソフトウェアライブラリ検索部12bは、情報収集に利用するゲストソフトウェア内のライブラリを、ゲストソフトウェアのメモリやディスクの中から探し出すことを目的として利用される。例えば、ゲストソフトウェア上のメモリ情報を管理する部分から引き出す手法や、メモリ空間をスキャンして特定のライブラリの場所を探し出す手法等が考えられる。また、ゲストソフトウェアライブラリ実行部12cは、情報収集に利用するゲストソフトウェア内のライブラリを実際に呼び出すことを目的として利用される。   Incidentally, as shown in FIG. 4B, the information collection module library 12 may include a guest software library search unit 12b and a guest software library execution unit 12c in each information collection module 12a. Good. The guest software library search unit 12b is used for the purpose of searching for a library in the guest software used for information collection from the memory or disk of the guest software. For example, a method of extracting from the part that manages memory information on the guest software, a method of searching the location of a specific library by scanning the memory space, and the like can be considered. The guest software library execution unit 12c is used for the purpose of actually calling a library in the guest software used for information collection.

プログラム監視部13は、ゲストソフトウェアがこれから実行するプログラムブロックをシグネチャと比較することで検査を行う。具体的には、プログラム監視部13は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を取得してゲストソフトウェアが実行しようとしているコードを把握することで、ゲストソフトウェア上で実行されるプログラムブロックを取り出し、パターンDB11に記憶されているシグネチャと比較することで検査を行う。当該検査の結果次第で、コード挿入部14による処理が行われるか否かが決定することになる。すなわち、プログラム監視部13は、プログラムブロックとシグネチャとをマッチングすることによって検査を行い、一致した場合には、コード挿入部14による処理が行われることになる。   The program monitoring unit 13 performs an inspection by comparing a program block to be executed by the guest software with a signature. Specifically, the program monitoring unit 13 is executed on the guest software by acquiring information read into the virtual CPU provided by the virtual machine 100 and grasping the code that the guest software is going to execute. The program block is taken out and compared with the signature stored in the pattern DB 11 for inspection. Depending on the result of the inspection, whether or not the processing by the code insertion unit 14 is to be performed is determined. That is, the program monitoring unit 13 performs inspection by matching the program block and the signature, and if they match, the processing by the code insertion unit 14 is performed.

コード挿入部14は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を取得してゲストソフトウェアが実行しようとしているコードを把握し、把握した当該コードを情報を収集する命令が記述された情報収集コードに入れ替え、情報収集コードがゲストソフトウェアにおいて実行されるように、情報の収集対象となるゲストソフトウェアによってコードが実行されるメモリ空間に情報収集コードを挿入し、ゲストソフトウェアによって実行された実行結果を収集することで情報を収集する。具体的には、コード挿入部14は、プログラム監視部13による検査の結果、プログラムブロックとシグネチャとが一致した場合には、情報収集モジュールライブラリ12によって記憶されているライブラリを利用することでコード(情報収集コード)を作成する。また、コード挿入部14は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報(例えば、EIP(インストラクションポインタ)など)を取得し、ゲストソフトウェアがどのコードを実行しているかを把握する。そして、コード挿入部14は、把握したコードを作成した情報収集コードに入れ替え、メモリ空間に挿入し、実行結果を収集する(図5は、『g_GetNameOfHandle』という情報収集ライブラリを利用して情報収集コードを作成した例である)。なお、コード挿入部14は、情報収集モジュールライブラリ12によって記憶されているライブラリを利用せずに、例えば、予め挿入する情報収集コードとして記憶している情報収集コードを仮想マシン100のメモリ空間に挿入してもよい。   The code insertion unit 14 describes an instruction for acquiring information read by the virtual CPU provided by the virtual machine 100 to grasp the code that the guest software is going to execute, and collecting information about the grasped code. The information collection code is inserted into the memory space where the code is executed by the guest software to be collected and executed by the guest software so that the information collection code is executed in the guest software. Collect information by collecting execution results. Specifically, when the program block and the signature match as a result of the inspection by the program monitoring unit 13, the code insertion unit 14 uses the library stored in the information collection module library 12 to use the code ( Information collection code). In addition, the code insertion unit 14 acquires information (for example, EIP (instruction pointer)) read by the virtual CPU provided by the virtual machine 100 and grasps which code the guest software is executing. . Then, the code insertion unit 14 replaces the grasped code with the created information collection code, inserts it into the memory space, and collects the execution results (FIG. 5 uses the information collection library “g_GetNameOfHandle” to collect the information collection code). Example). The code insertion unit 14 does not use the library stored by the information collection module library 12 and inserts, for example, the information collection code stored in advance as the information collection code to be inserted into the memory space of the virtual machine 100. May be.

実施例1において、例えば、コード挿入部14は、ゲストソフトウェアがこれから実行するプログラムブロックが、既知の脆弱性を狙った攻撃になりえるか否かを検査する情報収集コード(プログラム)を、仮想マシン100のメモリ空間(ゲストソフトウェアの実行空間)に挿入する。また、例えば、コード挿入部14は、情報収集コードの実行結果が「攻撃になりえる」との判断を示すものである場合には、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達するなどしてもよい。また、例えば、コード挿入部14は、運用方針によっては、その既知の脆弱性を狙った攻撃を回避するような情報収集コードを仮想マシン100のメモリ空間にさらに挿入して実行させることで、その脆弱性への攻撃からゲストソフトウェアを保護するなどしてもよい。   In the first embodiment, for example, the code insertion unit 14 transmits an information collection code (program) for checking whether a program block that the guest software will execute from now on can be an attack targeting a known vulnerability, a virtual machine It is inserted into 100 memory spaces (guest software execution space). In addition, for example, when the execution result of the information collection code indicates a judgment that “it can be an attack”, the code insertion unit 14 transmits an alert to both or one of the guest software and the host software. May be. In addition, for example, depending on the operation policy, the code insertion unit 14 may further insert and execute an information collection code that avoids attacks targeting the known vulnerabilities in the memory space of the virtual machine 100, Guest software may be protected from attacks on vulnerabilities.

[実施例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 program monitoring unit 13 of the information collecting unit 10 monitors the execution block of guest software (step S101). Specifically, the program monitoring unit 13 is executed on the guest software by acquiring information read into the virtual CPU provided by the virtual machine 100 and grasping the code that the guest software is going to execute. Fetch program block.

次に、情報収集部10のプログラム監視部13は、シグネチャと一致するか否かを判定する(ステップS102)。具体的には、プログラム監視部13は、ステップS101で取り出したプログラムブロックとパターンDB11に記憶されているシグネチャとをマッチングすることによって、検査を行う。一致しない場合には(ステップS102否定)、プログラム監視部13は、ゲストソフトウェアの実行ブロックを監視する処理に戻る。   Next, the program monitoring unit 13 of the information collecting unit 10 determines whether or not it matches the signature (step S102). Specifically, the program monitoring unit 13 performs inspection by matching the program block extracted in step S101 with the signature stored in the pattern DB 11. If they do not match (No at Step S102), the program monitoring unit 13 returns to the process of monitoring the execution block of the guest software.

一方、一致する場合には(ステップS102肯定)、続いて、情報収集部10のコード挿入部14が、情報収集コード(調査コード)を挿入する(ステップS103)。具体的には、コード挿入部14は、仮想マシン100が提供する仮想的なCPUに読み込まれた情報を取得してゲストソフトウェアが実行しようとしているコードを把握し、把握したコードを、ゲストソフトウェアがこれから実行するプログラムブロックが、既知の脆弱性を狙った攻撃になりえるか否かを検査する情報収集コードに入れ替え、仮想マシン100のメモリ空間(ゲストソフトウェアの実行空間)に情報収集コードを挿入する。   On the other hand, if they match (Yes at step S102), then the code insertion unit 14 of the information collection unit 10 inserts an information collection code (survey code) (step S103). Specifically, the code insertion unit 14 acquires information read by the virtual CPU provided by the virtual machine 100 to grasp the code that the guest software is going to execute, and the guest software recognizes the grasped code. The program block to be executed is replaced with information collection code for checking whether or not an attack targeting a known vulnerability can be made, and the information collection code is inserted into the memory space of the virtual machine 100 (guest software execution space). .

そして、情報収集部10のコード挿入部14は、攻撃か否かを判定する(ステップS104)。具体的には、コード挿入部14は、調査コードの実行結果が「攻撃になりえる」との判断を示すものであるか否かを判定する。「攻撃になりえる」との判断を示すものでない場合には(ステップS104否定)、プログラム監視部13において、ゲストソフトウェアの実行ブロックを監視する処理に戻る。   Then, the code insertion unit 14 of the information collection unit 10 determines whether or not it is an attack (step S104). Specifically, the code insertion unit 14 determines whether or not the execution result of the investigation code indicates a determination that “it can be an attack”. If it does not indicate a determination that “it can be an attack” (No in step S104), the program monitoring unit 13 returns to the process of monitoring the execution block of the guest software.

一方、「攻撃になりえる」との判断を示すものである場合には(ステップ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 code insertion unit 14 transmits an alert (Step S105). Specifically, the code insertion unit 14 transmits an alert to both or one of the guest software and the host software.

さらに、コード挿入部14は、運用方針によっては、攻撃を回避する(ステップS106)。具体的には、コード挿入部14は、その既知の脆弱性を狙った攻撃を回避するようなコードやデータを仮想マシン100のメモリ空間にさらに挿入して実行させることで、その脆弱性への攻撃からゲストソフトウェアを保護する。   Furthermore, the code insertion unit 14 avoids an attack depending on the operation policy (step S106). Specifically, the code insertion unit 14 further inserts code and data that avoids an attack aimed at the known vulnerability into the memory space of the virtual machine 100 and executes the code or data, thereby preventing the vulnerability. Protect guest software from attacks.

このように、実施例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 program monitoring unit 13, and if it is determined to match, the code insertion unit 14 inserts the code However, the present invention is not limited to this. Regardless of the determination by the program monitoring unit 13, a method of inserting a code in the code insertion unit 14 or a method of inserting a code appropriately in the code insertion unit 14 without performing monitoring or determination by the program monitoring unit 13 in the first place. The present invention can be similarly applied. Further, the present invention can be similarly applied to a technique in which only the monitoring and determination by the program monitoring unit 13 is performed and the information collection code is not inserted in the code insertion unit 14.

また、上記の実施例1においては、コード挿入部14が、情報収集コードとして、プログラムブロックが既知の脆弱性を狙った攻撃になりえるか否かを検査する情報収集コードを挿入する手法について説明したが、本発明はこれに限られるものではない。ゲストソフトウェアに実行させる情報収集コードであって、ゲストソフトウェアに関する情報を収集するコードであれば、いかなる情報収集コードを挿入してもよい。   Also, in the first embodiment, a method is described in which the code insertion unit 14 inserts an information collection code for inspecting whether a program block can be an attack targeting a known vulnerability as the information collection code. However, the present invention is not limited to this. Any information collection code may be inserted as long as it is an information collection code to be executed by the guest software and collects information about the guest software.

また、上記の実施例1においては、コード挿入部14が、ステップS105やステップS106において、アラートを伝達したり、攻撃を回避する手法について説明したが、これらは、運用方針などによって適宜選択されて実施されればよいものである。例えば、本発明に係る情報収集システムは、ハニーポットとして適用されることも可能である。   In the first embodiment, the code insertion unit 14 has described a technique for transmitting an alert or avoiding an attack in step S105 or step S106. However, these are appropriately selected according to an operation policy or the like. It only needs to be implemented. For example, the information collection system according to the present invention can be applied as a honeypot.

[実施例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 information collection unit 10 in the second embodiment is different from the information collection unit 10 in the first embodiment in that a snapshot data storage unit 15 and an execution control unit 16 are added. The execution control unit 16 corresponds to “snapshot acquisition unit” and “execution restart unit” described in the claims.

実施例2におけるパターンDB11は、マルウェアの特徴を表すコードについて、当該コードの一部のバイト列をパターンとして持たせたシグネチャを、一つまたは複数記憶している。具体的には、パターンDB11は、一つまたは複数のシグネチャを、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているシグネチャは、コード挿入部14による処理に利用されるなどする。   The pattern DB 11 according to the second embodiment stores one or a plurality of signatures having a part of a byte string of the code as a pattern for the code representing the characteristics of the malware. Specifically, the pattern DB 11 stores one or more signatures in advance by, for example, being registered in advance by a user of the information collection system, and the stored signature is processed by the code insertion unit 14. Used.

スナップショットデータ保存部15は、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットを記憶する。具体的には、スナップショットデータ保存部15は、実行制御部16によって取得されたスナップショットを記憶し、記憶したスナップショットは、実行制御部16によってゲストソフトウェアの実行状態が復元される処理に利用されるなどする。例えば、スナップショットデータ保存部15は、図8に示すように、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどを保存する。   The snapshot data storage unit 15 stores a snapshot of the currently executed guest software at that time. Specifically, the snapshot data storage unit 15 stores the snapshot acquired by the execution control unit 16, and the stored snapshot is used for processing in which the execution state of the guest software is restored by the execution control unit 16 And so on. For example, as shown in FIG. 8, the snapshot data storage unit 15 creates registry data 15a, disk data 15b, stack data 15c, and heap area data as a snapshot of the currently executed guest software at that time. Save 15d etc.

実行制御部16は、ユーザからのリクエストを受け付け、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットを取得したり、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させる。具体的には、実行制御部16は、ユーザからのリクエストを受け付けると、スナップショットを取得し、スナップショットデータ保存部15に記憶させる。また、実行制御部16は、コード挿入部14によってゲストソフトウェアの状態に異常がないと判定された場合などに、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させる。なお、実施例2においては、スナップショットデータ保存部15の説明にもあるように、実行制御部16が、スナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどを取得する手法について説明するが、本発明はこれに限られるものではない。実行制御部16がこれらのデータの一部を取得する手法や、全部を取得する手法などにも、本発明を同様に適用することができる。   The execution control unit 16 receives a request from the user, acquires a snapshot of the currently executed guest software at that time, restores the guest software execution state, and executes the guest software. Specifically, when receiving a request from the user, the execution control unit 16 acquires a snapshot and stores it in the snapshot data storage unit 15. In addition, the execution control unit 16 uses the snapshot stored in the snapshot data storage unit 15 when the code insertion unit 14 determines that the guest software state is normal, and the like. Restore the execution state and run the guest software. In the second embodiment, as described in the description of the snapshot data storage unit 15, the execution control unit 16 stores registry data 15a, disk data 15b, stack data 15c, heap area data 15d, and the like as snapshots. Although the acquisition method will be described, the present invention is not limited to this. The present invention can be similarly applied to a method in which the execution control unit 16 acquires a part of these data or a method in which all of the data is acquired.

実施例2におけるコード挿入部14は、例えば、ゲストソフトウェアの情報を収集する命令が記述されたコードを、仮想マシンのメモリ空間に挿入する。また、例えば、コード挿入部14は、収集したゲストソフトウェアの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。また、例えば、コード挿入部14は、コードの実行結果が「ゲストソフトウェアの状態に異常がある」との判断を示すものである場合には、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達するなどしてもよい。また、例えば、コード挿入部14は、運用方針によっては、ゲストソフトウェア上でパターンDB11のシグネチャにマッチするコンピュータ資源を削除したり、実行不可能な形にするようなコードを仮想マシンのメモリ空間にさらに挿入して実行させることで、マルウェアからゲストソフトウェアを保護するなどしてもよい。   The code insertion unit 14 according to the second embodiment inserts, for example, a code describing an instruction for collecting guest software information into the memory space of the virtual machine. For example, the code insertion unit 14 determines whether or not there is an abnormality in the state of the guest software by matching the collected guest software information with the signature stored in the pattern DB 11. In addition, for example, when the code execution result indicates that the guest software state is abnormal, the code insertion unit 14 transmits an alert to both or one of the guest software and the host software. You may do it. Further, for example, depending on the operation policy, the code insertion unit 14 deletes a computer resource that matches the signature of the pattern DB 11 on the guest software, or puts a code that cannot be executed into the memory space of the virtual machine. Furthermore, guest software may be protected from malware by inserting and executing it.

[実施例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 execution control unit 16 of the information collection unit 10 monitors an external request (step S201). Specifically, since the malware detection system operates upon a request from the user, the execution control unit 16 waits for an external request.

そして、情報収集部10の実行制御部16は、リクエストを受け付けたか否かを判定する(ステップS202)。リクエストを受け付けていない場合には(ステップS202否定)、実行制御部16は、外部からのリクエストを監視する処理に戻る。   Then, the execution control unit 16 of the information collection unit 10 determines whether a request has been received (step S202). If the request has not been accepted (No at Step S202), the execution control unit 16 returns to the process of monitoring the request from the outside.

一方、リクエストを受け付けた場合には(ステップS202肯定)、実行制御部16は、スナップショットを保存する(ステップS203)。具体的には、実行制御部16は、現在実行中のゲストソフトウェアのその時点での実行状態のスナップショットを取得し、スナップショットデータ保存部15に記憶させる。   On the other hand, when the request is accepted (Yes at Step S202), the execution control unit 16 saves the snapshot (Step S203). Specifically, the execution control unit 16 acquires a snapshot of the currently executed guest software at that time and stores it in the snapshot data storage unit 15.

続いて、情報収集部10のコード挿入部14は、情報収集コード(調査コード)を挿入する(ステップS204)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する情報収集コードを、仮想マシンのメモリ空間に挿入する。   Subsequently, the code insertion unit 14 of the information collection unit 10 inserts an information collection code (survey code) (step S204). Specifically, the code insertion unit 14 inserts an information collection code for collecting guest software information into the memory space of the virtual machine.

そして、情報収集部10のコード挿入部14は、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS205)。具体的には、コード挿入部14は、ステップS204で収集したゲストソフトウェアの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS205否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS206)、ステップS201へ戻る。   Then, the code insertion unit 14 of the information collection unit 10 determines whether there is an abnormality in the state of the guest software (step S205). Specifically, the code insertion unit 14 determines whether or not there is an abnormality in the state of the guest software by matching the guest software information collected in step S204 with the signature stored in the pattern DB 11. . When it is determined that there is no abnormality (No at Step S205), the execution control unit 16 restores the guest software execution state using the snapshot stored in the snapshot data storage unit 15, and the guest software The software is executed (step S206), and the process returns to step S201.

一方、異常があると判定された場合には(ステップS205肯定)、その後、コード挿入部14は、アラートを伝達する(ステップS207)。具体的には、コード挿入部14は、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達する。   On the other hand, if it is determined that there is an abnormality (Yes at Step S205), then the code insertion unit 14 transmits an alert (Step S207). Specifically, the code insertion unit 14 transmits an alert to both or one of the guest software and the host software.

さらに、コード挿入部14は、運用方針によっては、削除等対策を行う(ステップS208)。具体的には、コード挿入部14は、ゲストソフトウェア上でパターンDB11のシグネチャにマッチするコンピュータ資源を削除したり、実行不可能な形にするようなコードを仮想マシンのメモリ空間にさらに挿入して実行させることで、マルウェアからゲストソフトウェアを保護する。   Further, the code insertion unit 14 takes measures such as deletion depending on the operation policy (step S208). Specifically, the code insertion unit 14 deletes a computer resource that matches the signature of the pattern DB 11 on the guest software, or further inserts a code that makes an inexecutable form into the memory space of the virtual machine. Run it to protect guest software from malware.

そして、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS209)、ステップS201へ戻る。   Then, the execution control unit 16 restores the execution state of the guest software using the snapshot stored in the snapshot data storage unit 15, executes the guest software (step S209), and returns to step S201.

このように、実施例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 code insertion unit 14 in the third embodiment collects, as guest software information, a code that collects an argument when calling a specific system call, information related to a memory or a disk, and the like of the virtual machine. Insert into memory space. The program monitoring unit 13 corresponds to “special instruction monitoring means” described in the claims.

[実施例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 program monitoring unit 13 of the information collecting unit 10 monitors the calling of system calls (step S301). Specifically, since this malware detection system operates upon execution of a specific privileged instruction for invoking a guestware system call, the program monitoring unit 13 is provided by the virtual machine 100. By using information read into the virtual CPU, a special instruction executed when the guest software issues a system call is monitored, and a call to the system call from within the guest software is monitored. Specifically, when the guest software issues a system call, a special instruction is read into the virtual CPU. Then, the virtual CPU issues a signal to notify the guest software that the special instruction has been read. In issuing this signal, a function is called from a virtual CPU, and the program monitoring unit 13 monitors the call of the system call from within the guest software by monitoring this call. Note that the present invention can be similarly applied to a method in which the program monitoring unit 13 monitors whether or not a special instruction is read into a virtual CPU.

そして、情報収集部10のプログラム監視部13は、特権命令が実行されたか否かを判定する(ステップS302)。特権命令が実行されていない場合には(ステップS302否定)、プログラム監視部13は、システムコールの呼び出しを監視する処理に戻る。   Then, the program monitoring unit 13 of the information collecting unit 10 determines whether or not a privileged instruction has been executed (step S302). When the privileged instruction is not executed (No at Step S302), the program monitoring unit 13 returns to the process of monitoring the call of the system call.

一方、特権命令が実行された場合には(ステップ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 execution control unit 16 saves the snapshot (Step S303). Specifically, the execution control unit 16 acquires a snapshot of the currently executed guest software at that time and stores it in the snapshot data storage unit 15. The execution control unit 16 may acquire a part of the registry data 15a, the disk data 15b, the stack data 15c, the heap area data 15d, or the like as a snapshot.

続いて、情報収集部10のコード挿入部14は、調査コードを挿入する(ステップS304)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する調査コードを、仮想マシンのメモリ空間に挿入する。これによって、コード挿入部14は、システムコールを呼び出したプロセスやシステムコール番号、システムコール呼び出しの際の引数などの情報を収集する。   Subsequently, the code insertion unit 14 of the information collection unit 10 inserts a survey code (step S304). Specifically, the code insertion unit 14 inserts a survey code for collecting guest software information into the memory space of the virtual machine. As a result, the code insertion unit 14 collects information such as the process that called the system call, the system call number, and an argument when the system call is called.

そして、情報収集部10のコード挿入部14は、パターンマッチを行い、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS305)。具体的には、コード挿入部14は、ステップS304で収集したゲストソフトウェアの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS305否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS306)、ステップS301へ戻る。   Then, the code insertion unit 14 of the information collection unit 10 performs pattern matching and determines whether there is an abnormality in the state of the guest software (step S305). Specifically, the code insertion unit 14 determines whether or not there is an abnormality in the state of the guest software by matching the guest software information collected in step S304 with the signature stored in the pattern DB 11. . When it is determined that there is no abnormality (No at Step S305), the execution control unit 16 restores the guest software execution state using the snapshot stored in the snapshot data storage unit 15, The software is executed (step S306), and the process returns to step S301.

一方、異常があると判定された場合には(ステップS305肯定)、その後、コード挿入部14は、アラートを伝達する(ステップS307)。具体的には、コード挿入部14は、ゲストソフトウェアおよびホストソフトウェアの両方または片方にアラートを伝達する。   On the other hand, if it is determined that there is an abnormality (Yes at Step S305), then the code insertion unit 14 transmits an alert (Step S307). Specifically, the code insertion unit 14 transmits an alert to both or one of the guest software and the host software.

さらに、コード挿入部14は、運用方針によっては、対策を行う(ステップS308)。具体的には、コード挿入部14は、ゲストソフトウェア上でパターンDB11のシグネチャにマッチするコンピュータ資源を削除したり、実行不可能な形にするようなコードを仮想マシンのメモリ空間にさらに挿入して実行させることで、マルウェアからゲストソフトウェアを保護する。   Furthermore, the code insertion unit 14 takes measures depending on the operation policy (step S308). Specifically, the code insertion unit 14 deletes a computer resource that matches the signature of the pattern DB 11 on the guest software, or further inserts a code that makes an inexecutable form into the memory space of the virtual machine. Run it to protect guest software from malware.

そして、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS309)、ステップS301へ戻る。   Then, the execution control unit 16 restores the execution state of the guest software using the snapshot stored in the snapshot data storage unit 15, executes the guest software (step S309), and returns to step S301.

このように、実施例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 program monitoring unit 13 and determines that the privileged instruction is executed, the code insertion unit 14 inserts the code. However, the present invention is not limited to this. The present invention can be similarly applied to a technique in which only monitoring and determination by the program monitoring unit 13 are performed and no code is inserted in the code insertion unit 14.

[実施例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 execution control unit 16 also corresponds to “system call information acquisition means” recited in the claims.

[実施例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 program monitoring unit 13 of the information collecting unit 10 monitors the calling of system calls (step S401). Then, as in the third embodiment, the program monitoring unit 13 determines whether or not a privileged instruction has been executed (step S402). If the privileged instruction is not executed (No at Step S402), the program monitoring unit 13 returns to the process of monitoring the call of the system call.

一方、特権命令が実行された場合には(ステップS402肯定)、実行制御部16が、システムコールに係る情報を記憶部に記憶させる(ステップS403)。具体的には、実行制御部16は、システムコールに係る情報として、例えば、システムコールを呼び出したプロセスやシステムコール番号、システムコールを呼び出した際の引数やメモリ状態などを記憶させる。   On the other hand, when the privileged instruction is executed (Yes at Step S402), the execution control unit 16 stores information related to the system call in the storage unit (Step S403). Specifically, the execution control unit 16 stores, as information related to the system call, for example, a process that called the system call, a system call number, an argument when the system call is called, a memory state, and the like.

続いて、情報収集部10のプログラム監視部13は、システムコールからの復帰を監視する(ステップS404)。そして、プログラム監視部13は、システムコール終了のための特権命令が実行されたか否かを判定する(ステップS405)。特権命令が実行されていない場合には(ステップS405否定)、プログラム監視部13は、システムコールからの復帰を監視する処理に戻る。なお、プログラム監視部13は、システムコール終了のための特権命令が実行されたか否かを判定する手法ではなく、実行の権限が変更したか否かを監視して判定してもよい。   Subsequently, the program monitoring unit 13 of the information collecting unit 10 monitors the return from the system call (step S404). Then, the program monitoring unit 13 determines whether or not a privileged instruction for ending the system call has been executed (step S405). If the privileged instruction has not been executed (No at Step S405), the program monitoring unit 13 returns to the process of monitoring the return from the system call. Note that the program monitoring unit 13 may monitor and determine whether or not the execution authority has been changed, instead of a method of determining whether or not a privileged instruction for ending the system call has been executed.

一方、システムコール終了のための特権命令が実行された場合には(または、実行の権限が変化した際など、ゲストソフトウェアの権限の移行を捉えて)(ステップ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 execution control unit 16 The snapshot is saved (step S406). The execution control unit 16 may acquire a part of the registry data 15a, the disk data 15b, the stack data 15c, the heap area data 15d, or the like as a snapshot.

続いて、情報収集部10のコード挿入部14は、調査コードを挿入する(ステップS407)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する調査コードを、仮想マシンのメモリ空間に挿入する。これによって、コード挿入部14は、ゲストソフトウェアのメモリの状態等の情報を収集する。   Subsequently, the code insertion unit 14 of the information collection unit 10 inserts a survey code (step S407). Specifically, the code insertion unit 14 inserts a survey code for collecting guest software information into the memory space of the virtual machine. As a result, the code insertion unit 14 collects information such as the memory state of the guest software.

そして、情報収集部10のコード挿入部14は、パターンマッチを行い、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS408)。具体的には、コード挿入部14は、ステップS403で記憶部に記憶させたシステムコールに係る情報や、ステップS407で収集したゲストソフトウェアの情報を付加的に利用するなどして、これらの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS408否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS409)、ステップS401へ戻る。   Then, the code insertion unit 14 of the information collection unit 10 performs pattern matching and determines whether there is an abnormality in the state of the guest software (step S408). Specifically, the code insertion unit 14 additionally uses the information related to the system call stored in the storage unit in step S403 and the guest software information collected in step S407. It is determined whether or not there is an abnormality in the state of the guest software by matching the signature stored in the pattern DB 11. When it is determined that there is no abnormality (No at step S408), the execution control unit 16 restores the guest software execution state using the snapshot stored in the snapshot data storage unit 15, The software is executed (step S409), and the process returns to step S401.

一方、異常があると判定された場合には(ステップ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 code insertion unit 14 transmits an alert (step S410), or takes measures depending on the operation policy. (Step S411) The execution control unit 16 restores the execution state of the guest software using the snapshot stored in the snapshot data storage unit 15, executes the guest software (Step S412), and Step S401. Return to.

このように、実施例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 program monitoring unit 13 and determines that the privileged instruction is executed, the code is inserted. Although the method of inserting a code in the unit 14 has been described, the present invention is not limited to this. The present invention can be similarly applied to a technique in which only monitoring and determination by the program monitoring unit 13 are performed and no code is inserted in the code insertion unit 14.

また、上記の実施例4においては、情報収集システムが、プログラム監視部13において、システムコールからの復帰を監視し、システムコール終了のための特権命令が実行されたと判定した後に、コード挿入部14においてコードを挿入する手法について説明したが、本発明はこれに限られるものではない。実施例3に係る情報収集システムによる手法と組み合わせることも可能である。すなわち、プログラム監視部13において、システムコールの呼び出しを監視し、システムコール呼び出しのための特権命令が実行されたと判定した後に、まず、コード挿入部14においてコードを挿入し、その上で、システムコールからの復帰も監視し、システムコール終了のための特権命令が実行されたと判定した後にも、コード挿入部14においてコードを挿入するなど、複数回にわたってコードを挿入するなどしてもよい。   In the fourth embodiment, the information collection system monitors the return from the system call in the program monitoring unit 13 and determines that the privileged instruction for ending the system call has been executed. The method for inserting a code has been described in the above, but the present invention is not limited to this. It is also possible to combine with the method by the information collection system which concerns on Example 3. FIG. That is, the program monitoring unit 13 monitors the call of the system call, and after determining that the privileged instruction for calling the system call has been executed, first, the code insertion unit 14 inserts the code, and then the system call Even after determining that the privileged instruction for ending the system call has been executed, the code insertion unit 14 may insert a code multiple times, such as inserting a code.

[実施例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 information collecting unit 10 in the fifth embodiment is different from the information collecting unit 10 in the second to fourth embodiments in that a system call history DB 17 is added.

実施例5におけるパターンDB11は、マルウェアか否かを判断するためのマルウェアの特徴的なシステムコールシーケンスを、シグネチャとして、一つまたは複数記憶している。具体的には、パターンDB11は、一つまたは複数のシグネチャを、情報収集システムの利用者によって予め登録されるなどすることで予め記憶し、記憶しているシグネチャは、コード挿入部14による処理に利用されるなどする。   The pattern DB 11 according to the fifth embodiment stores one or more characteristic system call sequences of malware for determining whether or not it is malware as a signature. Specifically, the pattern DB 11 stores one or more signatures in advance by, for example, being registered in advance by a user of the information collection system, and the stored signature is processed by the code insertion unit 14. Used.

例えば、パターンDB11は、図13に示すようなシグネチャを予め記憶している。図13に示すシグネチャの内、『シグネチャ3』が、システムコールシーケンスのシグネチャの例である。なお、パターンDB11が記憶するシステムコールシーケンスのシグネチャには、二通りの使い方を考えることができる。一つは、危険なシステムコールのシーケンスをシグネチャとして持たせ、それと一致した時に危険と判断する手法である。もう一つは、正常状態のシステムコールのシーケンスをシグネチャとして持たせ、そのシグネチャとは異なるコールシーケンスが発生した時に危険と判断する手法である。   For example, the pattern DB 11 stores in advance a signature as shown in FIG. Among the signatures shown in FIG. 13, “signature 3” is an example of the signature of the system call sequence. Two types of usage can be considered for the signature of the system call sequence stored in the pattern DB 11. One is a technique in which a dangerous system call sequence is provided as a signature, and is judged dangerous when it is matched. The other is a method in which a sequence of system calls in a normal state is provided as a signature, and it is determined to be dangerous when a call sequence different from the signature occurs.

実施例5における実行制御部16は、実施例2〜4と同様、スナップショットを取得したり、ゲストソフトウェアの実行状態を復元させるなどする他に、ゲストソフトウェアから呼び出されたシステムコールの情報をシステムコール履歴DB17に記憶させる。   In the fifth embodiment, the execution control unit 16 obtains a snapshot and restores the execution state of the guest software, as well as the second to fourth embodiments. Store in the call history DB 17.

[実施例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 program monitoring unit 13 of the information collecting unit 10 monitors the calling of a system call (step S501). Then, as in the third embodiment, the program monitoring unit 13 determines whether or not a privileged instruction has been executed (step S502). When the privileged instruction is not executed (No at Step S502), the program monitoring unit 13 returns to the process of monitoring the call of the system call.

一方、特権命令が実行された場合には(ステップS502肯定)、実施例3と同様、実行制御部16が、スナップショットを保存する(ステップS503)。なお、実行制御部16は、スナップショットとして、レジストリデータ15a、ディスクデータ15b、スタックデータ15c、ヒープ領域データ15dなどの一部を取得しても、全部を取得してもよい。   On the other hand, when the privileged instruction is executed (Yes at Step S502), the execution control unit 16 saves the snapshot (Step S503) as in the third embodiment. The execution control unit 16 may acquire a part of the registry data 15a, the disk data 15b, the stack data 15c, the heap area data 15d, or the like as a snapshot.

そして、情報収集部10の実行制御部16は、ステップS501において呼び出されたシステムコールの情報を、システムコール履歴DB17に記憶させる(ステップS504)。   Then, the execution control unit 16 of the information collection unit 10 stores the system call information called in step S501 in the system call history DB 17 (step S504).

続いて、情報収集部10のコード挿入部14は、調査コードを挿入する(ステップS505)。具体的には、コード挿入部14は、ゲストソフトウェアの情報を収集する調査コードを、仮想マシンのメモリ空間に挿入する。これによって、コード挿入部14は、システムコールの引数情報等の情報を収集する。   Subsequently, the code insertion unit 14 of the information collection unit 10 inserts a survey code (step S505). Specifically, the code insertion unit 14 inserts a survey code for collecting guest software information into the memory space of the virtual machine. As a result, the code insertion unit 14 collects information such as argument information of the system call.

そして、コード挿入部14は、パターンマッチを行い、ゲストソフトウェアの状態に異常があるか否かを判定する(ステップS506)。具体的には、コード挿入部14は、ステップS504で記憶部に記憶させたシステムコールの情報(システムコールシーケンスなど)や、ステップS505で収集したゲストソフトウェアの情報を付加的に利用するなどして、これらの情報とパターンDB11に記憶されているシグネチャとをマッチングすることによって、ゲストソフトウェアの状態に異常があるか否かを判定する。異常がないと判定された場合には(ステップS506否定)、実行制御部16が、スナップショットデータ保存部15に記憶させていたスナップショットを利用して、ゲストソフトウェアの実行状態を復元させ、ゲストソフトウェアを実行させ(ステップS507)、ステップS501へ戻る。   Then, the code insertion unit 14 performs pattern matching and determines whether or not the guest software state is abnormal (step S506). Specifically, the code insertion unit 14 additionally uses the system call information (system call sequence or the like) stored in the storage unit in step S504 or the guest software information collected in step S505. Then, by matching these information with the signature stored in the pattern DB 11, it is determined whether or not the guest software state is abnormal. When it is determined that there is no abnormality (No at step S506), the execution control unit 16 restores the guest software execution state using the snapshot stored in the snapshot data storage unit 15, The software is executed (step S507), and the process returns to step S501.

一方、異常があると判定された場合には(ステップ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 code insertion unit 14 transmits an alert (step S508) or takes measures depending on the operation policy. (Step S509), the execution control unit 16 restores the execution state of the guest software using the snapshot stored in the snapshot data storage unit 15, and executes the guest software (Step S510). Return to.

このように、実施例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 program monitoring unit 13 and determines that the privileged instruction is executed, the code insertion unit 14 inserts the code. However, the present invention is not limited to this. The present invention can be similarly applied to a technique in which only monitoring and determination by the program monitoring unit 13 are performed and no code is inserted in the code insertion unit 14.

[他の実施例]
さて、これまで本発明の各種実施例について説明してきたが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[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.

実施例1に係る情報収集システムの概要および特徴を説明するための図である。BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a diagram for explaining an overview and characteristics of an information collection system according to a first embodiment. 実施例1における情報収集部(攻撃検知システム)の構成を示すブロック図である。It is a block diagram which shows the structure of the information collection part (attack detection system) in Example 1. FIG. パターンDBを説明するための図である。It is a figure for demonstrating pattern DB. 情報収集モジュールライブラリを説明するための図である。It is a figure for demonstrating an information collection module library. 情報収集コードを説明するための図である。It is a figure for demonstrating an information collection code. 実施例1に係る情報収集システムによる処理の手順を示すフローチャートである。5 is a flowchart illustrating a processing procedure performed by the information collection system according to the first embodiment. 実施例2における情報収集部(マルウェア検知システム)の構成を示すブロック図である。It is a block diagram which shows the structure of the information collection part (malware detection system) in Example 2. FIG. スナップショットデータ保存部を説明するための図である。It is a figure for demonstrating a snapshot data storage part. 実施例2に係る情報収集システムによる処理の手順を示すフローチャートである。12 is a flowchart illustrating a processing procedure performed by the information collection system according to the second embodiment. 実施例3に係る情報収集システムによる処理の手順を示すフローチャートである。12 is a flowchart illustrating a processing procedure performed by the information collection system according to the third embodiment. 実施例4に係る情報収集システムによる処理の手順を示すフローチャートである。10 is a flowchart illustrating a processing procedure performed by an information collection system according to a fourth embodiment. 実施例5における情報収集部(マルウェア検知システム)の構成を示すブロック図である。It is a block diagram which shows the structure of the information collection part (malware detection system) in Example 5. FIG. 実施例5におけるパターンDBを説明するための図である。It is a figure for demonstrating pattern DB in Example 5. FIG. 実施例5に係る情報収集システムによる処理の手順を示すフローチャートである。10 is a flowchart illustrating a processing procedure performed by an information collection system according to a fifth embodiment. 実施例6に係る情報収集システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information collection system which concerns on Example 6. FIG. 実施例6に係る情報収集システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information collection system which concerns on Example 6. FIG.

符号の説明Explanation of symbols

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 Virtual Machine 10 Information Collection Unit 11 Pattern DB
DESCRIPTION OF SYMBOLS 12 Information collection module library 12a Information collection module 12b Guest software library search part 12c Guest software library execution part 13 Program monitoring part 14 Code insertion part 15 Snapshot data preservation | save part 15a Registry data 15b Disk data 15c Stack data 15d Heap area data 16 Execution Control unit 17 System call history DB
20 Virtual resources 30 Guest OS
31 Application 200 Host OS

Claims (14)

コンピュータのハードウェア上で動作するOSであるホストOSにインストールされて仮想的に作り出されたコンピュータである仮想マシンに、当該仮想マシンが提供する仮想的なハードウェア上で動作するOSであるゲストOSがインストールされている構成において、当該ゲストOSおよび/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、
前記情報の収集対象がゲスト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:
前記コード挿入手段は、前記情報収集コードとして、前記ゲストOS内または前記アプリケーション内のライブラリおよび/またはプログラムを利用して前記情報を収集する命令が記述された情報収集コードを、前記メモリ空間に挿入することを特徴とする請求項1に記載の情報収集システム。   The code insertion means inserts, as the information collection code, an information collection code in which an instruction to collect the information using a library and / or program in the guest OS or the application is described in the memory space The information collecting system according to claim 1, wherein: 前記コード挿入手段は、前記実行結果収集手段によって収集された前記情報から前記ゲストOSまたは前記アプリケーションに異常性が確認された際には、前記情報収集コードとして、当該異常性を解決する命令が記述された情報収集コードを、前記メモリ空間にさらに挿入することを特徴とする請求項1または2に記載の情報収集システム。   The code insertion means describes an instruction for resolving the abnormality as the information collection code when abnormality is confirmed in the guest OS or the application from the information collected by the execution result collection means. The information collection system according to claim 1, wherein the information collection code thus inserted is further inserted into the memory space. 前記情報収集手段は、
所定のバイト列を予め記憶しているバイト列記憶手段と、
前記仮想マシンが提供する仮想的な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に記載の情報収集システム。   The code insertion means, as the information collection code, for a system call monitored by the special instruction monitoring means, any one of a process that issued the system call, a system call number, and an argument passed to the system call, 6. The information collecting system according to claim 5, wherein an information collecting code in which an instruction for collecting a plurality of instructions is described is inserted into the memory space. 前記情報収集手段は、
前記特殊命令監視手段によって監視されたシステムコールを発行した際の情報を取得するシステムコール情報取得手段をさらに備え、
前記実行結果収集手段は、前記システムコール情報取得手段によって取得された情報をさらに用いて前記情報を収集することを特徴とする請求項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および/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、
前記情報の収集対象がゲスト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および/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集システムであって、
前記情報の収集対象がゲスト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および/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集方法であって、
前記情報の収集対象がゲスト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および/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集方法であって、
前記情報の収集対象がゲスト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および/または当該ゲストOSにインストールされているアプリケーションに関する情報を収集する情報収集方法であって、
前記情報の収集対象がゲスト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.
JP2007192352A 2007-07-24 2007-07-24 Information collection system and information collection method Active JP4938576B2 (en)

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)

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

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

Patent Citations (5)

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

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