JP5487479B2 - オペレーティングシステム(os)に依存しないウイルス対策(av)スキャナに対して強制的なセキュリティポリシーを実施する方法および装置 - Google Patents

オペレーティングシステム(os)に依存しないウイルス対策(av)スキャナに対して強制的なセキュリティポリシーを実施する方法および装置 Download PDF

Info

Publication number
JP5487479B2
JP5487479B2 JP2013524858A JP2013524858A JP5487479B2 JP 5487479 B2 JP5487479 B2 JP 5487479B2 JP 2013524858 A JP2013524858 A JP 2013524858A JP 2013524858 A JP2013524858 A JP 2013524858A JP 5487479 B2 JP5487479 B2 JP 5487479B2
Authority
JP
Japan
Prior art keywords
application
fault handler
memory
guest
domain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013524858A
Other languages
English (en)
Other versions
JP2013537672A (ja
Inventor
エム. スミス、ネド
ディー. ダンニールズ、ガンナー
シャンボーグ、ヴェドヤス
スグマー、スレシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2013537672A publication Critical patent/JP2013537672A/ja
Application granted granted Critical
Publication of JP5487479B2 publication Critical patent/JP5487479B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring 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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Description

本開示は概して、コンピューティングの分野に関する。具体的には、本発明の一実施形態は、コンピューティングシステムで実行されているウイルス対策スキャンエージェントについて強制的なセキュリティポリシーを実施することに関する。
ウイルス対策(AV)スキャンエージェントアプリケーションプログラムは通常、オペレーティングシステム(OS)プロセスとして実行される。AVスキャンエージェントは、マルウェアが利用しているステルス技術と同じものを利用して、マルウェア攻撃/ルートキット攻撃から自身を保護する。OS構成に対する最新の変更として、インテグリティを低、中、高に分類してプロセスにタグ付けする強制的アクセス制御(MAC)ラベルを利用するようになった点が挙げられる。レベルが異なるプロセス同士は、互いに修正/アクセスが許可されていない。しかし、MACレベルのセマンティクスは、OSのリング0(カーネル特権)で実施される。リング0が侵害されると、MAC実施メカニズムが侵害されることになるので、リング3(ユーザ特権)およびリング0で実行されているAVスキャンエージェントが侵害される。また、仮想メモリマネージャ(VMM)(用いられる場合)が侵害されると、ユーザOS(UOS)MACメカニズムが侵害されることになるとしてよい。OSでMACメカニズムを利用することによって、AVスキャンエージェントは、AVスキャンエージェントコードを狙ったマルウェアから隠れることが難しくなる。このため、AVスキャンエージェントコードは、OSセキュリティが改善されているにもかかわらず、より脆弱になっている。
添付図面を参照しつつ詳細に説明する。複数の図面にわたって同じ参照番号を利用する場合、同様または同一の構成要素を指している。
本発明の一部の実施形態に係る、実行コンテナインテグリティモデルを示す図である。 本発明の一実施形態に係る、ゲストOSを持つ実行コンテナインテグリティモデルを示す。 本発明の一実施形態に係る、AVアプリケーションを持つゲストOSを持つ実行コンテナインテグリティモデルを示す図である。 本発明の一実施形態に係る、Cドメインを構築する場合のフローチャートである。 本発明の一実施形態に係る、一連のリソーストラップメカニズムに対応する縦列接続されたBibaレベルを説明するための図である。 本発明の一実施形態に係るサブCドメインの構築を説明するためのフローチャートである。 本発明の一実施形態に係るアプリケーショントラップの設定を説明するためのフローチャートである。 本発明の別の実施形態に係る、アプリケーショントラップの設定を説明するためのフローチャートである。 本発明の一実施形態に係るトラップの実行を説明するためのフローチャートである。 本発明の別の実施形態に係る、仮想マシンマネージャ(VMM)に適用される場合の、ゲストOSを持つ実行コンテナインテグリティモデルを示す図である。 本発明の一実施形態に係る、仮想マシンがAVアプリケーションを含んでおり、VMMに適用される場合の、ゲストOSを持つ実行コンテナインテグリティモデルを示す図である。 本明細書で説明する一部の実施形態を実施するために利用されるコンピューティングシステムの実施形態を示すブロック図である。 本明細書で説明する一部の実施形態を実施するために利用されるコンピューティングシステムの実施形態を示すブロック図である。
以下に記載する説明では、さまざまな実施形態を深く理解していただくべく、具体的且つ詳細な内容を数多く記載している。しかし、本発明のさまざまな実施形態は、記載する具体的且つ詳細な内容を利用しなくても実施し得る。また、公知の方法、手順、構成要素および回路は、本発明の具体的な実施形態をあいまいにしないよう、詳細な説明を省略している。さらに、本発明の実施形態のさまざまな側面は、さまざまな手段、例えば、集積化された半導体回路(ハードウェア)、コンピュータ可読格納媒体に格納されている1以上のプログラムに編成されたコンピュータ可読命令(ソフトウェア)、または、ハードウェアおよびソフトウェアの組み合わせを利用して、実施し得る。本開示の目的を考慮すると、「ロジック」という表現は、ハードウェア、ソフトウェア(例えば、プロセッサの動作を制御するマイクロコードを含む)、ファームウェア、または、これらに組み合わせのいずれかを意味するものとする。
ある実施形態によると、AVスキャンエージェントアプリケーションプログラムは、コンピューティングシステム内の保護実行環境で実行され得る。この場合、AVスキャンエージェントには、ユーザオペレーティングシステム(UOS)(または、仮想マシンマネージャ(VMM))が利用するMAC特権を支配するMAC特権が割り当てられるとしてよい。AVスキャンエージェントは、保護実行環境を利用して保護されている、UOSエージェントを含むメモリページを構成する。このようなメモリページは、UOS(またはVMM)によって付与された最も高い特権を超える有効MAC特権を持つので、UOSが侵害されても、UOS内のAVスキャンエージェントが侵害されることにはならない。
本発明の実施形態は、少なくとも2つの技術、すなわち、保護実行環境マイクロコードと、オペレーティングシステムMAC抽象化とは別個のハードウェアレベルで適用されるMACラベルを組み合わせて利用する。保護実行環境内の実行コンテナによって、可能な限り最高レベルであるOSのリング0レベルよりも「高い」セキュリティレベルで動作しているAVスキャンエージェントランタイムについて実行を分離する。このレベルは、保護実行環境によって実施される。保護実行環境はMACセキュリティモデルを考慮するので、保護実行環境は、OSファイルシステムオブジェクトへの読出アクセスを依然として許可しつつ、AVスキャンエージェントランタイムに対する悪意ある修正を防止し得る。本発明の実施形態は、ゲストOSリソースにトラップを設定しつつ、MACラベルを均一に対応付ける。ある実施形態に係る方法では、ゲストリソースおよびページにわたって再帰的に、AVスキャンエージェントアプリケーションおよび対応付けられたデータが保護されるまで、ラベル割当とトラップ割当とを直列接続する。マルウェアによる保護されたリソースを修正しようという試みは、コンピューティングシステムのプロセッサによって検出され防止されるとしてよい。検出された攻撃から回復するには、システムインテグリティモデルに違反することなく、保護実行環境からより高いインテグリティレベルで実行されているハンドラエージェントプログラムを利用するとしてよい。
MACセキュリティモデルは、システム内のオブジェクトおよびサブジェクトにセキュリティラベルを割り当てることによって、情報を保護する。このようなMACセキュリティモデルの1つとして、Biba、K.J.、「Integrity Considerations for Secure Computer Systems」、MTR−3153、The Mitre Corporation、1977年4月に記載されているようなBibaモデルがある。Bibaインテグリティモデルは、データインテグリティを保証するように設定される一連のアクセス制御ルールを記載しているコンピュータシステムセキュリティポリシーの形式的なステート遷移システムである。データおよびサブジェクトは、所定順序に並べられたインテグリティレベルに応じてグループ分けされる。このモデルは、サブジェクトが、当該サブジェクトより高いランクのレベルのデータを破損させないように構成されるか、または、当該サブサブジェクトより低いレベルのデータによって破損させられないように構成されている。概して、データインテグリティを維持することには、権限を持たない第三者によるデータ修正を防止し、権限を持つ第三者による不正データ修正を防止し、内部コンシステンシーおよび外部コンシステンシーを保持する(つまり、データは実世界を反映)という目標がある。このセキュリティモデルは、データインテグリティを対象としてものであり、「下方向への読出および上方向への書込は行わない」という表現で表される特徴を持つ。Biba MACルールは、以下のように要約され得る。
1)リソース(サブジェクトおよびオブジェクト)にはBibaインテグリティラベルが付与され、より高いレベルがより低いレベルを「支配」できる。オブジェクトまたは他のサブジェクトを支配するサブジェクトは、そのリソースに「下方向の書込」が可能である。
2)より低いレベルのリソースは、より高いレベルのリソースに対して「上方向の読出」が可能である。
Bibaモデルは、保護実行環境に適用され、デバイス、メモリ、ダイレクトメモリアクセス(DMA)バッファ、割り込みおよび構成スペースをBibaラベルで定型化して、Bibaアクセスルールを平等に適用できるようにするとしてよい。実行コンテナで実行されているOSがBibaセキュリティモデルを実施する保護実行環境で実行されるアプリケーションは、MACラベル制約に対応する仮想化リソースが割り当てられているとしてよい。保護実行環境のリソースマネージャコンポーネントは、実行コンテナ(保護メモリ)とデバイスリソースとの間のハードウェアインターフェース境界を越えて特権セマンティックスを実施するよう、信頼されているとしてよい。
図1は、本発明の一部の実施形態に係る実行コンテナインテグリティモデルを示す図である。保護実行環境は、実行コンテナ100で実行されているアプリケーションに対してBibaセキュリティポリシーを実施するとしてよい。実行コンテナは、普通のOS環境から分離されているコンピューティングシステム内のアプリケーション環境を含む。ある実施形態によると、実行コンテナは、機能に制約があるとしてよい。実行コンテナは、フル機能のOSを含まないとしてよい。ある実施形態によると、実行コンテナは、アプリケーション(App)ポリシーマネージャコンポーネント102と、1以上のアプリケーションプログラムとを含む。図1に示す例では、実行コンテナは、第1のインテグリティレベルでのアプリケーション(App L1、104)と、第2のインテグリティレベルでのアプリケーション(App L2 106)と、第3のインテグリティレベルでのアプリケーション(App L3 108)とを備える。
ある実施形態によると、保護実行環境は、プラットフォームリソース(中央演算処理装置(CPU)、メモリ、チップセット、フラッシュ等)を、これらのリソースへのアクセスを抽象化するハードウェアサポートを利用してパーティション化することによって、コンピューティングシステムにおいて実行コンテナを形成するためのメカニズムを提供する。これは、ユーザOS(UOS)のためのコンテナに加えて、UOSは省電力を目的として動作が少ない間はコアをオフラインにするので、利用されていないマルチコアプロセッサ内のコアでのサイクルを通常は利用して、他の独立した動作環境を実現し得ることを目的としている。このことが消費電力および性能に与える影響はわずかであるが、UOSのアウトオブバンド(OOB)動作、例えば、セキュリティ、管理、セキュアな商取引、または、ライセンス供与等に利用され得るプログラムを実行するための環境が得られる。OOB実行環境では、これらのコンテナで実行されているアプリケーションは、ユーザの改ざん、マルウェアに対して安全であり、OSエラーに対する耐性を持つ。この機能を可能なものとするべく、幾つか新しいハードウェアの特徴をプロセッサに追加するとしてよい(例えば、タイマ、デバイスフィルタリング、スケジューリングバッファ、ページテーブル、割り込みマッピングサポート、フラッシュメモリ内のスペース)。大規模なソフトウェアスタックがさらに必要となるとしてよく(カーネル、UOSドライバ、カーネルドライバ、ファームウェア等)、コアが無いパッチングサポートもまた必要になるとしてよい。各実行コンテナは、別箇に設けられているメモリ(個別の拡張ページテーブル(EPT)を含む)、自分のステート、プロセッサで実行するために必要なタイムスライスを制御する方法、および、ハードウェアデバイスに対する専用アクセスの可能性を持つ(デバイスフィルタリング、ローカルアドバンスドプログラマブルインタラプトコントローラ(APIC)、および、割り込み再マッピングによって実施される)。保護実行環境およびコンピューティングシステムにおける電力効率を改善するための利用モデルの一例は、Kumar他、「Method and Apparatus for Cost and Power Efficient Scalable OS―Independent Services」、出願日:2007年12月26日、整理番号:第11/964,439に記載されている。当該特許文献は、本願の譲受人に譲渡されているので、参照により本願に組み込まれる。
ある実施形態によると、アプリケーションは、保護実行環境リソースマネージャ(RM)110との間で通信を行う。ある実施形態によると、RMは、コンピューティングシステムのプロセッサにおいてマイクロコードとして実施されるとしてよく、さまざまなインテグリティレベルで実行するスレッドを作成するとしてよい。ある実施形態によると、RMは、リング0またはリング3のプロセスによってアクセス不可能な別箇のハイパースレッドとして実行されるとしてよい。保護されたRMのハイパースレッドは、システムブート処理においてインスタンス化されるとしてよく、OSによってスケジューリングはされるが、修正はされないとしてよい。実行コンテナ100で実行されるアプリケーションに対してBibaセキュリティポリシーを実行するべく、RM110を実行コンテナよりも高いインテグリティレベルで動作させ、RMを修正または破壊するような実行コンテナによる試みは、セキュリティポリシーの違反と見なされるとしてよい。RMは、実行コンテナにおいてOSをロードおよび認証する処理の一部として、実行コンテナにおいて信頼を構築することができる。ある実施形態によると、実行コンテナの制御ポリシー開始によって、実行コンテナの機能にBibaセキュリティルールを実施する機能が含まれていると主張する。
RMのドメインポリシーマネージャ112は、一定範囲のBibaラベル(つまり、特権)をアプリケーションポリシーマネージャ102に割り当てる。ドメインポリシーマネージャは、ラベルの記録を取り、ドメインがプロセッサで実行されるようにする。実行コンテナは、供給された範囲に応じて、Bibaルールを実施する。アプリケーションポリシーマネージャはこの後、この範囲の特権を、実行コンテナアプリケーションに割り当てる。これによって、実行コンテナが全てのコンピューティングプラットフォームリソースをグローバルに見ていないとしても、システム全体でBibaレベルのセマンティックスの一貫性が維持される。RM110は、複数のセキュリティドメインを提供する。ある実施形態によると、ドメインは、メモリ、ディスクストレージデバイスまたはネットワークインターフェースデバイス等の物理的リソースの一部である。この一部は、リソースマネージャによって付与されるBibaラベルに応じて分類されたデータを含む。図1に示す例では、カテゴリY1におけるインテグリティレベルがX1のドメインA114と、カテゴリY2におけるインテグリティレベルがX2のドメインB116という2つのドメインがある。物理的メモリおよびデバイス118等、コンピューティングシステムのさまざまな構成要素は、ドメインのうち1つに割り当てられるとしてよい。例えば、デバイス120および122は、ドメインAに割り当てられるとしてよく、デバイス124および126はドメインBに割り当てられるとしてよい。例えば、ダイレクトメモリアクセス(DMA)バッファに含まれるBibaラベル(X1:Y1)で指定されたメモリページは、Bibaラベル方式に応じてトラックがパーティション化されているディスクストレージデバイスに書き込まれるとしてよい。尚、ディスクストレージデバイスのトラック0−nは、ラベル(X1:Y1)に対応し、トラック(n+1)−mはラベルX2:Y2に対応し、以降は同様に設定される。また、DMAメモリに対して仮想化方法テーブルが作成され、一の仮想化方法レーンはラベル(X1:Y2)に対応し、第2の仮想化方法レーンは別のラベルX2:Y2に対応し、以降は同様に設定される。
図1はさらに、アプリケーション間で試行された読出および書込のフロー管理を示す。インテグリティレベルが高いドメインAのアプリケーション128は、App L1のインテグリティレベルX1が高インテグリティレベル以下である場合に、App L1 104に対して下方向に書込を行うとしてよい。ドメインAのアプリケーションはさらに、App L1から読み出すとしてもよい。App L1は、ドメインA内のアプリケーションから読み出すとしてもよい。App L1 104は、App L2 106に対して下方向に書き込みを行うとしてよい。これは、App L2のインテグリティレベルX2が、App L1のインテグリティレベルX1以下であるためである。App L1はさらに、App L2から読み出すとしてもよい。App L2は、App L1から読み出すとしてよい。App L2 106は、App L3 108に対して下方向に書き込みを行うとしてよい。これは、App L3のインテグリティレベルX3が、App L2のインテグリティレベルX2以下であるためである。App L2はさらに、App L3から読み出すとしてもよい。App L3は、App L2から読み出すとしてよい。App L3 108は、ドメインB130内のアプリケーションに対して下方向に書き込みを行うとしてよい。これは、ドメインB内のアプリケーションのインテグリティレベルは低く、App L3のインテグリティレベルX3以下であるためである。App L3はさらに、ドメインB内のアプリケーションから読み出すとしてもよい。ドメインB内のアプリケーションは、App L3から読み出すとしてよい。
図2は、本発明の一実施形態に係る、ゲストOSを持つ実行コンテナインテグリティモデルを示す図である。信頼がおけるBiba認識カーネルを持たないゲストOS200は、RM110によって、グローバルBiba特権が割り当てられ得る。この特権は、ゲストOSが初期化される際に、対応付けられる。この後のハードウェアに対するアクセスは、RMマイクロコードによって監視される。この結果、実行コンテナで実行されているアプリケーションとの間で共有するデバイスおよびメモリリソースは、ポリシーインピーダンス不整合のために、脅威が増加することはない。しかし、ゲストOSアプリケーション(この例ではApp L3 108等)は、アクセスがシステムのインテグリティに対して脅威となる場合を除いては、デバイスおよびシステムリソースに対するBibaセキュリティモデル制約を認識することなく、通常は機能し続けることができる。ある実施形態によると、RMは、BibaモデルをゲストOSアクセスに適用するべく、グローバルゲスト特権割り当て部202を有する。例えば、CPUハイパースレッドから成るBiba認識実行コンテナ100が、それぞれBibaラベル(X1:Y1)およびBibaラベル(X2:L2)が割り当てられている2つのアプリケーションL2 104およびL2 106を持つ場合、そして、Biba認識しないゲストOS200(第2のCPUハイパースレッド内で実行)内の第3のアプリケーションL3 108が、リソースマネージャが割り当てたリソースを利用する必要がある場合を考える。ゲストOSに割り当てられるリソースについてデフォルトマッピングを作成するグローバルゲスト特権割り当てが行われると、リソースマネージャがBibaラベルの支配の程度を算出することにより、明確な結果が得られる。Biba認識しないゲストOSは、ゲストOSがアクセスした場合に、Bibaラベルが付与されたリソースによって混乱することはない。
AVスキャンエージェントを含むゲストOSにおけるメモリページを保護する新たな方法によって、ゲストOS内のマルウェアによる攻撃に対してこれらのページを「硬化」するとしてよい。保護実行環境を用いてこのようなメモリページ保護構成およびランタイムソフトウェアを実行することによって、ゲストOSに含まれる保護構成要素の動作時のセキュリティレベルを高くすることができ、そのセキュリティポリシーはシステム全体のポリシーと一致する。
図3は、本発明の実施形態に係る、AVアプリケーションを持つゲストOSを備える実行コンテナインテグリティモデルを示す図である。ある実施形態によると、AVスキャンエージェントのインテグリティを保護できるよう、コンピューティングシステムによって一連のドメインを構築するとしてよい。ある実施形態によると、一連のドメインは、変更があるか否か監視されるゲストOSメモリについて作成されるとしてよい。一部のドメインは、ゲストOS200内の保護リソース303を含むとしてよい。少なくとも1つのドメインは、ゲストOS200内の非保護リソース306を含むとしてよい。ある実施形態によると、ドメインは、プロセッサ内のマイクロオペレーション(μop)スレッドと対応付けられているとしてよい。
ドメインA114:最も高いインテグリティレベル(SYS_HI)
このドメインは、コンピューティングシステムによって構築されるとしてよく、最も高いインテグリティレベルを持つ。これは、コンピューティングハードウェア(レジスタ、メモリ)、RM110およびRM制御デバイス、ならびに、メモリのマニフェストおよび領域を受け取って、メモリの当該領域が当該マニフェストに一致すると確認し、アプリケーションポリシーマネージャ内に格納されているルートオブトラスト(Root of Trust)に基づいて署名の有効性を検証することができるアプリケーションポリシーマネージャ102から成る。
ドメインB:116(ドメインB<ドメインA)
ドメインBは、AVスキャンエージェント保護メカニズムをサポートするために実行されている保護実行環境100のアプリケーションを含む。これらのアプリケーションは、実行コンテナ100で実行されている他のプログラムと共に、RM110によって検証されるとしてよい。構成要素は、ランタイム/軽量OS(不図示)、ローダ302、フォールトハンドラ304、ドメインC AVアプリケーション300にサービスを提供するAppマニフェスト322およびAppポリシーマネージャ102を含み、ドメインC AVアプリケーション300を認証し、実行コンテナ100にAVアプリケーションをインストールする。
ドメインC310:(ドメインC<ドメインB)
これは、AVアプリケーションが実行されるドメインである。ドメインCのAVアプリケーションは、実行コンテナ100のアプリケーションよりもインテグリティレベルが低いが、コンピューティングシステムの残りよりはインテグリティレベルが高い。これは、このドメインにおけるアプリケーションのインテグリティは、デジタル署名およびドメインAのアプリケーションポリシーマネージャ102によって認証されるからである。ある実施形態によると、このドメイン、実行コンテナ100で実行されているフォールトハンドラ304、および、保護ページ内のユーザ(ゲストOS200で実行されているAVアプリケーション300で、には少なくとも2つのアプリケーションがあるとしてよい。AVアプリケーションは、ゲストOS固有情報を持つが、ドメインDよりも高いBibaモードで保護する必要があるとしてよい。
ドメインC−1、C−2、C−n:(i>jの場合、ドメインC−i<ドメインC−j。ドメインC−2<ドメインC−1<ドメインC)
ドメインCのアプリケーション(AVアプリケーション300およびフォールトハンドラ304)は、ドメインCの下方に、高い粒度の一連のドメインを形成する。書込トラップがこれらのメモリ領域の周囲に配置されているので、ゲストOS内のメモリをこれらのドメインに配置する。これらのドメインは、メモリ領域内の値はマルウェアが無いか否かについては分からないという点でドメインCよりもインテグリティレベルが低いが、トラップが設定されてから変化していないことが分かっている。これは、含まれているソフトウェアがマニフェストによって署名されており、当該ソフトウェアが作成されてから当該ソフトウェアが変化していないことを示すドメインCとは対照的である。また、ドメインD内においてメモリはいつでも変更可能であるという点において、ドメインD(以下で説明する、つまり、ゲストOS環境)とも対照的である。ある実施形態によると、これらのドメインは、AVアプリケーションが保護アイテムにおけるインテグリティレベルの違いを識別できるように、利用されるとしてよい。例えば、プロセッサのグローバル記述子テーブルレジスタ(GDTR)内の値は、GDTRがドメインAのハードウェアに格納されているので、高い確率で知ることができる。一方、物理メモリのマッピングの値の線形性は、先に構築されたドメインC−iに格納されている値に応じて決まるとしてよい。このため、ドメインC−iと同じインテグリティレベルで値を構築することができない。このため、独自のドメインC−(i+1)を持つ必要がある。
ドメインD312:(ドメインD<ドメインC−n<ドメインC)ある実施形態によると、ドメインDは、ゲストアプリケーション308がアクセス可能な非保護リソース306の全てに割り当てられているグローバルドメインであるとしてよい。ドメインDは、ゲストのリング0のアプリケーションおよびカーネルを含む。また、リング3のアプリケーションソフトウェアを全て含む。ゲストOSストレージリソースは、物理的ストレージデバイスの一パーティションから割り当てられる。尚、パーティション320は、ドメインD内のラベル(X4:Y)のトラックt0−tnから成る。
保護ゲストOSメモリページ303に含まれているAVアプリケーション(300)は、メモリページトラップを持つ。メモリページトラップは、デリファレンスされると、フォールトハンドラ304にBiba MACポリシーを参照させて、デフォルトゲストOS Biba MACラベルは、ドメインCを含むデフォルトラベルを支配するラベルで無効にされ得る。これらのメモリページはまとめて318と示している。
実行コンテナ100が消費する物理リソースは、メモリおよびストレージリソース314および316から割り当てられる。実行コンテナ100は、これらのリソースに対して、ラベル分離およびパーティション化によって実施される排他的なアクセスを持つ。アプリケーションマニフェスト322は、ドメインA114に一致するラベルが割り当てられた実行コンテナストレージ314に格納されているとしてよい。
図4は、本発明の一実施形態に係る、Cドメインを構築するためのフローチャート400を示す図である。ブロック402において、AVアプリケーションコンポーネント300が、プロセッサ命令を用いて、フォールトハンドラコンポーネント304のコード画像、フォールトハンドラのマニフェスト、AVアプリケーションのメモリ位置、および、AVアプリケーションマニフェスト322を特定する。ブロック404において、ローダコンポーネント302は、アプリケーションポリシーマネージャ102との間で、フォールトハンドラ304のコード画像およびアプリケーションマニフェスト322の認証を行う。アプリケーションマニフェストおよびフォールトハンドラの認証に成功すると、処理を続ける。ローダは、ドメインC310を作成し、フォールトハンドラコード画像をドメインCに対応付けられているメモリに複製し、プロセッサによるフォールトハンドラコードの実行を開始する。ブロック406において、ローダ302は、フォールトハンドラ304に対して、AVアプリケーション300について確保されているゲストOS200内のメモリページをロックするように要求する。ブロック408において、フォールトハンドラは、ゲストOSメモリ318内の選択されたコードセグメントに対してトラップを設定することによって、ゲストメモリに現在ロードされているAVアプリケーション300の実行可能コード画像をロックする。ゲストOSの保護されたページは、最初はドメインDにある。ブロック410において、ローダは、AVアプリケーションメモリを測定して、AVアプリケーションマニフェスト322と比較する。ゲストOS内の攻撃者が間違ったページアドレスを供給してフォールトハンドラを既にスプーフィングしている場合、インテグリティチェックは失敗するはずである。このため、ローダは、インテグリティチェックを実行する際にドメインD内のページテーブルに依存することはなく、ドメインAで実行されているアプリケーションポリシーマネージャ102によって認証されているマニフェストに依存する。
ブロック412において、ローダがAVアプリケーション画像のインテグリティを認証して条件を設定し、他のゲストOSアプリケーション(または、ゲストOSカーネルコード)がページトラップをトリガすることなく当該画像を修正できない(フォールトハンドラが検出可能)ようにすると、ローダはAVアプリケーションをドメインCに進める。ある実施形態によると、この時点でフォールトハンドラ304およびAVアプリケーション300が同じドメイン内にあり、プロセッサを介して、ハードウェア実装されたSendMessageコマンドをやり取りすることができる。ブロック414において、フォールトハンドラは、AVアプリケーションから受信したメッセージが全て、上述したように定義およびロックされたメモリ領域内から生じていることを確認する。コードセグメントおよびデータセグメントの両方をドメインCに含まれている。メッセージ用のコードセグメントは、フォールトハンドラのコードセグメントで、ロックされると共にドメインCに配置され、AVアプリケーションはこれらのページに対するアクセスする許可が与えられるとしてよい。
この時点において、ドメインCが構築されている。ドメインCは、実行コンテナ100で実行されているフォールトハンドラと、ゲストOS200で実行されているAVアプリケーション300とから成る。これらのコンポーネントは共に、マニフェストによる認証が済んでおり、メモリトラップはソフトウェア画像のインテグリティを維持する。AVアプリケーションはこの時点で、マルウェアの有無を確認するべくスキャンを行うべく実行されるとしてよい。
図5は、本発明の一実施形態に係る、一連のリソーストラップメカニズムに対応する縦列接続されたBibaセキュリティレベルを示す図である。最初のカーネルトラップを設定することは、ドメインC−1、C−2等を構築または変更することを含む。リソースを異なる複数のドメインに入れることによって、システム全体のセキュリティが改善される。図5は、図4のブロック408の詳細な内容をさらに示す図である。ゲストOS200は、ドメインC用の保護リソース領域500を含むとしてよい。保護リソース領域500は、ある実施形態によると、AV設定プログラム510を含む。ゲストOSはさらに、ドメインD用の非保護リソース領域306、および、ドメインD用の保護リソース領域508を持つとしてよい。非保護リソース領域306は、ある実施形態によると、非保護ページ520を含む。ドメインC−1 502は、サブCドメインの中で最も高いインテグリティレベルを持つ。これは、外部の認証者によって署名されたマニフェストで認証されていないので、マルウェアを含んでいないと保証することはできない。サブCドメインについては、トラップが設定された時点からは非認証ソフトウェアによる値の変更はないと主張される(しかし、トラップを設定する前に非認証ソフトウェアが情報を変更していないという保証はない)。
ある実施形態によると、ドメインC−1 502は、最初に構築されるとしてよく、保護すべきレジスタ512にあるカーネル要素全てから構成される。ドメインC−2 504はこの後、正しいアドレスを取得するべく、ドメインC−1の要素を用いて構築されるとしてよい。ドメインC−1は、非認可の変更があるか否かを監視する必要があるシステムのレジスタ514を含む(SYSENTER MSR、CR3等)。そして、ドメインC−2は、アドレス変換ページテーブル(PT)およびページフォールトハンドラ(PFH)514から成る。これらのドメインが構築されると、ドメインC−1およびC−2のインテグリティに左右されるC−iドメイン(例えば、ドメインC−N506)がさらに形成されるとしてよい。更なるドメインnは、AVスキャナ518等、ページフォールトトラップを利用してそれらのページを保護するデバイスドライバ516およびアプリケーションを含むとしてもよい。
図6は、本発明の一実施形態に係る、サブCドメインの構築を説明するためのフローチャート600である。ブロック602において、AVアプリケーション300は、トラップすべきカーネルレジスタ512、および、これらのレジスタを修正可能なカーネル内のコード位置、例えば、CR3の値をゲストOS200のコンテクストのために変更可能なスケジューリングソフトウェア等を特定する。ブロック604において、AVアプリケーションは、選択されたレジスタにトラップを設定するべくフォールトハンドラ304にメッセージとレジスタを修正可能なコード位置のリストとを送る。ブロック606において、フォールトハンドラは、レジスタおよびコード位置を、ドメインC−1 502に入れて、レジスタおよび認証されたコード位置に対して書込トラップを設定する。この時点において、レジスタに対する非認証アクセスは全て、ドメインD306からドメインC−1 502への書き込みであるので、保護実行環境システム内でトラップを生成し、Biba違反を生成する。ブロック608において、AVアプリケーションは、ドメインC−1内のレジスタの値を利用して、ドメインC−2 504内で保護を必要とするシステムのページテーブル514を特定する。ブロック610において、AVアプリケーションは、選択されたページテーブルエントリに対してトラップを設定するべくフォールトハンドラにメッセージを送り、これらの位置を修正可能な位置のリストを含める(例えば、ページフォールトハンドラ)。ブロック612において、フォールトハンドラは、選択されたページテーブルエントリ、ページテーブルを修正するよう認証されたコード位置に対してトラップを設定し、メモリおよびコード位置をドメインC−2 504に入れる。この時点において、ページテーブルへの非認証アクセスは全て、ドメインD306からドメインC−2 504への書き込みであるので、保護実行環境システムにおいてトラップを生成し、Biba違反を生成する。認証される処理は全て、ドメインC−2 504からドメインC−2またはドメインC−2からドメインD 306への書き込みである。この時点において、コアシステム(カーネル)レジスタおよびページテーブルは、保護されている。これによって、システムは、コア要素に対してより複雑なトラップを構築することができる。
図7は、本発明の一実施形態に係る、アプリケーショントラップの設定を説明するためのフローチャート700である。図7は、ドメインC−iを構築または変更するべく、図6のブロック604の実施形態をさらに詳細に説明するための図である。この処理は、AVアプリケーションがカーネルまたはユーザメモリの一領域を保護しなければならないと判断すると常に、または、システム状態が変化して、特定のメモリ領域に対するアクセスを持たなかったコードの一領域が今や、当該領域へのアクセスを必要とする場合に行われる。ブロック702において、AVアプリケーション300は、保護する必要があるカーネルまたはアプリケーションメモリ内の位置を決定する。AVアプリケーションは、ゲストOSハードウェアレジスタ512およびページテーブル514を読出し、トラップの位置を算出する。これらの値は、ドメインC−1 502またはドメインC−2 504にある。ブロック704において、AVアプリケーションは、必要なメモリ位置にトラップを設定するべくフォールトハンドラ304にメッセージと、これらのメモリ位置を修正可能なコード位置のリストを送信する。ブロック706において、フォールトハンドラは、メモリ位置、および、このメモリ位置を修正する権利を持つ全てのコード位置に対して、書込トラップを設定する。フォールトハンドラはこの後、これらの要素をドメインC−iに入れる。「i」は、「j」がトラップの位置およびアドレスの算出に用いられる最も高いドメインレベルである場合、j−1と定義される。保護されていない領域からの非認証アクセスは全て、ドメインD306からドメインC−iへの書込であるので、Biba違反を生成する。しかし、ドメインC−iでの書込は、ドメイン内に複数の領域がある場合、識別する必要がある(一のメモリ領域への書込の権限が与えられている位置からの書込は、ドメインの全ての領域には許可できない)。
図8は、本発明の別の実施形態に係る、アプリケーショントラップの設定を説明するためのフローチャート800である。このプロセスは、図7のプロセスの代わりとして利用されるとしてよい。ブロック802において、AVアプリケーションは、カーネルまたはアプリケーションコード内の一の位置がドメインC−i内のメモリ位置へのアクセスを必要としていると判断する。これは、新しいドライバまたはその他のソフトウェアのインストールが原因であるとしてよい。ブロック804において、AVアプリケーションは、コード領域をドメインC−i内に含めるよう求めるメッセージをフォールトハンドラに送る。ブロック806において、フォールトハンドラは、コード位置に対して書込トラップを設定し、コード位置をドメインC−iに入れる。
これまで、AVアプリケーションは、保護実行環境システム内の一のエンティティとして説明してきたが、ある実施形態によると、AVアプリケーションは、複数の部分から構成されており、これらの部分はシステム内の複数のドメインに分散しているとしてもよい。例えば、ある実施形態によると、AVアプリケーションは、ゲストOSオブジェクトに対してトラップを設定するAV設定(Config)アプリケーション510、および、マルウェア感染を検索するべく保護されていないページおよびファイルを読出すAVスキャナアプリケーション518という2つのコンポーネントから成るとしてよい。この分割モデルでは、AV設定コンポーネントはドメインC500に上昇させるが、AVスキャナ518は相対的に低いドメインに留まるとしてよい。一実施形態によると、AVスキャナは、サブCドメインのうち最も低いサブCドメイン、ドメインC−n506に入れられるとしてよく、AVスキャナは、相対的に高いドメインの全てのインテグリティに左右されるが、ドメインDのマルウェアによるAVスキャナへの書込はBibaフォールトを生成するので、ドメインD 306のマルウェアからの攻撃からは隔離される。
Bibaを「リング」モードで用いる場合、AVスキャナ518は、ドメインC−n506で動作している間、ドメインDのオブジェクトを読み出すことが許可される。感染したオブジェクトが検出されると、AVスキャナはドメインDにおいてサブプロセスを生成して、感染したオブジェクトを削除または隔離するとしてよい。AVスキャナは、ドメインC−nでは実行できないので、マルウェアを攻撃することによって脅威を感じることはない。AVスキャナは、新しいラベルをハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)320またはAVスキャンに合格したメモリページに割り当てるとしてよい。この新しいラベルは、Dよりも上のドメインであり、ドメインC−nよりも下のドメインである。リソースマネージャ(RM)110は、ページトラップがアクティブ化されている間にラベル変更要求がAVスキャナページから生成されたこと、および、AVスキャナラベルがドメインC−n以上のドメインにあることを確認することで、AVスキャナが信頼されており(例えば、ページトラップ保護が実行されている)ラベル変更をスキャン済みのオブジェクトに対して実行することを確認する。
「低ウォーターマーク」モードでBibaを用いる場合、AVスキャナは、自動的にラベルをドメインDに切り替えてスキャンを実行する。感染したオブジェクトが検出されると、スキャナは即座に削除または隔離を行うとしてよいが、クリーンなオブジェクトのラベルは変更しないとしてよい。しかし、AVスキャナは、上述したように、AVスキャナがドメインC−nの要件を満たしていると主張することによって、自身のラベルをドメインC−nに変更するとしてよい。この要件とは、トラップが全てのクリティカルコードおよびデータ領域に配置済みであること、および、これらのトラップは、AVスキャナがドメインDで動作している間に配置されている、というものである。AVスキャナ518は、リソーストラップのみでドメインDのマルウェアに対して保護されている。Biba制約は課されていない。Bibaを「厳密」モードで利用する場合、AVスキャナは、オブジェクトスキャンを実行し、隔離する前にドメインDへのラベル変更を要求しなければならない。そして、完了すると、AVスキャナは、クリーンなオブジェクトにラベルを付与し直すべく、ドメインC−nへのラベル変更を要求しなければならない。
ある実施形態によると、AVスキャナをドメインC−nに入れるには、以下のような処理を行うとしてよい。AV設定アプリケーション510が、保護が必要なAVスキャナアプリケーション518内の位置を決定する。AV設定アプリケーションは、フォールトハンドラ304に対して、適切なAVスキャナアプリケーションの位置にトラップを配置するよう信号を送る。フォールトハンドラは、適切なトラップを設定し、位置をドメインC−n506内に入れる。これは、ドメインC−nが他の全てのサブCドメインに依存しているためである。
図9は、本発明の実施形態に係る、トラップの実行を説明するためのフローチャート900である。いずれかの時点において、トラップが設定された位置に対して書込が発生する。これによって、フォールトが生成される(AVスキャナメカニズムによって、または、相対的に低いインテグリティのドメインから相対的に高いインテグリティのドメインへの書込によるBiba違反によって生成される)。ブロック902において、ゲストOS200のアプリケーションまたはカーネルが、トラップが設定されているメモリに書き込む場合、ページアクセスはRM110によってフラグが立てられ、フォールトハンドラ304が呼び出される。ブロック904において、RMはレジスタから一連のシステムステートテーブルを生成する。ブロック906において、RMはフォールトハンドラを呼び出して、システムステートテーブルをフォールトハンドラに渡す。ステートテーブルは、正しく構築されていると信頼されている。ブロック908において、フォールトハンドラは、アクセスを試みるメモリのドメイン、および、メモリにアクセスしているコードのドメインを決定する。ブロック910において、試みたメモリアクセスがこのメモリのドメインと同じかそれより高いドメインからのアクセスであり、メモリにアクセスしようと試みているコード位置が当該メモリ位置を変更することが許可されている範囲に含まれている場合、フォールトハンドラは処理を許可する。ブロック912において、試みたメモリアクセスがこのメモリのドメインよりも低いドメインからのアクセスである場合、フォールトハンドラはこのアクセスでメモリを変更することを許可しない。
図10は、本発明の別の実施形態に係る、仮想マシンマネージャ(VMM)1002に適用される場合の、ゲストOSを持つ実行コンテナインテグリティモデルを示す図である。VMMは、仮想化技術の分野で良く知られているので、利用されるとしてよい。ある実施形態によると、VMMは、一般的に理解されているBibaセキュリティポリシーを実施することができる。RM110は、VMMよりも高いインテグリティレベルで動作し、VMMによるRMを修正または破損させようという試みはセキュリティポリシーの違反となる。RMは、VMMのロード処理の一環としてVMM内で信頼を構築することができ、VMM機能をアサートする開始制御ポリシーはBibaセキュリティルールを実施する機能を含むことを確認することができる。RM内のドメインポリシーマネージャ112は、所与の範囲のBibaラベル(つまり、特権)を、VMM内のVMポリシーマネージャ1004に割り当てる。VMMは、供給された範囲に応じてBibaルールを実施する。VMM内のVMポリシーマネージャはこの後、この範囲の特権をVMコンテナに割り当てる。これによって、VMMは全てのコンピューティングプラットフォームリソースをグローバルに見ていないとしても、システム全体でBibaレベルのセマンティックスの一貫性が保証される。
例えば、実行コンテナ100内のApp L1 104等のアプリケーションプログラムが特権としてドメインA114を割り当てられており、ゲストVM1 1008で実行されているApp G1 1006等のアプリケーションが特権としてドメインA114を割り当てられている場合、両方のアプリケーションは同様の特権を用いて動作する。さらに、App L1 104がApp L2 106によって利用できるように情報の格下げを行うと、App L2は、システム全体のセキュリティポリシーに違反することなく、ゲストOS200環境内のゲストVM2 1012で実行されるApp G2 1010にこの情報を通信することができる。同様に、App G2 1010は、情報の格下げを行って、セキュリティポリシーに違反することなく、ゲストVM3 1016で実行されておりドメインC310を持つApp G3 1014、および/または、App L3 108と共有することができる。
セキュリティポリシーモデルが共通して理解されているので、システム構成要素同士のやり取りを柔軟に行うことができる一方、システムのセキュリティを守るという目的は変わらず維持される。保護実行環境よりも低い最高レベルの信頼性をゲストOS環境が持つと判断される場合、RMは、所与の範囲のうち、VMM環境に割り当てられていない上位にある特権レベルを確保する。VMMが侵害され、割り当てられた範囲外の特権を割り当てられている場合、RMは、メモリおよびデバイスアクセスに対して範囲チェックを実行して不正行為を検出することができる。VMM環境がセキュア開始方式(例えば、トラステッドエグゼキューションテクノロジ(TXT))を利用して開始される場合、RMは、VMMを信用してVMページに対する範囲チェックを実施させるとしてよい。これによって、性能に良い影響が出るとしてよい。
Bibaセキュリティポリシーの一貫性をシステム全体で維持しつつ、保護実行環境と仮想化とを組み合わせるとしてよい。図11は、本発明の実施形態に係る、仮想マシンがAVアプリケーションを含み、VMM1002に適用される場合の、ゲストOS200を備える実行コンテナインテグリティモデルを示す図である。保護実行環境は、VM1 1008内の相対的に高い特権のAppにドメイン境界を実施するために利用されるとしてよい。VM1は、同じ特権レベルでVMMによって信頼されている(例えば、ドメイン0は、VMMとして動作するVMである)。しかし、VMが侵害されると、VMはVMMの動作に悪影響を与える可能性がある。
図11は、メモリサンドボックス技術を利用して保護されているVM1 1008にアプリケーション(App G1 1006)をポピュレートするべく利用される実行環境1022を示す図である。VMMは、RM110のドメインポリシーマネージャ112によって管理され、一般的に理解されるポリシーシンタックスおよびポリシーセマンティックスを利用して、VMに対してBiba特権を実施する。さらなるページ保護がVM1 1008内のApp G1 1006に適用され得る。アプリケーションポリシーマネージャ102は、Bibaポリシーが割り当てられるとしてよく、App G1 1006に割り当てられるBibaラベルは、VMMポリシーマネージャ1004がVM1 1008に割り当てたラベル範囲内に入っている。
Bibaを認識しないVM1008内のゲストOSの場合、アプリケーション1006のページ1018は、VMM1002によってVMExitトラップを生成するように登録され得るので、VMマニフェスト1020は、VMExitトラップを構築するためのポリシーを含み、Bibaを認識するVMM1002によって割り当てられるデフォルトラベルを無効化するBibaラベル割り当てを含む。
Bibaを認識するVM1012および1016内のゲストOSの場合、VMは、VMが作成したラベル割り当てに応じてメモリページを割り当てる。
本発明の実施形態は、プロセッサのマイクロコードによって実施される強制インテグリティポリシーを実装することによって、保護実行環境を提供する。インテグリティルールは、形式が定められ(例えば、Biba)、検証およびセキュリティ評価を簡略化する。プロセッサハードウェア(マイクロコード)で実施することによって、侵害されたOSは容易にセキュリティポリシーを無効化できないことになる。本発明の実施形態は、仮想化環境および非仮想化環境の両方に適用されるとしてよく、任意のオペレーティングシステム環境で適用されるとしてよい。
図12は、コンピューティングシステム1200の実施形態を示すブロック図である。さまざまな実施形態によると、システム1200の構成要素のうち1以上は、本発明の一部の実施形態を参照しつつ本明細書で説明する処理のうち1以上を実行可能なさまざまな電子デバイスで提供されるとしてよい。例えば、システム1200の構成要素のうち1以上は、本明細書で説明した処理に応じて、例えば、命令を処理することによって、サブルーチンを実行することによって等、図1から図11を参照しつつ説明した処理を実行するべく利用されるとしてよい。また、(例えば、図12および/または図13を参照して)本明細書で説明するさまざまなストレージデバイスは、データ、演算結果等を格納するべく利用されるとしてよい。一実施形態によると、ネットワーク1203を介して(例えば、ネットワークインターフェースデバイス1230および/または1330を介して)受信するデータは、プロセッサ1202(および/または図13の1302)にあるキャッシュ(例えば、ある実施形態ではL1キャッシュ)に格納されるとしてよい。これらのプロセッサは、本発明のさまざまな実施形態に応じた本明細書で説明する処理を適用するとしてよい。
より具体的には、コンピューティングシステム1200は、相互接続ネットワーク(またはバス)1204を介して通信を行う1以上の中央演算処理装置(CPU)1202またはプロセッサを備えるとしてよい。このため、本明細書で説明したさまざまな処理は、一部の実施形態において、プロセッサによって実行されるとしてよい。さらに、プロセッサ1202は、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク1203を介してやり取りされたデータを処理するもの)、または、他の種類のプロセッサ(縮小命令セットコンピュータ(RISC)プロセッサまたは複合命令セットコンピュータ(CISC)プロセッサを含む)を含むとしてよい。さらに、プロセッサ1202は、シングルコア構成またはマルチコア構成であってよい。マルチコア構成のプロセッサ1202は、同一集積回路(IC)ダイ上にさまざまな種類のプロセッサコアが集積化されているとしてよい。また、マルチコア構成のプロセッサ1202は、対称マルチプロセッサまたは非対称マルチプロセッサとして実現されるとしてよい。さらに、図1から図11を参照しつつ説明した処理は、システム1200の1以上の構成要素によって実行されるとしてよい。ある実施形態によると、プロセッサ(例えば、プロセッサ1 1202−1)は、ハードワイヤードロジック(例えば、回路)またはマイクロコードとしてリソースマネージャ(RM)110を構成するとしてよい。
チップセット1206はさらに、相互接続ネットワーク1204との間で通信を行うとしてよい。チップセット1206は、グラフィクスおよびメモリ制御ハブ(GMCH)1208を含むとしてよい。GMCH1208は、メモリ1212と通信を行うメモリコントローラ1210を含むとしてよい。メモリ1212は、プロセッサ1202またはコンピューティングシステム1200内の任意のその他のデバイスによって実行される命令シーケンスを含むデータを格納するとしてよい。さらに、メモリ1212は、本明細書で説明するプログラムまたはアルゴリズムのうち1以上、例えば、実行コンテナ100、ゲストOS200、コンパイラ1213、実行ファイルに対応する命令、マッピング等を格納するとしてよい。このデータ(命令を含む)と同じもの、または、少なくともその一部は、ディスクドライブ1228、および/または、プロセッサ1202内の1以上のキャッシュに格納されているとしてよい。本発明の一実施形態によると、メモリ1212は、1以上の揮発性ストレージ(またはメモリ)デバイス、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、または、その他の種類のストレージデバイスを含むとしてよい。ハードディスク等の不揮発性メモリはさらに、利用されるとしてよい。複数のプロセッサおよび/または複数のシステムメモリ等、他のデバイスがさらに、相互接続ネットワーク1204を介して通信を行うとしてよい。
GMCH1208はさらに、ディスプレイ1216と通信を行うグラフィクスインターフェース1214を有するとしてよい。本発明の一実施形態によると、グラフィクスインターフェース1214は、アクセラレーテッドグラフィクスポート(AGP)を介して、ディスプレイ1216との間で通信を行うとしてよい。本発明の一実施形態によると、ディスプレイ1216は、例えば、ビデオメモリまたはシステムメモリ等のストレージデバイスに格納されている画像をデジタル形式からディスプレイ1216で解釈および表示される表示信号に変換する信号変換器を介してグラフィクスインターフェース1214との間で通信を行うフラットパネルディスプレイであってよい。インターフェース1214が生成する表示信号は、ディスプレイ1216で解釈された後に表示される前に、さまざまな制御デバイスを通過するとしてよい。
ハブインターフェース1218によって、GMCH1208および入出力(I/O)制御ハブ(ICH)1220が通信できるようになるとしてよい。ICH1220は、コンピューティングシステム1200と通信するI/Oデバイスに対するインターフェースとなるとしてよい。ICH1220は、ペリフェラルコンポーネントインターコネクト(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、または、その他の種類の周辺機器であるブリッジまたはコントローラ等、周辺機器であるブリッジ(またはコントローラ)1224を介して、バス1222と通信を行うとしてよい。ブリッジ1224は、プロセッサ1202と周辺デバイスとの間のデータ経路を提供するとしてよい。他の種類のトポロジーを利用するとしてもよい。また、複数のバスは、例えば、複数のブリッジまたはコントローラを介して、ICH1220と通信を行うとしてよい。さらに、ICH1220と通信を行う他の周辺機器には、本発明のさまざまな実施形態によると、インテグレーテッドドライブエレクトロニクス(IDE)または小型計算機システムインターフェース(SCSI)ハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタルアウトプットサポート(例えば、デジタルビデオインターフェース(DVI))または他のデバイスが含まれるとしてよい。
バス1222は、コンピュータネットワーク1203と通信を行うオーディオデバイス1226、1以上のディスクドライブ1228およびネットワークインターフェースデバイス1230と通信を行うとしてよい。ある実施形態によると、デバイス1230は、有線通信または無線通信を実行可能なネットワークインターフェースコントローラ(NIC)であってよい。他のデバイスは、バス1222を介して通信を行うとしてよい。また、さまざまな構成要素(例えば、ネットワークインターフェースデバイス1230)は、本発明の一部の実施形態によると、GMCH1208と通信を行うとしてよい。また、プロセッサ1202、GMCH1208、および/または、グラフィクスインターフェース1214を組み合わせて一のチップを形成するとしてよい。
さらに、コンピューティングシステム1200は、揮発性メモリおよび/または不揮発性メモリ(またはストレージ)を備えるとしてよい。例えば、不揮発性メモリは、リードオンリーメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、1228)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタルバーサティルディスク(DVD)、フラッシュメモリ、光磁気ディスク、または、電子データ(命令を含む)を格納可能な他の種類の不揮発性機械可読媒体のうち1以上を含むとしてよい。
ある実施形態によると、システム1200の構成要素は、図13を参照しつつ説明するように、ポイントツーポイント(PtP)構成にしたがって構成されるとしてよい。例えば、プロセッサ、メモリおよび/または入出力デバイスは、多くのポイントツーポイントインターフェースで相互接続するとしてよい。
より具体的には、図13は、本発明の一実施形態に係る、ポイントツーポイント(PtP)構成にしたがって構成されているコンピューティングシステム1300を示す図である。具体的には、図13は、プロセッサ、メモリおよび入出力デバイスが多くのポイントツーポイントインターフェースで相互接続されているシステムを示す。図1から図12を参照しつつ説明した処理は、システム1300の1以上の構成要素によって実行されるとしてよい。
図13に示すように、システム1300は、複数のプロセッサを備えるとしてよい。分かり易いように、このうち2つのみ、プロセッサ1302および1304を図示している。プロセッサ1302および604はそれぞれ、メモリ1310および1312と結合されるべく、ローカルメモリコントローラハブ(MCH)1306および1308(一部の実施形態では、図12のGMCH1208と同一または同様であってよい)を有するとしてよい。メモリ1310および/または1312は、図13のメモリ1212を参照しつつ説明したようなさまざまなデータを格納するとしてよい。
プロセッサ1302および1304は、図13のプロセッサ1302を参照しつつ説明したような任意の適切なプロセッサであってよい。プロセッサ1302および1304はそれぞれ、PtPインターフェース回路1316および1318を用いて、ポイントツーポイント(PtP)インターフェース1314を介してデータのやり取りを行うとしてよい。プロセッサ1302および1304はそれぞれ、ポイントツーポイントインターフェース回路1326、1328、1330および1332を用いて、それぞれのPtPインターフェース1322および1324を介して、チップセット1320との間でデータのやり取りを行うとしてよい。チップセット1320はさらに、PtPインターフェース回路1337を用いて、高性能グラフィクスインターフェース1336を介して、高性能グラフィクス回路1334との間でデータのやり取りを行うとしてよい。
本発明の少なくとも1つの実施形態は、プロセッサ1302および1304を用いることによって提供されるとしてよい。例えば、プロセッサ1302および/または1304は、図1から図11の処理のうち1以上を実行するとしてよい。しかし、本発明の他の実施形態は、図13のシステム1300内の他の回路、ロジックユニット、またはデバイスで実現されるとしてもよい。さらに、本発明の他の実施形態は、図13に示す複数の回路、ロジックユニットまたはデバイスに分散して設けられているとしてもよい。
チップセット1320は、PtPインターフェース回路1341を用いて、バス1340に結合されるとしてよい。バス1340は、バスブリッジ1342およびI/Oデバイス1343等、1以上のデバイスが結合されているとしてよい。バス1344を介して、バスブリッジ1343は、キーボード/マウス1345、図12を参照しつつ説明したネットワークインターフェースデバイス1330(コンピュータネットワーク1303に結合され得るモデム、ネットワークインターフェースカード(NIC)等)、オーディオI/Oデバイス1347、および/または、データストレージデバイス1348等、他のデバイスに結合されるとしてよい。データストレージデバイス1348は、プロセッサ1302および/または1304によって実行されるコード1349を格納するとしてよい。
本発明のさまざまな実施形態によると、本明細書、例えば、図1から図13で説明した処理は、ハードウェア(例えば、ロジック回路)、ソフトウェア(例えば、図12および図13を参照しつつ説明したプロセッサ等のプロセッサの処理を制御するマイクロコードを含む)、ファームウェアまたはこれらの組み合わせで実現されるとしてよい。これらのハードウェア、ソフトウェアおよびファームウェアは、コンピュータプログラム製品として、例えば、コンピュータ(例えば、プロセッサまたはコンピューティングデバイスの他のロジック)をプログラミングして本明細書で説明した処理を実行させるために用いられる命令(または、ソフトウェア手順)を格納した有形の機械可読媒体またはコンピュータ可読媒体として提供されるとしてよい。機械可読媒体は、本明細書で説明したようなストレージデバイスを含むとしてよい。
本明細書において「一実施形態」または「ある実施形態」という表現は、当該実施形態に関連付けて説明している特定の特徴、構造または特性が少なくとも1つの実施例に含まれることを意味する。「一実施形態において」という表現は何度も本明細書で見られるが、全てが同じ実施形態を必ずしも意味しているわけではないとしてよい。
また、明細書および請求項において、「結合」および「接続」という用語を用いている場合がある。本発明の一部の実施形態では、「接続」は、2つ以上の構成要素が直接的に物理的または電気的に接触していることを意味するために用いられる用語であるとしてよい。「結合」は、2つ以上の構成要素が直接的に物理的または電気的に接触していることを意味する用語であるとしてよい。しかし、「結合」は、2つ以上の構成要素が互いに直接接触していないが、互いに協働またはインタラクションすることも意味するとしてよい。
さらに、このようなコンピュータ可読媒体は、コンピュータプログラム製品としてダウンロードされるとしてよい。このプログラムは、通信リンク(例えば、バス、モデムまたはネットワーク接続)を介して、データ信号を利用して、リモートコンピュータ(例えば、サーバ)から要求元のコンピュータ(例えば、クライアント)へと転送されるとしてよい。
このように、本発明の実施形態は構造上の特徴および/または方法を構成する動作に特有の表現で説明したが、請求の主題は説明した具体的な特徴または動作に限定されるものではないと理解されたい。さらに、具体的な特徴および動作は、請求の主題を実施するための形態の一例として開示されている。

Claims (24)

  1. ローダおよびフォールトハンドラを持つコンピューティングシステムにおいて、ゲストOSにおいて実行されているオペレーティングシステム(OS)非依存性のウイルス対策(AV)アプリケーションにセキュリティポリシーを実施する方法であって、
    前記AVアプリケーションによって、フォールトハンドラコード画像、フォールトハンドラマニフェスト、前記AVアプリケーションのメモリ位置、および、AVアプリケーションマニフェストを特定する段階と、
    前記ローダによって、前記フォールトハンドラコード画像および前記フォールトハンドラマニフェストを認証する段階と、
    前記ローダによって、第1のセキュリティレベルを持つ第1のセキュリティドメインを作成して、前記フォールトハンドラコード画像を前記第1のセキュリティドメインに対応付けられているメモリに複製して、前記フォールトハンドラの実行を開始する段階と、
    前記ローダによって、前記AVアプリケーションのために確保されている前記ゲストOS内のメモリページをロックするよう要求する段階と、
    前記フォールトハンドラによって、ゲストOSメモリページ内の選択されたコードセグメントに対してトラップを設定することによって、ゲストOSメモリ内にロードされている前記AVアプリケーションの実行可能なコード画像をロックする段階と、
    前記ローダによって、AVアプリケーションメモリを測定して、測定結果を前記AVアプリケーションマニフェストと比較する段階と、
    前記測定および前記比較によって前記AVアプリケーションの認証が成功した場合に、前記ローダによって、前記AVアプリケーションを前記第1のセキュリティドメインに対して進める段階と
    を備える方法。
  2. 前記ローダおよび前記フォールトハンドラは、前記コンピューティングシステム内の保護実行環境内で実行される請求項1に記載の方法。
  3. 前記ゲストOSで実行されている他のアプリケーションは、第2のセキュリティレベルを持つ第2のセキュリティドメイン内にあり、前記第1のセキュリティレベルは前記第2のセキュリティレベルよりも高い請求項1または2に記載の方法。
  4. 前記第2のセキュリティドメインで実行されているアプリケーションは、前記フォールトハンドラが検出したトラップをトリガすることなく前記第1のセキュリティドメインでメモリを修正することはできない請求項3に記載の方法。
  5. 前記第2のセキュリティドメインで実行されているゲストOSカーネルコードは、前記フォールトハンドラが検出したトラップをトリガすることなく前記第1のセキュリティドメインでメモリを修正することはできない請求項3または4に記載の方法。
  6. 前記コンピューティングシステムにおいてマルウェアが存在するか否かをスキャンするべく前記AVアプリケーションを実行する段階をさらに備える請求項1から5のいずれか一項に記載の方法。
  7. 前記フォールトハンドラによって、前記AVアプリケーションからのメッセージが、ロックされた前記ゲストOSメモリから生じていると確認する段階をさらに備える請求項1から6のいずれか一項に記載の方法。
  8. 前記第1のセキュリティドメインへのアクセスは、前記コンピューティングシステムのプロセッサのリソースマネージャロジックによって制御される請求項1から7のいずれか一項に記載の方法。
  9. 前記AVアプリケーションは、仮想マシンマネージャ(VMM)が制御する仮想マシン内で実行される請求項1から8のいずれか一項に記載の方法。
  10. ローダおよびフォールトハンドラを持つコンピューティングシステムに、
    ウイルス対策(AV)アプリケーションによって、フォールトハンドラコード画像、フォールトハンドラマニフェスト、前記AVアプリケーションのメモリ位置、および、AVアプリケーションマニフェストを特定する手順と、
    前記ローダによって、前記フォールトハンドラコード画像および前記フォールトハンドラマニフェストを認証する手順と、
    前記ローダによって、第1のセキュリティレベルを持つ第1のセキュリティドメインを作成して、前記フォールトハンドラコード画像を前記第1のセキュリティドメインに対応付けられているメモリに複製して、前記フォールトハンドラの実行を開始する手順と、
    前記ローダによって、前記AVアプリケーションのために確保されているゲストOS内のメモリページをロックするよう要求する手順と、
    前記フォールトハンドラによって、ゲストOSメモリページ内の選択されたコードセグメントに対してトラップを設定することによって、ゲストOSメモリ内にロードされている前記AVアプリケーションの実行可能なコード画像をロックする手順と、
    前記ローダによって、AVアプリケーションメモリを測定して、測定結果を前記AVアプリケーションマニフェストと比較する手順と、
    前記測定および前記比較によって前記AVアプリケーションの認証が成功すると、前記ローダによって、前記AVアプリケーションを前記第1のセキュリティドメインに対して進める手順と
    を実行させるためのプログラム。
  11. 前記ローダおよび前記フォールトハンドラは、前記コンピューティングシステム内の保護実行環境内で実行される請求項10に記載のプログラム。
  12. 前記ゲストOSで実行されている他のアプリケーションは、第2のセキュリティレベルを持つ第2のセキュリティドメイン内にあり、前記第1のセキュリティレベルは前記第2のセキュリティレベルよりも高い請求項10または11に記載のプログラム。
  13. 前記第2のセキュリティドメインで実行されているアプリケーションは、前記フォールトハンドラが検出したトラップをトリガすることなく前記第1のセキュリティドメインでメモリを修正することはできない請求項12に記載のプログラム。
  14. 前記第2のセキュリティドメインで実行されているゲストOSカーネルコードは、前記フォールトハンドラが検出したトラップをトリガすることなく前記第1のセキュリティドメインでメモリを修正することはできない請求項12または13に記載のプログラム。
  15. 前記コンピューティングシステムに、マルウェアが存在するか否かをスキャンするべく前記AVアプリケーションを実行させる手順をさらに実行させる請求項10から14のいずれか一項に記載のプログラム。
  16. 前記コンピューティングシステムにさらに、前記AVアプリケーションからのメッセージが、ロックされた前記ゲストOSメモリから生じていると前記フォールトハンドラによって確認する手順をさらに実行させる請求項10から15のいずれか一項に記載のプログラム。
  17. コンピューティングシステムであって、
    前記コンピューティングシステムについてのセキュリティポリシーを実施する命令を実行するプロセッサであって、複数のセキュリティドメインへのアクセスを制御するリソースマネージャロジックを有するプロセッサと、
    ローダおよびフォールトハンドラを有する実行コンテナと、
    ウイルス対策(AV)アプリケーションを有するゲストオペレーティングシステム(OS)と
    を備え、
    前記AVアプリケーションは、フォールトハンドラコード画像、フォールトハンドラマニフェスト、前記AVアプリケーションのメモリ位置、および、AVアプリケーションマニフェストを特定し、
    前記ローダは、前記フォールトハンドラコード画像および前記フォールトハンドラマニフェストを認証し、第1のセキュリティレベルを持つ第1のセキュリティドメインを作成し、前記フォールトハンドラコード画像を前記第1のセキュリティドメインに対応付けられているメモリに複製し、前記プロセッサによって前記フォールトハンドラの実行を開始し、前記AVアプリケーションのために確保されているゲストOS内のメモリページをロックするよう要求し、
    前記フォールトハンドラは、ゲストOSメモリページ内の選択されたコードセグメントに対してトラップを設定することによって、ゲストOSメモリ内にロードされている前記AVアプリケーションの実行可能なコード画像をロックし、
    前記ローダは、AVアプリケーションメモリを測定し、測定結果を前記AVアプリケーションマニフェストと比較し、前記測定および前記比較に基づいた前記AVアプリケーションの認証が成功すると、前記AVアプリケーションを前記第1のセキュリティドメインに対して進めるコンピューティングシステム。
  18. 前記ゲストOSで実行されている他のアプリケーションは、第2のセキュリティレベルを持つ第2のセキュリティドメイン内にあり、前記第1のセキュリティレベルは前記第2のセキュリティレベルよりも高い請求項17に記載のコンピューティングシステム。
  19. 前記第2のセキュリティドメインで実行されているアプリケーションは、前記フォールトハンドラが検出したトラップをトリガすることなく前記第1のセキュリティドメインでメモリを修正することはできない請求項18に記載のコンピューティングシステム。
  20. 前記第2のセキュリティドメインで実行されているゲストOSカーネルコードは、前記フォールトハンドラが検出したトラップをトリガすることなく前記第1のセキュリティドメインでメモリを修正することはできない請求項18または19に記載のコンピューティングシステム。
  21. 前記コンピューティングシステムにおいてマルウェアが存在するか否かをスキャンするべく前記AVアプリケーションを実行する請求項17から20のいずれか一項に記載のコンピューティングシステム。
  22. 前記フォールトハンドラは、前記AVアプリケーションからのメッセージが、ロックされた前記ゲストOSメモリから生じていると確認する請求項17から21のいずれか一項に記載のコンピューティングシステム。
  23. 仮想マシンをインスタンス化するべく前記ゲストOSに設けられている仮想マシンマネージャ(VMM)をさらに備え、
    前記AVアプリケーションは、前記仮想マシン内で実行されている請求項17から22のいずれか一項に記載のコンピューティングシステム。
  24. 前記実行コンテナは、保護実行環境を含む請求項17から23のいずれか一項に記載のコンピューティングシステム。
JP2013524858A 2010-08-18 2011-07-25 オペレーティングシステム(os)に依存しないウイルス対策(av)スキャナに対して強制的なセキュリティポリシーを実施する方法および装置 Expired - Fee Related JP5487479B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/858,882 US20120047580A1 (en) 2010-08-18 2010-08-18 Method and apparatus for enforcing a mandatory security policy on an operating system (os) independent anti-virus (av) scanner
US12/858,882 2010-08-18
PCT/US2011/045158 WO2012024057A2 (en) 2010-08-18 2011-07-25 Method and apparatus for enforcing a mandatory security policy on an operating system (os) independent anti-virus (av) scanner

Publications (2)

Publication Number Publication Date
JP2013537672A JP2013537672A (ja) 2013-10-03
JP5487479B2 true JP5487479B2 (ja) 2014-05-07

Family

ID=45595127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013524858A Expired - Fee Related JP5487479B2 (ja) 2010-08-18 2011-07-25 オペレーティングシステム(os)に依存しないウイルス対策(av)スキャナに対して強制的なセキュリティポリシーを実施する方法および装置

Country Status (8)

Country Link
US (1) US20120047580A1 (ja)
EP (1) EP2606450B1 (ja)
JP (1) JP5487479B2 (ja)
KR (1) KR101536486B1 (ja)
CN (1) CN103119601B (ja)
AU (1) AU2011292373B2 (ja)
TW (1) TWI539320B (ja)
WO (1) WO2012024057A2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904537B2 (en) * 2011-05-09 2014-12-02 F—Secure Corporation Malware detection
US8934279B2 (en) * 2011-05-16 2015-01-13 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space
US9588881B2 (en) 2011-05-16 2017-03-07 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses
US9910823B2 (en) 2011-05-16 2018-03-06 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch
CN103620612B (zh) * 2011-07-12 2016-04-13 惠普发展公司,有限责任合伙企业 包括端口和来宾域的计算设备
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
WO2014142817A1 (en) * 2013-03-13 2014-09-18 Intel Corporation Managing device driver cross ring accesses
US10075470B2 (en) * 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
CN104217161B (zh) * 2013-05-30 2016-08-17 腾讯科技(深圳)有限公司 一种病毒扫描方法及系统、终端设备
CN103354530B (zh) * 2013-07-18 2016-08-10 北京启明星辰信息技术股份有限公司 虚拟化网络边界数据流汇聚方法及装置
US9535488B2 (en) 2013-08-28 2017-01-03 Via Technologies, Inc. Multi-core microprocessor that dynamically designates one of its processing cores as the bootstrap processor
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9792112B2 (en) * 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
US10171501B2 (en) * 2013-09-20 2019-01-01 Open Text Sa Ulc System and method for remote wipe
US9507935B2 (en) * 2014-01-16 2016-11-29 Fireeye, Inc. Exploit detection system with threat-aware microvisor
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9912681B1 (en) 2015-03-31 2018-03-06 Fireeye, Inc. Injection of content processing delay in an endpoint
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10223526B2 (en) * 2015-05-21 2019-03-05 Airwatch Llc Generating packages for managed applications
US10339302B2 (en) 2015-05-21 2019-07-02 Airwatch Llc Creating multiple workspaces in a device
US10171502B2 (en) * 2015-05-21 2019-01-01 Airwatch Llc Managed applications
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10374805B2 (en) * 2015-07-20 2019-08-06 Intel Corporation Technologies for trusted I/O for multiple co-existing trusted execution environments under ISA control
US11593075B2 (en) 2015-11-03 2023-02-28 Open Text Sa Ulc Streamlined fast and efficient application building and customization systems and methods
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a 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
US10191861B1 (en) 2016-09-06 2019-01-29 Fireeye, Inc. Technique for implementing memory views using a layered virtualization architecture
KR102573921B1 (ko) * 2016-09-13 2023-09-04 삼성전자주식회사 바이러스/멀웨어로부터 안전한 저장 장치, 그것을 포함한 컴퓨팅 시스템 및 그것의 방법
US9830469B1 (en) * 2016-10-31 2017-11-28 International Business Machines Corporation Automated mechanism to secure customer data
US10951644B1 (en) * 2017-04-07 2021-03-16 Comodo Security Solutions, Inc. Auto-containment of potentially vulnerable applications
US10650156B2 (en) 2017-04-26 2020-05-12 International Business Machines Corporation Environmental security controls to prevent unauthorized access to files, programs, and objects
US10977361B2 (en) * 2017-05-16 2021-04-13 Beyondtrust Software, Inc. Systems and methods for controlling privileged operations
US10705976B2 (en) * 2018-06-29 2020-07-07 Intel Corporation Scalable processor-assisted guest physical address translation
US10922439B2 (en) * 2018-06-29 2021-02-16 Intel Corporation Technologies for verifying memory integrity across multiple memory regions
KR102140714B1 (ko) 2018-11-26 2020-08-03 단국대학교 산학협력단 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템
CN111382433B (zh) * 2018-12-29 2022-12-13 龙芯中科技术股份有限公司 模块加载方法、装置、设备以及存储介质
US20200285501A1 (en) * 2019-03-08 2020-09-10 International Business Machines Corporation Communication interface of a secure interface control
US11520493B2 (en) 2019-07-23 2022-12-06 Arm Technology (China) Co. LTD Allocation policy for shared resource accessible in both secure and less secure domains
US11436342B2 (en) 2019-12-26 2022-09-06 Intel Corporation TDX islands with self-contained scope enabling TDX KeyID scaling
CN113505373A (zh) * 2021-07-09 2021-10-15 福建健康之路信息技术有限公司 一种软件代码质量的测试方法和存储设备
US20230087520A1 (en) * 2021-09-17 2023-03-23 Mediatek Inc. Kernel protection system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7503067B2 (en) * 2004-02-02 2009-03-10 Toshiba Corporation Preset security levels
US20070000005A1 (en) * 2005-06-20 2007-01-04 Wang Wen P Soft pad
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US7380049B2 (en) * 2005-09-06 2008-05-27 Intel Corporation Memory protection within a virtual partition
US7845009B2 (en) * 2006-05-16 2010-11-30 Intel Corporation Method and apparatus to detect kernel mode rootkit events through virtualization traps
US8356361B2 (en) * 2006-11-07 2013-01-15 Spansion Llc Secure co-processing memory controller integrated into an embedded memory subsystem
US20080320594A1 (en) * 2007-03-19 2008-12-25 Xuxian Jiang Malware Detector
US8561061B2 (en) * 2007-05-14 2013-10-15 Vmware, Inc. Adaptive dynamic selection and application of multiple virtualization techniques
US8307443B2 (en) * 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US8839237B2 (en) * 2007-12-31 2014-09-16 Intel Corporation Method and apparatus for tamper resistant communication in a virtualization enabled platform
US8042190B2 (en) * 2007-12-31 2011-10-18 Intel Corporation Pre-boot protected memory channel
US8539200B2 (en) * 2008-04-23 2013-09-17 Intel Corporation OS-mediated launch of OS-independent application

Also Published As

Publication number Publication date
EP2606450A4 (en) 2014-08-20
JP2013537672A (ja) 2013-10-03
US20120047580A1 (en) 2012-02-23
TWI539320B (zh) 2016-06-21
WO2012024057A3 (en) 2012-05-10
KR20130045389A (ko) 2013-05-03
EP2606450B1 (en) 2015-09-02
AU2011292373A1 (en) 2013-03-14
CN103119601B (zh) 2016-01-27
WO2012024057A2 (en) 2012-02-23
AU2011292373B2 (en) 2014-06-19
CN103119601A (zh) 2013-05-22
TW201224840A (en) 2012-06-16
EP2606450A2 (en) 2013-06-26
KR101536486B1 (ko) 2015-07-13

Similar Documents

Publication Publication Date Title
JP5487479B2 (ja) オペレーティングシステム(os)に依存しないウイルス対策(av)スキャナに対して強制的なセキュリティポリシーを実施する方法および装置
JP6142027B2 (ja) ハイパーバイザ環境においてカーネルルートキットに対する保護を実行するシステムおよび方法
KR102244645B1 (ko) 인증된 변수의 관리
JP5249450B2 (ja) 保護エージェント及び特権モード
TWI470471B (zh) 保護作業系統資源
US8909898B2 (en) Copy equivalent protection using secure page flipping for software components within an execution environment
US10198578B2 (en) Secure privilege level execution and access protection
US7380049B2 (en) Memory protection within a virtual partition
US6938164B1 (en) Method and system for allowing code to be securely initialized in a computer
Bratus et al. TOCTOU, traps, and trusted computing
Litty et al. Manitou: a layer-below approach to fighting malware
CN113806745B (zh) 验证检查的方法、计算系统及机器可读存储介质
Sahita et al. PROTECTING CRITICAL APPLICATIONS ON MOBILE PLATFORMS.
Yao et al. Device Security
Cheng Virtualization-based System Hardening against Untrusted Kernels
Zimmer System Isolation Beyond BIOS using the Unified Extensible Firmware Interface.
Kleidermacher et al. Towards one PC for systems with different security levels

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140204

R150 Certificate of patent or registration of utility model

Ref document number: 5487479

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees