説明

ハードウェアベースのアンチウィルススキャンサービス

【課題】アンチウィルススキャンを確実に行なえるようにする。
【解決手段】中央プロセッサとは独立に動作する第2のプロセッサを有し、前記中央プロセッサのパワー状態にかかわらず帯域外通信を受け取ることができる管理エンジン116とを有し、前記管理エンジン116は、帯域外通信チャネル126を介して、リモートコンピューティングデバイスの秘密鍵で署名されたウィルスシグネチャファイルを受け取り、前記署名されたウィルスシグネチャファイルをシステムメモリに記憶し、前記リモートコンピューティングデバイスの前記秘密鍵に対応する、前記管理エンジン116に記憶された公開鍵を用いて、前記署名されたウィルスシグネチャファイルを確認し、前記署名されたウィルスシグネチャファイル中の1つ以上のパターンを用いて、前記コンピューティングデバイスに記憶された1つ以上のファイルにアンチウィルススキャンを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プラットフォーム内のセキュアハードウェアコンポーネントを用いたアンチウィルススキャンサービスに関する。
【背景技術】
【0002】
ユーザがアプリケーションを完全に買うのではなく、期間を限定してアプリケーションにアクセスする権利を購入する(subscribe for periodic access)、アクセス権(subscription)ベースのソフトウェアアプリケーションを用いるビジネスは多い。アンチウィルスソフトウェアアプリケーションについて言えば、コンピュータプロットフォームのハードディスクドライブ等の記憶媒体に記憶されたファイルを変更(modify)できるルートキット(rootkit)やその他のウィルスに対して、システムを監視したいユーザにとっては、このモデルは魅力的である。オンラインスキャンモデルでは、リモートアンチウィルスサービスがローカルコンピュータプラットフォームにエージェントをインストールする(例えば、ソフトウェアアプリケーションプッシュモデル)。このエージェントは、プロットフォームのオペレーティングシステムサービスを利用して、ローカルにスキャンを実行し、その結果をリモート装置(remote entity)に送信し、最新のシグネチャパターンファイルと比較する。このモデルは、リモート装置によりエージェントがインストールされ、スキャンに利用するオペレーティングシステムサービスがどれも変更されていない場合には、概して正確な結果を得ることができる。しかし、この仮定は常に正しいわけではない。場合によっては、ローカルエージェントとオペレーティングシステム内のその他のコンポーネントとが変更(compromise)されていて、それにより結果も変わってしまう。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の一態様による装置は、複数のファイルを記憶する記憶媒体と、ウィルスシグネチャファイルにアクセスし、前記シグネチャファイル中のパターンを用いてアンチウィルススキャンを実行し、前記記憶媒体に記憶された前記複数のファイルのうちのファイルと比較し、前記スキャンの結果を、前記管理エンジンの外部にあるエージェントに報告する管理エンジンとを有する。
【0004】
本発明の他の一態様によるシステムは、帯域外チャネルと、前記チャネルを介してローカルコンピュータプラットフォームにウィルスシグネチャファイルを送る、前記帯域外チャネルに結合したリモートコンピュータプラットフォームとを有するシステムであって、前記帯域外チャネルに結合した前記ローカルコンピュータプラットフォームは、複数のファイルを記憶する記憶媒体と、前記コンピュータプラットフォームから前記ウィルスシグネチャファイルを受け取り、前記シグネチャファイル中のパターンを用いてアンチウィルススキャンを実行し、前記記憶媒体に記憶された前記複数のファイルのうちのファイルと比較する管理エンジンとを有する。
【0005】
本発明のさらに他の一態様による方法は、ローカルコンピュータプラットフォームからリモートコンピュータプラットフォームに、前記ローカルコンピュータプラットフォームの記憶媒体に記憶されたファイルにウィルススキャンを実行する要求を送る段階と、前記リモートコンピュータプラットフォームから前記ローカルコンピュータプラットフォームの管理エンジンに、前記ファイルに対する要求を送る段階と、前記管理エンジンが前記記憶媒体から前記ファイルを読み出す段階と、前記管理エンジンから前記リモートコンピュータプラットフォームに前記ファイルを送る段階と、前記ファイルが前記リモートコンピュータプラットフォームに到着したとき、前記ファイルをスキャンしてウィルスを探す段階と、前記リモートコンピュータプラットフォームから前記ローカルコンピュータプラットフォームに前記ウィルススキャンの結果を送る段階とを含む。
【図面の簡単な説明】
【0006】
本発明は、例を挙げて説明するが、図面によっては限定されない。図面中、同じ要素には同じ参照符号を付した。
【図1】実施形態による帯域外ローカルアンチウィルススキャンを管理するシステムを示すブロック図である。
【図2】実施形態による帯域外リモートアンチウィルススキャンを管理するシステムを示すブロック図である。
【図3】実施形態によるコンピュータプラットフォームにおいてハードウェアベースのエージェントウィルススキャンを実行する方法を示すフロー図である。
【図4】実施形態によるコンピュータプラットフォームにおいてハードウェアベースのエージェントレスウィルススキャンを実行する方法を示すフロー図である。
【図5】実施形態によるシステムメモリにセキュアなウィルスパターンを記憶するプラットフォームを示すブロック図である。
【図6】実施形態によるシステムメモリにセキュアなウィルスパターンを記憶する方法を示すフロー図である。
【発明を実施するための形態】
【0007】
セキュアプラットフォームベースのハードウェアによるアンチウィルススキャンサービスをする装置、システム、及び方法の実施形態を説明する。
【0008】
ローカルコンピュータプラットフォームは、帯域外管理を介してリモートコンピュータプラットフォームと通信できる管理エンジンを含む。帯域外(OOB)管理は、装置及びコンピュータシステムの管理及び一般的メンテナンスのために専用通信チャネルを用いる。管理者は、帯域外通信チャネルによる帯域外管理により、装置及びコンピュータシステムをリモートに関し及び管理できる。コンピュータの帯域外管理は、一般的に、そのコンピュータのパワーがオンであるかどうかにかかわらず行われる。
【0009】
リモートコンピュータプラットフォームは、ローカルコンピュータプラットフォームに、ウィルスパターンを含むウィルスシグネチャファイルを送信する。ローカルコンピュータプラットフォームは、シグネチャファイルをセキュアに記憶し、供給されたパターンを基準として用いて、管理エンジンを用いて、ローカルに記憶したファイルのスキャンを実行する。このスキャンは、ローカルコンピュータプラットフォームのオペレーティングシステム及び/またはその他のコンポーネントが動作していない時に帯域外及びセキュアに実行できる。そうでなければ、悪意のウィルスやプログラムにより変更される可能性がある。スキャン結果は、リモートコンピュータプラットフォームに帯域外インタフェースにより報告される。
【0010】
本明細書及び請求項において、開示した技術の「一実施形態」とは、その実施形態に関して説明する具体的な機能、構造、特徴などが開示した技術の少なくとも1つの実施形態に含まれることを意味している。よって、本明細書ではいろいろな箇所で「一実施形態では」と記載するが、必ずしも同じ実施形態を指すものではない。
【0011】
以下の説明及び請求項において、「含む」や「有する」やその変化形を用いるが、互いに同意語として用いている。また、以下の説明及び請求項において、「結合された」や「接続された」やその変化形を用いる。言うまでもなく、これらの用語は互いに同意語として使用したものではない。例えば、一部の実施形態では、「接続された」という用語を用いて、2以上の要素が互いに物理的または電気的に直接的に接触していることを示している。「結合された」という用語は、2つ以上の要素が物理的または電気的に直接的に接触していることを示している。しかし、「結合された」という用語は、複数の要素が互いに直接的には接触してないが、互いに協働または相互作用することを示している。
【0012】
図1は、実施形態による帯域外ローカルアンチウィルススキャンを管理するシステムを示すブロック図である。このシステムは、多くの実施形態では、ローカルコンピュータプラットフォーム100を含む。ローカルコンピュータプラットフォーム100は、別の実施形態では、インテル(登録商標)ベースの中央処理装置などの1つまたは複数のプロセッサを含んでいてもよい。各プロセッサは1つまたは複数のコアを有していてもよい。図1にはローカルコンピュータプラットフォーム100内のプロセッサは示していない。各プロセッサはそのプロセッサにより実行される命令を記憶するメモリサブシステムに結合されている。メモリサブシステムのメモリデバイスは、ダブルデータレート(DDR)シンクロナスDRAMなどの任意タイプの揮発性ダイナミックランダムアクセスメモリ(DRAM)であってもよいし、フラッシュメモリなどの任意タイプの不揮発性メモリであってもよい。プロセッサはプロセッサメモリインタフェースによりメモリと結合されている。このプロセッサメモリインタフェースは、プロセッサとメモリとの間でデータ、アドレス、制御情報、その他の情報を送信できる個別ラインを含むリンク(すなわち、相互接続/バス)であってもよい。多くの実施形態では、メモリサブシステムハードウェア(すなわち、メモリデバイス)は図1に示していない。
【0013】
メモリサブシステムのハードウェアは示していないが、ホストオペレーティングシステム(OS)102はローカルコンピュータプラットフォーム100のメモリにロードされるオペレーティングシステムを代表し、プラットフォームはそのプラットフォーム及びそれに付属する周辺装置に一般的な動作制御を提供するように動作する。ホストOS102はマイクロソフト(登録商標)ウィンドウズ(登録商標)、ユニックス、リナックス(登録商標)その他のOSであってもよい。ホストOS102は、プログラム、サービス、またはエージェントが実行される環境を提供する。アンチウィルスソフトウェアエージェントすなわちブラウザ(AVエージェント)104は、ホストOS102において実行されているプログラム/エージェントの1つである。AVエージェント104は、リモートウィルスプロテクションサービスがローカルコンピュータプラットフォーム100上で実行し、ユーザにウィルスのスキャンとレポートに関する入力とフィードバックさせる独自仕様のプログラムであってもよい。実施形態によっては、AVエージェント104は、ホストOS102環境内においてバックグラウンドで実行されるサービスである。他の実施形態では、AVエージェントはJava(登録商標)、XML(eXtensible Markup Language)、HTML(HyperText Markup Language)、またはその他のブラウザベースのウェブアプリケーションである。
【0014】
また、多くの実施形態では、ホストOS102はファイルシステム106を含む。ファイルシステム106は、ファイルが記憶媒体108にいかに記憶されるかその構成を提供する。記憶媒体108は、実施形態によっては、ハードディスクドライブである。他の実施形態では、記憶媒体108は大規模不揮発性メモリドライブであってもよい。さらに別の実施形態では、記憶媒体はテープドライブ、光ディスクドライブ、その他のドライブ等の媒体であってもよい。記憶媒体108は、ローカルコンピュータプラットフォーム100内にあるファイルの多くを記憶している。上記のように、ファイルシステム106はこれらのファイルを記憶する構成を提供する。例えば、ファイルシステム106はマイクロソフト(登録商標)NTFSベースのファイルシステムである。
【0015】
ロジックコンプレックス110は、ローカルコンピュータプラットフォーム100内のメモリサブシステムとI/Oサブシステムを管理する統合された複数のコントローラを含む。ロジックコンプレックス110に結合された各サブシステムは、1つまたは複数のコントローラを用いてローカルコンピュータプラットフォーム100内の残りのハードウェアとインタフェースする。例えば、記憶媒体108がSATA(serial advanced technology attachment)ハードディスクドライブである場合、記憶コントローラ112はSATAコントローラである。SATAコントローラはハードディスクドライブとローカルコンピュータプラットフォーム100の残りのコンポーネントとの間で通信インタフェースを提供する。ローカルコンピュータプラットフォーム100内で実行されるドライバは、記憶媒体108にアクセスするために記憶コントローラ112と通信する。
【0016】
多くの実施形態では、ローカルコンピュータプラットフォーム100は仮想化エンジン114を利用する。仮想化エンジン114によりプラットフォームを複数の仮想プラットフォームに分割できる。プロセッサは、これらの複数の仮想プラットフォームの間で実行を切り替えることができる。仮想化エンジン114は、(記憶媒体を含む)ローカルコンピュータプラットフォーム100の残りの構成要素が複数の仮想プラットフォームをサポートできるロジックを含む。実施形態によっては、仮想化エンジン114は記憶コントローラ112のドライバを含む。
【0017】
多くの実施形態において、ロジックコンプレックス110は管理エンジン116も含む。別の実施形態では、管理エンジンは、プラットフォームに関するリモート管理プロセスを支援する管理デバイス、管理ファームウェア、その他のローカルコンピュータプラットフォーム100内の管理ロジックを含む。多くの実施形態では、管理エンジンは、ローカルコンピュータプラットフォーム100のプロセッサと並行してかつ独立に動作する本コンピュータシステムの帯域外管理コ・プロセッサである。
【0018】
多くの実施形態では、ロジックコンプレックス110はチップセットである。チップセットは、システムメモリへのアクセスを提供するメモリコントローラや、I/O相互接続(すなわち、リンク/バス)へのアクセスを提供するI/Oコントローラなどの制御ロジックを含んでいてもよい。これらの実施形態では、管理エンジン116はチップセットに組み込まれている。実施形態によっては、管理エンジン116は、チップセットのメモリコントローラハブ(MCH)部分に組み込まれていてもよい。他の実施形態では、チップセット(すなわち、ロジックコンプレックス)は、ローカルコンピュータプラットフォームの中央プロセッサに組み込まれている。
【0019】
多くの実施形態において、管理エンジン116は記憶媒体108に記憶されたファイルにアクセスするファイルシステムに関するロジックを含む。また、管理エンジンは、仮想化エンジン114を介して記憶媒体108にアクセスするロジックを含む。
【0020】
具体的に、多くの実施形態では、ファイルシステムドライバ118は管理エンジン116において実行される。別の実施形態では、ファイルシステムドライバ118はNTFSドライバやその他のファイルシステムのドライバであってもよい。ドライバのタイプは記憶媒体108にファイルを記憶するのに用いるファイルシステムに応じて決まる。ファイルシステムドライバ118のロジックは、ファイルシステムデータ構成に関係し、記憶媒体からパーティションにファイルシステムをマウントするために用いられる。多くの実施形態では、パーティションは管理エンジン116のファームウェアにある。他の実施形態では、パーティションはロジックコンプレックス110内の他のマイクロコントローラ(図示せず)内にある。さらに他の実施形態では、マイクロコントローラはLinux(登録商標)やThreadXなどの組み込みオペレーティングシステムを実行するものであってもよい。
【0021】
また、管理エンジン116は、多くの実施形態においてファイルメタデータリスト120を含む。ファイルメタデータリスト120はファイルを記憶媒体108中の対応する記憶場所(locations)にマッピングするエントリーを有する。例えば、記憶媒体108がハードディスクドライブである場合、ファイルメタデータリスト120は、ファイルをそのハードディスクドライブ内の対応する記憶場所にマッピングするエントリーを有する。さらに、一部の実施形態では、ファイルメタデータリスト120はすべてのファイルに対するエントリーを有していなくてもよい。むしろ、リストはcreate、destroy、open、closeの動作により変更されたファイルのエントリーを有していてもよい。このように、このリストは、記憶媒体108に記憶され、上記の動作やファイルを変更できるその他の動作により何らかの変更をされたファイルエントリーを有する。他の実施形態では、ファイルメタデータリストは記憶媒体に記憶されたすべてのファイルのエントリーを有していてもよい。
【0022】
また、管理エンジン116は、多くの実施形態において記憶ドライバ122を有する。記憶ドライバ122を用いて、仮想化エンジン114を介した記憶媒体108との通信を行うこともできる。例えば、管理エンジンが記憶媒体108内の記憶場所からファイルを読み出すよう要求する場合、記憶ドライバ122はその要求を仮想化エンジン114に送る。仮想化エンジン114は、その仮想化エンジン114の内部の記憶コントローラインタフェースドライバを用いて記憶コントローラ112と通信することにより、記憶媒体108へのインタフェースを提供する。
【0023】
多くの実施形態では、リモートコンピュータプラットフォーム124はローカルコンピュータプラットフォーム100の外部にある。リモートコンピュータプラットフォーム124は、実施形態によっては、デスクトップ、ラップトップ、ワークステーション、サーバその他の任意のタイプのコンピュータプラットフォームである。多くの実施形態では、リモートコンピュータプラットフォーム124は、少なくとも帯域外通信チャネル(OOB CC)126を介してローカルコンピュータプラットフォームに結合されている。他の実施形態では、帯域外通信チャネルは相互接続や無線ネットワークであってもよい。これらのチャネルは、ローカルコンピュータプラットフォーム100とリモートコンピュータプラットフォーム124との間で情報をやりとりするセキュアインタフェースとなる。チャネルは帯域外のものゆえ、多くの実施形態では、ローカルコンピュータプラットフォーム100が機能していないかパワーが入っていない状態のときに帯域外通信チャネルがローカルコンピュータプラットフォームとの間で情報を送受信できる。例えば、リモートコンピュータプラットフォーム124は帯域外通信チャネル124を介してローカルコンピュータプラットフォーム100に情報を送信できる。この情報は、ローカルコンピュータプラットフォーム100にパワーが供給されていなくても、ローカルコンピュータプラットフォーム100の管理エンジン116が受信する。
【0024】
多くの実施形態では、リモートコンピュータプラットフォーム124はリモートアンチウィルスサービス128を含む。一部の実施形態では、このリモートアンチウィルスサービス128はウィルスのパターンや定義を含むシグネチャファイルを管理エンジンに提供する。多くの実施形態では、管理エンジンまたはローカルコンピュータプラットフォームのその他の部分にあるロジックが、記憶媒体108に記憶されたファイルのスキャンを実行して、ウィルスその他の悪意のプログラムがあるか判断する。このスキャンを実行するロジックは、一般的に、ウィルスがあるか判断するために、そのファイル内のパターンと比較するシグネチャファイルのウィルスの定義を必要とする。このように、一部の実施形態では、リモートアンチウィルスサービス128は、要求に応じて、または決まった時間に自動的に、シグネチャファイルのウィルスパターンを管理エンジンにアップロードする。他の実施形態では、管理エンジンは、リモートアンチウィルスサービスからシグネチャファイルを直接的にプル(pull)してもよい。例えば、リモートサービスに最新パターンのアップデートを要求してもよい。多くの実施形態では、管理エンジンは、ファームウェアを含み、ウィルスシグネチャファイル用のファームウェア記憶空間を有している。他の多くの実施形態では、管理エンジンは、シグネチャファイルを記憶するのに十分な空間を含んでいないので、ローカルコンピュータプラットフォーム100の汎用メモリサブシステムを用いてシグネチャファイルを記憶してもよい。大容量記憶サブシステムによるシグネチャファイルの記憶は、図3を参照して後で詳細に説明する。
【0025】
一部の実施形態では、管理エンジンがシグネチャファイルの記憶に用いるパーティションを生成する。他の実施形態では、管理エンジンはオペレーティングシステムと共用するパーティションをスキャンしてシグネチャファイルの記憶場所(location)を探す。
【0026】
図1に戻り、多くの実施形態では、ウィルススキャンは管理エンジン116において行われる。管理エンジン116は帯域外ウィルススキャンシナリオを生成する。例えば、リモートアンチウィルスサービス128は管理エンジン116のファームウェア記憶空間にシグネチャファイルをアップロードする。次に、管理エンジン116は、記憶ドライバ122を用いて仮想化エンジン114を介して記憶媒体108にアクセスし、ファイルシステムドライバ118を用いて管理エンジン116にローカルにファイルシステムをマウントする。管理エンジン116は、ウィルススキャンロジックに、ホストOS102からの関与(interaction)なしに、記憶媒体108に記憶されたファイルにウィルススキャンを実行する。管理エンジン116から記憶媒体108への直接アクセスを可能とすることにより、ウィルススキャンを帯域外で行うことができる。換言すると、管理エンジン116は、ホストOS102について関知せずにウィルススキャンを実行でき、ホストOS102がウィルスに感染した可能性がありセキュアにまたはまったく動作していなくてもウィルススキャンを実行できる。
【0027】
あるいは、他の実施形態では、ウィルススキャンが管理エンジン116内、すなわち管理エンジンにおいてローカルに行われても、スキャンするファイルは、ホストOS102のフィルタドライバ130により管理エンジン116に最初に送られたファイルメタデータ記憶120に基づき決定される。例えば、フィルタドライバ130は、ホストOS102内に常駐し、ファイル変更を報告するメカニズムとして機能する。具体的には、ファイルを生成、破棄(destroyed)、オープン、クローズ等した時は、フィルタドライバ130がそのファイル変更動作を管理エンジン116に報告する。管理エンジン116にはこのメタデータが送られる。このメタデータは基本的には記憶媒体108内に記憶されたファイルのファイル変更ログである。管理エンジン116はこのメタデータをファイルメタデータ記憶120に保存する。次に、管理エンジン116が記憶媒体108内のファイルのウィルススキャンの実行を決定すると、前回のスキャン以降に変更されたファイルに関する情報がファイルメタデータ記憶120に記憶される。このように、ウィルスに感染した可能性のあるファイルのみに絞ることにより、管理エンジン116によるウィルススキャンが効率的になる。
【0028】
フィルタドライバ130を利用する実施形態では、フィルタドライバ130が危険にさらされていないか確認するためにセキュリティプロトコルを用いる。例えば、管理エンジン116がホワイトリスト(すなわち、管理エンジン116が、このファイル変更監視サービスを実行してもよいとみなしたプログラムのリスト)を有していてもよい。管理エンジン116は、メモリインテグリティマニフェスト(memory integrity manifest)やその他の標準的なソフトウェアセキュリティ確認プロセスにより、フィルタドライバ130に信頼性をチェックできる。フィルタドライバ130は、検証されなければ、管理エンジン116にメタデータを送る許可を得られない。ローカルコンピュータプラットフォームで実行されているアンチウィルスソフトウェアエージェントまたはブラウザアプリケーション、及び/またはリモートアンチウィルスサービス128にはこの問題が通知される。フィルタドライバ128が検証されると、管理エンジン116のアンチウィルススキャンプロセスは継続される。
【0029】
図2は、実施形態による帯域外リモートアンチウィルススキャンを管理するシステムを示すブロック図である。図2に示した構成要素の多くは図1に示したものと同様または同一である。多くの実施形態では、ローカルコンピュータプラットフォーム200はホスト環境202を有する。ホスト環境202は、アンチウィルスソフトウェアエージェント及び/またはブラウザアプリケーション204、フィルタドライバ206、ファイルシステム208、及びオペレーティングシステム210を含む。
【0030】
多くの実施形態では、ホスト環境はホスト組み込みコントローラインタフェース(HECI)214により、管理可能性エンジン212と通信する。HECI214により、ホスト環境202中のオペレーティングシステム210やその他の構成要素は管理エンジン212と直接通信できる。システム管理情報及びイベントはHECIインタフェースを介して送られる。HECIは管理エンジンインタフェース(MEI)とも呼ばれる。図示はしてないが他の実施形態では、ホスト環境202はHECI214とは別のインタフェースにより管理エンジン212と通信する。
【0031】
セキュリティサービス216は、管理エンジン内で実行され、重要なOSのコンポーネント及びフィルタドライバ206を検証し測定し、プラットフォームのインテグリティを維持する。最後に、リモートアンチウィルスサービス218は、リモートコンピュータプラットフォーム220上で実行され、リモートウィルススキャン機能その他を提供する。
【0032】
図2に示したリモートアンチウィルススキャンプロセスでは、最初に、ローカルコンピュータプラットフォーム200のホスト環境202のユーザが、ウェブブラウザ204その他のソフトウェアアプリケーションを開き、リモートアンチウィルスサービス218と通信する。ユーザはスキャンするファイルを選択し、またはオプションの1つを選択し、あるファイルタイプやディレクトリの自動スキャンを実行またはスケジュールする。
【0033】
リモートアンチウィルスサービス218は、このファイルスキャン要求を受け取り(通信A)、要求元マシン(すなわち、ローカルコンピュータプラットフォーム200)の管理エンジン212にその要求を転送する(通信B)。管理エンジン212は、フィルタドライバ206にその要求を送る(通信C)。多くの実施形態において、フィルタドライバ206は管理エンジン212で実行されるセキュリティサービス216により保護されている(クロスハッチングはセキュリティサービス216により保護されているホスト環境内のコンポーネントを表す。セキュリティサービス216はフィルタドライバ206を評価(measure)して、フィルタドライバ206が実行時に悪意のプログラムやウィルスにより変更(modified)されていないことを検証する。
【0034】
セキュリティサービス216は、ホスト環境のOS210内にあるオペレーティングシステムの重要なコンポーネントも評価して、これらの重要なサービスが悪意のコードにより変更されていないことを確認してもよい(通信D)。すべての主要なホスト環境のコンポーネントがセキュリティサービス216によりセキュアであると検証されると、フィルタドライバは、要求のあったファイルを記憶媒体から読み出す(この記憶媒体は図2には示していないが、図1に参照符号108として示した)。記憶媒体から読み出した情報は、フィルタドライバ206からHECI214を介して管理エンジン212に送られる(通信E)。次に、管理エンジン212はそのファイルをリモートアンチウィルスサービスに送る(通信F)。リモートアンチウィルスサービスは、そのファイルに関する情報を受け取ると、そのファイルのウィルススキャンを実行し、スキャンした各ファイルがクリーンであるか、または感染していないかに関し結果を計算する。スキャンの結果はブラウザ204に送られる(通信G)。ブラウザ204は最初に要求を出したユーザにその結果をレポートする。
【0035】
図3は、実施形態によるコンピュータプラットフォームにおいてハードウェアベースのエージェントウィルススキャンを実行する方法を示すフロー図である。このプロセスは処理ロジックにより実行される。処理ロジックは、ハードウェア(例えば、汎用コンピュータシステム内のコンポーネント)、ソフトウェア(例えば、メモリ内に記憶された命令)、またはハードウェアとソフトウェアの組み合わせである。図3に戻り、本プロセスは、最初に、管理エンジン(ME)の処理が、メモリインテグリティマニフェストを用いてフィルタドライバのホワイトリストを作成する(処理ブロック300)。MEは、少なくともフィルタドライバの実行可能コードが記憶されたメモリのセグメントを評価する。次に、既知のインテグリティチェック値に対して、現在実行されているフィルタドライバを評価する。値が一致すれば、フィルタドライバのインテグリティが検証され、MEはそのフィルタドライバをホワイトリストに含めることができる。値が一致しなければ、本プロセスは終了し、リモートサービス/サーバにフィルタドライバの問題が通知される。これは、リモートサービス/サーバに、システムの潜在的な危険状態を示すものである。
【0036】
フィルタドライバのインテグリティを検証すると、フィルタドライバ内の処理ロジックは、ファイルの生成、破棄、読み出し、書き込み、オープン、クローズ等の機能の際に、ファイルシステムメタデータをMEに送る(処理ブロック302)。ファイルを変更する機能はどれも、関連するファイルメタデータを報告する機能としてターゲットにできる。
【0037】
次に、MEはメタデータリストをセキュアな記憶場所に記憶する(処理ブロック304)。一部の実施形態では、MEに付随するファームウェアに、ファイルメタデータのセキュアな記憶場所がある。他の実施形態では、セキュアな記憶場所(storage location)は、MEがアクセスできる他のセキュアなマイクロコントローラまたは記憶デバイスである。
【0038】
この後、本プロセスでは、MEの処理ロジックがリモートサーバまたはサービスからアンチウィルス(AV)スキャン要求を受け取る。スキャン要求は、スキャンするウィルスパターンを含むシグネチャファイルも含んでいてもよい。
【0039】
多くの実施形態において、スキャンはハードディスクドライブ内に記憶されたファイルに対して行う。他の実施形態では、スキャンは他の形体の記憶媒体内に記憶されたファイルに対して行う。ハードディスクドライブの実施形態では、MEの処理ロジックは、次に、ハードディスクドライブから、記憶されたメタデータへのマッピングをするディスクブロックを読み出すよう、仮想化エンジンに要求する。
【0040】
MEの処理ロジックは、読み出したディスクブロックからファイルを再構成して、再構成したファイルにAVスキャンを実行する(処理ブロック310)。次に、MEの処理ロジックは、スキャンしたファイルのパターンがシグネチャファイルのウィルスパターンと一致するか判断する(処理ブロック312)。一致したら、リモートAVサーバまたはサービスにアラート(alert)を送る。一部の実施形態では、MEの処理ロジックは、アラートを送ると、他のスキャン要求を待つ(処理ブロック316)。他の実施形態では、一致すると、MEは検出したウィルスを処理するまで、別のスキャンは実行しない。一致しなければ、MEの処理ロジックは、ブロック312に戻り、他のスキャン要求を待つ(処理ブロック316)。次に、本プロセスは処理ブロック306に戻る。
【0041】
図3には示していないが多くの実施形態では、処理ブロック302と304において、ファイルが変更されるたびにメタデータリストが更新される。このように、ブロック316から306に戻った時、前回ブロック306を実行した時と比較して、メタデータリストは更新されている。
【0042】
図4は、実施形態によるコンピュータプラットフォームにおいてハードウェアベースのエージェントレスウィルススキャンを実行する方法を示すフロー図である。このプロセスは処理ロジックにより実行される。処理ロジックは、ハードウェア(例えば、汎用コンピュータシステム内のコンポーネント)、ソフトウェア(例えば、メモリ内に記憶された命令)、またはハードウェアとソフトウェアの組み合わせである。このプロセスに出てくるコンポーネントは、図1と2に示したコンポーネントに関連している。ここで図4を参照するに、このプロセスは、最初に、管理エンジン(ME)の処理ロジックが、ファイルシステムと、仮想化エンジンと通信する記憶ドライバとを用いて、ハードディスクを読み取り専用パーティションとしてマウントする。図1を参照して説明したように、VEは(図4ではハードディスクドライブである)記憶媒体にアクセスする。
【0043】
次に、MEの処理ロジックは、ファイルシステムドライバを用いてハードディスクからファイルを読み出す(処理ブロック402)。次に、MEの処理ロジックがリモートサーバまたはサービスからAVスキャン要求を受け取る(処理ブロック404)。スキャン要求は、スキャンするウィルスパターンを含むシグネチャファイルも含んでいてもよい。
【0044】
ME内の処理ロジックは、次に、ファイルシステムドライバを用いて読み取り専用パーティションから、スキャンするファイルを読み出し、そのファイルにAVスキャンを実行する(処理ブロック406)。MEの処理ロジックは、スキャンしたファイルでウィルスパターンとの一致が見つかるか判断する(処理ブロック408)。一致したら、MEの処理ロジックは、リモートAVサーバまたはサービスにアラート(alert)を送る(処理ブロック410)。一部の実施形態では、MEの処理ロジックは、アラートを送ると、他のスキャン要求を待つ(処理ブロック412)。他の実施形態では、一致すると、MEは検出したウィルスを処理するまで、別のスキャンは実行しない。一致しなければ、MEの処理ロジックは、ブロック408に戻り、他のスキャン要求を待つ(処理ブロック412)。次に、本プロセスは処理ブロック404に戻る。
【0045】
図5は、実施形態によるシステムメモリにセキュアなウィルスパターンを記憶するプラットフォームを示すブロック図である。ローカルコンピュータプラットフォーム500のコンポーネントは、図1と2のローカルコンピュータプラットフォームのコンポーネントと同一または同様である。多くの実施形態では、ローカルコンピュータプラットフォーム500はオペレーティングシステム502を含み、このオペレーティングシステム500はコンポーネントをユーザ及びシステムのレベルで制御する。上記の通り、オペレーティングシステムは、マイクロソフト(登録商標)ウィンドウズ(登録商標)ベースのオペレーティングシステム、リナックス(登録商標)ベースのオペレーティングシステム、ユニックスベースのオペレーティングシステム、その他多数の利用可能なオペレーティングシステムでよい。
【0046】
オペレーティングシステム502はシステムメモリ504にアクセスできる。システムメモリは、DRAMやフラッシュメモリでもよく、プロセッサ用の命令やデータの記憶に利用できるその他の形態のメモリでもよく、メモリにアクセスするその他のコンポーネントでもよい。プラットフォームはウィルス検出ソフトウェア506も含む。別の実施形態では、ウィルス検出ソフトウェアは、オペレーティングシステム502上で実行されるソフトウェアアプリケーション、オペレーティングシステムのバックグラウンドで実行されるソフトウェアエージェントまたはサービス、ウェブブラウザアプリケーション、またはローカルコンピュータプラットフォーム500上で実行される他の形体のソフトウェアである。
【0047】
また、ローカルコンピュータプラットフォーム500は管理エンジン508を含む。管理エンジン508は、図1と2を参照して説明したように、多くのプラットフォーム管理タスクを実行し、帯域外で動作してリモートコンピュータプラットフォーム510と通信する。リモートコンピュータプラットフォーム510は、シグネチャファイルを更新するとともにその他のウィルス評価を支援するリモートアンチウィルスサービス512を含む。また、管理エンジンは、リモートでの管理をするために、ローカルコンピュータプラットフォーム500にリモートアクセスする。管理エンジン508はコマンドインタフェース514を含む。管理エンジン508は、このコマンドインタフェース514により、プラットフォーム上やリモートで実行されているソフトウェアエージェントからコマンドを受け取る。また、管理エンジン508は、プラットフォームのシステムメモリに直接アクセスするためのダイレクトメモリアクセス(DMA)インタフェース516を含んでいてもよい。DMAインタフェースにより、管理エンジン508は、オペレーティングシステム502のアクセスの許可を要求しなくても、メモリ504を利用できる。
【0048】
多くの実施形態では、ウィルス検出ソフトウェア506は、ウィルスパターンを含むファイルまたはデータブロックを求める。ウィルスパターンファイルは、ウィルスシグネチャファイルとも呼ぶ。説明を容易にするため、複数のウィルスパターンを1つのシグネチャファイルと呼ぶ。ウィルス検出ソフトウェア506はリモートコンピュータプラットフォーム510のリモートアンチウィルスサービス512からシグネチャファイルを受け取る。多くの実施形態では、管理エンジン508は、シグネチャファイルを用いて、そのシグネチャファイル内のパターンをプラットフォームに記憶された他のファイル内のパターンと比較する。パターンが一致するファイルがあれば、管理エンジン508はそのファイルにはウィルスが含まれていると判断する。多くのウィルスが存在し既知のパターンをすべてシグネチャファイルに格納するので、シグネチャファイルは大きなファイルとなる。図1と2を参照して説明した多くの実施形態では、管理エンジン508は、シグネチャファイルをローカルの管理エンジン508のファームウェア記憶に格納する。
【0049】
ローカルファームウェア記憶は大きなシグネチャファイルを記憶するにはサイズが十分でないかも知れない。それゆえ、シグネチャファイルはシステムメモリ504に格納してもよい。シグネチャファイルをシステムメモリ504に格納する場合、オペレーティングシステム502で実行されている悪意のプログラムやウィルスによりそのシグネチャファイルを危険にさらさないように、シグネチャファイルを守るセキュリティメカニズムがあると望ましい。
【0050】
多くの実施形態では、シグネチャファイルは記憶媒体520などのハードディスクドライブその他の大規模記憶装置に記憶できる。これらの実施形態では、管理エンジン508は、ウィルススキャンを開始すると、記憶媒体520からメモリ504にシグネチャファイルをロードする。
【0051】
多くの実施形態では、リモートコンピュータプラットフォーム510は、ベンダープライベート鍵518でシグネチャファイルに署名(sign)して、そのシグネチャファイルをローカルコンピュータプラットフォーム500にプッシュする。このように、署名されたシグネチャファイルは、署名されたシグネチャファイル522aとして記憶媒体520に記憶され、または署名されたシグネチャファイル522bとしてメモリ504に記憶される。ベンダープライベート鍵はウイルスソフトウェアベンダーに割り当てられた鍵である。ここで署名するとは、リモートコンピュータプラットフォーム510がファイルにプライベート鍵でハッシュをかけることを含む。ハッシュにより一意的なパターンが得られ、パブリック鍵を用いてこのパターンを検証できる。
【0052】
サインしたシグネチャファイル522は記憶媒体520(ファイル522a)またはメモリ504(ファイル522b)に送られる(通信A)。シグネチャファイルは、まず記憶媒体520に送られ、管理エンジン508がウィルススキャンに利用する時に、記憶媒体520からメモリ504に送られる。ウィルススキャンソフトウェア506は、署名されたシグネチャファイル522bがメモリ504にロードされたことを管理エンジン508に通知する。多くの実施形態では、ウィルス検出ソフトウェア506は、シグネチャファイル522bがロードされたメモリ中の具体的な場所(location)も通知してもよい。
【0053】
管理エンジン508は、メモリ504をチェックしてシグネチャファイル522bを探し(通信C)、管理エンジン508に記憶されたトラステッドパブリック鍵(trusted public key)524を用いてシグネチャファイルの信頼性を検証する。多くの実施形態では、トラステッドパブリック鍵524はIT管理者等のトラステッドパーティ(trusted part)により管理エンジン508内に格納される。シグネチャファイル522bが有効なら、管理エンジン508はシグネチャファイル内に格納されたパターンを用いてファイルにウィルススキャンを実行する。スキャンするファイルは、記憶媒体520内に格納されていてもよいし、メモリ504内に格納されていてもよいし(例えば、通信D)、プラットフォームの別の場所に格納されていてもよい。多くの実施形態では、管理エンジン508は、シグネチャファイルのブラックリスト(既知の悪意のパターン)を検索して、プラットフォームに記憶されているそのパターンを探す。
【0054】
多くの実施形態では、管理エンジン508は、ウィルスその他の悪意のコードがあることを見つけると、帯域外(OOB)チャネルを介してユーザまたはリモートエージェントにウィルス/悪意のコードがあることを警告する。
【0055】
図6は、実施形態によるシステムメモリにセキュアなウィルスパターンを記憶する方法を示すフロー図である。このプロセスは処理ロジックにより実行される。処理ロジックは、ハードウェア(例えば、汎用コンピュータシステム内のコンポーネント)、ソフトウェア(例えば、メモリ内に記憶された命令)、またはハードウェアとソフトウェアの組み合わせである。このプロセスに出てくるコンポーネントは、図5に示したコンポーネントに関連している。ここで図6を参照するに、本プロセスでは、最初に、ウィルス検出ソフトウェアの処理ロジックがソフトウェアベンダープライベート鍵により署名されたウィルスパターンをメモリにロードする(処理ブロック600)。
【0056】
ウィルス検出ソフトウェアの処理ロジックは、ウィルスパターン(署名されたファイル)をメモリにロードすると、ウィルスパターンをメモリにロードしたことをMEに通知する(処理ブロック602)。多くの実施形態では、この通知により、パターンを置いたメモリの場所も通知する。次に、MEの処理ロジックがリモートサーバまたはサービスからAVスキャン要求を受け取る(処理ブロック604)。
【0057】
MEの処理ロジックは、要求を受け取ると、ME内に記憶されたパブリック鍵を用いて、(例えば、パターンのインテグリティを検証して)有効な署名があるかメモリのシグネチャファイルをチェックする(処理ブロック606)。処理ロジックは、このチェックに基づきシグネチャがいるが有効か判断する(処理ブロック608)。
【0058】
MEの処理ロジックは、シグネチャファイルが有効でなければ、リモートAVサーバまたはサービスにアラート(alert)を送る。
【0059】
シグネチャファイルが有効であれば、MEの処理ロジックはそのシグネチャファイルを用いてウィルススキャンを実行する(処理ブロック612)。処理ロジックは、スキャン後、ブロック604に戻る。
【0060】
セキュアプラットフォームベースのハードウェアによるアンチウィルススキャンサービスをする装置、システム、及び方法の実施形態を説明した。これらの実施形態を具体的な例を参照して説明した。ここに説明した実施形態の幅広い精神と範囲から逸脱することなく、これらの実施形態に様々な修正や変更をできることは、本開示の利益を享受する者には明らかであろう。したがって、明細書と図面は例示であって限定ではないと考えるべきである。
なお、上記の実施形態に関し、以下の付記を記す。
(付記1)複数のファイルを記憶する記憶媒体と、
ウィルスシグネチャファイルにアクセスし、前記シグネチャファイル中のパターンを用いてアンチウィルススキャンを実行し、前記記憶媒体に記憶された前記複数のファイルのうちのファイルと比較し、前記スキャンの結果を、前記管理エンジンの外部にあるエージェントに報告する管理エンジンと
を有する装置。
(付記2)前記管理エンジンは、前記複数のファイルのうちのファイルのメタデータであって、前記複数のファイルのうちのファイルを前記記憶媒体内の記憶場所にマッピングするメタデータを記憶するファームウェアをさらに有する、
付記1に記載の装置。
(付記3)前記管理エンジンは、
前記メタデータでマッピングされた記憶場所を用いて、前記複数のファイルのうちのファイルに関するブロック情報を前記記憶媒体に要求し、
前記アンチウィルススキャンのために、セキュアな記憶場所に、前記ブロック情報から前記ファイルを再構成するようにさらに動作可能である、
付記2に記載の装置。
(付記4)前記複数のファイルのうちのファイルがいつ変更されたか判断し、前記変更されたファイルに対応するメタデータを前記管理エンジンのファームウェアに送るフィルタドライバをさらに有する、
付記3に記載の装置。
(付記5)前記ファームウェアは、前記記憶媒体からパーティションにファイルシステムをマウントするファイルシステムドライバと、前記記憶媒体と通信する記憶媒体ドライバとを記憶するようにさらに動作可能である、
付記1に記載の装置。
(付記6)前記記憶媒体へのアクセスを制御するコントローラをさらに有し、
前記管理エンジンは前記記憶媒体ドライバを用いて前記コントローラと通信する、
付記5に記載の装置。
(付記7)前記管理エンジンは、
前記ファイルのうち少なくとも1つにウィルススキャンを実行する、前記外部のエージェントからの要求を受け取り、
前記マウントされたパーティションを用いて前記ファイルのうち少なくとも1つに前記ウィルススキャンを実行するようにさらに動作可能である、
付記6に記載の装置。
(付記8)前記ファームウェアは前記シグネチャファイルを記憶するようにさらに動作可能である、
付記2に記載の装置。
(付記9)前記エージェントに割り当てられたプライベートセキュリティ鍵を用いて前記シグネチャファイルにセキュアに署名し、前記署名したシグネチャファイルを前記装置のメモリの一部に記憶するウィルス検出エージェントをさらに有する、
付記1に記載の装置。
(付記10)前記管理エンジンは、パブリックセキュリティ鍵を前記管理エンジン内にローカルに記憶し、前記メモリ内の前記署名されたシグネチャファイルの場所を決定し、前記記憶したパブリック鍵を用いて前記シグネチャファイルの有効性を決定するようにさらに動作可能である、
付記9に記載の装置。
(付記11)帯域外チャネルと、
前記チャネルを介してローカルコンピュータプラットフォームにウィルスシグネチャファイルを送る、前記帯域外チャネルに結合したリモートコンピュータプラットフォームとを有するシステムであって、
前記帯域外チャネルに結合した前記ローカルコンピュータプラットフォームは、
複数のファイルを記憶する記憶媒体と、
前記コンピュータプラットフォームから前記ウィルスシグネチャファイルを受け取り、前記シグネチャファイル中のパターンを用いてアンチウィルススキャンを実行し、前記記憶媒体に記憶された前記複数のファイルのうちのファイルと比較する管理エンジンとを有する、
システム。
(付記12)チップセットをさらに有し、
前記管理エンジンは前記チップセットに集積され、前記複数のファイルのうちのファイルのメタデータであって、前記ファイルを前記記憶媒体内の記憶場所にマッピングするメタデータを記憶するファームウェアを含む、
付記11に記載のシステム。
(付記13)前記管理エンジンは、
前記メタデータでマッピングされた記憶場所を用いて、前記複数のファイルのうちのファイルに関するブロック情報を前記記憶媒体に要求し、
前記アンチウィルススキャンのために、セキュアな記憶場所に、前記ブロック情報から前記ファイルを再構成するようにさらに動作可能である、
付記12に記載のシステム。
(付記14)前記ローカルコンピュータプラットフォームは、前記複数のファイルのうちのファイルがいつ変更されたか判断し、前記変更されたファイルに対応するメタデータを前記管理エンジンのファームウェアに送るフィルタドライバをさらに有する、
付記13に記載のシステム。
(付記15)前記ファームウェアは、前記記憶媒体からパーティションにファイルシステムをマウントするファイルシステムドライバと、前記記憶媒体と通信する記憶媒体ドライバとを記憶するようにさらに動作可能である、
付記11に記載のシステム。
(付記16)前記ローカルコンピュータプラットフォームは、前記記憶媒体へのアクセスを制御するコントローラをさらに有し、
前記管理エンジンは前記記憶媒体ドライバを用いて前記コントローラと通信する、
付記15に記載のシステム。
(付記17)前記管理エンジンは、
前記ファイルのうち少なくとも1つにウィルススキャンを実行する、前記外部のエージェントからの要求を受け取り、
前記マウントされたパーティションを用いて前記ファイルのうち少なくとも1つに前記ウィルススキャンを実行するようにさらに動作可能である、
付記16に記載のシステム。
(付記18)前記ファームウェアはさらに前記シグネチャファイルを記憶するように動作可能である、
付記12に記載のシステム。
(付記19)前記ローカルコンピュータプラットフォームは、
前記エージェントに割り当てられたプライベートセキュリティ鍵を用いて前記シグネチャファイルにセキュアに署名し、前記署名したシグネチャファイルを前記ローカルコンピュータプラットフォームのメモリの一部に記憶するウィルス検出エージェントをさらに有する、
付記11に記載のシステム。
(付記20)前記管理エンジンは、
パブリックセキュリティ鍵を前記管理エンジン内にローカルに記憶し、前記メモリ内の前記署名されたシグネチャファイルの場所を決定し、前記記憶したパブリック鍵を用いて前記シグネチャファイルの有効性を決定するようにさらに動作可能である、
付記19に記載のシステム。
(付記21)ローカルコンピュータプラットフォームからリモートコンピュータプラットフォームに、前記ローカルコンピュータプラットフォームの記憶媒体に記憶されたファイルにウィルススキャンを実行する要求を送る段階と、
前記リモートコンピュータプラットフォームから前記ローカルコンピュータプラットフォームの管理エンジンに、前記ファイルに対する要求を送る段階と、
前記管理エンジンが前記記憶媒体から前記ファイルを読み出す段階と、
前記管理エンジンから前記リモートコンピュータプラットフォームに前記ファイルを送る段階と、
前記ファイルが前記リモートコンピュータプラットフォームに到着したとき、前記ファイルをスキャンしてウィルスを探す段階と、
前記リモートコンピュータプラットフォームから前記ローカルコンピュータプラットフォームに前記ウィルススキャンの結果を送る段階と
を含む方法。
(付記22)前記ローカルコンピュータプラットフォームにあるフィルタドライバにより、前記ローカルコンピュータプラットフォームの記憶媒体にアクセスする段階をさらに含む、
付記21に記載の方法。
(付記23)前記管理エンジンで実行されているサービスを用いて前記フィルタドライバを評価して、前記フィルタドライバがセキュアか決定する段階をさらに含む、
付記22に記載の方法。
(付記24)前記管理エンジンで実行されているサービスを用いて前記ローカルコンピュータプラットフォーム内の重要なランタイムコンポーネントを評価して、前記重要なランタイムコンポーネントがセキュアであるか決定する段階をさらに含む、
付記21に記載の方法。
(付記25)前記重要なランタイムコンポーネントのうち少なくとも1つがセキュアでないと決定されたとき、前記記憶媒体からの前記ファイルの読み出しを中止する段階と、
前記リモートコンピュータプラットフォームにセキュリティ侵害通知を送る段階とをさらに含む、
付記24に記載の方法。

【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、
中央プロセッサと、
システムメモリと、
前記中央プロセッサとは独立に動作する第2のプロセッサを有し、前記中央プロセッサのパワー状態にかかわらず帯域外通信を受け取ることができる管理エンジンとを有し、前記管理エンジンは、
帯域外通信チャネルを介して、リモートコンピューティングデバイスの秘密鍵で署名されたウィルスシグネチャファイルを受け取り、
前記署名されたウィルスシグネチャファイルを前記システムメモリに記憶し、
前記リモートコンピューティングデバイスの前記秘密鍵に対応する、前記管理エンジンに記憶された公開鍵を用いて、前記署名されたウィルスシグネチャファイルを確認し、
前記署名されたウィルスシグネチャファイル中の1つ以上のパターンを用いて、前記コンピューティングデバイスに記憶された1つ以上のファイルにアンチウィルススキャンを実行する、コンピューティングデバイス。
【請求項2】
前記コンピューティングデバイスの前記システムメモリはそれに記憶されたオペレーティングシステムを含む、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記管理エンジンは、さらに、前記システムメモリに記憶された複数のファイルのうちの1つ以上のファイルのメタデータであって、前記1つ以上のファイルを前記システムメモリ内の1つ以上の記憶場所にマッピングするメタデータを記憶するファームウェアを有する、請求項1に記載のコンピューティングデバイス。
【請求項4】
さらに、前記システムメモリのファイルがいつ変更されたか判断し、前記変更されたファイルに対応するメタデータを前記管理エンジンファームウェアに送るフィルタドライバを有する、請求項3に記載のコンピューティングデバイス。
【請求項5】
前記管理エンジンは、前記システムメモリのファイルがいつ変更されたか判断できるプログラムのホワイトリストを含む、請求項4に記載のコンピューティングデバイス。
【請求項6】
前記管理エンジンは前記フィルタドライバを前記ホワイトリストと比較する、請求項5に記載のコンピューティングデバイス。
【請求項7】
前記管理エンジンは、前記ホワイトリストの関数としてセキュリティ確認プロセスにより前記フィルタドライバの信頼性を確認する、請求項5に記載のコンピューティングデバイス。
【請求項8】
前記フィルタドライバは、前記セキュリティ確認プロセスで確認されないと、前記管理エンジンに前記メタデータを送る許可を拒否される、請求項7に記載のコンピューティングデバイス。
【請求項9】
前記管理エンジンは、前記フィルタドライバが前記セキュリティ確認プロセスで確認されないと、前記管理エンジンの外部のエージェントに通知する、請求項8に記載のコンピューティングデバイス。
【請求項10】
前記管理エンジンは、前記管理エンジンの外部にあるエージェントに、前記アンチウィルススキャンの結果をレポートする、請求項9に記載のコンピューティングデバイス。
【請求項11】
前記ファームウェアは、前記システムメモリ内のセキュアパーティションに、前記システムメモリのファイルシステムをマウントするファイルシステムドライバと、前記署名されたウィルスシグネチャファイルとを、前記セキュアパーティションに記憶する、請求項4に記載のコンピューティングデバイス。
【請求項12】
前記コンピューティングデバイスのオペレーティングシステムは前記システムメモリに記憶される、請求項11に記載のコンピューティングデバイス。
【請求項13】
前記フィルタドライバは、前記管理エンジンにより許可されたプログラムであることを確認するセキュリティ確認プロセスにより確認されないと、前記管理エンジンへのアクセスを拒否される、請求項12に記載のコンピューティングデバイス。
【請求項14】
前記管理エンジンは、前記フィルタドライバが前記セキュリティ確認プロセスで確認されないと、前記管理エンジンの外部のエージェントに通知する、請求項13に記載のコンピューティングデバイス。
【請求項15】
前記管理エンジンは、前記管理エンジンの外部にあるエージェントに、前記アンチウィルススキャンの結果をレポートする、請求項1に記載のコンピューティングデバイス。
【請求項16】
システムであって、
帯域外チャネルに結合されたリモートコンピューティングデバイスであって、
前記リモートコンピューティングデバイスの秘密鍵でウィルスシグネチャファイルに署名し、
前記署名したウィルスシグネチャファイルを、前記帯域外チャネルを介して、ローカルコンピューティングデバイスの管理エンジンに送るリモートコンピューティングデバイスを有し、
前記ローカルコンピューティングデバイスは、
中央プロセッサと、
システムメモリと、
前記中央プロセッサとは独立に動作する第2のプロセッサを有し、前記中央プロセッサのパワー状態にかかわらず帯域外通信を受け取ることができる管理エンジンとを有し、前記管理エンジンは、
前記署名されたウィルスシグネチャファイルを前記システムメモリに記憶し、
前記リモートコンピューティングデバイスの前記秘密鍵に対応する、前記管理エンジンに記憶された公開鍵を用いて、前記署名されたウィルスシグネチャファイルを認証し、
前記署名されたウィルスシグネチャファイル中の1つ以上のパターンを用いて、前記コンピューティングデバイスに記憶された1つ以上のファイルにアンチウィルススキャンを実行する、システム。
【請求項17】
さらに、前記システムメモリのファイルがいつ変更されたか判断し、前記変更されたファイルに対応するメタデータを前記管理エンジンファームウェアに送るフィルタドライバを有し、
前記管理エンジンファームウェアは、前記システムメモリの複数のファイルのうちの1つ以上のファイルのメタデータであって、前記1つ以上のファイルを前記システムメモリ内の1つ以上の記憶場所にマッピングするメタデータを記憶する、請求項16に記載のシステム。
【請求項18】
前記フィルタドライバは、前記管理エンジンにより許可されたプログラムであることを確認するセキュリティ確認プロセスにより確認されないと、前記管理エンジンへのアクセスを拒否され、
前記管理エンジンは、前記フィルタドライバが前記セキュリティ確認プロセスで確認されないと、前記管理エンジンの外部のエージェントに通知する、請求項17に記載のシステム。
【請求項19】
前記ファームウェアは、前記システムメモリ内のセキュアパーティションに、前記システムメモリのファイルシステムをマウントするファイルシステムドライバと、前記署名されたウィルスシグネチャファイルとを、前記セキュアパーティションに記憶する、
請求項17に記載のシステム。
【請求項20】
前記フィルタドライバは、前記管理エンジンにより許可されたプログラムであることを確認するセキュリティ確認プロセスにより確認されないと、前記管理エンジンへ前記メタデータを送る許可を拒否される、請求項19に記載のシステム。
【請求項21】
コンピューティングデバイスの管理エンジンで、帯域外通信チャネルを介して、リモートコンピューティングデバイスの秘密鍵で署名されたウィルスシグネチャファイルを受け取るステップと、
前記署名されたウィルスシグネチャファイルを、前記コンピューティングデバイスのシステムメモリに記憶するステップと、
前記リモートコンピューティングデバイスの前記秘密鍵に対応する、前記管理エンジンに記憶された公開鍵を用いて、前記署名されたウィルスシグネチャファイルを確認するステップと、
前記署名されたウィルスシグネチャファイル中の1つ以上のパターンを用いて、前記システムメモリに記憶された1つ以上のファイルにアンチウィルススキャンを実行するステップと、を有する方法。
【請求項22】
前記コンピューティングデバイスのフィルタドライバを確認して、前記システムメモリのファイルがいつ変更されたか判断するステップと、
前記フィルタドライバが確認されないと、(i)前記管理エンジンにデータを送る許可を前記フィルタドライバに対して拒否し、(ii)前記管理エンジンの外部のエージェントに通知するステップとをさらに有する、請求項21に記載の方法。
【請求項23】
前記署名されたウィルスシグネチャファイルは、前記システムメモリ内のセキュアパーティションに記憶される、請求項21に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−198926(P2012−198926A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2012−134622(P2012−134622)
【出願日】平成24年6月14日(2012.6.14)
【分割の表示】特願2009−224629(P2009−224629)の分割
【原出願日】平成21年9月29日(2009.9.29)
【出願人】(593096712)インテル コーポレイション (931)