JP2006012164A - アイテムストア用のアンチウイルス - Google Patents

アイテムストア用のアンチウイルス Download PDF

Info

Publication number
JP2006012164A
JP2006012164A JP2005180853A JP2005180853A JP2006012164A JP 2006012164 A JP2006012164 A JP 2006012164A JP 2005180853 A JP2005180853 A JP 2005180853A JP 2005180853 A JP2005180853 A JP 2005180853A JP 2006012164 A JP2006012164 A JP 2006012164A
Authority
JP
Japan
Prior art keywords
item store
store
plug
item
scan
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
JP2005180853A
Other languages
English (en)
Other versions
JP4897246B2 (ja
Inventor
Balan Sethu Raman
セス ラマン バラン
Johannes Klein
クライン ヨハネス
Mihai Costea
コスティー ミハイ
Nigel R Ellis
アール.エリス ニゲル
Rohan Kumar
クマール ロアン
Sameet H Agarwal
エイチ.アガルワル サミート
Sanjay Anand
アナンド サンジェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006012164A publication Critical patent/JP2006012164A/ja
Application granted granted Critical
Publication of JP4897246B2 publication Critical patent/JP4897246B2/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
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 アイテムストアの一部として(1つまたは複数の)アンチウイルスAVプラグインを統合するためのシステムおよび方法を提供すること。
【解決手段】 (1つまたは複数の)AVプラグインの操作用のセマンティクスが、リレーショナルアイテムストアによって、アイテムストアに関連付けられたメタデータコンポーネントおよびスキャンコンポーネントを採用することを通じて提供される。メタデータコンポーネントは、データのスキャンの時間およびスキャンされた各アイテム用の結果を表すことができる、アイテムストアに関連付けられている署名値を提供することができる。スキャンコンポーネントは、ベンダによって提供されるAVプラグインによるウイルススキャンおよび除去の双方用に同期および/または非同期モードでデータストア内のアイテムをキューに入れることを提供することができる。
【選択図】 図1

Description

本発明は一般にアンチウイルス防御に関し、より詳細には、リンクおよび属性の観点からアイテムについて記述できる、アイテムストア環境内での(1つまたは複数の)アンチウイルスプラグインの統合を容易にするシステムおよび方法に関する。
コンピュータ技術(たとえばマイクロプロセッサの速度、メモリ容量、データ転送帯域幅、ソフトウェアの機能性など)におけるますますの進歩は、一般にさまざまな産業においてコンピュータの活用が増加する要因となっている。しばしばサーバのアレイとして構成される、これまでにないようなより強力なサーバシステムが、たとえばワールドワイドウェブなどの外部ソースから発生する要求にサービスを供与するためにしばしば提供される。ローカルなイントラネットシステムがより高機能になり、それによってより大きなネットワーク負荷のサービスおよび関連するアプリケーションを要求するようになるにつれて、内部のシステムの要求もそれに応じて増大している。そういうものとして、多くのビジネスデータが管理システムの下でデータストアに保存されている。
さらに、利用可能な電子データの量は絶え間なく増大しており、ユーザフレンドリーで迅速なデータ検索および取出しを容易にする管理しやすい方法で、そうしたデータをデータストアに保存することが、これまでにないほどますます重要になっている。一般に、典型的なデータストアは、たとえばコンピュータプログラムがデータの希望の部分を迅速に検索および選択できるような構造のデータを有する情報の体系化された集合体と言うことができる。
データストア内のデータは1つまたは複数のテーブルを介して体系化することができ、それぞれのテーブルはレコードのセットを含み、1つのレコードはフィールドのセットを含むことができる。レコードは一般にテーブル内の行としてインデックスを付けられ、レコードのフィールドは一般に列としてインデックスを付けられ、これによってインデックスの行/列のペアがテーブル内の特定のデータを参照することができる。通常、そうしたデータストアは、内部に情報の「フィールド」を有する「レコード」として保存された関連する情報の体系化された集合体とみなすことができる。たとえば財務のデータストアは、売掛金、未払金、顧客情報などの財務取引用のレコードを有することができる。管理またはオペレーティングシステムは通常、実際の物理的なデータストア自体(すなわちストレージデバイス上に実際に保存されているデータ)とシステムのユーザとの間にソフトウェアクッションまたはレイヤを提供することができる。そういうものとして、データストアは、基礎をなすハードウェアレベルの詳細に関する心配事からユーザを保護することができる。一般に、データにアクセスするためのユーザからの要求は、すべてシステムマネージャによって処理される。たとえば、情報をデータファイルに追加すること、情報をデータファイルから削除すること、情報をそうしたファイルから取り出すこと、情報をそうしたファイル内で更新することなどをすべて、基礎をなすシステムの実装に関する知識をユーザが持ち合わせていなくても行うことができる。
同時に、従来のデータストアおよびオペレーティングシステムは通常、レジストリ、イベントログメッセージ、連絡先情報、および電子メールを含むデータ用の複数の互換性のないストレージに依存するか、または単にイメージおよびオーディオなどのデータ用の複数のフラットファイルを使用している。たとえば従来のデータストアでは、保存されているコンテンツは、たとえ何らかのレベルで相互に関連していても、一般に別々のエンティティとして扱われる。したがって多数のアイテムが存在する場合、プロパティおよびコンテンツに基づいて特定のアイテムを検索するための柔軟で効率的なメカニズムを有することが重要となることがある。たとえば知識労働者にとって、フォーマットとは無関係に、すなわち特定のコンテンツがどのタイプのファイルか、それを作成したのはどのアプリケーションかにかかわらずにコンテンツを検索できることが望ましい場合がある。
リレーショナルオブジェクトに基づいて動作する新たなファイルシステムを前提とした新たな問題が発生する可能性がある。たとえば、ウイルスがそうしたファイルシステム内に自分自身を格納できる新たな方法が存在する可能性がある。通常、従来のウイルスチェックは、一般にアンチウイルスプログラムが実行されているのと同じコンピュータ内に保管されているファイル用にウイルスチェックを実行することに限定される。したがってエンドユーザおよびWebサイトを含む特定のエンティティは、自分のコンピュータ上にローカルに保管されているファイルには、ある程度ウイルスチェックを実行できる場合があるが、他のエンティティの制御下にあるファイルに関連するウイルスのリスクについては測定できない場合が多く、そうしたファイルでは、悪質なコードが、暗号化された文字列を使用してストア内に侵入することができ、こうした文字列はクライアントスペース内で復号され、電子メールを介して増殖することになる。したがって従来のファイルシステムにとって、ウイルスはファイルの1つまたは複数のストリーム内に住みつくことができ、それにもかかわらず、こうしたものは単に1つのファイルにすぎないのである。
一方、リレーショナルアイテムストアでは、コンテンツは1つのアイテム内で存続することができ、1つのアイテムは複数のプロパティを含むことができ、各プロパティはさまざまな他のアイテムと関連付けられている。したがってアイテムストアに保存してストアから読み出すことは、多くのアイテムの多くのプロパティにわたって集約できる結果を含むことができる。これは、多くのプロパティを有する更新パスまたは読み取りパスを作成することなど、異なるパラダイムを作成することができる。ウイルスは、「断片」内に自分自身を隠すためのそうした構成を採用することができ、たとえばウイルスは、暗号化された本体「X」をオブジェクトのプロパティ内に格納することができ、ストアにクエリを行い、アンチウイルスプログラムに対して無害に見せることのできるイメージ用のメタデータなどの暗号化されたプロパティをクライアント上で復号することによって増殖することができる。
ウイルスの本体を複数のプロパティおよび複数のアイテムにわたって分散することによって、アイテムストアはウイルスストアとなるおそれがある。ウイルスは、別々に配置することによって細かい断片に分割して格納することができ、自分自身を複数のアイテムのプロパティに書き込むことができ、うっかりそうした断片を集約するクエリを行うと、ウイルスを実行することにつながる。したがって更新または読み取りパス内に介入する従来のフィルタモデルは、もはや一般にそうしたリレーショナルアイテムストアの構成には適していない。
したがって、アイテムストアの運用に関連する従来のシステムおよび方法に関する前述の欠点を克服する必要がある。
以降では、本発明の1つまたは複数の態様について基本的な理解を提供するために本発明の簡略化した概要を提示する。この概要は、本発明を網羅的に概観したものではない。また本発明の鍵となる要素や重要な要素を明らかにすることや、本発明の範囲を画定することを意図するものではない。むしろこの概要の唯一の目的は、後述するさらに詳細な説明への前置きとして本発明のいくつかの発想を簡略化した形態で提示することである。
本発明は、リレーショナルアイテムストアに関連付けられたメタデータコンポーネントおよびスキャンコンポーネントを採用することによって、(1つまたは複数の)アンチウイルス(AV)プラグインの予想およびセマンティクスをアイテムストアに組み込むシステムおよび方法を提供する。こうしたメタデータコンポーネントは、いつコンテンツをスキャンするか、どのようにスキャンするか、いつ無効にするかなどに関してアンチウイルスプラグインに指示するためのアイテムストア内のルールセットおよび/または論理を規定することができる。またメタデータコンポーネントは、アイテムストアに割り当てられた署名値を提供することもでき、この署名値は、データのスキャンの時間と、そうしたスキャンの結果(たとえば、感染なし、感染の疑いあり、感染、スキャン不要など)を識別するためにリレーショナルアイテムストア内で指定されたスペース(たとえば、指定された列)とを表すことができる。アプリケーションプログラムインターフェース(API)は、必要に応じてプラグインを呼び出し、署名を更新し、新たな署名値を設定するために提供することができる。その上、速度と正確さのバランスをとるために、さまざまなスキャン動作を導入することができ、そこではアイテムは、クエリの結果と、完全にはスキャンされていない結果のリスクとの対比としてユーザに提供することができる。たとえばユーザは、完全にスキャンされた結果に結び付くすべてのコンテンツを有するという利点を得るために、進んで正確さを犠牲にする(たとえば、クエリに応答して不完全な結果を受け入れる)場合がある。
その上、アイテムストア内のさらなるルールセットはアイテム間のリンクを確立することができ、このルールセットによって、さらにリンクの定義を可能にすることができ、データ構造を解析してテキストから要素へのリンクを決定するのに必要な情報を提供することができる。スキーマを採用して、必要なルールセットを提供し、必要な情報を供与することができる。たとえばドキュメントオブジェクトモデルを提供して、インメモリ表現用に関連するエンティティのコンポーネントを表すことができる。その上、スキャンコンポーネントは、AVプラグインによるスキャンおよび除去の双方用の同期および/または非同期モードでのデータストア内のアイテムのキューイングを提供することができる。
本発明の一態様によれば、アイテムストア(およびそのAVプラグイン)と従来型のファイル(たとえば、データストリームファイルおよびアプリケーション)との下位互換性を提供するために、多重UNCプロバイダ(MUP)上に積み重なったフィルタドライバの構成を提供することができる(汎用命名規則(UNC)は、ファイルを特定するマシンに依存しない手段を提供するファイル用の命名規則を提供することができる)。このように直接フィルタコンポーネントをMUP上に階層化することによって、UNCのネームスペース用の入出力要求に対してサービスを提供するファイルシステムコンポーネントが提供される。したがって、アイテムストアにとって利用可能なコンテンツ用と同じ視認性をAVプラグイン用に提供することができる。
本発明の関連する態様では、AVプラグインとリレーショナルアイテムストアエンジンとの対話の一部として、インターフェースのセットを提供することができる。こうしたインターフェースは、たとえば提供されたAVプラグインとリレーショナルアイテムストアをリンクするためにベンダによって作成できるルーチン用の一連のスタブおよび/またはプレースホルダの形態を取ることができる。
前述の目的および関連する目的を達成するため、本発明は、以降で十分に説明する特徴を含む。後述の説明および添付の図面によって、本発明の特定の例示的な態様について詳細に説明する。しかしこれらの態様は、本発明の原理を採用できるさまざまな方法のごく一部を示したものである。本発明の他の態様、利点、および新奇な特徴は、後述する本発明の詳細な説明を図面と併せて考察すれば明らかになるであろう。
図面を参照して本発明について説明する。図面では、同様の要素を指すために全体を通して同様の参照番号が使用されている。以降の説明では、説明上の目的から、本発明の完全な理解を提供するために多くの特定の詳細について述べる。しかし、これらの特定の詳細を伴わずに本発明を実施できることは明らかである。他の例では、本発明の説明を容易にするために、よく知られた構造およびデバイスがブロック図の形態で示されている。
本出願で使用される「コンポーネント」、「ハンドラ」、「モデル」、「システム」などの用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを指すことを意図している。たとえばコンポーネントは、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができるが、これらには限定されない。実例としては、サーバ上で実行されているアプリケーションおよびそのサーバの双方をコンポーネントとすることができる。1つまたは複数のコンポーネントは1つのプロセスおよび/または実行スレッド内に常駐することができ、1つのコンポーネントは1台のコンピュータに集中させるか、および/または複数のコンピュータに分散することができる。またこれらのコンポーネントは、その上にさまざまなデータ構造を保存しているさまざまなコンピュータ可読メディアから実行することもできる。これらのコンポーネントは、1つまたは複数のデータパケット(たとえばローカルシステムや分散システム内の別のコンポーネントと対話する、および/またはインターネットなどのネットワークを経由して信号を介して他のシステムと対話する1つのコンポーネントからのデータ)を有する信号によってなど、ローカルプロセスおよび/またはリモートプロセスを介して通信することができる。
はじめに図1を参照すると、本発明の一態様による、アンチウイルス(AV)プラグイン130と対話するリレーショナルアイテムストア100のブロック図が示されている。データアイテムストア100は通常、3つの特徴、すなわちアイテム、リンク、および属性を採用するリレーショナルデータベースとすることができる。アイテムは、クライアントなどのユーザがアイテムとして表したいと望むどんな「もの」も表すことができ、アイテムIDによって一意に識別することができる。リンクは、2つのアイテム間に名前付きの指定された関係を提供する。属性は、ラベル付きの値をアイテムと関連付ける。アイテムは、リンクおよび属性の観点から記述される。リンクはアイテムの関連を表し、属性はアイテムに関する他の情報を表す。
さらに、こうしたリレーショナルデータストア環境では、データは1つまたは複数のテーブル内の行として保存することができる。データストアには、トランザクションTからT(Nは整数)の形態の1つまたは複数のクエリによってアクセスすることができる。こうしたトランザクションは、たとえばデータアイテムストア100内のデータの行レベルでの操作を含むことができる。トランザクション112、114、116は、データストアによって供与された極めて重要なデータへの差別的なアクセスのレベル(たとえば読み取り専用アクセス、読み取り/書き込みアクセスなど)に基づいてデータストアへのアクセスを有することができる。
本発明のアイテムストア100は、メタデータコンポーネント110およびスキャンコンポーネント120を含むことができる。メタデータコンポーネント110は、アンチウイルスプラグイン130の動作を指示するためのルールセットおよび/または論理をデータストア110内に提供することができる。メタデータコンポーネント110は、いつスキャンするか、どのようにスキャンするか、いつ無効にするかなど、AVプラグイン130用のセマンティクスを提供することができる。
さらにメタデータコンポーネント110は、データストア100上でウイルススキャンが実行された時点で分かっているその時点のウイルスのステータス用の許容可能なバーレベル用の指定を提供することができる。たとえば、許容可能なバーレベルはタイムスタンプによって指定することができ、ストアには、"VIRUSSIGNATURETS"に割り当てられた値を有するグローバルなAV署名のタイムスタンプを割り当てることができる。
署名を更新して新たな署名値を設定するためのプラグインを呼び出すためにアプリケーションプログラムインターフェース(API)を起動するための典型的なデータ定義言語(DDL)は、
GetNewVirusSignature()
GetCurrentVirusSignature()
を含むことができる。
本発明の一態様によれば、データストア100のテーブルに関連付けられた行は、2つのプロパティ、すなわち「直近のウイルス署名スキャン」および「スキャン状態」を定義するための2つの列を含むことができ、これについては以降でより詳細に説明する。簡単に言えば、「直近のウイルス署名スキャン」は、最後のアンチウイルススキャン(AV)が完了した行ごとに保存されたタイムスタンプを表し、「スキャン状態」は、行のコンテンツが、「感染なし」、「感染の疑いあり」、または「感染」であるかどうかを表す。行が作成される際、システムは自動的に「直近のウイルス署名スキャン」の値をゼロに、行のコンテンツの状態を「感染の疑いあり」に設定する。アプリケーションプログラムインターフェース(API)を提供して、アンチウイルスプラグイン130を呼び出すことができ、アンチウイルスプラグイン130は、必要に応じてデータストア100をスキャンし、署名を更新して新たな署名値を設定するために使用される。したがってメタデータコンポーネントは、アイテムストア100に関連付けられている署名値を提供することができ、この署名値は、データのスキャンの時間と、そうしたスキャンの結果(たとえば、感染なし、感染の疑いあり、感染)を識別するためにリレーショナルストア内で指定されたスペースとを表すことができる。アンチウイルスチェックの採用をシステムのデフォルトとすることができる一方で、ユーザが指定のアイテムをスキャンしないことを選択した場合に「チェック不要な」メタデータコンポーネントを指定することもできることを理解されたい。
アイテムストア100は、プラグイン130を信頼性の高い方法で採用するスキャンコンポーネント120をさらに含むことができる。スキャンコンポーネントは、サードパーティーベンダによって提供されるAVプラグインによるスキャンおよび除去の双方用に同期および/または非同期モードでのアイテムストア内のアイテムのキューイング(たとえば、最近の更新、変更など)を提供することができる。
次いで図2を参照すると、ブロック図は、非同期キューイングコンポーネント210(バックグラウンドスキャン)および同期キューイングコンポーネント220(オンアクセススキャン)をさらに含むものとしてスキャンコンポーネント120を示している。一般にAVプラグインは、アイテムストアに入る際に新たな断片ウイルスを検出することはできない。したがってAVプラグインは、アイテムストア200の全コンテンツを分析できるようにしている場合がある。したがってAVプラグインは、たとえユーザがアイテムストア200の特定のドメインに接続されている可能性があるとしても、そうした特定のドメインには限定されない。その上、アイテムストア200は、AVプラグインによるスキャン用にアイテムストアのコンテンツをキューに入れるスケジューリングコンポーネント230をさらに採用することができる。またスケジューリングコンポーネント230は、図2では別個のコンポーネントとして示されているが、スキャンコンポーネント120の一部とすることもできることを理解されたい。こうしたコンポーネントは、コンテンツをキューに入れること/キューから外すこと、AVプラグインを呼び出すこと、および結果に基づいてメタデータコンポーネントを更新することができる。
通常アイテムストア200は、新たなアイテムまたは更新されたアイテムをウイルススキャンまたはウイルス除去用に自動的にキューに入れることによって「バックグラウンドスキャン」キュー用の非同期キューイングコンポーネント210を採用することができる。キュー内のアイテムは、アイテムストア200によって、たとえばスケジューリングコンポーネント230によってキューから外すことができ、適切なAVインターフェースを同期的に呼び出すことができる。
AVプラグインによって処理するためのスキャンされないアイテムのスケジュールは、「ItemHasVirus」API内に提供することができる。こうした呼は同期的に返すことができ、アイテムストア200は、この呼のブール演算の結果に基づいてアイテムストア内の関連するAVメタデータコンポーネントを更新することができる。たとえばインターフェースが「真」の値を返す場合、オブジェクトはウイルスを含んでいると指定することができ、その行用のAVステータスは次のように更新される。
lastVirusSignatureScanTS=@@VIRUSSIGNATURETS AND scanState="infected"
またインターフェースが「偽」の値を返す場合、そのオブジェクトにはウイルスがいないことが分かる。したがって、その行用のAVステータスは、lastVirusSignatureScanTS=@@VIRUSSIGNATURETS and scanState="clean"に更新することができる。
次いでストア内の同期キューイングコンポーネント220(オンアクセススキャン)を参照すると、アイテムストア上で読み取りが実行される際は常に、結果が通常は「感染なし」のスキャン状態を有するアイテムのみを含むよう通常は保証されるように、こうしたコンポーネントを採用することができる。したがって読み取りパス上の同期AVは通常、クエリを処理している間に実際のウイルスが検出されない限り、クライアントが最新の結果セットを受領できることを保証することができる。とはいえ、そうした保証が高くつく可能性のある場合も存在する。たとえば第1のユーザが複数の新たな写真をアイテムドメイン内に挿入し、第2のユーザが言葉のドキュメントを検索しているとする。この第2のユーザには、クエリ側が第1のユーザによる写真の挿入に対するスキャンを有効にする間待機するよう求めることができる。
同時に、クエリを実行する一連のアイテムが完全にAVスキャンされなければ、クエリを実行するたびに結果は不完全なものとなる可能性がある。したがって本発明は、アプリケーションがどのように動作すべきかを決定する「セッション変数」の設定に基づいて、同期キューイングコンポーネントの一部として「強制的な」スキャンを導入する。アプリケーションは楽観的な手法に依存し、たとえAVプラグインがアイテムストア200のコンテンツをすべて呼び出したわけではないためにトランザクションの結果が不完全であっても、その結果を受け入れることができる。あるいは、クエリの結果に潜在的に影響を与えうるアイテムのいくつかがスキャンされていないことをアイテムストア200が発見した場合、そのスキャンは脇からの影響を受けて、そうしたコンテンツをトランザクションの結果に含める。
そういうものとして、アイテムをインラインでチェックすべきかどうかを制御するために、新たなセッションレベルセットオプション@@VIRUSCHECKONREADが導入される。そうしたフィールドが「0」の値を割り当てられる場合、読み取りクエリは通常、scanState="clean"を有する行を考慮に入れるだけである。同様に、「1」の値を割り当てられる場合、scanState != "clean"を有する行がクエリの実行中に強制的にスキャンされる。
次いで、以下から構成されるように述部を変更することができる。
WHERE (lastVirusSignatureScanTS=@@VIRUSSIGNATURETS AND scanState="clean")
OR (@@VIRUSCHECKONREAD=1 AND lastSignatureScan !=@@VIRUSSIGNATURETS AND ItemHasVirus(itemId)=0))
同様の述部は、エクステンションおよびリンクなど、ストア内で存続する他のデータ上で評価することができる。この場合、関数ExtensionHasVirus()またはLinkHasVirus()が呼び出されることになる。
本発明のさらなる態様では、スケジューリングコンポーネント230は、AVプラグインのCleanItemAPIによる処理用に、感染しているアイテムをスケジュールに入れることができる。こうした呼は同期的に戻ることができ、AVメタデータは、この呼のブール演算の結果に基づいてアイテムストア200内で更新することができる。たとえばインターフェースが「真」の値を返した場合、そのオブジェクトは感染していない。次いで、その行用のAVステータスは、lastVirusSignatureScanTS=@@VIRUSSIGNATURETS、およびscanState="clean"用の値に更新することができる。一方、インターフェースが「偽」の値を返す場合、通常そのオブジェクトは感染している可能性があり、その行用のAVステータスは、lastVirusSignatureScanTS=@@VIRUSSIGNATURETS、およびscanState="infected"用の値に更新される。
図3は、本発明の一態様によるバックグラウンドスキャン用の方法300を示している。はじめに310において、アイテムストアは、アイテムストアのコンテンツ上のAVプラグインの結果に基づいてメタデータコンポーネントの更新を完了する。次いで315において、最近のAVプラグインのスキャンを反映するために、アイテムストアのストア全体にわたる署名が更新される。次いで320において、アイテムストアは、その後のAVスキャンのために期限切れのアイテムをキューに戻すことができる。その上、最近の更新は、そうした優先キュー上で待機することもできる。詳細に前述したように、325において、キュー内のアイテムはアイテムストアによってキューから外すことができ、適切なAVインターフェースを同期的に呼び出すことができる。そして方法は、アイテムストアがAVプラグインの結果に基づいてメタデータコンポーネントの更新を完了すると、ステップ310にループバックする。本明細書では、さまざまな事象および/または行為を表す一連のブロックとして典型的な方法について記載および説明しているが、本発明は、記載されたそうしたブロックの順序によって限定されるものではない。たとえば本発明によれば、いくつかの行為または事象は、本明細書に記載された順序とは別に異なる順序で、および/または他の行為または事象と同時に発生することができる。その上、本発明による方法を実施する上で、記載されたすべてのブロック、事象、または行為が必要となるわけではない場合もある。さらに、本発明による典型的な方法および他の方法は、本明細書に記載および説明された方法だけでなく、記載および説明されていない他のシステムおよび装置とも併せて実施できることを理解できるであろう。
次いで図4A〜4Eを参照すると、アイテムストアのテーブルに関連付けられた行が示されており、これは、2つのプロパティ、すなわち「直近のウイルス署名スキャン」および「スキャン状態」を定義するための2つの列を含む。一般にリレーショナルデータストアの核となる動作上の特徴は、テーブルに対して連結的なクエリを実行できることである。テーブル内に保存されているエンティティのセットには、セット処理言語(たとえばSQL(構造化照会言語))を使用してアクセスすることができる。この言語は、データのソースとして1つまたは複数のテーブルを指定し、所与の条件を満たす(1つまたは複数の)行があれば、それらの行のみを出力する。たとえば前に説明したように、アイテムストアは、リレーショナルデータベース、オブジェクトデータベース、および/またはオブジェクトリレーショナルデータベースとすることができる。リレーショナルデータベースに関しては、同じ構造を有するエンティティのセットはテーブルと呼ばれ、各エンティティは行と呼ばれる。構造のコンポーネントは列と呼ばれる。リレーショナルデータベースは、1つまたは複数のテーブルを含むことができる。図4A〜4Eで提供される典型的なテーブルの署名更新は、本発明の一態様によるウイルススキャンを受けることができる。本発明のデータストアは、従来のデータストリームならびにリレーショナルオブジェクトの双方の形態によるデータの存在を考慮することを理解されたい。そうしたテーブルのコンテンツは、たとえばクエリの結果がそこに依存する場合、ウイルスの攻撃に端を発する必要がある。具体的には、悪質なコードが、ストア内に挿入されている暗号化された文字列を利用することができ、クライアントスペース内で復号され、電子メールを介して増殖することができる場合である。たとえばウイルスは、暗号化された本体「X」をアイテムのプロパティ内に格納することができ、このためストアに対してクエリを行い、クライアント上の暗号化されたプロパティを復号することによって増殖することができる。クエリを実行する際、本発明のデータストアは、ベンダによって提供されたアンチウイルスプラグインによるスキャンおよび除去の双方用に同期および/または非同期モードでテーブル内のアイテムをキューに入れるためのキューイングメカニズムを採用することができる。その後、リレーショナルアイテムストアエンジンは、クエリと、注目すべきことにユーザコンテキスト情報とに基づいてクエリ情報に対する応答を提供することができる。
図4Aは行の作成を示しており、システムは自動的にlastVirusSignatureScanTS=0およびscanState="suspect"と設定する。行は、AVプラグインがその行をスキャンするまで、こうした値を維持することができ、スキャン後は、「感染なし」のステータスによって図4Bに示されているように、スキャンのタイプスタンプと共にスキャンの結果を含むであろう。図4Cは、その行用の更新を示しており、アイテムストアは自動的にscanState="suspect"と設定するが、lastVirusSignatureScanTS用の値は変更しない。アンチウイルスプラグインは、アイテム行、リンク行、またはエクステンション行のスキャンを担当し、アイテムがウイルスに感染しているか否かを表示する。図4Dは、感染なしの状態を示しており、アイテムストアはlastVirusSignatureScanTSを@@VIRUSSIGNATURETSの現在の値に、scanStateプロパティを"clean"に設定する。同様に図4Eは、アイテムが感染しているという別の状況設定を示している。そういうものとして、アイテムストアはlastVirusSignatureScanTSを@@VIRUSSIGNATURETSに、scanStateプロパティを"infected"に設定し、これによってアイテムを「隔離」することができる。これに応じて、そうしたアイテムはプラグインによって消毒する必要があり、そうした後でそのコンテンツは、その後のクエリ用に再び利用できるようになる。
図5は、本発明の一態様による特定の階層化構成のブロック図を示している。通常、本発明のアイテムストアは、従来のデータストリームならびにリレーショナルオブジェクトの双方の形態によるデータの存在を考慮する。したがってアイテムストアおよびそのAVプラグインと、従来型のファイル(たとえば、データストリームファイルおよびアプリケーション)との下位互換性を提供するために、本発明はフィルタファイル用の新たなアーキテクチャを採用し、そこでは多重UNCプロバイダ(MUP)コンポーネント515がファイルシステムとして登録され、通常UNCプロバイダは登録されない。一般に、UNCの入出力はすべて通常はMUPを通過することを保証することができる。したがって図5に示されているように、たとえばAVフィルタなどのファイルフィルタ(510、520、530)のスタックは、MUPに自分自身を取り付けること(たとえば、MUP上に自分自身の層を形成すること)ができ、アイテムストア内のアイテムのファイルストリーム入出力を含むUNCの入出力をすべてフィルタにかけることができる。汎用命名規則(UNC)はファイル用の命名規則を提供することができ、この命名規則は、マシンに依存しないファイル特定手段を提供する。MUPコンポーネント515は、UNCネームスペースへのアクセス用のファイルシステムとして機能し、そこでは、アイテムストアから見ることができる同じディレクトリおよびファイル名のネームスペースは、AVプラグインから見ることもできる。
図示されているように、カーネルモード550は、コンピュータオペレーティングシステムの中心部分または核として機能することができる。こうしたオペレーティングシステムは一般に、データの処理および入出力の管理を担当する。カーネルモード550は、オペレーティングシステムの一部として最初にメインメモリにロードされ、そこで維持される。とりわけプロセス管理、ファイル管理、およびメモリ管理を担当することに加えて、カーネルコンポーネント550は通常、アプリケーションおよびドライバによって要求される必要不可欠なサービスまたはプロシージャを提供する。たとえばプロシージャは、入出力スケジューリング、バッファリング、スプーリング、エラー処理などに対応することができる。さらに、本明細書で使用されているカーネルモード550のサービスという用語は、カーネルアドレススペース内で特定できる任意のサービス、プロシージャ、ドライバ、アプリケーション、または他のコンポーネントを含むことを意図している点に留意すべきである。
本発明の関連する態様では、ベンダによって供与されるAVプラグインとリレーショナルアイテムストアエンジンとの対話の一部としてインターフェースのセットを提供することができる。こうしたインターフェースは、たとえば提供されたAVプラグインとリレーショナルアイテムストアをリンクするためにベンダによって作成できるルーチン用の一連のスタブおよび/またはプレースホルダの形態を取ることができる。こうしたインターフェースは、アイテム、エクステンション、およびリンクのウイルススキャンおよび除去用にベンダによって実装することができる。たとえば、
BOOL ScanItem (ItemId itemId)
BOOL ScanExtension (ItemId itemId, ExtensionId extId)
BOOL ScanLink (ItemId itemId, LinkId linkId)
各インターフェースは、ブール演算の状態値を返すことができる。こうした値は、アイテムがウイルスを含んでいる(または断片攻撃に関与している)ことが判明した場合は、「真」に設定することができ、アイテムがウイルスに感染していない場合は、「偽」に設定することができる。同様に除去プロシージャ用の例は、以下を含むことができる。
BOOL CleanItem (ItemId itemId)
BOOL CleanExtension (ItemId itemId, ExtensionId extId)
BOOL CleanLink (ItemId itemId, LinkId linkId)
各インターフェースは、ブール演算の状態値を返すことができ、この値は、ストアオブジェクトのウイルスが首尾よく除去された場合は、「真」に設定することができ、AVプラグインがストアオブジェクトのウイルスを除去できなかった場合は、「偽」に設定することができる。こうした関数は、ストアオブジェクト用にAVスキャン操作が必要な場合に、または感染しているストアオブジェクト用にAV除去操作が必要な場合に、アイテムストアによって呼び出すことができる。どちらの場合も、前述のストアメカニズムを使用して必要なアイテムデータをストアから取ってくることは、通常はAVベンダの責任である。スキャンの態様および除去の態様は、併せて、または別々の段階として実行できることをさらに理解することができる。インターフェースは、同期および非同期の双方のスキャンおよび除去用にアイテムストアによって希望に応じて呼び出すことができる。その上、通常アイテムストアのコンテンツはすべて、特権付きの接続を有する標準的なクエリメカニズムを使用することによって、AVプラグインからアクセスすることができる。さらに、偽のAVプラグインのインストールは、たとえば署名入りのアセンブリを採用することによって回避することができる。またインターフェースのそれぞれは、各APIの中を通過するために"void *"プラグインのコンテキストをサポートすることもできる。
図6は、本発明の一態様による、ドキュメントオブジェクトモデル618に準拠するアイテムストアのメモリ内に常駐するデータ構造620へXMLドキュメント612を変換するためのシステム610の簡潔で典型的な説明を示している。XMLドキュメント612はパーサ614によって解析され、セマンティックな要素および属性のリストを変換コンポーネント616に提供する。次いでセマンティックな要素および属性のリストは、ドキュメントオブジェクトモデル618に準拠するアイテムストアのデータ構造620に変換またはマップすることができる。XMLドキュメント612内に示されているように、このドキュメントは、親子リンクを有する複数の要素を含む。XML DOM内に示されているデータ要素は階層構造を含んでおり、「人間」をトップノードとして、サブノード「愛している」および「メアリー」を伴う要素「ジョン」という第1の枝または葉と、ノード「メアリー」を伴う第2の枝または葉とを有する。第2の枝からの情報を検索するかまたはマッチさせるために選択されるパーサは、「ジョンはメアリーを愛している」というリンクをまったく知らなくても、要素「メアリー」を検索するであろう。しかし本発明のアイテムストアは、要素またはアイテム間のリンクの観点から表示構造をモデル化することができ、したがって「ジョンはメアリーを愛している」というリンクは、このモデルから容易に認識することができる。データ構造620において見て取れるように、パーサは、ノード「人間」とノード「メアリー」の間のリンクを辿って、メアリーは人間であると判断し、ノード「メアリー」とノード「ジョン」の間のリンクを辿って、メアリーはジョンに愛されていると判断することによって、「メアリー」に関する情報を検索することができる。したがってこのモデルは、XML DOMの場合と同様に、要素(またはアイテム)および属性の観点に加えて、リンクの観点からデータ構造を提示している。
図7は、本発明の一態様によるバックグラウンドスキャンキュー操作用のサイクルを示している。はじめにこのサイクルは、アイテムストアが、アイテムストアのコンテンツ上のAVプラグインの結果に基づいてメタデータコンポーネントの更新を完了した時点で開始する。次いで矢印720によって時計回りに移動すると、アイテムストアのストア全体にわたる署名が更新され、最近のAVプラグインのスキャンが反映される。次いで矢印740によって移動すると、アイテムストアは、次のAVスキャン用に期限切れのアイテムをキューに戻すことができる。さらに矢印760を辿ると、最近の更新は、そうした優先キュー上で待機することもできる。矢印780によって示されているように、キュー内のアイテムはアイテムストアによってキューから外すことができ、適切なAVインターフェースを同期的に呼び出すことができる。次いで矢印790によって示されているように、スキャンサイクルは、アイテムストアがAVプラグインの結果に基づいてメタデータコンポーネントの更新を完了すると、ループバックすることができる。前に説明したように、メタデータコンポーネントは、アイテムストアに割り当てられた署名値を提供することもでき、この署名値は、データのスキャンの時間と、そうしたスキャンの結果(たとえば、感染なし、感染の疑いあり、感染、スキャン不要など)を識別するためにリレーショナルアイテムストア内で指定されたスペース(たとえば、指定された列)とを表すことができる。これは、チャート795として示されている。そういうものとして、保留中のスキャンをアイテム用のライフサイクルの一部として提供することができる。
アンチウイルスプラグインは、アイテム行、リンク行、またはエクステンション行のスキャンを担当し、アイテムがウイルスに感染しているか否かを表示する。感染しているアイテムのウイルスを除去するために、図8に示されているように、AVプラグインのCleanItemAPIによる処理用に、感染しているアイテムをスケジュールに入れることができる。こうした呼を同期的に戻すことができ、AVメタデータはアイテムストア800内で更新することができる。呼が成功した場合(たとえばインターフェースが「真」の値を返した場合、そのオブジェクトは感染していないとみなすことができ、関連する行にその旨が表示される。
次いで図9を参照すると、本発明のさまざまな態様を実装できるクライアントならびにサーバサイド上の好ましいコンピューティング環境の簡潔で一般的な説明が示されている。ここまでは、1つのコンピュータおよび/または複数のコンピュータ上で実行されるコンピュータプログラムのコンピュータ実行可能命令という一般的なコンテキストで本発明について説明したが、本発明は他のプログラムモジュールとも組み合わせて実装できることを当業者なら理解するであろう。一般にプログラムモジュールは、特定のタスクを実行する、および/または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに本発明の方法は、シングルプロセッサコンピュータシステムまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品などを含む他のコンピュータシステム構成と共に実施できることを当業者なら理解するであろう。前に説明したように、示された本発明の態様は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施することもできる。しかし本発明のすべての態様とまでは言わないが、いくつかの態様はスタンドアロンコンピュータ上で実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリストレージデバイスおよびリモートメモリストレージデバイスの双方に配置することができる。典型的な環境はコンピュータ920を含み、コンピュータ920は、処理装置921、システムメモリ922、およびシステムバス923を含み、システムバス923は、システムメモリを含むさまざまなシステムコンポーネントを処理装置921に結合する。処理装置921は、さまざまな市販のプロセッサのいずれにすることもできる。処理装置921として、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを使用することもできる。
システムバスは、メモリバスまたはメモリコントローラと、ペリフェラルバスと、さまざまな市販のバスアーキテクチャのいずれかを使用するローカルバスとを含む複数のタイプのバス構造のいずれにすることもできる。システムメモリは、読み取り専用メモリ(ROM)924およびランダムアクセスメモリ(RAM)925を含むことができる。基本入出力システム(BIOS)は、起動中などにコンピュータ920内の要素間における情報伝達を補助する基本ルーチンを含み、ROM924内に格納されている。
コンピュータ920は、ハードディスクドライブ927と、たとえば取り外し可能なディスク929との間で読み取りや書き込みを行うための磁気ディスクドライブ928と、たとえばCD−ROMディスク931との間で読み取りや書き込みを行うための、または他の光メディアとの間で読み取りや書き込みを行うための光ディスクドライブ930とをさらに含む。ハードディスクドライブ927、磁気ディスクドライブ928、および光ディスクドライブ930は、それぞれハードディスクドライブインターフェース932、磁気ディスクドライブインターフェース933、および光ディスクドライブインターフェース934によってシステムバス923に接続される。これらのドライブおよびその関連するコンピュータ可読メディアは、コンピュータ920用のデータ、データ構造、コンピュータ実行可能命令などの不揮発性の記憶を提供する。前述のコンピュータ可読メディアの説明は、ハードディスク、取り外し可能な磁気ディスク、およびCDに言及しているが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、コンピュータによって読み取り可能な他のタイプのメディアを典型的な動作環境において使用することもでき、さらにそうした任意のメディアは、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることを当業者なら理解すべきである。
オペレーティングシステム935、1つまたは複数のアプリケーションプログラム936、他のプログラムモジュール937、およびプログラムデータ939を含む複数のプログラムモジュールをドライブおよびRAM925内に格納することができる。図示されているコンピュータ内のオペレーティングシステム935は、実質的に市販のオペレーティングシステムのいずれにすることもできる。
ユーザは、キーボード940およびマウス942などのポインティングデバイスを介してコンピュータ920にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナなどを含むことができる。これらの入力デバイスおよび他の入力デバイスは、システムバスに結合されているシリアルポートインターフェース946を介して処理装置921に接続される場合が多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)などの他のインターフェースによって接続することもできる。またモニタ956や他のタイプのディスプレイデバイスも、ビデオアダプタ955などのインターフェースを介してシステムバス923に接続される。モニタに加えて、コンピュータは通常、スピーカおよびプリンタなどの他の周辺出力デバイス(図示せず)を含む。
コンピュータ920は、リモートコンピュータ949などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で動作することができる。リモートコンピュータ949は、ワークステーション、サーバコンピュータ、ルータ、ピアデバイス、または他の一般的なネットワークノードとすることができ、図9にはメモリストレージデバイス950しか示されていないが、通常はコンピュータ920に関連する前述の要素の多くまたはすべてを含む。図9に示されている論理接続は、ローカルエリアネットワーク(LAN)951およびワイドエリアネットワーク(WAN)952を含むことができる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見受けられる。
LANネットワーキング環境において使用する場合、コンピュータ920は、ネットワークインターフェースまたはアダプタ953を介してローカルネットワーク951に接続することができる。WANネットワーキング環境において使用する場合、コンピュータ920は一般にモデム954を含むことができ、および/またはLAN上の通信サーバに接続するか、および/またはインターネットなどのワイドエリアネットワーク952上で通信を確立するための他の手段を有する。モデム954は内蔵型または外付け型とすることができ、シリアルポートインターフェース946を介してシステムバス923に接続することができる。ネットワーク化された環境では、コンピュータ920に関連して示されているプログラムモジュール、またはその一部をリモートメモリストレージデバイス内に格納することができる。示したネットワーク接続は代表的なものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることを理解できるであろう。
コンピュータプログラミング業界の技術者の慣習に従って、特段の記載がない限り、コンピュータ920などのコンピュータによって実行される行為および動作の象徴的な表示を参照して、本発明について説明した。こうした行為および動作は、コンピュータ実行可能と呼ばれる場合もある。こうした行為および象徴的に表示された動作は、データビットを表す電気信号に対する処理装置921による操作を含み、この操作による結果として、電気信号表示は変換されるかまたは減少し、データビットは(システムメモリ922、ハードドライブ927、フロッピー(登録商標)ディスク928、およびCD−ROM931を含む)メモリシステム内のメモリロケーションに保持され、これによってコンピュータシステムの動作ならびに信号の他の処理は再構成されるか、またはその他の形で変更されることを理解できるであろう。そうしたデータビットが保持されるメモリロケーションは、そのデータビットに対応する特定の電気的、磁気的、または光学的プロパティを有するメモリの物理ロケーションである。
次いで図10を参照すると、本発明の一態様によるAVプラグインの方法を採用するクライアント−サーバシステム1000が示されている。(1つまたは複数の)クライアント1020は、ハードウェアおよび/またはソフトウェア(たとえばスレッド、プロセス、コンピューティングデバイス)とすることができる。またシステム1000は、1つまたは複数のサーバ1040も含む。(1つまたは複数の)サーバ1040は、ハードウェアおよび/またはソフトウェア(たとえばスレッド、プロセス、コンピューティングデバイス)とすることができる。たとえば、そうしたサーバ1040は、本発明を採用することによって変換を実行するためのスレッドを格納することができる。クライアント1020およびサーバ1040は、複数のコンピュータプロセスの間で本発明に従って伝送されるデータパケットの形態で通信することができる。このクライアント/サーバは、同じプロセスを共有することもできる。図示されているように、システム1000は、(1つまたは複数の)クライアント1020と(1つまたは複数の)サーバ1040との通信を容易にすることができる通信フレームワーク1080を含む。(1つまたは複数の)クライアント1020は、(1つまたは複数の)クライアント1020にとってローカルな情報を保存できる1つまたは複数のクライアントデータストア1010に動作可能に接続されている。さらにクライアント1020は、サーバプロセスを実行するサーバコンピュータ1040上に配置されているデータベース1060にアクセスし、これを更新することができる。本発明の一態様では、通信フレームワーク1080はインターネット、クライアントプロセスはWebブラウザ、サーバプロセスはWebサーバとすることができる。そういうものとして、典型的なクライアント1020は、中央処理装置(CPU)と、システムメモリと、モデムと、パーソナルコンピュータをインターネットに接続するためのネットワークカードと、ディスプレイと、キーボードやマウスなどの他のコンポーネントとを有する従来のパーソナルコンピュータなどの汎用コンピュータとすることができる。同様に、典型的なサーバ1040は、大学や企業のメインフレームコンピュータまたは専用ワークステーションなどとすることができる。
本発明について主に1つのストアを対象とするAVプラグインのコンテキストから説明したが、複数のストア用のワークフローも実装できることを理解されたい。一般に、異なるマシンにわたって複数のストアを配置するには、結果として複数のストアにわたってアンチウイルスを保証するレベルにばらつきが生じる可能性がある。そうしたばらつきを軽減するための特定の典型的な手法は、クライアントのストア用のプラグインが、別のストア上のシェアから読み取られているコンテンツをスキャンできるようにすることである。これによって通常、起点となるストアのアンチウイルス特性が、クライアントのアプリケーションによって使用されている連続した形態のアイテム内に含まれることが要求される場合がある。この情報およびローカルポリシーに基づいて、クライアントのストアにとって利用可能なプラグインは、ソースストアから読み取られているコンテンツをスキャンすることができる。より詳細には、そうしたアンチウイルスプラグインは1つのストアを対象とする。したがって、異なるマシン上で実行されているアプリケーションは、シェアを介してアイテムストアからコンテンツを読み取る場合、アプリケそのシェアをホストしているストア上のアンチウイルスプラグインによって保護される。異なるマシンにわたって複数のストアを配置すると、複数のストアにわたってアンチウイルスを保証するレベルにばらつきが生じることになる。1つの解決策は、クライアントのストア用のプラグインが、別のストア上のシェアから読み取られているコンテンツをスキャンできるようにすることである。これによって、起点となるストアのアンチウイルス特性が、クライアントのアプリケーションによって使用されている連続した形態のアイテム内に含まれることが要求されるであろう。この情報およびローカルポリシーに基づいて、クライアントのストアにとって利用可能なプラグインは、ソースストアから読み取られているコンテンツをスキャンすることができる。
示された特定の態様との関連から本発明について記載および説明したが、当業者が本明細書および添付の図面を読んで理解すれば、同等な変更および修正を想起できることを理解できるであろう。とりわけ前述のコンポーネント(アセンブリ、デバイス、回路、システムなど)によって実行されるさまざまな機能に関して、そうしたコンポーネントを記述するために使用されている用語(「手段」への参照を含む)は、特段の記載がない限り、開示された構造と構造的に同等でなくとも、本明細書に記載された本発明の典型的な態様における機能を実行する記述されたコンポーネントの(たとえば機能的に同等な)特定の機能を実行する任意のコンポーネントに相当することを意図している。この点について、本発明は、本発明のさまざまな方法の行為および/または事象を実行するためのコンピュータ実行可能命令を有するシステムならびにコンピュータ可読メディアを含むことも認識できるであろう。さらに「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」という用語およびその変形は、詳細な説明または特許請求の範囲において使用される限り、「備える(comprising)」という用語と同様に包括的な意味を意図している。
本発明の一態様による、アンチウイルス(AV)プラグインを採用するリレーショナルアイテムストアを示すブロック図である。 本発明の一態様によるスキャンコンポーネントを示すブロック図である。 本発明の一態様によるバックグラウンドスキャン用の方法を示す図である。 本発明の典型的な態様による行の作成およびスキャンのさまざまな段階を示す図である。 本発明の典型的な態様による行の作成およびスキャンのさまざまな段階を示す図である。 本発明の典型的な態様による行の作成およびスキャンのさまざまな段階を示す図である。 本発明の典型的な態様による行の作成およびスキャンのさまざまな段階を示す図である。 本発明の典型的な態様による行の作成およびスキャンのさまざまな段階を示す図である。 本発明の一態様による特定のシステムアーキテクチャ用のフィルタの階層化構成を示す図である。 本発明の一態様による、アイテムストアのメモリ内に常駐するデータ構造へドキュメントを変換するためのシステムの簡潔で典型的な説明を示す図である。 本発明の一態様によるアイテムストア内のデータのバックグラウンドスキャンキュー用のサイクルを示す図である。 本発明の一態様によるアイテムストア内のデータのバックグラウンド除去キューを示す図である。 本発明のさまざまな態様を採用できる好ましいコンピューティング環境を示す概略ブロック図である。 本発明の一態様によるアンチウイルススキャン方法を採用できるクライアント−サーバシステムを示す図である。
符号の説明
100 アイテムストア
110 メタデータコンポーネント
112 トランザクション1
114 トランザクション2
116 トランザクションN
120 スキャンコンポーネント
130 アンチウイルスプラグイン
200 アイテムストア
210 非同期キューイング
220 同期キューイング
230 スケジューリングコンポーネント
510 フィルタ
520 フィルタ
530 フィルタ
550 カーネルモード
614 パーサ
616 変換
920 コンピュータ
921 処理装置
922 システムメモリ
927 ハードドライブ
928 フロッピー(登録商標)ドライブ
929 ディスク
930 CD−ROMドライブ
931 ディスク
932 インターフェース
933 インターフェース
934 インターフェース
935 オペレーティングシステム
936 アプリケーション
937 モジュール
939 データ
940 キーボード
942 マウス
946 シリアルポートインターフェース
949 リモートコンピュータ
950 メモリストレージ
953 ネットワークアダプタ
954 モデム
955 ビデオアダプタ
956 モニタ+
1010 (1つまたは複数の)クライアントデータストア
1020 (1つまたは複数の)クライアント
1040 (1つまたは複数の)サーバ
1060 (1つまたは複数の)サーバデータストア
1080 通信フレームワーク

Claims (32)

  1. アイテムストアと対話する1つまたは複数のアンチウイルスプラグインの操作用のセマンティクスを提供するメタデータコンポーネントと、
    アイテムストアのコンテンツをそのウイルススキャン用に前記アンチウイルスプラグインへのキューに入れるスキャンコンポーネントと
    を含むことを特徴とするアイテムストア。
  2. 前記メタデータコンポーネントは、前記コンテンツのスキャンの時間を表す署名値を提供することを特徴とする請求項1に記載のアイテムストア。
  3. 前記メタデータコンポーネントは、前記コンテンツ用のスキャン状態を提供することを特徴とする請求項1に記載のアイテムストア。
  4. 前記スキャン状態は、感染の疑いあり、感染なし、および感染の少なくとも1つに設定されることを特徴とする請求項3に記載のアイテムストア。
  5. 前記スキャン状態は、スキャン不要に設定されることを特徴とする請求項3に記載のアイテムストア。
  6. 前記スキャンコンポーネントは、同期的な方法および非同期的な方法の少なくとも1つで前記コンテンツをキューに入れることを特徴とする請求項1に記載のアイテムストア。
  7. 前記アイテムストアのデータ構造を解析して、テキストから要素へのリンクを決定するためのパーサをさらに含むことを特徴とする請求項1に記載のアイテムストア。
  8. 前記メタデータコンポーネントは、前記アイテムストアに署名値を提供することを特徴とする請求項1に記載のアイテムストア。
  9. 前記署名値は、前記アイテムストアのコンテンツのスキャンの時間を表すことを特徴とする請求項8に記載のアイテムストア。
  10. 前記スキャンコンポーネントは、非同期キューイングコンポーネントおよび同期キューイングコンポーネントの少なくとも1つを含むことを特徴とする請求項1に記載のアイテムストア。
  11. 前記プラグイン用のスキャンプロセスをスケジュールに入れるスケジューリングコンポーネントをさらに含むことを特徴とする請求項1に記載のアイテムストア。
  12. アイテムストアと対話する1つまたは複数のアンチウイルスプラグインの操作用のセマンティクスを提供するコンピュータ実行可能コンポーネントと、
    前記アイテムストアのコンテンツをそのウイルススキャン用に前記アンチウイルスプラグインへのキューに入れるさらなるコンピュータ実行可能コンポーネントと
    を含むデータ構造をその上に格納していることを特徴とするコンピュータ可読メディア。
  13. アイテムストアをスキャンするための方法であって、
    アイテムストア内の複数のアイテム間のリレーショナルスキームを定義するステップと、
    前記アイテムストアを介してアンチウイルスプラグインの操作用のセマンティクスを提供するステップと、
    前記アイテムストアのコンテンツをスキャンするステップと
    を含むことを特徴とする方法。
  14. 前記アイテムストアに署名値を提供するステップをさらに含み、前記署名値はスキャンの時間を指定することを特徴とする請求項13に記載の方法。
  15. スキャンされるコンテンツにスキャン状態ステータスを提供するステップをさらに含むことを特徴とする請求項13に記載の方法。
  16. スキャン用にコンテンツをキューに入れるステップをさらに含むことを特徴とする請求項13に記載の方法。
  17. 前記スキャンからのコンテンツをキューから外すステップをさらに含むことを特徴とする請求項16に記載の方法。
  18. 前記スキャンするステップは、同期的な方法によるスキャンを含むことを特徴とする請求項13に記載の方法。
  19. 前記スキャンするステップは、非同期的な方法によるスキャンを含むことを特徴とする請求項13に記載の方法。
  20. 前記アイテムストアの修正されたコンテンツをスキャン用に自動的にキューに入れるステップをさらに含むことを特徴とする請求項13に記載の方法。
  21. 前記アイテムストアの新たなコンテンツをスキャン用に自動的にキューに入れるステップをさらに含むことを特徴とする請求項13に記載の方法。
  22. 強制的なスキャンを実行するステップをさらに含むことを特徴とする請求項18に記載の方法。
  23. 前記アイテムストアに向けられたクエリに応答してコンテンツのスキャンに脇から影響を与えるステップをさらに含むことを特徴とする請求項13に記載の方法。
  24. 感染しているコンテンツのウイルスを除去するステップをさらに含むことを特徴とする請求項23に記載の方法。
  25. 請求項13に記載の方法を実行するためのコンピュータ実行可能命令をその上に格納していることを特徴とするコンピュータ可読メディア。
  26. アイテムストアと対話する1つまたは複数のアンチウイルスプラグインの操作用のセマンティクスを提供するメタデータコンポーネントと、
    アイテムストアのコンテンツをそのウイルススキャン用に前記アンチウイルスプラグインへのキューに入れるスキャンコンポーネントと、
    前記アンチウイルスプラグインとアイテムストアとの対話を容易にするスタブのセットと
    を含むことを特徴とするアイテムストア。
  27. 入出力要求およびUNCネームにサービスを提供するファイルシステムへのリモートアクセスとして機能する多重UNCプロバイダと、
    前記ファイルシステムを提供するために前記多重UNCプロバイダ上に配置された複数のフィルタと、
    前記ファイルシステムをスキャンする1つまたは複数のアンチウイルスプラグインであって、前記ファイルシステムから見ることができる同じディレクトリおよびファイル名のネームスペースが、前記1つまたは複数のアンチウイルスプラグインから見ることもできる1つまたは複数のアンチウイルスプラグインと
    を含むことを特徴とするアイテムストア。
  28. 前記フィルタはカーネルモードフィルタであることを特徴とする請求項27に記載のアイテムストア。
  29. アイテムストアと対話する1つまたは複数のアンチウイルスプラグインを操作するためのセマンティクスを提供するための手段と、
    アイテムストアのコンテンツをそのウイルススキャン用に前記アンチウイルスプラグインへのキューに入れるための手段と
    を含むことを特徴とするアイテムストア。
  30. 感染しているアイテムを除去するための手段をさらに含むことを特徴とする請求項29に記載のアイテムストア。
  31. 前記アイテムストアのファイルシステムと同じコンテンツに対する視認性を前記アンチウイルスプラグインに提供するための手段をさらに含むことを特徴とする請求項29に記載のアイテムストア。
  32. 複数のストアの一部としてアンチウイルスプラグインを組み込むための方法であって、
    起点となるストアのアンチウイルス特性を、クライアントのアプリケーションによって使用されている連続した形態のアイテム内に含めるステップと、
    前記クライアントのストアによってシェアから読み取られる前記起点となるストアのコンテンツを、前記クライアントにとって利用可能なアンチウイルスプラグインを介してスキャンするステップと
    を含むことを特徴とする方法。
JP2005180853A 2004-06-21 2005-06-21 アイテムストア用のアンチウイルス Expired - Fee Related JP4897246B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US58156904P 2004-06-21 2004-06-21
US60/581,569 2004-06-21
US58189604P 2004-06-22 2004-06-22
US60/581,896 2004-06-22
US10/959,383 2004-10-06
US10/959,383 US7694340B2 (en) 2004-06-21 2004-10-06 Anti virus for an item store

Publications (2)

Publication Number Publication Date
JP2006012164A true JP2006012164A (ja) 2006-01-12
JP4897246B2 JP4897246B2 (ja) 2012-03-14

Family

ID=35169357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005180853A Expired - Fee Related JP4897246B2 (ja) 2004-06-21 2005-06-21 アイテムストア用のアンチウイルス

Country Status (8)

Country Link
US (1) US7694340B2 (ja)
EP (1) EP1615101B1 (ja)
JP (1) JP4897246B2 (ja)
KR (1) KR101122821B1 (ja)
AU (1) AU2005201990B2 (ja)
BR (1) BRPI0502417A (ja)
CA (1) CA2507367C (ja)
MX (1) MXPA05005535A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716743B2 (en) * 2005-01-14 2010-05-11 Microsoft Corporation Privacy friendly malware quarantines
US8005803B2 (en) * 2005-07-14 2011-08-23 Microsoft Corporation Best practices analyzer
US7844829B2 (en) * 2006-01-18 2010-11-30 Sybase, Inc. Secured database system with built-in antivirus protection
US9251350B2 (en) * 2007-05-11 2016-02-02 Microsoft Technology Licensing, Llc Trusted operating environment for malware detection
US8042185B1 (en) * 2007-09-27 2011-10-18 Netapp, Inc. Anti-virus blade
US8584233B1 (en) * 2008-05-05 2013-11-12 Trend Micro Inc. Providing malware-free web content to end users using dynamic templates
US8146158B2 (en) * 2008-12-30 2012-03-27 Microsoft Corporation Extensible activation exploit scanner
US7640589B1 (en) * 2009-06-19 2009-12-29 Kaspersky Lab, Zao Detection and minimization of false positives in anti-malware processing
IT1397439B1 (it) * 2009-12-30 2013-01-10 St Microelectronics Srl Procedimento e dispositivi per la distribuzione di contenuti mediali e relativo prodotto informatico
JP2013523043A (ja) 2010-03-22 2013-06-13 エルアールディシー システムズ、エルエルシー ソースデータセットの完全性を識別及び保護する方法
US9152791B1 (en) * 2011-05-11 2015-10-06 Trend Micro Inc. Removal of fake anti-virus software
US9676202B2 (en) * 2012-05-09 2017-06-13 Xerox Corporation System and method for detecting defects in an inkjet printer
RU2523112C1 (ru) * 2012-12-25 2014-07-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу
US20150161123A1 (en) * 2013-12-09 2015-06-11 Microsoft Corporation Techniques to diagnose live services
US10341355B1 (en) 2015-06-23 2019-07-02 Amazon Technologies, Inc. Confidential malicious behavior analysis for virtual computing resources
US9817976B2 (en) * 2015-12-24 2017-11-14 Intel Corporation Techniques for detecting malware with minimal performance degradation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002086717A1 (en) * 2001-04-16 2002-10-31 Xaxon R & D Corporation Computer virus check device and method
WO2002095588A2 (en) * 2000-12-01 2002-11-28 Network Appliance, Inc. Decentralized virus scanning for stored data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832208A (en) 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers
US5960420A (en) 1996-09-11 1999-09-28 International Business Machines Corporation Systems, methods and computer program products for implementing a workflow engine in database management system
US6016546A (en) 1997-07-10 2000-01-18 International Business Machines Corporation Efficient detection of computer viruses and other data traits
US6678822B1 (en) 1997-09-25 2004-01-13 International Business Machines Corporation Method and apparatus for securely transporting an information container from a trusted environment to an unrestricted environment
US6275937B1 (en) 1997-11-06 2001-08-14 International Business Machines Corporation Collaborative server processing of content and meta-information with application to virus checking in a server network
US6338141B1 (en) * 1998-09-30 2002-01-08 Cybersoft, Inc. Method and apparatus for computer virus detection, analysis, and removal in real time
US6842861B1 (en) 2000-03-24 2005-01-11 Networks Associates Technology, Inc. Method and system for detecting viruses on handheld computers
US6721721B1 (en) 2000-06-15 2004-04-13 International Business Machines Corporation Virus checking and reporting for computer database search results
US20030105973A1 (en) * 2001-12-04 2003-06-05 Trend Micro Incorporated Virus epidemic outbreak command system and method using early warning monitors in a network environment
GB2396227B (en) 2002-12-12 2006-02-08 Messagelabs Ltd Method of and system for heuristically detecting viruses in executable code
US20070283440A1 (en) * 2006-05-03 2007-12-06 Anchiva Systems, Inc. Method And System For Spam, Virus, and Spyware Scanning In A Data Network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002095588A2 (en) * 2000-12-01 2002-11-28 Network Appliance, Inc. Decentralized virus scanning for stored data
JP2004527857A (ja) * 2000-12-01 2004-09-09 ネットワーク・アプライアンス・インコーポレイテッド 記憶されているデータに対する分散的ウィルススキャン
WO2002086717A1 (en) * 2001-04-16 2002-10-31 Xaxon R & D Corporation Computer virus check device and method
JP2004528651A (ja) * 2001-04-16 2004-09-16 ザクソン・アールアンドディ株式会社 コンピュータウイルス検査装置及び方法

Also Published As

Publication number Publication date
US7694340B2 (en) 2010-04-06
AU2005201990B2 (en) 2010-08-12
EP1615101A3 (en) 2006-02-15
AU2005201990A1 (en) 2006-01-12
EP1615101B1 (en) 2017-04-26
US20050283603A1 (en) 2005-12-22
KR20060046140A (ko) 2006-05-17
CA2507367C (en) 2015-12-29
MXPA05005535A (es) 2006-05-25
KR101122821B1 (ko) 2012-03-21
EP1615101A2 (en) 2006-01-11
BRPI0502417A (pt) 2006-02-07
JP4897246B2 (ja) 2012-03-14
CA2507367A1 (en) 2005-12-21

Similar Documents

Publication Publication Date Title
JP4897246B2 (ja) アイテムストア用のアンチウイルス
RU2544752C2 (ru) Конвейер классификации данных, включающий в себя правила автоматической классификации
US7502807B2 (en) Defining and extracting a flat list of search properties from a rich structured type
JP4782017B2 (ja) 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法
US9122750B2 (en) Classifying objects
KR101219856B1 (ko) 데이터 프로세싱을 자동화하기 위한 방법 및 시스템
US7437375B2 (en) System and method for communicating file system events using a publish-subscribe model
US9170908B2 (en) System and method for dynamic analysis bytecode injection for application dataflow
US20060005227A1 (en) Languages for expressing security policies
KR20060097577A (ko) 시스템 데이터 인터페이스, 관련 아키텍처, 프린트 시스템데이터 인터페이스 및 관련 프린트 시스템 아키텍처
US7831552B2 (en) System and method for querying file system content
US20060004759A1 (en) System and method for file system content processing
US20080005062A1 (en) Component for extracting content-index data and properties from a rich structured type
US7676565B2 (en) Light weight software and hardware inventory
US8327324B1 (en) Message logging system
US8015570B2 (en) Arbitration mechanisms to deal with conflicting applications and user data
US20100082565A1 (en) Method and system for profile typing in batch loading documents into a service registry in a computing environment
RU2393531C2 (ru) Антивирус для хранилища элементов
US8423957B2 (en) Using the z/OS load module system status index to distinguish product tag files
Stelly et al. Language-based integration of digital forensics & incident response
CN100557546C (zh) 关于项存储器的反病毒方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110525

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110530

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4897246

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees