JP6411494B2 - 仮想マシンにおけるページフォールトインジェクション - Google Patents
仮想マシンにおけるページフォールトインジェクション Download PDFInfo
- Publication number
- JP6411494B2 JP6411494B2 JP2016527974A JP2016527974A JP6411494B2 JP 6411494 B2 JP6411494 B2 JP 6411494B2 JP 2016527974 A JP2016527974 A JP 2016527974A JP 2016527974 A JP2016527974 A JP 2016527974A JP 6411494 B2 JP6411494 B2 JP 6411494B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- virtualized
- memory
- processor
- virtual machine
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
- G06F21/53—Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
- G06F21/54—Monitoring 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 by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Description
[0001]本出願は、2013年7月17日に出願された「Page Fault Injection In Virtual Machines(仮想マシンにおけるページフォールトインジェクション)」という名称の米国仮特許出願第61/847,538号の出願日に基づく優先権を主張し、その内容全体は、引用により本明細書に組み込まれる。
[0023]図1は、本発明のいくつかの実施形態によりマルウェア防御のためのハードウェア仮想化を使用するホストシステム10の例示的な構成を示す。ホストシステム10は、エンタープライズサーバなどの企業のコンピューティングデバイス、またはパーソナルコンピュータもしくはスマートフォンなどのエンドユーザデバイスを表すことができる。他の例示的なホストシステムには、TVおよびゲーム機などのエンターテイメントデバイス、またはメモリおよびプロセッサを有し、マルウェア防御を必要とする他のいかなるデバイスも含まれる。図1の例では、ホストシステム10は、ハイパーバイザ30によって公開されるゲスト仮想マシン32a〜bのセットを実行する。仮想マシン(VM)は、実際の物理マシン/コンピュータシステムの抽象化(abstraction)、たとえばソフトウェアエミュレーションを含み、VMは、オペレーティングシステムおよび他のアプリケーションを実行することができる。ハイパーバイザ30は、仮想プロセッサおよび仮想メモリコントローラなどの複数の仮想化されたデバイスを作成し、そのような仮想化されたデバイスを、ホストシステム10の実在の物理デバイスの代わりにソフトウェアに提示するように構成されたソフトウェアを含む。いくつかの実施形態では、ハイパーバイザ30は、ホストシステム10のハードウェアリソースの複数の仮想マシンによって多重化(共有)を可能にする。ハイパーバイザ30はさらに、各VMが独立して動作し、ホストシステム10で同時に実行される他のVMを認識しないように、そのような多重化を管理することができる。よく知られているハイパーバイザの例には、特に、VMware社が提供するVMware vSphere(商標)、およびオープンソースのXenハイパーバイザが含まれる。
Claims (28)
- ハードウェアプロセッサを含むホストシステムであって、前記ハードウェアプロセッサは、
仮想化されたプロセッサおよび仮想化されたメモリを含み、前記仮想化されたプロセッサを使用してターゲットプロセスを実行するように構成された仮想マシンを公開するように構成されたハイパーバイザと、
前記仮想マシンの外で実行されるメモリ内部監視エンジンであって、
前記仮想マシンのページテーブルにより、前記ターゲットプロセスの仮想メモリ空間のターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定し、
前記ターゲットページが前記仮想化されたメモリからスワップアウトされているときに、前記仮想マシンにページフォールトを直接インジェクトし、前記ページフォールトは前記仮想マシンのオペレーティングシステムに前記ターゲットページを前記仮想化されたメモリのページにマップさせる
ように構成されたメモリ内部監視エンジンと
を動作させるように構成され、前記ページフォールトを直接インジェクトすることは、前記メモリ内部監視エンジンが、前記ページフォールトが発生する前に、前記ターゲットページの仮想アドレスを前記仮想化されたプロセッサのレジスタに書き込むことを含み、前記レジスタは、前記仮想化されたプロセッサによるある仮想アドレスへのアクセスがページフォールトを発生させたときに、当該ある仮想アドレスが格納されるレジスタである、ホストシステム。 - ハードウェアプロセッサを含むホストシステムであって、前記ハードウェアプロセッサは、
仮想化されたプロセッサおよび仮想化されたメモリを含み、前記仮想化されたプロセッサを使用してターゲットプロセスを実行するように構成された仮想マシンを公開するように構成されたハイパーバイザと、
前記仮想マシンの外で実行されるメモリ内部監視エンジンであって、
前記仮想マシンのページテーブルにより、前記ターゲットプロセスの仮想メモリ空間のターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定し、
前記ターゲットページが前記仮想化されたメモリからスワップアウトされているときに、前記仮想マシンにページフォールトを直接インジェクトし、前記ページフォールトは前記仮想マシンのオペレーティングシステムに前記ターゲットページを前記仮想化されたメモリのページにマップさせる
ように構成されたメモリ内部監視エンジンと
を動作させるように構成され、前記ページフォールトを直接インジェクトすることは、前記メモリ内部監視エンジンが、前記ページフォールトが発生する前に、前記ターゲットページの仮想アドレスを前記仮想化されたプロセッサのCR2レジスタに書き込むことを含む、ホストシステム。 - 請求項1または2に記載のホストシステムであって、
前記仮想マシンを公開することは、前記仮想化されたプロセッサの現在状態を記憶するデータ構造を構成することを含み、前記データ構造は、所定の値に設定されると、前記仮想化されたプロセッサにページフォールトを発生させるイベントインジェクションフィールドを含み、
前記ページフォールトを直接インジェクトすることは、前記メモリ内部監視エンジンが前記所定の値を前記イベントインジェクションフィールドに書き込むことをさらに含む、
ホストシステム。 - 請求項1から3のうちの何れか一項に記載のホストシステムであって、前記メモリ内部監視エンジンは、
前記ページフォールトを直接インジェクトするのに備えて、前記仮想化されたプロセッサの現在の状態により、インジェクション条件が満たされるかどうかを判定し、
前記インジェクション条件が満たされるときに、前記ページフォールトを直接インジェクトする
ようにさらに構成された、ホストシステム。 - 請求項4に記載のホストシステムであって、前記インジェクション条件が満たされるかどうかを判定することは、前記仮想化されたプロセッサの現在の割り込み要求レベル(IRQL)を決定することを含む、ホストシステム。
- 請求項4または5に記載のホストシステムであって、前記インジェクション条件が満たされるかどうかを判定することは、前記仮想化されたプロセッサが現在実行されている特権レベルを決定することを含む、ホストシステム。
- 請求項4から6のうちの何れか一項に記載のホストシステムであって、前記インジェクション条件が満たされるかどうかを判定することは、前記仮想化されたプロセッサの現在の実行コンテキストを決定することを含む、ホストシステム。
- 請求項4から7のうちの何れか一項に記載のホストシステムであって、前記メモリ内部監視エンジンは、前記インジェクション条件が満たされるかどうかの判定に応答して、前記インジェクション条件が満たされないときに、前記インジェクション条件が満たされるまで前記ページフォールトのインジェクトを遅らせるようにさらに構成された、ホストシステム。
- 請求項1から8のうちの何れか一項に記載のホストシステムであって、前記メモリ内部監視エンジンは、前記ページフォールトを直接インジェクトすることに応じて、
前記ターゲットページのページテーブルエントリの変更を検出し、
前記ターゲットページが前記変更により前記仮想化されたメモリの前記ページにマップされたかどうかを判定する
ようにさらに構成された、ホストシステム。 - 請求項1から9のうちの何れか一項に記載のホストシステムであって、前記メモリ内部監視エンジンは、前記ターゲットページの内容により前記ターゲットプロセスが悪意のあるものであるかどうかを判定するようにさらに構成された、ホストシステム。
- 請求項1から10のうちの何れか一項に記載のホストシステムであって、前記メモリ内部監視エンジンは、前記ターゲットページの内容を変更しようとする試みをインターセプトするようにさらに構成された、ホストシステム。
- 請求項1から11のうちの何れか一項に記載のホストシステムであって、前記メモリ内部監視エンジンは、前記ターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定するのに備えて、
前記仮想マシン内の前記ターゲットプロセスの起動を示す、前記仮想化されたプロセッサのイベントを検出し、
前記イベントにより前記ターゲットページの仮想アドレスを決定する
ようにさらに構成された、ホストシステム。 - ホストシステムの少なくとも1つのハードウェアプロセッサが、ハイパーバイザを実行するステップであって、前記ハイパーバイザは、仮想化されたプロセッサおよび仮想化されたメモリを含む仮想マシンを公開するように構成され、前記仮想マシンは前記仮想化されたプロセッサを使用してターゲットプロセスを実行するように構成された、ステップと、
前記少なくとも1つのハードウェアプロセッサが、前記ターゲットプロセスの仮想メモリ空間のターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定するステップと、
前記ターゲットページが前記仮想化されたメモリからスワップアウトされているときに、前記少なくとも1つのハードウェアプロセッサが、前記仮想マシンにページフォールトを直接インジェクトするステップであって、前記ページフォールトは前記仮想マシンのオペレーティングシステムに前記ターゲットページを前記仮想化されたメモリのページにマップさせる、ステップと
を含み、前記ページフォールトを直接インジェクトするステップは、前記ページフォールトが発生する前に、前記ターゲットページの仮想アドレスを前記仮想化されたプロセッサのレジスタに書き込むステップを含み、前記レジスタは、前記仮想化されたプロセッサによるある仮想アドレスへのアクセスがページフォールトを発生させたときに、当該ある仮想アドレスが格納されるレジスタである、方法。 - ホストシステムの少なくとも1つのハードウェアプロセッサが、ハイパーバイザを実行するステップであって、前記ハイパーバイザは、仮想化されたプロセッサおよび仮想化されたメモリを含む仮想マシンを公開するように構成され、前記仮想マシンは前記仮想化されたプロセッサを使用してターゲットプロセスを実行するようにさらに構成された、ステップと、
前記少なくとも1つのハードウェアプロセッサが、前記ターゲットプロセスの仮想メモリ空間のターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定するステップと、
前記ターゲットページが前記仮想化されたメモリからスワップアウトされているときに、前記少なくとも1つのハードウェアプロセッサが、前記仮想マシンにページフォールトを直接インジェクトするステップであって、前記ページフォールトは前記仮想マシンのオペレーティングシステムに前記ターゲットページを前記仮想化されたメモリのページにマップさせる、ステップと
を含み、前記ページフォールトを直接インジェクトするステップは、前記ページフォールトが発生する前に、前記ターゲットページの仮想アドレスを前記仮想化されたプロセッサのCR2レジスタに書き込むステップを含む、方法。 - 請求項13または14に記載の方法であって、
前記仮想マシンを公開することは、前記仮想化されたプロセッサの現在状態を記憶するデータ構造を構成することを含み、前記データ構造は、所定の値に設定されると、前記仮想化されたプロセッサにページフォールトを発生させるイベントインジェクションフィールドを含み、
前記ページフォールトを直接インジェクトするステップは、前記所定の値を前記イベントインジェクションフィールドに書き込むステップをさらに含む、
方法。 - 請求項13から15のうちの何れか一項に記載の方法であって、前記ページフォールトを直接インジェクトするのに備えて、
前記少なくとも1つのハードウェアプロセッサが、前記仮想化されたプロセッサの現在の状態により、インジェクション条件が満たされるかどうかを判定するステップと、
前記インジェクション条件が満たされるときに、前記少なくとも1つのハードウェアプロセッサが、前記ページフォールトを直接インジェクトするステップと
をさらに含む方法。 - 請求項16に記載の方法であって、前記インジェクション条件が満たされるかどうかを判定するステップは、前記仮想化されたプロセッサの現在の割り込み要求レベル(IRQL)を決定するステップを含む、方法。
- 請求項16または17に記載の方法であって、前記インジェクション条件が満たされるかどうかを判定するステップは、前記仮想化されたプロセッサが現在実行されている特権レベルを決定するステップを含む、方法。
- 請求項16から18のうちの何れか一項に記載の方法であって、前記インジェクション条件が満たされるかどうかを判定するステップは、前記仮想化されたプロセッサの現在の実行コンテキストを決定するステップを含む、方法。
- 請求項16から19のうちの何れか一項に記載の方法であって、前記インジェクション条件が満たされるかどうかの判定に応答して、前記インジェクション条件が満たされないときに、前記インジェクション条件が満たされるまで前記ページフォールトのインジェクトを遅らせるステップをさらに含む方法。
- 請求項13から20のうちの何れか一項に記載の方法であって、前記ページフォールトを直接インジェクトするのに応じて、
前記少なくとも1つのハードウェアプロセッサが、前記ターゲットページのページテーブルエントリの変更を検出するステップと、
前記少なくとも1つのハードウェアプロセッサが、前記ターゲットページが前記変更により前記仮想化されたメモリの前記ページにマップされたかどうかを判定するステップと
をさらに含む方法。 - 請求項13から21のうちの何れか一項に記載の方法であって、前記少なくとも1つのハードウェアプロセッサが、前記ターゲットページの内容により前記ターゲットプロセスが悪意のあるものであるかどうかを判定するステップをさらに含む方法。
- 請求項13から22のうちの何れか一項に記載の方法であって、前記少なくとも1つのハードウェアプロセッサが、前記ターゲットページの内容を変更しようとする試みをインターセプトするステップをさらに含む方法。
- 請求項13から23のうちの何れか一項に記載の方法であって、前記ターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定するのに備えて、
前記少なくとも1つのハードウェアプロセッサが、前記仮想マシン内の前記ターゲットプロセスの起動を示す、前記仮想化されたプロセッサのイベントを検出するステップと、
前記少なくとも1つのハードウェアプロセッサが、前記イベントにより前記ターゲットページの仮想アドレスを決定するステップと
をさらに含む方法。 - ホストシステムにメモリ内部監視エンジンを形成させるプログラムであって、前記ホストシステムは、仮想化されたプロセッサおよび仮想化されたメモリを含む仮想マシンを公開するハイパーバイザを実行し、前記仮想マシンは、前記仮想化されたプロセッサを使用してターゲットプロセスを実行するように構成され、前記メモリ内部監視エンジンは、前記仮想マシンの外で実行され、前記メモリ内部監視エンジンは、
前記仮想マシンのページテーブルにより、前記ターゲットプロセスの仮想メモリ空間のターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定し、
前記ターゲットページが前記仮想化されたメモリからスワップアウトされているとき、前記仮想マシンにページフォールトを直接インジェクトし、前記ページフォールトは前記仮想マシンのオペレーティングシステムに前記ターゲットページを前記仮想化されたメモリのページにマップさせる
ように構成され、前記ページフォールトを直接インジェクトすることは、前記メモリ内部監視エンジンが、前記ページフォールトが発生する前に、前記ターゲットページの仮想アドレスを前記仮想化されたプロセッサのレジスタに書き込むことを含み、前記レジスタは、前記仮想化されたプロセッサによるある仮想アドレスへのアクセスがページフォールトを発生させたときに、当該ある仮想アドレスが格納されるレジスタである、プログラム。 - ホストシステムにメモリ内部監視エンジンを形成させるプログラムであって、前記ホストシステムは、仮想化されたプロセッサおよび仮想化されたメモリを含む仮想マシンを公開するハイパーバイザを実行し、前記仮想マシンは、前記仮想化されたプロセッサを使用してターゲットプロセスを実行するように構成され、前記メモリ内部監視エンジンは、前記仮想マシンの外で実行され、前記メモリ内部監視エンジンは、
前記仮想マシンのページテーブルにより、前記ターゲットプロセスの仮想メモリ空間のターゲットページが前記仮想化されたメモリからスワップアウトされているかどうかを判定し、
前記ターゲットページが前記仮想化されたメモリからスワップアウトされているとき、前記仮想マシンにページフォールトを直接インジェクトし、前記ページフォールトは前記仮想マシンのオペレーティングシステムに前記ターゲットページを前記仮想化されたメモリのページにマップさせる
ように構成され、前記ページフォールトを直接インジェクトすることは、前記メモリ内部監視エンジンが、前記ページフォールトが発生する前に、前記ターゲットページの仮想アドレスを前記仮想化されたプロセッサのCR2レジスタに書き込むことを含む、プログラム。 - 請求項25または26に記載のプログラムであって、
前記仮想マシンを公開することは、前記仮想化されたプロセッサの現在状態を記憶するデータ構造を構成することを含み、前記データ構造は、所定の値に設定されると、前記仮想化されたプロセッサにページフォールトを発生させるイベントインジェクションフィールドを含み、
前記ページフォールトを直接インジェクトすることは、前記メモリ内部監視エンジンが前記所定の値を前記イベントインジェクションフィールドに書き込むことをさらに含む、
プログラム。 - 請求項25から27のうちの何れか一項に記載のプログラムを記憶したコンピュータ可読記憶媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361847538P | 2013-07-17 | 2013-07-17 | |
US61/847,538 | 2013-07-17 | ||
US14/289,163 | 2014-05-28 | ||
US14/289,163 US9507727B2 (en) | 2013-07-17 | 2014-05-28 | Page fault injection in virtual machines |
PCT/RO2014/000018 WO2015152747A2 (en) | 2013-07-17 | 2014-07-02 | Page fault injection in virtual machines |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016525255A JP2016525255A (ja) | 2016-08-22 |
JP2016525255A5 JP2016525255A5 (ja) | 2017-02-23 |
JP6411494B2 true JP6411494B2 (ja) | 2018-10-24 |
Family
ID=52344738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016527974A Active JP6411494B2 (ja) | 2013-07-17 | 2014-07-02 | 仮想マシンにおけるページフォールトインジェクション |
Country Status (13)
Country | Link |
---|---|
US (1) | US9507727B2 (ja) |
EP (1) | EP3022648B8 (ja) |
JP (1) | JP6411494B2 (ja) |
KR (1) | KR101955189B1 (ja) |
CN (1) | CN105393229B (ja) |
AU (1) | AU2014389571B2 (ja) |
CA (1) | CA2915646C (ja) |
ES (1) | ES2639500T3 (ja) |
HK (1) | HK1216679A1 (ja) |
IL (1) | IL243122B (ja) |
RU (1) | RU2659472C2 (ja) |
SG (1) | SG11201510735RA (ja) |
WO (1) | WO2015152747A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612865B2 (en) | 2015-06-15 | 2017-04-04 | International Business Machines Corporation | Managed services coordinator |
US9898322B2 (en) * | 2015-10-29 | 2018-02-20 | International Business Machines Corporation | Steganographic message passing between a virtual machine and a hypervisor |
WO2017131780A1 (en) * | 2016-01-29 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Identifying object modifications |
US10116630B2 (en) * | 2016-04-04 | 2018-10-30 | Bitdefender IPR Management Ltd. | Systems and methods for decrypting network traffic in a virtualized environment |
US10528476B2 (en) * | 2016-05-24 | 2020-01-07 | International Business Machines Corporation | Embedded page size hint for page fault resolution |
US10264002B2 (en) * | 2016-07-14 | 2019-04-16 | Mitsui Bussan Secure Directions, Inc. | Program, information processing device, and information processing method |
US10346050B2 (en) | 2016-10-26 | 2019-07-09 | International Business Machines Corporation | Virtualization of memory compute functionality |
US10635479B2 (en) * | 2016-12-19 | 2020-04-28 | Bitdefender IPR Management Ltd. | Event filtering for virtual machine security applications |
US10489185B2 (en) * | 2017-03-17 | 2019-11-26 | Nicira, Inc. | Hypervisor-assisted approach for locating operating system data structures based on attribute matching |
US20180267818A1 (en) * | 2017-03-17 | 2018-09-20 | Nicira, Inc. | Hypervisor-assisted approach for locating operating system data structures based on notification data |
US11150929B2 (en) | 2018-05-29 | 2021-10-19 | Red Hat, Inc. | Enhanced memory management for virtual machines |
CN110209354B (zh) * | 2019-05-24 | 2022-04-19 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置、设备和介质 |
WO2022087481A1 (en) * | 2020-10-22 | 2022-04-28 | Vangaveti Kiran | In memory decoy |
US11586513B2 (en) | 2020-11-17 | 2023-02-21 | Google Llc | Live migrating virtual machines to a target host upon fatal memory errors |
CN112256404B (zh) * | 2020-11-17 | 2024-04-05 | 杭州安恒信息技术股份有限公司 | 一种虚拟机自省方法、装置、设备及介质 |
US11550673B2 (en) * | 2020-11-17 | 2023-01-10 | Google Llc | Virtual machines recoverable from uncorrectable memory errors |
US11816498B2 (en) * | 2021-01-21 | 2023-11-14 | Nutanix, Inc. | Early event-based notification for VM swapping |
US11977431B2 (en) | 2022-03-15 | 2024-05-07 | Google Llc | Memory error prevention by proactive memory poison recovery |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240702A (ja) * | 1997-02-26 | 1998-09-11 | Sony Corp | 並列処理プロセッサおよびその処理方法 |
US7305592B2 (en) * | 2004-06-30 | 2007-12-04 | Intel Corporation | Support for nested fault in a virtual machine environment |
US8291409B2 (en) * | 2006-05-22 | 2012-10-16 | Microsoft Corporation | Updating virtual machine with patch on host that does not have network access |
US7757034B1 (en) | 2006-06-29 | 2010-07-13 | Parallels Software International, Inc. | Expansion of virtualized physical memory of virtual machine |
US7757035B2 (en) * | 2007-06-26 | 2010-07-13 | Intel Corporation | Method for optimizing virtualization technology and memory protections using processor-extensions for page table and page directory striping |
US20090113111A1 (en) | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Secure identification of execution contexts |
US8244954B2 (en) | 2008-10-10 | 2012-08-14 | International Business Machines Corporation | On-demand paging-in of pages with read-only file system |
US8117373B2 (en) | 2009-04-30 | 2012-02-14 | Kimon Berlin | VM host responding to initiation of a page swap by transferring pages from host-but-non-guest-addressable RAM to host-and-guest-addressable RAM |
CN102460400B (zh) | 2009-06-29 | 2014-09-24 | 惠普开发有限公司 | 基于管理程序的本地和远程虚拟内存页面管理 |
US8271450B2 (en) | 2009-10-01 | 2012-09-18 | Vmware, Inc. | Monitoring a data structure in a virtual machine and determining if memory pages containing the data structure are swapped into or out of guest physical memory |
CN102129531B (zh) * | 2011-03-22 | 2013-07-24 | 北京工业大学 | 一种基于Xen的主动防御方法 |
US8694738B2 (en) | 2011-10-11 | 2014-04-08 | Mcafee, Inc. | System and method for critical address space protection in a hypervisor environment |
CN102736969B (zh) * | 2012-05-22 | 2014-12-17 | 中国科学院计算技术研究所 | 一种针对硬件虚拟化的内存监控方法和系统 |
US8914458B2 (en) | 2012-09-27 | 2014-12-16 | Mellanox Technologies Ltd. | Look-ahead handling of page faults in I/O operations |
-
2014
- 2014-05-28 US US14/289,163 patent/US9507727B2/en active Active
- 2014-07-02 SG SG11201510735RA patent/SG11201510735RA/en unknown
- 2014-07-02 JP JP2016527974A patent/JP6411494B2/ja active Active
- 2014-07-02 AU AU2014389571A patent/AU2014389571B2/en active Active
- 2014-07-02 CA CA2915646A patent/CA2915646C/en active Active
- 2014-07-02 ES ES14882801.5T patent/ES2639500T3/es active Active
- 2014-07-02 EP EP14882801.5A patent/EP3022648B8/en active Active
- 2014-07-02 CN CN201480040376.3A patent/CN105393229B/zh active Active
- 2014-07-02 WO PCT/RO2014/000018 patent/WO2015152747A2/en active Application Filing
- 2014-07-02 RU RU2016104469A patent/RU2659472C2/ru active
- 2014-07-02 KR KR1020167000715A patent/KR101955189B1/ko active IP Right Grant
-
2015
- 2015-12-15 IL IL24312215A patent/IL243122B/en active IP Right Grant
-
2016
- 2016-04-22 HK HK16104630.0A patent/HK1216679A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2015152747A2 (en) | 2015-10-08 |
AU2014389571B2 (en) | 2019-05-09 |
EP3022648B1 (en) | 2017-06-14 |
EP3022648A2 (en) | 2016-05-25 |
KR20160033689A (ko) | 2016-03-28 |
CN105393229A (zh) | 2016-03-09 |
WO2015152747A3 (en) | 2015-12-03 |
CN105393229B (zh) | 2019-01-18 |
US20150026807A1 (en) | 2015-01-22 |
EP3022648B8 (en) | 2017-08-02 |
SG11201510735RA (en) | 2016-02-26 |
AU2014389571A1 (en) | 2016-01-21 |
RU2016104469A (ru) | 2017-08-22 |
US9507727B2 (en) | 2016-11-29 |
CA2915646A1 (en) | 2015-10-08 |
CA2915646C (en) | 2020-08-25 |
ES2639500T3 (es) | 2017-10-26 |
RU2659472C2 (ru) | 2018-07-02 |
HK1216679A1 (zh) | 2016-11-25 |
JP2016525255A (ja) | 2016-08-22 |
KR101955189B1 (ko) | 2019-03-08 |
IL243122B (en) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6411494B2 (ja) | 仮想マシンにおけるページフォールトインジェクション | |
JP6378758B2 (ja) | 仮想マシンにおけるマルウェア検出のためのプロセス評価 | |
JP6218859B2 (ja) | 仮想マシンの完全性保護のためのメモリイントロスペクションエンジン | |
US10296470B2 (en) | Systems and methods for dynamically protecting a stack from below the operating system | |
JP7036821B2 (ja) | 仮想マシンセキュリティ適用例のためのイベントフィルタ処理 | |
US10489185B2 (en) | Hypervisor-assisted approach for locating operating system data structures based on attribute matching | |
US20180267818A1 (en) | Hypervisor-assisted approach for locating operating system data structures based on notification data | |
US20150379265A1 (en) | Systems And Methods For Preventing Code Injection In Virtualized Environments | |
US20160048458A1 (en) | Computer Security Systems and Methods Using Hardware-Accelerated Access To Guest Memory From Below The Operating System | |
Li et al. | Iso-UniK: lightweight multi-process unikernel through memory protection keys |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170117 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180403 |
|
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: 20180828 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180926 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6411494 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |