JP2015166952A - Information processor, information processing monitoring method, program and recording medium - Google Patents

Information processor, information processing monitoring method, program and recording medium Download PDF

Info

Publication number
JP2015166952A
JP2015166952A JP2014041171A JP2014041171A JP2015166952A JP 2015166952 A JP2015166952 A JP 2015166952A JP 2014041171 A JP2014041171 A JP 2014041171A JP 2014041171 A JP2014041171 A JP 2014041171A JP 2015166952 A JP2015166952 A JP 2015166952A
Authority
JP
Japan
Prior art keywords
instruction
access
kernel
information processing
evaluation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014041171A
Other languages
Japanese (ja)
Inventor
順子 杉中
Junko Suginaka
順子 杉中
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2014041171A priority Critical patent/JP2015166952A/en
Publication of JP2015166952A publication Critical patent/JP2015166952A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To prevent an illegal program from entering a kernel even when resources are accessed through execution of the illegal program, by detecting such access.SOLUTION: A virtual machine monitor 32 includes: a hook processing unit 322 that hooks and exits issuance of a Syscall order to a kernel for making a processing request to resources; a correctness evaluation unit 325 that evaluates correctness of the Syscall order hooked by the hook processing unit 322; and a processing unit 326 that issues an order for processing corresponding to an evaluation result.

Description

本発明は、プロセッサが実行する情報処理動作を監視する技術に関する。   The present invention relates to a technique for monitoring an information processing operation executed by a processor.

昨今、不正かつ有害な動作を行う意図で作成された悪意のあるプログラム(以下、不正プログラム)によるファイルの書き換えやシステムの設定変更等によってコンピュータのセキュリティーが大きく損われている。不正プログラムの挙動は、外部からコンピュータ内のメモリに侵入した後、アプリケーションプログラム(AP)の実行に伴うユーザモードからカーネル空間のリソースへのアクセスに便乗して特権レベル(リング0)を取得し、以後、リソースの制御を支配することで、意図した不正行為を実行可能にする。今日、不正プログラムの実行を監視し、不正動作を規制する各種の対応ソフトウェアが提案されている。   In recent years, the security of a computer has been greatly impaired by rewriting a file or changing a system setting by a malicious program (hereinafter referred to as a malicious program) created with the intention of performing an illegal and harmful operation. The behavior of the malicious program is to obtain the privilege level (ring 0) by intruding on the access to the kernel space resource from the user mode accompanying the execution of the application program (AP) after entering the memory in the computer from the outside. Thereafter, the intended fraud can be executed by controlling the resource control. Today, various types of compatible software that monitors the execution of malicious programs and regulates illegal operations have been proposed.

特許文献1には、APIの利用制限を図るべく、アプリケーションの起動を検出するステップと、起動されたアプリケーションから発行されたリソースに対する処理要求を一時保留するステップと、起動されたアプリケーションが正規のアプリケーションであるか否かを認証するステップと、起動されたアプリケーションの認証結果が成功の場合にのみ、前記一時保留した処理要求による処理を許可するステップとを備えて、リソースの情報漏洩防止を図るアプリケーションの監視方法が記載されている。   Japanese Patent Application Laid-Open No. 2004-151867 discloses a step of detecting activation of an application, a step of temporarily suspending a processing request for a resource issued from the activated application, and a case where the activated application is a regular application in order to limit use of the API. An application for preventing information leakage of resources, comprising: a step of authenticating whether or not the application is activated; and a step of permitting processing based on the temporarily suspended processing request only when the authentication result of the activated application is successful The monitoring method is described.

特許文献2には、コンピュータ上で実行されるアプリケーションがハードディスクHDD等の記憶装置に記憶された情報にアクセスする時点で、オペレーティングシステム(OS)のフック機能を利用してこのアプリケーションをフックし、予め設定されたアクセス許容条件を満たすかどうかを判定部によって判定し、ウイルス等の不正なアクセスと判定された場合には前記記憶装置に記憶された情報のアプリケーションへの受け渡しを禁止するコンピュータの情報漏洩防止システムが記載されている。   In Patent Document 2, when an application executed on a computer accesses information stored in a storage device such as a hard disk HDD, the application is hooked using an operating system (OS) hook function in advance. The determination unit determines whether or not the set access permission condition is satisfied, and if it is determined that the virus or the like is unauthorized access, the information leakage of the computer prohibiting the transfer of the information stored in the storage device to the application A prevention system is described.

特許文献3には、仮想マシンモニタ(VMM)をコンピュータ上で実行することで、複数のオペレーションシステム(OS)を、それぞれゲストの仮想マシン(VM)として独立的に実行させることができ、かつVMのゲストソフトウェアの挙動を監視する技術が記載されている。すなわち、VM動作中において特権を持つ、あるフォールトイベントが生じた場合、あるいはゲストソフトウェアが、特権(リング0)を持つリソースへのアクセスを試みた場合、プロセッサの制御をVMMへ遷移させるようにしている(VM終了と称する)。このVM終了に続いて、制御が遷移されたVMMに様々な処理を実行させ、その後、制御をゲストソフトウェアへ戻す(VMエントリ)ことができるようにしている。このとき、プロセッサは、VMMにより指定された、VMCS内に記憶された特権レベル終了基準に基づいてVM終了を生じさせるべきか否かを決定するために、ゲストのVMの現在の特権レベルを特権レベル監視ロジック(PLML)で評価させ、次いで現在のゲスト特権レベルが特権レベル終了基準に合うことをPLMLが決定すると、処理ロジックは、ゲストソフトウェアからVMMへのVM終了を行うようにしている。   In Patent Document 3, a virtual machine monitor (VMM) is executed on a computer, so that a plurality of operation systems (OS) can be independently executed as guest virtual machines (VMs). A technique for monitoring the behavior of guest software is described. That is, when a certain fault event with privilege occurs during VM operation, or when the guest software tries to access a resource with privilege (ring 0), the control of the processor is shifted to the VMM. (Referred to as VM termination). Subsequent to this VM termination, the VMM to which control has been transferred is caused to execute various processes, and thereafter control can be returned to the guest software (VM entry). At this time, the processor privileged the current privilege level of the guest VM to determine whether VM termination should occur based on the privilege level termination criteria stored in the VMCS specified by the VMM. If the level monitoring logic (PLML) evaluates and then PLML determines that the current guest privilege level meets the privilege level exit criteria, the processing logic is responsible for VM termination from the guest software to the VMM.

特開2003−108253号公報JP 2003-108253 A 特開2007−140798号公報JP 2007-140798 A 特開2006−24207号公報JP 2006-24207 A

特許文献1に記載された、リソースの情報漏洩防止を図るためのアプリケーション監視方法では、フックを行うフィルタモジュール及び認証モジュールがアプリケーションと同一プロセス空間に設けられた構成であるため、これらモジュールによるフック動作及び認証動作の両信頼性に大きな問題がある。また、フックされたアプリケーションと予め登録されているアプリケーションとのハッシュ値同士を照合によって認証し、この認証が不成功の場合、当該アプリケーションを強制終了又は管理者に通知するようにしているため、コンピュータの動作が停止してしまう場合があるという問題がある。   In the application monitoring method for preventing information leakage of resources described in Patent Document 1, since the filter module and the authentication module for hooking are provided in the same process space as the application, the hook operation by these modules is performed. And there is a big problem in both reliability of authentication operation. In addition, since the hash values of the hooked application and the pre-registered application are authenticated by collation, and this authentication is unsuccessful, the application is forcibly terminated or notified to the administrator. There is a problem that the operation of may stop.

特許文献2に記載された情報漏洩防止システムは、ファイルシステムの入出力に関する機能を対象とするもので、アクセス許容条件として、コンピュータのユーザインタフェースを介して入力される、ファイルデータの書き込みなどの操作を表すIOタイプ、アプリケーション名、データ・ファイル名、実行プログラムの実行制約条件(日時、範囲等)などの所定のチェック項目を活用し、これによってユーザの設定によりファイルシステム自身にウイルスに対する監視機能と判断機能を保持させるものである。従って、ファイルデータの読み出しと関連せず、ユーザ空間からカーネル空間のリソースへアクセスするプロセス全般に対して適切な監視を行うには限界がある。   The information leakage prevention system described in Patent Document 2 is intended for functions related to input / output of a file system. As an access permission condition, an operation such as writing of file data input via a computer user interface is performed. By utilizing predetermined check items such as IO type, application name, data file name, execution constraint condition (date, range, etc.) of the execution program, the file system itself has a virus monitoring function according to user settings. The judgment function is retained. Therefore, there is a limit to appropriately monitoring the entire process of accessing kernel space resources from the user space without relating to reading of file data.

また、特許文献3に記載された発明は、VM終了の判断が現在の特権レベルを基準としたものであり、しかも不正プログラムのハードウェア資源への侵入プロセスに対する対策は示唆されていない。   Further, the invention described in Patent Document 3 is based on the current privilege level for determining whether or not to end a VM, and does not suggest a countermeasure against an intrusion process of a malicious program into hardware resources.

本発明は、上記に鑑みてなされたもので、リソースに対する処理要求のためのカーネルへのアクセス命令を検知し、当該アクセス命令の正否を評価し、その評価結果に応じた処置の命令を発行する情報処理装置、情報処理監視方法、プログラム、及び記録媒体を提供することにある。   The present invention has been made in view of the above, and detects an access instruction to the kernel for a processing request for a resource, evaluates whether the access instruction is correct, and issues a treatment instruction according to the evaluation result. An information processing apparatus, an information processing monitoring method, a program, and a recording medium are provided.

本発明に係る情報処理装置は、リソースに対する処理要求のためのカーネルへのアクセス命令の発行を検知する検知手段と、前記検知手段によって検知された前記アクセス命令の正否を評価する評価手段と、評価結果に応じた処置の命令を発行する処置手段とを備えたものである。また、かかる構成を各手段としてプロセッサを機能させるプログラム、記録媒体とし、さらに情報処理監視方法としたものである。   An information processing apparatus according to the present invention includes: a detection unit that detects issuance of an access instruction to a kernel for a processing request for a resource; an evaluation unit that evaluates whether the access instruction detected by the detection unit is correct; And a treatment means for issuing a treatment instruction according to the result. In addition, a program and a recording medium for causing a processor to function as each means are used as an information processing monitoring method.

これらの発明によれば、リソースに対する処理要求のためのカーネルへのアクセス命令が発行されると、検知手段によってこのアクセス命令が検知される。検知は、特権命令違反や仮想マシンモニタを利用する方法がある。検知手段によって検知されたアクセス命令は、評価手段によって正否が評価される。評価は、不正プログラムの可能性に関連する方法で行われる。そして、処置手段によって、評価結果に応じた処置の命令が発行される。評価結果とは、評価が正当な場合と不当な場合とを想定しており、いずれの場合にも、処置手段によって新たに命令を発行するようにし、発行元からの原アクセス命令を不使用としている。従って、不正プログラムのカーネルを介してのリソースへの侵入、さらに潜伏が阻止される。   According to these inventions, when an access instruction to the kernel for a processing request for a resource is issued, this access instruction is detected by the detecting means. The detection includes a violation of privileged instructions and a method using a virtual machine monitor. The access command detected by the detection means is evaluated for correctness by the evaluation means. Evaluation is done in a way that relates to the potential for malware. Then, a treatment instruction according to the evaluation result is issued by the treatment means. The evaluation result assumes both when the evaluation is valid and when it is invalid. In either case, a new instruction is issued by the treatment means, and the original access instruction from the issuer is not used. Yes. Therefore, intrusion of resources through the kernel of the malicious program and further hiding are prevented.

また、前記アクセス命令を無効にする無効手段を備えることが好ましい。検知されたアクセス命令の内容を変更したり、そのままアクセスさせた直後に元に書き直したりする方法も考えられる(請求項1に含まれる態様)が、より好ましくは、無効手段によって原アクセス命令を無効にすることで、不正プログラムの感染の危険をより抑止するようにしている。   Further, it is preferable to provide invalidation means for invalidating the access command. Although the method of changing the content of the detected access instruction or rewriting it immediately after being accessed as it is can be considered (the aspect included in claim 1), more preferably, the original access instruction is invalidated by invalidating means. By doing so, the risk of malware infection is further suppressed.

また、仮想マシンの動作を監視する仮想マシンモニタを含み、前記検知手段、前記評価手段及び前記処置手段は、前記仮想マシンモニタに備えられ、前記検知手段は、前記アクセス命令が前記仮想マシンから発行される時点で制御を前記仮想マシンモニタに遷移させることが好ましい。この構成によれば、仮想マシンからの前記アクセス命令を仮想マシンモニタで監視するようにしたので、仮想マシンのカーネルを特権命令を変更することなくそのままロードして実行させることが可能となる。   A virtual machine monitor that monitors the operation of the virtual machine, wherein the detection unit, the evaluation unit, and the treatment unit are provided in the virtual machine monitor, and the detection unit issues the access command from the virtual machine; It is preferable to shift the control to the virtual machine monitor at the time of being performed. According to this configuration, since the access instruction from the virtual machine is monitored by the virtual machine monitor, the kernel of the virtual machine can be loaded and executed as it is without changing the privileged instruction.

また、前記アクセス命令を無効にする無効手段が、前記仮想マシンモニタに備えられることが好ましい。この構成によれば、原アクセス命令を無効にすることで、不正プログラムの感染の危険がより抑止される。   It is preferable that invalid means for invalidating the access command is provided in the virtual machine monitor. According to this configuration, by invalidating the original access instruction, the risk of unauthorized program infection is further suppressed.

また、前記検知手段は、前記アクセス命令を無効オペコード違反として検知することが好ましい。この構成によれば、問題となるアクセス命令が確実に検知可能となる。   Moreover, it is preferable that the detection means detects the access instruction as an invalid opcode violation. According to this configuration, it is possible to reliably detect a problem access instruction.

また、前記アクセス命令は、シスコール命令であり、前記評価手段は、前記シスコール命令を構成するAPIに関する情報との照合に基づいて正否を評価することが好ましい。この構成によれば、アプリケーションプログラムからリソースへのアクセスを可能にするシスコール(Syscall)命令に注目して検知し、シスコールを構成するAPI(Application Programming Interface)に関する情報、例えば属性、格納場所、出典等を参照情報等と照合することで正否評価するので、不正なプログラムか否かが適正に評価される。   Further, it is preferable that the access instruction is a syscall instruction, and the evaluation unit evaluates whether the access instruction is correct or not based on collation with information related to an API constituting the syscall instruction. According to this configuration, information relating to an API (Application Programming Interface) that configures the syscall, such as attributes, storage location, and source, is detected by paying attention to a syscall instruction that allows the application program to access the resource. Therefore, it is evaluated whether the program is an unauthorized program.

また、前記処置手段は、前記評価手段が前記アクセス命令を正当と判断した場合、前記アクセス命令と同一の内容を前記カーネルへ発行し、前記評価手段が前記アクセス命令を不当と判断した場合、前記アクセス命令をスルーする命令を前記カーネルへ発行するか、又は前記アクセス命令をスキップする命令を前記アクセス命令の発行元に戻すことが好ましい。この構成によれば、アクセス命令が正当、不当いずれの場合であっても、処置手段によって新たに命令を作成するので、不正プログラムの感染の危険が抑止される。   Further, when the evaluation means determines that the access instruction is valid, the processing means issues the same content as the access instruction to the kernel, and when the evaluation means determines that the access instruction is illegal, Preferably, an instruction that passes through the access instruction is issued to the kernel, or an instruction that skips the access instruction is returned to the issuer of the access instruction. According to this configuration, even if the access command is valid or illegal, a new command is created by the treatment means, so that the risk of unauthorized program infection is suppressed.

本発明によれば、不正プログラムの実行によってリソースがアクセスされる場合であっても当該アクセスを検知して、不正プログラムのカーネルを介してのリソースへの侵入を阻止することができる。   According to the present invention, even when a resource is accessed by executing a malicious program, the access can be detected and the malicious program can be prevented from entering the resource through the kernel.

本発明に係る情報処理装置の一実施形態を示す構成図である。It is a block diagram which shows one Embodiment of the information processing apparatus which concerns on this invention. 図1の情報処理装置が仮想マシンに適用された場合の機能構成図の一例である。FIG. 2 is an example of a functional configuration diagram when the information processing apparatus of FIG. 1 is applied to a virtual machine. 監視処理の手順を示す説明図である。It is explanatory drawing which shows the procedure of a monitoring process. VMMが実行する監視ソフトウェアの一例を示す機能構成図である。It is a functional block diagram which shows an example of the monitoring software which VMM performs. 起動処理の一例を示すフローチャートである。It is a flowchart which shows an example of starting processing. Syscall監視処理の一例を示すフローチャートである。It is a flowchart which shows an example of a Syscall monitoring process. MSR監視処理の一例を示すフローチャートである。It is a flowchart which shows an example of a MSR monitoring process. ログ処理の一例を示すフローチャートである。It is a flowchart which shows an example of a log process. 環境監視処理の一例を示すフローチャートである。It is a flowchart which shows an example of an environmental monitoring process.

図1は、本発明に係る情報処理装置の一実施形態を示す構成図である。本発明が適用される情報処理装置1としては、コンピュータを内蔵するサーバ装置、汎用パーソナルコンピュータ、携行用の情報処理端末等、更にはネットワークを介して通信する機能を備えた各種の情報処理装置を含む。   FIG. 1 is a configuration diagram showing an embodiment of an information processing apparatus according to the present invention. The information processing apparatus 1 to which the present invention is applied includes a server apparatus incorporating a computer, a general-purpose personal computer, a portable information processing terminal, and various information processing apparatuses having a function of communicating via a network. Including.

情報処理装置1は、マイクロコンピュタで構成され、プロセッサとしてのCPU(Central Processing Unit)11を含むチップセットとしてのハードウェア部(HW)10を備える。CPU10は、バスBAを介してフラッシュROM(Read Only Memory)21とハードディスクドライブ(HDD)22とを含む補助記憶装置20、RAM(Random Access Memory)30、入力部40、出力部50、及び必要に応じて設けられるログ記憶部60と接続されている。   The information processing apparatus 1 is configured by a microcomputer, and includes a hardware unit (HW) 10 as a chip set including a CPU (Central Processing Unit) 11 as a processor. The CPU 10 includes an auxiliary storage device 20 including a flash ROM (Read Only Memory) 21 and a hard disk drive (HDD) 22, a RAM (Random Access Memory) 30, an input unit 40, an output unit 50, and necessary via a bus BA. It is connected to a log storage unit 60 provided accordingly.

フラッシュROM21は、BIOS(Basic Input/Output System)を格納する。HDD22は、各種プログラム及び必要なデータ類を格納する。本実施形態では、情報処理装置1を仮想マシンに適用した例で説明する。HDD22に格納される各種プログラムは、図2に示すように、ハードウェア部(HW)10と、RAM30に読み出(ロード)された機能を表したソフトウェア(SW)とを備える仮想マシン環境を構築するのに必要な各プログラム及びデータを含む。詳細は図2において説明する。   The flash ROM 21 stores a BIOS (Basic Input / Output System). The HDD 22 stores various programs and necessary data. In the present embodiment, an example in which the information processing apparatus 1 is applied to a virtual machine will be described. As shown in FIG. 2, various programs stored in the HDD 22 construct a virtual machine environment including a hardware unit (HW) 10 and software (SW) representing functions read (loaded) into the RAM 30. Each program and data necessary to do this are included. Details will be described with reference to FIG.

RAM30は、情報処理装置1が起動する際に補助記憶装置20に格納されているプログラム等がロードされると共に、処理途中の情報が一時的に格納される。情報処理装置1は、補助記憶装置20に格納されているプログラム等がRAM30にロードされ、CPU11によって実行されることで、図4に示すように各種の処理実行部として機能する。   The RAM 30 is loaded with a program or the like stored in the auxiliary storage device 20 when the information processing apparatus 1 is activated, and temporarily stores information being processed. The information processing apparatus 1 functions as various processing execution units as shown in FIG. 4 when a program or the like stored in the auxiliary storage device 20 is loaded into the RAM 30 and executed by the CPU 11.

入力部40は、テンキー等を備えたキーボードやマウス、タッチパネル等を含み、所要の情報の入力や処理の指示を行うものである。出力部50は、画像を表示する表示部を想定している。なお、出力部50としては、プリンタ部やインターネット等のネットワークに接続して情報の授受を行う通信部等でもよく、更にこれらが併設されたものでもよい。ログ記憶部60は、後述するように、情報処理装置1の動作中において発生する、リソースに対する処理要求である特権命令によるアクセス(Syscall、Sysenter、コールゲート等)の履歴(プログラム)及び、かかる命令に関する処理内容のログを経時的に記録する。   The input unit 40 includes a keyboard, a mouse, a touch panel, and the like provided with a numeric keypad and the like, and inputs required information and instructs processing. The output unit 50 is assumed to be a display unit that displays an image. The output unit 50 may be a printer unit, a communication unit that is connected to a network such as the Internet, and exchanges information. As will be described later, the log storage unit 60 has a history (program) of access (Syscall, Sysenter, call gate, etc.) by a privileged instruction that is a processing request for a resource, which occurs during the operation of the information processing apparatus 1, and the instruction. A log of the processing contents related to is recorded over time.

図2は、情報処理装置1が仮想マシンに適用された場合の機能構成図の一例を示すもので、CPU11を含むハードウェア部(HW)10と、RAM30にロードされたソフトウェア部(SW)とで構成される。   FIG. 2 shows an example of a functional configuration diagram when the information processing apparatus 1 is applied to a virtual machine. A hardware unit (HW) 10 including a CPU 11 and a software unit (SW) loaded in the RAM 30 are shown. Consists of.

