JP5055380B2 - 保護エージェント及び特権モード - Google Patents

保護エージェント及び特権モード Download PDF

Info

Publication number
JP5055380B2
JP5055380B2 JP2009547243A JP2009547243A JP5055380B2 JP 5055380 B2 JP5055380 B2 JP 5055380B2 JP 2009547243 A JP2009547243 A JP 2009547243A JP 2009547243 A JP2009547243 A JP 2009547243A JP 5055380 B2 JP5055380 B2 JP 5055380B2
Authority
JP
Japan
Prior art keywords
protection agent
operating system
virtual machine
machine monitor
memory
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
JP2009547243A
Other languages
English (en)
Other versions
JP2010517162A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010517162A publication Critical patent/JP2010517162A/ja
Application granted granted Critical
Publication of JP5055380B2 publication Critical patent/JP5055380B2/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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

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

Description

コンピュータデバイスのプロセッサは、特権モード及び非特権モードを有することが多い。特権モードでソフトウェアを実行すると、通常、プロセッサによってサポートされるあらゆる命令を実行することができる。一般的に、オペレーティングシステムカーネルは、特権モードにおいて動作する。特権モードは、「リング0」、「スーパバイザモード」、または「カーネルモード」と称されることがある。
対照的に、コンピュータデバイス上で動作するいくつかのソフトウェアは、非特権モードでだけ動作するよう限定されているかもしれない。このモードは、通常、プロセッサの命令のサブセットをソフトウェアが実行できるようにする。よって、オペレーティングシステムは、非特権モードを用いて、このモードで動作するソフトウェアの機能を制限することができる。例えば、ソフトウェアを、コンピュータデバイスのメモリの特定のサブセットに限定してもよい。この非特権モードは、「リング3」または「ユーザモード」として公知の場合もある。該して、コンピュータデバイスのユーザアプリケーションは、この非特権モードで動作する。
ソフトウェアアプリケーションがこの非特権モードで動作する場合、当該アプリケーションは、非特権モードから直接アクセスすることができないメモリの一部分へのアクセスを要求するかもしれない。例えば、アプリケーションは、「新規なファイルを生成する」ことなどのメモリの当該一部分での動作を実行することを所望するかもしれない。この要求は、通常、コールゲートまたは他のシステムコール命令を介して発送される。コールゲートまたは他のシステムコール命令は、この非特権モードのコードを特権モードのコードに移行させる。この移行によって、特権モードからだけアクセス可能に指定されているメモリに非特権モードは直接アクセスできないということを確実にする。
これらのモードによって、悪質なコードの作者は、特権モードにアクセスして、コンピュータデバイスの動作を変更するマルウェアをインストールすることができる。例えば、このマルウェアは、ファイルの場所を改ざんし、ファイルを隠し、ファイルを変更し、または、キー入力を変更するなどするかもしれない。このマルウェアのいくつかは、「ルートキット」を含んでいるかもしれない。ルートキットは、コンピュータデバイスの動作を変更するだけでなく、特権モードのメモリ内でそれ自身を隠す。従って、コンピュータデバイス上で動作するアンチウィルスアプリケーションは、この隠れたルートキットを発見できず、よって、マルウェアにその悪質な行為を続けさせるかもしれない。更に、以下で検討するように、かかるマルウェアは、オペレーティングシステムの組み込みプロテクションシステムにパッチを当てるかもしれない。
マルウェアの作者は、特権モードにアクセスして、様々な方法でコンピュータデバイスにマルウェアをロードするかもしれない。様々な方法には、コンピュータデバイスのユーザをだましてユーザ自身のコンピュータデバイスにマルウェアを知らずにインストールさせることを含む。その結果、現在のオペレーティングシステムは、かかるマルウェアを検出する1つまたは複数のプロテクションシステムを用いることが多い。これらのプロテクションシステムは、通常、特定の重要なオペレーティングシステム資源を監視して、これらの資源に対するあらゆる変更を検出する。かかるプロテクションシステムがかかる変更を検出すると、プロテクションシステムは特定の資源がマルウェアに感染したと判断することができる。これらのプロテクションシステムは、また、ユーザのアンチウィルスアプリケーションに対して、非特権モードのメモリにそのとき存在するアプリケーションのリストを提供することができる。もちろん、マルウェアが隠れることに成功している場合、マルウェアは提供されるリスト上に表示されない。更に、マルウェアがプロテクションシステムにパッチを当てることに成功している場合、プロテクションシステムは起動できないか、または重要なオペレーティングシステム資源についての何らの変更を検出できないかもしれない。
これらのプロテクションシステムは有効であるかもしれないが、また、いくつかの欠点に苦しんでいるかもしれない。先ず、これらのシステムは、曖昧な事象に依存することが多く、よってマルウェアによって特定されている条件での利用に弱い。即ち、マルウェアがプロテクションシステムの正体を解明してプロテクションシステムを見つける場合、マルウェアは保護システム自体を無効にすることができる。マルウェアの作者は、また、同じことをする方法に関して他人に命令することができる。更にかつ最初のことに関連して、これらのプロテクションシステムは、通常、オペレーティングシステムの保護領域と同じ保護領域において(例えば、特権モード自体内で)動作する。従って、マルウェアが特権モードにアクセスして、曖昧なプロテクションシステムの正体を暴くことが可能な場合、プロテクションシステムはそれ自体が攻撃の対象となる。最後に、これらのプロテクションシステムは、オペレーティングシステムまたは特権モードと同時に初期化される。従って、マルウェアまたはマルウェアの作者がこの初期化の前にコンピュータデバイスの支配権を得る場合、マルウェアまたはマルウェアの作者は、プロテクションシステムが初期化されないようにすることができる。
この明細書は、保護エージェントに付随するオペレーティングシステムメモリの一部をオペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくすることができるツールを開示する。いくつかの実施形態では、これらのツールは、バーチャルマシンモニタがオペレーティングシステムメモリのこの一部を保護することを要求することにより、保護エージェント特権モードを生成することができる。他の実施形態では、これらのツールは、物理プロセッサを複数の仮想プロセッサに仮想化することにより、保護エージェント特権モードを生成することができる。複数の仮想プロセッサのうちの少なくとも1つは、保護エージェントを実行するように設計されている保護エージェント仮想プロセッサである。オペレーティングシステムメモリのこの一部をオペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくすることによって、保護エージェントを、オペレーティングシステム特権モードにおいて動作しているエンティティによる攻撃に対して強くできる。
この概要は、詳細な説明で更に後述する単純化された形式の概念の選択を導くために提供されている。この概要は請求された発明の重要な特徴または基本的特徴を識別することを意図していないし、請求された発明の範囲を決定する際の援助として用いられることも意図していない。例えば、用語「ツール」は、上記のコンテキストによってかつ明細書全体にわたって認められるように、システム(または複数のシステム)、方法(または複数の方法)、複数のコンピュータ可読命令、及び/または技術(または複数の技術)を述べてもよい。
同じ番号が、明細書及び図の全体にわたって同様の構成要素及び特徴を参照するために用いられる。
ツールの様々な実施形態が動作することができる例示的な動作環境を示す図である。 図1に示したモジュールの様々なコンピュータデバイスメモリ権利を示す図である。 図1に示したモジュールのいくつかが存在するコンピュータデバイスメモリの様々な部分を表す図である。 バーチャルマシンモニタが、保護エージェントに付随するメモリの一部を保護し、エージェントを実行するタイマをセットすることができる例示的な方法を示すフローチャートである。 物理プロセッサを複数のオペレーティングシステム仮想プロセッサ及び1つの保護エージェント仮想プロセッサへ仮想化することができるバーチャルマシンモニタを有する例示的なアーキテクチャを示す図である。 図5の物理プロセッサの帯域幅を様々な仮想プロセッサの間で割り当てることができる方法を示す図である。 オペレーティングシステム特権モードからアクセスできない場所に存在する保護エージェントをツールが有効にしかつ実行するいくつかの方法を説明する例示的なプロセスを示す図である。 オペレーティングシステム特権モードからアクセスできない場所に存在する保護エージェントを有効にしかつ実行するバーチャルマシンモニタをツールが変更し得るいくつかの方法を示す例示的な方法を説明する例示的なプロセスを示す図である。 バーチャルマシンモニタへ要求することによりツールが保護エージェント特権モードを生成することができるいくつかの方法を説明する例示的なプロセスを示す図である。 実コンピュータプロセッサを複数の仮想コンピュータプロセッサに仮想化することにより、ツールが保護エージェント特権モードを生成し、複数の仮想コンピュータプロセッサのうちの少なくとも1つが保護エージェントを実行することになっているいくつかの方法を説明する例示的なプロセスを示す図である。 下層の物理プロセッサに存在しない特権モードをツールが追加することができるいくつかの方法を説明する例示的なプロセスを示す図である。
概説
以下の明細書は、保護エージェントをオペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくする形で保護エージェントを動作させることができるツールを説明する。よって、これらのツールは、保護エージェント自体の保護を可能にし、それによって、重要なオペレーティングシステム資源に対する変更を検出する保護エージェントの能力を確保する。更に、これらのツールは、資源の変更の検出に対応してまたは保護エージェント自体の変更の試みに対応して、オペレーティングシステムまたはオペレーティングシステム特権モードをシャットダウンすることができる。更に、これらのツールは、その後に資源の変更を検出せずに、保護エージェントがオペレーティングシステム資源での変更ができないようにする。
ツールがこれら動作及び他の動作を有効にすることができる環境は、「例示的な動作環境」と題されたセクションで後述する。「自律保護エージェント」と題されたセクションが続き、2つのサブセクションを含む。「バーチャルマシンモニタ保護エージェント」と題された最初のサブセクションは、保護エージェントがバーチャルマシンモニタ内に存在していてかつバーチャルマシンモニタ内で動作することができる1つの例示的な方法を説明する。この後に、1つの例示的な方法を説明する「仮想パーティション保護エージェント」と題されたもう1つのサブセクションが続く。当該方法において、保護エージェントは、オペレーティングシステムのパーティションと別個の仮想パーティションに存在することができ、オペレーティングシステムのパーティションと別個の仮想パーティション内で動作することができる。
「自律保護エージェント特権モード」と題された別のセクションが続き、同様に2つのサブセクションを含む。最初のサブセクションは、バーチャルマシンモニタのタイマが保護エージェント特権モードを下層のプロセッサに追加することができる1つの例示的な方法を説明していて、「バーチャルマシンモニタに対する保護要求」と題されている。「保護エージェント仮想プロセッサ」と題されたサブセクションが続き、保護エージェント特権モードを生成することができる別の方法を説明する。複数の仮想プロセッサを用いるこの例では、保護エージェント特権モードで保護エージェントを実行する仮想プロセッサを含む。「ツールの例示的な使用法」と題されたセクションが続き、前述の動作中のツールの例を説明する。最後に、「ツールの他の実施形態」と題されたセクションは、ツールが動作することができる他の様々な実施形態及び方法を説明する。これらのセクション表題及び概要を含んでいるこの概説は、読者の便宜のために提供されていて、特許請求の範囲または表題を付けたセクションの範囲を限定することを意図していない。
例示的な動作環境
ツールを詳細に説明する前に、例示的な動作環境についての以下の説明が提供されて、ツールの様々な発明の態様を用いることができるいくつかの方法を理解するのに読者の助けとなる。後述する環境は、1つの例だけであって、いかなる1つの特定の動作環境にもツールの使用を限定することを意図していない。請求された発明の要旨の精神及び範囲を逸脱しない範囲で他の環境が用いられてもよい。例えば、以下のセクションは単一の保護エージェントを有する実施形態を説明するが、複数の保護エージェントが利用されてもよい。場合によっては、これらの保護エージェントは、独立してかつ並列で実行され得る。かかる例では、保護エージェントは、通常、そのそれぞれのパーティション内のメモリにしかアクセスできない。更に、以下に説明される技術は、同時に利用されてもよい。即ち、異なる保護エージェントは、同じ動作環境内で異なる技術を利用することができる。
この例について見ると、図1は、符号100で1つのかかる例示的な動作環境をおおまかに示す。この環境はコンピュータデバイス102を含み、コンピュータデバイス102自体が、1つまたは複数のプロセッサ104及びコンピュータ可読媒体106を含む。コンピュータ可読媒体106は、バーチャルマシンモニタ108(例えば、ハイパーバイザ)を含み、バーチャルマシンモニタ108は、1つまたは複数のプロセッサを複数の仮想プロセッサに仮想化することができる。バーチャルマシンモニタ108は、また、複数の仮想パーティションを有効にすることができる。1つまたは複数の仮想プロセッサは各パーティションに付随することができ、これらの仮想プロセッサは利用可能な物理プロセッサ上にスケジューリングされる。図示されているように、いくつかの実施形態では、バーチャルマシンモニタは、第1の仮想パーティション110及び第2の仮想パーティション112を有効にすることができる。以下に詳細に検討されるように、これらのパーティションは、オペレーティングシステム機能を保護エージェントサービスから切り離す働きをすることができる。
また、図示するように、コンピュータ可読媒体106は更に、オペレーティングシステム(OS)114及び1つまたは複数のユーザアプリケーション116を含む。オペレーティングシステム114は、オペレーティングシステムサービス118をユーザアプリケーション116に提供し、よって、アプリケーションがコンピュータデバイス上で実行されるようにする。更に、1つまたは複数のオペレーティングシステム資源120が、オペレーティングシステムに存在する。例示的な資源は、システムサービスディスパッチテーブル(SSDT)、割り込みディスパッチテーブル(IDT)、グローバルディスクリプタテーブル(GDT)などを含む。また、図示するように、オペレーティングシステムは、マルウェア122(即ち、悪意のコード)を含むかもしれない。マルウェア122は、上記で検討した方法かまたはそれ以外の方法でコンピュータデバイス上にロードされたかもしれない。以下で検討される1つまたは複数の保護エージェントは、マルウェアによってオペレーティングシステム資源になされた変更を検出することができて、該検出に対応して、防御措置をとることができる。保護エージェントがかかる判断をする場合、保護エージェントは、オペレーティングシステム及び/またはコンピュータデバイスをシャットダウンすることができるか、または反対の作用をする他の措置をとることができる。
コンピュータデバイスの構造を検討したので、ここで、下層の1つまたは複数の物理プロセッサ104に存在する特権モードを変化させることに注意を向ける。バーチャルマシンモニタ特権モード124は、図1に示した最も高い特権モードを表す。この特権モードは、デバイスの資源及びメモリの全てにまたはほぼ全てにアクセスできる。バーチャルマシンモニタ特権モード124から、バーチャルマシンモニタは、プロセッサをスケジューリングすることができて、各仮想パーティションのためのメモリ領域にアクセスすることができる。パーティション内で動作するオペレーティングシステムは、自身が物理プロセッサの資源の全てを制御していると考えるかもしれないが、実際は、オペレーティングシステムはバーチャルマシンモニタによって決定された一部分を制御しているだけである。
バーチャルマシンモニタ特権モードより低い特権を与えられているので、オペレーティングシステム特権モード126は、オペレーティングシステム資源120の全て及びオペレーティングシステムメモリのほとんどまたは全てにアクセスできる。しかしながら、この特権モードは、第2の仮想パーティション112などの別のパーティションに付随するいかなる資源またはメモリにもアクセスできない。それにもかかわらず、この特権モードは、通常、オペレーティングシステムメモリの全てにアクセスできるので、「特権モード」と称されるときもある。「リング0」、「スーパバイザモード」、または「カーネルモード」によっても、この特権モードが表されるかもしれない。上記で検討したように、オペレーティングシステム特権モード126内で動作しているユーザアプリケーションは、通常、バーチャルマシンモニタモードのために予約されている命令を除いて、プロセッサによって提供されるほとんどの命令を実行することができる。
このオペレーティングシステム特権モードは、「非特権モード」、「リング3」、または単に「ユーザモード」と称されることもあるユーザ特権モード128と対比される。また、上記で検討したように、ユーザアプリケーションは、ユーザ特権モード128から動作すると、オペレーティングシステムに付随する特定のメモリにアクセスすることができないかまたは変更することができない。一般に、コンピュータデバイスのユーザアプリケーションは、基本操作を実行すると、このユーザ特権モードで動作する。
上記のモードに加えて、図1はまた、第2の仮想パーティション特権モード130及び保護エージェント特権モード132を示す。以下に詳細に検討されるように、保護エージェント特権モード132は、オペレーティングシステム特権モードがアクセスできないメモリの一部へのアクセスができるが、通常、バーチャルマシンモニタ特権モードと同じ程度のメモリアクセスはできない。このように、この特権モードは、オペレーティングシステム特権モードより高い特権を有するが、バーチャルマシンモニタ特権モードより低い特権を有していてもよい。
また、以下に詳細に検討するように、第2の仮想パーティション特権モードは、概して第2の仮想パーティション112に付随するメモリにアクセスできる。更に、このモードは、第1の仮想パーティションにアクセスできてもよい。かかる追加のアクセスによって、例えば、第2の仮想パーティションに存在する保護エージェントが、第1の仮想パーティション及びその対応するオペレーティングシステムに付随するメモリを走査することができるようにされてもよい。このモードは、通常、バーチャルマシンモニタにアクセスできず、よって、バーチャルマシンモニタ特権モードより低い特権を有している。それにもかかわらず、第2の仮想パーティション特権モードは、オペレーティングシステム特権モードがアクセスできないメモリの一部にやはりアクセスできる。
一方、図2は、コンピュータデバイスのメモリ権利200を示す。よって、この図は、図1のモジュールでアクセス可能なメモリ量を表す。図示するように、バーチャルマシンモニタ特権モード124で動作するバーチャルマシンモニタ108は、図示した全てのモジュールのうちの最も多くのメモリ権利を有する。実際に、バーチャルマシンモニタは、メモリの一部202に存在し、メモリの一部202に単独でアクセスできる。次に、保護エージェント204(例えば、図1に示した保護エージェントのいずれか)は、保護エージェント特権モード132で動作し、バーチャルマシンモニタに対応する部分202以外の全てのメモリにアクセスできる。しかしながら、保護エージェントはメモリの一部206にアクセスできる。メモリの一部206は保護エージェント自体が存在するメモリの一部分である。
一方、オペレーティングシステム114は、オペレーティングシステム特権モード126で動作し、部分202及び部分206以外の全てのメモリにアクセスできる。オペレーティングシステムは、保護エージェントに付随するメモリの一部206にアクセスできないが、オペレーティングシステム及びその付随する特権モードは、メモリの一部208にアクセスできる。メモリの当該部分208は、カーネルメモリまたはオペレーティングシステムの最下層レベルの構成要素として公知である場合もあり、通常、図1に示した資源を含む。しかしながら、例えマルウェアがメモリの一部208にロードされかつ動作しても、マルウェアは保護エージェントに付随するメモリの一部206にアクセスすることができない。
最後に、図2は、ユーザアプリケーション116はメモリの一部210にアクセスできるだけということを示す。これらのユーザアプリケーション及び対応するユーザ特権モードは、オペレーティングシステムの最下層レベルの構成要素に付随するメモリの一部208にアクセスできない。この動作環境を考慮に入れて、以下の4つのセクションは、保護エージェントがオペレーティングシステム特権モードから変更できなくされるかまたはアクセスできなくされる例示的な方法を詳細に説明する。
自律保護エージェント
以下のセクションは、オペレーティングシステム特権モードにおいて動作しているエンティティでアクセスできないメモリから、1つまたは複数のオペレーティングシステム資源が変更されたかどうかを判断することができるツールを説明する。このように、ツールは、保護エージェントがオペレーティングシステムメモリ自体の場所以外の場所に存在することを可能にしてもよい。より具体的には、以下のサブセクションは、保護エージェントがバーチャルマシンモニタ内または自律仮想パーティション内のいずれかに存在することができる方法について説明する。
バーチャルマシンモニタ保護エージェント
このサブセクションは、図1が示すように、保護エージェント134がバーチャルマシンモニタ自体内に存在する方法について説明する。オペレーティングシステム特権モードはバーチャルマシンモニタにアクセスすることができないので、この場所は、オペレーティングシステムメモリ内にあるいかなるマルウェアからも保護エージェントを保護する。この場所から動作するために、保護エージェントは、保護エージェント134が監視することができる1つまたは複数のオペレーティングシステム資源120の識別証明を受信する。この識別証明は、資源識別子136を介して受信されてもよい。図示するように、オペレーティングシステムは、アプリケーションプログラミングインタフェース(API)コールを介してバーチャルマシンモニタにこの情報を提供することができる。または、オペレーティングシステムは、マニフェスト138の形で情報を提供することができる。上記のように、これらの資源には、SSDT、IDT、及びGDTを含むことができる。
一旦、保護エージェント134が資源の識別証明を受信すると、保護エージェント134は保護エージェントサービス140をオペレーティングシステム114まで拡大する。これらの保護エージェントサービスは、通常、識別された資源のいずれかが変更されたかどうかについて判断することを含む。かかる判断がなされる場合、保護エージェントまたはバーチャルマシンモニタは、例えば、オペレーティングシステムをシャットダウンすることができる。保護エージェントサービスはまた、変更不可能(例えば、「リードオンリー」)とマークされたあらゆる資源に対しても変更できないようにすることを含み得る。
かかるアーキテクチャを用いることは、バーチャルマシンモニタをロードして、初期化することから始まる。バーチャルマシンモニタは1つまたは複数のオペレーティングシステムをホストすることができる。この例では、バーチャルマシンモニタは、単一のオペレーティングシステム114をホストし、オペレーティングシステム114自体は、バーチャルマシンモニタがロードされた後に、初期化を開始する。オペレーティングシステムの初期化の間、オペレーティングシステム(例えばカーネル)の最下層レベルの構成要素に付随するメモリの一部208が、最初にロードされる。オペレーティングシステム資源120(例えば、SSDT、GDT、IDT)のいくつかまたは全ては、通常、このメモリの一部208に存在する。
オペレーティングシステムが初期化する前にまたはその初期化の間、保護エージェント134は、バーチャルマシンモニタ内から動作を開始することができる。上記で検討したように、保護エージェントは、通常、1つまたは複数のオペレーティングシステム資源一式の識別証明を受信して、識別された資源のうちの1つまたは複数が変更されたかどうかを判断する。各々の識別された資源は、複数の場所で多数の構成要素を含むことが多く、保護エージェントは全資源を十分に保護するためにそれぞれを監視することができるということに注目する。例えば、マニフェストがSSDTを監視して保護すべき資源と見なす場合、保護エージェントは実際のテーブルだけでなくSSDTの他の構成要素も保護する。例えば、保護エージェントは、テーブルの場所を示しているレジスタも監視して走査することができる。更に、保護エージェントは、SSDTの仮想アドレスを物理アドレスに翻訳するメモリ翻訳データ構造(例えば、ページテーブル)も監視することができる。保護エージェントが監視することができない場合、悪質なコードは、異なるページテーブルマッピング(即ち、SSDT自体を迂回する)を有する別のテーブルを生成するかもしれない。
識別証明に加えて、保護エージェントは、また、対応する資源を保護する方法について保護エージェントに命令する保護属性を受信することができる。例えば、保護エージェントは、SSDT資源の識別証明も「リードオンリー」についての対応する保護属性も、受信することができる。従って、SSDTはリードオンリーのままであるべきであって、よって変更されるべきではないということを、保護エージェントは知る。「リードオンリーを初期化せよ(Init read-only)」は、別の可能な保護属性であり、それは、対応する資源が初期化の間1度だけ書きこめるが、かかる期間の後は、資源はリードオンリーのままでなければならない、ということを保護エージェントに命令する。
保護エージェントは、この資源の識別証明及び資源保護属性を、多くの方法で能動的にも受動的にも受信することができる。例えば、オペレーティングシステムは、保護エージェントが監視することができる資源を識別するデジタル署名入りのマニフェストを提供することができる。このデジタル署名入りのマニフェストは、例えば、名前によって(例えば、SSDT、IDT、GDT、その他)、またはアドレスによってなど、メモリの一部208の対応する場所に資源をマッピングする多くの方法で資源を識別することができる。後者の例では、マニフェストは資源のゲスト物理アドレス、ゲスト仮想アドレス、またはシステム物理アドレスを識別することができる。場合によっては、ゲスト物理アドレスは、実際のシステム物理アドレスにマッッピングされて、対応する資源構成要素の実際の物理的な場所を発見することができる点に注目する。
バーチャルマシンモニタまたは保護エージェントはマニフェストを受信した後に、これらの構成要素は、マニフェストが改ざんまたは変更されているかどうかを判断することができる。バーチャルマシンモニタまたは保護エージェントがかかる判断をする場合、バーチャルマシンモニタまたは保護エージェントは、オペレーティングシステムを開始できないことを選ぶことができる。更に、資源のリストに付随する暗号化が無効にされてもよく、よってその安全性を守る。
マニフェストに加えて、または、マニフェストに代わるものにおいて、保護エージェントは、バーチャルマシンモニタ(例えば「ハイパーコール」)への1つまたは複数のアプリケーションプログラミングインタフェース(API)コールを介して資源及び保護属性識別証明を受信することができる。オペレーティングシステムが初期化されるときに、オペレーティングシステム(及び、おそらくオペレーティングシステム208の最も低いレベルの構成要素)は、バーチャルマシンモニタへのハイパーコールをすることができる。ハイパーコールは、監視されかつ保護され得る特定の資源を保護エージェントに知らせる。これらのハイパーコールは、上記で検討したのと同じ方法で妥当な資源を識別することができる。また、上記で検討したように、これらのハイパーコールも資源の保護属性を識別することができる。
デジタル署名入りのマニフェスト及び1つまたは複数のハイパーコールを利用する実施形態では、保護エージェントは、オペレーティングシステムが起動する前にまたは起動の間、マニフェストにおいて識別された資源を最初に走査することができる。この最初の走査の後に、オペレーティングシステムは、バーチャルマシンモニタへのハイパーコールをすることができる。ハイパーコールは、ハイパーコール識別ページが変更されたかどうかを判断することを保護エージェントに命令する。よってマニフェストは、オペレーティングシステムが起動するごとに資源を識別して走査するが、ハイパーコールは、資源のそれぞれの初期化があると、資源を識別して動的に走査する。
監視されるべき資源を識別したので、次に保護エージェントは、資源(例えば、上記のSSDTの各部分の全て)が変更されたかどうかを判断する。保護エージェントは、また、識別された資源に対して変更できないようにすることができる。例えば、保護エージェントは、「リードオンリー」と示されたいかなる資源も「書き込み可能」に変更しないということを確実にすることができる。
このようにして資源を監視して保護するために、バーチャルマシンモニタ内で動作するコードは、バーチャルマシンモニタインターセプトマネージャ(例えば、図1のマネージャ146)を用いることができる。そのように命令された場合、このインターセプトマネージャは、識別された資源の様々な構成要素に関する妨害を登録することができる。この登録によって、これらの識別された資源にアクセスするかまたは修正する試みがなされる場合に、バーチャルマシンモニタ内の保護エージェントは、妨害を受信することができる。このように、保護エージェントは、識別された資源の様々な構成要素を調べて走査することができ、それは、また、これらの資源を変更する試みを能動的に阻止することができる。
いくつかの実施形態では、保護エージェントは、資源を走査して、それ以後の走査の結果を比較するのに用いるために資源の最初の状態を判断する。他の実施形態では、保護エージェントは、それ以後の走査の結果を比較するために資源の初期状態をすでに知っている。いずれにしても、保護エージェントは、この初期状態のハッシュ値またはチェックサム値を計算することができる。この計算の後に、保護エージェントは、オペレーティングシステムが起動する前に、起動した後に、または起動する間に、資源を走査する。走査の後に、保護エージェントは、結果のハッシュまたはチェックサムを計算して、これを初期状態のハッシュ値またはチェックサム値と比較する。等しい場合、保護エージェントは対応する資源が変更されていないと判断する。もちろん、保護エージェントは、ハッシュ値またはチェックサム値を飛ばして、その代わりに初期状態を走査と直接比較してもよい。
しかしながら、値が異なっている場合、保護エージェント及び/またはバーチャルマシンモニタは1つまたは複数の応答動作を行うことができる。最初に、保護エージェント自体は、オペレーティングシステムまたはオペレーティングシステム特権モードをシャットダウンすることができる。または、バーチャルマシンモニタにシャットダウンするように命令することができる。更に、保護エージェントはバーチャルマシンモニタ内に存在するので、かつバーチャルマシンモニタはオペレーティングシステムのホストをするので、これらの2つの構成要素は、オペレーティングシステムをそのようにシャットダウンすることができる。更に、保護エージェントはバーチャルマシンモニタ内に存在するので、オペレーティングシステムをシャットダウンすることによって、オペレーティングシステム特権モードからさえ変更され得ない。
オペレーティングシステムをシャットダウンすることに加えて、保護エージェント及び/またはバーチャルマシンモニタは、緊急のシャットダウンをオペレーティングシステムに最初に警告してもよい。バーチャルマシンモニタとオペレーティングシステムとの間の通信チャネルが、かかる通信を可能にしてもよい。別の方法では、保護エージェント及び/またはバーチャルマシンモニタは、メモリ場所に警告を書き込むことができるかまたはオペレーティングシステムが監視するイベントに信号を送ることができる。
警告があったか否かに関わりなく、オペレーティングシステムのシャットダウンは、突然であっても正常であってもよい。前者の場合、バーチャルマシンモニタは、異なるハッシュ値またはチェックサム値を知った直後に、オペレーティングシステムを単にパワーダウンしてもよい。後者の場合、バーチャルマシンモニタは、オペレーティングシステムに自身を完全にシャットダウンすることができるある程度の時間を許容する。この時に、オペレーティングシステムは、例えば、あらゆるオープンファイルを閉じて、あらゆる対応データをフラッシュすることができる。オペレーティングシステムはまた、割り当てられた資源をリリースすることができる。更に、シャットダウンには両方の方法を利用することができる。例えば、バーチャルマシンモニタが複数のパーティションのホストをする場合、バーチャルマシンモニタは直ちに異なるハッシュ値またはチェックサム値を有するパーティションをシャットダウンするが、一方他のパーティションに完全にシャットダウンする時期を選ぶことを許容してもよい。いずれにしても、シャットダウンの方法は、ポリシーによって設定可能であってもよくかつ調整可能であってもよい。
シャットダウン及び対応する警告に加えて、保護エージェント及び/またはバーチャルマシンモニタは、識別された資源の許可されていない変更に対応して、起動後動作を行うことができる。例えば、バーチャルマシンモニタ及び/または保護エージェントは、オペレーティングシステムの再起動があると、オペレーティングシステムに資源変更を知らせることができる。それに応じて、オペレーティングシステムはアンチウィルススキャンを実行して、部分208など(例えば、カーネル)のオペレーティングシステムメモリ内にマルウェアが実際に存在するかどうかを検出することができる。更に、バーチャルマシンモニタは、オペレーティングシステムをセーフモードで起動するかまたは、オペレーティングシステム自体が、セーフモードで起動することを選択することができる。また、通知に応じて、オペレーティングシステムは、自身が攻撃されたと認識することができ、よって、接続するいかなるネットワークに自身がアクセスするのを許容しなくてもよい。
仮想パーティション保護エージェント
保護エージェント(例えば、図1の保護エージェント142)は、バーチャルマシンモニタ自体に存在する代わりに、別個の仮想パーティション(例えば、図1の第2の仮想パーティション112)に存在することができる。これらの実施形態では、この別個のパーティションは、バーチャルマシンモニタの信頼できる代表として働く。よって、保護エージェント142は、オペレーティングシステム特権モードからアクセスすることができない。上記で検討したように、バーチャルマシンモニタ108は、コンピュータデバイス102のかかる仮想化を提供する。バーチャルマシンモニタは、いくつのパーティションにでも、コンピュータデバイスを仮想化することができるが、図1は、オペレーティングシステムをホストする第1のパーティション及び保護エージェントをホストする第2のパーティションを示している。保護エージェントが存在する第2の仮想パーティションは、場合によっては、その主要な機能または唯一の機能が保護エージェントを実行させることになっている専用のセキュリティパーティションであってもよい。他の実施形態では、この第2の仮想パーティションは、別のオペレーティングシステムをホストすることなどの追加の機能を実行してもよい。
第2の仮想パーティション内に存在する保護エージェント142は、バーチャルマシンモニタ内に存在する保護エージェント134に関して上記で検討したのと同じ機能のうちの多くまたは全てを実行することができる。即ち、保護エージェント142は、1つまたは複数のオペレーティングシステム資源120の識別証明を能動的にまたは受動的に受信することができる。識別証明に応じて、保護エージェントは更に、保護エージェントサービス140を拡大することができる。保護エージェントサービス140は通常、識別された資源のうちの1つまたは複数が変更されたか否かを判断して、変更されている場合に、応答動作を行うことを含む。これらのサービスは、また、指定された資源を変更できないようにすることを含んでもよい。保護エージェント142は、上記の技術と同様の技術を介してこれらの機能を実行することができる。
図示するように、保護エージェント142は、第2の仮想パーティション特権モード130からアクセスできるが、オペレーティングシステム特権モード126からアクセスできない。このように、マルウェアがオペレーティングシステムの最も低いレベルの構成要素に付随するメモリの一部208内に存在する場合であっても、得られるアーキテクチャは、オペレーティングシステム内にあるマルウェアからの、保護エージェント自体の保護が可能になる。
自律保護エージェント特権モード
本セクションは、保護エージェントに付随するオペレーティングシステムメモリの一部をオペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくするが、メモリの当該部分がオペレーティングシステム物理メモリスペースに物理的になお存在できるようにするツールを説明する。よって、これらのツールは、自律保護エージェント特権モードを生成する。自律保護エージェント特権モードは、保護エージェントに付随するメモリの一部にも、オペレーティングシステム特権モードにおいてアクセスできるメモリの残りの部分にも、アクセスできる。よって、この特権モードは、オペレーティングシステム特権モードより高い特権を有する。
最初のサブセクションは、バーチャルマシンモニタが保護エージェントに付随するメモリの一部を保護するよう要求することにより、保護エージェント特権モードを生成することができるツールを説明する。一方、2番目のサブセクションは、保護エージェントを実行させる専用の仮想プロセッサを含んでいる複数の仮想プロセッサへ物理プロセッサを仮想化することにより、保護エージェント特権モードを生成することができるツールを説明する。
バーチャルマシンモニタに対する保護要求
本サブセクションは、保護エージェントが、保護エージェント及びこのような保護エージェント自体に付随するメモリを保護するようバーチャルマシンモニタに要求することができる方法について説明する。この保護によって、図1に示したように、保護エージェント特権モード132で動作する保護エージェント144が得られる。図示するように、保護エージェント特権モードに変わる前に、保護エージェント144は、最初にオペレーティングシステム特権モード内に存在することができる。この保護エージェント特権モードで動作すると、保護エージェントは、通常、オペレーティングシステム特権モード126で動作しているエンティティからの攻撃を受けにくい。
保護エージェント特権モード132で動作すると、エンティティは、オペレーティングシステム特権モード126で動作するよりもわずかに高いが、バーチャルマシンモニタ特権モード124よりなお低い特権を有する。図2が示すように、この特権モードで動作する保護エージェントは、保護エージェント自体に付随するメモリの一部206に加えて、オペレーティングシステムに付随するメモリの全てにアクセスすることができる。バーチャルマシンモニタ108は、追加された保護エージェントのアクセスを実行する。
図3及び図4は、この保護エージェント特権モードを生成する例示的な方法を示す。図3は、コンピュータデバイスメモリ300の全てまたはほぼ全てを表す。コンピュータデバイスメモリ300は、オペレーティングシステム特権モードに付随するメモリの一部302(例えば、カーネル)及びユーザ特権モードに付随するメモリの一部304を含む。図示するように、メモリの一部302はまた、保護エージェント144に付随するメモリの一部306及びドライバがロードするメモリの一部308を含む。
図4に示すように、保護エージェント特権モード132を生成するプロセス400は、メモリの一部302(例えば、カーネル)を初期化することによって、動作1で始まる。動作2で、メモリの一部306または保護エージェント144自体は、バーチャルマシンモニタ108をコールして、保護エージェントに付随するメモリの一部をバーチャルマシンモニタが保護することを要求する。そう要求することにおいて、オペレーティングシステム特権モードにおいて実行中のコードが、メモリの当該部分306を変更されないようにするかまたは別の方法で影響を与えられないようにすることを、保護エージェントまたは対応するメモリは求める。保護エージェントは、また、バーチャルマシンモニタ108に対して(例えば、デジタル署名によって)自身を証明することができる。メモリの当該部分または保護エージェント自体はまた、バーチャルマシンモニタがタイマをセットして、タイマが期限切れになると保護エージェントを実行するということを要求することができる。動作3は、オペレーティングシステム特権モードにおいて動作しているエンティティからメモリを保護しかつ要求に応じてタイマをセットするバーチャルマシンモニタを示す。保護エージェントに付随するメモリの当該部分306はオペレーティングシステム特権モードからこのとき変更できないかまたはアクセスできないので、保護エージェントは、このとき保護エージェント特権モードに存在するということに注目する。
動作4で、ドライバがメモリの一部308へロードされる。動作2の要求及び対応する動作3の保護は、マルウェアがドライバの形で存在するかもしれないので、通常、ドライバがメモリへロードされる前に起きる。以下の「ツールの例示的な使用法」で検討されるように、マルウェアの作者は、ユーザをだましてコンピュータデバイス上へ悪質なドライバをインストールさせることが多い。メモリの一部306が保護される前に1つまたは複数の悪質なドライバが実際にメモリへロードされる場合、悪質なドライバは、保護要求自体に潜在的にパッチを当てることができる。かかるパッチングは、このことによりバーチャルマシンモニタを介して保護エージェントの周期的な実行、よって、保護エージェント特権モードの生成を妨げるかもしれない。しかしながら、バーチャルマシンモニタがタイマを初期にセットするのを要求することにより、オペレーティングシステム特権モード内のコードが保護エージェントの周期的な実行をそのように無効にすることができないということをこのプロセスは確実にする。
一方、動作5は、ドライバがロードされた後しばらくして起こり得る。図示するように、動作5は、バーチャルマシンモニタタイマの期限切れ、よって、保護エージェントの実行を示す。動作すると、保護エージェント144は、前のセクションで検討した機能と同様または同一の機能を実行する。また、上記で検討したように、保護エージェントは、1つまたは複数の識別された資源が変更されたという判断に応じて処置を行うことができる。保護エージェントは、また、オペレーティングシステム特権モードにおいて動作しているエンティティから、保護エージェントまたはその対応するメモリのアクセスの試みまたは変更の試みに応じてかかる処置を行うことができる。
動作6は、保護エージェントが実行を終えると、バーチャルマシンモニタに通知する保護エージェントを示す。最後に、動作7は、動作3、5及び6の繰り返しを表す。このように、バーチャルマシンモニタは、そのタイマをリセットして、例えば100ミリ秒(ms)毎の周期的な間隔で保護エージェントを実行することができる。
バーチャルマシンモニタでフェイルセーフタイマをセットすることによって、プロセス400は、保護エージェントに付随するメモリの一部を変更するオペレーティングシステムコードの能力を排除する。このように、保護エージェントが動作し続けて、オペレーティングシステム特権モードにおいて動作するマルウェアによりパッチを当てられないということをこのプロセスは確実にする。代わりに、保護エージェントは、オペレーティングシステムに割り当てられた物理的なメモリ内になお存在するが、自律特権モードにおいて動作することができる。
保護エージェント仮想プロセッサ
本サブセクションは、バーチャルマシンモニタが仮想プロセッサをスケジューリングすることによって保護エージェント特権モードを生成して保護エージェント144を実行する方法を説明する。図5は、アーキテクチャ500を示し、アーキテクチャ500は、各々がオペレーティングシステムを含んでいる2つのパーティションにコンピュータデバイス102を仮想化するバーチャルマシンモニタ108を含む。図示するように、コンピュータデバイスは、この例では2つの実プロセッサ104(a)及び104(b)を含み、その各々により仮想プロセッサは複数の仮想プロセッサをスケジューリングすることができる。また、図示するように、バーチャルマシンモニタは、第1の仮想パーティション502及び第2の仮想パーティション504を生成する。第1の仮想パーティションは、第1のオペレーティングシステムを実行する第1の仮想プロセッサ506を含む。同様に、第2の仮想パーティションは、第2のオペレーティングシステムを実行する第2の仮想プロセッサ508を含む。しかしながら、この例では、バーチャルマシンモニタはまた、保護エージェント仮想プロセッサ510を含み、図1の保護エージェント144などの保護エージェントを実行する。
アーキテクチャ500を生成するために、バーチャルマシンモニタが、最初にロードされて初期化される。図6に示すように、次に、バーチャルマシンモニタは、様々な仮想プロセッサを監視し、監視することにおいて、実プロセッサ帯域幅600を割り当てる。この仮想化及び割り当てを開始するために、バーチャルマシンモニタは、第1の実プロセッサ上へ第1の仮想プロセッサを仮想化する。この例では、この仮想化は、図6で示すように1対1方式でなされる。即ち、この単一の仮想プロセッサ506だけが実プロセッサ104(a)に対応し、よって、バーチャルマシンモニタは、実プロセッサの帯域幅の全てをこの仮想プロセッサに割り当てる。次に、バーチャルマシンモニタは、第2の実プロセッサ104(b)上に第2の仮想プロセッサ508を仮想化する。しかしながら、1対1方式の代わりに、バーチャルマシンモニタは、第2の実プロセッサの帯域幅のいくつかの部分を保持する。次に、バーチャルマシンモニタは、同様に図6で示すように、第2の実プロセッサ104(b)のこの残りの帯域幅上に保護エージェント仮想プロセッサ510仮想化する。
第2の実プロセッサ上で動作する各仮想プロセッサは、通常、タイムスライシングベースで動作する。即ち、第2の仮想プロセッサは、第2の仮想プロセッサの動作が一時停止する前に、ある程度長時間第2の実プロセッサ上で動作することができる。この点で、第2の実プロセッサは、別のある程度長時間保護エージェント仮想プロセッサのオペレーションに切替わる。例えば、第2の仮想プロセッサは、90msの間第2の実プロセッサ上で動作することができる。この時点で、この第2の仮想プロセッサのオペレーションは中止し、保護エージェント仮想プロセッサのオペレーションは10msの間開始する。保護エージェント仮想プロセッサは、通常、オペレーティングシステムパーティション並びに第1の仮想プロセッサ及び第2の仮想プロセッサにトランスペアレントである。このように、両方のオペレーティングシステムは、両方のオペレーティングシステムの対応する仮想プロセッサがそれぞれの実プロセッサに対応すると考える。
実プロセッサの帯域幅を割り当てることに加えて、バーチャルマシンモニタはまた、各仮想プロセッサがアクセスすることができるメモリの一部を管理する。この例では、第1の仮想プロセッサは、第1のオペレーティングシステムに付随するメモリの全てにアクセスすることができる。一方、第2の仮想プロセッサは、保護エージェントに付随するメモリの一部以外の、第2のオペレーティングシステムに付随するメモリの全てにアクセスすることができる。保護エージェント仮想プロセッサだけが、第2のオペレーティングシステムに割り当てられたメモリに加えて、保護エージェントに付随するメモリの一部にアクセスできる。
更に、第1の仮想プロセッサ及び第2の仮想プロセッサは、それらの付随するメモリを変更する能力を有するだけである。このように、それらのそれぞれのオペレーティングシステムを動作させる仮想プロセッサのいずれも、保護エージェントに付随するメモリの一部を変更することができない。しかしながら、保護エージェント仮想プロセッサは、保護エージェントに付随するメモリ及び、いくつかの実施形態では、第2の仮想プロセッサに付随するメモリも変更することができる。
そのプログラムされた特質によって、保護エージェント仮想プロセッサは、周期的に保護エージェントを実行することができる。場合によっては、保護エージェント仮想プロセッサがほかのアプリケーションを実行することができるが、この例では、専用の保護エージェント仮想プロセッサを示す。このように、この仮想プロセッサは、通常、保護エージェントを周期的に実行する働きをするだけである。更に、保護エージェントは、同様の方法かまたは同一の方法で、上記の保護エージェントと同様の機能または同一の機能を実行することができる。
専用の保護エージェント仮想プロセッサをスケジューリングすることによって、バーチャルマシンモニタは、保護エージェントがこのプロセッサの制御下でかつ自律保護エージェント特権モードで周期的に動作することを確実にする。更に、この保護エージェント仮想プロセッサだけが保護エージェントに付随するメモリの一部にアクセスできるので、バーチャルマシンモニタはオペレーティングシステム内のコードからこのメモリを保護する。従って、オペレーティングシステム特権モードにおいて動作するマルウェアは、保護エージェントにパッチを当てることができずかつ保護エージェントが実行できないようにすることができない。このように、この技術は、本質的に、保護エージェントを変更するオペレーティングシステムの能力を除去する。
ツールの例示的な使用法
保護エージェントの保護を確実にすることができるツールを前に説明したので、以下のセクションは、動作におけるこれらのツールの1つの例だけ説明する。最初に、コンピュータユーザがインターネットをサーフィンし、特定のウェブサイトをサーフィンする間に、悪質な意図を有するダイアログボックスがユーザのディスプレイにポップアップすると仮定する。ダイアログボックスは、ある種のマルウェアをユーザのコンピュータ上にインストールする許可をユーザに要求する。この要求は直接であってもよいが、ダイアログボックスが通常の場合のように要求を見せかけていると仮定する。ダイアログボックスは、例えば、ユーザが賞を獲得したという虚偽の通知をするかもしれない。そのように通知する際に、ダイアログボックスは、賞を授与されるためにダイアログボックスの「OK」ボタンをクリックするようにユーザに悪意をもって指示する。ユーザが実際にOKのボタンを選択し、コンピュータデバイスで実行中のソフトウェア(例えば、アンチウィルスアプリケーション)からの1つまたは複数の警告にもかかわらず要求されたオペレーションを続けることをユーザが選択すると仮定する。
この時点で、コンピュータデバイスは、マルウェアを含むドライバのインストールを開始する。通常ドライバに当てはまることだが、この悪質なドライバはオペレーティングシステム特権モードへのアクセスを許可され、この特権モードに付随するメモリ(例えば、カーネル)にロードされる。一旦カーネルにロードされると、悪質なドライバ及びその付随するマルウェアは、コンピュータのメモリ及びオペレーティングシステムに基本的に何でもアクセスできる。ユーザにとって残念なことに、このマルウェアはユーザのキーストロークをログするキーロガーを含むと考えられる。ここで、ユーザは自分の銀行のウェブサイトに誘導し、自身の預金口座にサインすると仮定する。キーストロークをログするその能力のために、キーロガーは、ユーザの預金口座パスワードを知って、インターネットを介して悪質なドライバの作者にこのパスワードを送信する。
更に状況を悪くすることに、マルウェアが「ルートキット」、即ち、保護エージェント及びユーザのアンチウィルスソフトウェアから能動的に隠れようとするマルウェアであると仮定する。従来のシステムでは、保護エージェントは、カーネル(即ち、悪質なドライバがアクセスできるメモリ内)内に存在する。従って、これらの従来のシステムでは、マルウェアは保護エージェントにアクセスでき、保護エージェントから自身を隠そうとすることができる。成功した場合、マルウェアは、カーネル内に存在しないかのように保護エージェントに見える。従って、ユーザのアンチウィルスソフトウェアが保護エージェントをコールしてコンピュータのメモリに存在する全てのアプリケーションのリストを要求すると、マルウェアは認められない。この不在によって、マルウェアを知りかつ除去するアンチウィルスソフトウェアは無力になる。更に、マルウェアは保護エージェントにパッチをあて、それによって保護エージェントを全く実行できないようにする。このように、マルウェアがいずれかのオペレーティングシステム資源を変更する場合には、保護エージェントは通知することができない。
しかしながら、ユーザのコンピュータデバイス上の保護エージェントは、従来のシステムにおいてのようにカーネル内に存在する代わりに、メモリ内に存在するかまたはオペレーティングシステム特権モードからアクセスできないモードで動作すると仮定する。従って、悪質なドライバがカーネルにロードされると、悪質なドライバは保護エージェントが存在するメモリまたは保護エージェントが動作するモードにアクセスすることができない。それゆえに、ドライバ及びその付随するマルウェアは、保護エージェント自体にアクセスできない。よって、マルウェアは、保護エージェント及び、よって同様にアンチウィルスソフトウェアからも隠れることができない。従って、アンチウィルスソフトウェアが保護エージェントにコンピュータのメモリに存在する全てのアプリケーションのリストを求めると、返送されたリストにはマルウェアが含まれる。次に、アンチウィルスソフトウェアは、このコードをマルウェアと認め、従って、ユーザのコンピュータデバイスからこのコードを除去する。更に、マルウェアがオペレーティングシステム資源を変更する場合に、保護エージェントは自身に通知し、それに応じて、ユーザのコンピュータデバイスをシャットダウンすることができる。
従って、メモリに存在していることによってまたはオペレーティングシステム特権モードからアクセスできないモードで動作していることによって、本明細書で開示した実施形態は、マルウェアが保護エージェントから隠れることができないようにするかまたは保護エージェントにパッチを当てることができないようにする。従って、上記の例では、マルウェアが重要な資源を変更すると、ユーザのコンピュータデバイスは、マシンからマルウェアを除去することができるかまたは、場合によっては、システムをシャットダウンすることができる。いずれにせよ、これらの実施形態は、害を及ぼそうとするマルウェアの実効性をより小さくする働きをする。
ツールの他の実施形態
上記のセクションは、保護エージェントを、オペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくする特定の2、3の例を説明している。このセクションでは、例えば下層のプロセッサに存在しないプロセッサに対する特権モードを加えることなどの、ツールの他の実施形態が説明される。
これらの例示的な実施形態は、図7乃至図11のプロセスの一部700乃至1100の一部として説明される。これらのプロセスも、図1乃至図6を参照して説明したかまたは図示した例示的なプロセスも、あらゆる適当なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せにおいて実施されてもよい。ソフトウェア及びファームウェアの場合、これらのプロセスは、コンピュータ可読媒体に保存されかつ1つまたは複数のプロセッサによって実行可能なコンピュータ実行可能命令として実行される一組のオペレーションを示す。本セクションで説明されるツールについてのこれらの実施形態は、ツールの範囲または請求の範囲を限定することを意図していない。
図7を参照すると、ブロック702において、1つまたは複数のオペレーティングシステム資源を識別するエンフォースメントポリシーを受信する。このエンフォースメントポリシーは、暗号化データを含んでいてもよく、デジタル署名されたマニフェストを介してまたはアプリケーションプログラムインタフェース(API)をオペレーティングシステム(例えば、ハイパーコール)にさらすことによって受信され得る。ブロック704において、オペレーティングシステム特権モードにおいて動作しているエンティティからアクセスできないメモリから、1つまたは複数のオペレーティングシステム資源を識別する。例示的な資源は、システムサービスディスパッチテーブル(SSDT)、割り込みディスパッチテーブル(IDT)、及び/またはグローバル記述子テーブル(GDT)を含む。上記で検討したように、この識別は、バーチャルマシンモニタ(例えば、図1の保護エージェント134によって)内でまたは別個の仮想パーティション(例えば、図1の保護エージェント142によって)内で起きてもよい。
一方、ブロック706において、識別された資源のいずれかが変更されたかどうかについて判断することが示される。更に、このことは、バーチャルマシンモニタ内でまたは別個のパーティション内で起こってもよい。ブロック706において、識別された資源のうちの1つまたは複数が実際に変更されたと判断される場合、ブロック708においてこの判断に応じてオペレーティングシステムを終了する。最後に、ブロック710において、オペレーティングシステムの再起動があるとオペレーティングシステムに不正なオペレーションが通知される。
図8は、保護エージェントがバーチャルマシンモニタ内で動作するようにするプロセス800を示す。ブロック802において、オペレーティングシステム資源に付随するメモリページまたはレジスタが変更されたという指標を受信することを可能にするのに有効なバーチャルマシンモニタインターセプトマネージャを変更する。この資源は、図7を参照して説明される資源のうちの1つを含んでもよいしまたは別のオペレーティングシステム資源であってもよい。いずれにしても、ブロック804では、オペレーティングシステム資源及び場合により1つまたは複数の他のオペレーティングシステム資源を識別するエンフォースメントポリシーを受信する。更に、この識別は、上記で検討した技術を介してなされ得る。上記のように、資源の保護属性(例えば、「リードオンリー」「リードオンリーを初期化せよ」)は、資源の識別に付随して起こり得る。一方、ブロック806では、オペレーティングシステム資源に付随するメモリページまたはレジスタが実際に変更されたという指標の受信が示される。それに応じて、ブロック808において、オペレーティングシステム資源に付随するオペレーティングシステムをシャットダウンするのに有効なオペレーティングシステム特権モードをシャットダウンする。場合によっては、図1のバーチャルマシンモニタ108は、オペレーティングシステム特権モードのこのシャットダウンを行うことができる。
次に、図9は、図1に示した保護エージェント特権モード132などの保護エージェント特権モードを生成する例示的なプロセス900を説明する。ブロック902において、メモリの特定の領域をオペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくするという要求を受信する。更に、バーチャルマシンモニタがこの要求を受信してもよく、この要求はメモリの領域自体からまたはメモリの領域に存在する保護エージェントからのものであってもよい。ブロック904において、メモリの領域を保護し、メモリの領域に存在する保護エージェントを周期的に実行するタイマをセットする。更に、バーチャルマシンモニタはかかるタイマをセットすることができ、タイマは規則的な間隔で保護エージェントを実行するようバーチャルマシンモニタに命令することができる。
一方、ブロック906において、オペレーティングシステム資源を記載するエンフォースメントポリシーを受信する。更に、エンフォースメントポリシー及び記載された資源は、上記で検討されたエンフォースメントポリシー及び記載された資源と同様かまたは同一であってもよい。ブロック908で、保護エージェントを実行し、それはバーチャルマシンモニタによって行われてもよい。判断ブロック910において、オペレーティングシステム資源が変更されたかどうかが問題にされる。保護エージェントは、上記で詳述した方法で働くことによってこの判断を行うことができる。実際にブロック910で、変更があったと判断する場合、ブロック912においてオペレーティングシステムをシャットダウンする。しかしながら、かかる判断が行われない場合、ブロック914において、保護エージェントが動作を終えたという通知を受信する。場合によってはかつ上記のように、保護エージェント自体が、バーチャルマシンモニタにそのように通知することができる。一方、ブロック916で、保護エージェントを実行することと保護エージェントを実行しないこととの間の繰り返しを示す。最後に、保護エージェントは動作しないが、バーチャルマシンモニタは、保護エージェントに付随するメモリの領域の、オペレーティングシステム特権モードにおいて動作するエンティティからの、アクセスの試みに応じてオペレーティングシステムをシャットダウンすることができるということに注目する。
図10は、図1に示した保護エージェント特権モード132などの保護エージェント特権モードを生成する例示的な別のプロセス1000を示す。ブロック1002において、実コンピュータプロセッサを複数の仮想コンピュータプロセッサに仮想化する。これらの仮想プロセッサは、図6に示したように、自身のオペレーティングシステムメモリを変更しかつ実プロセッサの処理帯域幅の一部を用いる特権を各々が有している1つまたは複数のオペレーティングシステム仮想プロセッサを含むことができる。仮想プロセッサは、また、自身の保護エージェントメモリを変更しかつ実プロセッサの処理帯域幅の異なる部分を用いる特権を有する少なくとも1つの保護エージェント仮想プロセッサを含むことができる。仮想プロセッサの全てがバーチャルマシンモニタによってスケジューリングされてもよいとともに、保護エージェント仮想プロセッサはオペレーティングシステム仮想プロセッサにトランスペアレントでもよい。場合によっては、オペレーティングシステム仮想プロセッサは、保護エージェント仮想プロセッサに割り当てられるメモリを変更することができなくてもよい。更に、保護エージェント仮想プロセッサは、専用のプロセッサであってもよく、専用のプロセッサの主要な目的または唯一の目的は、上記で検討したように、保護エージェントを動作させることである。
次に、ブロック1004において、保護エージェント仮想プロセッサに保護エージェントを実行させる。保護エージェントは、当該オペレーティングシステムメモリの一部が変更されたか否かを判断するのに有効であり得る。一方、ブロック1006において、オペレーティングシステムメモリの一部が変更されたという指標を受信する。それに応じて、ブロック1008において、対応するオペレーティングシステムをシャットダウンする。
最後に、図11は、実コンピュータプロセッサに特権モードを追加するプロセス1100を示す。ブロック1102において、下層の物理プロセッサに存在する1つまたは複数の特権モードについて判断、識別、または分類することが示される。これらの特権モードは、通常、下層の物理プロセッサ自体によって画定される。いずれにせよ、ブロック1104において、下層の物理プロセッサに存在しない特権モードを追加する。場合によっては、追加された特権モードは、1つまたは複数の存在している特権モードによって変更できるメモリの一部と異なっているコンピュータデバイスのメモリの一部を変更することができる。追加された特権モードは、また、以前に存在しなかったかまたは下層のプロセッサにおいて実行可能でなかった命令を追加して実行することができてもよい。
更に、下層の物理プロセッサに存在する1つまたは複数の特権モードは、ユーザ特権モード及びオペレーティングシステム特権モードを含むことができる。これらの実施形態において、追加された特権モードは、ユーザ特権モード及びオペレーティングシステム特権モードの両方より高い特権を有していてもよいし、ユーザ特権モードより高い特権を有しているがオペレーティングシステム特権モードより低い特権を有していてもよいし、または、ユーザ特権モード及びオペレーティングシステム特権モードの両方より低い特権を有していてもよい。最後に、特権モードを追加する1つの例は、上記で検討した多数の方法で保護エージェント特権モード(例えば、図1に示した保護エージェント特権モード132)を追加することを含んでいてもよいということに注意が必要である。例えば、メモリの領域をオペレーティングシステム特権モードにおいて動作するエンティティからアクセス不可能にすることを、保護エージェントまたはその付随するメモリの領域は要求することができる。バーチャルマシンモニタは、また、保護エージェント仮想プロセッサをスケジューリングして保護エージェントを実行することによりこの特権モードを生成することができる。
結論
上記のツールは、保護エージェントがオペレーティングシステム特権モードからアクセスできない場所に存在するのを可能にすることによって、または、保護エージェント特権モードを生成することによって、保護エージェントをオペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくすることを可能にする。ツールは、構造上の特徴及び/または方法論的動作に固有の言語で説明されてきたが、添付の請求の範囲において画定されるツールは、説明された特定の特徴または動作に必ずしも限定されるわけではないということが理解されなければならない。むしろ、特定の特徴及び動作は、ツールを実施する例示的な形式として開示されている。

Claims (8)

  1. コンピュータデバイスで実行されると、前記コンピュータデバイスに以下のステップを実行させるコンピュータ可読命令を有する1つまたは複数のコンピュータ可読記録媒体であって、
    前記以下のステップは、
    バーチャルマシンモニタ特権モードで動作するバーチャルマシンモニタが、メモリの領域をオペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくするという要求を受信するステップと、
    前記バーチャルマシンモニタが、前記メモリの領域を、前記オペレーティングシステム特権モードから変更できなくするかまたはアクセスできなくするステップと、
    前記バーチャルマシンモニタが、前記メモリの領域内に存在する保護エージェントを保護エージェント特権モードで実行するステップと、
    であり、
    前記保護エージェントは、第1のパーティションで動作するかつ前記オペレーティングシステム特権モードからアクセスできる1つまたは複数の資源を記述するエンフォースメントポリシーを受信し、前記エンフォースメントポリシーの受信に応答して、前記オペレーティングシステム特権モードから変更できない前記メモリ領域または前記オペレーティングシステム特権モードからアクセスできない第2のパーティションから前記エンフォースメントポリシーを用いて前記第1のパーティションで動作する前記1つまたは複数の資源のうちの1つまたは複数が変更されたか判断するように構成されており、
    前記保護エージェント特権モードは、前記オペレーティングシステム特権モードよりも高い特権モードであり、かつ前記バーチャルマシンモニタ特権モードよりも低い特権モードである
    ことを特徴とする記録媒体。
  2. 前記バーチャルマシンモニタが、前記保護エージェントを実行するタイマをセットするステップを更に含むことを特徴とする請求項1記載の記録媒体。
  3. 前記タイマは、前記バーチャルマシンモニタに規則的な間隔で前記保護エージェントを実行するように命令することを特徴とする請求項2記載の記録媒体。
  4. 前記1つまたは複数の資源のうちの1つまたは複数が変更されたという前記保護エージェントによる判断に応じて、前記バーチャルマシンモニタが、前記オペレーティングシステム特権モードに付随するオペレーティングシステムをシャットダウンするステップを更に含むことを特徴とする請求項1記載の記録媒体。
  5. 前記1つまたは複数の資源は、システムサービスディスパッチテーブル(SSDT)、割り込みディスパッチテーブル(IDT)、またはグローバル記述子テーブル(GDT)を含むことを特徴とする請求項1記載の記録媒体。
  6. 前記バーチャルマシンモニタで、前記保護エージェントを実行するステップの後に、前記保護エージェントが実行を終えたという通知を受信するステップを更に含むことを特徴とする請求項1記載の記録媒体。
  7. 前記オペレーティングシステム特権モードからの、前記メモリの領域または前記保護エージェントへのアクセスの試みに応じて、前記オペレーティングシステム特権モードに付随するオペレーティングシステムをシャットダウンするステップを更に含むことを特徴とする請求項1記載の記録媒体。
  8. 前記保護エージェントを実行するステップと前記保護エージェントを実行しないステップとを繰り返すステップを更に含み、少なくとも前記保護エージェントが実行されると、前記保護エージェントは前記オペレーティングシステム特権モードから変更できないかまたはアクセスできないことを特徴とする請求項1記載の記録媒体。
JP2009547243A 2007-01-25 2007-12-12 保護エージェント及び特権モード Active JP5055380B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/627,320 US8380987B2 (en) 2007-01-25 2007-01-25 Protection agents and privilege modes
US11/627,320 2007-01-25
PCT/US2007/087225 WO2008091452A1 (en) 2007-01-25 2007-12-12 Protection agents and privilege modes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012134970A Division JP5249450B2 (ja) 2007-01-25 2012-06-14 保護エージェント及び特権モード

Publications (2)

Publication Number Publication Date
JP2010517162A JP2010517162A (ja) 2010-05-20
JP5055380B2 true JP5055380B2 (ja) 2012-10-24

Family

ID=39644770

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009547243A Active JP5055380B2 (ja) 2007-01-25 2007-12-12 保護エージェント及び特権モード
JP2012134970A Active JP5249450B2 (ja) 2007-01-25 2012-06-14 保護エージェント及び特権モード

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012134970A Active JP5249450B2 (ja) 2007-01-25 2012-06-14 保護エージェント及び特権モード

Country Status (10)

Country Link
US (1) US8380987B2 (ja)
EP (1) EP2115570B1 (ja)
JP (2) JP5055380B2 (ja)
CN (1) CN101589364B (ja)
BR (1) BRPI0720921B1 (ja)
CL (1) CL2008000168A1 (ja)
ES (1) ES2683074T3 (ja)
RU (1) RU2468418C2 (ja)
TW (1) TWI475388B (ja)
WO (1) WO2008091452A1 (ja)

Families Citing this family (266)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US9027135B1 (en) 2004-04-01 2015-05-05 Fireeye, Inc. Prospective client identification using malware attack detection
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8539582B1 (en) * 2004-04-01 2013-09-17 Fireeye, Inc. Malware containment and security analysis on connection
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US7873955B1 (en) 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US7856661B1 (en) 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7870387B1 (en) 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US8190778B2 (en) * 2007-03-06 2012-05-29 Intel Corporation Method and apparatus for network filtering and firewall protection on a secure partition
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
US9164784B2 (en) * 2007-10-12 2015-10-20 International Business Machines Corporation Signalizing an external event using a dedicated virtual central processing unit
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
US8701189B2 (en) 2008-01-31 2014-04-15 Mcafee, Inc. Method of and system for computer system denial-of-service protection
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
US8776028B1 (en) * 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
US8341749B2 (en) * 2009-06-26 2012-12-25 Vmware, Inc. Preventing malware attacks in virtualized mobile devices
US8381284B2 (en) * 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8341627B2 (en) 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US8621460B2 (en) * 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US9552497B2 (en) 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8495750B2 (en) 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US20120144489A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
EP3651042A1 (en) * 2011-03-22 2020-05-13 Telefonaktiebolaget LM Ericsson (publ) Method for switching between virtualized and non-virtualized system operation
US8650642B2 (en) * 2011-03-31 2014-02-11 Mcafee, Inc. System and method for below-operating system protection of an operating system kernel
US9262246B2 (en) * 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US8966629B2 (en) * 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US20120255003A1 (en) * 2011-03-31 2012-10-04 Mcafee, Inc. System and method for securing access to the objects of an operating system
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US8863283B2 (en) * 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9298910B2 (en) 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
US10303501B2 (en) 2011-08-30 2019-05-28 Hewlett-Packard Development Company, L.P. Virtual high privilege mode for a system management request
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US8788763B2 (en) * 2011-10-13 2014-07-22 International Business Machines Corporation Protecting memory of a virtual guest
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8782351B2 (en) * 2011-10-13 2014-07-15 International Business Machines Corporation Protecting memory of a virtual guest
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
CN102521531B (zh) * 2011-11-24 2014-11-12 华中科技大学 基于硬件虚拟化的密码保护系统
US9916454B2 (en) 2011-12-22 2018-03-13 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
EP2795511A4 (en) * 2011-12-22 2015-12-16 Intel Corp USER-CONTROLLABLE PLATFORM LEVEL SHIFTER FOR SETTING GUIDELINES FOR THE PROTECTION OF THE PLATFORM FROM DAMAGE PROGRAMS
CN104025041B (zh) 2011-12-29 2018-05-25 英特尔公司 管理员模式执行保护
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US20130312099A1 (en) * 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US9405682B2 (en) * 2012-06-23 2016-08-02 Microsoft Technology Licensing, Llc Storage device access using unprivileged software code
EP3364297B1 (en) 2012-06-26 2022-05-04 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention, and/or other features
US8832837B2 (en) * 2012-06-29 2014-09-09 Mcafee Inc. Preventing attacks on devices with multiple CPUs
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9183161B2 (en) * 2012-12-28 2015-11-10 Intel Corporation Apparatus and method for page walk extension for enhanced security checks
US10063380B2 (en) * 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9170956B2 (en) * 2013-02-07 2015-10-27 Texas Instruments Incorporated System and method for virtual hardware memory protection
US9824209B1 (en) 2013-02-23 2017-11-21 Fireeye, Inc. Framework for efficient security coverage of mobile software applications that is usable to harden in the field code
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US9009822B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9407505B2 (en) * 2013-03-04 2016-08-02 Amazon Technologies, Inc. Configuration and verification by trusted provider
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
CN104969232B (zh) * 2013-03-13 2018-01-12 英特尔公司 管理设备驱动器跨环访问
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9565202B1 (en) 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
WO2014145805A1 (en) 2013-03-15 2014-09-18 Mandiant, Llc System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9251343B1 (en) 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
US9443083B2 (en) * 2013-04-05 2016-09-13 Ologn Technologies Ag Systems, methods and apparatuses for protection of antivirus software
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US9542230B2 (en) * 2013-05-15 2017-01-10 Apple Inc. System and method for selective timer coalescing
US9904575B2 (en) 2013-05-15 2018-02-27 Apple Inc. System and method for selective timer rate limiting
RU2541120C2 (ru) 2013-06-06 2015-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных исполняемых файлов на основании сходства ресурсов исполняемых файлов
US9536091B2 (en) 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9888016B1 (en) 2013-06-28 2018-02-06 Fireeye, Inc. System and method for detecting phishing using password prediction
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9117080B2 (en) * 2013-07-05 2015-08-25 Bitdefender IPR Management Ltd. Process evaluation for malware detection in virtual machines
US10089461B1 (en) 2013-09-30 2018-10-02 Fireeye, Inc. Page replacement code injection
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US10192052B1 (en) 2013-09-30 2019-01-29 Fireeye, Inc. System, apparatus and method for classifying a file as malicious using static scanning
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
CN105580023B (zh) 2013-10-24 2019-08-16 迈克菲股份有限公司 网络环境中的代理辅助的恶意应用阻止
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
JP5963313B2 (ja) * 2013-12-19 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、方法、及び、プログラム
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9756069B1 (en) * 2014-01-10 2017-09-05 Trend Micro Inc. Instant raw scan on host PC with virtualization technology
US9292686B2 (en) * 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
WO2015176048A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Aspects of hardware virtualization, hypervisors, code detection
WO2016004263A1 (en) 2014-07-01 2016-01-07 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
WO2015176029A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features
CA2969422A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
RU2585978C2 (ru) * 2014-09-30 2016-06-10 Закрытое акционерное общество "Лаборатория Касперского" Способ вызова системных функций в условиях использования средств защиты ядра операционной системы
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10445123B2 (en) 2015-01-19 2019-10-15 Vmware, Inc. Hypervisor exchange with virtual-machine consolidation
US10725770B2 (en) 2015-01-19 2020-07-28 Vmware, Inc. Hot-swapping operating systems using inter-partition application migration
US10007546B2 (en) * 2015-01-19 2018-06-26 Vmware, Inc. Operating-system exchanges using memory-pointer transfers
US9779240B2 (en) * 2015-01-30 2017-10-03 Vmware, Inc. System and method for hypervisor-based security
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US9958933B2 (en) 2015-06-04 2018-05-01 Apple Inc. Opportunistic waking of an application processor
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10395029B1 (en) * 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
WO2017071763A1 (en) * 2015-10-29 2017-05-04 Hewlett-Packard Development Company, L.P. Checking a security value calculated for a part of a program code
US9536088B1 (en) 2015-11-09 2017-01-03 AO Kaspersky Lab System and method for protection of memory in a hypervisor
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
RU2610228C1 (ru) * 2015-12-18 2017-02-08 Акционерное общество "Лаборатория Касперского" Система и способ выполнения запросов процессов операционной системы к файловой системе
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
RU2626350C1 (ru) * 2016-04-11 2017-07-26 Андрей Сергеевич Моляков Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса
US10705867B2 (en) 2016-06-22 2020-07-07 Vmware, Inc. Hypervisor exchange with virtual machines in memory
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10387186B2 (en) 2017-06-28 2019-08-20 Vmware, Inc. Hypervisor with virtual-memory file system
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US10534730B1 (en) * 2018-12-20 2020-01-14 Ati Technologies Ulc Storing microcode for a virtual function in a trusted memory region
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US12074887B1 (en) 2018-12-21 2024-08-27 Musarubra Us Llc System and method for selectively processing content after identification and removal of malicious content
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
CN114600108A (zh) * 2019-08-16 2022-06-07 边信联科技股份有限公司 异构处理器通过开放式连接器进行具有远距认证及信息独立的可信运算系统及方法
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
CN113867828A (zh) 2020-06-30 2021-12-31 华为技术有限公司 一种运行进程的方法及装置
CN112799776B (zh) * 2020-12-31 2022-03-25 科东(广州)软件科技有限公司 多分区操作系统监控方法、装置、计算设备及存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
GB2325061B (en) 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
RU2134931C1 (ru) 1999-03-15 1999-08-20 ОАО "Всероссийский научно-исследовательский институт автоматизации управления в непромышленной сфере" Способ обеспечения доступа к объектам в операционной системе мсвс
US7210040B2 (en) * 2000-07-14 2007-04-24 Computer Associates Think, Inc. Detection of suspicious privileged access to restricted computer resources
TW472190B (en) * 2000-09-08 2002-01-11 Inventec Corp Method for directly accessing mass storage under protection mode
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7631160B2 (en) 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
KR100389206B1 (ko) * 2001-04-25 2003-06-27 주식회사 성진씨앤씨 컴퓨터 운영 시스템 보호 방법 및 장치
GB2376761A (en) 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
GB2378535A (en) * 2001-08-06 2003-02-12 Ibm Method and apparatus for suspending a software virtual machine
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
JP4256107B2 (ja) 2002-03-07 2009-04-22 富士通株式会社 データサーバへの不正侵入対処方法、及びプログラム
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US20050160423A1 (en) * 2002-12-16 2005-07-21 Bantz David F. Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
US20050114687A1 (en) * 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
WO2006014554A2 (en) 2004-07-07 2006-02-09 University Of Maryland Method and system for monitoring system memory integrity
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7409719B2 (en) 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US8856473B2 (en) * 2005-07-01 2014-10-07 Red Hat, Inc. Computer system protection based on virtualization
AU2006100099A4 (en) 2006-02-08 2006-03-16 Pc Tools Technology Pty Limited Automated Threat Analysis System
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources

Also Published As

Publication number Publication date
TWI475388B (zh) 2015-03-01
EP2115570A4 (en) 2010-06-16
CN101589364B (zh) 2016-03-09
BRPI0720921A8 (pt) 2017-01-17
EP2115570B1 (en) 2018-06-13
BRPI0720921B1 (pt) 2018-11-13
TW200836064A (en) 2008-09-01
CN101589364A (zh) 2009-11-25
EP2115570A1 (en) 2009-11-11
CL2008000168A1 (es) 2009-01-09
BRPI0720921A2 (pt) 2014-08-05
ES2683074T3 (es) 2018-09-24
WO2008091452A1 (en) 2008-07-31
US8380987B2 (en) 2013-02-19
RU2009128673A (ru) 2011-01-27
RU2468418C2 (ru) 2012-11-27
JP2010517162A (ja) 2010-05-20
JP2012198927A (ja) 2012-10-18
US20080184373A1 (en) 2008-07-31
JP5249450B2 (ja) 2013-07-31

Similar Documents

Publication Publication Date Title
JP5055380B2 (ja) 保護エージェント及び特権モード
KR101279683B1 (ko) 운영 체제 리소스 보호
US10956184B2 (en) On-demand disposable virtual work system
Christodorescu et al. Cloud security is not (just) virtualization security: a short paper
US9202046B2 (en) Systems and methods for executing arbitrary applications in secure environments
RU2723668C1 (ru) Фильтрация событий для приложений безопасности виртуальных машин
Payne et al. Lares: An architecture for secure active monitoring using virtualization
KR101536486B1 (ko) 오퍼레이팅 시스템(os) 독립 안티-바이러스(av) 스캐너에 대해 강제적 보안 정책을 시행하기 위한 방법 및 장치
King et al. SubVirt: Implementing malware with virtual machines
KR101946982B1 (ko) 가상 머신에서 멀웨어 탐지를 위한 프로세스 평가
US8156298B1 (en) Virtualization-based security apparatuses, methods, and systems
US10325116B2 (en) Dynamic privilege management in a computer system
US10108800B1 (en) ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods
Srinivasan et al. MIvmm: A micro VMM for development of a trusted code base

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120614

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120615

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120709

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5055380

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

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