JP2009140485A - ソフトウェアコンポーネントをホワイトリストに登録する方法およびシステム - Google Patents

ソフトウェアコンポーネントをホワイトリストに登録する方法およびシステム Download PDF

Info

Publication number
JP2009140485A
JP2009140485A JP2008287882A JP2008287882A JP2009140485A JP 2009140485 A JP2009140485 A JP 2009140485A JP 2008287882 A JP2008287882 A JP 2008287882A JP 2008287882 A JP2008287882 A JP 2008287882A JP 2009140485 A JP2009140485 A JP 2009140485A
Authority
JP
Japan
Prior art keywords
software component
operating environment
information
component
valid
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.)
Granted
Application number
JP2008287882A
Other languages
English (en)
Other versions
JP4901842B2 (ja
Inventor
Gayathri Nagabhushan
ナガブシャン、ガヤスリ
Ravi L Sahita
エル. サヒタ、ラビ
Hormuzd M Khosravi
エム. コスラビ、ホルムズド
Satyajit Grover
グローバー、サタジット
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 JP2009140485A publication Critical patent/JP2009140485A/ja
Application granted granted Critical
Publication of JP4901842B2 publication Critical patent/JP4901842B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】ソフトウェアコンポーネントをホワイトリストに登録する。
【解決手段】第1のオペレーティング環境においては、ロードされ実行される第1のソフトウェアコンポーネントに関するランタイム情報が収集されうる。収集された情報は、第1のオペレーティング環境から隔離された第2のオペレーティング環境の第2のソフトウェアコンポーネントに伝達されうる。収集されたランタイム情報は、第1のソフトウェアコンポーネントに関する有効な情報一式と比較されうる。
【選択図】図4

Description

ルートキットおよび他のマルウェアは、ソフトウェアプラットフォーム上のセキュリティソフトウェアの動作による検出を逃れる場合がある。ひとたび構築されると、ルートキットは、ユーザアクティビティを観察し、ユーザアクションを回避し、他の悪意ある、あるいは望ましくないアクティビティを行うことがある。個々のソフトウェアのエンティティを計測することでソフトウェアのエンティティのインテグリティの提起、その存在のチェックは行いうるが、該ソフトウェアのエンティティが回避されていないという確証を与えることはできない。
発明の主題は、明細書の最終部分に特に指摘および明確に請求されている。しかし、発明は、その目的とともに動作の機構および方法、およびその特徴および利点の両方に関して、以下の詳細な記載を、添付された図面とともに参照することで最善の理解がなされよう。
本発明の一実施形態によるコンピューティングプラットフォームの概略図である。
本発明の一実施形態によるコンピューティングプラットフォームのホワイトリストアーキテクチャを表す図である。
本発明の一実施形態によるホワイトリストサービスが取り込んだコンポーネント画像のサンプルのデータ構造を表す図である。
本発明の一実施形態によるソフトウェアコンポーネントをホワイトリストに登録する方法のフローチャートである。
例示の簡略化および明瞭化目的で、図面に示す部材は必ずしも原寸に比例して描かれていない。例えば、部材のなかには、明瞭を期して他の部材に比べて大きく描かれているものもあるであろうし、一つの機能ブロックまたは部材の中に幾らかの物理的コンポーネントが含まれている場合もあろう。さらには、適切と考えられる場合に、図面を跨いで参照番号を繰り返して、対応するまたは類似する部材であることを示している場合もあろう。さらには、図面に描かれたブロックの幾らかを単一の機能として組み合わせることもできる。
以下の詳細な記載において、幾多もの実施形態を記載して、本発明の完全な理解を促す。しかし、本発明の当業者であれば理解するように、本発明はこれら特定の詳細無しに実行することができる。また反対に、本発明を曖昧にしないように、公知の方法、手順、コンポーネント、および回路を詳細には示していない場合もある。
特にそうではないと明記していない場合を除いて、以下の説明から明らかなように、明細書の説明全体にわたり、「処理」「コンピューティング」「計算」「決定」などの用語の利用は、コンピューティングシステムのレジスタおよび/またはメモリ内の物理量(例えば電子)として表されるデータを、コンピューティングシステムのメモリ、レジスタ、または他の情報記憶・送信・ディスプレイデバイス内の物理量で同様に表される他のデータに操作および/または変換する、コンピュータまたはコンピューティングシステム、または類似の電子コンピューティングデバイスの行うアクションおよび/またはプロセスのことを言う。さらに、「複数の」という用語を明細書にわたり利用して、2以上のコンポーネント、デバイス、部材、パラメータなどを記載している。
ここで利用される「コンポーネント」という用語は、所望の結果を取得すべく利用されうるプログラム言語および関連するデータのことを言う場合がある。コンポーネントという用語は、「モジュール」または「エージェント」という用語と同義であり、ハードウェアまたはファームウェアで、またはエントリポイントおよび終了ポイントを有する可能性があり、例えばC++、インテルアーキテクチャ64ビット(IA‐64)実行可能コードなどのプログラム言語で書かれうるソフトウェア命令の集合体で具現化されうるプログラム言語のことを言う場合がある。さらには、コンポーネントは、他のコンポーネントから、または自分自身から呼び出されてよく、および/または検出されたイベントまたは割り込みに呼応して呼び出されてもよい。例えば、コンポーネントは、1以上のプロセッサが実行するソフトウェアパッケージ、モジュールまたはエージェントであってよい。
本発明の実施形態は、オペレーティングシステム環境においてソフトウェアコンポーネントをホワイトリストに登録する方法およびシステムを提供しうる。一実施形態においては、第1のオペレーティング環境下において、ロードされ実行される第1のソフトウェアコンポーネントに関するランタイム情報が収集されうる。収集された情報は、第1のオペレーティング環境から隔離された第2のオペレーティング環境の第2のソフトウェアコンポーネントに伝達されうる。収集されたランタイム情報は、第1のソフトウェアコンポーネントに関する有効な情報一式と比較されうる。
図1を参照すると、本発明の一実施形態による、ホワイトリストが動作しているソフトウェアコンポーネントを実装または実行することのできるコンピューティングプラットフォーム100の概略が示されている。幾らかの実施形態においては、コンピューティングプラットフォーム100は、例えば、パソコン(PC)、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、端末、ワークステーション、サーバコンピュータ、携帯情報端末(PDA)デバイス、ネットワークデバイス、または、実行環境104をホストすることのできる他の適切なコンピューティングデバイスであってよく、またはそれらを含んでよい。
本発明は、この点に限定はされないが、コンピューティングプラットフォーム100は、例えば、実行環境104、管理モジュール116、およびプラットフォームハードウェア118を含んでよく、プラットフォームハードウェア118は、例えば、プロセッサ120、ネットワークインタフェースコントローラ(NIC)124、記憶装置128、および/またはメモリ132を含みうる。コンピューティングプラットフォーム100はさらにネットワーク140に接続されえ、外部コンピューティングプラットフォームおよび他のデバイスと通信しうる。ネットワーク140は、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、または、2以上のネットワークノード間の通信リンクを有する他の類似したネットワークであってよい。
幾らかの実施形態においては、実行環境104は、実行オペレーティングシステム(OS)108をホストしてよい。OS108は、実行環境104内の他のコンポーネントの一般的な動作を実行および制御する、例えばソフトウェアコンポーネント112のようなソフトウェアコンポーネントであってよい。場合によっては、実行環境104は、コンポーネントが動作する仮想実行環境を提供することもある。または、実行環境104は仮想化されていなくてもよい。
幾らかの実施形態においては、ソフトウェアコンポーネント112は、例えばカーネルコンポーネントのような監視レベルコンポーネントであってよい。カーネルコンポーネントは、ローダ、スケジューラ、メモリマネージャなどのサービス;ネットワークカード、ユニバーサルシリアルバス(USB)インタフェース、ディスクドライブなどのエクステンション/ドライバ;またはコード実行を監視する進入検出器などのサービスドライバハイブリッドであってもよく、またはそれらを含んでよい。
管理モジュール116は、例えば1以上のプロセッサ120、NIC124、記憶装置128、および/またはメモリ132のようなハードウェアまたは他の資源への一般的なコンポーネントアクセスを調停してよい。幾らかの実施形態においては、管理モジュール116の機能は、OS108が仮想化されるか否かによって変化してよい。
プロセッサ120は、例えば、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、または任意の適切な多目的の、または特定用途のプロセッサまたはコントローラであってよく、またはそれらを含んでよい。幾らかの実施形態においては、例えば、プロセッサ120は、プログラミング命令を実行してよく、あるいは、コンピューティングプラットフォーム100上のコンポーネントの動作に利用されうる計算動作を実行してもよい。
記憶装置128は、例えばディスクおよび関連のドライブ、USB記憶デバイス、フラッシュメモリ、読み出し専用メモリ(ROM)、不揮発性半導体デバイスまたはプラットフォーム100上のコンポーネントの実行に利用されるべき永続的なコンテンツを記憶するのに適した他の適切な記憶デバイスなどの、集積および/または周辺記憶デバイスを含んでもよい。幾らかの実施形態においては、記憶装置128は、プラットフォーム100の物理的部分である記憶資源であってよく、または、プラットフォーム100によりアクセスされうるが、必ずしもプラットフォーム100の一部ではなくてもよい。例えば、記憶装置128は、ネットワークコントローラ124を介してネットワーク140上でプラットフォーム100によりアクセスされうる。
メモリ132は、例えば、ランダムアクセスメモリ(RAM)、ROM、ダイナミックRAM(DRAM)、同期型DRAM(SD−RAM)、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期メモリ装置、長期メモリ装置、または、OS108および/またはソフトウェアコンポーネント112などのデータおよび/またはコンポーネントを記憶するのに適した他のメモリ装置を含みうる。幾らかの実施形態においては、メモリ132は、自身に記憶されるコンテンツを、幾らかのメモリ位置グループに組織化してよい。それらの組織化グループは、固定サイズおよび/または可変サイズを有してよく、OS108が仮想化されている場合には仮想メモリ管理を促してよい。OS108が仮想化されない場合、メモリ132は異なる組織化構造を有してもよい。
図2を参照すると、本発明の一実施形態によるコンピューティングプラットフォーム200のホワイトリストアーキテクチャが示されている。ここで利用されているように、ホワイトリストは、例えば、ソフトウェア部材(例えばコード、コンポーネント、モジュール、エージェント、スクリプトなど)が安全に実行あるいは利用できること、例えばマルウェアまたは他の破損がないこと、を検証するプロセスのことを称してよい。幾らかの実施形態においては、コンピューティングプラットフォーム200は、プラットフォーム100に類似していてよく、および実質的な互換性があってよい。さらに、以下に示す部材は、上述の同様の名称の部材と類似していてよく、および実質的な互換性があってよく、その逆の場合も同様である。
コンピューティングプラットフォーム200は、オペレーティング環境206、プラットフォームハードウェア208、およびバイナリ画像記憶装置210を管理する管理モジュール204を含んでよい。管理モジュール204または管理モジュール204の部分は、オペレーティング環境206から独立して実行されてよく、オペレーティング環境206から独立してコードを実行してよく、オペレーティング環境206からセキュアに隔離されてよい。幾らかの実施形態においては、管理モジュール204は、公知のようにオペレーティング実行環境206に対して、例えば1以上のプロセッサ220、NIC224、記憶装置228、および/またはメモリ232などの、プラットフォームハードウェア208の多数の抽象および/または図を提示、または表してよい。さらに、幾らかの実施形態においては、管理モジュール204は、例えばファームウェアなどの命令を実行することのできるオペレーティング実行環境を含んでよく、例えば管理エンジン(manageability engine)であってよい。これらの場合において、オペレーティング環境206は、例えばネイティブの、伝統的な、またはレガシーの(例えば仮想化されていない)OS環境であってよい。または、管理モジュール204は仮想マシンモニタ(VMM)であってよく、オペレーティング環境206は例えば仮想マシン(VM)またはゲストOSであってよい。これらの場合において、管理モジュール204は、ハードウェア208へのVMアクセスを管理してよい。管理モジュール204は、ソフトウェア(例えば、1以上のコントローラまたはプロセッサが実行する、独立プログラム、および/またはホストオペレーティングシステムのコンポーネント)ハードウェア、ファームウェア、および/またはそれらの任意の組み合わせに実装されてよい。
管理モジュール204は、オペレーティング環境206で動作するコンポーネントのインテグリティまたは有効性確認特徴(validating characteristics)を検証するインテグリティ計測マネージャ(integrity measurement manager)(IMM)212を含みうる。オペレーティングコンポーネントのインテグリティを検証するには、IMM212は、コンポーネント214のような、ロードされ、予期される(例えば認証された)サービスを、例えばバイナリ画像記憶装置210内にオンディスクに記憶されうるオペレーティングコンポーネントの記録画像と比較しうる。記憶された画像は、例えばコード、データの各部分、外部シンボルテーブル、およびリロケーション情報を含む、コンポーネントに関する情報を含みうる。コンポーネントの他の情報も含めることができる。IMM212は、バイナリ画像記憶装置210に記憶されている画像からサービス用のインテグリティ・マニフェスト(integrity manifest)を生成または抽出してよい。インテグリティ・マニフェストは、例えば、コンポーネントの有効なまたは正当なバージョンがランタイムにおいて(例えば実行中に)メモリにどのように現れるべきかを示す要約的記載またはリストであってよい。幾らかの実施形態において、インテグリティ・マニフェストは、生成中に署名されて、不正変更あるいは認証されていない修正を回避して、コードおよびデータの部分についての情報、リロケーション情報、シンボルテーブル情報、およびマニフェスト自体のインテグリティを検証する他の情報などの、サービスに関する有効な情報一式を含みうる。メモリ232などの、コンポーネント214のメモリ内の画像は、このインテグリティ・マニフェストを参照して有効性を判断される。
オペレーティング環境206が仮想化されている幾らかの実施形態においては、Virtualized Technology Integrity Services(VTIS)コンポーネント(不図示)も、管理モジュール204内に存在しうる。VTISコンポーネントは、オペレーティング環境206のコンポーネント214などの現在実行されているコンポーネントの一部であるインテグリティが検証されたコードまたはデータを含む管理モジュール204のメモリのページを保護しうる。保護されたデータを、オペレーティング環境206から隔離すべく、VTISコンポーネントは、インテグリティが検証されたコードまたはデータへの排他的アクセスを有しうる。幾らかの実施形態においては、オペレーティング環境206で実行されるコンポーネントまたはモジュールは、ロードまたは他の類似イベントにおいてVTISコンポーネントにより登録されることができる、例えばインテグリティを検証されることができる。
オペレーティング環境206が仮想化されている場合、IMM212はVMM(例えば管理モジュール204)で実行されうる。また、IMM212はオペレーティング環境206で実行されうる。IMM212がオペレーティング環境206で実行される場合、IMM212は管理モジュール204によりセキュアにされることで、2以上のオペレーティング環境206により利用される物理アドレス空間がオーバーラップしないことを保証してよい。さらに、IMM212は、起動時に管理モジュール204のVTISコンポーネントに登録されてよく、VTISコンポーネントにより有効性を確認されてもよい。
オペレーティング環境206が仮想化されていない場合、IMM212は管理エンジンの一部としてファームウェアに実装されてよい。
オペレーティング環境206は、コンポーネント214、カーネルディレクトリサービス(KDS)216、およびホワイトリストマネージャ(WLM)218などの、オペレーティング環境206内で実行される1以上のコンポーネントを含む。他のコンポーネントが含まれてもよい。コンポーネント214は、例えばカーネルサービス、モジュール、またはドライバなどの、オペレーティング環境206で実行される任意のソフトウェアコンポーネントであってよく、それらを含みうる。例えばルートキットなどのマルウェアは、オペレーティング環境206にフィルタをかけ得、例えばコンポーネント214を修正し得、コンポーネント214の正規の実行を迂回させ得(例えばフック)、または、オペレーティング環境206の有効なコンポーネントとして動作しようとすることすらある。本発明の実施形態においては、オペレーティング環境206の既知のコンポーネントの有効性を確認、チェック、またはホワイトリストに登録することで、且つ、これらコンポーネント間およびコンピューティングプラットフォーム206上の他のエンティティとの間の全ての相互作用の有効性を確認することで、コンピューティングプラットフォーム200のようなコンピューティングプラットフォームをセキュアにすることができる。
KDS216は、仮想化マシン用のOSまたはゲストOSで実行されるエージェントまたはサービスなどのコンポーネントを含んでよく、またはそれらであってよく、オペレーティング環境206で現在実行されているコンポーネントまたはサービス(例えばコンポーネント214)をリストにすることができてよい。幾らかの実施形態においては、KDS216は例えばリング0サービス(ring-0 service)を実行してよい。
WLM218は、コンポーネント214などの単一のOSサービスまたはエージェントが他のOSサービスまたはエージェントへ作成した外部参照上の全ての情報を収集することができる、仮想化マシン用のOSまたはゲストOSで実行されるコンポーネントであってよく、またはそれらを含んでよい。幾らかの実施形態においては、WLM218およびIMM212は単一のモジュールとして組み合わせられてよいが、他の機能部材を利用してもよい。単一のOSサービスまたはエージェントが作成する外部参照上の全ての情報を収集することは、ここではコンポーネントの画像を取り込むこととして称されてもよい。WLM218は、バイナリ画像記憶装置210に記憶されるコンポーネント214の画像のインポートテーブル構造を参照することで、どの情報を収集するか決定しうる。インポートテーブル構造は、例えば、コンポーネントがエクスポートしたエントリポイントに機能アドレスをインポートしたリストであってよく、それを含みうる。WLM218はさらに、他の記憶画像データのことであってもよい。
オペレーティング環境206で実行されうるコンポーネントを決定すべく、WLM218は、バッファまたは共有メモリを介してKDS216と通信しうる。共有メモリは、管理モジュール204のメモリ空間であってよい。オペレーティング環境206が仮想化されている実施形態においては(例えばVM)、共有メモリはバッファリングされて、VTISコンポーネントにより保護されうる。オペレーティング環境が仮想化されていない実施形態においては、共有メモリはバッファリングされて、Host Embedded Controller Interface(HECI)、または、公知の管理エンジンの他のインタフェースを介してアクセスされうる。
図3を参照すると、WLM218が取り込みうるコンポーネント画像のサンプルのデータ構造300を表す図が示されている。図3は、取り込みうるコンポーネント312のリスト310を示す。ここで利用されているように、コンポーネント312は、図2のコンポーネント214と同じ、または実質的に類似していてよい。各コンポーネント312について、リスト310は例えばコンポーネント名称、メモリのベースアドレス、インテグリティ・マニフェスト名称、インポートリスト322およびエクスポートリスト332(例えばエクスポートハッシュマニフェスト)を含みうる。コンポーネント312に関する他の情報を含めることもできる。インポートリスト322は、例えばアドレス、参照、またはコンポーネント312が利用するアドレスへのポインタのリストを含みうる、または該リストであってもよい。他の情報を含めることもできる。エクスポートリスト332は、例えばアドレス、参照、またはコンポーネント312が利用するアドレスへのポインタのリストを含みうる、または該リストであってもよい。他の情報を含めることもできる。
KDS216が提供する情報を利用して、WLM218およびIMM212は組み合わせられて、コンポーネントの記録画像と対応するデータとを、先に記憶されている参照から抽出されたマニフェストと比較することで、1以上のオペレーティングコンポーネント214のインテグリティを検証するよう動作してよい。幾らかの実施形態においては、KDS216およびWLM218の登録後および/または検証後、検証は例えば3つの段階を含みうる。第1段階においては、コンポーネント214のコードおよびデータの部分は、インテグリティ・マニフェストと比較されて、インポート・エクスポートポインタアドレスの状態データを記憶してよい。第2段階においては、この記憶された状態データをインテグリティ・マニフェストのインポート・エクスポートポインタと比較してよい。コンポーネントが第2段階をパスした場合、コンポーネントの割り込みハンドラを、検証の第2段階をパスした他のコンポーネントまたはモジュールの位置と比較してよい。3段階全ての検証が成功した場合、コンポーネントのインテグリティが検証されたとしてよい。成功しなかった場合、例えば遠隔ITコンソールに対して警告を発令してよい。
図4を参照すると、本発明の一実施形態による、コンポーネント214または他の類似するコンポーネントまたはモジュールなどのソフトウェアコンポーネントの有効性を確認、チェック、またはホワイトリストに登録する方法のフローチャートが示されている。方法の実施形態は、例えば、図1のコンピューティングプラットフォーム100により、または実行環境104をホストすることのできる他の適切なコンピューティングデバイスにより、利用、または実装されうる。方法の実施形態では、図2のホワイトリストアーキテクチャ、および図3のデータ構造を、ホワイトリストサービスが取り込んだコンポーネントの画像または他の適切なデータ構造に対して利用することもできる。
動作402が示すように、例えばIMM212のようなIMMが実行開始してもよい。幾らかの実施形態においては、管理モジュール204のような管理モジュールを動作させてもよい。管理モジュール204がVMMである場合、IMM212は内部から動作してもよく、管理モジュール204によりセキュアにされてもよい。または、IMM212はオペレーティング環境206などのゲストOSの一部として動作してもよく、ロードにおける保護目的で管理モジュール204のVTISコンポーネントに登録されてもよい。管理モジュールがVMMではない場合、IMM216はチップセット内のManagement Moduleファームウェアに存在してよく、例えばKDS216などのKDSに起因する機能全てを行ってよい。
動作404においては、KDS216およびWLM218などのKDSおよびWLMは、IMM212に登録されうる。動作406においては、WLM218は共有メモリ通信チャネルを構築してKDS216と通信してよい。共有メモリチャネルは、オペレーティング環境206が仮想化されているか否かに依ってよい。オペレーティング環境206が仮想化されている場合、共有メモリは、管理モジュール204などの、VMM内のVTIS保護位置であってよい。他の実施形態においては、共有メモリは、例えばHECIインタフェースを介してアクセス可能であってよく、バッファリングされてよい。オペレーティング環境206で実行されるコンポーネントから保護される他の共有メモリチャネルを利用することもできる。
KDS216は、WLM218にランタイム情報(例えば、オペレーティング環境206で現在実行されているモジュール、カーネルサービス、またはエージェントなどの1以上のコンポーネントに関する仮想ベースアドレス)を伝達してもよい(動作408)。他のランタイム情報を含めてもよい。
ひとたびWLM218が全てのモジュールのリストを有すると、動作410において、WLM218は、画像に関するランタイム情報を収集、および/または画像を記録してもよい(例えば、検証を目的としたこれらモジュールの1以上に関する動作スナップショット)。記録された画像は、コードおよびデータの部分、外部シンボルテーブル、およびリロケーション情報、および他の適切なデータを含みうる。幾らかの実施形態においては、データは、インポートリスト322のようなインポートリスト、およびエクスポートハッシュテーブル332のようなエクスポートテーブルを含みうる。他の情報を含めてもよい。幾らかの実施形態においては、WLM218は、例えばバイナリ画像記憶装置210のようなバイナリ画像記憶装置に記憶されるバイナリファイルから、モジュールのオンディスクの画像をロードすることで、どの参照を記録すべきか決定してよい。オンディスク画像には他の記憶手段を利用してもよい。例えば、画像は、ネットワーク140などのネットワークがコンピューティングプラットフォーム100に接続する外部ハードドライブまたは他の記憶デバイスに記憶してもよい。
動作412においては、WLM218はIMM216を呼び出して、モジュールのコードおよび静止データの部分のインテグリティを検証してよい。幾らかの実施形態においては、IMM216は、バイナリ画像記憶装置210に記憶されているモジュールのオンディスク画像を利用して検証対象のモジュールのインテグリティ・マニフェストを作成してよい。または、インテグリティ・マニフェストは、例えばサーバなどのネットワーク140上の別の位置に記憶されてもよい。IMM216はこのマニフェストを利用して、動作410で記録したモジュールの画像または収集されたランタイム情報と比較して検証してよい。動作412の一部として、IMM216はさらに、例えば他のモジュールなどのモジュールの従属物(dependency)のコードおよびデータの部分を検証してよい。インポートアドレステーブル(IAT)およびエクスポートテーブル(ET)のエントリに関する計測値は、他の動作での利用目的で記憶されうる。
テスト済みの部分の全てがこの当初のインテグリティテストをパスするのに成功した場合(動作414)、方法は第2の検証動作へ移ってよい。動作416においては、IMM216は、モジュールとその従属物との間のリンク(機能ポインタなど)が有効であると検証してよい。幾らかの実施形態においては、IMM216は、動作410で収集したETおよびIATエントリ値を、マニフェストおよび他のデータからのインポートルックアップテーブル(ILT)と比較してよい。これらエクスポート・インポート値(例えばオフセット値)は、インポートまたはエクスポートエントリのアドレスを取得して、計算されたランタイムアドレス(例えばベースアドレスに相対仮想アドレス(RVA)を加えたもの)が検証対象のモジュールのリニアアドレス空間に存在することを確認することで、決定される。ILTの全てのエントリ、およびそれらに対応するETエントリを比較しうる。IATのエントリが、ILTから計算されたランタイムアドレスに整合するか否かを決定するチェックを行ってもよい。この検証動作により、コンポーネントがルートキットにフックされていないことを確証する助けとなりうる。
動作416の検証が成功であった場合(動作418)、第3の検証、つまり動作420を行いうる。動作420においては、割り込みハンドラエントリ(例えばポインタ)を、それらの有効性を検証するのに動作416で計算されたような、検証済みモジュールまたはコンポーネントなどのコードの検証済みの部分のメモリ位置と比較してよい。IMM216は、オペレーティング環境206の一部であるデータ構造でありえ検証対象のモジュールの実行時に割り込みまたは例外が起こりうる場合に必要となるポインタを記憶するべく利用されうる割り込みデスクリプタテーブル(IDT)から、エントリを読み出しうる。IDTエントリは1以上の他のロードされたモジュールを示しえ、または割り込み中に呼び出されうるオペレーティング環境206の他の実行コンポーネントを示しうる。幾らかの実施形態においては、オペレーティング環境206で実行されるモジュールの幾らかまたは全てが、動作420に先立つ動作416のような動作により既に検証されている場合もある。これらの場合、動作416が検証したモジュールを示すIDTポインタは、有効なポインタと考えられてよい。
全てのモジュール割り込みハンドラが検証されると(動作422)、モジュールはインテグリティ検証テストをパスしたとみなされうる(動作424)。しかし、動作414、418、および422の1以上においては、モジュールはそれぞれ動作412、416、および420の検証テストをパスしてはおらず、モジュールのインテグリティが損なわれている場合がある(動作426)、つまり、ルートキットまたは他のマルウェアがオペレーティング環境206の正規の動作に影響を与えている場合がある。これらの場合においては、警告の発令または他の適切な対抗措置を講じてよい。
動作406−426は、オペレーティング環境206で動作する各コンポーネントまたはモジュールについて繰り返されて、オペレーティング環境206のセキュリティが完全な状態であることを保証してよい。続いてロードされうる他のコンポーネントについては、これら動作は新たなコンポーネントまたは全てのコンポーネントに対して、ロードの際または他の類似したイベントのときに実行されうる。さらに、動作406−426は、システム再起動、IDTへの変更、等の他のトリガとなるイベントに呼応して繰り返されてもよい。
他のオペレーションまたは一連のオペレーションを利用してもよい。さらに、他の数の、または他の種類のインテグリティチェックまたは検証チェックを行うこともできる。
本発明を限られた数の実施形態に関して記載してきた。本発明については多数の変形例、変更例、および他の用途を考えられることは理解されたい。本発明の実施形態には、プロセッサまたはコントローラにより実行されると本明細書で開示した方法を実行するメモリ、ディスクドライブ、またはUSBまたは他のフラッシュメモリなどのコンピュータ読み取り可能媒体が含まれてよい。本発明の実施形態は、さらに、開示した動作を行う他のシステムを含みうる。これらシステムには教示された部材が集積されてもよく、同じ目的を実行する代替的なコンポーネントが含まれてもよい。当業者であれば、本発明の真の精神に含まれるこのような変形例および変更例を添付の請求項が網羅することを理解しよう。

Claims (15)

  1. 第1のオペレーティング環境にロードされた第1のソフトウェアコンポーネントを実行することと、
    前記第1のソフトウェアコンポーネントに関するランタイム情報を前記第1のオペレーティング環境で収集することと、
    前記第1のオペレーティング環境から隔離された第2のオペレーティング環境の第2のソフトウェアコンポーネントに、前記収集されたランタイム情報を伝達することと、
    前記収集されたランタイム情報を、前記第1のソフトウェアコンポーネントに関する有効な情報一式と比較することと、
    前記収集されたランタイム情報が前記有効な情報一式と整合しない場合、警告を発令することと、を含む方法。
  2. 前記収集された情報は、コード、データ、外部シンボルテーブル、およびリロケーション情報のうち1以上を含む、請求項1に記載の方法。
  3. 前記第1のソフトウェアコンポーネントのインポートアドレステーブルおよびエクスポートポインタの状態データ一式を記憶することと、
    前記状態データを、前記第1のソフトウェアコンポーネントに関する前記有効な情報一式と比較することと、を含む、請求項2に記載の方法。
  4. 記憶装置から、有効な割り込みハンドラエントリ一式を読み出すことと、
    記録されている割り込みハンドラエントリ一式が、有効なインポートオフセットおよびエクスポートオフセットを示すことを検証することと、を含む、請求項3に記載の方法。
  5. 前記第1のソフトウェアコンポーネントの1以上の従属ソフトウェアコンポーネントを検証することを含む、請求項1から請求項4の何れかに記載の方法。
  6. 前記第1のオペレーティング環境は仮想化されており、前記第2のオペレーティング環境は仮想マシンマネージャである、請求項1から請求項5の何れかに記載の方法。
  7. 前記第1のオペレーティング環境は、仮想化されていないオペレーティングシステムである、請求項1から請求項5の何れかに記載の方法。
  8. 前記収集されたランタイム情報を伝達することは、前記収集されたランタイム情報を前記第2のオペレーティング環境の共有メモリを介して伝達することを含む、請求項1から請求項7の何れかに記載の方法。
  9. 第1のオペレーティング環境で実行される第1のソフトウェアコンポーネントと、
    前記第1のオペレーティング環境で実行され、前記第1のソフトウェアコンポーネントに関するランタイム情報を収集し、前記収集されたランタイム情報を伝達する第2のソフトウェアコンポーネントと、
    第1のオペレーティング環境から隔離された第2のオペレーティング環境で実行され、前記収集されたランタイム情報を受信し、前記収集されたランタイム情報を、前記第1のソフトウェアコンポーネントに関する有効な情報一式と比較する、第3のソフトウェアコンポーネントと、を備えるシステム。
  10. 前記収集された情報は、コード、データ、外部シンボルテーブル、およびリロケーション情報のうち1以上を含む、請求項9に記載のシステム。
  11. 前記第2のソフトウェアコンポーネントは、前記第1のソフトウェアコンポーネントのインポートアドレステーブルおよびエクスポートポインタの状態データ一式を記憶し、
    前記第3のソフトウェアコンポーネントは、前記状態データを、前記第1のソフトウェアコンポーネントに関する前記有効な情報一式と比較する、請求項10に記載のシステム。
  12. 前記第3のソフトウェアコンポーネントは、記憶装置から、有効な割り込みハンドラエントリ一式を読み出し、記録されている割り込みハンドラエントリ一式が、有効なインポートオフセットおよびエクスポートオフセットを示すことを検証する、請求項11に記載のシステム。
  13. 前記第3のソフトウェアコンポーネントは、前記第1のソフトウェアコンポーネントの1以上の従属ソフトウェアコンポーネントを検証する、請求項9から請求項12の何れかに記載のシステム。
  14. 前記第1のオペレーティング環境は仮想化されている、請求項9から請求項13の何れかに記載のシステム。
  15. 前記第1のソフトウェアコンポーネントは、前記収集されたランタイム情報を前記第2のオペレーティング環境の共有メモリを介して伝達する、請求項9から請求項14の何れかに記載のシステム。
JP2008287882A 2007-11-13 2008-11-10 ソフトウェアコンポーネントをホワイトリストに登録する方法およびシステム Expired - Fee Related JP4901842B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/984,001 2007-11-13
US11/984,001 US8099718B2 (en) 2007-11-13 2007-11-13 Method and system for whitelisting software components

Publications (2)

Publication Number Publication Date
JP2009140485A true JP2009140485A (ja) 2009-06-25
JP4901842B2 JP4901842B2 (ja) 2012-03-21

Family

ID=40342208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008287882A Expired - Fee Related JP4901842B2 (ja) 2007-11-13 2008-11-10 ソフトウェアコンポーネントをホワイトリストに登録する方法およびシステム

Country Status (4)

Country Link
US (2) US8099718B2 (ja)
EP (1) EP2063377B1 (ja)
JP (1) JP4901842B2 (ja)
CN (1) CN101436237B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8763115B2 (en) * 2007-08-08 2014-06-24 Vmware, Inc. Impeding progress of malicious guest software
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8051432B2 (en) 2008-11-14 2011-11-01 Novell, Inc. Techniques for establishing virtual devices
US8776027B2 (en) * 2009-03-06 2014-07-08 Microsoft Corporation Extracting and collecting platform use data
US8776028B1 (en) 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
EP2254070A1 (en) * 2009-05-18 2010-11-24 Nxp B.V. Secure execution of native code
US20120036569A1 (en) * 2010-04-05 2012-02-09 Andrew Cottrell Securing portable executable modules
CN102469450B (zh) * 2010-11-08 2014-06-04 中国移动通信集团广东有限公司 一种手机病毒特征的识别方法及装置
US8656494B2 (en) 2012-02-28 2014-02-18 Kaspersky Lab, Zao System and method for optimization of antivirus processing of disk files
US9817951B2 (en) * 2012-04-06 2017-11-14 Comcast Cable Communications, Llc System and method for analyzing a device
US8793661B1 (en) 2012-04-27 2014-07-29 Google Inc. Programmer specified conditions for raising exceptions and handling errors detected within programming code
CN102841672B (zh) * 2012-07-10 2016-03-16 上海果壳电子有限公司 一种休眠拦截方法及系统
CN103634366A (zh) * 2012-08-27 2014-03-12 北京千橡网景科技发展有限公司 用于识别网络机器人的方法和设备
US8930914B2 (en) * 2013-02-07 2015-01-06 International Business Machines Corporation System and method for documenting application executions
US9043758B2 (en) 2013-03-15 2015-05-26 International Business Machines Corporation System for generating readable and meaningful descriptions of stream processing source code
CN105468976B (zh) * 2015-12-08 2019-11-12 北京元心科技有限公司 一种基于容器的多系统的入侵监控方法和装置
US10592669B2 (en) 2016-06-23 2020-03-17 Vmware, Inc. Secure booting of computer system
US10242196B2 (en) * 2016-07-29 2019-03-26 Vmware, Inc. Secure booting of computer system
US9977725B2 (en) * 2016-08-26 2018-05-22 Cisco Technology, Inc. Automatic classification and parallel processing of untested code in a protected runtime environment
US10956615B2 (en) 2017-02-17 2021-03-23 Microsoft Technology Licensing, Llc Securely defining operating system composition without multiple authoring
US11151273B2 (en) 2018-10-08 2021-10-19 Microsoft Technology Licensing, Llc Controlling installation of unauthorized drivers on a computer system
US11080416B2 (en) 2018-10-08 2021-08-03 Microsoft Technology Licensing, Llc Protecting selected disks on a computer system
JP7380251B2 (ja) 2020-01-27 2023-11-15 株式会社Ihi 仮想マシンにおけるデータ改ざんの監視方法及び装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348486A (ja) * 1991-04-22 1994-12-22 Acer Inc コンピュータウィルスからコンピュータシステムを保護するための方法及びシステム
JP2003108253A (ja) * 2001-09-28 2003-04-11 Hitachi Software Eng Co Ltd アプリケーションの監視方法およびプログラム
JP2004013608A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd プログラムの実行および転送の制御
JP2004013607A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd ファイル監視装置
JP2004038819A (ja) * 2002-07-08 2004-02-05 Hitachi Ltd セキュリティウォールシステムおよびそのプログラム
JP2006268775A (ja) * 2005-03-25 2006-10-05 Ntt Docomo Inc ソフトウェア動作モデル化装置及びソフトウェア動作監視装置
JP2007128537A (ja) * 2006-12-18 2007-05-24 Macrovision Corp 動的に接続可能な実行イメージの真正性検証システム及び方法
JP2007141171A (ja) * 2005-11-22 2007-06-07 Hitachi Ltd ファイルサーバ、ファイルサーバのログ管理システム及びファイルサーバのログ管理方法

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JP3369580B2 (ja) 1990-03-12 2003-01-20 ヒューレット・パッカード・カンパニー 直接メモリアクセスを行うためのインターフェース装置及び方法
US5483641A (en) 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US5312673A (en) 1992-07-28 1994-05-17 Bradford Industries, Inc. Adhesive system for athletic lettering and the like
US5379400A (en) 1992-08-07 1995-01-03 International Business Machines Corp. Method and system for determining memory refresh rate
WO1995009397A1 (en) 1993-09-30 1995-04-06 Apple Computer, Inc. System for decentralized backing store control of virtual memory in a computer
US5634043A (en) 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
US5687370A (en) 1995-01-31 1997-11-11 Next Software, Inc. Transparent local and distributed memory management system
US5854916A (en) 1995-09-28 1998-12-29 Symantec Corporation State-based cache for antivirus software
FR2744818B1 (fr) 1996-02-12 1998-03-27 Bull Sa Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse
US6542919B1 (en) 1996-03-22 2003-04-01 Koninklijke Philips Electronics N.V. Operating system for use with protection domains in a single address space
US5944821A (en) 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US5991881A (en) 1996-11-08 1999-11-23 Harris Corporation Network surveillance system
JPH10228421A (ja) 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
US6360244B1 (en) 1997-04-11 2002-03-19 Fujitsu Limited System and method for multi-level memory domain protection
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6163834A (en) 1998-01-07 2000-12-19 Tandem Computers Incorporated Two level address translation and memory registration system and method
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6105137A (en) 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6321276B1 (en) 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
JP4763866B2 (ja) 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
JP4516693B2 (ja) 1998-12-07 2010-08-04 アルボス テクノロジーズ リミテッド リミテッド ライアビリティ カンパニー コンピュータ、アドレス有効性照合プログラムを記録した記録媒体、及びアドレス有効性照合方法
US6732220B2 (en) 1999-02-17 2004-05-04 Elbrus International Method for emulating hardware features of a foreign architecture in a host operating system environment
WO2001001262A1 (fr) 1999-06-24 2001-01-04 Fujitsu Limited Controleur de peripherique et systeme d'entree/sortie
US7650504B2 (en) 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6751737B1 (en) 1999-10-07 2004-06-15 Advanced Micro Devices Multiple protected mode execution environments using multiple register sets and meta-protected instructions
AU4705001A (en) 1999-10-25 2001-06-18 Phoenix Technologies Inc. Secure software smi dispatching using caller address
US6738882B1 (en) 1999-11-30 2004-05-18 Hewlett-Packard Development Company, L.P. Concurrent multi-processor memory testing beyond 32-bit addresses
US6658515B1 (en) 2000-01-25 2003-12-02 Dell Usa, L.P. Background execution of universal serial bus transactions
US6983374B2 (en) 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
US6553438B1 (en) 2000-04-24 2003-04-22 Intel Corporation Methods and system for message resource pool with asynchronous and synchronous modes of operation
US6931540B1 (en) 2000-05-31 2005-08-16 Networks Associates Technology, Inc. System, method and computer program product for selecting virus detection actions based on a process by which files are being accessed
US6751720B2 (en) 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6954861B2 (en) 2000-07-14 2005-10-11 America Online, Inc. Identifying unauthorized communication systems based on their memory contents
AU9084201A (en) 2000-09-14 2002-03-26 Sun Microsystems Inc Remote incremental program binary compatibility verification using api definitions
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6996551B2 (en) 2000-12-18 2006-02-07 International Business Machines Corporation Apparata, articles and methods for discovering partially periodic event patterns
US6567897B2 (en) 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US6684305B1 (en) 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US7328453B2 (en) 2001-05-09 2008-02-05 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US7478394B1 (en) 2001-06-04 2009-01-13 Hewlett-Packard Development Company, L.P. Context-corrupting context switching
US6671791B1 (en) 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US7093118B2 (en) 2001-06-27 2006-08-15 Intel Corporation System and method for external bus device support
US6920534B2 (en) 2001-06-29 2005-07-19 Intel Corporation Virtual-port memory and virtual-porting
US8001594B2 (en) 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US6685567B2 (en) 2001-08-08 2004-02-03 Igt Process verification
US6883116B2 (en) 2001-09-27 2005-04-19 International Business Machines Corporation Method and apparatus for verifying hardware implementation of a processor architecture in a logically partitioned data processing system
US7062650B2 (en) 2001-09-28 2006-06-13 Intel Corporation System and method for verifying integrity of system with multiple components
US6823433B1 (en) 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US6850994B2 (en) 2001-11-16 2005-02-01 Microsoft Corporation Method for determining status of a computer device and detecting device behavior in response to a status request
US20030101381A1 (en) 2001-11-29 2003-05-29 Nikolay Mateev System and method for virus checking software
US6804741B2 (en) 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
JP2003281071A (ja) 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US7127548B2 (en) 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
JP2003330365A (ja) 2002-05-09 2003-11-19 Toshiba Corp コンテンツ配布/受信方法
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6922766B2 (en) 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7107497B2 (en) 2002-09-30 2006-09-12 Sun Microsystems, Inc. Method and system for event publication and subscription with an event channel from user level and kernel level
US7028229B2 (en) 2002-09-30 2006-04-11 Sun Microsystems, Inc. Kernel event subscription and publication system and method
FR2849226B1 (fr) 2002-12-20 2005-12-02 Oberthur Card Syst Sa Procede et dispositif de securisation de l'execution d'un programme informatique.
US7111200B2 (en) 2003-04-17 2006-09-19 International Business Machines Corporation Apparatus and method for debugging a logical partition
US20040226009A1 (en) 2003-05-09 2004-11-11 International Business Machines Corporation System and method for software application task abstraction
US6961852B2 (en) 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
US7010630B2 (en) 2003-06-30 2006-03-07 International Business Machines Corporation Communicating to system management in a data processing system
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US7542026B2 (en) 2003-11-03 2009-06-02 International Business Machines Corporation Apparatus method and system for improved feedback of pointing device event processing
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US20050138417A1 (en) 2003-12-19 2005-06-23 Mcnerney Shaun C. Trusted network access control system and method
US7225325B2 (en) 2003-12-30 2007-05-29 International Business Machines Corporation Customizing a computer system by using stored configuration parameters in a configuration mechanism
US7831838B2 (en) 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US20050213768A1 (en) 2004-03-24 2005-09-29 Durham David M Shared cryptographic key in networks with an embedded agent
US7653727B2 (en) 2004-03-24 2010-01-26 Intel Corporation Cooperative embedded agents
US7558966B2 (en) 2004-06-09 2009-07-07 Intel Corporation Notifying remote administrator of platform integrity determination
US7594124B2 (en) 2004-06-09 2009-09-22 Intel Corporation Cross validation of data using multiple subsystems
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
US20050289311A1 (en) 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US7908653B2 (en) 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
US7644287B2 (en) 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7281102B1 (en) 2004-08-12 2007-10-09 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
US20060047955A1 (en) 2004-08-30 2006-03-02 Axalto Inc. Application code integrity check during virtual machine runtime
US7571474B2 (en) 2004-12-30 2009-08-04 Intel Corporation System security event notification aggregation and non-repudiation
US7577848B2 (en) 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7739517B2 (en) 2005-03-31 2010-06-15 Intel Corporation Hardware-based authentication of a software program
US7603484B2 (en) 2005-04-21 2009-10-13 Microsoft Corporation Protocol for communication with a user-mode device driver
US20060294596A1 (en) 2005-06-27 2006-12-28 Priya Govindarajan Methods, systems, and apparatus to detect unauthorized resource accesses
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US20070006175A1 (en) 2005-06-30 2007-01-04 David Durham Intra-partitioning of software components within an execution environment
US20070005935A1 (en) 2005-06-30 2007-01-04 Khosravi Hormuzd M Method and apparatus for securing and validating paged memory system
US20070006307A1 (en) 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US7761674B2 (en) 2005-12-30 2010-07-20 Intel Corporation Identifier associated with memory locations for managing memory accesses
US7669242B2 (en) 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US20070008175A1 (en) * 2005-07-06 2007-01-11 Duane Johnson Siren detection notification alarm
US8079080B2 (en) * 2005-10-21 2011-12-13 Mathew R. Syrowik Method, system and computer program product for detecting security threats in a computer network
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348486A (ja) * 1991-04-22 1994-12-22 Acer Inc コンピュータウィルスからコンピュータシステムを保護するための方法及びシステム
JP2003108253A (ja) * 2001-09-28 2003-04-11 Hitachi Software Eng Co Ltd アプリケーションの監視方法およびプログラム
JP2004013608A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd プログラムの実行および転送の制御
JP2004013607A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd ファイル監視装置
JP2004038819A (ja) * 2002-07-08 2004-02-05 Hitachi Ltd セキュリティウォールシステムおよびそのプログラム
JP2006268775A (ja) * 2005-03-25 2006-10-05 Ntt Docomo Inc ソフトウェア動作モデル化装置及びソフトウェア動作監視装置
JP2007141171A (ja) * 2005-11-22 2007-06-07 Hitachi Ltd ファイルサーバ、ファイルサーバのログ管理システム及びファイルサーバのログ管理方法
JP2007128537A (ja) * 2006-12-18 2007-05-24 Macrovision Corp 動的に接続可能な実行イメージの真正性検証システム及び方法

Also Published As

Publication number Publication date
US8434067B2 (en) 2013-04-30
US20090125885A1 (en) 2009-05-14
EP2063377A1 (en) 2009-05-27
EP2063377B1 (en) 2016-12-21
US20120144482A1 (en) 2012-06-07
US8099718B2 (en) 2012-01-17
JP4901842B2 (ja) 2012-03-21
CN101436237B (zh) 2011-11-30
CN101436237A (zh) 2009-05-20

Similar Documents

Publication Publication Date Title
JP4901842B2 (ja) ソフトウェアコンポーネントをホワイトリストに登録する方法およびシステム
RU2691187C1 (ru) Система и способы аудита виртуальной машины
US8479295B2 (en) Method and apparatus for transparently instrumenting an application program
Dinaburg et al. Ether: malware analysis via hardware virtualization extensions
US8990934B2 (en) Automated protection against computer exploits
CA2856268C (en) Methods of detection of software exploitation
US20170185776A1 (en) Trusted launch of secure enclaves in virtualized environments
Stüttgen et al. Acquisition and analysis of compromised firmware using memory forensics
Guri et al. JoKER: Trusted detection of kernel rootkits in android devices via JTAG interface
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US20140317742A1 (en) Hypervisor-based buffer overflow detection and prevention
US11977631B2 (en) Hypervisor level signature checks for encrypted trusted execution environments
Rutkowska et al. IsGameOver () anyone
Kiperberg et al. Hypervisor-assisted atomic memory acquisition in modern systems
Zhong et al. A virtualization based monitoring system for mini-intrusive live forensics
Wei et al. Modeling the runtime integrity of cloud servers: a scoped invariant perspective
Zhu et al. Static analysis based invariant detection for commodity operating systems
Suzaki et al. Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints
EP2720170A1 (en) Automated protection against computer exploits
Ahmed et al. Rule-based integrity checking of interrupt descriptor tables in cloud environments
Zaidenberg et al. Hypervisor memory introspection and hypervisor based malware honeypot
Vetter et al. Uncloaking rootkits on mobile devices with a hypervisor-based detector
Wen et al. Towards thwarting data leakage with memory page access interception
Guri et al. Detecting android kernel rootkits via JTAG memory introspection
Abdulmalik et al. Windows Vista Kernel-Mode: Functions, Security Enhancements and Flaws

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111021

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4901842

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees