JPWO2017042860A1 - Execution control device, execution control method, and execution control program - Google Patents

Execution control device, execution control method, and execution control program Download PDF

Info

Publication number
JPWO2017042860A1
JPWO2017042860A1 JP2017517395A JP2017517395A JPWO2017042860A1 JP WO2017042860 A1 JPWO2017042860 A1 JP WO2017042860A1 JP 2017517395 A JP2017517395 A JP 2017517395A JP 2017517395 A JP2017517395 A JP 2017517395A JP WO2017042860 A1 JPWO2017042860 A1 JP WO2017042860A1
Authority
JP
Japan
Prior art keywords
user
memory
system call
page
unit
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
JP2017517395A
Other languages
Japanese (ja)
Other versions
JP6257844B2 (en
Inventor
坂倉 隆史
隆史 坂倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2017042860A1 publication Critical patent/JPWO2017042860A1/en
Application granted granted Critical
Publication of JP6257844B2 publication Critical patent/JP6257844B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Abstract

実行制御装置(100)は、判断部(120)と、制御部(130)とを備える。判断部(120)は、メモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する。メモリ操作システムコールとは、ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールのことである。制御部(130)は、判断部(120)により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する。The execution control device (100) includes a determination unit (120) and a control unit (130). The determination unit (120) is the same as the allocation-destination user who started the process to which the memory area allocated to be operated by the issued memory operation system call is issued. It is determined whether or not. The memory operation system call is a system call issued for operating a memory area among system calls issued from the process activated by the user to the operating system. The control unit (130) stops the execution of the memory operation system call that is determined by the determination unit (120) that the issuing user is different from the assigned user.

Description

本発明は、実行制御装置及び実行制御方法及び実行制御プログラムに関するものである。   The present invention relates to an execution control device, an execution control method, and an execution control program.

近年、クラウドと呼ばれる、インターネット接続を前提として計算機リソースを提供するサービスが広く浸透している。サービスの形態としては、ウェブアプリケーションそのものを提供するSaaS(Software・as・a・Service)、アプリケーションの開発プラットフォームを提供するPaaS(Platform・as・a・Service)、仮想マシンを提供するIaaS(Infrastructure・as・a・Service)等が知られている。   In recent years, a service called cloud, which provides computer resources on the premise of Internet connection, has been widely used. Service forms include SaaS (Software as a Service) that provides the web application itself, PaaS (Platform as a Service) that provides the application development platform, and IaaS (Infrastructure · Service) that provides the virtual machine. as, a, Service, etc.) are known.

通常、クラウドベンダとその顧客との間では、SLA(Service・Level・Agreement)と呼ばれる、課金、サービスの信頼性、セキュリティ等に関する契約が結ばれる。しかし、悪意のあるアドミニストレータの存在は完全に否定できるものではない。アドミニストレータは、システム上の全ての権限を有するスーパーユーザである。したがって、契約上は顧客のストレージデータ或いはメモリデータの秘匿性が担保されていても、悪意のあるアドミニストレータによってデータが盗まれたり、改ざんされたりする可能性がある。   Usually, a contract regarding billing, service reliability, security, etc., called SLA (Service / Level / Agreement), is made between the cloud vendor and the customer. However, the existence of a malicious administrator cannot be completely denied. An administrator is a super user who has all privileges on the system. Therefore, even if the confidentiality of the customer storage data or memory data is guaranteed in the contract, the data may be stolen or falsified by a malicious administrator.

IaaSで提供される仮想マシンは、その仮想マシンが稼働するオペレーティングシステムにとっては単なるアプリケーションプログラムに過ぎない。したがって、オペレーティングシステムのスーパーユーザであれば、仮想マシンが使用するメモリ領域のデータを取得することが可能である。   The virtual machine provided by IaaS is merely an application program for the operating system on which the virtual machine operates. Therefore, if it is a super user of the operating system, it is possible to acquire data in a memory area used by the virtual machine.

特許文献1には、アプリケーションプログラムからオペレーティングシステムへシステムコールが発行される際に、当該アプリケーションプログラムが当該システムコールのサービスを受ける権限を有するかどうかを検証する技術が開示されている。   Patent Document 1 discloses a technique for verifying whether an application program has an authority to receive a service of the system call when a system call is issued from the application program to an operating system.

特開2006−331137号公報JP 2006-331137 A

従来の技術では、悪意のあるアドミニストレータの存在に対処することができない。特許文献1に記載の技術においても、スーパーユーザがシステムのあらゆるリソースにアクセスできる可能性は、依然として排除されていない。   Prior art cannot cope with the presence of malicious administrators. Even in the technique described in Patent Document 1, the possibility that a superuser can access all the resources of the system is not excluded.

本発明は、スーパーユーザであっても、保護すべきメモリ領域のデータにアクセスできないシステムを提供することを目的とする。   An object of the present invention is to provide a system in which even a super user cannot access data in a memory area to be protected.

本発明の一態様に係る実行制御装置は、
ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する判断部と、
前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する制御部とを備える。
An execution control apparatus according to an aspect of the present invention includes:
Of the system calls issued to the operating system from the process started by the user, the issuer user who started the process that issued the memory operation system call, which is a system call issued for the operation of the memory area, A determination unit for determining whether or not the same allocation destination user that started the allocation destination process of the memory area operated by the issued memory operation system call;
A control unit that stops execution of the memory operation system call that is determined by the determination unit to be different from the allocation destination user.

本発明では、メモリ領域の操作のために発行されたシステムコールの発行元のプロセスを起動したユーザが、そのメモリ領域の割り当て先のプロセスを起動したユーザと同じでなければ、そのシステムコールは実行されない。このため、本発明によれば、スーパーユーザであっても、保護すべきメモリ領域のデータにアクセスできないシステムを提供することが可能となる。   In the present invention, if the user who started the process that issued the system call issued for the operation of the memory area is not the same as the user who started the process to which the memory area is allocated, the system call is executed. Not. Therefore, according to the present invention, it is possible to provide a system in which even a super user cannot access data in a memory area to be protected.

実施の形態1に係る実行制御装置の構成を示すブロック図。FIG. 2 is a block diagram showing a configuration of an execution control apparatus according to the first embodiment. 実施の形態1に係る実行制御装置の動作を示すフローチャート。5 is a flowchart showing an operation of the execution control apparatus according to the first embodiment. 実施の形態2に係る実行制御装置の構成を示すブロック図。FIG. 4 is a block diagram showing a configuration of an execution control apparatus according to a second embodiment. 実施の形態2に係る仮想メモリの実装例を示す図。FIG. 9 is a diagram illustrating an example of mounting a virtual memory according to the second embodiment. 実施の形態2に係るページテーブルエントリの構成例を示す図。FIG. 10 is a diagram showing a configuration example of a page table entry according to the second embodiment. 実施の形態2に係る実行制御装置の動作を示すフローチャート。10 is a flowchart showing the operation of the execution control apparatus according to the second embodiment.

以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In addition, the same code | symbol is attached | subjected to the part which is the same or it corresponds in each figure. In the description of the embodiments, the description of the same or corresponding parts will be omitted or simplified as appropriate.

実施の形態1.
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
Embodiment 1 FIG.
The configuration of the apparatus according to the present embodiment, the operation of the apparatus according to the present embodiment, and the effects of the present embodiment will be described in order.

***構成の説明***
図1を参照して、本実施の形態に係る装置である実行制御装置100の構成を説明する。
*** Explanation of configuration ***
With reference to FIG. 1, the structure of the execution control apparatus 100 which is an apparatus according to the present embodiment will be described.

実行制御装置100は、提供部110と、判断部120と、制御部130とを備える。   The execution control apparatus 100 includes a providing unit 110, a determination unit 120, and a control unit 130.

本実施の形態において、実行制御装置100は、コンピュータである。具体的には、実行制御装置100は、IaaSを提供するホストコンピュータである。提供部110、判断部120、及び、制御部130の機能は、ソフトウェアにより実現される。   In the present embodiment, the execution control apparatus 100 is a computer. Specifically, the execution control apparatus 100 is a host computer that provides IaaS. The functions of the providing unit 110, the determining unit 120, and the control unit 130 are realized by software.

実行制御装置100は、プロセッサ101、MMU102(Memory・Management・Unit)、TLB103(Translation・Lookaside・Buffer)、メモリコントローラ104、メモリ105、補助記憶装置106、通信装置107といったハードウェアを備える。プロセッサ101は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。   The execution control device 100 includes hardware such as a processor 101, an MMU 102 (Memory / Management / Unit), a TLB 103 (Translation / Lookaside / Buffer), a memory controller 104, a memory 105, an auxiliary storage device 106, and a communication device 107. The processor 101 is connected to other hardware via a signal line, and controls these other hardware.

プロセッサ101は、プロセッシングを行うIC(Integrated・Circuit)である。プロセッサ101は、具体的には、CPU(Central・Processing・Unit)である。   The processor 101 is an integrated circuit (IC) that performs processing. Specifically, the processor 101 is a CPU (Central Processing Unit).

MMU102は、仮想メモリのアドレスである仮想アドレスとメモリ105のアドレスである物理アドレスとの変換を行うICである。   The MMU 102 is an IC that converts a virtual address that is an address of a virtual memory and a physical address that is an address of the memory 105.

TLB103は、仮想アドレスと物理アドレスとのマッピング情報を一時的に格納するバッファメモリである。   The TLB 103 is a buffer memory that temporarily stores mapping information between virtual addresses and physical addresses.

メモリコントローラ104は、プロセッサ101によりメモリ105に書き込まれるデータの流れ、及び、プロセッサ101によりメモリ105から読み取られるデータの流れを管理するICである。   The memory controller 104 is an IC that manages the flow of data written to the memory 105 by the processor 101 and the flow of data read from the memory 105 by the processor 101.

メモリ105は、メインメモリ、即ち、物理メモリである。メモリ105は、具体的には、RAM(Random・Access・Memory)である。   The memory 105 is a main memory, that is, a physical memory. Specifically, the memory 105 is a RAM (Random Access Memory).

補助記憶装置106は、少なくとも一部が仮想メモリとして機能する記憶装置である。補助記憶装置106は、具体的には、フラッシュメモリ、又は、HDD(Hard・Disk・Drive)である。   The auxiliary storage device 106 is a storage device that at least partially functions as a virtual memory. Specifically, the auxiliary storage device 106 is a flash memory or an HDD (Hard Disk Drive).

通信装置107は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。通信装置107は、具体的には、通信チップ又はNIC(Network・Interface・Card)である。   The communication device 107 includes a receiver that receives data and a transmitter that transmits data. Specifically, the communication device 107 is a communication chip or a NIC (Network, Interface, Card).

実行制御装置100は、ハードウェアとして、入力装置及びディスプレイの少なくともいずれかを備えていてもよい。   The execution control apparatus 100 may include at least one of an input device and a display as hardware.

入力装置は、外部からデータをメモリ105に入力するために用いられる。入力装置は、具体的には、マウス、キーボード、又は、タッチパネルである。   The input device is used to input data to the memory 105 from the outside. Specifically, the input device is a mouse, a keyboard, or a touch panel.

ディスプレイは、メモリ105に記憶されたデータを表示するために用いられる。ディスプレイは、具体的には、LCD(Liquid・Crystal・Display)である。   The display is used to display data stored in the memory 105. Specifically, the display is an LCD (Liquid / Crystal / Display).

補助記憶装置106には、プログラム群が記憶されている。プログラム群には、提供部110の機能を実現するプログラムが含まれる。このプログラムは、メモリ105にロードされ、プロセッサ101に読み込まれ、プロセッサ101によって実行される。プログラム群には、判断部120及び制御部130の機能を実現するオペレーティングシステムも含まれる。オペレーティングシステムの少なくとも一部がメモリ105にロードされ、プロセッサ101はオペレーティングシステムを実行しながら、提供部110の機能を実現するプログラムを実行する。   The auxiliary storage device 106 stores a program group. The program group includes programs that realize the functions of the providing unit 110. This program is loaded into the memory 105, read into the processor 101, and executed by the processor 101. The program group also includes an operating system that realizes the functions of the determination unit 120 and the control unit 130. At least a part of the operating system is loaded into the memory 105, and the processor 101 executes a program that realizes the function of the providing unit 110 while executing the operating system.

オペレーティングシステムの一般ユーザ、即ち、非スーパーユーザは、自分のプロセスの仮想メモリ領域をトレースすることはできるが、他ユーザのプロセスの仮想メモリ領域をトレースすることはできない。また、非スーパーユーザは、自分のプロセス間で仮想メモリ領域を共有することはできるが、自分のプロセスと他ユーザのプロセスとの間、或いは、他ユーザのプロセス間で仮想メモリ領域を共有することはできない。IaaSのホストオペレーティングシステム上で稼働する仮想マシンも、このような非スーパーユーザのプロセスである。   A general user of the operating system, that is, a non-super user, can trace the virtual memory area of his / her process, but cannot trace the virtual memory area of another user's process. Non-super users can share a virtual memory area between their own processes, but share a virtual memory area between their own process and another user's process or between other user's processes. I can't. A virtual machine running on an IaaS host operating system is also such a non-superuser process.

従来は、スーパーユーザであれば、いずれのプロセスの仮想メモリ領域をトレースすることも許容され、また、いずれのプロセス間で仮想メモリ領域を共有することも許容される。しかし、それでは、IaaSのホストオペレーティングシステムのアドミニストレータが、ホストオペレーティングシステム上で稼働する、いずれの仮想マシンのメモリデータも観察できることになってしまう。   Conventionally, a super user is allowed to trace the virtual memory area of any process, and is allowed to share the virtual memory area between any processes. However, this would allow an IaaS host operating system administrator to observe the memory data of any virtual machine running on the host operating system.

後述するように、本実施の形態では、スーパーユーザであっても、他ユーザのプロセスの仮想メモリ領域をトレースすることが禁止され、また、他ユーザのプロセス間で仮想メモリ領域を共有することも禁止される。したがって、IaaSのホストオペレーティングシステム上で稼働する仮想マシンのメモリデータを、悪意のあるアドミニストレータから保護することができる。   As will be described later, in this embodiment, even a super user is prohibited from tracing the virtual memory area of another user's process, and the virtual memory area may be shared between processes of other users. It is forbidden. Therefore, it is possible to protect the memory data of the virtual machine running on the IaaS host operating system from a malicious administrator.

プロセスが、そのプロセスの仮想メモリ領域をトレースしたり、そのプロセスと同じユーザの他のプロセスとの間で仮想メモリ領域を共有したりするためには、オペレーティングシステムが管理するデータの変更が必要になる。プロセッサ101では、オペレーティングシステムが管理するデータを、プロセスとして実行されるアプリケーションプログラムが破壊することがないよう、プロテクティッドモードと称される実行モードの設定が可能となっている。プロテクティッドモードを設定することで、オペレーティングシステムが稼働する仮想アドレス空間と、アプリケーションプログラムが稼働する仮想アドレス空間とが明確に区分される。このため、システムコールという、プロテクティッドモードにおいてアプリケーションプログラムがオペレーティングシステムの空間にアクセスする手段が提供されている。   In order for a process to trace the virtual memory area of the process or to share the virtual memory area with other processes of the same user as that process, it is necessary to change the data managed by the operating system. Become. In the processor 101, an execution mode called a protected mode can be set so that data managed by the operating system is not destroyed by an application program executed as a process. By setting the protected mode, the virtual address space in which the operating system operates and the virtual address space in which the application program operates are clearly distinguished. For this reason, there is provided a means for the application program to access the space of the operating system in the protected mode called system call.

一般ユーザのプロセスとして稼働するアプリケーションプログラムは、システムコールを発行することで、そのプロセスの仮想メモリ領域をトレースする機能、そのプロセスと同じユーザの他のプロセスとの間で仮想メモリ領域を共有する機能といった、オペレーティングシステムの様々な機能を利用することができる。   Application program that runs as a general user process can issue a system call to trace the virtual memory area of the process, and share the virtual memory area with other processes of the same user as that process Various functions of the operating system can be used.

なお、実行制御装置100は、1つのプロセッサ101のみを備えていてもよいし、複数のプロセッサ101を備えていてもよい。複数のプロセッサ101がプログラム群を連携して実行してもよい。   Note that the execution control apparatus 100 may include only one processor 101 or may include a plurality of processors 101. A plurality of processors 101 may execute the program group in cooperation.

提供部110、判断部120、及び、制御部130の処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置106、メモリ105、又は、プロセッサ101内のレジスタ又はキャッシュメモリに記憶される。   Information, data, signal values, and variable values indicating the processing results of the providing unit 110, the determining unit 120, and the control unit 130 are the auxiliary storage device 106, the memory 105, or a register or cache memory in the processor 101. Is remembered.

プログラム群は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital・Versatile・Disc)等の可搬記録媒体に記憶されてもよい。   The program group may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, and a DVD (Digital Versatile Disc).

プロセッサ101、MMU102、TLB103、メモリコントローラ104、メモリ105を、総称して「プロセッシングサーキットリ」という。つまり、提供部110、判断部120、制御部130といった「部」の機能は、プロセッシングサーキットリにより実現される。   The processor 101, the MMU 102, the TLB 103, the memory controller 104, and the memory 105 are collectively referred to as a “processing circuit”. That is, the functions of “units” such as the providing unit 110, the determination unit 120, and the control unit 130 are realized by a processing circuit.

「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。   “Part” may be read as “step” or “procedure” or “processing”.

***動作の説明***
図2を参照して、実行制御装置100の動作を説明する。実行制御装置100の動作は、本実施の形態に係る実行制御方法に相当する。実行制御装置100の動作は、本実施の形態に係る実行制御プログラムの処理手順に相当する。
*** Explanation of operation ***
The operation of the execution control apparatus 100 will be described with reference to FIG. The operation of the execution control apparatus 100 corresponds to the execution control method according to the present embodiment. The operation of the execution control apparatus 100 corresponds to the processing procedure of the execution control program according to the present embodiment.

ステップS11からステップS15の処理は、少なくとも提供部110が、プロセスとして動作する仮想マシンをユーザに利用させるサービスを提供しているときに実施される。本実施の形態において、提供部110は、そのようなサービスとして、IaaSを提供する。具体的には、提供部110は、プロセッサ101を用いて仮想マシンをオペレーティングシステム上で稼働させる。提供部110は、通信装置107を用いてインターネット経由でデータを送受信することで、稼働中の仮想マシンをユーザに利用させる。   The processing from step S11 to step S15 is performed when at least the providing unit 110 provides a service that allows a user to use a virtual machine that operates as a process. In the present embodiment, providing section 110 provides IaaS as such a service. Specifically, the providing unit 110 operates the virtual machine on the operating system using the processor 101. The providing unit 110 transmits / receives data via the Internet using the communication device 107 to allow the user to use an operating virtual machine.

ステップS11において、判断部120は、システムコールの発行を検知するまで待機する。具体的には、判断部120は、システムコールの発行によってプロセッサ101に割り込みが発生することで起動される。判断部120は、起動されることでシステムコールが発行されたことを検知する。また、判断部120は、少なくとも発行されたシステムコールの番号と、当該システムコールの引数と、当該システムコールの発行元のプロセスを起動したユーザの識別子とをプロセッサ101のレジスタから取得する。   In step S11, determination unit 120 waits until it detects the issuance of a system call. Specifically, the determination unit 120 is activated when an interrupt occurs in the processor 101 by issuing a system call. The determination unit 120 detects that a system call has been issued by being activated. Further, the determination unit 120 acquires from the register of the processor 101 at least the number of the issued system call, the argument of the system call, and the identifier of the user who started the process that issued the system call.

判断部120によりシステムコールの発行が検知された場合、フローはステップS12に進む。   When the issue of the system call is detected by the determination unit 120, the flow proceeds to step S12.

ステップS12において、判断部120は、ステップS11で発行を検知したシステムコールがメモリ操作システムコールであるかどうかを判断する。メモリ操作システムコールとは、ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールのことである。具体的には、判断部120は、ステップS11で取得したシステムコールの番号とメモリ操作システムコールの番号とを比較し、比較結果をブール値として出力する。仮に番号が一致することを示すブール値が「1」であるとすると、「1」が出力された場合には、判断部120が、発行されたシステムコールがメモリ操作システムコールであると判断したことになる。一方、「0」が出力された場合には、判断部120が、発行されたシステムコールがメモリ操作システムコールではないと判断したことになる。   In step S12, the determination unit 120 determines whether or not the system call whose issue is detected in step S11 is a memory operation system call. The memory operation system call is a system call issued for operating a memory area among system calls issued from the process activated by the user to the operating system. Specifically, the determination unit 120 compares the system call number acquired in step S11 with the memory operation system call number, and outputs the comparison result as a Boolean value. Assuming that the Boolean value indicating that the numbers match is “1”, when “1” is output, the determination unit 120 determines that the issued system call is a memory operation system call. It will be. On the other hand, when “0” is output, the determination unit 120 determines that the issued system call is not a memory operation system call.

判断部120により、発行されたシステムコールがメモリ操作システムコールであると判断された場合、フローはステップS13に進む。そうでない場合、フローはステップS14に進む。   If the determination unit 120 determines that the issued system call is a memory operation system call, the flow proceeds to step S13. Otherwise, the flow proceeds to step S14.

