JP6257844B2 - 実行制御装置及び実行制御方法及び実行制御プログラム - Google Patents

実行制御装置及び実行制御方法及び実行制御プログラム Download PDF

Info

Publication number
JP6257844B2
JP6257844B2 JP2017517395A JP2017517395A JP6257844B2 JP 6257844 B2 JP6257844 B2 JP 6257844B2 JP 2017517395 A JP2017517395 A JP 2017517395A JP 2017517395 A JP2017517395 A JP 2017517395A JP 6257844 B2 JP6257844 B2 JP 6257844B2
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.)
Active
Application number
JP2017517395A
Other languages
English (en)
Other versions
JPWO2017042860A1 (ja
Inventor
坂倉 隆史
隆史 坂倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Application granted granted Critical
Publication of JP6257844B2 publication Critical patent/JP6257844B2/ja
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Description

本発明は、実行制御装置及び実行制御方法及び実行制御プログラムに関するものである。
近年、クラウドと呼ばれる、インターネット接続を前提として計算機リソースを提供するサービスが広く浸透している。サービスの形態としては、ウェブアプリケーションそのものを提供するSaaS(Software・as・a・Service)、アプリケーションの開発プラットフォームを提供するPaaS(Platform・as・a・Service)、仮想マシンを提供するIaaS(Infrastructure・as・a・Service)等が知られている。
通常、クラウドベンダとその顧客との間では、SLA(Service・Level・Agreement)と呼ばれる、課金、サービスの信頼性、セキュリティ等に関する契約が結ばれる。しかし、悪意のあるアドミニストレータの存在は完全に否定できるものではない。アドミニストレータは、システム上の全ての権限を有するスーパーユーザである。したがって、契約上は顧客のストレージデータ或いはメモリデータの秘匿性が担保されていても、悪意のあるアドミニストレータによってデータが盗まれたり、改ざんされたりする可能性がある。
IaaSで提供される仮想マシンは、その仮想マシンが稼働するオペレーティングシステムにとっては単なるアプリケーションプログラムに過ぎない。したがって、オペレーティングシステムのスーパーユーザであれば、仮想マシンが使用するメモリ領域のデータを取得することが可能である。
特許文献1には、アプリケーションプログラムからオペレーティングシステムへシステムコールが発行される際に、当該アプリケーションプログラムが当該システムコールのサービスを受ける権限を有するかどうかを検証する技術が開示されている。
特開2006−331137号公報
従来の技術では、悪意のあるアドミニストレータの存在に対処することができない。特許文献1に記載の技術においても、スーパーユーザがシステムのあらゆるリソースにアクセスできる可能性は、依然として排除されていない。
本発明は、スーパーユーザであっても、保護すべきメモリ領域のデータにアクセスできないシステムを提供することを目的とする。
本発明の一態様に係る実行制御装置は、
ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する判断部と、
前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する制御部とを備える。
本発明では、メモリ領域の操作のために発行されたシステムコールの発行元のプロセスを起動したユーザが、そのメモリ領域の割り当て先のプロセスを起動したユーザと同じでなければ、そのシステムコールは実行されない。このため、本発明によれば、スーパーユーザであっても、保護すべきメモリ領域のデータにアクセスできないシステムを提供することが可能となる。
実施の形態1に係る実行制御装置の構成を示すブロック図。 実施の形態1に係る実行制御装置の動作を示すフローチャート。 実施の形態2に係る実行制御装置の構成を示すブロック図。 実施の形態2に係る仮想メモリの実装例を示す図。 実施の形態2に係るページテーブルエントリの構成例を示す図。 実施の形態2に係る実行制御装置の動作を示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
実施の形態1.
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
***構成の説明***
図1を参照して、本実施の形態に係る装置である実行制御装置100の構成を説明する。
実行制御装置100は、提供部110と、判断部120と、制御部130とを備える。
本実施の形態において、実行制御装置100は、コンピュータである。具体的には、実行制御装置100は、IaaSを提供するホストコンピュータである。提供部110、判断部120、及び、制御部130の機能は、ソフトウェアにより実現される。
実行制御装置100は、プロセッサ101、MMU102(Memory・Management・Unit)、TLB103(Translation・Lookaside・Buffer)、メモリコントローラ104、メモリ105、補助記憶装置106、通信装置107といったハードウェアを備える。プロセッサ101は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ101は、プロセッシングを行うIC(Integrated・Circuit)である。プロセッサ101は、具体的には、CPU(Central・Processing・Unit)である。
MMU102は、仮想メモリのアドレスである仮想アドレスとメモリ105のアドレスである物理アドレスとの変換を行うICである。
TLB103は、仮想アドレスと物理アドレスとのマッピング情報を一時的に格納するバッファメモリである。
メモリコントローラ104は、プロセッサ101によりメモリ105に書き込まれるデータの流れ、及び、プロセッサ101によりメモリ105から読み取られるデータの流れを管理するICである。
メモリ105は、メインメモリ、即ち、物理メモリである。メモリ105は、具体的には、RAM(Random・Access・Memory)である。
補助記憶装置106は、少なくとも一部が仮想メモリとして機能する記憶装置である。補助記憶装置106は、具体的には、フラッシュメモリ、又は、HDD(Hard・Disk・Drive)である。
通信装置107は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。通信装置107は、具体的には、通信チップ又はNIC(Network・Interface・Card)である。
実行制御装置100は、ハードウェアとして、入力装置及びディスプレイの少なくともいずれかを備えていてもよい。
入力装置は、外部からデータをメモリ105に入力するために用いられる。入力装置は、具体的には、マウス、キーボード、又は、タッチパネルである。
ディスプレイは、メモリ105に記憶されたデータを表示するために用いられる。ディスプレイは、具体的には、LCD(Liquid・Crystal・Display)である。
補助記憶装置106には、プログラム群が記憶されている。プログラム群には、提供部110の機能を実現するプログラムが含まれる。このプログラムは、メモリ105にロードされ、プロセッサ101に読み込まれ、プロセッサ101によって実行される。プログラム群には、判断部120及び制御部130の機能を実現するオペレーティングシステムも含まれる。オペレーティングシステムの少なくとも一部がメモリ105にロードされ、プロセッサ101はオペレーティングシステムを実行しながら、提供部110の機能を実現するプログラムを実行する。
オペレーティングシステムの一般ユーザ、即ち、非スーパーユーザは、自分のプロセスの仮想メモリ領域をトレースすることはできるが、他ユーザのプロセスの仮想メモリ領域をトレースすることはできない。また、非スーパーユーザは、自分のプロセス間で仮想メモリ領域を共有することはできるが、自分のプロセスと他ユーザのプロセスとの間、或いは、他ユーザのプロセス間で仮想メモリ領域を共有することはできない。IaaSのホストオペレーティングシステム上で稼働する仮想マシンも、このような非スーパーユーザのプロセスである。
従来は、スーパーユーザであれば、いずれのプロセスの仮想メモリ領域をトレースすることも許容され、また、いずれのプロセス間で仮想メモリ領域を共有することも許容される。しかし、それでは、IaaSのホストオペレーティングシステムのアドミニストレータが、ホストオペレーティングシステム上で稼働する、いずれの仮想マシンのメモリデータも観察できることになってしまう。
後述するように、本実施の形態では、スーパーユーザであっても、他ユーザのプロセスの仮想メモリ領域をトレースすることが禁止され、また、他ユーザのプロセス間で仮想メモリ領域を共有することも禁止される。したがって、IaaSのホストオペレーティングシステム上で稼働する仮想マシンのメモリデータを、悪意のあるアドミニストレータから保護することができる。
プロセスが、そのプロセスの仮想メモリ領域をトレースしたり、そのプロセスと同じユーザの他のプロセスとの間で仮想メモリ領域を共有したりするためには、オペレーティングシステムが管理するデータの変更が必要になる。プロセッサ101では、オペレーティングシステムが管理するデータを、プロセスとして実行されるアプリケーションプログラムが破壊することがないよう、プロテクティッドモードと称される実行モードの設定が可能となっている。プロテクティッドモードを設定することで、オペレーティングシステムが稼働する仮想アドレス空間と、アプリケーションプログラムが稼働する仮想アドレス空間とが明確に区分される。このため、システムコールという、プロテクティッドモードにおいてアプリケーションプログラムがオペレーティングシステムの空間にアクセスする手段が提供されている。
一般ユーザのプロセスとして稼働するアプリケーションプログラムは、システムコールを発行することで、そのプロセスの仮想メモリ領域をトレースする機能、そのプロセスと同じユーザの他のプロセスとの間で仮想メモリ領域を共有する機能といった、オペレーティングシステムの様々な機能を利用することができる。
なお、実行制御装置100は、1つのプロセッサ101のみを備えていてもよいし、複数のプロセッサ101を備えていてもよい。複数のプロセッサ101がプログラム群を連携して実行してもよい。
提供部110、判断部120、及び、制御部130の処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置106、メモリ105、又は、プロセッサ101内のレジスタ又はキャッシュメモリに記憶される。
プログラム群は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital・Versatile・Disc)等の可搬記録媒体に記憶されてもよい。
プロセッサ101、MMU102、TLB103、メモリコントローラ104、メモリ105を、総称して「プロセッシングサーキットリ」という。つまり、提供部110、判断部120、制御部130といった「部」の機能は、プロセッシングサーキットリにより実現される。
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。
***動作の説明***
図2を参照して、実行制御装置100の動作を説明する。実行制御装置100の動作は、本実施の形態に係る実行制御方法に相当する。実行制御装置100の動作は、本実施の形態に係る実行制御プログラムの処理手順に相当する。
ステップS11からステップS15の処理は、少なくとも提供部110が、プロセスとして動作する仮想マシンをユーザに利用させるサービスを提供しているときに実施される。本実施の形態において、提供部110は、そのようなサービスとして、IaaSを提供する。具体的には、提供部110は、プロセッサ101を用いて仮想マシンをオペレーティングシステム上で稼働させる。提供部110は、通信装置107を用いてインターネット経由でデータを送受信することで、稼働中の仮想マシンをユーザに利用させる。
ステップS11において、判断部120は、システムコールの発行を検知するまで待機する。具体的には、判断部120は、システムコールの発行によってプロセッサ101に割り込みが発生することで起動される。判断部120は、起動されることでシステムコールが発行されたことを検知する。また、判断部120は、少なくとも発行されたシステムコールの番号と、当該システムコールの引数と、当該システムコールの発行元のプロセスを起動したユーザの識別子とをプロセッサ101のレジスタから取得する。
判断部120によりシステムコールの発行が検知された場合、フローはステップS12に進む。
ステップS12において、判断部120は、ステップS11で発行を検知したシステムコールがメモリ操作システムコールであるかどうかを判断する。メモリ操作システムコールとは、ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールのことである。具体的には、判断部120は、ステップS11で取得したシステムコールの番号とメモリ操作システムコールの番号とを比較し、比較結果をブール値として出力する。仮に番号が一致することを示すブール値が「1」であるとすると、「1」が出力された場合には、判断部120が、発行されたシステムコールがメモリ操作システムコールであると判断したことになる。一方、「0」が出力された場合には、判断部120が、発行されたシステムコールがメモリ操作システムコールではないと判断したことになる。
判断部120により、発行されたシステムコールがメモリ操作システムコールであると判断された場合、フローはステップS13に進む。そうでない場合、フローはステップS14に進む。
ステップS13において、判断部120は、メモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する。具体的には、判断部120は、ステップS11で取得したシステムコールの引数から、メモリ操作システムコールによって操作されるメモリ領域の仮想アドレスを取得する。TLB103には、前述したマッピング情報の一部として、仮想アドレス空間ごとに、割り当て先のプロセスの識別子が格納されている。判断部120は、取得した仮想アドレスを含む仮想アドレス空間の割り当て先の識別子としてTLB103に格納されているプロセスの識別子を、プロセッサ101を用いて、MMU102を介して取得する。判断部120は、取得したプロセスの識別子から、当該プロセスを起動したユーザである割り当て先ユーザの識別子を特定する。判断部120は、ステップS11で取得したユーザの識別子、即ち、発行元ユーザの識別子と、特定した割り当て先ユーザの識別子とを比較し、比較結果をブール値として出力する。仮に識別子が一致することを示すブール値が「1」であるとすると、「1」が出力された場合には、判断部120が、発行元ユーザが割り当て先ユーザと同じであると判断したことになる。一方、「0」が出力された場合には、判断部120が、発行元ユーザが割り当て先ユーザと異なると判断したことになる。
判断部120により、発行元ユーザが割り当て先ユーザと同じであると判断された場合、フローはステップS14に進む。そうでない場合、フローはステップS15に進む。
ステップS14において、制御部130は、正常処理を行う。具体的には、制御部130は、判断部120によりメモリ操作システムコールではないと判断されたシステムコールをプロセッサに実行させる。また、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと同じであると判断されたメモリ操作システムコールもプロセッサ101に実行させる。即ち、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する。
ステップS15において、制御部130は、エラー処理を行う。具体的には、制御部130は、発行元ユーザがオペレーティングシステムの管理者権限を持つスーパーユーザであっても、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールをプロセッサ101に実行させない。本実施の形態において、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールの発行元のプロセスを強制終了する。即ち、制御部130は、判断部120により発行元ユーザが割り当て先ユーザと異なると判断されたメモリ操作システムコールの発行元のプロセスを削除する。
***実施の形態の効果の説明***
本実施の形態では、メモリ領域の操作のために発行されたシステムコールの発行元のプロセスを起動したユーザが、そのメモリ領域の割り当て先のプロセスを起動したユーザと同じでなければ、そのシステムコールは実行されない。このため、本実施の形態によれば、スーパーユーザであっても、保護すべきメモリ領域のデータにアクセスできないシステムを提供することが可能となる。
本実施の形態では、メモリ領域が割り当てられたユーザ以外のユーザによる当該メモリ領域への不正なアクセスを阻止できるだけでなく、悪意のあるスーパーユーザによる当該メモリ領域へのアクセスも阻止することができる。したがって、安全性の高いサービスを提供することが可能となる。メモリ領域が割り当てられたユーザによる当該メモリ領域のトレース、共有等の操作は正常に実施されるため、サービスの利便性は維持される。
本実施の形態では、メモリ領域のトレース、共有といったメモリ管理に関するシステムコールの処理中の権限チェックにおいて、スーパーユーザを「権限あり」とするロジックを排除することにより、仮想マシンのメモリデータを、悪意のあるスーパーユーザから保護することができる。
なお、判断部120は、ステップS11で仮想マシンに割り当てられたメモリ領域に対するメモリ操作システムコールの発行を検知した場合のみ、ステップS13で発行元ユーザが割り当て先ユーザと同じであるかどうかを判断してもよい。その場合でも、少なくとも仮想マシンが使用するメモリ領域のデータは保護することができる。
***他の構成***
実行制御装置100は、プロセスとして仮想マシンを実行することでIaaSを提供するホストコンピュータに限定されるものではなく、任意のプロセスを実行するコンピュータであればよい。即ち、本実施の形態の変形例として、実行制御装置100が提供部110を備えない構成を採用してもよい。
実施の形態2.
実施の形態1では、オペレーティングシステムが管理するユーザアカウントによって、仮想マシンが使用するメモリ領域へのアクセスが制御される。即ち、実施の形態1は、ユーザ管理機構を利用して、仮想マシンのメモリデータを保護するものである。
一般的なウェブサーバには、インターネット接続が可能ならば、誰でもアクセスすることができる。したがって、ウェブサービスでは、ユーザに対して認められる、オペレーティングシステムにおける権限レベルは、極めて限定的なものとされる。このため、銀行等が提供するウェブサービスでは、ユーザの要求に応じて、勘定系システムにセキュアにアクセスする手段が提供される。具体的には、ソフトウェアキーボード或いはパスワードに加え、乱数に対するハッシュコード等を使用した厳重な認証機構が提供される。
本実施の形態でも、仮想マシンが使用するメモリ領域にセキュアにアクセスする手段として、プロセスの認証を行う認証機構が提供される。メモリ管理機構には、その認証機構を利用するための仕組みが導入される。即ち、本実施の形態は、認証機構とメモリ管理機構とを利用して、仮想マシンのメモリデータを保護するものである。
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態1との差異を説明する。
***構成の説明***
図3を参照して、本実施の形態に係る装置である実行制御装置100の構成を説明する。
実行制御装置100は、実施の形態1と同じように、提供部110と、判断部120と、制御部130とを備える。実行制御装置100は、本実施の形態では、記憶部140と、管理部150と、認証部160とをさらに備える。なお、実行制御装置100は、判断部120を備えなくてもよい。
記憶部140は、TLB103により実現される。
管理部150は、MMU102により実現される。
認証部160の機能は、ソフトウェアにより実現される。具体的には、認証部160の機能は、制御部130の機能と同じように、オペレーティングシステムにより実現される。
図4を参照して、仮想メモリの実装例を説明する。
一旦、プロセッサ101のステートがプロテクティッドモードになると、プロセッサ101は、仮想メモリの仮想アドレス200を用いてオペレーティングシステム及びアプリケーションプログラムを実行する。
仮想アドレス200は、プロセッサ101が仮想メモリ上で命令の実行、データの参照、及び、データの更新を行うために使用するアドレスである。仮想アドレス200は、ページディレクトリテーブル210へのインデックス201と、ページテーブル220へのインデックス202と、オフセット203で構成される。本例では、ページディレクトリテーブル210へのインデックス201が10ビット、ページテーブル220へのインデックス202が10ビット、オフセット203が12ビットである。即ち、仮想アドレス200は、32ビットである。
ページディレクトリテーブル210は、ページディレクトリエントリ211(PDE)の配列を格納する。
ページテーブル220は、ページテーブルエントリ221(PTE)の配列を格納する。ページテーブルエントリ221は、仮想アドレス200とメモリバスに出力される物理アドレス300とのマッピング情報に相当する。
プロセッサ101の制御レジスタ230(CR3)が操作されることによって、プロセッサ101のステートは、プロテクティッドモードに遷移する。一旦、プロセッサ101のステートが遷移すると、オペレーティングシステムは、仮想アドレス200に基づいてページディレクトリテーブル210及びページテーブル220を参照する。
仮想アドレス200と物理アドレス300とのマッピングのハンドリングは、MMU102によって行われる。近年のL1からL3のキャッシュを備えるCPUにおいて、メモリアクセスは非常に大きな性能上のペナルティとなる。これは、MMU102においても同様である。そのため、仮想アドレス200と物理アドレス300とのマッピング情報であるページテーブルエントリ221は、TLB103にキャッシュされる。
CPUのクロックが数ギガヘルツとなった現在、メモリアクセスも1ナノ秒以下と高速になっているが、キャッシュミスの性能上のペナルティは非常に大きいものとなっている。TLB103のキャッシュミスも同様である。メモリ105のアドレスとその中身という関係にTLB103とCPUキャッシュは当たるため、両者はハードワイアードにて実装される。
図5を参照して、ページテーブルエントリ221の構成例を説明する。
ページテーブルエントリ221は、従来は「Ignored」であるビット9からビット11のうち、1つのビットがInhibitフラグ222になっている点を除き、従来と同じ構成である。Inhibitフラグ222は、仮想アドレス200から物理アドレス300への変換を禁止するかどうかを示すフラグである。本例では、ビット11がInhibitフラグ222になっているが、他のビットがInhibitフラグ222になっていてもよい。
Inhibitフラグ222がオンになっていれば、MMU102は、仮想アドレス200を物理アドレス300にマッピングする際にエクセプションをプロセッサ101に通知する。オペレーティングシステムは、新たにメモリ領域を確保する際に、Inhibitフラグ222をオンにする。
***動作の説明***
図6を参照して、実行制御装置100の動作を説明する。実行制御装置100の動作は、本実施の形態に係る実行制御方法に相当する。実行制御装置100の動作は、本実施の形態に係る実行制御プログラムの処理手順に相当する。
前述したように、TLB103、即ち、記憶部140は、仮想メモリのメモリ領域であるページごとに、ページテーブルエントリ221を記憶する。各ページのページテーブルエントリ221には、各ページに対応する物理メモリのアドレスへの変換を禁止するかどうかを示すInhibitフラグ222が含まれる。即ち、それぞれのページテーブルエントリ221には、仮想アドレス200から物理アドレス300への変換を禁止するかどうかを示すInhibitフラグ222が含まれる。
MMU102、即ち、管理部150は、1つのページが1つのプロセスに割り当てられる際に、当該1つのページのページテーブルエントリ221を記憶部140に書き込む。当該1つのページのページテーブルエントリ221には、当該1つのページに対応する物理メモリのアドレスへの変換を禁止することを示すInhibitフラグ222が含まれる。即ち、管理部150は、新たにページテーブルエントリ221を記憶部140に書き込む際には、そのページテーブルエントリ221に含まれるInhibitフラグ222をオンにする。
管理部150は、仮想メモリへのアクセスが要求され、当該アクセスが要求された要求先ページのページテーブルエントリ221のInhibitフラグ222により、要求先ページに対応する物理メモリのアドレスへの変換が禁止されている場合に、図6に示すような例外処理を起動する。即ち、管理部150は、仮想アドレス200から物理アドレス300への変換が要求されたときには、その仮想アドレス200から特定されるページテーブルエントリ221のInhibitフラグ222を参照する。そして、管理部150は、Inhibitフラグ222がオンになっていれば、例外処理を起動する。一方、管理部150は、Inhibitフラグ222がオフになっていれば、仮想アドレス200から物理アドレス300への変換を行い、要求先ページのページテーブルエントリ221を更新する。具体的には、管理部150は、要求先ページのページテーブルエントリ221に含まれる、要求先ページへのアクセスの有無を示すフラグを更新する。
ステップS21からステップS23において、認証部160は、要求先ページが割り当てられたプロセスの認証を行う。具体的には、ステップS21において、認証部160は、エクセプションが発生したプロセスが保持するハッシュキーと認証データとを取得する。ステップS22において、認証部160は、ステップS21で取得した認証データのハッシュ値を演算する。ステップS23において、認証部160は、ステップS22で演算したハッシュ値と、ステップS21で取得したハッシュキーとを比較する。ハッシュ値とハッシュキーとが一致していれば、認証部160による認証が成功したことになり、フローはステップS24に進む。一方、ハッシュ値とハッシュキーとが一致していなければ、認証部160による認証が失敗したことになり、フローはステップS25に進む。
ステップS24において、制御部130は、要求先ページのページテーブルエントリ221のInhibitフラグ222を更新する。具体的には、制御部130は、要求先ページのページテーブルエントリ221のInhibitフラグ222を、要求先ページに対応する物理メモリのアドレスへの変換を許可することを示すInhibitフラグ222に更新する。即ち、制御部130は、要求先ページのページテーブルエントリ221のInhibitフラグ222をオフにする。その後、例外処理が終了し、管理部150は、仮想アドレス200から物理アドレス300への変換を行い、要求先ページのページテーブルエントリ221を更新する。具体的には、管理部150は、要求先ページのページテーブルエントリ221に含まれる、要求先ページへのアクセスの有無を示すフラグを更新する。
ステップS25において、制御部130は、エクセプションが発生したプロセスが不正アクセスを行ったと判断し、そのプロセスを強制終了する。即ち、制御部130は、認証部160による認証が失敗したプロセスを削除する。
***実施の形態の効果の説明***
本実施の形態では、認証部160が、仮想メモリのメモリ領域が割り当てられたプロセスの認証を行う。管理部150は、認証部160による認証が失敗したプロセスに割り当てられたメモリ領域のアドレスから物理メモリのアドレスへの変換を中止する。このため、本実施の形態によれば、保護すべきメモリ領域のデータにセキュアにアクセスするシステムを提供することが可能となる。
本実施の形態では、管理部150により記憶部140に書き込まれるページテーブルエントリ221のInhibitフラグ222のデフォルト設定がオンである。制御部130は、管理部150により書き込まれたページテーブルエントリ221のうち、認証部160による認証が成功したプロセスに割り当てられたページのページテーブルエントリ221のInhibitフラグ222のみを更新する。このため、例外処理が異常終了した場合には、Inhibitフラグ222がオンのままとなり、要求先ページのデータが確実に保護される。
本実施の形態では、メモリ領域のトレース又は共有がなされると、同一のデータに複数のTLBエントリが登録される。いずれの場合も、いずれかのプロセスがメモリ領域の解放を実行した場合、そのプロセスは該当するTLBエントリのシュートダウンを実行し、その一貫性を維持する。
本実施の形態は、SMP(Symmetric・MultiProcessor)型のシステムに適用することもできる。システムの最適化設計において、ページテーブル220をあるプロセッサ101が変更したときは全てのプロセッサ101のTLBシュートダウンを行うという粒度の粗い実装が採用されてもよい。或いは、TLBエントリ単位に各プロセッサ101のTLBシュートダウンを行うという実装が採用されてもよい。これらの実装は、システムのトータルな性能目標に基づいて選択されるものであり、本実施の形態の適用を排除するものではない。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、いくつかを組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、いずれか1つ又はいくつかを部分的に実施しても構わない。具体的には、これらの実施の形態の説明において「部」として説明するもののうち、いずれか1つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
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 物理アドレス。

Claims (10)

  1. ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する判断部と、
    前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する制御部と
    を備える実行制御装置。
  2. 前記制御部は、前記判断部により前記発行元ユーザが前記割り当て先ユーザと同じであると判断されたメモリ操作システムコールをプロセッサに実行させ、前記発行元ユーザが前記オペレーティングシステムの管理者権限を持つスーパーユーザであっても、前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールを前記プロセッサに実行させない請求項1に記載の実行制御装置。
  3. 前記制御部は、前記判断部により前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの発行元のプロセスを削除する請求項1又は2に記載の実行制御装置。
  4. プロセスとして動作する仮想マシンをユーザに利用させるサービスを提供する提供部
    をさらに備え、
    前記判断部は、前記仮想マシンに割り当てられたメモリ領域に対するメモリ操作システムコールの発行を検知した場合に、前記発行元ユーザが前記割り当て先ユーザと同じであるかどうかを判断する請求項1から3のいずれか1項に記載の実行制御装置。
  5. 仮想メモリのメモリ領域が割り当てられたプロセスの認証を行う認証部と、
    前記認証部による認証が失敗したプロセスに割り当てられたメモリ領域のアドレスから物理メモリのアドレスへの変換を中止する管理部と
    をさらに備える請求項1から4のいずれか1項に記載の実行制御装置。
  6. 前記仮想メモリのメモリ領域であるページごとに、対応する前記物理メモリのアドレスへの変換を禁止するかどうかを示すフラグを含むページテーブルエントリを記憶する記憶部
    をさらに備え、
    前記管理部は、1つのページが1つのプロセスに割り当てられる際に、当該1つのページのページテーブルエントリとして、当該1つのページに対応する前記物理メモリのアドレスへの変換を禁止することを示すフラグを含むページテーブルエントリを前記記憶部に書き込み、
    前記制御部は、前記管理部により書き込まれたページテーブルエントリのうち、前記認証部による認証が成功したプロセスに割り当てられたページのページテーブルエントリのフラグを更新する請求項5に記載の実行制御装置。
  7. 前記管理部は、前記仮想メモリへのアクセスが要求され、当該アクセスが要求された要求先ページのページテーブルエントリのフラグにより、前記要求先ページに対応する前記物理メモリのアドレスへの変換が禁止されている場合に、例外処理を起動し、
    前記認証部は、前記例外処理として、前記要求先ページが割り当てられたプロセスの認証を行い、
    前記制御部は、前記例外処理として、前記認証部による認証が成功した場合に、前記要求先ページのページテーブルエントリのフラグを、前記要求先ページに対応する前記物理メモリのアドレスへの変換を許可することを示すフラグに更新する請求項6に記載の実行制御装置。
  8. 前記制御部は、前記認証部による認証が失敗したプロセスを削除する請求項6又は7に記載の実行制御装置。
  9. コンピュータが、ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断し、
    前記コンピュータが、前記発行元ユーザが前記割り当て先ユーザと異なると判断したメモリ操作システムコールの実行を中止する実行制御方法。
  10. コンピュータに、
    ユーザにより起動されたプロセスからオペレーティングシステムに対して発行されるシステムコールのうち、メモリ領域の操作のために発行されるシステムコールであるメモリ操作システムコールの発行元のプロセスを起動した発行元ユーザが、発行されたメモリ操作システムコールによって操作されるメモリ領域の割り当て先のプロセスを起動した割り当て先ユーザと同じであるかどうかを判断する処理と、
    前記発行元ユーザが前記割り当て先ユーザと異なると判断されたメモリ操作システムコールの実行を中止する処理と
    を実行させる実行制御プログラム。
JP2017517395A 2015-09-07 2015-09-07 実行制御装置及び実行制御方法及び実行制御プログラム Active JP6257844B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/075319 WO2017042860A1 (ja) 2015-09-07 2015-09-07 実行制御装置及び実行制御方法及び実行制御プログラム

Publications (2)

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

Family

ID=58240629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017517395A Active JP6257844B2 (ja) 2015-09-07 2015-09-07 実行制御装置及び実行制御方法及び実行制御プログラム

Country Status (3)

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

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066956A (ja) * 1998-08-17 2000-03-03 Nec Corp 共有メモリのアクセス権設定・検証方式
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
JP4379382B2 (ja) * 2005-05-27 2009-12-09 日本電気株式会社 オペレーティングシステムのセキュリティ管理方式及びそのセキュリティ管理方法及びそのプログラム
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 (ja) * 2011-02-18 2012-09-10 Toshiba Corp 半導体装置及びメモリ保護方法
US8788763B2 (en) * 2011-10-13 2014-07-22 International Business Machines Corporation Protecting memory of a virtual guest
US9858207B2 (en) * 2013-02-06 2018-01-02 International Business Machines Corporation Page level key-based memory protection

Also Published As

Publication number Publication date
TW201710942A (zh) 2017-03-16
JPWO2017042860A1 (ja) 2017-09-07
WO2017042860A1 (ja) 2017-03-16
TWI626557B (zh) 2018-06-11

Similar Documents

Publication Publication Date Title
KR102244645B1 (ko) 인증된 변수의 관리
JP5500458B2 (ja) プロセッサメインメモリのメモリコンテンツのセキュリティ保護
EP3867763B1 (en) Trusted intermediary realm
US20080040566A1 (en) NoDMA cache
JP7431224B2 (ja) レルム・セキュリティ構成パラメータのためのパラメータ署名
JP2008171389A (ja) ドメイン・ログオンの方法、およびコンピュータ
JP2023519322A (ja) 装置及び方法
JP2020042341A (ja) プロセッシングデバイス及びソフトウェア実行制御方法
US20240193260A1 (en) Apparatus and method for handling stashing transactions
JP6257844B2 (ja) 実行制御装置及び実行制御方法及び実行制御プログラム
CN114077496A (zh) 命中时读取的前popa请求
US10705983B1 (en) Transparent conversion of common virtual storage
US20240289150A1 (en) Secure management of device control information in confidential computing environments

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