ハードウェア部10は、プロセッサとしてのCPU11の他、仮想化支援技術12(VT)と、RAM(Random Access Memory)等から構成される仮想マシン毎の制御機構であるVMCS(Virtual Machine ControlStructure)13と、RAMからなるEPT(Extended Page Table)14とを備える。また、ハードウェア部10は、現在のCPU11の状態を表すフラグレジスタやMSR(Model Specific Register)1111、データ格納用の汎用レジスタ1112の他、メモリのアドレス指定等に関係するインデックスレジスタや特殊レジスタ、メモリ管理方式に関係するセグメントレジスタ等を備えたレジスタ群111を有する。レジスタ群111には、前記のようにCPU11の動作状態、動作指示を示すフラグやデータ等が設定される。   The hardware unit 10 includes a CPU 11 as a processor, a virtualization support technology 12 (VT), a VMCS (Virtual Machine Control Structure) 13 which is a control mechanism for each virtual machine configured by a RAM (Random Access Memory) and the like. And an EPT (Extended Page Table) 14 comprising a RAM. The hardware unit 10 includes a flag register indicating the current state of the CPU 11, an MSR (Model Specific Register) 1111, a general-purpose register 1112 for storing data, an index register or a special register related to memory addressing, It has a register group 111 including segment registers related to the memory management system. In the register group 111, as described above, the operation state of the CPU 11, flags and data indicating operation instructions are set.

ソフトウェア部(SW)は、1つ以上のゲストOS(ゲストソフトウェア)である仮想マシンVM31と、ホストOS(ホストソフトウェア)である仮想マシンモニタVMM32とを備える。なお、図2では仮想マシンVM、VM−2のように2つ示しているが、以降では仮想マシンVM31を代表にして説明する。   The software unit (SW) includes a virtual machine VM31 that is one or more guest OSs (guest software) and a virtual machine monitor VMM32 that is a host OS (host software). In FIG. 2, two virtual machines VM and VM-2 are shown, but the following description will be made with the virtual machine VM31 as a representative.

ホストソフトウェアであるVMM32は、補助記憶装置20内のHDD22に格納されており、情報処理装置1の起動を受けてHDD22からRAM30の所定領域(領域A、図3参照)にロードされる。VMM32には、本発明に係る監視ソフトウェア(図3参照)が含まれ、VMM32のロードに併せてロードされる。仮想マシンであるVM31のゲストソフトウェアは、ロードされたVMM32が起動されて、それらの管理下でRAM30の所定領域にロードされる。VM31のロード時には、VM31のゲストソフトウェアを動作させるためのGDT(Global Descriptor Table)、IDT(InterruptDescriptor Table)、さらにGDTからのリニアアドレスを物理アドレスに変換するPTE(Page Table Entry)等を含むシステムテーブル31Aが作成される。   The VMM 32 that is host software is stored in the HDD 22 in the auxiliary storage device 20, and is loaded from the HDD 22 to a predetermined area (area A, see FIG. 3) from the HDD 22 upon activation of the information processing apparatus 1. The VMM 32 includes monitoring software according to the present invention (see FIG. 3), and is loaded together with the loading of the VMM 32. The guest software of the VM 31 that is a virtual machine is loaded into a predetermined area of the RAM 30 under the management of the loaded VMM 32. When loading the VM 31, a system table including a GDT (Global Descriptor Table) for operating the guest software of the VM 31, an IDT (Interrupt Descriptor Table), and a PTE (Page Table Entry) for converting a linear address from the GDT into a physical address. 31A is created.

VM31は、ゲストソフトウェアとして、図3に示すようにオペレーティングシステムOS(主にカーネル(Kernel))311及びカーネル311の環境下で動作する各種のアプリケーションプログラムであるAP(1)312〜AP(n)313を含む。カーネル311は、図3に示すようにRAM30の領域Bに格納される。さらに、AP(1)312〜AP(n)313からOS(カーネル)311へのアクセスを実行するための関数であるAPI(Application Programming Interface)の動的なリストであるダイナミックリンクライブラリdll(dynamic link library)(API)314を備える。AP(1)312〜AP(n)313及びdll(API)314は、図3に示すようにRAM30の領域Cに格納される。dll(API)314で作成された、リソースへの処理要求の際の特権レベル0でのカーネル311に対して発行されるAPI構造をSyscall命令という。   As shown in FIG. 3, the VM 31 is an operating system OS (mainly a kernel) 311 and various application programs that operate under the environment of the kernel 311 as guest software, AP (1) 312 to AP (n). 313 is included. The kernel 311 is stored in the area B of the RAM 30 as shown in FIG. Furthermore, a dynamic link library dll (dynamic link) which is a dynamic list of API (Application Programming Interface) which is a function for executing access from the AP (1) 312 to AP (n) 313 to the OS (kernel) 311. library) (API) 314. AP (1) 312 to AP (n) 313 and dll (API) 314 are stored in the area C of the RAM 30 as shown in FIG. The API structure issued by the dll (API) 314 and issued to the kernel 311 at the privilege level 0 at the time of processing request to the resource is called a Syscall instruction.

なお、APIとは、複数のプログラムが共通に利用できる種々の機能(ソフトウェア)の呼び出し時の手順やデータ形式などを定めた仕様をいう。dll(API)とは、モジュール化して実装されたAPIを、動的なリンクによって実行時にプログラムの結合を行うようにした共有ライブラリをいう。   The API is a specification that defines procedures and data formats for calling various functions (software) that can be commonly used by a plurality of programs. dll (API) refers to a shared library in which programs implemented in a modular manner are combined at the time of execution by dynamic linking.

図4は、VMM32が実行する監視ソフトウェアの一例を示す機能構成図である。VMM32は、RAM30にロードされたプログラム及びハードウェアによる処理を実行することによって、ロード処理部321、フック処理部322、モード切替部323、フック内容分析部324、正否評価部325、処置部326、環境監視部327、及びログ処理部328として機能する。   FIG. 4 is a functional configuration diagram illustrating an example of monitoring software executed by the VMM 32. The VMM 32 executes processing by a program and hardware loaded in the RAM 30, thereby executing a load processing unit 321, a hook processing unit 322, a mode switching unit 323, a hook content analysis unit 324, a correctness evaluation unit 325, a treatment unit 326, It functions as an environment monitoring unit 327 and a log processing unit 328.

ロード処理部321は、HDD22からRAM30にロードされたMBR(Master Boot Record)によってRAM30にロードされたVMM32のホストソフトウェアが起動して、VMM32環境の設定と、カーネル311等のロードの指示、及びロード中の監視を行う。上記において、VMM32はRAM30の領域Aにロードされる際に自己のシステムテーブルを作成し、そのうちのGDTやPTEに高い特権レベル0(リング0)の設定を行う。また、VMM32は、通常と同様に、すなわちカーネル311を特権レベル0(リング0)でロードさせ、AP(1)312〜AP(n)313及びdll314を特権レベル3(リング3)でロードさせる。さらに、ワーク領域となる物理アドレスもVMM32のロード領域以外の、それぞれの領域B、C内に設定する。   The load processing unit 321 starts up the host software of the VMM 32 loaded into the RAM 30 by the MBR (Master Boot Record) loaded from the HDD 22 into the RAM 30, sets the VMM 32 environment, loads the kernel 311, etc., and loads Monitor inside. In the above, the VMM 32 creates its own system table when it is loaded into the area A of the RAM 30, and sets a high privilege level 0 (ring 0) for GDT and PTE. Further, the VMM 32 loads the kernel 311 at the privilege level 0 (ring 0), and loads the AP (1) 312-AP (n) 313 and dll 314 at the privilege level 3 (ring 3) as usual. Furthermore, the physical address that becomes the work area is also set in each of the areas B and C other than the load area of the VMM 32.

VMM32は、後述する各種の機能を実行するソフトウェア及びデータ類を備え、レジスタ群111及びVMCS13のデータ領域を利用してVM31の動作を制御する。より具体的には、VMM32は、概ね、(1)ゲストソフトウェアをVM31として実行するモードへの遷移プログラム(及び復帰プログラム)の設定、(2)CPU11の制御をVMM32に渡してVMXrootモードとするExit命令、逆にCPU11の制御をVM31に渡してVMXnon−rootモードとするEntry命令をVT12にセットする処理、(3)VM31が実行する各種のゲストソフトウェア中の、仮想化に影響のある問題命令(フォールトイベント)、その他の例外や割込対象となる命令等をそれぞれ各フック対象とするためのデータのレジスタ群111への設定、(4)チップセット内のレジスタ群111(例えば命令ポインタEIP(InstructionPointer)やMSR1111等)に書き込まれるVMM32、VM31動作時のレジスタ内容(状態を表すフラグや値)及びVM31動作時の物理アドレス−物理アドレスの変換テーブル内容であってEPT14に書き込まれる内容を、VMXrootモードとVMXnon−rootモードとの切り替え毎に、VMCS13内の対応する領域にセーブとロード(なお、ロードとはCPU11のレジスタ群111等への書き込み)とを行わせる(なお、MSR1111へのセーブとロードとはレジスタ群111のみで行われる。)プログラムの処理、(5)VM31の動作中にVMCS13による、前記(3)で設定した各命令の発行の有無の監視機能のVT12への設定を行う機能を備える。   The VMM 32 includes software and data for executing various functions to be described later, and controls the operation of the VM 31 using the register group 111 and the data area of the VMCS 13. More specifically, the VMM 32 generally (1) sets the transition program (and return program) to the mode in which the guest software is executed as the VM 31, and (2) passes the control of the CPU 11 to the VMM 32 and enters the VMXroot mode. Instruction, conversely, the process of passing the control of the CPU 11 to the VM 31 and setting the Entry instruction in the VMX non-root mode in the VT 12, (3) the problem instruction that affects the virtualization in the various guest software executed by the VM 31 ( (Fault event), other exceptions, instructions to be interrupted, etc. are set in the register group 111 for each hook target. (4) Register group 111 in the chipset (for example, instruction pointer EIP (InstructionPointer ), MSR1111, etc.) The register contents (flags and values indicating the state) during 31 operation and the physical address-physical address conversion table contents during VM 31 operation and the contents written in the EPT 14 are changed every time the VMXroot mode and the VMXnon-root mode are switched. , Saving and loading (corresponding to loading to the register group 111 of the CPU 11) is performed in the corresponding area in the VMCS 13 (note that saving and loading to the MSR 1111 are performed only by the register group 111. ) Program processing, and (5) The VMCS 13 has a function of setting to the VT 12 the monitoring function of whether or not each command set in (3) is issued by the VMCS 13 during the operation of the VM 31.

VMCS13は、Entry/Exit 時のレジスタ群111、EPT14等の内容を保持したり、振る舞いを制御したりするためのデータ構造体である。VMCS13内のゲスト側のリスト131には、前記(3)で設定した内容、すなわちExit原因に該当する照合用データが全て設定されている。Exit原因としては、各種の例外、割込、無効オペコード違反の発生等がある。本実施形態では、前述のリソースへの処理要求を発行する特権リング0でのアクセス、ここではSyscall命令は、無効オペコード違反(Invalid Opcode Fault)として設定している。無効オペコード違反とは、例えば正当なコンピュータ命令が存在しない場合とかプロセッサが無効なオペランドを含む命令を実行しようとした場合をいい、無効オペコード違反の種類によっては、この違反から回復できず、すなわちシステムの再起動又はシャットダウンを強いられる。リソースへの処理要求のためのアクセス手段がSyscall命令であることから、Syscall命令中に不正プログラムが関与(潜伏など)する可能性を考慮して、本実施形態では、Syscall命令を一律に無効オペコード違反とするフック対象としている。   The VMCS 13 is a data structure for holding the contents of the register group 111, the EPT 14, and the like at the time of Entry / Exit and controlling the behavior. In the guest-side list 131 in the VMCS 13, the contents set in (3) above, that is, all the matching data corresponding to the exit cause are set. Exit causes include various exceptions, interrupts, invalid opcode violations, and the like. In this embodiment, access in the privileged ring 0 that issues a processing request to the above-described resource, in this case, the Syscall instruction is set as an invalid opcode fault. An invalid opcode violation is, for example, when there is no valid computer instruction or when the processor attempts to execute an instruction that contains an invalid operand. Depending on the type of invalid opcode violation, the violation cannot be recovered, that is, the system Forced to restart or shut down. Since the access means for processing requests to the resource is the Syscall instruction, in consideration of the possibility of unauthorized programs being involved in the Syscall instruction (latency etc.), in this embodiment, the Syscall instruction is uniformly invalid opcode. The target of the hook is a violation.

より具体的には、フック処理部322は、前記VMM32の行う機能の内の(3)〜(5)の他、レジスタ群111のMSR1111の内、Syscall命令に関するレジスタに対してdisableのフック条件設定を行う。VM31動作中に、図3に示すように、例えばAP(1)312が、所定のリソースへの処理要求を発する場合、dll(API)314に対してアクセスし(図3、工程(1)参照)、APIを構築してSyscall命令を作成する(図3、工程(2)参照)。次いで、Syscall命令は特権レベル0でカーネル311にアクセスする(図3、工程(3)参照)。このとき、Syscall命令を発行すると、フック処理部322によって無効オペコード違反としてフックされ、この無効オペコード違反がVMCS13のリスト131に設定されている結果、VT12の監視ロジックによる照合によって、CPU11にExit命令を発行するようにし、モード切替部323によってCPU11の制御がVMXrootモードに遷移する(図3、工程(4)参照)。VT12は、VMM32が実行可能なハードウェアで構成された仮想化支援技術である。VT12は、Exit命令を受けた時点のVM31の状態、例えばExitの原因となった無効オペコード違反の内容をVMCS13にセーブする。   More specifically, the hook processing unit 322 sets a disable hook condition for a register related to the Syscall instruction in the MSR 1111 of the register group 111 in addition to (3) to (5) of the functions performed by the VMM 32. I do. During the operation of the VM 31, as shown in FIG. 3, for example, when the AP (1) 312 issues a processing request to a predetermined resource, it accesses the dll (API) 314 (see FIG. 3, step (1)). ), Construct an API and create a Syscall instruction (see FIG. 3, step (2)). Next, the Syscall instruction accesses the kernel 311 at the privilege level 0 (see FIG. 3, step (3)). At this time, when the Syscall instruction is issued, the hook processing unit 322 is hooked as an invalid opcode violation. As a result of the invalid opcode violation being set in the list 131 of the VMCS 13, an Exit instruction is sent to the CPU 11 by collation by the monitoring logic of the VT12. The mode switching unit 323 causes the control of the CPU 11 to transition to the VMXroot mode (see FIG. 3, step (4)). The VT 12 is a virtualization support technology configured by hardware that can execute the VMM 32. The VT 12 saves in the VMCS 13 the state of the VM 31 at the time of receiving the Exit instruction, for example, the content of the invalid opcode violation that caused the Exit.

ところで、無効オペコード違反となる対象は、Syscall命令以外にもあることから、VT12がExitを発生した状態でVMXrootモードに遷移したVMM32によって、Exit原因の分析、さらにSyscall命令の分析が行われる。すなわち、Syscall命令に関してはExit直後に一律に無効処理対象(例えばSyscall命令自体の破棄)とする一方、その正否(正当性)の評価結果に応じてVMM32の処置部326が後述する処置を行うようにしている(図3、工程(51),(52)参照)。次いでVMM32のモード切替部323は、VT12を介するEntry命令を受けてVMXnon−rootモードに遷移する。   By the way, since there is a target other than the Syscall instruction that is an invalid opcode violation, the cause of the Exit and further analysis of the Syscall instruction are performed by the VMM 32 that has transitioned to the VMXroot mode when the VT 12 has generated an Exit. In other words, the Syscall instruction is uniformly invalidated immediately after Exit (for example, discarding the Syscall instruction itself), and the processing unit 326 of the VMM 32 performs the following processing according to the evaluation result of the correctness (validity). (Refer to FIG. 3, steps (51) and (52)). Next, the mode switching unit 323 of the VMM 32 receives the Entry command via the VT 12 and transitions to the VMXnon-root mode.

VMM32は、Exit命令を受けるとモード切替部323によってVMXrootモードに遷移し、フック内容分析部324によってExit発行の原因となったプログラム命令を分析する。フック内容分析部324は、Exit発生時にVMCS13にセーブされたEXITReason(Exitの原因)を参照して、例えば無効オペコード違反が発生したことを認識する。また、フック内容分析部324は、VMCS13内にセーブされた命令ポインタEIPのデータ、すなわち無効オペコード違反が発生した命令の実行アドレスを参照して、原因がSyscall命令であったか否かを判断する。   When the VMM 32 receives the Exit command, the mode switching unit 323 makes a transition to the VMXroot mode, and the hook content analysis unit 324 analyzes the program command causing the Exit issuance. The hook content analysis unit 324 refers to the EXIT Reason (cause of Exit) saved in the VMCS 13 when an Exit occurs, and recognizes that, for example, an invalid opcode violation has occurred. Further, the hook content analysis unit 324 refers to the data of the instruction pointer EIP saved in the VMCS 13, that is, the execution address of the instruction in which the invalid opcode violation has occurred, and determines whether or not the cause is the Syscall instruction.

さらに、正否評価部325は、原因がSyscall命令であった場合、その時点でVMCS13にセーブされた、汎用レジスタ1112内の例えばeax、ebx、ecx、edxの各レジスタ等や直前の処理内容を退避保存しているスタックの内容(Syscall命令のコード等)からカーネル311の呼び出し機能とそのパラメータの正否を判断する。ここでいう正否とは、Syscall命令が不正プログラムによって発行された可能性の有無の評価に関する。なお、VMM32の例えば正否評価部325は、この時点で、Syscall命令の実行先となる物理アドレスへの書込を無効とするコマンドを設定する。あるいは、他の処理部例えばフック処理部322で、無効オペコード違反が判別された乃至はExitの時点で、前記無効とするコマンドを設定してもよい。   Further, when the cause is a Syscall instruction, the correctness evaluation unit 325 saves, for example, each register of eax, ebx, ecx, edx, etc. in the general-purpose register 1112 saved in the VMCS 13 at that time and the previous processing contents. Whether the call function of the kernel 311 and its parameters are correct or not is determined from the contents of the stored stack (such as the code of the Syscall instruction). Here, correct / invalid relates to the evaluation of the possibility of a Syscall instruction being issued by an unauthorized program. Note that, for example, the correctness evaluation unit 325 of the VMM 32 sets a command that invalidates writing to the physical address that is the execution destination of the Syscall instruction at this time. Alternatively, the invalid command may be set when another processing unit, for example, the hook processing unit 322 determines that the invalid opcode violation is detected or at the time of Exit.

正否評価部325による、カーネル311の呼び出し機能とそのパラメータの正否の判断は、予め設定された、VMM32内の参照情報32A、及びVM31のロード領域内にロードされるプロセス管理情報31Bのそれぞれの属性情報を利用して、例えば照合によって行われる。参照情報32Aは、Syscall命令を構成するAPIのコードの内、不当性が高い候補が設定されている。不当性が高いAPI候補としては、例えば、(a)現状では未使用乃至は非公開のAPI、(b)C:¥ WINDOWS(登録商標)やC:¥ ProgramFiles 配下のファイルへの読み書き(改竄や新たな作成など)、(c)カーネルから付与される権限(Token)の制御(例えば、ユーザ権限から管理者権限への昇格要求など)がある。また、プロセス管理情報31Bは、AP(1)312〜AP(n)313について、スレッドやプロセスの関連を記述するPCR(Processor Control Region)を参照して、(a)動作を許可されているAPかどうか(例えば、APのパス(フォルダ)がインストールの許可がなされているフォルダであるかどうか)、(b)データの書込先のフォルダが書込許可されているフォルダであるかどうかを判断するものである。また、(c)APIがどのプロセス(アプリケーションプログラム)から発行されたかを含めて区別する、例えば通信する筈のないプロセスが通信のAPIを発行したかどうか、(d)通信のAPIを発行したプロセスが人が操作するプロセスによって生成されたプロセスであったかどうかを区別する内容を含めることで、入力部40を経由しての人為的な操作に依拠するものか、プログラムに依拠する(一般的には不正プログラム)ものかの区別を可能にすることが好ましい。正否評価部325は、参照情報32A及びプロセス管理情報31Bの内、少なくとも参照情報32Aの情報との参照によって正否の判断を行う。   Whether the call function of the kernel 311 and its parameters are correct or not by the correctness evaluation unit 325 is determined based on the attributes of the reference information 32A in the VMM 32 and the process management information 31B loaded in the load area of the VM 31. For example, the verification is performed by using the information. In the reference information 32A, candidates with high injustice are set in the API codes constituting the Syscall instruction. Examples of API candidates with high injustices include: (a) APIs that are not used or unpublished at present, (b) Reading / writing (tampering and falsification) to files under C: ¥ WINDOWS (registered trademark) and C: ¥ ProgramFiles. (C) control of authority (Token) granted from the kernel (for example, request for promotion from user authority to administrator authority). In addition, the process management information 31B refers to a PCR (Processor Control Region) that describes the relationship between threads and processes for AP (1) 312 to AP (n) 313, and (a) APs that are permitted to operate. (For example, whether or not the AP path (folder) is a folder for which installation is permitted), and (b) whether the data write destination folder is a folder for which writing is permitted. To do. Also, (c) the process (application program) from which the API is issued is distinguished, for example, whether a process without communication issuance has issued a communication API, (d) the process that has issued the communication API Including contents that distinguish whether or not a process generated by a process operated by a person depends on an artificial operation via the input unit 40 or on a program (generally, It is preferable to be able to distinguish whether the program is a malicious program. The correctness evaluation unit 325 determines correctness by referring to at least the information of the reference information 32A in the reference information 32A and the process management information 31B.

処置部326は、評価結果が正当であると判断された場合、カーネル311へ制御を移行する代行して処理を行う(図3、工程(51)参照)。カーネル311へ制御を移行する代行処理は、VMCS13の命令ポインタEIPをカーネル311のエントリポイントに書き替えると共に、エントリポイントのスタックの内容を書き替えて、VT12に対してEntry命令の発行を指示する。処置部326は、カーネル311への制御のための命令として、無効オペコード違反として無効にしたSyscall命令と同一内容を発行する。   When it is determined that the evaluation result is valid, the treatment unit 326 performs processing on behalf of transferring control to the kernel 311 (see FIG. 3, step (51)). In the proxy process for transferring control to the kernel 311, the instruction pointer EIP of the VMCS 13 is rewritten to the entry point of the kernel 311 and the contents of the stack of the entry point are rewritten to instruct the VT 12 to issue the Entry instruction. The treatment unit 326 issues the same content as the Syscall instruction invalidated as an invalid opcode violation as an instruction for controlling the kernel 311.

一方、処置部326は、不当であると判断した場合、カーネル311へ制御を移行するか(図3、工程(52)参照)、あるいはSyscall命令に続く次の命令を発行元のAPに戻す(図3、工程(52−2)参照)処置を行う。カーネル311へ制御を移行する処置は、正当の場合と同様な手順で行う。なお、処置部326によって作成されるSyscall命令は、プログラムの強制終了を指示するもの、すなわち何らの処理を行うことなく(スルーさせて)、リターンさせるものである。また、Syscall命令に続く次の命令を発行元のAPに戻す処理は、Syscall命令のバイト数分だけ加算して、VT12に対してEntry命令の発行を指示する。Syscall命令のバイト数分だけ加算したアドレスに戻してEntryさせることで、Syscall命令をスキップしたと同様に、続きの命令に制御が戻されることになる。   On the other hand, if the treatment unit 326 determines that it is illegal, the control unit 326 shifts the control to the kernel 311 (see FIG. 3, step (52)) or returns the next instruction following the Syscall instruction to the issuing AP ( (See FIG. 3, step (52-2)). The procedure for transferring control to the kernel 311 is performed in the same manner as in the case of justification. Note that the Syscall instruction created by the treatment unit 326 instructs to forcibly terminate the program, that is, returns without performing any processing (through). Also, in the process of returning the next instruction following the Syscall instruction to the issuing AP, the number of bytes of the Syscall instruction is added and the VT 12 is instructed to issue the Entry instruction. By returning to the address added by the number of bytes of the Syscall instruction and performing Entry, control is returned to the subsequent instruction in the same manner as when the Syscall instruction is skipped.

環境監視部327は、VM31の稼働中に、MSR1111の内のSyscall命令に関するレジスタへの書込命令のアクセスを受けると、Exitするように設定する。すなわち、VMCS13のリスト131に、MSR1111の内のSyscall命令に関するレジスタへの書込命令wrmsrをExit対象とするよう含める。VMM32はVM31のカーネル311をリング0として動作させているため、特権命令は例外とならない。従って、VMM32のExit機能を利用する必要がある。VM31のカーネルがMSR1111内のSyscall命令に関するレジスタへの書込のためのwrmsr命令を発行すると、VT12によってExit命令が発行され、CPU11のモードがVMX-rootモードに切り替わる。このモードにおいて、環境監視部327は、Exit時点でVMCS13に格納されたEXITReason(Exitの原因)を参照して、原因がカーネルによるwrmsr命令であるかどうかを判断する。環境監視部327は、Exit原因がwrmsr命令であった場合、MSR1111内の当該レジスタのDisable bitに0を書き込む。さらに、環境監視部327は、VM31に制御を戻すべく、VMCS13のEIPに、wrmsr命令のバイト数分加算して、Entry(vmresume命令)を発行することで、VM31の前記wrmsr命令に続く次の命令に制御を戻す。これによって、VM31稼働中におけるCPU11からの、MSR1111の内のSyscall命令に関するレジスタへの不当な書込命令に対してかかる書込命令無効処理を施すことで阻止することができ、その結果、Syscall命令を無効オペコード違反としてExit対象とするためのMSR1111の監視可能状態を維持できる。   When the VM 31 is in operation, the environment monitoring unit 327 sets to exit when it receives a write instruction access to a register related to the Syscall instruction in the MSR 1111. That is, the write instruction wrmsr to the register related to the Syscall instruction in the MSR 1111 is included in the list 131 of the VMCS 13 so as to be an Exit target. Since the VMM 32 operates the kernel 311 of the VM 31 as the ring 0, the privileged instruction is not an exception. Therefore, it is necessary to use the Exit function of the VMM 32. When the kernel of the VM 31 issues a wrmsr instruction for writing to a register relating to the Syscall instruction in the MSR 1111, an Exit instruction is issued by the VT 12, and the mode of the CPU 11 is switched to the VMX-root mode. In this mode, the environment monitoring unit 327 refers to the EXIT Reason (exit cause) stored in the VMCS 13 at the time of Exit and determines whether the cause is a wrmsr instruction by the kernel. When the cause of the exit is the wrmsr instruction, the environment monitoring unit 327 writes 0 in the Disable bit of the corresponding register in the MSR 1111. Further, the environment monitoring unit 327 adds the number of bytes of the wrmsr instruction to the EIP of the VMCS 13 and issues an Entry (vmresume instruction) to return control to the VM 31, thereby issuing the next rmsr instruction following the VM 31. Return control to the instruction. As a result, it is possible to prevent the CPU 11 during the operation of the VM 31 from performing an invalid write command to the register related to the Syscall instruction in the MSR 1111 by performing the write instruction invalidation process. As a result, the Syscall instruction It is possible to maintain the MSR 1111 monitorable state for setting an Exit as an invalid opcode violation.

ところで、VM31の稼働中は、レジスタ群111等の管理はVM31を制御するCPU11にあることから、レジスタ群111内の特定のレジスタ等の内容が悪意のプログラムによって書き替えられる可能性がある。そこで、環境監視部327は、レジスタ群111内の特定のレジスタ等への書き込みのアクセスが発行されると、このアクセスに対してExit命令が発行されるように、リスト131にExit対象として設定する。この結果、特定のレジスタ等への書き込みのアクセス命令は、VMCS13のリスト131によってフックされ、VT12によってExit命令が発行される。特定のレジスタ等とは、CPU11の動作に必要とされる根本的な環境設定値が設定されるレジスタ(及びVMCS13)である。なお、根本的な環境設定値には、下記のものを含む。環境監視部327は、これらの環境設定値が設定される特定のレジスタ等へのアクセス、特に書込アクセスを、一般保護例外あるいは無効オペコード違反等としてExitし、後述するように、CPU11をVMX−rootモードに遷移させてアクセスを阻止(無効、禁止、元に戻すなど)した後、EntryさせてVMXnon−rootモードに戻すようにしている。   By the way, since the management of the register group 111 and the like is in the CPU 11 that controls the VM 31 while the VM 31 is in operation, the contents of a specific register or the like in the register group 111 may be rewritten by a malicious program. Therefore, the environment monitoring unit 327 sets the list 131 as an Exit target so that when a write access to a specific register or the like in the register group 111 is issued, an Exit instruction is issued for this access. . As a result, a write access instruction to a specific register or the like is hooked by the list 131 of the VMCS 13 and the Exit instruction is issued by the VT 12. The specific register or the like is a register (and VMCS 13) in which a basic environment setting value required for the operation of the CPU 11 is set. The basic environment setting values include the following. The environment monitoring unit 327 exits access to a specific register or the like in which these environment setting values are set, in particular, write access as a general protection exception or invalid opcode violation, etc. After transitioning to the root mode to prevent access (invalid, prohibited, or restored), the entry is made to return to the VMXnon-root mode.

根本的な環境設定値には、(1)プロセス管理情報(Windows(登録商標) OSのPCR,PRCB,ETHREAD,EPROCESSなど)を指すOS(カーネル)の環境設定値、(2)コントロールレジスタ(CR0,CR4,CR3)、デバッグレジスタ(DR0〜DR7)、MSR(IA32E_EFERなど)、及びGDTR、IDTR、LDTRへのアクセスをVMCS13の設定によりExitさせ、監視するためのCPU11の環境設定値、(3)VMCS13への設定により、CPU11のクロック(Clock)カウントのしきい値をもってVM31をExitさせ、VMM32のExective(VM31のカーネル状態をチェックしたり、PTEのチェックを行う)にスイッチさせるためのCPU Clockの環境設定値、(4)VM毎に作成するVMCSはVMM32内の物理メモリ領域に作成し、VM側からは使用不可領域としている。この使用不可領域への強制アクセスを考慮しEPTによってアクセス監視を行う。また、VMCSに対するアクセス命令(vmread,vmwrite)もExitするためのVMCS13の環境設定値、(5)カーネルに依頼する直前とカーネルからの戻り直後のパラメータやデータを監視するAPIの環境設定値、(6)コンピュータの電源制御とハードウェア構成要素を規格化したもので、VMM32が構成する物理メモリマップがVM31に分からなくするためのACPI(Advanced Configuration and PowerInterface)の環境設定値、(7)VM31がリアルモードの時にソフトウェア割込みを使用して使用されるBIOS Functionの改ざんや不正使用を防止する目的でリアルモードの割込ベクタをフックするためのBIOSジャンプ命令の環境設定値、(8)ドライバにより「CPU11の環境設定値」を変更しようとした場合、その命令を無視してアンロードし、また、アプリケーションからドライバのロードを禁止するためのKernel Driverの環境設定値が含まれる。   Basic environment setting values include (1) OS (kernel) environment setting values indicating process management information (PCR, PRCB, ETHREAD, EPROCESS, etc. of Windows (registered trademark) OS), and (2) control register (CR0 , CR4, CR3), the debug register (DR0 to DR7), the MSR (IA32E_EFER, etc.), and the environment setting value of the CPU 11 for exiting and monitoring the access to the GDTR, IDTR, and LDTR by the setting of the VMCS 13, (3) By setting the VMCS 13, the CPU 31 exits with the threshold value of the clock (Clock) count of the CPU 11, and the CPU clock for switching to the Effective of the VMM 32 (checking the kernel state of the VM 31 or checking the PTE) Environment setting value, (4) VMCS created for each VM is created in the physical memory area in the VMM 32, and is not usable from the VM side . In consideration of forced access to this unusable area, access monitoring is performed by EPT. Also, an environment setting value of the VMCS 13 for exiting an access instruction (vmread, vmwrite) to the VMCS, (5) an environment setting value of an API for monitoring parameters and data immediately before requesting the kernel and immediately after returning from the kernel, ( 6) Standardized computer power control and hardware components, ACPI (Advanced Configuration and Power Interface) environment setting values for obscure the physical memory map configured by the VMM 32 in the VM 31, (7) The VM 31 BIOS jump instruction environment setting value for hooking the real mode interrupt vector for the purpose of preventing tampering and unauthorized use of the BIOS Function used using software interrupts in real mode, (8) “ If you try to change the CPU 11 environment setting value, ignore the command And unloads also include configuration settings of Kernel Driver for inhibiting loading of the driver from the application.

また、ログ処理部328は、リスト131に設定されたExit原因が発生した際の当該プログラム内容を全てログ記憶部60に経時方向に格納する。好ましくは発生時刻情報を含めて格納する。ログ記憶部60がインターネット等のネットワークを介してデータサーバ装置としての位置づけである場合、送信元IPアドレスを付して送信し格納させる。外部のデータサーバ装置の場合には、IPアドレス毎にソートすることで、情報処理装置毎のログ管理が可能となる。なお、ログ情報としては無効オペコード違反のSyscall命令が少なくとも含まれていればよい。また、ログ処理部328の機能は、フック内容分析部324〜処置部326、環境監視部327の機能部分とは無関係な態様で、あるいは環境監視部327の機能部分とは無関係な態様で、不正プログラムの挙動の可能性のあるアクセスのログを保管するという課題解決手段を構成する。この場合、Syscall命令を無効オペコード違反以外でExit対象としてもよい。そして、Exit時点でセーブされた内容をログ記憶部60に取り込むようにしてもよい。このように、全ての乃至は特定範囲内のExit原因となるプログラムを、VMM32の管理下でログ保管用として格納することで、格納が適正に行われる。なお、従来、例えば特開2012−194814号公報には、VMMのメモリアクセス監視部31が、監視対象プロセス50が図示しない仮想メモリ上で実行する展開処理に係る読み込み命令及び書き込み命令それぞれについて、データが読み書きされたメモリアドレス、読み書きされたデータの値、プログラムカウンタなどをログとして取得することで、アンパッキングに係る作業の効率化を可能にするものが記載されている。一方、本実施形態によれば、後に、ログ記憶部60のセーブ内容を分析することで、異常動作や処理があった場合に対する確実かつ適正な事後解析に供することが可能となる。また、解析を通して、以後の教訓材料とすることができ、不正の抑止効果にもつながる。   In addition, the log processing unit 328 stores all the program contents when the cause of Exit set in the list 131 occurs in the log storage unit 60 in the chronological direction. Preferably, it is stored including occurrence time information. When the log storage unit 60 is positioned as a data server device via a network such as the Internet, the log storage unit 60 is transmitted with the transmission source IP address stored therein. In the case of an external data server device, log management for each information processing device can be performed by sorting by IP address. The log information only needs to include at least a Syscall instruction for invalid opcode violation. In addition, the function of the log processing unit 328 is illegal in a mode unrelated to the functional parts of the hook content analysis unit 324 to the treatment unit 326 and the environmental monitoring unit 327, or in a mode unrelated to the functional parts of the environmental monitoring unit 327. A problem solving means for storing a log of accesses with the possibility of program behavior is configured. In this case, the Syscall instruction may be an Exit target other than an invalid opcode violation. Then, the contents saved at the time of Exit may be taken into the log storage unit 60. As described above, all the programs that cause Exit in a specific range are stored for log storage under the management of the VMM 32, so that the storage is performed appropriately. Conventionally, for example, in Japanese Patent Application Laid-Open No. 2012-194814, the VMM memory access monitoring unit 31 stores data for each of a read command and a write command related to a deployment process executed on a virtual memory (not shown) by the monitored process 50. Is described, which makes it possible to increase the efficiency of work related to unpacking by acquiring a memory address from which data is read / written, a value of data read / written, a program counter, and the like as a log. On the other hand, according to the present embodiment, by analyzing the saved contents of the log storage unit 60 later, it is possible to provide a reliable and appropriate post-mortem analysis when there is an abnormal operation or processing. Also, through analysis, it can be used as a lesson for later learning, leading to fraud deterrence effects.

なお、本実施形態におけるログ対象情報としては、プロセス一覧、ファイルI/Oログ、ネットワーク送受信ログ、環境設定値アクセスログ、及び監視及びロギング内容の少なくとも1つ乃至は全てが含まれる。プロセス一覧は、実行されたプログラムはプロセスとしてOSに管理され、PCRに格納される。実行されたプロセスは、必ずSyscallを経てカーネル311とのやり取りが発生するため、実行されたプロセスの一覧が取得できる。取得情報としては、例えば、プログラムファイル名とそのパス、プロセスID、起動時間を含む。これらを取得することで、不知もしくは不要なプログラムの実行の有無が把握できる。また、取得情報から異常なプログラムか否かが判断できる。   Note that the log target information in this embodiment includes at least one or all of a process list, a file I / O log, a network transmission / reception log, an environment setting value access log, and monitoring and logging contents. In the process list, the executed program is managed as a process by the OS and stored in the PCR. Since the executed process always interacts with the kernel 311 via Syscall, a list of executed processes can be acquired. The acquired information includes, for example, a program file name and its path, a process ID, and a startup time. By acquiring these, it is possible to determine whether unknown or unnecessary programs are being executed. Further, it can be determined from the acquired information whether the program is abnormal.

ファイルI/Oログは、Syscall時点でのAPI機能番号(レジスタeax)より、ファイルI/Oの要求を取得し、そのパラメーター値(汎用レジスタ1112の内容やスタック内のデータ)からファイルパス及びその操作(読み書き)として取得される。取得情報としては、例えば、ファイルパス、操作方法(書き込みもしくは読み込み)、プロセスIDを含む。これらを取得することで、プログラムファイルの書込みやシステムフォルダもしくはユーザ指定の特定フォルダに対する操作から不正の有無が判断できる。   The file I / O log obtains the file I / O request from the API function number (register eax) at the time of Syscall, and uses the parameter value (contents of the general-purpose register 1112 and data in the stack) to determine the file path and its Acquired as an operation (read / write). The acquisition information includes, for example, a file path, an operation method (writing or reading), and a process ID. By acquiring these, it is possible to determine the presence or absence of fraud from the writing of the program file and the operation on the system folder or a user-specified specific folder.

ネットワーク送受信ログは、Syscall及びSysret時点でのAPI機能番号(レジスタeax)より送受信要求を取得し、そのパラメーター値(汎用レジスタ1112の内容やスタック内のデータ)から送受信データ及びその操作(connect、send、receive、accept)として取得される。取得情報としては、例えば、操作方法(connect、send、receive、accept)、送受信テータ、送受信ポート、送受信IPアドレス(IPV4及びIPV6)を含む。これらを取得することで、情報漏洩の基本となる送受信操作が監視できる。また、送信先IPアドレス及び受信元IPアドレスを元に不正アクセスが追跡できる。さらに送受信データの解析に基づく保護を可能とする。   The network transmission / reception log acquires transmission / reception requests from the API function number (register eax) at the time of Syscall and Sysret, and transmits / receives data and operation (connect, send) from its parameter values (contents of general-purpose register 1112 and data in the stack). , Receive, accept). The acquired information includes, for example, operation methods (connect, send, receive, accept), transmission / reception data, transmission / reception ports, and transmission / reception IP addresses (IPV4 and IPV6). By acquiring these, transmission / reception operations that are the basis of information leakage can be monitored. Further, unauthorized access can be traced based on the transmission destination IP address and the reception source IP address. Furthermore, it enables protection based on analysis of transmitted / received data.

環境設定値アクセスログは、カーネルモードからの不正操作がSyscallを介さないため、環境設定値へのアクセスが監視されており、その監視内容として取得される。取得情報としては、例えば、MSR1111へのアクセスとその内容、コントロールレジスタ(CR0, CR2,CR4)へのアクセスとその内容、デバッグレジスタへのアクセスとその内容、キャッシュ制御命令の実行、CPUID命令の実行、VMM拡張命令の実行(VMCSアクセス命令を含む)、VMM実行メモリ空間へのアクセス(VMCS13を含む)、ページテーブルPML4へのアクセス、ソフトウェア割込み命令の実行、CPUシステムテーブル(GDT、IDT、LDT、TSS)へのアクセスとロード命令、実行EIPとそのモジュール名(カーネルプログラムやカーネルドライバ)、及び未使用割込みベクタへの割込みと割込み先実行コードを含む。   The environment setting value access log is acquired as monitored content because access to the environment setting value is monitored because an unauthorized operation from the kernel mode does not pass through Syscall. Acquisition information includes, for example, access to MSR1111 and its contents, access to and contents of control registers (CR0, CR2, and CR4), access to and contents of debug registers, execution of cache control instructions, execution of CPUID instructions , Execution of VMM extension instructions (including VMCS access instructions), access to VMM execution memory space (including VMCS13), access to page table PML4, execution of software interrupt instructions, CPU system tables (GDT, IDT, LDT, TSS) access and load instruction, execution EIP and its module name (kernel program or kernel driver), and interrupt to unused interrupt vector and interrupt destination execution code.

監視及びロギング内容には、物理アドレス1Mbyte以下へのアクセスを含む。これは、OS起動後、使用されない領域であるため、不正利用と見なすことができる。物理アドレスACPI管理テーブルへのアクセスは、端末情報の不正取得と見なすことができる。全ページテーブルに対するデバイスアクセス(MMIO)物理アドレスの設定は、カーネル以外からの直接デバイスアクセスは不正と判断できる。カーネルプログラム領域の比較は、カーネルプログラムの改ざんをチェックできる。   The monitoring and logging contents include access to a physical address of 1 Mbyte or less. Since this is an area that is not used after the OS is started, it can be regarded as unauthorized use. Access to the physical address ACPI management table can be regarded as unauthorized acquisition of terminal information. In the device access (MMIO) physical address setting for all page tables, it can be determined that direct device access from other than the kernel is illegal. The comparison of the kernel program area can check the alteration of the kernel program.

図5は、情報処理装置1の起動処理の一例を示すフローチャートである。情報処理装置1の電源が投入されると、フラッシュROM21からBIOSがRAM30の所定領域にロードされ、次いでBIOSが起動される(ステップS1)。BIOSはHDD22からMBRをRAM30にロードし、このMBRによってHDD22のアクティブな先頭パーティションが指定されて、ここに格納されているVMM32のホストソフトウェアが、前述したようにして、RAM30の領域Aにロードされ、次いで、その一部のOSローダが起動される(ステップS3)。OSローダによって各VMのOS(カーネル)が、前述したようにロードされて、順次起動され(ステップS5)、次いでVM毎にアプリケーションソフトウエアAPが、前述したようにロードされる(ステップS7)ことで、起動処理が修了する。   FIG. 5 is a flowchart illustrating an example of a startup process of the information processing apparatus 1. When the information processing apparatus 1 is powered on, the BIOS is loaded from the flash ROM 21 to a predetermined area of the RAM 30, and then the BIOS is activated (step S1). The BIOS loads the MBR from the HDD 22 to the RAM 30, the active first partition of the HDD 22 is designated by this MBR, and the host software of the VMM 32 stored therein is loaded into the area A of the RAM 30 as described above. Then, a part of the OS loader is started (step S3). The OS (kernel) of each VM is loaded by the OS loader as described above and sequentially activated (step S5), and then the application software AP is loaded for each VM as described above (step S7). This completes the startup process.

図6は、Syscall監視処理の一例を示すフローチャートである。まず、VMM32が起動された状態にあり、VMM32によって、動作予定のVM(ここではVM31)をEntryするべくVMCS13が作成されて、VMXnon−rootモードへ切り替えられる(ステップS11)。VM312に動作中において、無効オペコード違反となるアクセス、例えばSyscall命令が発行されると、当該命令がフックされる(ステップS13)。無効オペコード違反はVMCS13のリスト131にExit対象として設定されていることから、Exitが発行され、CPU11はVMXrootモードに遷移する(ステップS15)。次いで、フック内容分析部324によって、Exit原因となった無効オペコードに対して分析が行われる(ステップS17)。分析の結果、その原因がSyscall命令以外であれば(ステップS19でNO)、他の無効オペコードに対する対応処理が施される(ステップS21)。   FIG. 6 is a flowchart illustrating an example of the Syscall monitoring process. First, the VMM 32 is in an activated state, and the VMM 32 creates the VMCS 13 to enter the VM to be operated (here, the VM 31) and switches to the VMX non-root mode (step S11). When an access that violates an invalid opcode, such as a Syscall instruction, is issued while the VM 312 is operating, the instruction is hooked (step S13). Since the invalid opcode violation is set as an Exit target in the list 131 of the VMCS 13, Exit is issued, and the CPU 11 transitions to the VMXroot mode (step S15). Next, the hook content analysis unit 324 analyzes the invalid opcode causing the Exit (step S17). As a result of the analysis, if the cause is other than the Syscall instruction (NO in step S19), a corresponding process for other invalid opcodes is performed (step S21).

一方、原因がSyscall命令の場合(ステップS19でYes)、正否評価部325によって正否の評価が行われ(ステップS23)、処置部326によって評価結果に応じた対応処理が実行される(ステップS25)。次いで、VMM32によってVMXnon−rootモードへの遷移指示が発行されると、VT12によってEntry処理が施され(ステップS27)、CPU11の制御がVM31に戻る。そして、VM31の動作状態が終了したか否かが判断され(ステップS29)、終了していなければ、ステップS13に戻り、終了したのであれば本フローを抜ける。   On the other hand, if the cause is a Syscall instruction (Yes in step S19), the correctness evaluation unit 325 evaluates the correctness (step S23), and the treatment unit 326 executes a corresponding process according to the evaluation result (step S25). . Next, when the VMM 32 issues a transition instruction to the VMX non-root mode, the VT 12 performs an entry process (step S27), and the control of the CPU 11 returns to the VM 31. Then, it is determined whether or not the operation state of the VM 31 has ended (step S29). If it has not ended, the process returns to step S13, and if it has ended, this flow is exited.

図7は、MSR監視処理の一例を示すフローチャートである。まず、ステップS11と同様、VMXnon−rootモードへ切り替えられる(ステップS41)。VM31の動作中において、フックの対象となるアクセス、例えばMSR1111内のSyscall命令に関するレジスタへの書込のためのwrmsr命令が発行されると、当該命令がフックされる(ステップS43)。当該命令は、リスト131に設定された内容と一致するアクセスであことから、VT12によってExitが発行され、CPU11はVMXrootモードに遷移する(ステップS45)。次いで、EXITReason(Exitの原因)を参照する分析が行われる(ステップS47)。分析の結果、原因がカーネルによるwrmsr命令以外であれば(ステップS49でNO)、他の対応処理が施される(ステップS51)。   FIG. 7 is a flowchart illustrating an example of the MSR monitoring process. First, as in step S11, the mode is switched to the VMXnon-root mode (step S41). When an access to be hooked, for example, a wrmsr instruction for writing to a register relating to a Syscall instruction in the MSR 1111 is issued during the operation of the VM 31, the instruction is hooked (step S43). Since this instruction is an access that matches the contents set in the list 131, Exit is issued by the VT 12, and the CPU 11 shifts to the VMXroot mode (step S45). Next, an analysis referring to EXITReason (cause of Exit) is performed (step S47). As a result of the analysis, if the cause is other than the wrmsr instruction by the kernel (NO in step S49), other corresponding processing is performed (step S51).

一方、原因がカーネルによるwrmsr命令の場合(ステップS49でYes)、環境監視部327によって、前述した書込命令無効処理が実行される(ステップS53)。次いで、VMM32によってVMXnon−rootモードへの遷移指示が発行されると、VT12によってEntry処理が施され(ステップS55)、CPU11の制御がVM31に戻る。そして、VM31の動作状態が終了したか否かが判断され(ステップS57)、終了していなければ、ステップS43に戻り、終了したのであれば本フローを抜ける。   On the other hand, when the cause is the wrmsr instruction by the kernel (Yes in step S49), the environment monitoring unit 327 executes the above-described write instruction invalidation process (step S53). Next, when the VMM 32 issues a transition instruction to the VMX non-root mode, the VT 12 performs an entry process (step S55), and the control of the CPU 11 returns to the VM 31. Then, it is determined whether or not the operation state of the VM 31 has ended (step S57). If it has not ended, the process returns to step S43, and if it has ended, this flow is exited.

図8は、ログ処理の一例を示すフローチャートである。まず、Syscall命令がフックされたかどうかが判断され(ステップS71)、フックされていなければ、本フローを抜ける。一方、フックされた場合、前述したようにVT12を介して、Exit処理が実行されて(ステップS73)、CPU11の制御がVMM32に移行する。VMM32は、Exit発生原因をVMCS13を参照して、ログ記憶部60に読み出して、記録する(ステップS75)。次いで、Entry処理が実行されて(ステップS77)、VM31の動作の終了まで(ステップS79でNO)、同様なログ処理が継続される。ここでは、Syscall命令をログ対象としたが、特定のフック理由、例えば無効オペコード違反に該当する命令をログ対象とする場合も同様となる。   FIG. 8 is a flowchart illustrating an example of log processing. First, it is determined whether or not the Syscall instruction is hooked (step S71), and if it is not hooked, this flow is exited. On the other hand, when hooked, the Exit process is executed via the VT 12 as described above (step S73), and the control of the CPU 11 shifts to the VMM 32. The VMM 32 reads and records the cause of the Exit occurrence in the log storage unit 60 with reference to the VMCS 13 (step S75). Next, the Entry process is executed (Step S77), and the same log process is continued until the operation of the VM 31 ends (NO in Step S79). Here, the Syscall instruction is a log target, but the same applies to a case where a specific hook reason, for example, an instruction corresponding to an invalid opcode violation is a log target.

図9は、環境監視処理の一例を示すフローチャートである。まず、ステップS11と同様、VMXnon−rootモードへ切り替えられる(ステップS101)。VM31の動作中において、フックの対象となるアクセス、すなわち前記した根本的な環境設定値が設定されたレジスタ群111やVMCS13(リスト131と一致するレジスタ等(特定のレジスタ等))へのアクセス命令が発行されると(ステップS103)、当該命令がフックされ、VT12を介してExitされる(ステップS105)。CPU11はVMXrootモードに遷移し、次いで、EXITReason(Exitの原因)を参照する分析が行われる(ステップS107)。分析の結果、原因が特定のレジスタ等への書込アクセス命令以外であれば(ステップS109でNO)、他の対応処理が施される(ステップS111)。   FIG. 9 is a flowchart illustrating an example of the environment monitoring process. First, similarly to step S11, the mode is switched to the VMXnon-root mode (step S101). During the operation of the VM 31, an access instruction to be hooked, that is, an access instruction to the register group 111 or VMCS 13 (registers matching the list 131 (specific registers, etc.)) in which the fundamental environment setting values are set. Is issued (step S103), the instruction is hooked and exited via the VT 12 (step S105). The CPU 11 transits to the VMXroot mode, and then an analysis referring to EXIT Reason (cause of Exit) is performed (step S107). As a result of the analysis, if the cause is other than a write access command to a specific register or the like (NO in step S109), other corresponding processing is performed (step S111).

一方、原因が特定のレジスタ等への書込アクセス命令の場合(ステップS109でYes)、環境監視部327によって、前述したようにアクセスを阻止する処理が実行される(ステップS113)。次いで、VMM32によってVMXnon−rootモードへの遷移指示が発行されると、VT12によってEntry処理が施され(ステップS115)、CPU11の制御がVM31に戻る。そして、VM31の動作状態が終了したか否かが判断され(ステップS117)、終了していなければ、ステップS103に戻り、終了したのであれば本フローを抜ける。これによって、仮にVM動作中に不正プログラムによって、リソースに対する処理要求が意図されても、その命令は阻止、無効とされる。   On the other hand, when the cause is a write access instruction to a specific register or the like (Yes in step S109), the environment monitoring unit 327 executes a process for blocking access as described above (step S113). Next, when the VMM 32 issues a transition instruction to the VMX non-root mode, the VT 12 performs an entry process (step S115), and the control of the CPU 11 returns to the VM 31. Then, it is determined whether or not the operation state of the VM 31 has ended (step S117). If it has not ended, the process returns to step S103, and if it has ended, this flow is exited. As a result, even if a processing request for a resource is intended by an unauthorized program during the VM operation, the instruction is blocked or invalidated.

なお、本実施形態では、Syscall命令を無効オペコード違反としてExit対象とごしたが、無効オペコード違反に限定されず、Exit対象としてフックできれば他の条件でフックするようにしてもよい。   In the present embodiment, the Syscall instruction is used as an Exit target as an invalid opcode violation. However, the present invention is not limited to an invalid opcode violation, and may be hooked under other conditions as long as it can be hooked as an Exit target.

また、本実施形態では、Intel(登録商標)VMMに基づいて説明したが、これに限定されず、AMD社のVMM、ゲストカーネルをリング1あるいは2(ゲストアプリケーションをリング3など)で制御する態様にも同様に適用可能である。   In this embodiment, the description is based on the Intel (registered trademark) VMM. However, the present invention is not limited to this, and the VMM and guest kernel of AMD are controlled by the ring 1 or 2 (the guest application is ring 3 or the like). The same applies to the above.

また、環境監視部327の機能は、Syscall命令を無効オペコード違反としてExitし、分析し、正否評価し、さらに代行して処置する機能部分と(前記実施形態のように)関連させる場合の他、それらとは無関係に、根本的な環境設定値の適正保持を目的とした課題解決手段である。   Further, the function of the environment monitoring unit 327 is that the Syscall instruction is exited as an invalid opcode violation, analyzed, evaluated for correctness, and further associated with a function part that acts on behalf (as in the above embodiment), Regardless of these, it is a problem solving means for the purpose of appropriately maintaining the fundamental environment setting value.

1情報処理装置
11 CPU(プロセッサ)
111 レジスタ群
12 VT
13 VMCS
131 リスト
30 RAM
31 VM
32 VMM
322 フック処理部(検知手段)
324 フック内容分析部(検知手段)
325 正否評価部(評価手段、無効手段)
326 処置部(処置手段)
327 環境監視部
328 ログ処理部
60 ログ記憶部
1 Information processing apparatus 11 CPU (processor)
111 registers 12 VT
13 VMCS
131 List 30 RAM
31 VM
32 VMM
322 hook processing unit (detection means)
324 hook content analysis part (detection means)
325 Correctness evaluation unit (evaluation means, invalidation means)
326 Treatment unit (treatment means)
327 Environmental monitoring unit 328 Log processing unit 60 Log storage unit

Claims (10)

リソースに対する処理要求のためのカーネルへのアクセス命令の発行を検知する検知手段と、
前記検知手段によって検知された前記アクセス命令の正否を評価する評価手段と、
評価結果に応じた処置の命令を発行する処置手段とを備えた情報処理装置。
Detection means for detecting issuance of an access instruction to the kernel for a processing request for a resource;
Evaluation means for evaluating whether the access command detected by the detection means is correct or not;
An information processing apparatus comprising treatment means for issuing a treatment instruction according to an evaluation result.
前記アクセス命令を無効にする無効手段を備えた請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising invalidating means for invalidating the access command. 仮想マシンの動作を監視する仮想マシンモニタを含み、
前記検知手段、前記評価手段及び前記処置手段は、前記仮想マシンモニタに備えられ、
前記検知手段は、前記アクセス命令が前記仮想マシンから発行される時点で制御を前記仮想マシンモニタに遷移させる請求項1に記載の情報処理装置。
Includes a virtual machine monitor that monitors the operation of the virtual machine,
The detection means, the evaluation means, and the treatment means are provided in the virtual machine monitor,
The information processing apparatus according to claim 1, wherein the detection unit shifts the control to the virtual machine monitor when the access command is issued from the virtual machine.
前記アクセス命令を無効にする無効手段が、前記仮想マシンモニタに備えられたことを特徴とする請求項3に記載の情報処理装置。   The information processing apparatus according to claim 3, wherein invalid means for invalidating the access command is provided in the virtual machine monitor. 前記検知手段は、前記アクセス命令を無効オペコード違反として検知することを特徴とする請求項3又は4に記載の情報処理装置。   The information processing apparatus according to claim 3, wherein the detection unit detects the access instruction as an invalid opcode violation. 前記アクセス命令は、シスコール命令であり、
前記評価手段は、前記シスコール命令を構成するAPIに関する情報との照合に基づいて正否を評価することを特徴とする請求項3〜5のいずれかに記載の情報処理装置。
The access instruction is a syscall instruction,
The information processing apparatus according to claim 3, wherein the evaluation unit evaluates correctness based on collation with information related to an API constituting the syscall instruction.
前記処置手段は、前記評価手段が前記アクセス命令を正当と判断した場合、前記アクセス命令と同一の内容を前記カーネルへ発行し、前記評価手段が前記アクセス命令を不当と判断した場合、前記アクセス命令をスルーする命令を前記カーネルへ発行するか、又は前記アクセス命令をスキップする命令を前記アクセス命令の発行元に戻すことを特徴とする請求項3〜6のいずれかに記載の情報処理装置。   When the evaluation means determines that the access instruction is valid, the processing means issues the same content as the access instruction to the kernel, and when the evaluation means determines that the access instruction is invalid, the access instruction The information processing apparatus according to claim 3, wherein an instruction that passes through the access instruction is issued to the kernel, or an instruction that skips the access instruction is returned to the issuer of the access instruction. リソースに対する処理要求のためのカーネルへのアクセス命令の発行を検知する検知工程と、
前記検知工程によって検知された前記アクセス命令の正否を評価する評価工程と、
評価結果に応じた処置の命令を発行する処置工程とを備えた情報処理監視方法。
A detection process for detecting issuance of an access instruction to the kernel for a processing request for a resource;
An evaluation step for evaluating the correctness of the access instruction detected by the detection step;
The information processing monitoring method provided with the treatment process which issues the command of the treatment according to the evaluation result.
リソースに対する処理要求のためのカーネルへのアクセス命令の発行を検知する検知手段、
前記検知手段によって検知された前記アクセス命令の正否を評価する評価工程、
及び評価結果に応じた処置の命令を発行する処置工程としてプロセッサを機能させる
プログラム。
Detection means for detecting issuance of an access instruction to the kernel for a processing request for a resource;
An evaluation step of evaluating whether the access command detected by the detection means is correct or not;
And a program for causing the processor to function as a treatment process for issuing a treatment instruction according to the evaluation result.
リソースに対する処理要求のためのカーネルへのアクセス命令の発行を検知する検知手段、
前記検知手段によって検知された前記アクセス命令の正否を評価する評価工程、
及び評価結果に応じた処置の命令を発行する処置工程としてプロセッサを機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
Detection means for detecting issuance of an access instruction to the kernel for a processing request for a resource;
An evaluation step of evaluating whether the access command detected by the detection means is correct or not;
And a computer-readable recording medium having recorded thereon a program that causes the processor to function as a treatment process for issuing a treatment instruction according to the evaluation result.
JP2014041171A 2014-03-04 2014-03-04 Information processor, information processing monitoring method, program and recording medium Pending JP2015166952A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014041171A JP2015166952A (en) 2014-03-04 2014-03-04 Information processor, information processing monitoring method, program and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014041171A JP2015166952A (en) 2014-03-04 2014-03-04 Information processor, information processing monitoring method, program and recording medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018151044A Division JP2018174001A (en) 2018-08-10 2018-08-10 Information processing device, information processing monitoring method, program, and recording medium

Publications (1)

Publication Number Publication Date
JP2015166952A true JP2015166952A (en) 2015-09-24

Family

ID=54257792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014041171A Pending JP2015166952A (en) 2014-03-04 2014-03-04 Information processor, information processing monitoring method, program and recording medium

Country Status (1)

Country Link
JP (1) JP2015166952A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068776A (en) * 2015-10-02 2017-04-06 富士通株式会社 Communication control device, communication control method, and communication control program
JP2018129019A (en) * 2017-02-08 2018-08-16 エーオー カスペルスキー ラボAO Kaspersky Lab System and method for analyzing malicious file in virtual machine
JP2020171281A (en) * 2019-04-11 2020-10-22 深▲せん▼市康特客科技有限公司 Electronic cigarette which can display service life state of atomization unit
WO2023007570A1 (en) * 2021-07-27 2023-02-02 ハミングヘッズ株式会社 Information processing method, program, storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131204A (en) * 1992-10-22 1994-05-13 Fujitsu Ltd System call function limitation system
JP2004075060A (en) * 2002-08-12 2004-03-11 Rosemount Aerospace Inc Dual channel electronic multifunction probe and method for realizing dissimilar and independent air data output
JP2009102006A (en) * 2008-12-15 2009-05-14 Bridgestone Cycle Co Lock device for bicycle
JP2013522761A (en) * 2010-03-15 2013-06-13 シマンテック コーポレーション System and method for performing network access control in a virtual environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131204A (en) * 1992-10-22 1994-05-13 Fujitsu Ltd System call function limitation system
JP2004075060A (en) * 2002-08-12 2004-03-11 Rosemount Aerospace Inc Dual channel electronic multifunction probe and method for realizing dissimilar and independent air data output
JP2009102006A (en) * 2008-12-15 2009-05-14 Bridgestone Cycle Co Lock device for bicycle
JP2013522761A (en) * 2010-03-15 2013-06-13 シマンテック コーポレーション System and method for performing network access control in a virtual environment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068776A (en) * 2015-10-02 2017-04-06 富士通株式会社 Communication control device, communication control method, and communication control program
JP2018129019A (en) * 2017-02-08 2018-08-16 エーオー カスペルスキー ラボAO Kaspersky Lab System and method for analyzing malicious file in virtual machine
US10339301B2 (en) 2017-02-08 2019-07-02 AO Kaspersky Lab System and method of analysis of files for maliciousness in a virtual machine
US10642973B2 (en) 2017-02-08 2020-05-05 AO Kaspersky Lab System and method of analysis of files for maliciousness and determining an action
JP2020171281A (en) * 2019-04-11 2020-10-22 深▲せん▼市康特客科技有限公司 Electronic cigarette which can display service life state of atomization unit
WO2023007570A1 (en) * 2021-07-27 2023-02-02 ハミングヘッズ株式会社 Information processing method, program, storage medium

Similar Documents

Publication Publication Date Title
Ge et al. Sprobes: Enforcing kernel code integrity on the trustzone architecture
Payne et al. Lares: An architecture for secure active monitoring using virtualization
JP6370098B2 (en) Information processing apparatus, information processing monitoring method, program, and recording medium
Azab et al. HIMA: A hypervisor-based integrity measurement agent
Shi et al. Deconstructing Xen.
US7996836B1 (en) Using a hypervisor to provide computer security
Wang et al. Isolating commodity hosted hypervisors with hyperlock
US20180211046A1 (en) Analysis and control of code flow and data flow
RU2723668C1 (en) Event filtering for security applications of virtual machines
US20120216281A1 (en) Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
KR101701014B1 (en) Reporting malicious activity to an operating system
US10621340B2 (en) Hybrid hypervisor-assisted security model
JP2013546100A (en) Security sandbox
US10467410B2 (en) Apparatus and method for monitoring confidentiality and integrity of target system
US9626508B2 (en) Providing supervisor control of control transfer execution profiling
JP2015166952A (en) Information processor, information processing monitoring method, program and recording medium
JP2019008503A (en) Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus
Hua et al. Barrier: a lightweight hypervisor for protecting kernel integrity via memory isolation
Yao Smm protection in edk ii
CN111194447B (en) Monitoring control flow integrity
JP2018174001A (en) Information processing device, information processing monitoring method, program, and recording medium
Suzaki et al. Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints
Lengyel et al. Pitfalls of virtual machine introspection on modern hardware
JP2018036695A (en) Information processing monitoring device, information processing monitoring method, monitoring program, recording medium, and information processing apparatus
Cheng et al. Building dynamic integrity protection for multiple independent authorities in virtualization-based infrastructure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180515