ステップS13において、判断部120は、メモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する。具体的には、判断部120は、ステップS11で取得したシステムコールの引数から、メモリ操作システムコールによって操作されるメモリ領域の仮想アドレスを取得する。TLB103には、前述したマッピング情報の一部として、仮想アドレス空間ごとに、割り当て先のプロセスの識別子が格納されている。判断部120は、取得した仮想アドレスを含む仮想アドレス空間の割り当て先の識別子としてTLB103に格納されているプロセスの識別子を、プロセッサ101を用いて、MMU102を介して取得する。判断部120は、取得したプロセスの識別子から、当該プロセスを起動したユーザである割り当て先ユーザの識別子を特定する。判断部120は、ステップS11で取得したユーザの識別子、即ち、発行元ユーザの識別子と、特定した割り当て先ユーザの識別子とを比較し、比較結果をブール値として出力する。仮に識別子が一致することを示すブール値が「1」であるとすると、「1」が出力された場合には、判断部120が、発行元ユーザが割り当て先ユーザと同じであると判断したことになる。一方、「0」が出力された場合には、判断部120が、発行元ユーザが割り当て先ユーザと異なると判断したことになる。   In step S <b> 13, the determination unit 120 determines that the issuer user who started the process that issued the memory operation system call has started the allocation process for the memory area that is operated by the issued memory operation system call. To determine if they are the same. Specifically, the determination unit 120 acquires the virtual address of the memory area operated by the memory operation system call from the argument of the system call acquired in step S11. The TLB 103 stores an identifier of an allocation destination process for each virtual address space as a part of the mapping information described above. The determination unit 120 uses the processor 101 to acquire the process identifier stored in the TLB 103 as an assignment destination identifier of the virtual address space including the acquired virtual address. The determination unit 120 identifies the identifier of the assignment destination user who is the user who started the process from the acquired process identifier. The determination unit 120 compares the identifier of the user acquired in step S11, that is, the identifier of the issuer user with the identifier of the specified assignment destination user, and outputs the comparison result as a Boolean value. If the Boolean value indicating that the identifiers match is “1”, when “1” is output, the determining unit 120 determines that the issuing user is the same as the assigned user. become. On the other hand, when “0” is output, the determination unit 120 determines that the issuer user is different from the assignment destination user.

判断部120により、発行元ユーザが割り当て先ユーザと同じであると判断された場合、フローはステップS14に進む。そうでない場合、フローはステップS15に進む。   If the determination unit 120 determines that the issuer user is the same as the assignment destination user, the flow proceeds to step S14. Otherwise, the flow proceeds to step S15.

ステップS14において、制御部130は、正常処理を行う。具体的には、制御部130は、判断部120によりメモリ操作システムコールではないと判断されたシステムコールをプロセッサに実行させる。また、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと同じであると判断されたメモリ操作システムコールもプロセッサ101に実行させる。即ち、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する。   In step S14, the control unit 130 performs normal processing. Specifically, the control unit 130 causes the processor to execute a system call determined by the determination unit 120 as not being a memory operation system call. The control unit 130 also causes the processor 101 to execute a memory operation system call that is determined by the determination unit 120 that the issuer user is the same as the assignment destination user. That is, the control unit 130 stops the execution of the memory operation system call that is determined by the determination unit 120 that the issuer user is different from the assignment destination user.

ステップS15において、制御部130は、エラー処理を行う。具体的には、制御部130は、発行元ユーザがオペレーティングシステムの管理者権限を持つスーパーユーザであっても、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールをプロセッサ101に実行させない。本実施の形態において、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールの発行元のプロセスを強制終了する。即ち、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールの発行元のプロセスを削除する。   In step S15, the control unit 130 performs error processing. Specifically, the control unit 130 determines whether the issuer user is different from the assigned user by the determination unit 120 even if the issuer user is a super user who has administrator authority of the operating system. Is not executed by the processor 101. In the present embodiment, the control unit 130 forcibly terminates the process of issuing the memory operation system call that is determined by the determining unit 120 that the issuing user is different from the assigned user. In other words, the control unit 130 deletes the process of the memory operation system call issuer that is determined by the determination unit 120 that the issuer user is different from the assigned user.

***実施の形態の効果の説明***
本実施の形態では、メモリ領域の操作のために発行されたシステムコールの発行元のプロセスを起動したユーザが、そのメモリ領域の割り当て先のプロセスを起動したユーザと同じでなければ、そのシステムコールは実行されない。このため、本実施の形態によれば、スーパーユーザであっても、保護すべきメモリ領域のデータにアクセスできないシステムを提供することが可能となる。
*** Explanation of the effect of the embodiment ***
In this embodiment, if the user who started the process that issued the system call issued for the operation of the memory area is not the same as the user who started the process to which the memory area is allocated, the system call Is not executed. For this reason, according to the present embodiment, it is possible to provide a system in which even a super user cannot access data in a memory area to be protected.

本実施の形態では、メモリ領域が割り当てられたユーザ以外のユーザによる当該メモリ領域への不正なアクセスを阻止できるだけでなく、悪意のあるスーパーユーザによる当該メモリ領域へのアクセスも阻止することができる。したがって、安全性の高いサービスを提供することが可能となる。メモリ領域が割り当てられたユーザによる当該メモリ領域のトレース、共有等の操作は正常に実施されるため、サービスの利便性は維持される。   In the present embodiment, it is possible not only to prevent unauthorized access to the memory area by a user other than the user to whom the memory area is allocated, but also to prevent access by the malicious super user to the memory area. Therefore, it is possible to provide a highly secure service. Since operations such as tracing and sharing of the memory area by the user to which the memory area is allocated are normally performed, the convenience of the service is maintained.

本実施の形態では、メモリ領域のトレース、共有といったメモリ管理に関するシステムコールの処理中の権限チェックにおいて、スーパーユーザを「権限あり」とするロジックを排除することにより、仮想マシンのメモリデータを、悪意のあるスーパーユーザから保護することができる。   In the present embodiment, in the authority check during the processing of system calls related to memory management such as memory area tracing and sharing, the logic to make the super user “authorized” is excluded, and thus the memory data of the virtual machine is malicious. Can be protected from certain superusers.

なお、判断部120は、ステップS11で仮想マシンに割り当てられたメモリ領域に対するメモリ操作システムコールの発行を検知した場合のみ、ステップS13で発行元ユーザが割り当て先ユーザと同じであるかどうかを判断してもよい。その場合でも、少なくとも仮想マシンが使用するメモリ領域のデータは保護することができる。   Note that the determination unit 120 determines whether or not the issuer user is the same as the assignment destination user in step S13 only when the issue of the memory operation system call for the memory area assigned to the virtual machine is detected in step S11. May be. Even in that case, at least data in the memory area used by the virtual machine can be protected.

***他の構成***
実行制御装置100は、プロセスとして仮想マシンを実行することでIaaSを提供するホストコンピュータに限定されるものではなく、任意のプロセスを実行するコンピュータであればよい。即ち、本実施の形態の変形例として、実行制御装置100が提供部110を備えない構成を採用してもよい。
*** Other configurations ***
The execution control apparatus 100 is not limited to a host computer that provides IaaS by executing a virtual machine as a process, and may be a computer that executes an arbitrary process. That is, as a modification of the present embodiment, a configuration in which the execution control apparatus 100 does not include the providing unit 110 may be employed.

実施の形態2.
実施の形態1では、オペレーティングシステムが管理するユーザアカウントによって、仮想マシンが使用するメモリ領域へのアクセスが制御される。即ち、実施の形態1は、ユーザ管理機構を利用して、仮想マシンのメモリデータを保護するものである。
Embodiment 2. FIG.
In the first embodiment, access to a memory area used by a virtual machine is controlled by a user account managed by the operating system. That is, the first embodiment protects the virtual machine memory data using a user management mechanism.

一般的なウェブサーバには、インターネット接続が可能ならば、誰でもアクセスすることができる。したがって、ウェブサービスでは、ユーザに対して認められる、オペレーティングシステムにおける権限レベルは、極めて限定的なものとされる。このため、銀行等が提供するウェブサービスでは、ユーザの要求に応じて、勘定系システムにセキュアにアクセスする手段が提供される。具体的には、ソフトウェアキーボード或いはパスワードに加え、乱数に対するハッシュコード等を使用した厳重な認証機構が提供される。   A general web server can be accessed by anyone with an Internet connection. Therefore, in the web service, the authority level in the operating system that is granted to the user is extremely limited. For this reason, a web service provided by a bank or the like provides a means for securely accessing an account system in response to a user request. Specifically, a strict authentication mechanism using a hash code for a random number in addition to a software keyboard or password is provided.

本実施の形態でも、仮想マシンが使用するメモリ領域にセキュアにアクセスする手段として、プロセスの認証を行う認証機構が提供される。メモリ管理機構には、その認証機構を利用するための仕組みが導入される。即ち、本実施の形態は、認証機構とメモリ管理機構とを利用して、仮想マシンのメモリデータを保護するものである。   Also in the present embodiment, an authentication mechanism for performing process authentication is provided as means for securely accessing a memory area used by a virtual machine. A mechanism for using the authentication mechanism is introduced into the memory management mechanism. In other words, the present embodiment protects memory data of a virtual machine using an authentication mechanism and a memory management mechanism.

本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態1との差異を説明する。   The configuration of the apparatus according to the present embodiment, the operation of the apparatus according to the present embodiment, and the effects of the present embodiment will be described in order. Differences from the first embodiment will be mainly described.

***構成の説明***
図3を参照して、本実施の形態に係る装置である実行制御装置100の構成を説明する。
*** Explanation of configuration ***
With reference to FIG. 3, the configuration of execution control apparatus 100, which is an apparatus according to the present embodiment, will be described.

実行制御装置100は、実施の形態1と同じように、提供部110と、判断部120と、制御部130とを備える。実行制御装置100は、本実施の形態では、記憶部140と、管理部150と、認証部160とをさらに備える。なお、実行制御装置100は、判断部120を備えなくてもよい。   As in the first embodiment, the execution control apparatus 100 includes a providing unit 110, a determination unit 120, and a control unit 130. The execution control apparatus 100 further includes a storage unit 140, a management unit 150, and an authentication unit 160 in the present embodiment. Note that the execution control apparatus 100 may not include the determination unit 120.

記憶部140は、TLB103により実現される。   The storage unit 140 is realized by the TLB 103.

管理部150は、MMU102により実現される。   The management unit 150 is realized by the MMU 102.

認証部160の機能は、ソフトウェアにより実現される。具体的には、認証部160の機能は、制御部130の機能と同じように、オペレーティングシステムにより実現される。   The function of the authentication unit 160 is realized by software. Specifically, the function of the authentication unit 160 is realized by the operating system in the same manner as the function of the control unit 130.

図4を参照して、仮想メモリの実装例を説明する。   A virtual memory implementation example will be described with reference to FIG.

一旦、プロセッサ101のステートがプロテクティッドモードになると、プロセッサ101は、仮想メモリの仮想アドレス200を用いてオペレーティングシステム及びアプリケーションプログラムを実行する。   Once the state of the processor 101 enters the protected mode, the processor 101 executes the operating system and application program using the virtual address 200 of the virtual memory.

仮想アドレス200は、プロセッサ101が仮想メモリ上で命令の実行、データの参照、及び、データの更新を行うために使用するアドレスである。仮想アドレス200は、ページディレクトリテーブル210へのインデックス201と、ページテーブル220へのインデックス202と、オフセット203で構成される。本例では、ページディレクトリテーブル210へのインデックス201が10ビット、ページテーブル220へのインデックス202が10ビット、オフセット203が12ビットである。即ち、仮想アドレス200は、32ビットである。   The virtual address 200 is an address used for the processor 101 to execute an instruction, refer to data, and update data on the virtual memory. The virtual address 200 includes an index 201 to the page directory table 210, an index 202 to the page table 220, and an offset 203. In this example, the index 201 to the page directory table 210 is 10 bits, the index 202 to the page table 220 is 10 bits, and the offset 203 is 12 bits. That is, the virtual address 200 is 32 bits.

ページディレクトリテーブル210は、ページディレクトリエントリ211(PDE)の配列を格納する。   The page directory table 210 stores an array of page directory entries 211 (PDE).

ページテーブル220は、ページテーブルエントリ221(PTE)の配列を格納する。ページテーブルエントリ221は、仮想アドレス200とメモリバスに出力される物理アドレス300とのマッピング情報に相当する。   The page table 220 stores an array of page table entries 221 (PTE). The page table entry 221 corresponds to mapping information between the virtual address 200 and the physical address 300 output to the memory bus.

プロセッサ101の制御レジスタ230(CR3)が操作されることによって、プロセッサ101のステートは、プロテクティッドモードに遷移する。一旦、プロセッサ101のステートが遷移すると、オペレーティングシステムは、仮想アドレス200に基づいてページディレクトリテーブル210及びページテーブル220を参照する。   By operating the control register 230 (CR3) of the processor 101, the state of the processor 101 shifts to the protected mode. Once the state of the processor 101 transitions, the operating system refers to the page directory table 210 and the page table 220 based on the virtual address 200.

仮想アドレス200と物理アドレス300とのマッピングのハンドリングは、MMU102によって行われる。近年のL1からL3のキャッシュを備えるCPUにおいて、メモリアクセスは非常に大きな性能上のペナルティとなる。これは、MMU102においても同様である。そのため、仮想アドレス200と物理アドレス300とのマッピング情報であるページテーブルエントリ221は、TLB103にキャッシュされる。   The MMU 102 handles the mapping between the virtual address 200 and the physical address 300. In recent CPUs with L1 to L3 caches, memory access is a very large performance penalty. The same applies to the MMU 102. Therefore, the page table entry 221 that is mapping information between the virtual address 200 and the physical address 300 is cached in the TLB 103.

CPUのクロックが数ギガヘルツとなった現在、メモリアクセスも1ナノ秒以下と高速になっているが、キャッシュミスの性能上のペナルティは非常に大きいものとなっている。TLB103のキャッシュミスも同様である。メモリ105のアドレスとその中身という関係にTLB103とCPUキャッシュは当たるため、両者はハードワイアードにて実装される。   Now that the CPU clock has reached several gigahertz, memory access has also become as fast as 1 nanosecond or less, but the performance penalty for cache misses is very large. The same applies to TLB 103 cache misses. Since the TLB 103 and the CPU cache correspond to the relationship between the address of the memory 105 and its contents, both are implemented in hardware.

図5を参照して、ページテーブルエントリ221の構成例を説明する。   A configuration example of the page table entry 221 will be described with reference to FIG.

ページテーブルエントリ221は、従来は「Ignored」であるビット9からビット11のうち、1つのビットがInhibitフラグ222になっている点を除き、従来と同じ構成である。Inhibitフラグ222は、仮想アドレス200から物理アドレス300への変換を禁止するかどうかを示すフラグである。本例では、ビット11がInhibitフラグ222になっているが、他のビットがInhibitフラグ222になっていてもよい。   The page table entry 221 has the same configuration as that of the prior art except that one bit among the bits 9 to 11 that are conventionally “Ignored” is the Inhibit flag 222. The Inhibit flag 222 is a flag indicating whether or not the conversion from the virtual address 200 to the physical address 300 is prohibited. In this example, the bit 11 is the Inhibit flag 222, but other bits may be the Inhibit flag 222.

Inhibitフラグ222がオンになっていれば、MMU102は、仮想アドレス200を物理アドレス300にマッピングする際にエクセプションをプロセッサ101に通知する。オペレーティングシステムは、新たにメモリ領域を確保する際に、Inhibitフラグ222をオンにする。   If the Inhibit flag 222 is on, the MMU 102 notifies the processor 101 of an exception when mapping the virtual address 200 to the physical address 300. The operating system turns on the Inhibit flag 222 when a new memory area is secured.

***動作の説明***
図6を参照して、実行制御装置100の動作を説明する。実行制御装置100の動作は、本実施の形態に係る実行制御方法に相当する。実行制御装置100の動作は、本実施の形態に係る実行制御プログラムの処理手順に相当する。
*** Explanation of operation ***
The operation of the execution control apparatus 100 will be described with reference to FIG. The operation of the execution control apparatus 100 corresponds to the execution control method according to the present embodiment. The operation of the execution control apparatus 100 corresponds to the processing procedure of the execution control program according to the present embodiment.

前述したように、TLB103、即ち、記憶部140は、仮想メモリのメモリ領域であるページごとに、ページテーブルエントリ221を記憶する。各ページのページテーブルエントリ221には、各ページに対応する物理メモリのアドレスへの変換を禁止するかどうかを示すInhibitフラグ222が含まれる。即ち、それぞれのページテーブルエントリ221には、仮想アドレス200から物理アドレス300への変換を禁止するかどうかを示すInhibitフラグ222が含まれる。   As described above, the TLB 103, that is, the storage unit 140 stores the page table entry 221 for each page that is a memory area of the virtual memory. The page table entry 221 for each page includes an Inhibit flag 222 indicating whether or not conversion to an address of a physical memory corresponding to each page is prohibited. That is, each page table entry 221 includes an Inhibit flag 222 indicating whether or not the conversion from the virtual address 200 to the physical address 300 is prohibited.

MMU102、即ち、管理部150は、1つのページが1つのプロセスに割り当てられる際に、当該1つのページのページテーブルエントリ221を記憶部140に書き込む。当該1つのページのページテーブルエントリ221には、当該1つのページに対応する物理メモリのアドレスへの変換を禁止することを示すInhibitフラグ222が含まれる。即ち、管理部150は、新たにページテーブルエントリ221を記憶部140に書き込む際には、そのページテーブルエントリ221に含まれるInhibitフラグ222をオンにする。   When one page is assigned to one process, the MMU 102, that is, the management unit 150 writes the page table entry 221 of the one page in the storage unit 140. The page table entry 221 of the one page includes an Inhibit flag 222 indicating that the conversion to the address of the physical memory corresponding to the one page is prohibited. That is, when a new page table entry 221 is written in the storage unit 140, the management unit 150 turns on the Inhibit flag 222 included in the page table entry 221.

管理部150は、仮想メモリへのアクセスが要求され、当該アクセスが要求された要求先ページのページテーブルエントリ221のInhibitフラグ222により、要求先ページに対応する物理メモリのアドレスへの変換が禁止されている場合に、図6に示すような例外処理を起動する。即ち、管理部150は、仮想アドレス200から物理アドレス300への変換が要求されたときには、その仮想アドレス200から特定されるページテーブルエントリ221のInhibitフラグ222を参照する。そして、管理部150は、Inhibitフラグ222がオンになっていれば、例外処理を起動する。一方、管理部150は、Inhibitフラグ222がオフになっていれば、仮想アドレス200から物理アドレス300への変換を行い、要求先ページのページテーブルエントリ221を更新する。具体的には、管理部150は、要求先ページのページテーブルエントリ221に含まれる、要求先ページへのアクセスの有無を示すフラグを更新する。   The management unit 150 is requested to access the virtual memory, and the Inhibit flag 222 of the page table entry 221 of the request destination page for which the access is requested is prohibited from being converted into the address of the physical memory corresponding to the request destination page. If so, exception processing as shown in FIG. 6 is started. That is, when the conversion from the virtual address 200 to the physical address 300 is requested, the management unit 150 refers to the Inhibit flag 222 of the page table entry 221 specified from the virtual address 200. Then, if the Inhibit flag 222 is on, the management unit 150 starts exception processing. On the other hand, if the Inhibit flag 222 is off, the management unit 150 converts the virtual address 200 to the physical address 300 and updates the page table entry 221 of the requested page. Specifically, the management unit 150 updates a flag indicating whether or not the request destination page is accessed, which is included in the page table entry 221 of the request destination page.

ステップS21からステップS23において、認証部160は、要求先ページが割り当てられたプロセスの認証を行う。具体的には、ステップS21において、認証部160は、エクセプションが発生したプロセスが保持するハッシュキーと認証データとを取得する。ステップS22において、認証部160は、ステップS21で取得した認証データのハッシュ値を演算する。ステップS23において、認証部160は、ステップS22で演算したハッシュ値と、ステップS21で取得したハッシュキーとを比較する。ハッシュ値とハッシュキーとが一致していれば、認証部160による認証が成功したことになり、フローはステップS24に進む。一方、ハッシュ値とハッシュキーとが一致していなければ、認証部160による認証が失敗したことになり、フローはステップS25に進む。   In steps S21 to S23, the authentication unit 160 authenticates the process to which the request destination page is assigned. Specifically, in step S21, the authentication unit 160 acquires a hash key and authentication data held by a process in which an exception has occurred. In step S22, the authentication unit 160 calculates a hash value of the authentication data acquired in step S21. In step S23, the authentication unit 160 compares the hash value calculated in step S22 with the hash key acquired in step S21. If the hash value and the hash key match, the authentication unit 160 has succeeded in authentication, and the flow proceeds to step S24. On the other hand, if the hash value and the hash key do not match, authentication by the authentication unit 160 has failed, and the flow proceeds to step S25.

ステップS24において、制御部130は、要求先ページのページテーブルエントリ221のInhibitフラグ222を更新する。具体的には、制御部130は、要求先ページのページテーブルエントリ221のInhibitフラグ222を、要求先ページに対応する物理メモリのアドレスへの変換を許可することを示すInhibitフラグ222に更新する。即ち、制御部130は、要求先ページのページテーブルエントリ221のInhibitフラグ222をオフにする。その後、例外処理が終了し、管理部150は、仮想アドレス200から物理アドレス300への変換を行い、要求先ページのページテーブルエントリ221を更新する。具体的には、管理部150は、要求先ページのページテーブルエントリ221に含まれる、要求先ページへのアクセスの有無を示すフラグを更新する。   In step S24, the control unit 130 updates the Inhibit flag 222 of the page table entry 221 of the request destination page. Specifically, the control unit 130 updates the Inhibit flag 222 of the page table entry 221 of the request destination page to an Inhibit flag 222 indicating that conversion to an address of the physical memory corresponding to the request destination page is permitted. That is, the control unit 130 turns off the Inhibit flag 222 of the page table entry 221 of the requested page. Thereafter, the exception processing ends, and the management unit 150 converts the virtual address 200 to the physical address 300, and updates the page table entry 221 of the requested page. Specifically, the management unit 150 updates a flag indicating whether or not the request destination page is accessed, which is included in the page table entry 221 of the request destination page.

ステップS25において、制御部130は、エクセプションが発生したプロセスが不正アクセスを行ったと判断し、そのプロセスを強制終了する。即ち、制御部130は、認証部160による認証が失敗したプロセスを削除する。   In step S25, the control unit 130 determines that the process in which the exception has occurred has performed unauthorized access, and forcibly terminates the process. That is, the control unit 130 deletes the process for which the authentication by the authentication unit 160 has failed.

***実施の形態の効果の説明***
本実施の形態では、認証部160が、仮想メモリのメモリ領域が割り当てられたプロセスの認証を行う。管理部150は、認証部160による認証が失敗したプロセスに割り当てられたメモリ領域のアドレスから物理メモリのアドレスへの変換を中止する。このため、本実施の形態によれば、保護すべきメモリ領域のデータにセキュアにアクセスするシステムを提供することが可能となる。
*** Explanation of the effect of the embodiment ***
In the present embodiment, the authentication unit 160 authenticates the process to which the memory area of the virtual memory is allocated. The management unit 150 stops the conversion from the address of the memory area assigned to the process for which the authentication by the authentication unit 160 has failed to the address of the physical memory. Therefore, according to the present embodiment, it is possible to provide a system that securely accesses data in a memory area to be protected.

本実施の形態では、管理部150により記憶部140に書き込まれるページテーブルエントリ221のInhibitフラグ222のデフォルト設定がオンである。制御部130は、管理部150により書き込まれたページテーブルエントリ221のうち、認証部160による認証が成功したプロセスに割り当てられたページのページテーブルエントリ221のInhibitフラグ222のみを更新する。このため、例外処理が異常終了した場合には、Inhibitフラグ222がオンのままとなり、要求先ページのデータが確実に保護される。   In the present embodiment, the default setting of the Inhibit flag 222 of the page table entry 221 written to the storage unit 140 by the management unit 150 is on. The control unit 130 updates only the Inhibit flag 222 of the page table entry 221 of the page assigned to the process successfully authenticated by the authentication unit 160 among the page table entries 221 written by the management unit 150. For this reason, when the exception processing ends abnormally, the Inhibit flag 222 remains on, and the data of the requested page is reliably protected.

本実施の形態では、メモリ領域のトレース又は共有がなされると、同一のデータに複数のTLBエントリが登録される。いずれの場合も、いずれかのプロセスがメモリ領域の解放を実行した場合、そのプロセスは該当するTLBエントリのシュートダウンを実行し、その一貫性を維持する。   In this embodiment, when the memory area is traced or shared, a plurality of TLB entries are registered in the same data. In either case, if any process performs a memory space release, it performs a shoot down of the appropriate TLB entry and maintains its consistency.

本実施の形態は、SMP(Symmetric・MultiProcessor)型のシステムに適用することもできる。システムの最適化設計において、ページテーブル220をあるプロセッサ101が変更したときは全てのプロセッサ101のTLBシュートダウンを行うという粒度の粗い実装が採用されてもよい。或いは、TLBエントリ単位に各プロセッサ101のTLBシュートダウンを行うという実装が採用されてもよい。これらの実装は、システムのトータルな性能目標に基づいて選択されるものであり、本実施の形態の適用を排除するものではない。   This embodiment can also be applied to an SMP (Symmetric MultiProcessor) type system. In the optimization design of the system, a coarse-grained implementation in which TLB shoot down of all the processors 101 is performed when a certain processor 101 changes the page table 220 may be adopted. Alternatively, an implementation in which TLB shoot down of each processor 101 is performed in units of TLB entries may be employed. These implementations are selected based on the total performance target of the system, and do not exclude application of the present embodiment.

以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、いくつかを組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、いずれか1つ又はいくつかを部分的に実施しても構わない。具体的には、これらの実施の形態の説明において「部」として説明するもののうち、いずれか1つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。   As mentioned above, although embodiment of this invention was described, you may implement combining some of these embodiment. Alternatively, any one or some of these embodiments may be partially implemented. Specifically, any one of those described as “parts” in the description of these embodiments may be employed, or some arbitrary combinations may be employed. In addition, this invention is not limited to these embodiment, A various change is possible as needed.

100 実行制御装置、101 プロセッサ、102 MMU、103 TLB、104 メモリコントローラ、105 メモリ、106 補助記憶装置、107 通信装置、110 提供部、120 判断部、130 制御部、140 記憶部、150 管理部、160 認証部、200 仮想アドレス、201 インデックス、202 インデックス、203 オフセット、210 ページディレクトリテーブル、211 ページディレクトリエントリ、220 ページテーブル、221 ページテーブルエントリ、222 Inhibitフラグ、230 制御レジスタ、300 物理アドレス。   100 execution control device, 101 processor, 102 MMU, 103 TLB, 104 memory controller, 105 memory, 106 auxiliary storage device, 107 communication device, 110 providing unit, 120 determination unit, 130 control unit, 140 storage unit, 150 management unit, 160 authentication unit, 200 virtual address, 201 index, 202 index, 203 offset, 210 page directory table, 211 page directory entry, 220 page table, 221 page table entry, 222 Inhibit flag, 230 control register, 300 physical address.

Claims (10)

ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する判断部と、
前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する制御部と
を備える実行制御装置。
Of the system calls issued to the operating system from the process started by the user, the issuer user who started the process that issued the memory operation system call, which is a system call issued for the operation of the memory area, A determination unit for determining whether or not the same allocation destination user that started the allocation destination process of the memory area operated by the issued memory operation system call;
An execution control apparatus comprising: a control unit that cancels execution of the memory operation system call that is determined by the determination unit to be different from the issuer user.
前記制御部は、前記判断部により前記発行元ユーザが前記割り当て先ユーザと同じであると判断されたメモリ操作システムコールをプロセッサに実行させ、前記発行元ユーザが前記オペレーティングシステムの管理者権限を持つスーパーユーザであっても、前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールを前記プロセッサに実行させない請求項1に記載の実行制御装置。   The control unit causes the processor to execute a memory operation system call that is determined by the determination unit to be the same as the issuer user, and the issuer user has administrator authority of the operating system. The execution control device according to claim 1, wherein even if the user is a super user, the processor does not cause the processor to execute a memory operation system call that is determined by the determination unit to be different from the assignment destination user. 前記制御部は、前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの発行元のプロセスを削除する請求項1又は2に記載の実行制御装置。   The execution control device according to claim 1, wherein the control unit deletes a process of a memory operation system call issuer that is determined by the determination unit to be different from the assignment destination user. プロセスとして動作する仮想マシンをユーザに利用させるサービスを提供する提供部
をさらに備え、
前記判断部は、前記仮想マシンに割り当てられたメモリ領域に対するメモリ操作システムコールの発行を検知した場合に、前記発行元ユーザが前記割り当て先ユーザと同じであるかどうかを判断する請求項1から3のいずれか1項に記載の実行制御装置。
A provision unit that provides a service that allows a user to use a virtual machine that operates as a process;
The determination unit determines whether or not the issuer user is the same as the assignment destination user when detecting the issuance of a memory operation system call to a memory area assigned to the virtual machine. The execution control device according to any one of the above.
仮想メモリのメモリ領域が割り当てられたプロセスの認証を行う認証部と、
前記認証部による認証が失敗したプロセスに割り当てられたメモリ領域のアドレスから物理メモリのアドレスへの変換を中止する管理部と
をさらに備える請求項1から4のいずれか1項に記載の実行制御装置。
An authentication unit for authenticating a process to which a memory area of virtual memory is allocated;
5. The execution control device according to claim 1, further comprising: a management unit that stops conversion from an address of a memory area allocated to a process in which authentication by the authentication unit has failed to an address of a physical memory. .
前記仮想メモリのメモリ領域であるページごとに、対応する前記物理メモリのアドレスへの変換を禁止するかどうかを示すフラグを含むページテーブルエントリを記憶する記憶部
をさらに備え、
前記管理部は、1つのページが1つのプロセスに割り当てられる際に、当該1つのページのページテーブルエントリとして、当該1つのページに対応する前記物理メモリのアドレスへの変換を禁止することを示すフラグを含むページテーブルエントリを前記記憶部に書き込み、
前記制御部は、前記管理部により書き込まれたページテーブルエントリのうち、前記認証部による認証が成功したプロセスに割り当てられたページのページテーブルエントリのフラグを更新する請求項5に記載の実行制御装置。
A storage unit that stores a page table entry including a flag indicating whether or not conversion to a corresponding physical memory address is prohibited for each page that is a memory area of the virtual memory;
A flag indicating that, when one page is allocated to one process, the management unit prohibits conversion to an address of the physical memory corresponding to the one page as a page table entry of the one page. A page table entry including
The execution control device according to claim 5, wherein the control unit updates a flag of a page table entry of a page assigned to a process successfully authenticated by the authentication unit among the page table entries written by the management unit. .
前記管理部は、前記仮想メモリへのアクセスが要求され、当該アクセスが要求された要求先ページのページテーブルエントリのフラグにより、前記要求先ページに対応する前記物理メモリのアドレスへの変換が禁止されている場合に、例外処理を起動し、
前記認証部は、前記例外処理として、前記要求先ページが割り当てられたプロセスの認証を行い、
前記制御部は、前記例外処理として、前記認証部による認証が成功した場合に、前記要求先ページのページテーブルエントリのフラグを、前記要求先ページに対応する前記物理メモリのアドレスへの変換を許可することを示すフラグに更新する請求項6に記載の実行制御装置。
The management unit is requested to access the virtual memory, and conversion to an address of the physical memory corresponding to the requested page is prohibited by a flag of a page table entry of the requested page requested to be accessed. If it is, start exception handling,
The authentication unit authenticates a process to which the request destination page is allocated as the exception processing,
The control unit permits the conversion of the flag of the page table entry of the request destination page to the address of the physical memory corresponding to the request destination page when the authentication unit succeeds as the exception processing The execution control device according to claim 6, wherein the execution control device is updated to a flag indicating that the operation is to be performed.
前記制御部は、前記認証部による認証が失敗したプロセスを削除する請求項6又は7に記載の実行制御装置。   The execution control apparatus according to claim 6 or 7, wherein the control unit deletes a process for which authentication by the authentication unit has failed. コンピュータが、ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断し、
前記コンピュータが、前記発行元ユーザが前記割り当て先ユーザと異なると判断したメモリ操作システムコールの実行を中止する実行制御方法。
Issuance by which the computer started the process that issued the memory operation system call, which is a system call issued for the operation of the memory area, among the system calls issued to the operating system from the process started by the user Determine whether the original user is the same as the allocated user who started the allocated process of the memory area operated by the issued memory operation system call,
An execution control method for canceling execution of a memory operation system call in which the computer determines that the issuing user is different from the assigned user.
コンピュータに、
ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する処理と、
前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する処理と
を実行させる実行制御プログラム。
On the computer,
Of the system calls issued to the operating system from the process started by the user, the issuer user who started the process that issued the memory operation system call, which is a system call issued for the operation of the memory area, A process for determining whether the allocation destination user who started the allocation process of the memory area operated by the issued memory operation system call is the same as the allocation destination user,
An execution control program for executing a process of canceling execution of a memory operation system call that is determined that the issuing user is different from the assigned user.
JP2017517395A 2015-09-07 2015-09-07 Execution control device, execution control method, and execution control program Active JP6257844B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/075319 WO2017042860A1 (en) 2015-09-07 2015-09-07 Execution control device, execution control method, and execution control program

Publications (2)

Publication Number Publication Date
JPWO2017042860A1 true JPWO2017042860A1 (en) 2017-09-07
JP6257844B2 JP6257844B2 (en) 2018-01-10

Family

ID=58240629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017517395A Active JP6257844B2 (en) 2015-09-07 2015-09-07 Execution control device, execution control method, and execution control program

Country Status (3)

Country Link
JP (1) JP6257844B2 (en)
TW (1) TWI626557B (en)
WO (1) WO2017042860A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066956A (en) * 1998-08-17 2000-03-03 Nec Corp Access right setting/verification system for shared memory
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture
JP2006331137A (en) * 2005-05-27 2006-12-07 Nec Corp Security management system for operating system, security management method and program therefor
US20140223129A1 (en) * 2013-02-06 2014-08-07 International Business Machines Corporation Key-based data security management
JP2014532201A (en) * 2011-10-13 2014-12-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method, system and computer program for memory protection of virtual guest

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327059B2 (en) * 2009-09-30 2012-12-04 Vmware, Inc. System and method to enhance memory protection for programs in a virtual machine environment
JP2012173870A (en) * 2011-02-18 2012-09-10 Toshiba Corp Semiconductor device and memory protection method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066956A (en) * 1998-08-17 2000-03-03 Nec Corp Access right setting/verification system for shared memory
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture
JP2006331137A (en) * 2005-05-27 2006-12-07 Nec Corp Security management system for operating system, security management method and program therefor
JP2014532201A (en) * 2011-10-13 2014-12-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method, system and computer program for memory protection of virtual guest
US20140223129A1 (en) * 2013-02-06 2014-08-07 International Business Machines Corporation Key-based data security management

Also Published As

Publication number Publication date
TWI626557B (en) 2018-06-11
JP6257844B2 (en) 2018-01-10
WO2017042860A1 (en) 2017-03-16
TW201710942A (en) 2017-03-16

Similar Documents

Publication Publication Date Title
KR102244645B1 (en) Management of authenticated variables
JP5500458B2 (en) Protecting the memory contents of the processor main memory
JP5736090B2 (en) Method, system and computer program for memory protection of virtual guest
US20170104597A1 (en) Technologies for end-to-end biometric-based authentication and platform locality assertion
JP2018523209A (en) Data processing apparatus and method using ownership table
US20080040566A1 (en) NoDMA cache
JP2008171389A (en) Method for domain logon and computer
EP3867763B1 (en) Trusted intermediary realm
JP7431224B2 (en) Parameter signatures for realm security configuration parameters
JP6257844B2 (en) Execution control device, execution control method, and execution control program
CN114077496A (en) Pre-POPA request for read on hit
JP2023519322A (en) Apparatus and method
US10705983B1 (en) Transparent conversion of common virtual storage
TW202343294A (en) Protecting execution environments within domains
TW202343258A (en) Execution environment mismatch
TW202343264A (en) Maintenance operations across subdivided memory domains

Legal Events

Date Code Title Description
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: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171205

R150 Certificate of patent or registration of utility model

Ref document number: 6257844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250