(57)【要約】      （修正有）【課題】入力−出力装置のマルウェア／ワーム／ウィルスに感染したファイルを削除できるようにする。【解決手段】プラットフォームは、プラットフォーム・ハードウェア１５０を含み、それがＩ／Ｏ装置１９０−Ｎのコンテンツを検査する。プラットフォーム・ハードウェア１５０は、マネージャビリティ・エンジン３４０および検査エンジンのようなコンポーネントを含み、Ｉ／Ｏ装置１９０−Ｎのコンテンツがホストによってサポートされたオペレーティング・システム１２０に提示される前であっても、Ｉ／Ｏ装置１９０−Ｎのコンテンツを検査するために使用される。検査プロセスによって、Ｉ／Ｏ装置１９０−Ｎのコンテンツが感染部分を含むことが示された場合、プラットフォーム・コンポーネントは、Ｉ／Ｏ装置１９０−Ｎのコンテンツの感染部分を削除する。【選択図】図３
2010244536.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・システム内で入力−出力（Ｉ／Ｏ）装置のコンテンツを検査する方法において、
前記Ｉ／Ｏ装置の前記コンテンツがオートプレイ用のオペレーティング・システムに提示される前に、ハードウェア・コンポーネントを使用して前記Ｉ／Ｏ装置の前記コンテンツを検査する段階を含むことを特徴とする方法。
【請求項２】
前記Ｉ／Ｏ装置からの割込みの受取りに応答して、前記Ｉ／Ｏ装置の前記コンテンツをハードウェア・ベースで走査するための要求を送信する段階を含むことを特徴とする請求項１記載の方法。
【請求項３】
前記Ｉ／Ｏ装置の前記コンテンツは、前記要求に対する許可信号を受信した後にローカル・アンチウイルス・エージェントに供給され、前記ローカル・アンチウイルス・エージェントは、前記オペレーティング・システムをサポートすることを特徴とする請求項２記載の方法。
【請求項４】
前記Ｉ／Ｏ装置の前記コンテンツは、前記要求に対する許可信号を受信した後にローカル・アンチウイルス・エージェントに供給され、前記ハードウェア・コンポーネントは、前記ローカル・アンチウイルス・エージェントをサポートすることを特徴とする請求項２記載の方法。
【請求項５】
ファイル・アロケーション・テーブル（ＦＡＴ−３２）フォーマットに基づいて前記Ｉ／Ｏ装置の前記コンテンツを格納する段階をさらに含むことを特徴とする請求項３記載の方法。
【請求項６】
前記ローカル・アンチウイルス・エージェントから情報を受け取る段階をさらに含み、前記情報は、前記Ｉ／Ｏ装置の前記コンテンツの感染部分を示すことを特徴とする請求項２記載の方法。
【請求項７】
前記感染部分が前記オペレーティング・システムに提示される前であっても、前記感染部分を削除する段階をさらに含むことを特徴とする請求項６記載の方法。
【請求項８】
前記Ｉ／Ｏ装置の前記コンテンツは、リモート・コンソールによってサポートされたエージェントに提供され、アウトオブバンド通信技術が、前記リモート・コンソールによってサポートされた前記エージェントに前記コンテンツを提供するために使用されることを特徴とする請求項２記載の方法。
【請求項９】
ファイル・アロケーション・テーブル（ＦＡＴ−３２）フォーマットに基づいて前記Ｉ／Ｏ装置の前記コンテンツを格納する段階と、
前記（ＦＡＴ−３２）フォーマット内に格納された前記Ｉ／Ｏ装置の前記コンテンツを圧縮する段階と、
を含むことを特徴とする請求項６記載の方法。
【請求項１０】
前記リモート・コンソールによってサポートされた前記エージェントから情報を受け取る段階をさらに含み、前記情報は、前記Ｉ／Ｏ装置の前記コンテンツの感染部分を示すことを特徴とする請求項８記載の方法。
【請求項１１】
前記感染部分が前記オペレーティング・システムに提示される前であっても、前記感染部分を削除する段階をさらに含むことを特徴とする請求項１０記載の方法。
【請求項１２】
入力−出力（Ｉ／Ｏ）装置のコンテンツを検査する装置において、
前記Ｉ／Ｏ装置に結合されたプラットフォーム・ハードウェアであって、前記プラットフォーム・ハードウェアは、前記Ｉ／Ｏ装置の前記コンテンツがオートプレイ用のオペレーティング・システムに提示される前に、前記Ｉ／Ｏ装置の前記コンテンツを検査することを特徴とする装置。
【請求項１３】
前記プラットフォーム・ハードウェアは、
前記Ｉ／Ｏ装置に結合された入力−出力コントローラであって、前記入力−出力コントローラは、挿入された前記Ｉ／Ｏ装置に応答して割込みを受け取る、入力−出力コントローラと、
前記入力−出力コントローラに結合されたバーチャライザ・エンジンであって、前記バーチャライザ・エンジンは、前記割込み信号の受信に応答して、前記Ｉ／Ｏ装置の前記コンテンツに対するハードウェア・ベースの走査の要求を送信する、バーチャライザ・エンジンと、
をさらに含むことを特徴とする請求項１２記載の装置。
【請求項１４】
前記プラットフォーム・ハードウェアは、前記バーチャライザ・エンジンに結合されたマネージャビリティ・エンジンをさらに含み、前記マネージャビリティ・エンジンは、マネージャビリティ・エンジン・コントローラをさらに含み、前記マネージャビリティ・エンジン・コントローラは、前記要求に対する許可信号の受信に応答して、前記オペレーティング・システムによってサポートされたローカル・アンチウイルス・エージェントへ前記Ｉ／Ｏ装置の前記コンテンツを提供することを特徴とする請求項１３記載の装置。
【請求項１５】
前記プラットフォーム・ハードウェアは、前記バーチャライザ・エンジンに結合されたマネージャビリティ・エンジンをさらに含み、前記マネージャビリティ・エンジンは、マネージャビリティ・エンジン・コントローラを含み、前記マネージャビリティ・エンジン・コントローラは、前記要求に対する許可信号の受信に応答して、前記プラットフォーム・ハードウェアによってサポートされたローカル・アンチウイルス・エージェントへ前記Ｉ／Ｏ装置の前記コンテンツを提供することを特徴とする請求項１３記載の装置。
【請求項１６】
前記マネージャビリティ・エンジン・コントローラは、ファイル・アロケーション・テーブル（ＦＡＴ−３２）フォーマットに基づいて前記Ｉ／Ｏ装置の前記コンテンツを格納することを特徴とする請求項１４記載の装置。
【請求項１７】
前記マネージャビリティ・エンジン・コントローラは、前記ローカル・アンチウイルス・エージェントから情報を受け取り、前記情報は、前記Ｉ／Ｏ装置の前記コンテンツの感染部分を示すことを特徴とする請求項１４記載の装置。
【請求項１８】
前記マネージャビリティ・エンジン・コントローラは、前記感染部分が前記オペレーティング・システムに提示される前であっても、前記感染部分を削除することを特徴とする請求項１７記載の装置。
【請求項１９】
前記マネージャビリティ・エンジン・コントローラは、リモート・コンソールによってサポートされたエージェントへ前記Ｉ／Ｏ装置の前記コンテンツを提供し、前記マネージャビリティ・エンジン・コントローラは、前記リモート・コンソールによってサポートされた前記エージェントに前記コンテンツを提供するためにアウトオブバンド通信技術を使用することを特徴とする請求項１４記載の装置。
【請求項２０】
前記マネージャビリティ・エンジン・コントローラは、
ファイル・アロケーション・テーブル（ＦＡＴ−３２）フォーマットに基づいて前記Ｉ／Ｏ装置の前記コンテンツを格納し、
前記（ＦＡＴ−３２）フォーマットに格納された前記Ｉ／Ｏ装置の前記コンテンツの圧縮を起動する、
ことを特徴とする請求項１７記載の装置。
【請求項２１】
前記マネージャビリティ・エンジン・コントローラは、前記リモート・コンソールよってサポートされた前記エージェントから情報を受け取り、前記情報は、前記Ｉ／Ｏ装置の前記コンテンツの感染部分を示すことを特徴とする請求項１９記載の装置。
【請求項２２】
前記マネージャビリティ・エンジン・コントローラは、前記感染部分が前記オペレーティング・システムに提示される前であっても、前記感染部分を削除することを特徴とする請求項２１記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力−出力装置のコンテンツに対するプラットフォーム・ベースの検査に関する。
【背景技術】
【０００２】
ユニバーサル・シリアル・バス（ＵＳＢ）フラッシュ・ドライブ、コンパクト・ディスク・リードオンリ・メモリ（ＣＤ−ＲＯＭ）、ペン・ドライブのような入力−出力装置は、残念なことに、企業内ネットワークやインターネット・ベースのネットワーク上にマルウェア／ワーム／ウィルスを撒き散らすための一般的な媒体として使用されている。例えば「Ｒａｖｍｏｎ」、「Ｏｒｋｕｔ  ｉｓ  ｂａｎｎｅｄ」、「Ｎｅｗ  Ｆｏｌｄｅｒ．ｅｘｅ」のような悪名高いウィルスが、ＵＳＢドライブを介して広がっている。市場で利用可能なほとんどのアンチウイルス・プログラムは、それらを検出することができず、たとえウィルスが検出されたとしても、アンチウイルス・プログラムは、感染したファイルを削除することができない。アンチウイルス・プログラムは、単に感染したファイルを隔離するだけである。
【図面の簡単な説明】
【０００３】
ここに記述された発明は、添付図面において、制限目的ではなく例示目的のために示される。図を単純かつ明瞭にするために、図に示された要素は、必ずしも同一縮尺で描かれていない。例えば、いくつかの要素の寸法は、明瞭化するために他の要素に比べて拡大される場合がある。さらに、適切であると考えられる場合には、対応または類似する要素を示すために、参照番号が図中で繰り返し用いられる。
【図１】一実施例に従って、コンテンツがオペレーティング・システム（ＯＳ）に提示される前に、ハードウェア内でＩ／Ｏ装置のコンテンツを検査するための技術をサポートするプラットフォーム１００を示す。
【図２】一実施例に従って、コンテンツがＯＳに提示される前に、ハードウェア内でＩ／Ｏ装置のコンテンツを検査するための技術を示すフローチャートである。
【図３】一実施例に従って、コンテンツがＯＳに提示される前に、ハードウェア内でＩ／Ｏ装置のコンテンツを検査するための技術をサポートするプラットフォーム・ベースのアーキテクチャを示す。
【図４】一実施例に従って、コンテンツがＯＳに提示される前に、図３のコンポーネントが合わさってＩ／Ｏ装置のコンテンツを検査する技術を示すフローチャートである。
【図５】一実施例に従って、コンテンツがＯＳに提示される前に、Ｉ／Ｏ装置のコンテンツの検査をサポートするシステム５００を示す。
【発明を実施するための形態】
【０００４】
以下の記述では、本発明についてのより完全な理解を提供するために、Ｉ／Ｏ装置のコンテンツに対するプラットフォーム・ベースの検査の実施例について述べる。以下の記述において、論理の実行、資源の分割または共有、または複製の実施、システム・コンポーネントのタイプおよび相互関係、および、論理の分割または統合の選択のような多くの特定の詳細事項について述べられる。しかしながら、当業者であれは、そのような特定の詳細事項がなくても本発明が実行可能であることを理解するであろう。他の例として、制御構造、ゲート・レベル回路、および完全なソフトウェア命令シーケンスについては、本発明を不明瞭にしないために詳細には示されない。当業者は、ここに含まれる記述によって、必要以上の実験を行なうことなく、適切な機能を実施することができるであろう。
【０００５】
明細書において「一実施例」、「ある実施例」、「実施例」と称する場合は、記述された実施例が特別な特徴、構造または特性を含む場合があることを示すが、全ての実施例が必ずしも特別な特徴、構造または特性を含むとは限らない。さらに、そのような語句は、必ずしも同じ実施例に関するものではない。さらに、特別な特徴、構造または特性がある実施例に関して記述されるとき、明示的に記述されているかどうかを問わず、そのような特徴、構造または特性が他の実施例に関しても影響を及ぼすことがあることは、当業者の知識の範囲内であると思料する。
【０００６】
本発明の実施例は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せにおいて実施することができる。本発明の実施例は、さらに、１またはそれ以上のプロセッサによって読み取られかつ実行される、機械読取り可能な媒体上に格納された命令として実施することができる。機械読取り可能な媒体は、機械（例えばコンピューティング装置）によって読取り可能な形式で情報を格納し、または送信するためのあらゆるメカニズムを含む。
【０００７】
例えば、機械読取り可能な媒体は、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク格納媒体、光格納媒体、フラッシュ・メモリ装置、電気的、光学的、音響的または他の同様の信号を含む。さらに、ファームウェア、ソフトウェア、ルーチン、および命令は、特定のアクションを実行するものとしてここでは記述される。しかしながら、そのような記述は単に便宜上のものであり、実際にはそのようなアクションは、コンピューティング装置、プロセッサ、コントローラ、ならびにファームウェア、ソフトウェア、ルーチンおよび命令を実行する他の装置に起因することが認識されるべきである。
【０００８】
一実施例において、プラットフォーム１００は、アプリケーション１１０、ホスト・オペレーティング・システム（ＯＳ）１２０、プラットフォーム・ハードウェア１５０、およびＩ／Ｏ装置１９０を含む。一実施例では、アプリケーション１１０は、ホストＯＳ１２０およびプラットフォーム・ハードウェア１５０によってサポートされた、１またはそれ以上のアプリケーションを含む。
【０００９】
一実施例では、プラットフォーム・ハードウェア１５０は、１またはそれ以上のプロセッシング・コア、チップセット、メモリ、および他の同様のハードウェア・コンポーネントを含む。一実施例では、プラットフォーム・ハードウェア１５０は、ファームウェア、マネージャビリティ・エンジン（ＭＥ）およびバーチャライザ・エンジン（ＶＥ）のようなコンポーネントをサポートする。一実施例では、プラットフォーム・ハードウェア１５０は、コンテンツがホストＯＳ１２０に提示される前であっても、Ｉ／Ｏ装置１９０−Ｎからの割込みの受取りに応答してＩ／Ｏ装置１９０−Ｎのコンテンツを検査する。一実施例では、ＯＳから独立したハードウェア・ベースの検査プロセスは、プラットフォーム１００がマルウェアまたはウィルスによって感染することを防止する。一実施例では、Ｉ／Ｏ装置のコンテンツの検査は、レガシー（既存の）Ｉ／Ｏ装置にも適用可能であり、当該検査プロセスによって、より満足度の高いユーザ体験が提供される。
【００１０】
図２のフローチャートには、コンテンツがホストＯＳ１２０に提示される前にＩ／Ｏ装置のコンテンツを検査するための、プラットフォーム１００の動作の実施例が示される。
【００１１】
ブロック２１０において、プラットフォーム・ハードウェア１５０は、Ｉ／Ｏ装置１９０−ＮのようなＩ／Ｏ装置から割込みを受け取り、その割込みの受取りに応答して、ブロック２５０への受け渡しを制御する。一実施例では、割込みは、プラットフォーム１００に挿入されたＵＳＢドライブまたはペン・ドライブのような入出力装置１９０−Ｎに応答して生成される。
【００１２】
ブロック２５０において、Ｉ／Ｏ装置１９０−ＮのコンテンツがホストＯＳ１２０に提示される前であっても、プラットフォーム・ハードウェア１５０は、Ｉ／Ｏ装置１９０−Ｎのコンテンツを検査する。一実施例では、プラットフォーム・ハードウェア１５０は、コンテンツが感染した部分を含む場合、Ｉ／Ｏ装置１９０−Ｎのコンテンツの感染部分を検出する。
【００１３】
ブロック２８０において、必要であれば、プラットフォーム・ハードウェア１５０は、感染部分がプラットフォーム１００に影響を与える前であっても、ユーザに警告を発するか、またはＩ／Ｏ装置１９０−Ｎのコンテンツの感染部分を削除する。
【００１４】
図３には、コンテンツがホストＯＳに提示される前にＩ／Ｏ装置のコンテンツの検査を可能にする、ハードウェアまたはファームウェアのコンポーネントを含むプラットフォーム・アーキテクチャ３００の実施例が示される。一実施例では、ホストＯＳ１２０は、ローカルＡＶエージェント３１５およびホスト・インターフェイス３１６をサポートする。一実施例では、プラットフォーム・ハードウェア１５０は、中央処理装置３２０およびチップセット３２５を含み、チップセット３２５は、プラットフォーム・コントローラ・ハブ（ＰＣＨ）３３０をサポートする。他の実施例では、チップセット３２５は、ローカルＡＶインターフェイス３１５をサポートするが、その場合、ホストＯＳ１２０はローカルＡＶインターフェイス３１５を含まなくてもよい。
【００１５】
一実施例では、ＣＰＵ３２０は、ホストＯＳ１２０をサポートする。一実施例では、プラットフォーム・コントローラ・ハブ（ＰＣＨ）３３０は、マネージャビリティ・エンジン（ＭＥ）３４０、バーチャライザ・エンジン（ＶＥ）３５０、およびＩ／Ｏコントローラ３６０を含む。
【００１６】
一実施例では、Ｉ／Ｏ装置１９０−Ｎがプラットフォーム３００に結合された後、Ｉ／Ｏコントローラ３６０は割込み信号を受信する。一実施例では、Ｉ／Ｏコントローラ３６０は、バーチャライザ・エンジン（ＶＥ）３５０に割込み情報を提供する。一実施例では、Ｉ／Ｏコントローラ３６０は、ＵＳＢベースのＩ／Ｏ装置から割込みを受け取り、例えば拡張ホスト・コマンド・インターフェイス（ＥＨＣＩ）規格に基づいて割込み情報を提供する。
【００１７】
一実施例では、バーチャライザ・エンジン（ＶＥ）３５０は、バーチャライザ・エンジン（ＶＥ）コントローラ３５４およびバーチャライザ・エンジン（ＶＥ）インターフェイス３５５を含む。一実施例では、ＶＥインターフェイス３５５は、ＶＥ３５０とＩ／Ｏコントローラ３６０との間の情報交換をサポートする。一実施例では、ＶＥインターフェイス３５５は、Ｉ／Ｏコントローラ３６０から割込み信号を受信し、その割込み信号の情報をＶＥコントローラ３５４に渡す。一実施例では、ＶＥインターフェイス３５５は、割込み信号の送信に応答して、ＶＥコントローラ３５４から走査要求を受け取り、その走査要求をＭＥ３４０に送る。一実施例では、ＶＥインターフェイス３５５は、ＭＥ３４０へのＭＥＣＩ接続をサポートするためのマネージャビリティ・エンジン・コマンド・インターフェイス（ＭＥＣＩ）、およびＩ／Ｏコントローラ３６０へのＥＨＣＩ接続をサポートするための拡張ホスト・コマンド・インターフェイス（ＥＨＣＩ）のようなインターフェイスを使用する。
【００１８】
一実施例では、ＶＥコントローラ３５４は、ドライバをサポートし、そのドライバによってＶＥコントローラ３５４は、Ｉ／Ｏ装置１９０−Ｎのコンテンツに対するハードウェア・ベースの走査を開始するための走査要求を生成することができる。一実施例では、ＶＥコントローラ３５４は、ＶＥインターフェイス３５５から受け取った割込み信号に基づいて、ハードウェア・ベースの走査要求を生成する。一実施例では、その走査要求によって、プラットフォームのユーザは、Ｉ／Ｏ装置１９０−Ｎのコンテンツの走査が実行されるべきかどうかに関する入力を提供することが可能になる。一実施例では、ＶＥコントローラ３５４は、ＶＥインターフェイス３５５へ走査要求を送る。
【００１９】
一実施例では、マネージャビリティ・エンジン（ＭＥ）３４０は、ＭＥインターフェイス３４１、ＭＥコントローラ３４２、圧縮ブロック３４３、ファイル・システム・ブロック３４５、およびアウトオブバンド（ＯＯＢ）３４８を含む。一実施例では、ＭＥインターフェイス３４１は、ＶＥ３５０およびローカルＡＶエージェント３１５との情報交換をサポートし、その情報はホストＯＳ１２０内またはプラットフォーム・ハードウェア１５０内のいずれかに供給されてもよい。一実施例では、ＭＥインターフェイス３４１は、走査要求を受け取り、その走査要求をＭＥコントローラ３４２へ送る。一実施例では、ＭＥインターフェイス３４１は、ＭＥコントローラ３４２がコンテンツを検索するためのコマンドを出した後にＩ／Ｏ装置１９０−Ｎのコンテンツを受け取り、そのコンテンツをＭＥコントローラ３４２に渡す。一実施例では、ＭＥインターフェイス３４１は、ＶＥ３５０へのＭＥＣＩ接続をサポートするためのマネージャビリティ・エンジン・コマンド・インターフェイス（ＭＥＣＩ）、およびホストＯＳ１２０へのＨＥＣＩ接続をサポートするためのホスト・エンベディッド・コントロール・インターフェイス（ＨＥＣＩ）のようなインターフェイスをサポートする。一実施例では、ＭＥインターフェイス３４１は、さらに、ローカルＡＶエージェント３１５がプラットフォーム・ハードウェア１５０内に提供された場合に、ローカルＡＶエージェント３１５とＭＥ３４０との間の通信をサポートするための所有権を主張できる（プロプラエタリ）プロトコルをサポートする。
【００２０】
一実施例では、ＭＥコントローラ３４２は、ユーザ・インターフェイス（ＵＩ）３０５を介してユーザへ走査要求を送る。一実施例では、ＭＥコントローラ３４２は、走査要求に応答してユーザからＩ／Ｏ装置１９０−Ｎのコンテンツの検査のための許可信号のようなユーザ入力を受け取るためにＵＩ３０５を使用する。一実施例では、ＭＥコントローラ３４２は、ユーザ入力に基づいて、検査されるＩ／Ｏ装置１９０−Ｎのコンテンツを検索する。一実施例では、ＭＥコントローラ３４２は、ＵＳＢタイプのＩ／Ｏ装置１９０−Ｎのコンテンツを検索するために、ＶＥコントローラ３５４によってサポートされたＥＨＣＩドライバを使用する。一実施例では、ＭＥコントローラ３４２は、ファイル・システム・ブロック３４５内にＩ／Ｏ装置１９０−Ｎのコンテンツを格納する。一実施例では、ファイル・システム・ブロック３４５は、ファイル・アロケーション・テーブル（ＦＡＴ−３２）フォーマットをサポートし、Ｉ／Ｏ装置１９０−Ｎのコンテンツは、ファイル単位で格納される。一実施例では、ＭＥコントローラ３４２は、Ｉ／Ｏ装置１９０−Ｎの各ファイルのハッシュを生成する。
【００２１】
一実施例では、ＭＥコントローラ３４２は、検査のために、Ｉ／Ｏ装置１９０−Ｎのコンテンツを、ローカルＡＶエージェント３１５またはリモート・コンソール３９０へ送る。一実施例では、ＭＥコントローラ３４２が、Ｉ／Ｏ装置１９０−Ｎのコンテンツの検査のためにローカルＡＶエージェント３１５を使用する場合、ＭＥコントローラ３４２は、ハッシュ値をローカルＡＶエージェント３１５へ送る。リモート検査プロセスを使用している間、一実施例では、ＭＥコントローラ３４２は、ネットワーク帯域幅を保存するために圧縮ブロック３４３を使用して、Ｉ／Ｏ装置１９０−Ｎのコンテンツを圧縮する。一実施例では、圧縮ブロック３４３は、例えば、Ｌｅｍｐｅｌ−ｚｉｖ  ＬＺ１、ＬＺ２アルゴリズム、あるいは他の不可逆的または可逆的アルゴリズムのような圧縮アルゴリズムを使用する。一実施例では、ＭＥコントローラ３４２は、ＭＥインターフェイス３４１を介して、圧縮したコンテンツを、アウトオブバンド通信ブロック（ＯＯＢ）３４８へ送る。一実施例では、ＯＯＢ３４８は、圧縮したコンテンツを、リモート・コンソール３９０にサポートされたＡＶアプリケーション／サービス３９５へ送るために、アウトオブバンド信号メカニズムを使用する。
【００２２】
一実施例では、ＭＥコントローラ３４２は、検査の結果を受け取り、その検査結果が、Ｉ／Ｏ装置１９０−Ｎのコンテンツ内に感染した部分が存在することを示す場合は、ユーザに警告を発する。一実施例では、ＭＥコントローラ３４２は、ローカルＡＶエージェント３１５またはＡＶアプリケーション／サービス３９５のいずれか１つからコンテンツの感染部分のログを受け取る。一実施例では、ＭＥコントローラ３４２は、削除プロセスを開始し、そこでＩ／Ｏ装置１９０−Ｎのコンテンツの感染部分が削除される。一実施例では、ＭＥコントローラ３４２は、ユーザまたはホストＯＳ１２０に感染部分の情報を供給する。
【００２３】
一実施例では、ホストＯＳ１２０は、ローカル・アンチウイルス（ＡＶ）・エージェント３１５およびホスト・インターフェイス３１６をサポートする。一実施例では、ホスト・インターフェイス３１６は、例えば、ＨＥＣＩ接続をプラットフォーム・ハードウェア１５０に供給するためのＨＥＣＩインターフェイスをサポートする。一実施例では、ローカルＡＶエージェント３１５は、ＨＥＣＩ接続上のプラットフォーム・コントローラ・ハブ（ＰＣＨ）３３０からＩ／Ｏ装置１９０−Ｎのコンテンツを受け取り、感染部分の存在を検出するためにＩ／Ｏ装置１９０−Ｎのコンテンツを処理する。一実施例では、ローカルＡＶエージェント３１５は、コンテンツ内にウィルス、マルウェア、またはワーム（感染した部分）が存在することを検出し、そのような感染部分の情報を、ＨＥＣＩ接続上のＭＥ３４０に提供する。一実施例では、ローカルＡＶエージェント３１５は、コンテンツを走査し、そして、ＰＣＨ３３０は、オートプレイのためにＵＳＢ装置のようなＩ／Ｏ装置１９０−ＮをホストＯＳ１２０へ提示する前に、ＰＣＨ３３０に結果を提供する。
【００２４】
他の実施例では、ローカルＡＶエージェント３１５は、プラットフォーム・ハードウェア１５０内に供給されたチップセットによってサポートされる。このような場合、ローカルＡＶエージェント３１５は、所有権を主張できる通信媒体上のＩ／Ｏ装置１９０−Ｎのコンテンツを受け取り、感染した部分の存在を検出する。一実施例では、ローカルＡＶエージェント３１５は、コンテンツのウィルス、マルウェア、またはワーム（感染部分）の存在を検出し、そのような感染部分の情報を、所有権を主張できる接続上のＭＥ３４０に提供する。一実施例では、ＰＣＨ３３０にサポートされたローカルＡＶエージェント１３５は、コンテンツを走査し、その結果をＭＥ３４０に提供する。一実施例では、そのようなアプローチによって、ＨＥＣＩ接続上でＩ／Ｏ装置１９０−Ｎのコンテンツの転送を回避することができる。
【００２５】
一実施例では、リモート・コンソール３９０は、アンチウイルス走査を実行する前に圧縮したコンテンツを解凍するＡＶアプリケーション／サービス３９５を含む。一実施例では、ＡＶアプリケーション／サービス３９５はコンテンツを検査し、ＡＶアプリケーション／サービス３９５が感染部分の存在を検出した場合、ＭＥ３４０へ感染部分のログを送る。
【００２６】
図４のフローチャートは、コンテンツがホストＯＳ１２０に提示される前にＩ／Ｏ装置１９０−Ｎのコンテンツを検査するための、図３のプラットフォーム・コンポーネントの動作を示すフローチャートである。
【００２７】
ブロック４１０で、Ｉ／Ｏコントローラ３６０は、Ｉ／Ｏ装置１９０−ＮのようなＩ／Ｏ装置から割込みを受け取り、割込み信号をＶＥ３５０へ渡す。
【００２８】
ブロック４２０で、ＶＥコントローラ３５４は、Ｉ／Ｏ装置１９０−Ｎのコンテンツのハードウェア・ベースの走査のために、ＵＩ３０５を使用して、ホストＯＳ１２０またはユーザに要求を送る。ブロック４３０で、ユーザがＩ／Ｏ装置１９０−Ｎのコンテンツを走査することを選択した場合、ＭＥコントローラ３４２は、ＶＥコントローラ３５４によってサポートされたドライバを使用して、Ｉ／Ｏ装置１９０−Ｎのコンテンツを検索する。
【００２９】
ブロック４５０で、ＭＥコントローラ３４２は、Ｉ／Ｏ装置１９０−Ｎのコンテンツを、ローカルＡＶエージェント３１５またはリモート・  コンソール３９０のＡＶアプリケーション／サービス３９５へ送る。
【００３０】
ブロック４６０で、ローカルＡＶエージェント３１５またはＡＶアプリケーション／サービス３９５は、感染部分の存在を見つけるためにＩ／Ｏ装置１９０−Ｎのコンテンツを検査する。一実施例では、ローカルＡＶエージェント３１５またはＡＶアプリケーション／サービス３９５は、Ｉ／Ｏ装置１９０−Ｎのコンテンツの感染部分の指摘を含む、情報（またはログ）を生成する。
【００３１】
ブロック４７０で、ローカルＡＶエージェント３１５またはＡＶアプリケーション／サービス３９５は、ＭＥ３４０に情報（あるいはログ）を提供する。
【００３２】
ブロック４８０で、ＭＥコントローラ３４２は、ユーザに警告を発し、次に、感染部分がオペレーティング・システムに提示される前であっても、感染部分を削除する。一実施例では、ＭＥコントローラ３４２は、Ｉ／Ｏ装置１９０−Ｎのコンテンツ内の感染部分の存在を示す情報を受け取った後に、感染した部分を削除する。
【００３３】
図５を参照して、コンピュータ・システム５００は、単一命令複数データ（ＳＩＭＤ）プロセッサを含む汎用プロセッサ５０２、およびグラフィックス・プロセッサ・ユニット（ＧＰＵ）５０５を含む。一実施例において、プロセッサ５０２は、機械読取り可能な格納媒体５２５内に拡張動作を提供するために、様々な他のタスクを実行することに加えて拡張動作を実行するか、あるいは命令シーケンスを格納する。しかしながら、命令シーケンスは、メモリ５２０または他の適切な格納媒体に格納されてもよい。
【００３４】
図５には、個別のグラフィックス・プロセッサ・ユニット５０５が示されているが、いくつかの実施例では、グラフィックス・プロセッサ・ユニット５０５は、拡張動作を実行するために使用される。コンピュータ・システム５００を動作させるプロセッサ５０２は、論理５３０に結合された１またはそれ以上のプロセッサ・コアである。論理５３０は、１またはそれ以上のＩ／Ｏ装置５６０に結合され、それはインターフェイスをコンピュータ・システム５００に提供する。論理５３０は、例えば、一実施例におけるチップセット論理である。論理５３０は、メモリ５２０に結合され、それは光学的、磁気的、または半導体ストレージを含む任意の種類のストレージである。グラフィックス・プロセッサ・ユニット５０５は、フレーム・バッファ５１０を介してディスプレイ５４０に結合される。
【００３５】
論理５３０は、マネージャビリティ・エンジン（ＭＥ）５３２およびバーチャライザ・エンジン（ＶＥ）５３６をサポートする。一実施例では、ＭＥ５３２は、図３に関して上述されたＭＥ３４２に類似し、またＶＥ５３６は、図３に関して上述されたＶＥ３５４に類似する。一実施例では、論理５３０は、Ｉ／Ｏ装置５５０−２のようなＩ／Ｏ装置から割込みを受け取り、ＶＥ５３６を起動する。一実施例では、割込みは、コンピュータ・システム５００に挿入されたＵＳＢドライブまたはペン・ドライブのようなＩ／Ｏ装置５５０−２に応答して生成される。
【００３６】
一実施例では、ＭＥ５３２およびＶＥ５３６は、Ｉ／Ｏ装置５５０−２のコンテンツが、プロセッサ５０２によってサポートされたホストＯＳ５０３に提示される前であっても、Ｉ／Ｏ装置５５０−２のコンテンツが検査されるようにする。一実施例では、コンテンツが感染している場合、リモート・コンソール５８０によってサポートされたローカルＡＶエージェント５０４またはエージェントが、コンテンツの感染部分を検出する。一実施例では、リモート・コンソール５８０のエージェントは、ネットワーク５７０を用いてコンテンツをエージェントへ送ることによって使用される。一実施例では、コンピュータ・システム５００は、ネットワーク・インターフェイス５６０を使用してネットワーク５７０に結合される。一実施例では、ＭＥ５３２は、コンテンツ内で感染部分を検出した後、ユーザに警告を発するか、あるいはＩ／Ｏ装置５５０−２のコンテンツの感染部分を削除する。
【００３７】
本発明のいくつかの特徴が、実施例に関して記述された。しかしながら、その記述は、制限目的であると解釈すべきではない。本発明の実施例の様々な修正は、本発明に関係する当業者に明白であるような他の実施例と同様に、本発明の精神および範囲内にあると考えられる。
【符号の説明】
【００３８】
１００  プラットフォーム
１１０  アプリケーション
１２０  オペレーティング・システム
１５０  プラットフォーム・ハードウェア
１９０  入力−出力（Ｉ／Ｏ）装置
３００  プラットフォーム・アーキテクチャ
３０５  ユーザ・インターフェイス
３１５  ローカル・アンチウイルス（ＡＶ）・エージェント
３１６  ホスト・インターフェイス
３２０  中央処理装置（ＣＰＵ）
３２５  チップセット
３３０  プラットフォーム・コントローラ・ハブ（ＰＣＨ）
３４０  マネージャビリティ・エンジン（ＭＥ）
３５０  バーチャライゼーション・エンジン（ＶＥ）
３６０  Ｉ／Ｏコントローラ
３９０  リモート・コンソール
５００  コンピュータ・システム
５０２  プロセッサ
５０５  グラフィックス・プロセッサ・ユニット（ＧＰＵ）
５１０  フレーム・バッファ
５２０  メモリ
５３０  論理
５４０  ディスプレイ
５５０  入力−出力（Ｉ／Ｏ）装置
５６０  ネットワーク・インターフェイス
５７０  ネットワーク
５８０  リモート・コンソール
【図１】
2010244536.tif 000003
【図２】
2010244536.tif 000004
【図３】
2010244536.tif 000005
【図４】
2010244536.tif 000006
【図５】
2010244536.tif 000007
【外国語明細書】
2010244536000001.pdf