JP4759059B2 - メモリページをプログラムに対応付けるページカラーリング - Google Patents

メモリページをプログラムに対応付けるページカラーリング Download PDF

Info

Publication number
JP4759059B2
JP4759059B2 JP2008541443A JP2008541443A JP4759059B2 JP 4759059 B2 JP4759059 B2 JP 4759059B2 JP 2008541443 A JP2008541443 A JP 2008541443A JP 2008541443 A JP2008541443 A JP 2008541443A JP 4759059 B2 JP4759059 B2 JP 4759059B2
Authority
JP
Japan
Prior art keywords
page
accessible
color
access
instruction
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.)
Expired - Fee Related
Application number
JP2008541443A
Other languages
English (en)
Other versions
JP2009516310A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2009516310A publication Critical patent/JP2009516310A/ja
Application granted granted Critical
Publication of JP4759059B2 publication Critical patent/JP4759059B2/ja
Expired - Fee Related 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/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

本開示は、情報処理分野に関連し、より具体的にはメモリの管理と保護の分野に関する。
メモリに関する攻撃は情報処理システムのセキュリティへの重大な脅威である。このような攻撃のいくつかは、たとえばウイルスもしくはワーム等の悪質なコードあるいは悪質なデータをコンピュータシステムのメモリに記憶させ、合法のプログラムを動作させつつバグ及び/又はバッファあふれを悪用して悪質なコードへと制御を伝達したり悪質なデータを活用したりする。この種の攻撃を防止する一方法においては、実行不可能を示すデータを格納するページを指定するべく用いられる「エグゼキュート・ディスエーブル」ビットをページテーブルエントリーに含め、悪質なコードをデータとして格納できないようにし、ひいては当該物理、線形、あるいは論理メモリ空間において悪質コードを実行できないようにする。しかし、メモリに関する攻撃技術はますます洗練され、これら攻撃を防止する更なる方法が望まれる。これには、既存のコードあるいは破損したメモリを実行するバッファあふれ、悪質なカーネルあるいはアプリケーションコンポーネント、ルートキット、スパイウェア、トロイの木馬、及びコンピュータウイルスからの保護が含まれる。また、たとえばポインターを暴走させるバグコード、線形アドレス空間内において他のプログラムあるいはサブプログラムのデータを破損させるアプリケーションプログラミングインターフェースの悪用からの保護が含まれる。
本発明を、添付の図面において限定としてでなく例として示す。
図1は、メモリページをプログラムに対応付けるページカラーリングロジックを含むプロセッサとしての本発明の実施形態を示す。
図2は、メモリページをプログラムに対応付けるページカラーリングの初期化方法としての本発明の実施形態を示す。
図3は、メモリページをプログラムに対応付けるページカラーリング方法としての本発明の実施形態を示す。
以下の記載においては、メモリページをプログラムとその関連データに対応付けるページカラーリング技術の実施形態を記載する。以下の記載においては、本発明のより徹底した理解を可能にするべくプロセッサとシステムの構成等、数多くの特定的詳細について述べる。しかし、これら特定的詳細を伴わなくても本発明は実施され得ることは当業者には理解されよう。さらに、不必要に本発明を曖昧としないよう、いくつかの周知の構造、回路等は詳細に示さなかった。
本発明の実施形態においては、特定のページを特定のプログラムとデータに対応づけるべく用いられる属性をメモリページに割り当てる。属性の割り当ては、オペレーティングシステムのマッパーによるオペレーティングシステムの方針に基づいた方法、あるいは基本的入出力システム、仮想マシンモニター、あるいは本発明を具現化するシステム上のその他任意の管理体による方法等、いかなる方法により行ってもよい。
属性をページの「カラー」と呼称し、あるプログラムから別のプログラムのメモリ空間へのアクセス、あるいは単一プログラムにおけるある部分から同一プログラムにおけるその他の部分のメモリ空間へのアクセスをさえ十分に防止できる細かさの粒度においてメモリを論理分割するべく当該属性を用いてよい。ページベースの既存のメモリ管理データ構造、仮想化技術において用いられるページベースのメモリ管理を入れ子式としたデータ構造、及び既存のデータ構造に相関する並列アクセスデータ構造内において本発明の実施形態に係る技術を実施してよく、それにより、本発明の実施形態の利用においてカラー情報を取得するための追加的なメモリアクセスにより性能が劣化しないようにしてよい。その他の技術においては、対応するページテーブルエントリーをメモリからフェッチするときに、メモリから取得され対応する変換索引バッファ(「TLB」)ハードウェアへとロードされる、ページカラー属性を含んだ並列ページテーブル構造を含めてよい。
図1は、プロセッサとして具現化する本発明、つまり、メモリページをプログラムと対応付けるページカラーリングロジックを含むプロセッサ110を示す。プロセッサ110をシステム100において示し、システム100はさらにメモリ120を含む。
プロセッサ110は、様々な異なる種類のプロセッサのいずれであってもよく、たとえばペンティアム(登録商標)プロセッサファミリー、アイテニアム(登録商標)プロセッサファミリー、あるいはインテル社のその他のプロセッサファミリーに属するプロセッサ、あるいは別の会社のその他いかなる汎用もしくはその他のプロセッサであってよい。図1においてはプロセッサとして具現化した本発明を示すが、代わりに本発明をその他いかなる種類のデータ処理コンポーネントあるいはデータ処理装置として具現化してもよい。図1の実施形態においては、プロセッサ110はインターフェース112とページングユニット130を含む。
インターフェース112は、ポイントツーポイントあるいはその他の接続形態等、任意の種類のバス上で直接的に、あるいはチップセットもしくはメモリコントローラ等、その他任意のコンポーネントを介して、プロセッサ110をメモリ120と通信可能にするバスユニット、あるいはその他任意のユニット、ポート、あるいはインターフェースであってよい。
ページングユニット130は、変換ロジック132、比較ロジック134、及びアクセスロジック136を含む。変換ロジックは以下に記載するアドレス変換を行う。比較ロジックは以下に記載する通りにページカラー比較を行う。アクセスロジック136は以下に記載する通りにページカラーに基づき特定のページへのアクセスを阻止あるいは許可する。
変換ロジック132は、ページベースの周知の任意のメモリ管理技術に従って、たとえば論理あるいは線形アドレスの物理アドレスへの変換等のアドレス変換を行う。アドレス変換を行うにあたり、変換ロジック132はプロセッサ110、メモリ120、システム100における図1に不図示のその他任意の格納位置において、及び/又はこれらコンポーネント・位置において組み合わせて格納される一以上のデータ構造を参照する。データ構造は、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠し、本発明の実施形態に従って改変したページディレクトリ及びページテーブル、及び/又はTLBに格納されたテーブルを含んでよい。
一実施形態においては、変換ロジック132は、実行すべき命令により供給される線形アドレス、及び/又はプロセッサ110がフェッチすべきデータの線形アドレスを受信する。変換ロジック132は、線形アドレスの一部を、ページテーブルを含む階層構造テーブルへの指標として用いる。ページテーブルはエントリーを含み、各エントリーはメモリ120のページのベースアドレス用の領域を、たとえばペンティアム(登録商標)プロセッサファミリーの拡張メモリ64技術に準拠してページテーブルエントリーにおけるビット39乃至12において含む。本発明の範囲においては任意のページサイズ(たとえば、4キロバイト)を用いてよい。したがって、プログラムがメモリ120にアクセスするべく用いる線形アドレスは、プロセッサ110がメモリ120にアクセスするべく用いる物理アドレスへと変換してよい。
比較ロジック134は、変換ロジック132が求めたページのページカラーを、フェッチすべき命令もしくはデータの線形アドレスを供給した命令を含むページのページカラーと比較する。周知の任意の方法に従って比較を行ってよい。ページカラーは、変換ロジック132がアドレス変換を行うべく用いたデータ構造におけるエントリーに格納された値により表されるページ属性である。たとえば、ページテーブルエントリーにおける8ビットの領域により、たとえばペンティアム(登録商標)プロセッサファミリーの拡張メモリ64技術に準拠したページテーブルエントリーにおけるビット47乃至40によりページカラーを表してよい。したがって、グラフィックディスプレイにおける画素のカラー値の定義と同様に、256個のエントリーを有するカラーテーブルへの指標を与えるべく8ビットの領域を用いることにより、ページのカラー値は256個の値のいずれか一つとしてよい。
アクセスロジック136は、比較ロジック136の結果を用い、変換ロジック134が求めた物理ページにアクセスするための線形アドレスを用いる命令を阻止あるいは許可する。一実施形態においては、アクセスロジック136は、命令を含むページのページテーブルエントリーに対応付けられたページカラーが、変換ロジック134が求めたページのページテーブルエントリーに対応付けられたページカラーと一致するときアクセスを許可し、ページカラーが不一致であるときアクセスを阻止してよい。アクセスロジック136は、ページフォールト例外(page fault exception)をトリガすることによりアクセスを阻止してよい。
したがって、オペレーティングシステムあるいはスーパーバイザープログラムは、メモリにロードしたあるプログラムの全ページに所定のページカラーを割り当て、メモリにロードした別のプログラムの全ページにそれとは異なるページカラーを割り当てる等して、あるプログラムが別のプログラムと同一の線形あるいは論理アドレス空間に存在したとしても各プログラムが他方のプログラムに対応付けられたページにアクセスしないようにしてよい。また、単一プログラムにおいて異なる部分にそれぞれ異なるページカラーを割り当てる等して、重要なプログラムコンポーネントあるいは重要なデータ構造がアクセスされるのを、特別な関数呼び出しを用いた場合、あるいはプログラムにおける特定のエントリーポイントを通過した場合に限ってよい。
アクセスロジック136は、更なる基準に基づいてアクセスの許可を判定してよい。たとえば、あるカラー値(たとえば、0x00)により「いずれのカラー」も表さず、いずれのカラーによってもマークされないページへはその他のいかなるページからもアクセスしてよいとしてよい。また、ページテーブルエントリーにおいて、たとえばペンティアム(登録商標)プロセッサファミリーの拡張メモリ64技術に準拠したページテーブルエントリーのビット48等の領域もしくはビットを含め、それによりページが「隠れている」かを定義してよい。当該ビットを0に設定することにより、隠れたページのカラー以外のカラーに対応する任意のページが、カラー比較の結果と無関係に参照先である隠れたページから読み出すのを許可してよく、また1に設定することにより、カラー比較が不一致であったことに基づいてアクセスロジック136がアクセスの阻止を行えるように、あるいは反対に、アクセスによる読み出しを行えるようにしてよい。
アクセスロジック136は、命令制御フローに基づいてアクセスを許可するかを判定してもよい。たとえば、命令はプログラムへのエントリーが許可されたポイントを表すべく用いてよい。ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したある実施形態においては、この目的において新たな命令(たとえば、「行き先アドレスベクトル(Directed Address Vector)」、つまり「DAV」)を加えてよい。あるカラーのページからジャンプ、呼び出し、もしくはその他の制御フロー命令が別のカラーのページにおけるDAV命令に向けて実行されたとき、このアクセスを許可する。しかし、このジャンプもしくは呼び出しがDAV命令でなく別のカラーのページへと向けられた場合、アクセスを許可しない。したがって、DAV命令を用いることにより、あるプログラムへは、ソフトウェア作成者が定義、制御し、安全なインターフェースとなることが期待されるポイントからだけエントリーできるようにしてよい。あるプログラムにおける、ランダムな部分、あるいはジャンプもしくは呼び出しが期待されていない部分、に対する別のカラーのプログラムからのジャンプもしくは呼び出しに対しては、例外であるとのフラグをプロセッサが付してよい。また、DAV命令に変数パラメータを用いることにより、当該DAVにより識別されるエントリー・ポイントが実装されているプログラムにアクセスを試みているのが期待するカラーのプログラムであるかを判定するカラー比較を行ってもよい。最後に、DAV命令の実行を実行可能な(たとえば、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したXDビットを用いることによって実行をディスエーブル(eXecute Disabled)されていない)ページに限定することにより、見かけ上DAV命令に見えるスプリアスなビットシーケンスを有するデータページをプロセッサが実行しないようにしてよい。
別の実施形態においては、ページを「トランジション」ページ指定してよい。トランジションページからの命令のフェッチは可能であるが、しかし、特定の周期的オフセットにおいてだけ可能であるとしてよい。「トランジションページビット」を定義し、それを任意のカラーのページに対して当該ページのテーブルエントリーにおいて対応付けてよい。このトランジションビットにより、対応付けられたカラーのページに向けての異なるカラーのページからのトランジションは、特定のワード配置に向けて行ってよいことがプロセッサに示される。したがって、いずれのカラーのページであっても、同一カラーのその他のページへのゲートとして機能するトランジションページとなることができる。たとえば、制御フローにおいて、トランジションページへの他のカラーのページからの移動は、トランジションページにおける特定ポイント、たとえば、64バイトおきのポイントに対してだけ行ってよい。制御フローにおいてトランジションページへの移動が64バイト整列で行われない場合にページフォールトをトリガしてよく、ジャンプもしくは呼び出しがトランジションページの64バイト整列された命令へ向けられていればジャンプもしくは呼び出しを実行してよい。トランジションページのエントリー・ポイントの実際の整列状態は、整列要件を特定する保護されたプロセッサレジスタにより構成してよい。トランジションページへページフォールトをトリガせずにエントリーさせてよいのは特定のポイントに対してだけであることをプロセッサにより保証するので、これらのエントリー・ポイント間にコードを挿入して以下に記載する前のページカラーレジスタを比較対象とした適切なカラーテストを行い、条件に適合するとアクセス制御テストにより証明された場合に異なるカラーのページへとトランジションしてよい。同様に、並列に保護したスタックにおいては、あるエントリー・ポイントの後のコードに、スタックからの復帰アドレス等により状態を退避し、呼び出し先ページからの復帰をトランジションページを介してリダイレクトしてよい。この方法により、異なるカラーの関数からのレガシーコール(legacy call)と復帰をトランジションページにより橋渡して、正しい制御フローを認証しつつページフォールトを回避してよい。
特別なカラーリング技術を実装するべくアクセスロジック136を用いてもよい。一実施形態においては、別のカラーのプログラムの任意の部分へのジャンプもしくは呼び出しを許可されたオペレーティングシステムコンポーネントに対して特別なページカラー(たとえば、0xFF)を割り当ててよい。アクセスロジック136は、当該カラーのページからのジャンプもしくは呼び出し命令はいつも許可してよい。このカラーをオペレーティングシステムスケジューラと割り込み処理ルーチンに使用させて、これらが中断されたプログラムの実行をページフォールトを生じさせずに中断位置から再開できるようにしてよい。このカラーのページからは、別のカラーのページへの書き込みアクセスあるいは別のカラーの隠れたページへの読み出しアクセスをしないようにしてよい。この特別なぺージカラーのページを実行するにあたり、プロセッサに以下に記載する前のページカラーレジスタの変更をさせず、この特別なページカラーのページに、中断されたプログラムへと復帰する前に前のページカラーレジスタを期待される値へと回復する能力を持たせてよい。
別の実施形態においては、他のカラーのページへの完全な読み出しアクセス・書き込みアクセスを有するスーパーバイザーページに対して特別なカラーを用いてよい。オペレーティングシステムコンポーネントにこれらの特別なカラーを用い、その他のプログラムを検証させ、必要であればその内容を修正させてよい。他のカラーを、限られたプロセッサレジスタ、限られたプロセッサ命令、あるいはアドバンスド・プログラマブル割り込みコントローラ(advanced programmable interrupt controller;「APIC」)に対応したメモリ位置へのアクセスに対応付けてよい。特権的カラーでカラーリングされたプログラムだけが、特権的カラーに対応付けられた限られたプロセッサ機能へとアクセスすることができる。プロセッサにおいて、この特別なカラーを設定するコンフィギュレーションレジスタを、たとえばオペレーティングシステム起動シーケンスの一部として設けてよい。
別の実施形態においては、上記したようにいずれのカラーによってもマークされないページは、他のカラーのページあるいはいずれのカラーによってもマークされない他のページから保護しなくてよい。しかし、カラーを割り当てたページは、いずれのカラーによってもマークされないページからの書き込み、ジャンプ、あるいは呼び出しアクセスが不可能であってよい。
さらに、アクセスロジック136は、ページカラー不一致あるいは違反によりページフォールトが生じたかを報告してもよい。たとえば、ページフォールトエラーコードのビット(たとえば、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したスタックにプッシュ(push)するページフォールトエラーコードのビット5)をページカラー違反ビットに指定して、1に設定することによりページフォールトがカラー不一致によりトリガされたことを示してよい。このビットは、他のフラグの文脈で解釈してよい。たとえば、ページカラー違反が命令フェッチにより生じた場合、エラーコードにおける命令フェッチビットを1に設定してよい。ページカラー違反が読み出しもしくは書き込みにより生じた場合、読み出し/書き込みビットを、読み出しの場合は0に、書き込みの場合は1に設定してよい。さらに、フォールトを生じた線形アドレスを、たとえば、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したプロセッサのCR2制御レジスタに退避してよい。
プロセッサ110は、あるプログラムから別のプログラムへの、上記したようなDAV命令を用いたトランジションをサポートする読み出し専用レジスタ140あるいはその他の記憶位置を含んでよい。一実施形態においては、このレジスタは、「前のページカラー(previous page color)」レジスタ、つまり「PPC」レジスタと呼称してよい。アクセスロジック136は、プロセッサ110が現在実行されている命令とは異なるカラーのページから命令のフェッチを開始したとき、ページカラーが不一致であると検出してよい。アクセスロジック136は、上記のDAV命令プロトコルに従ってこのフェッチを許可しページカラーの変更を許可してよいが、前のページカラーをPPCレジスタ140に退避してよい。したがって、新たなページからの命令がPPCレジスタ140に前のページカラーを問い合わせて判断することにより、異なるカラーのどのプログラムが現在実行されているプログラムにおいてDAVにより定義した特定のエントリー・ポイントに対してアクセスすることが許可されているかを判別し、それによりプログラムは自身のサービスへのアクセスを制御してよい。特別なカラーのページによるトランジションはPPCレジスタ140に記憶しなくてよく、したがってオペレーティングシステムスケジューラが発動したトランジションはページカラーのトランジションと記録する必要はなく、むしろ割り込み及び復帰と記録してよい。
図1において、メモリ20は、スタティックあるいはダイナミックランダムアクセスメモリ、半導体系の読み出し専用メモリあるいはフラッシュメモリ、磁気あるいは光ディスクメモリ、プロセッサ120が読み出し可能なその他いかなる種類の媒体、あるいはこれら媒体をどのように組み合わせたものであってもよい。
図2は本発明の方法としての実施形態を示し、この方法200は、ページカラーリングを初期化してメモリページをプログラムに対応付ける方法である。ブロック210において、オペレーティングシステムローダがメモリへとメモリ割り当てルーチンをロードし、メモリにページテーブル構造を作成して全てを第一のカラーとし、メモリ割り当てルーチンは以降にロードされたルーチンとプログラムにそれぞれページカラーを設定しつつ、メモリマネジャーとページテーブルとが、これらその他のルーチン及びプログラムから、たとえこれらがメモリマネジャーと同じ特権レベルで動作していたとしても、保護されるようにする。ブロック220においては、スケジューラをロードして0xFFにカラーリングし、スケジューラからのその他の任意のプログラム、スケジュールスレッド、及びマルチタスクへのジャンプあるいは呼び出しを許可する。さらに、オペレーティングシステムにより、この特別なカラーのページがDAV命令なしでレガシープログラムへのインターフェースをフックするよう構成してレガシープログラムを保護し、レガシープログラムとサブプログラムとの間の制御フローが正しくなるよう保証してよい。これらの追加的ページは、レガシープログラムに対する便益として、PPCレジスタ140を用いることにより必要なエントリー・ポイントアクセス制御を行ってよい。
ブロック230においては、オペレーティングシステムの可変のコンポーネントをメモリにロードし、異なるページカラーをそれぞれに割り当てる。たとえば、ドライバーをディスクからロードし、認証者である製造者の署名によりインテグリティを検査し、メモリにロードしたらそれらにページカラーを割り当ててその他のカーネルコンポーネントから保護する。その後、ドライバーは自身と同じカラーのメモリを割り当てる。
ブロック240においては、アプリケーションプログラムをメモリにロードし、それぞれに異なるページカラーを割り当てる。ページはカラーリングされているので、オペレーティングシステムの不変のアプリケーションプログラミングインターフェースにより、プログラムはそれぞれ署名と認証イメージを与えられたその他のプログラムのカラーを問い合わせることができる。データ構造をその他のカラーのプログラムと共有して共通に読み出し可能としてよいが、但しページが隠れているとのマークを付されていない場合だけである。この方法で、一方向先入れ先出しバッファをデータのライターが単一、リーダーが複数となるよう構成してよい。
あるカラーのページの所有者が、そのページカラーのうち一つを、元のプログラムが当該ページへの書き込みを終了したら別のプログラムのカラーに変更するようオペレーティングシステムに要求することもできる。このように、メモリマネジャー等のオペレーティングシステム不変部分に合図を出すことによりページの所有権を変更してよい。この要求は、所有権が変更される(カラーが変更される)ページが実行不可能とされて(XDビットが設定されて)実行不可能なデータだけを含むようになるとの条件で、オペレーティングシステムに支障なく容認されるようにしてよく、これによりカラー変更の後、別のカラーのプログラムがその内容を実行することができなくなる。
ページには同時に複数のカラーを割り当ててよく、あるいは各ページを異なるカラーを割り当てられた領域へと分割してよい。これは、複数のカラーと、ページ内においてそれらカラーが開始して終了する範囲に対応するオフセットをページテーブルエントリーにおいて特定することを可能にすることにより行ってよい。たとえば、ページテーブルエントリーにおいて、物理ページに対する二つのカラーと、ページの開始点から見て第一のカラーが終了し第二のカラーの開始する部分を特定するオフセットを特定してよい。ソフトウェアはこの特性を利用し、呼び出し元のスタックフレームをあるカラーにカラーリングし、呼び出し先のスタックフレームを別のカラーにカラーリングすることにより呼び出し元のスタック変数を呼び出し先からアクセス不可能として、呼び出し元の呼び出しスタックを呼び出し先から保護してよい。このようにして、呼び出し元と呼び出し先の両方のスタックフレームが単一ページ内に含まれている場合であっても、呼び出し元のスタックフレームは呼び出し先から破損されないようになる。同様に、同一ページに存在する隣接プログラムについて、各ページ当たり複数のカラーをそれぞれ対応する範囲において用いることにより、カラーリングに差異を設けてよい。
図3は本発明の方法としての実施形態を示し、この方法300は、メモリページをプログラムと対応付けるページカラーリング方法である。ブロック310において、ある命令がメモリのページへのアクセスを試みる。ブロック312において、ページをTLBにロードし、ページのカラーとパーミッションを記録する。ブロック320において、ページがカラーリングされているか(たとえば、カラー値が0x00でないか)を判定する。カラーリングされていなければ、ブロック390においてページへのアクセスを許可する。
ブロック320においてページがカラーリングされていれば、ブロック322において当該ページは当該命令を含んだページであるかを判定する。もしそうであれば、ブロック390において、ページへのアクセスを許可する。もしそうでなければ、ブロック324においてアクセスは書き込みであるかを判定する。
ブロック324においてアクセスが書き込みであれば、ブロック350において、当該ページは当該アクセス命令を含むページと同一カラーであるかを判定する。同一でなければ、ブロック352においてページフォールトをトリガしてアクセスを阻止する。同一であれば、ブロック390においてページへのアクセスを許可する。
ブロック324においてアクセスが書き込みでなければ、ブロック330においてページアクセスが命令のフェッチによるものかを判定する。命令フェッチによるものでなければ、ブロック332においてアクセスは読み出しであるかを判定する。アクセスが読み出しであれば、ブロック334においてページの隠しビットが設定されているかを判定する。隠しビットが設定されていなければ、ブロック390においてページへのアクセスを許可する。隠しビットが設定されていれば、ブロック350において当該ページは当該アクセス命令を含むページと同一カラーであるかを判定する。同一でなければ、ブロック352においてページフォールトをトリガすることによりアクセスを阻止する。同一であれば、ブロック390において、ページへのアクセスを許可する。
ブロック330に戻り、ページアクセスが命令フェッチによるものであれば、ブロック340において、フェッチ命令を含むページのカラーを確認して、別のカラーのページに対するジャンプもしくは呼び出しが許可されたものであるか(たとえば、当該カラーが0xFFであるか)を判定する。許可されたものであれば、ブロック390においてページへのアクセスを許可する。許可されたものでなければ、ブロック342においてフェッチ先命令はDAV命令であるか、あるいは当該アクセスがトランジションページにおいて許可されたエントリー・ポイントへのアクセスであるかを判定する。そうであれば、ブロック344において、フェッチ元命令のページカラーをPPCレジスタに退避し、ブロック390においてぺージへのアクセスを許可する。そうでなければ、ブロック350において、当該ページは、アクセス命令を含むページと同一カラーであるかを判定する。同一でなければ、ブロック352において、ページフォールトをトリガしてアクセスを阻止する。同一であれば、ブロック390においてページへのアクセスを許可する。
本発明の範囲において、方法200と300は、順序を変更して実施してよく、図示のブロックを同時に実施してよく、図示のブロックを省略して実施してよく、更なるブロックを追加して実施してよく、あるいはブロックの順序変更、同時実施、省略、追加を組み合わせて実施してよい。
本発明のある実施形態に従って設計するプロセッサ110、その他任意のプロセッサあるいはコンポーネントは、開発、シミュレーション、製造へと多様な段階を踏んで設計してよい。設計データは、設計を数多くの方法で表現してよい。まず、シミュレーションに利便的であるべく、ハードウェアをハードウェア記述言語あるいは別の機能的記述言語を用いて表現してよい。さらに又はあるいは、ロジックゲート及び/又はトランジスタゲートを有する回路レベルモデルを設計プロセスのいくつかの段階で作成してよい。さらに、大抵の設計は、ある段階において、多様なデバイスの物理的配置を表すデータによりモデル化できるレベルに到達する。従来の半導体製造技術を用いる場合、デバイス配置モデルを表すデータは、集積回路の製造に用いられるマスク用の複数のマスク層における、多様な特性についての有無を特定したデータであってよい。
設計をどのように表現した場合でも、データを任意の形態の機械読み取り可能媒体に保存してよい。当該情報を伝達するべく変調あるいは生成された光波あるいは電波、メモリ、ディスク等の磁気あるいは光記憶媒体が、機械読み取り可能媒体であってよい。設計、あるいは本発明の実施形態において用いるその他情報、たとえばエラー復帰ルーチンの命令を、これら媒体のいずれによって「搬送」あるいは「表現」してもよい。当該情報を表現あるいは搬送する搬送電波を伝送して電気信号をコピー、バッファリング、あるいは再伝送すると、新たなコピーが作成される。したがって、通信プロバイダーあるいはネットワークプロバイダーの業務は、搬送波、本発明を実施する技術等の物品のコピーの作成であってよい。
メモリページをプログラムに対応付けるページカラーリング技術を開示した。特定の実施形態を記載し添付図面に示したが、これら実施形態は広範な発明に対する限定でなく例示であり、当業者は本開示を検討することによりその他多様な変更に想到するであろうので、本発明は図示し記載した特定の構成と配置に限定されないことは理解されよう。本件のような進歩が早く今後の進歩を予測し難い技術分野においては、開示した実施形態は、本開示あるいは添付の請求項の原理から逸脱することなく技術進歩を取り込むことで容易に配置と詳細の変更をなし得るであろう。

Claims (16)

  1. メモリにアクセスするインターフェースと、
    ページングユニットと
    を備え、
    前記ページングユニットは、
    前記メモリ内のアクセス可能なページのベースアドレスおよびカラーを含むデータ構造内のエントリーに基づいて、前記メモリ内のアクセス中のページに格納された命令によって供給される第一のアドレスを、前記アクセス可能なページに含まれる第二のアドレスに変換する変換ロジックと、
    前記アクセス中のページが前記命令を含む第一のプログラムと対応することを示す前記アクセス中のページのカラー、前記アクセス可能なページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す前記アクセス可能なページのカラーと、を比較する比較ロジックと
    前記アクセス中のページのカラーが前記アクセス可能なページのカラーと同じである場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記アクセス中のページのカラーと異なるカラーのアクセス可能なページにおける行き先アドレスベクトル命令(DAV命令)に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記異なるカラーのアクセス可能なページにおける前記DAV命令以外に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを阻止するアクセスロジックと、
    を含む、
    装置。
  2. メモリにアクセスするインターフェースと、
    ページングユニットと
    を備え、
    前記ページングユニットは、
    前記メモリ内のアクセス可能なページのベースアドレスおよびカラーを含むデータ構造内のエントリーに基づいて、前記メモリ内のアクセス中のページに格納された命令によって供給される第一のアドレスを、前記アクセス可能なページに含まれる第二のアドレスに変換する変換ロジックと、
    前記アクセス中のページが前記命令を含む第一のプログラムと対応することを示す前記アクセス中のページのカラーと、前記アクセス可能なページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す前記アクセス可能なページのカラーと、を比較する比較ロジックと、
    前記アクセス中のページのカラーが前記アクセス可能なページのカラーと同じである場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記アクセス中のページのカラーと異なるカラーのアクセス可能なページにおける特定の整列状態にあるポイントに向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記異なるカラーのアクセス可能なページにおける前記ポイント以外に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを阻止するアクセスロジックと、
    を含む、
    装置。
  3. 前記アクセスロジックは、ページフォールト例外をトリガすることにより前記命令が前記アクセス可能なページにアクセスするのを阻止する、
    請求項1または2に記載の装置。
  4. 前記アクセスロジックは、前記アクセス可能なページのカラーが、該アクセス可能なページがカラーリングされていないことを示すよう設定されている場合に、前記命令が該アクセス可能なページにアクセスするのを許可する、
    請求項1から3のいずれか一項に記載の装置。
  5. 前記アクセスロジックは、アクセスが読み出しアクセスであり、かつ前記エントリーに、前記アクセス可能なページが隠れていないことを示す表示も含められている場合に、前記命令が該アクセス可能なページにアクセスするのを許可する、
    請求項1から4のいずれか一項に記載の装置。
  6. 前記命令はジャンプと呼び出し命令のうちの一方である、
    請求項1から5のいずれか一項に記載の装置。
  7. 前記アクセスロジックは、更に前記命令が前記アクセス可能なページにアクセスするのを阻止したことを、ページカラー違反としてエラーコードにより報告する、
    請求項3に記載の装置。
  8. 記ジャンプと前記呼び出しのうちの一方が許可されている場合に、前記アクセス中のページのカラーを記憶する記憶位置を更に含む請求項に記載の装置。
  9. メモリ内のアクセス可能なページのベースアドレスおよびカラーを含むデータ構造内のエントリーに基づいて、前記メモリ内のアクセス中のページに格納された命令によって供給される第一のアドレスを、前記アクセス可能なページに含まれる第二のアドレスに変換する変換段階と、
    前記アクセス中のページが前記命令を含む第一のプログラムと対応することを示す前記アクセス中のページのカラーと、前記アクセス可能なページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す前記アクセス可能なページのカラーと、を比較する比較段階と、
    前記アクセス中のページのカラーが前記アクセス可能なページのカラーと同じである場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記アクセス中のページのカラーと異なるカラーのアクセス可能なページにおける行き先アドレスベクトル命令(DAV命令)に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記異なるカラーのアクセス可能なページにおける前記DAV命令以外に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを阻止するアクセス制御段階と
    を含む方法。
  10. メモリ内のアクセス可能なページのベースアドレスおよびカラーを含むデータ構造内のエントリーに基づいて、前記メモリ内のアクセス中のページに格納された命令によって供給される第一のアドレスを、前記アクセス可能なページに含まれる第二のアドレスに変換する変換段階と、
    前記アクセス中のページが前記命令を含む第一のプログラムと対応することを示す前記アクセス中のページのカラーと、前記アクセス可能なページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す前記アクセス可能なページのカラーと、を比較する比較段階と、
    前記アクセス中のページのカラーが前記アクセス可能なページのカラーと同じである場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記アクセス中のページのカラーと異なるカラーのアクセス可能なページにおける特定の整列状態にあるポイントに向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記異なるカラーのアクセス可能なページにおける前記ポイント以外に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを阻止するアクセス制御段階と、
    を含む、
    方法。
  11. 前記アクセス制御段階は、前記アクセス可能なページがカラーリングされていない場合、前記命令が該アクセス可能なページにアクセスするのを許可する、
    請求項9または10に記載の方法。
  12. 前記アクセス制御段階は、アクセスが読み出しアクセスであり、前記アクセス中のページのカラーが前記アクセス可能なページのカラーと異なり、かつ該アクセス可能なページが隠れている場合、前記命令が該アクセス可能なページにアクセスするのを阻止する、
    請求項9から11のいずれか一項に記載の方法。
  13. 前記命令はジャンプと呼び出しのうちの一方である、
    請求項9から12のいずれか一項に記載の方法。
  14. 前記アクセス可能なページのカラーを見つけるべくページテーブルを参照する段階を更に含む請求項9から13のいずれか一項に記載の方法。
  15. ダイナミックランダムアクセスメモリと、
    前記ダイナミックランダムアクセスメモリに接続され、ページングユニットを含むプロセッサと
    を含むシステムであって、
    前記ページングユニットは、
    前記メモリ内のアクセス可能なページのベースアドレスおよびカラーを含むデータ構造内のエントリーに基づいて、前記メモリ内のアクセス中のページに格納された命令によって供給される第一のアドレスを、前記アクセス可能なページに含まれる第二のアドレスに変換する変換ロジックと、
    前記アクセス中のページが前記命令を含む第一のプログラムと対応することを示す前記アクセス中のページのカラー、前記アクセス可能なページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す前記アクセス可能なページのカラーと、を比較する比較ロジックと
    前記アクセス中のページのカラーが前記アクセス可能なページのカラーと同じである場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記アクセス中のページのカラーと異なるカラーのアクセス可能なページにおける行き先アドレスベクトル命令(DAV命令)に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記異なるカラーのアクセス可能なページにおける前記DAV命令以外に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを阻止するアクセスロジックと、
    を含む
    システム。
  16. ダイナミックランダムアクセスメモリと、
    前記ダイナミックランダムアクセスメモリに接続され、ページングユニットを含むプロセッサと
    を含むシステムであって、
    前記ページングユニットは、
    前記メモリ内のアクセス可能なページのベースアドレスおよびカラーを含むデータ構造内のエントリーに基づいて、前記メモリ内のアクセス中のページに格納された命令によって供給される第一のアドレスを、前記アクセス可能なページに含まれる第二のアドレスに変換する変換ロジックと、
    前記アクセス中のページが前記命令を含む第一のプログラムと対応することを示す前記アクセス中のページのカラーと、前記アクセス可能なページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す前記アクセス可能なページのカラーと、を比較する比較ロジックと、
    前記アクセス中のページのカラーが前記アクセス可能なページのカラーと同じである場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記アクセス中のページのカラーと異なるカラーのアクセス可能なページにおける特定の整列状態にあるポイントに向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを許可し、前記命令が前記異なるカラーのアクセス可能なページにおける前記ポイント以外に向けて実行された場合には、前記命令が該アクセス可能なページにアクセスするのを阻止するアクセスロジックと、
    を含む、
    システム。
JP2008541443A 2005-12-30 2006-12-21 メモリページをプログラムに対応付けるページカラーリング Expired - Fee Related JP4759059B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/323,446 US9390031B2 (en) 2005-12-30 2005-12-30 Page coloring to associate memory pages with programs
US11/323,446 2005-12-30
PCT/US2006/048940 WO2007079011A2 (en) 2005-12-30 2006-12-21 Page coloring to associate memory pages with programs

Publications (2)

Publication Number Publication Date
JP2009516310A JP2009516310A (ja) 2009-04-16
JP4759059B2 true JP4759059B2 (ja) 2011-08-31

Family

ID=38093456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008541443A Expired - Fee Related JP4759059B2 (ja) 2005-12-30 2006-12-21 メモリページをプログラムに対応付けるページカラーリング

Country Status (5)

Country Link
US (1) US9390031B2 (ja)
JP (1) JP4759059B2 (ja)
KR (1) KR20080072952A (ja)
CN (1) CN101351774B (ja)
WO (1) WO2007079011A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US7512768B2 (en) * 2006-07-21 2009-03-31 Intel Corporation Dynamically sharing a stack between different code segments
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7895392B2 (en) * 2007-01-05 2011-02-22 International Business Machines Color-based cache monitoring
US8799581B2 (en) * 2007-01-05 2014-08-05 International Business Machines Corporation Cache coherence monitoring and feedback
US8671248B2 (en) * 2007-01-05 2014-03-11 International Business Machines Corporation Architecture support of memory access coloring
JP2009104555A (ja) * 2007-10-25 2009-05-14 Intel Corp Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
KR101671494B1 (ko) 2010-10-08 2016-11-02 삼성전자주식회사 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
KR101179275B1 (ko) 2011-05-04 2012-09-03 성균관대학교산학협력단 메모리 관리 장치 및 방법
CN102663115B (zh) * 2012-04-16 2015-01-14 中国人民大学 基于页面染色技术的内存数据库访问优化方法
DE102012218363A1 (de) * 2012-10-09 2014-04-10 Continental Automotive Gmbh Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät
WO2015038944A1 (en) 2013-09-12 2015-03-19 Virsec Systems, Inc. Automated runtime detection of malware
CN104572493A (zh) 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
WO2015061965A1 (en) * 2013-10-29 2015-05-07 Hua Zhong University Of Science Technology Mixed cache management
EP3111333B1 (en) * 2014-02-27 2022-03-30 Mercury Kingdom Assets Limited Thread and data assignment in multi-core processors
AU2015279920B2 (en) 2014-06-24 2018-03-29 Virsec Systems, Inc. Automated root cause analysis of single or N-TIERED applications
CA2953793C (en) 2014-06-24 2021-10-19 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
US10162694B2 (en) 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
US10585809B2 (en) 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
CA3027728A1 (en) 2016-06-16 2017-12-21 Virsec Systems, Inc. Systems and methods for remediating memory corruption in a computer application
US20180024944A1 (en) * 2016-07-22 2018-01-25 Qualcomm Incorporated Methods and apparatus for access control in shared virtual memory configurations
US10635479B2 (en) * 2016-12-19 2020-04-28 Bitdefender IPR Management Ltd. Event filtering for virtual machine security applications
US10686605B2 (en) 2017-09-29 2020-06-16 Intel Corporation Technologies for implementing mutually distrusting domains
GB2570691B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
KR20230096292A (ko) * 2021-12-23 2023-06-30 한국전자통신연구원 동적 메모리 관리 방법 및 장치, 컴퓨터 판독 가능한 기록 매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03244054A (ja) * 1990-02-21 1991-10-30 Nec Corp 記憶保護方式
JPH05257811A (ja) * 1992-01-16 1993-10-08 Toshiba Corp メモリ管理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3916385A (en) 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware
FR2547945B1 (fr) * 1983-06-21 1986-05-02 Raffinage Cie Francaise Nouvelle structure de cable electrique et ses applications
IN165278B (ja) 1984-09-21 1989-09-09 Digital Equipment Corp
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
EP0428079A3 (en) 1989-11-13 1991-12-18 Ross Technology, Inc. Translation look aside buffer with parallel exception checking and update bypass
US6009503A (en) * 1994-04-22 1999-12-28 International Business Machines Corporation Cache memory indexing using virtual, primary and secondary color indexes
DE19611311A1 (de) 1996-03-22 1997-09-25 Dyneon Gmbh Schichtstoff
US6347364B1 (en) * 1998-11-20 2002-02-12 International Business Machines Corp. Schedulable dynamic memory pinning
US6654859B2 (en) * 2001-07-26 2003-11-25 International Business Machines Corporation NUMA page selection using coloring
JP2003211748A (ja) * 2001-11-09 2003-07-29 Canon Inc 画像形成装置、画像形成方法およびプログラム
US6823433B1 (en) 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US7199896B2 (en) * 2003-05-29 2007-04-03 Xerox Corporation Systems and methods for efficiently generating and supplying image data for tandem printers
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03244054A (ja) * 1990-02-21 1991-10-30 Nec Corp 記憶保護方式
JPH05257811A (ja) * 1992-01-16 1993-10-08 Toshiba Corp メモリ管理装置

Also Published As

Publication number Publication date
CN101351774A (zh) 2009-01-21
WO2007079011A3 (en) 2007-11-22
CN101351774B (zh) 2011-04-20
JP2009516310A (ja) 2009-04-16
WO2007079011A2 (en) 2007-07-12
US9390031B2 (en) 2016-07-12
KR20080072952A (ko) 2008-08-07
US20070157003A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
JP4759059B2 (ja) メモリページをプログラムに対応付けるページカラーリング
US8458791B2 (en) Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
Schrammel et al. Jenny: Securing Syscalls for {PKU-based} Memory Isolation Systems
US7272832B2 (en) Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
CN109643290B (zh) 用于具用扩展分段的面向对象的存储器管理的技术
US8341369B2 (en) Providing protected access to critical memory regions
US7631160B2 (en) Method and apparatus for securing portions of memory
US20050108516A1 (en) By-pass and tampering protection for application wrappers
US20070005919A1 (en) Computer system protection based on virtualization
US20050086517A1 (en) Page granular curtained memory via mapping control
US9158710B2 (en) Page coloring with color inheritance for memory pages
US10545851B2 (en) Breakpoint insertion into kernel pages
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
CN111400702A (zh) 一种虚拟化的操作系统内核保护方法
EP3864555B1 (en) Verifying a stack pointer
US7512768B2 (en) Dynamically sharing a stack between different code segments
WO2019237866A1 (zh) 一种运行时访问控制方法及计算装置
US20140317742A1 (en) Hypervisor-based buffer overflow detection and prevention
CN114902178A (zh) 域转换禁用配置参数
WO2020037111A1 (en) Systems and methods for reliably injecting control flow integrity into binaries by tokenizing return addresses
WO2022128142A1 (en) Apparatus and method for managing access to data memory by executable codes based on execution context
Takaronis Linux kernel exploitation, a wonderful mess
Bianchi Blacksheep: a tool for kernel rootkit detection, based on physical memory crowdsourced analysis
WO2023209323A1 (en) Exception return state lock parameter

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100924

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101014

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110517

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110603

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees