JP5571201B2 - ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限 - Google Patents

ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限 Download PDF

Info

Publication number
JP5571201B2
JP5571201B2 JP2012552453A JP2012552453A JP5571201B2 JP 5571201 B2 JP5571201 B2 JP 5571201B2 JP 2012552453 A JP2012552453 A JP 2012552453A JP 2012552453 A JP2012552453 A JP 2012552453A JP 5571201 B2 JP5571201 B2 JP 5571201B2
Authority
JP
Japan
Prior art keywords
memory
processor
mode
control circuit
access
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
JP2012552453A
Other languages
English (en)
Other versions
JP2013519934A (ja
Inventor
リチャード・ロイ・グリセンスウェイト
Original Assignee
アーム・リミテッド
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 アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2013519934A publication Critical patent/JP2013519934A/ja
Application granted granted Critical
Publication of JP5571201B2 publication Critical patent/JP5571201B2/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
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

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

Description

本発明は、データ処理システムの分野に関する。より具体的には、本発明は、複数のハードウェア動作モード、および現在のハードウェアモードに基づくメモリアクセスの制御を有する、データ処理システムに関する。
プロセッサが複数のハードウェア動作モードを有するデータ処理システムを提供することは、既知である。例えば、プロセッサは、特権モードおよびユーザモードを含む、ハードウェアモードで動作することができる。また、他の目的のためのさらなるハードウェアモードが存在し得る。特権モードは、通常、オペレーティングシステムカーネル等のより信頼性のあるプログラムコードに使用され、プロセッサがユーザモードで動作している際より多くのメモリエリアへのアクセスを有する。ユーザモードは、典型的に、アプリケーションプログラム等の前者に比べて信頼性のより少ないプログラムに使用される。このようにして、プロセッサの動作の現在のモードに敏感なメモリ管理ユニットまたはメモリ保護ユニットを使用することによって、プログラムからメモリの所定域への悪意のある、または不慮のアクセスが防止され得る、これは、プロセッサが特権モードではない場合にメモリの所定域にアクセスすることを防止する。そのようなシステム内におけるモデルは、特権動作モードが、ユーザモードより多くのシステム資源、例えば、メモリ内の域へのアクセスを有するというものである。
1つの種類の生じる可能性がある悪意のあるセキュリティ攻撃、または不運な誤操作は、システムが、特権モードで実行している間に、ユーザモードで書き込み可能なメモリの域内に記憶されたプログラム命令を不適切に実行させられるというものである。このようにして、一例として、人は、悪意のあるプログラム命令をユーザモードでアクセス可能なメモリの域に書き込み、次いで、プロセッサを、ユーザモードでアクセス可能なメモリエリアから読み出される悪意のあるプログラム命令を実行している間に、メモリの保護領域へのアクセスが行われ得る、特権モードに切り替えることができる。
一態様から見ると、本発明は、処理動作を実施するようにプログラム命令のストリームに応答する、プロセッサと、プロセッサおよびメモリに連結され、プロセッサによるメモリへのアクセスを制御するように構成された、メモリ制御回路と、を備え、プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、メモリ制御回路は、(i)プロセッサが第1のモードである場合、メモリ制御回路、メモリの第1の部分への書き込みアクセスを許可するとともにメモリの第2の部分への少なくとも書き込みアクセスを許可せず、(ii)プロセッサが第2のモードである場合、メモリ制御回路、メモリの第1の部分への書き込みアクセスを許可するとともにメモリの第2の部分への書き込みアクセスを許可するように、メモリへのアクセスを制御し、メモリ制御回路は、前記第2のモードの前記プロセッサに与えられない権利を前記第1のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、プロセッサが、第2のモードのプロセッサによる実行のためのプログラム命令をメモリの第1の部分から読み出すことを防止し、
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第1の部分からデータ値を読み出すことを許可するための装置を提供する。
本技法は、これらのプログラム命令がユーザモードで書き込まれ得るメモリの領域から読み込まれる際、システムが特権モードでプログラム命令を正当に実行する理由は、実際にはそれ程ないと認識する。特権モードで実行されるコードは、通常、特権モードでのみ書き込み可能なメモリ内に記憶される。これは、特権モードで実行されるプログラム命令を、不適切な不慮の改ざん、ならびに悪意のある改ざんから保護する。したがって、本技法は、プロセッサが、ユーザモードで書き込み可能であり得るメモリの域から、特権モードでの実行のためのプログラム命令を読み出すことを防止するために、メモリ制御回路を使用することによって、特権モードにユーザモードより多くのアクセス権を与えるこの分野の一般的な技術的偏見に対抗する。メモリ制御回路のこのアクションは、ハードウェアが、設計者がユーザモードで書き込み可能なメモリの域内に記憶されるプログラム命令を特権モードで実行することを望むシステムを支援することができ、一方、メモリ制御回路によって提供されるハードウェア施行機構を制御するセキュリティフラグを用いて、この能力をオフに切り替える、簡単な方法を提供するように、セキュリティフラグによって、グローバルにオンおよびオフを切り替えられてもよい。上記において、ハードウェアモードは、特権モードおよびユーザモードと称されてきたが、本技法は、そのようなモードを有するシステム内での使用に制限されず、より広くは、第1のモードおよび第2のモードを有するシステム内で使用されてもよく、第2のモードは、第1のモードより多くのメモリの領域へのアクセスを有し、依然として、第1のモードで書き込まれ得るメモリの領域から読み出されるプログラム命令を実行することを選択的に防止されることが理解される。
メモリ制御回路は、第1の部分として、メモリ内の1つ以上のメモリアドレス領域を識別し、第2の部分として、メモリ内の1つ以上のメモリアドレス領域を識別するように、制御データに応答し得る。したがって、第1の部分および第2の部分は、メモリ内で連続している必要はなく、メモリ制御回路によって読み出される制御データによって定義されてもよい。いくつかの実施形態では、これは、メモリ管理ユニットによって読み出される、メモリページテーブルデータであってもよい。
本技法は、第1のモードがアプリケーションプログラムを実行するためのユーザモードであり、第2のモードが少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであるシステムにおいて、特に有用である。
メモリ制御回路は、様々な異なる形態をとることができることが理解される。メモリ制御回路のいくつかの例は、メモリ管理ユニットおよびメモリ保護ユニットである。
セキュリティフラグは、便利に、プロセッサが第2のモードである際、プログラム命令制御下で書き込まれてもよく、セキュリティフラグは、プロセッサが第1のモードである際、プログラム命令制御下で書き込むことはできない。このようにして、第1のモードで動作している際にセキュリティフラグの値を変更することによって、セキュリティフラグによって提供されるセキュリティが回避され得ない。
別の態様から見ると、本発明は、プログラム命令のストリームに応えて処理動作を実施するためのプロセッサ手段と、プロセッサ手段おびデータを格納するためのメモリ手段に連結され、前記プロセッサ手段による前記メモリ手段へのアクセスを制御するための、メモリ制御手段回路と、を備え、プロセッサ手段は、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、メモリ制御手段は、(i)プロセッサ手段が第1のモードである場合、メモリ制御手段、メモリ手段の第1の部分への書き込みアクセスを許可するとともにメモリ手段の第2の部分への少なくとも書き込みアクセスを許可せず、(ii)プロセッサ手段が第2のモードである場合、メモリ制御手段、メモリ手段の第1の部分への書き込みアクセスを許可するとともにメモリ手段の第2の部分への書き込みアクセスを許可するように、メモリ手段へのアクセスを制御し、メモリ制御手段は、前記第2のモードの前記プロセッサに与えられない権利を前記第1のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、プロセッサ手段が、第2のモードのプロセッサ手段による実行のための前記プログラム命令をメモリ手段の前記第1の部分から読み出すことを防止し、前記セキュリティフラグが前記設定値を有するとともに前記プロセッサ手段が前記第2のモードである場合、前記メモリ制御手段は、前記プロセッサ手段が前記メモリ手段の前記第1の部分からデータ値を読み出すことを許可する、データを処理するための装置を提供する。
さらなる態様から見ると、本発明は、データを処理する方法であって、プログラム命令のストリームに応えて、プロセッサを用いて処理動作を実施するステップと、プロセッサおよびメモリに連結されたメモリ制御回路を使用して、プロセッサによるメモリへのアクセスを制御するステップと、を含み、プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、メモリ制御回路は、(i)プロセッサが第1のモードである場合、メモリ制御回路、メモリの第1の部分への書き込みアクセスを許可するとともにメモリの第2の部分への少なくとも書き込みアクセスを許可せず、(ii)プロセッサが第2のモードである場合、メモリ制御回路、メモリの第1の部分への書き込みアクセスを許可するとともにメモリの第2の部分への書き込みアクセスを許可するように、メモリへのアクセスを制御し、メモリ制御回路は、前記第2のモードの前記プロセッサに与えられない権利を前記第1のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、プロセッサが、第2のモードのプロセッサによる実行のためのプログラム命令をメモリの第1の部分から読み出すことを防止し、
前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第1の部分からデータ値を読み出すことを許可する、方法を提供する。
本発明はまた、上記の特長を有するバーチャルマシンの形態で実装されてもよい。
ここで、添付の図面を参照して、一例としてのみ、本発明の実施形態が説明され、図面は、以下の通りである。
プロセッサおよびメモリを含むデータ処理システムを図式的に図示する。 プロセッサのハードウェアモード、読み出しが命令フェッチであるか否か、および読み出しがユーザモードでアクセス可能なメモリ位置からであるか否かに基づく、メモリ読み出し動作の制御を図式的に図示するフロー図である。 複数のハードウェア動作モード、ならびにそれらの関連付けられるアクセス権および典型的な用途を図式的に図示する。 バーチャルマシン実装を図式的に図示する。
図1は、メモリ6に連結された集積回路4を含む、データ処理システム2を図式的に図示する。集積回路4は、プロセッサ8と、メモリインターフェース回路10と、メモリ管理ユニット12とを含む。プロセッサ8内には、プログラム命令Iの制御下でメモリ6からフェッチされるデータ値Dに対して処理動作を実施するためのデータ経路を形成する、汎用レジスタバンク14と、乗算器16と、シフタ18と、加算器20とが提供される。命令プリフェッチユニット22によってメモリ6からフェッチされるプログラム命令Iは、命令パイプライン24に供給される。命令パイプライン24は、データ経路14、16、18、20を、復号されるプログラム命令によって指定される所望の処理動作(単数または複数)を実施するように構成し、制御するための、データ経路14、16、18、20の制御信号を生成するように、命令復号器26を制御する。プロセッサ8は、典型的に、明確化のために図1からは省略されている、より多くの回路要素を含有することが当業者によって理解される。
また、集積回路4内には、メモリインターフェース回路10およびメモリ管理ユニット12も含まれる。メモリインターフェース回路10は、集積回路4からメモリ6に送信される、メモリアクセス信号(読み出しであっても書き込みであってもよい)の生成に責任がある。これらのメモリアクセス信号は、メモリ6内の物理アドレスを使用する。この構成は、本技法が使用され得るシステムの実施例にすぎないが、プロセッサ8は、仮想アドレスを使用して動作する。メモリ管理ユニット12は、ページテーブルデータ30を使用して、仮想アドレスを物理アドレスに変換する。このページテーブルデータは、メモリ管理ユニット12の制御データである。メモリの最近アクセスされた領域のページテーブルデータは、メモリ管理ユニット12内の変換索引バッファ28内に記憶される。特定のメモリアクセスのページテーブルデータが変換索引バッファ28内に存在しない場合、メモリ6内のページテーブルデータ30の全記憶から、適切なページテーブルデータがフェッチされる。
メモリ6は、メモリインターフェース回路10によって生成される物理アドレスを使用してアドレス指定される、メモリアドレス空間を提供する。メモリ6は、可能なメモリアドレス空間のすべてに対応する記憶域を提供しなくてもよい。メモリアドレス空間は、メモリアドレス領域32、34、36、38、40、42等に分割される。これらのメモリアドレス領域32〜42のそれぞれは、これらのメモリ領域へのアクセスを制御するためにメモリ管理ユニット12によって使用される、関連ページテーブルデータを有する。当業者によって理解されるように、このページテーブルデータは、プロセッサ8が特権モードで動作している場合、または特権モードもしくはユーザモードのいずれかで動作している場合に、関心のあるメモリアドレス領域にアクセスすること(読み出しのみ、または読み出し/書き込みのいずれか)ができるか否かを示すデータを含んでもよい。ページテーブルデータのこの部分は、変換索引バッファ28の一部として図示される、P/Uフラグデータ44によって示される。また、ページテーブルデータは、許可されるアクセスが読み出しのみであるか、または読み出し/書き込みであるかを示す、R/Wフラグデータ43も含む。図1に示されるテーブルは、異なるアクセス権にマップされる、P/Uフラグデータ44およびR/Wフラグデータ43の異なる値の一実施例を与える。メモリアドレス領域32、34、36、40は、共に、プロセッサ8がユーザモードである際に書き込み可能ではない、メモリ6の第2の部分を形成する。メモリアドレス領域32、36、および40は、特権モードでのみアクセス可能である。メモリアドレス領域34は、ユーザモードでは、読み出しのみアクセス可能であるが、ユーザモードでは、書き込むことができない。メモリアドレス領域38および42は、プロセッサがユーザモードである際に書き込まれ、読み出されてもよく、プロセッサ8が特権モードである際に書き込まれてもよく、プロセッサ8が特権モードである際にデータ値を読み出されてもよいが、プロセッサ8が特権モードである際に命令値を読み出すことができない、メモリ6の第1の部分を形成する。
この挙動は、この例示の実施形態では、メモリ管理ユニット12によって施行される。メモリ管理ユニット12は、プロセッサ8が現在、特権モードであるか、またはユーザモードであるかを示す入力信号P/Uを、プロセッサ8から受信する。また、メモリ管理ユニット12は、実施されているメモリアクセスが、命令フェッチに関連するか、またはデータアクセス動作に関連するかを示す入力信号I/Dも、メモリインターフェース回路10から受信する。これらの入力信号およびメモリ管理ユニット12内のレジスタ46内に記憶されたセキュリティフラグの値を使用して、特権モードでのメモリ6の第1の部分38ならびに42から読み出されるプログラム命令の実行の防止が施行されてもよい。
図2は、メモリ管理ユニット12の動作の部分を図式的に図示する、フロー図である。メモリ管理ユニット12は、メモリ保護ユニットの形態で提供することもできることが理解される。ステップ48で、処理は、メモリインターフェース回路10で、プロセッサ8からメモリ読み出し要求動作が受信されるまで待機する。次いで、ステップ50は、メモリ管理ユニット12へのP/U入力信号を使用して、プロセッサ8が現在特権モードであるか否かを判定する。プロセッサ8が特権モードではない場合、プロセッサ8は、この分かりやすい実施例では、ユーザモードであり、処理は、ステップ52に進む。ステップ52は、ページテーブルデータ30内で、読み出しアクセスが試みられているメモリアドレスが特権モードである際にのみアクセス可能であるとマークされているか否かを判定する。メモリアドレスが特権のみとマークされていない場合、処理は、読み出しアクセスが許可される、ステップ54に進む。しかしながら、メモリアドレスが特権のみアドレスとマークされている場合、ステップ56は、アクセスを防止する。
ステップ50で、プロセッサ8が現在特権モードであると判定される場合、処理は、ステップ58に進む。ステップ58は、レジスタ46内に記憶されたセキュリティフラグが現在設定されているか否かを判定する。セキュリティフラグが設定されている(設定値を有する)場合、プロセッサ8がメモリ6の第1の部分38および42から読み出されるプログラム命令を実行することを許可しないというポリシーの施行が施行される。ステップ58で、セキュリティフラグが設定されていないと判定される場合、処理は、ステップ60に進み、そこでアクセスが許可される。
ステップ58で、セキュリティフラグが設定されていると判定される場合、処理は、ステップ62に進み、実施されているアクセスが命令フェッチであるか、またはデータアクセスであるかについての判定が行われる。この判定は、メモリ管理ユニット12へのI/D入力信号を使用して行われてもよい。実施されているメモリアクセスがデータアクセスである場合、処理は、ステップ60に進み、この場合も同様にアクセスが許可される。しかしながら、ステップ58で、セキュリティフラグが設定されていると判定され、ステップ62で、アクセス動作が命令フェッチであると判定される場合、処理は、ステップ64に進み、関心のあるメモリアドレスが、読み出しアクセスが試みられているアドレスのページテーブルデータ(すなわち、P/Uフラグデータ44およびR/Wフラグデータ43)によって示される、メモリ6の第1の部分の一部分、すなわち、本実施例では、メモリ領域38および42のうちの1つであるか否かについての判定が行われる。メモリアドレスが第1の部分内ではない場合、命令フェッチ動作は、許可されない場合があり、処理は、ステップ60に進む。しかしながら、メモリ38および42の第1の部分からの命令フェッチ動作が試みられている場合、処理は、ステップ66に進み、関心のあるアクセスが防止される。
ステップ56または66のいずれかにおいて等で、メモリアクセスが防止される際、メモリアボート例外処理プログラムコードが実行されるように、メモリアボートがトリガされてもよい。この種類のメモリアボート処理は、当業者によく知られている。
図3は、プロセッサ8の複数のハードウェアモード(またはバーチャルマシン実装において、そのようなハードウェアモードを模倣するモード)を図式的に図示する。本実施例では、2つのモード、すなわち、特権モードおよびユーザモードのみが図示されている。本技法は、より大きな数のモードを有するプロセッサを用いて使用されてもよいことが理解される。特権モードは、特権とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスのいずれかを許可する。また、特権モードは、データ経路を介した、ユーザモードが読み出し/書き込みアクセス可能とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスのいずれかも可能にする。特権モード内で、レジスタ46内のセキュリティフラグが設定される場合、ユーザモードが読み出し/書き込みアクセス可能なメモリからの命令の実行は、許可されない。しかしながら、上記の特権メモリへの読み出しのみ、または読み出し/書き込みアクセスは、特権モードである際、特権メモリからフェッチされる命令が実行されることを許可する。
ユーザモードで実行している際、特権モードメモリアドレス領域とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスは許可されない。しかしながら、ユーザモードメモリアドレス領域とマークされたメモリアドレス領域への読み出しのみ、または読み出し/書き込みアクセスは許可される。
異なる種類のプログラムは、典型的に、異なるハードウェアモードで実行されることが理解される。オペレーティングシステムカーネルプログラム等のより信頼性のあるプログラムは、典型的に、特権モード内で動作する。アプリケーションプログラムは、典型的に、ユーザモード内で動作する。
ユーザモードで書き込み可能なメモリ内に記憶されるプログラム命令の特権モード実行が許可されるか否かを制御する、レジスタ46内のセキュリティフラグは、プログラム命令制御下で設定される。レジスタ46は、コプロセッサ命令を使用してセキュリティフラグを設定するように書き込まれ得る、コプロセッサレジスタとして構成されてもよい。セキュリティフラグを使用して提供される機構のセキュリティを維持するために、セキュリティフラグは、特権モードである際にのみ書き込まれてもよい。これは、悪意のある、または少なくとも未承認のユーザモードプログラムが、セキュリティフラグの設定を解除し、それによって、ユーザモードで書き込み可能なメモリ内に記憶されるプログラム命令の特権モード実行を許可することを防止する。
図4は、使用されてもよい、そのようなバーチャルマシン実装を図示する。先に記載された実施形態は、関心のある技法を支援する特定の処理ハードウェアを動作させるための装置および方法の観点から、本発明を実装する一方、また、ハードウェアデバイスのいわゆるバーチャルマシン実装を提供することも可能である。これらのバーチャルマシン実装は、バーチャルマシンプログラム510を支援するホストオペレーティングシステム520上で実行されるホストプロセッサ530上で実行される。妥当な速度で実行するバーチャルマシン実装を提供するためには、典型的に、大きく強力なプロセッサが必要とされるが、そのような手法は、別のプロセッサに固有のコードを実行することを所望する際等の特定の状況においては、互換性または再利用の理由から正当化される。バーチャルマシンプログラム510は、アプリケーションプログラム500に、バーチャルマシンプログラム510によってモデル化されているデバイスである実際のハードウェアによって提供され得るアプリケーションプログラムインターフェースと同一である、アプリケーションプログラムインターフェースを提供する。したがって、上述されるメモリアクセスの制御を含むプログラム命令は、それらのバーチャルマシンハードウェアとの対話をモデル化するために、バーチャルマシンプログラム510を使用して、アプリケーションプログラム500内から実行されてもよい。
2 データ処理システム
4 集積回路
6 メモリ
8 プロセッサ
10 メモリインターフェース回路
12 メモリ管理ユニット
14 汎用レジスタバンク
16 乗算器
18 シフタ
20 加算器
22 命令プリフェッチユニット
24 命令パイプライン
14、16、18、20 データ経路
28 変換索引バッファ
30 ページテーブルデータ

Claims (12)

  1. データを処理するための装置であって、
    処理動作を実施するプログラム命令のストリームに応答する、プロセッサと、
    前記プロセッサおよびメモリに連結され、前記プロセッサによる前記メモリへのアクセスを制御するように構成された、メモリ制御回路と、
    を備え、
    前記プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、
    前記メモリ制御回路は、
    (i)前記プロセッサが前記第1のモードである場合、前記メモリ制御回路は、前記メモリの第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への少なくとも書き込みアクセスを許可せず、
    (ii)前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記メモリの前記第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への書き込みアクセスを許可する
    ように、前記メモリへのアクセスを制御し、
    前記メモリ制御回路は、前記第2のモードの前記プロセッサに与えられない権利を前記第1のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、前記プロセッサが、前記第2のモードの前記プロセッサによる実行のためのプログラム命令を前記メモリの前記第1の部分から読み出すことを防止し、
    前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第1の部分からデータ値を読み出すことを許可することを特徴とする装置。
  2. 前記プロセッサは、前記メモリの前記第2の部分から実行のためのプログラム命令を読み出すことを特徴とする請求項1に記載の装置。
  3. 前記メモリ制御回路は、前記第1の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別し、前記第2の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別するように、制御データに応答することを特徴とする請求項1または2に記載の装置。
  4. 前記第1のモードは、アプリケーションプログラムを実行するためのユーザモードであり、
    前記第2のモードは、少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであることを特徴とする請求項1から3のいずれか一項に記載の装置。
  5. 前記メモリ制御回路は、
    メモリ管理ユニットと、
    メモリ保護ユニットと、
    のうちの1つを備えることを特徴とする請求項1から4のいずれか一項に記載の装置。
  6. 前記プロセッサが前記第2のモードである場合、前記セキュリティフラグは、プログラム命令制御下で書き込まれ、
    前記プロセッサが前記第1のモードである場合、前記セキュリティフラグは、プログラム命令制御下で書き込むことができないことを特徴とする請求項1から5のいずれか一項に記載の装置。
  7. データを処理するための装置であって、
    プログラム命令のストリームに応えて処理動作を実施するための、プロセッサ手段と、
    前記プロセッサ手段およびデータを格納するためのメモリ手段に連結され、前記プロセッサ手段による前記メモリ手段へのアクセスを制御するための、メモリ制御手段と、
    を備え、
    前記プロセッサ手段は、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、
    前記メモリ制御手段は、
    (i)前記プロセッサ手段が前記第1のモードである場合、前記メモリ制御手段は、前記メモリ手段の第1の部分への書き込みアクセスを許可するとともに前記メモリ手段の第2の部分への少なくとも書き込みアクセスを許可せず、
    (ii)前記プロセッサ手段が前記第2のモードである場合、前記メモリ制御手段は、前記メモリ手段の前記第1の部分への書き込みアクセスを許可するとともに、前記メモリ手段の第2の部分への書き込みアクセスを許可する
    ように、前記メモリ手段へのアクセスを制御し、
    前記メモリ制御手段は、前記第2のモードの前記プロセッサに与えられない権利を前記第1のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、前記プロセッサ手段が、前記第2のモードの前記プロセッサ手段による実行のためのプログラム命令を前記メモリ手段の前記第1の部分から読み出すことを防止し、
    前記セキュリティフラグが前記設定値を有するとともに前記プロセッサ手段が前記第2のモードである場合、前記メモリ制御手段は、前記プロセッサ手段が前記メモリ手段の前記第1の部分からデータ値を読み出すことを許可することを特徴とする装置。
  8. データを処理する方法であって、
    プログラム命令のストリームに応えて、プロセッサを用いて処理動作を実施するステップと、
    前記プロセッサおよびメモリに連結されたメモリ制御回路を使用して、前記プロセッサによるメモリへのアクセスを制御するステップと、
    を含み、
    前記プロセッサは、少なくとも第1のモードおよび第2のモードを含む、複数のハードウェア動作モードを有し、
    前記メモリ制御回路は、
    (i)前記プロセッサが前記第1のモードである場合、前記メモリ制御回路は、前記メモリの第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への少なくとも書き込みアクセスを許可せず、
    (ii)前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記メモリの前記第1の部分への書き込みアクセスを許可するとともに前記メモリの第2の部分への書き込みアクセスを許可する
    ように、前記メモリへのアクセスを制御し、
    前記メモリ制御回路は、前記第2のモードの前記プロセッサに与えられない権利を前記第1のモードの前記プロセッサに与える設定値を有するセキュリティフラグに応答し、前記プロセッサが、前記第2のモードの前記プロセッサによる実行のためのプログラム命令を前記メモリの前記第1の部分から読み出すことを防止し、
    前記セキュリティフラグが前記設定値を有するとともに前記プロセッサが前記第2のモードである場合、前記メモリ制御回路は、前記プロセッサが前記メモリの前記第1の部分からデータ値を読み出すことを許可することを特徴とする方法。
  9. 前記プロセッサは、前記メモリの前記第2の部分から実行のためのプログラム命令を読み出すことを特徴とする請求項8に記載の方法。
  10. 前記メモリ制御回路は、前記第1の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別し、前記第2の部分の一部として、前記メモリ内の1つ以上のメモリアドレス領域を識別するように、制御データに応答することを特徴とする請求項8または9に記載の方法。
  11. 前記第1のモードは、アプリケーションプログラムを実行するためのユーザモードであり、
    前記第2のモードは、少なくともオペレーティングシステムカーネルプログラムを実行するための特権モードであることを特徴とする請求項8から10のいずれか一項に記載の方法。
  12. 前記メモリ制御回路は、
    メモリ管理ユニットと、
    メモリ保護ユニットと、
    のうちの1つを備えることを特徴とする請求項8から11のいずれか一項に記載の方法。
JP2012552453A 2010-02-16 2010-12-16 ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限 Active JP5571201B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/656,786 2010-02-16
US12/656,786 US8301856B2 (en) 2010-02-16 2010-02-16 Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
PCT/GB2010/052105 WO2011101609A1 (en) 2010-02-16 2010-12-16 Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag

Publications (2)

Publication Number Publication Date
JP2013519934A JP2013519934A (ja) 2013-05-30
JP5571201B2 true JP5571201B2 (ja) 2014-08-13

Family

ID=43629421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012552453A Active JP5571201B2 (ja) 2010-02-16 2010-12-16 ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限

Country Status (10)

Country Link
US (1) US8301856B2 (ja)
JP (1) JP5571201B2 (ja)
KR (1) KR101799261B1 (ja)
CN (1) CN102763092B (ja)
BR (1) BR112012017703B1 (ja)
DE (1) DE112010005269T5 (ja)
GB (1) GB2488938B (ja)
IL (1) IL220417A (ja)
RU (1) RU2513909C1 (ja)
WO (1) WO2011101609A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9672164B2 (en) 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
EP2867777A4 (en) * 2012-06-29 2016-02-10 Happy Cloud Inc MANAGEMENT OF WRITING A RECORD TO A DATA STORAGE DEVICE
CN102799489B (zh) * 2012-07-19 2014-04-16 腾讯科技(深圳)有限公司 对终端进行控制的方法、装置及终端
US9489316B2 (en) * 2013-03-15 2016-11-08 Freescale Semiconductor, Inc. Method and device implementing execute-only memory protection
US10275593B2 (en) * 2013-04-01 2019-04-30 Uniquesoft, Llc Secure computing device using different central processing resources
US10061940B2 (en) * 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
JP5920595B2 (ja) 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
US20150254145A1 (en) * 2014-03-07 2015-09-10 Microsoft Corporation Operating system/hypervisor efficiencies for sub-divided privilege levels
GB2525596B (en) 2014-04-28 2021-05-26 Arm Ip Ltd Access control and code scheduling
US10489309B2 (en) 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
US9594687B2 (en) * 2015-04-14 2017-03-14 Google Inc. Virtualization-aware prefetching
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
GB2554940B (en) 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
FR3065553B1 (fr) * 2017-04-20 2019-04-26 Idemia Identity And Security Procede d'execution d'un programme destine a etre interprete par une machine virtuelle protege contre des attaques par injection de faute
CN108154032B (zh) * 2017-11-16 2021-07-30 中国科学院软件研究所 具有内存完整性保障功能的计算机系统信任根构建方法
US10635831B1 (en) * 2018-01-06 2020-04-28 Ralph Crittenden Moore Method to achieve better security using a memory protection unit
EP3828708B1 (en) * 2019-11-29 2024-04-24 Johannes Gutenberg-Universität Mainz Method and system for controlling a switch in the execution mode of a processor
CN111274555B (zh) * 2020-01-15 2022-11-18 福建杰木科技有限公司 Flash存储器中的代码保护方法及保护装置
CN112612519B (zh) * 2020-12-11 2022-06-21 成都海光微电子技术有限公司 一种取指方法、装置、电子设备及存储介质
WO2024187365A1 (en) * 2023-03-14 2024-09-19 Qualcomm Incorporated Detecting unexpected memory read

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US6895479B2 (en) * 2000-11-15 2005-05-17 Texas Instruments Incorporated Multicore DSP device having shared program memory with conditional write protection
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
AU2003264781A1 (en) 2002-09-03 2004-03-29 Sap Aktiengesellschaft Dynamic access to data
JP2004145605A (ja) * 2002-10-24 2004-05-20 Matsushita Electric Ind Co Ltd プロセッサ
JP4347582B2 (ja) * 2003-02-04 2009-10-21 パナソニック株式会社 情報処理装置
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
DE112005002949T5 (de) * 2004-11-24 2007-12-27 Discretix Technologies Ltd. System, Verfahren und Vorrichtung zur Sicherung eines Betriebssystems
JP4886682B2 (ja) * 2005-05-26 2012-02-29 パナソニック株式会社 データ処理装置
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
JP4818793B2 (ja) * 2006-04-20 2011-11-16 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びメモリアクセスの制御方法
CN101154212B (zh) * 2006-09-29 2012-01-25 上海海尔集成电路有限公司 一种8位兼容c51指令集微控制器
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
CN201177809Y (zh) * 2008-04-11 2009-01-07 吴治杰 可调整读写状态的储存装置

Also Published As

Publication number Publication date
RU2012139625A (ru) 2014-03-27
JP2013519934A (ja) 2013-05-30
CN102763092A (zh) 2012-10-31
IL220417A0 (en) 2012-08-30
RU2513909C1 (ru) 2014-04-20
GB2488938A (en) 2012-09-12
GB2488938B (en) 2017-03-08
WO2011101609A1 (en) 2011-08-25
US8301856B2 (en) 2012-10-30
DE112010005269T5 (de) 2013-04-25
CN102763092B (zh) 2015-08-12
KR20130036189A (ko) 2013-04-11
GB201210574D0 (en) 2012-08-01
IL220417A (en) 2015-02-26
BR112012017703B1 (pt) 2020-12-15
KR101799261B1 (ko) 2017-11-20
BR112012017703A2 (pt) 2016-04-05
US20110202739A1 (en) 2011-08-18

Similar Documents

Publication Publication Date Title
JP5571201B2 (ja) ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限
JP4989543B2 (ja) メモリドメインを基にしたデータ処理システム内のセキュリティ制御
TWI835856B (zh) 用於範圍檢查指令的裝置、方法、電腦程式和電腦可讀儲存媒體
US8010772B2 (en) Protected function calling
TWI514135B (zh) 記憶體存取控制
RU2265880C2 (ru) Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины
US8132254B2 (en) Protecting system control registers in a data processing apparatus
US7130977B1 (en) Controlling access to a control register of a microprocessor
JP2017505492A (ja) 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
US7529916B2 (en) Data processing apparatus and method for controlling access to registers
TW200403586A (en) Control register access virtualization performance improvement in the virtual-machine architecture
JP7432586B2 (ja) スタック・ポインタを検証すること
JP7445431B2 (ja) 命令の実行を制御する装置および方法
JP2020521225A (ja) 機能ドメインを管理するための装置及び方法
JP5414057B2 (ja) マイクロコンピュータ
JP2023038361A (ja) 命令セット内の変更を制御する装置及び方法
US10409602B2 (en) Vector operand bitsize control
TW202420076A (zh) 基於指令提取位址的區域識別符

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140425

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: 20140526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140625

R150 Certificate of patent or registration of utility model

Ref document number: 5571201

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

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