説明

記憶されているデータに対する分散的ウィルススキャン

【課題】ウィルスおよび他の悪質なもしくは望まざる内容を調べる技術を提供する。
【解決手段】本発明は、サーバに保存されたオブジェクトに対するリクエストを受け取るステップと、リクエストに応じて、クラスタ装置に、オブジェクトと関連するデータに対する操作を実行させるか否かの決定をするステップと、オブジェクトが別のユーザによってロックされている場合に、サーバが、クラスタ装置に操作を実行させるためにクラスタ装置がオブジェクトへアクセスすることを許可するステップを含んでいる、クラスタ装置に操作を実行させるステップと、クラスタ装置から操作の結果を受け取るステップと、操作の結果に基づいて、ユーザに対し、オブジェクトへアクセスすることを許可するステップ、を有する方法である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばネットワーク化されている環境における、記憶されているデータに対する分散的ウィルススキャンに関する。
【背景技術】
【0002】
関連技術
コンピュータネットワークおよびインターネットにより、エンドユーザはあらゆる種類の情報への国際的な共通基盤に基づく、新しいアクセスを享受している。情報へのアクセスは、電話線を用いてある種のコンピュータ装置をネットワークに接続するように簡便にできる。ワイヤレス通信の急増に伴い、今やユーザは事実上、どこからでもコンピュータネットワークにアクセスできる。
【0003】
このような規模の接続性が、コンピュータウィルスの影響度を拡大している。「メリッサ(Melissa)」および「アイラブユー(I love you)」といったウィルスは、全世界のコンピュータシステムに壊滅的な打撃を与えた。ウィルス処置に要するコストはしばしば、数百万ドルにもまた数千万ドルにも達する。近年、ハンドヘルド型コンピュータ装置もまたウィルスに感染しやすいことがわかっている。
【0004】
ウィルス保護ソフトウェアはウィルス対策において非常に効果的であり、またウィルス保護ソフトウェアはパーソナルコンピュータのような一般的なコンピュータ装置向けのものが広く流通している。しかしながら、例えば、サーバ、ファイルサーバ、記憶システム、ならびに、あらゆる種類のデータの記憶および検索を行う装置のような特殊なコンピュータ装置に固有の問題が存在する。市販のウィルス保護ソフトウェアは、特殊なコンピュータ装置上では、修正を加えない限り、実行されず、別のプラットフォームで稼動するようにソフトウェアを書き替えることは非常に高くつく。
【0005】
第1の周知の方法はデータソースにおけるウィルススキャンである。特殊なコンピュータ装置によってデータが提供されようとすれば、その特殊なコンピュータ装置をスキャンする必要がある。装置内のファイルをスキャンするために、その装置用のウィルス保護ソフトウェアを記述しなければならない。
【0006】
この第1の周知の方法は、ファイルに対してウィルススキャンをするには効果的な方法だが、幾つかの不利益を有する。先ず、特殊なコンピュータ装置を有する会社は、かなりの資産をかけてウィルス保護ソフトウェアを作りあげ、そして、現われる新しいウィルスから保護してくれるよう、データファイルを最新型に維持しなければならない。
【0007】
そのうえ、特殊なコンピュータ装置の製造業者は、主流となっているウィルス保護ソフトウェアを作っている法人の賛助を得てカスタムアプリケーションを記述し、ライセンシーになることは可能だが、このことが、選択したアンチ−ウィルスソフトウェアベンダーの信頼性、ハードウェアがアップグレードされた場合の互換性に関する課題、および、多大な財務費用といった問題を引き起こしている。
【0008】
第2の周知の、コンピュータウィルスから保護する方法は、エンドユーザに彼らのクライアント装置上でアンチ−ウィルスソフトウェアを実行させることである。アンチ−ウィルスソフトウェアは、マカフィー(McAfee)やシマンテック(Symantec)といった会社から提供されている。これらのプログラムはコンピュータのブート段階中にロードされ、バックグラウンドジョブとして動作してメモリおよびファイルを開いたり、保存したりしながら監視している。
【0009】
この第2の周知の方法はクライアント装置の感染を阻止し、保護する上では効果的だが、幾つかの不利益を有する。これは連鎖における最終可能リンクに、検出の負担を設定している。いかなる理由があろうと、エンドユーザに到達するよりも先にウィルスを検出しなければ、ウィルスは最大の被害(ファイルの破壊、ならびに、他のコンピュータユーザおよびシステムへの拡大)を及ぼすであろうコンピュータ装置に到達する。
【0010】
何百万というユーザへ送信されるかもしれないソースからファイルを駆除(sanitize)するほうが、そのファイルを送信し、そして、エンドユーザに、ファイルが感染している場合にそのファイルに対処するための用意をしておくことを期待するよりもずっとよい。エンドユーザはしばしば古いバージョンのアンチ−ウィルスソフトウェア、および/または、そのソフトウェアが新しく発見されたウィルスから確実に護れるようにするためのデータファイルにアップデートしていない。従って、大量配信されるポイントにおける検出を行うことがより重要である。
【0011】
また、ハンドヘルド型コンピュータ装置もウィルスに感染しやすいが、これら装置のウィルスに対処する装備は不十分である。一般に、ハンドヘルド型コンピュータ装置はデスクトップシステムと比較して、非常に制限されたメモリリソースを有する。これらのリソースの一部分をウィルス保護に費やすと、ハンドヘルド型装置が効率的に動作する能力を厳しく制限する。情報ソースにおける信頼できるウィルススキャンが最も効率的でありかつ効果的な方法である。
【0012】
ウィルスからの保護は絶え間の無い戦いである。新しいウィルスは毎日創出され、ウィル保護ソフトウェア製造者は新しいデータファイル(アンチ−ウィルスソフトウェアが使用する解決用アルゴリズム)を作り出す必要に迫られる。ファイルのソースにおいて保護することで、ウィルスはさらに効率よく、効果的に除去可能である。
【0013】
一般にデータのセキュリティーは重要である。同程度に重要なのがエンドユーザの信用である。これは会社に先行する評判に由来し、また、ウェブコマースに従事する会社は、その評判によって生きることも死ぬこともる。それは丁度、エンドユーザがウェブベースの売買取引のために開示したクレジットカードの番号が安全であると信じているように、受信するファイルも安全であることを望んでいる。
【発明の開示】
【発明が解決しようとする課題】
【0014】
従い、特殊なコンピュータ装置をスキャンして、変更、削除、または、修正の必要があるかもしれない、ウィルスおよび他の悪質なもしくは望まざる内容を調べる技術を提供することが望まれている。
【課題を解決するための手段】
【0015】
本発明は、第2のコンピュータ装置により、記憶システム、ファイラ、または、その他のデータの記憶および検索を行うサーバのファイルのウィルスをスキャンするといった、サーバのファイルに対する専門的なサービスを行う方法およびシステムを提供する。(ファイラのような)サーバは1以上の補助的コンピュータ装置と接続されており、この補助的コンピュータ装置がエンドユーザへの送信の前に、リクエストによって要求されたファイルをスキャンしてウィルスフリーであることを確かめる。エンドユーザがサーバからファイルを要求すると、以下のステップが実施される。サーバが、ユーザにより要求されたファイルまたは他のオブジェクトは、ユーザに向けて送信する前に、または、ユーザが使用した後で、スキャンされなければならないかどうかを判断する。サーバは外部コンピュータ装置の1つへのチャンネルを開き、ファイル名(または、ファイルハンドルもしくはiノードポインタ、つまり「ファイル名(filename)」、「ファイル名空間(file name space)」、および、ファイルもしくは他の種類のオブジェクトの指定子(designators)の可能な収集体を指す同等物、のような、ファイルもしくはオブジェクトの別の指定子)を送る。その外部コンピュータ装置がそのファイルを開いてスキャンする。(例えば、ウィルスファイルを浄化する、ファイルを隔離または削除する、といった、)できる限りの改善的アクションをとった後、外部コンピュータ装置がファイラへファイルスキャン操作のステータスを報告する。サーバは、前記ステータスが送信してもよいことを示せば、ファイルをエンドユーザに送る。
【0016】
本システムは、ファイルが修正されるか、または、新しいウィルスから保護するための新しいデータファイルが付加されないかぎり、たった一度だけファイルをウィルススキャンする必要があるという点で、非常に効率的でありまた効果的である。スキャンしたファイルのスキャンレポートは、1以上の外部コンピュータ装置、1以上のサーバに記憶されてもよく、そして、スキャンレポートのある部分はエンドユーザに送信されてもよい。
【0017】
本発明の代替的実施形態においては、1以上のコンピュータ装置が、データの圧縮および解凍(decompression)、データの暗号化および解読、ならびに、データベース短縮といった他の補助的アプリケーションを独立に、または、組み合わせて、実行していてもよい。
【発明を実施するための最良の形態】
【0018】
以下の説明にて、本発明の好適な実施形態を、その好適な処理工程およびデータ構造に着目し、説明する。当業者であれば本出願を精読した後には、本発明の実施形態は1以上の一般目的もしくは特殊目的プロセッサ、または、他の、本明細書に記載の特定の処理工程およびデータ構造に適合した回路を用いて実施可能であること、ならびに、必要以上の試験または更なる発明を必要とせずに本明細書に記載の処理工程およびデータ構造を実施することができることを理解するであろう。
【0019】
辞書編集(Lexicography)
以下の用語は、以下に説明する本発明の態様を、言及または関連する。これら用語に関する一般的な意味についての記載は、制限を加えることを目的としたものではなく、単に例示目的にすぎない。
・ファイラ−一般的に、あらゆる記憶システム、ファイルサーバ、または、その他の、データの記憶および検索を行う装置をいう。記憶システムは、数多くある方法の中のどの方法を用いて実施してもよく、それらには、それらに限定されないが、ネットワークに加えられた記憶装置環境、記憶領域ネットワーク、クライアント装置、サーバ装置、もしくは、ホストコンピュータにつながれたディスク機構、または、それらのうちのある組み合わせが含まれる。
記憶システムの1つに、ファイルサーバがある。ファイルサーバまたはファイラは、配列状のメモリ、テープ、もしくは、ディスクのような、書きこみ可能な持続性の記憶装置に関する情報の編成に関するファイルサービスを提供するコンピュータを含んでいる。ファイラは、ディレクトリの階層構造、および、例えばディスク上の、ファイルの情報を論理的に編成するファイルシステムを実施する記憶オペレーティングシステムを含んでもよい。各「ディスク上の」ファイルは、例えば、ファイルの実際のデータのような情報を記憶する目的で構成された、ディスクブロックのような、一組のデータ構造体として実施されてもよい。他方、ディレクトリは、他のファイルおよびディレクトリに関する情報を記憶する、特別なフォーマットのファイルとして実施されてもよい。一般的に、用語「記憶オペレーティングシステム」とは、ファイルシステムセマンティクスのように、データ記憶を機能的に実施する、コンピュータが実行可能なコードをいい、データアクセスを管理している。記憶オペレーティングシステムは、ユニックス(UNIX)(登録商標)もしくはウィンドウズNT(Windows NT)(登録商標)のような汎用オペレーティングシステム上で動作するアプリケーションプログラムとして、または、記憶アプリケーションとして構成可能な、機能性、もしくは、記憶の機能を備えた汎用オペレーティングシステムとして、もしくは、記憶ならびに関連する、記憶装置およびその他の装置におけるタスクを含んだ制限的な範囲の機能を実行することに特化した特定目的オペレーティングシステムとして、実施可能である。
他に、記憶システムは、情報の受け渡しに関する、クライアント/サーバモデルに基づいて動作するように構成されてもよく、それにより、多くのクライアントがサーバ上に記憶されているファイル、例えば記憶システムにアクセス可能となる。本モデルにおいては、クライアントはコンピュータ上で実行可能な、二点間リンク、共有ローカルエリアネットワーク、ワイドエリアネットワーク、または、インターネットのような公衆ネットワークを介して実施される仮想プライベートネットワークのような、コンピュータネットワークを介して記憶システムと「接続」するアプリケーションを備えていてもよい。各クライアントは、ファイルシステムのプロトコルのメッセージを(パケットの形態で)ネットワークを介してシステムに向けて発行することにより、記憶システム上のファイルシステムのサービスを要求してもよい。しかし、注目すべきことは、記憶システムは、(例えばクライアントまたは「ホスト」)コンピュータに直接的に取り付けられている記憶装置のアセンブリとして動作するように構成されてもよいことである。ここでは、ユーザは、記憶装置から/に、データアクセス(例えば、読み出しおよび/または書きこみ)する、ファイルシステムのサービスを要求してもよい。
本発明は、「ファイラ」に関連させて、本明細書にて説明されているが、本発明は、ファイラ、ファイルサーバ、記憶システム、または、類似の装置に、特に限定されるものではない。当業者であれば、本出願を精読の後には、あらゆる種類のサーバ装置に対し、ここで説明されているアイデアおよび技術を如何にして実施すればよいかは理解するであろう。これらの実施については、必要以上の試験または更なる発明を必要とせず、また、本発明の範囲および本発明の思想に含まれる。
iノード−一般的に、データの記憶および検索を行うシステムによって持続的に保持されるディレクトリ項目(entry)または他のファイル記述子の項目のことをいう。好適な実施形態においては、i-ノードを有し、i-ノードは、そのファイルのために、持続的にディレクトリに記録される。当業界においては、用語「i-ノード」は時に、特にユニックスオペレーティングシステムおよびその変形物に特有とされるが、ここに注記したように、本明細書中ではより一般的に用いている。本発明においては、i-ノードはいかなる特定の構造を持たなくてはならないとも、もしくは、i-ノードが特定のフォーマットもしくは位置に記憶されねばならないとも、または、特定のオペレーティングシステム、記憶オペレーティングシステム、記憶構造、階層化ファイルシステム、ファイル名空間、もしくは、記憶パラダイムを有さねばならないとも、要請されていない。
・ファイルまたは他のオブジェクト−一般的に、連続するバイトのセット、データベースにおけるレコードのセット、オブジェクト指向データベースもしくはオブジェクト指向言語開発環境におけるソフトウェアオブジェクト、または、適当なユーザのリクエストに対して動的に生成されるデータのセットであろうとも、サーバにおけるあらゆるデータオブジェクトのことをいう。好適な実施形態においては、ファイルは、持続的に階層化ネーム空間に記録されているデータのセットを含み、また、ファイル属性のセットを有している。このことは好ましいが、ユーザのリクエストするファイルまたは他のオブジェクトがこれらの性質を有すること、または、他のいかなる性質を有することも、特に要請されていない。なぜならば、本発明の範囲および思想は、あらゆる種類のオブジェクトを含有するのに十分なほどに広いからである。
・ウィルス−一般的に、人間が作り出したプログラムまたはコードの断片であって、コンピュータユーザの認識なしに、そのコンピュータにロードされ、そして、ユーザの意に反して実行される。たいていのウィルスは自己複製可能であり、さらに危険なタイプのウィルスにあってはネットワークを介して自身を送信し、セキュリティーシステムを迂回する能力を有する。また、「ウィルス」はあらゆる悪意のあるコード、プログラム、または、他の内部コンポーネントを含み(これらに限定されないが、コンピュータウィルス、コンピュータワーム、コンピュータ時限爆弾、トロイの木馬、または、同様の効果を有するコンポーネントを含む。)、ソフトウェア、ファームウェア、もしくは、ハードウェアを、傷つけたり、破壊したり、改変したり、もしくは、制御することが可能で、また、様々な方法で、コンピュータによってアクセスもしくは処理されるあらゆるデータもしくは他の情報を、さまざまな方法で漏洩、損傷、破壊、もしくは、改変することが可能である。
・クライアントおよびサーバ−一般的に、これら用語は2つの装置間の関係性について述べている。特に、クライアントおよびサーバという関係性を述べる上で必ずしも特定の物理的な装置を必要としない。
例えば、これに制限されないが、第1サーバ装置と第1の関係性を有する特定のクライアント装置が、第2クライアント装置と第2の関係性を有してサーバ装置として機能することが可能である。好適な実施形態においては一般に、比較的少数のサーバ装置が比較的多数のクライアント装置に対して情報提供を行う。
・クライアント装置およびサーバ装置−一般に、これら用語は、(HTTPウェブクライアントおよびウェブサーバのように)クライアント−サーバ関係においてクライアント装置またはサーバ装置の役割を果たす装置をいう。いかなるクライアント装置またはサーバ装置も個別的な物理的装置でなければならないという特別な要求はない。これらは単一の装置であっても、協働する装置群であっても、装置の部分であっても、または、それらのうちのある組み合わせであってもよい。
例えば、これに制限されないが、クライアント−サーバ関係におけるクライアント装置およびサーバ装置は、実際には物理的に同一の装置とすることが可能であり、第1ソフトウェア要素群によりクライアント機能が発揮され、第2ソフトウェア要素群によりサーバ機能が発揮される。
本発明はクライアント−サーバモデルについて説明しているが、本発明においては、クライアント−サーバモデルを用いて、記憶されたデータは保持され、また、ユーザ間で通信されるという要請はない。例えば、ユーザのデータオブジェクトに対するリクエストが、1以上のコンピュータ装置群による分散的処理を始動させるような、別形態の分散型コンピューティングも、本発明の範囲内であり、また、本発明の思想に含まれる。
【0020】
上述のように、これらの用語に関する一般的な意味についての説明は、それらに限定することを意図したものではなく、例示を目的としている。本発明の他の、そして、さらなる適用は、これらの用語および概念の拡張も含まれているが、本出願を精読した後には、当業者にとっては明瞭であろう。これらの他の、そして、さらなる適用は本発明の範囲および本発明の思想の一部であり、それらは当業者であれば別の発明または必要以上の試験をせずとも明らかである。
【0021】
システムの要素
図1は分散化装置によるウィルススキャンのためのシステムに関するブロック図を示す。
【0022】
システム100はユーザ111と関連するクライアント装置110、通信ネットワーク120、ファイラ130、および、処理クラスタ140を有する。
【0023】
クライアント装置110はプロセッサ、主メモリ、および、命令を実行するためのソフトウェア(図示せず、だが当業者であれば理解する。)を有する。クライアント装置110およびファイラ130は別個の装置として示されるが、これらが物理的に分離していることを要求しない。
【0024】
好適な実施形態において、通信ネットワーク120はインターネットを含む。代替的実施形態において、通信ネットワーク120は、イントラネット、エクストラネット、仮想プライベートネットワーク、ダイレクト通信リンク、または、それらの組み合わせもしくは結合といった、代替的通信形態を含んでもよい。
【0025】
通信リンク115はクライアント装置110と通信ネットワーク120を接続している。
【0026】
ファイラ130はプロセッサ、主メモリ、命令を実行するためのソフトウェア(図示せず、だが当業者であれば理解する。)、および、大容量記憶装置131を有する。クライアント装置110およびファイラ130は個別の装置として示されているが、これらが個別的な装置である必要性はない。さらに、本発明は単一のファイラ130について説明しているが、本発明は等しく処理クラスタ140と共に動作するファイラ130群に対しても適用可能である。一組の複数ファイラ130では、各ファイラが独立的に動作し、かつ、各ファイラが個別的に処理クラスタ140を使用しても、もしくは、1グループとして連動して動作し、かつ、集合体として処理クラスタ140を利用してもよく、また、それらの組み合わせでもよい。以下に記すように、処理クラスタ140は1以上のクラスタ装置141を備えることが可能であり、本発明は、あらゆるM個のファイラの組み合わせとあらゆるN個のプロセッサの組み合わせにより実施可能である。MおよびNが固定されなければならない必要性は特になく、ファイラ130またはクラスタ装置141は、ファイラ130およびクラスタ装置141が動作している間に、操作者のコマンドもしくはハンドシェイクプロトコルにより、追加されてもよい。ファイラ130は通信ネットワーク120に接続されている。
【0027】
ファイラ130は、ファイラ130のプロセッサが容易にコンフィグレーション情報137にアクセスできるように、コンフィグレーション情報137を配置している。好適な実施形態においては、ファイラ130は、操作者の命令により、あるいは、指定された権限を有するリモートユーザにより、コンフィグレーション情報137をレビュー、レポート、または、修正するためのソフトウェア命令(software instruction)を有する。コンフィグレーション情報137には以下のものが含まれる。
・第1組ファイルタイプ、および、第2組ファイルタイプを示す情報。第1組ファイルタイプは、(しばしばファイル名の拡張子EXEで指定される、実行可能ファイルのように)ウィルススキャンを使用可能である。第2組ファイルタイプは、(しばしばファイル名の拡張子TXTで指定される、そのままのテキストファイル(raw text files)のように)ウィルススキャンを使用することはできない。
・第1ファイル空間、第2ファイル空間、および、第3ファイル空間を示す情報。第1ファイル空間は、(例えば、/users/Swernofskyといったルートディレクトリによって指定される第1CIFS「共有」のように)全てのファイル操作に対してウィルススキャンを使用可能である。第2ファイル空間は、(第2CIFS「共有」のように)ファイル書き込み操作に対してのみウィルススキャンを使用可能である。第3ファイル空間は、(第3CIFS「共有」のように)ウィルススキャンを使用することはできない。
および、
・各ファイルに対し、そのファイルがウィルススキャンされてきたことを示す情報。そして、もしスキャンされてきたのであれば、(タイムスタンプのように、)スキャンが実行された日時、(型式およびスキャンソフトウェアのバージョン番号のように、)どのようなスキャン装置およびスキャンソフトウェアにより、スキャンが実行されたか、ならびに、(ウィルスが検出されたのかどうか、および、実際にウィルスが検出されたのであれば、どのようなアクションがとられたのか、といった、)スキャンの結果がいかなるものであるのか、といった情報が示される。好適な実施形態においては、この情報はファイルのi-ノードに記録される。または、この情報は、(ファイルが読み出しオンリーのスナップショットの部分である場合のように、)ファイルが読み出しオンリーもしくはi-ノードが書き込み不可であれば、別のスキャン履歴データベースに記録される。
【0028】
大容量記憶装置131は、クライアント装置110からリクエスト可能な、少なくとも1つのファイル133を有する。処理クラスタ140は、1以上のクラスタ装置141を有し、クラスタ装置141それぞれはプロセッサ、主メモリ、命令を実行するためのソフトウェア、および、大容量記憶装置(図示せず、だが当業者であれば理解する。)を備えている。ファイラ130および処理クラスタ140は個別の装置として示されているが、これらが個別的な装置である必要性はない。
【0029】
好適な実施形態においては、処理クラスタ140は、相互通信およびファイラ130との直接通信可能な相互接続クラスタにおける複数のパーソナルコンピュータである。処理クラスタ140が統合されたクラスタとして編成されなければならないこと、または、ファイル130に対してローカルになければならないこと、または、処理装置の性質が均質でなければならないこと、または、他の特別な特性を有することは、特に要求されない。例えば、代替的実施形態においては、処理クラスタ140は、インターネットのようなネットワークにより、ファイラ130と接続されたPC、ワークステーション、サーバ、または、他の装置のセットを有する。
【0030】
好適な実施形態において、処理クラスタ140におけるクラスタ装置141は、自身の存在をファイラ130に登録しており、そうすることで、スキャン(または、その他の)操作での装置の利用可能性に関する認識をファイラ130に与える。このことは望ましいことだが、本発明にとっては登録することは特に必要ではない。なぜなら、代替的実施形態におけるファイラ130は、クラスタ装置141に対して「無名の(John Doe)」リクエストを送信して、ユーザのリクエストしたファイルを処理することを要求するように構成されている。
【0031】
クラスタリンク135は、処理クラスタ140とファイラ130とを接続する。クラスタリンク135は不均等メモリアクセス、または、イントラネット、エクストラネット、仮想プライベートネットワーク、ダイレクト通信リンク、または、それらの組み合わせもしくは結合による通信を含んでいてもよい。
【0032】
操作方法
図2は分散化装置のウィルススキャンのためのシステムの処理流れ図である。
【0033】
方法200は、一組の流れのポイントおよび一組のステップを有する。システム100が方法200を実施する。方法200は連続的に説明されているが、個々の要素は連動的または並列的に、非同期的にパイプライン方式で、また、その他の方式で、方法200のステップを実施可能である。方法200は、そのように指示されている場合を除き、本明細書に羅列したステップの順番と同一の順番で実施される必要性を有しない。
【0034】
流れのポイント200において、システム100は方法200を実施開始する用意ができている。
【0035】
ステップ211において、ユーザ111はクライアント装置110を利用し、ファイル133に対するリクエストを開始する。リクエストは通信ネットワーク120を介してファイラ130に送信される。好適な実施形態においては、ファイラ130はNFSまたはCIFSのようなファイルサーバプロトコルに応答して、ファイルの検索および記憶を実行する独立したファイルサーバである。代替的実施形態においては、ファイラ130は、補助的記憶装置、または、ウェブサーバのように、他のサーバの指示で動作するファイル保持サーバであってもよい。
【0036】
ステップ212において、ファイラ130はファイル133に対するリクエストを受け取り、ファイル133をウィルススキャンしなければならないかを決定する。本ステップの部分として、ファイラ130は以下の下位ステップを実行する。
・下位ステップ212(a)において、ファイラ130は、ファイル133が既にウィルススキャンを受けたかどうかについての情報をレビューする。好適な実施形態においては、この情報には、スキャンが既に実行されたかどうかについて、スキャンが実行された(タイムスタンプのような、)日時について、スキャンが実行された(型式およびスキャンソフトウェアのバージョン番号のような、)スキャン装置およびスキャンソフトウェアの種類について、ならびに、(ウィルスが検出されたかどうか、また、ウィルスが実際に検出されたのであれば、どのようなアクションがとられたのか、といった、)スキャンの結果についての情報が含まれる。上に記したように、好適な実施形態においては、この情報はファイル133に対するi-ノードに記録される。ファイル133が既にスキャンされ、使用可能であるとマークされれば(、かつ、再スキャンは不要と判断されれば)、ファイラ130は、スキャン操作を実行せずにそのファイルをユーザに対して使用可能とする。
・下位ステップ212(b)において、ファイラ130は、ウィルススキャンされるべきファイルのタイプをレビューする。ファイラは、(1)実行可能ファイル、マクロ、スクリプト、等、のようなウィルススキャンされるべき、および、(2)そのままのテキストファイル等のような、スキャンされるべきではない、ファイルタイプの組について記載しているコンフィグレーション情報137をレビューする。このファイルタイプの組の選択は、ファイラ130の操作者によってなされてよく、コンフィグレーション情報137で保持される。好適な実施形態においては、ファイルタイプは、ファイル名拡張子のような、ファイル133のファイル名の部分で識別される。周知のファイル名拡張子には、実行可能ファイルに対するEXE、そのままのテキストファイルに対するTXTがある。
・下位ステップ212(c)において、ファイラ130はウィルススキャンすべきファイル空間についての情報をレビューする。ファイラは、(1)全てのファイル操作に対してスキャンされるべき、(2)ファイルへの書き込み操作に対してのみスキャンされるべき、または、(3)一切のファイル操作に対してスキャンされずともよい、ファイル空間について記載しているコンフィグレーション情報をレビューする。全てのファイル操作に対してスキャンされるべきファイル空間では、ファイラ130は、ファイル133を、あらゆる読み出し操作で開かれる前にスキャンされるようにし、また、書き込み操作の後、閉じられた後にスキャンされるようにしている。書き込み操作に対してのみスキャンされるべきファイル空間では、ファイラ130は、ファイル133を、書き込み操作の後、閉じられた後にスキャンされるようにしている。
【0037】
ステップ213において、ファイル133をスキャンすべきと判断したファイラ130は、ファイル133のファイルIDおよびパスを処理クラスタ140に対して送信し、それをクラスタ装置141のうちの1つが受信する。本ステップの部分として、ファイラ130は、以下の下位ステップを実行する。
・下位ステップ213(a)において、ファイラ130はクラスタのプロセッサに対してタイマを設定し、そのタイムアウト値は、ファイラ130が、クラスタ装置の処理のために待機することを厭わない時間間隔を示している。
・下位ステップ213(b)において、ファイラ130は、クラスタ装置141が処理を完了するのを待つ。その間に、クラスタ装置141が、(願わくば、)以下に記載のステップ215、ステップ217、および、ステップ219を実行する。
・下位ステップ213(c)において、クラスタ装置141がタイムアウトまでに応答すれば、ファイラ130は、クラスタ装置141からの結果を用い、以下のステップ219に移行する。
・下位ステップ213(d)において、クラスタ装置141がタイムアウトまでに応答しなければ、ファイラ130は以下の2つの道筋のうちの1つに進んでもかまわない。(a)ファイラ130は、あたかもクラスタ装置141がファイルへのユーザのアクセスを拒否したかのように振舞い、ステップ219以下に移行する。この場合、ファイラ130は、スキャン失敗のため、ファイルは利用できない旨をレポートする。(b)ファイラ130がクラスタ装置141に対し、機能していますか?(ARE-YOU-WORKING?)メッセージを送信する。この場合、タイムアウトよりも短く、1秒以内に(within a second but shorter timeout)、クラスタ装置141が、まだファイル133の処理中であると応答すれば、ファイラ130は下位ステップ213(b)に戻って、タイムアウトをリセットする。
好適な実施形態においては、1よりも多い数のクラスタ装置141が存在するので、クラスタ装置141が特定の1つのファイル133のスキャンに非常に長い時間を費やしていても、ファイラ130は別のファイル133に対するサービスのリクエストに進むことができる。代替的実施形態においては、ファイラ130が、第1クラスタ装置は実際にはクラッシュしている、使用不可能となっている、または、そうではないとしてもファイル133に対するウィルススキャンの結果に関しては上手く応答していない、と推測すれば、ファイラ130は、そのスキャンのタスクを第2クラスタ装置に再び委託(reaasign)してもよい。
・ファイル133に対し、もともとのリクエストをしているユーザが、ファイル133についてのクラスタ装置141のレポートが出る前に、そのリクエストを放棄するような事象において、ファイラ130はそれでもなお、クラスタ装置141からのレポートを待ち、クラスタ装置141によってなされたウィルススキャンの結果でファイル133をマークする。よって、クラスタ装置141が、ファイル133は一切のウィルスを含まない(または、代わりに、ウィルスを発見したが成功裡に除去されている)と判断すれば、ファイラ130が、そのファイルは首尾よくスキャンされ、利用可能であるようにマークする。同一のユーザまたは別のユーザが後に同一のファイル133をリクエストすれば、ファイラ130は、以下に記すように、さらなるスキャンなしでそのファイル133を利用可能にする。
【0038】
ステップ215において、クラスタ装置141はファイルIDおよびパスを利用してファイラ130の大容量記憶装置131のファイル133を開く。
【0039】
ステップ217において、クラスタ装置141はファイル133のウィルススキャンを行う。好適な実施形態においては、ファイルは総当り方式(round robin fashion)で処理クラスタに課せられる(be tasked to the processing cluster 140)。代替的実施形態において、ファイルはクラスタ装置141によって個別的に処理されてもよく、複数のクラスタ装置141によって同時的にされてもよく、また、それらの組み合わせでもよい。処理クラスタ140内における処理の最大効率化を確保する目的で、負荷分散(load balancing)を用いてもよい。
【0040】
好適な実施形態において、ファイラ130は、クラスタ装置141を、プライマリやセカンダリのような、1以上のクラスにグループ化し、ここで、全てのプライマリ・クラスタ装置141は、セカンダリ・クラスタ装置141を従えて、指定される。これにより、操作者は、例えば比較的高速な接続を用いることが可能であるような、第1クラスタ装置141のみをファイラ130に使用させることが可能であり、また、何らかの理由で第1クラスタ装置141が使用不可能な場合には、例えばそれほど高速ではない接続を用いることが可能な、第2に指定されているクラスタ装置141を用いるために通信速度を落とさせる(fall back)ことが可能である。
【0041】
パーソナルコンピュータ向けのウィルス保護ソフトを提供するベンダーは数社あるので、ファイラ130の操作者は、使用したい、本明細書に記載のファイラ130との通信プロトコルをサポートしている製品なら何を選んでもよい。また、本明細書に記載のファイラ130との通信プロトコルを用いて動作可能な組み合わせであれば、処理クラスタ140において複数ベンダーの製品を組み合わせて使用することすらかまわない。代替的実施形態においては、ファイラ130は、本明細書に記載のファイラ130との通信プロトコルをサポートしていないウィルス保護ソフトウェア形式で動作してもよく、その場合、そのようなウィルス保護ソフトウェア形式に対しては、(タイムアウト、および、機能していますか?メッセージのような)幾つかの特徴は利用できない。本発明のさらなる代替的実施形態においては、ファイラ130のあらゆるファイル133に対して継続的にスキャンが行われてもよい。
【0042】
処理クラスタ140は高度な拡張性を有する。パーソナルコンピュータの価格は、ファイラのような専用の装置に較べて低価格であるので、このような構成は非常に望ましいものである。加えて、クラスタの構成により、クラスタ装置141が機能停止した場合における代理機能システム(redundant systems)を提供し、処理クラスタ内部においてフェイルオーバー(failover)およびテイクオーバー(takeover)も可能である。
【0043】
クラスタ装置141は、(ここでは「スキャン用開放(OPEN-FOR-SCANNING)」と称する)特別なタイプのアクセスがアサインされており、それにより、クラスタ装置141はファイル133が他のユーザにより既にロックされていようとなかろうと、ファイル133をスキャン可能である。好適な実施形態においては、スキャン用開放モードは、ファイラ130が本当にクラスタ装置141であると確かめることができる装置に限定されている。好適な実施形態において、ファイラ130は、スキャン用開放モードを以下の基準の1つ以上に従う装置に制限することができる。
・1以上の選択されたIPアドレスを有すること。
・1以上の選択されたIPサブネットを含んでいること。
・1以上の選択されたDNSドメインを含んでいること。
・1以上の選択された物理的インターフェースを介してファイラ130にアクセス可能であること。
・クラスタ装置141において、(「管理者(Administrator)」または「バックアップオペレータ(Backup Operator)」といった)選択されたユーザ名またはユーザ権限を有すること。
【0044】
好適な実施形態において、スキャン用開放モードのアクセスは、クラスタ装置141上でNT「サービス」として実行している処理に限定される。従って、選択されたクラスタ装置141を、何ら特定の特殊な権限を持たないユーザが使用してもよく、またその一方で、クラスタ装置141は同時に「管理者」として実行されているサービスで動作しており、ファイラ130によるスキャン用開放モードのアクセスを可能としている。
【0045】
ステップ219において、クラスタ装置141はスキャンリポートをファイラ130に送信する。スキャンリポートは主としてファイルが送信しても安全であるかについて報告する。別の情報についても、データベースに統計上の目的で保存してもよい(例えば、どれくらいのファイルが感染していると特定されたか、ウィルスソフトウェアはそのファイルを駆除(sanitize)できたか、または、ファイルは削除されたか)。続いて受信されたリクエストに基づく送信に際し、その前にファイル133をスキャンする必要があるかどうかを、前記データベースを参考にして決定してもよい。ファイル133が、最後にスキャンを受けて以来、変更を受けておらず、かつ、さらなるウィルスデータファイルが処理クラスタに付加されていなければ、ファイル133は、おそらくスキャンを受ける必要はない。つまり、ファイル133はさらに迅速に送信可能である。
【0046】
他の中間的アプリケーションも、処理クラスタ140内において独立して実行しても、他のアプリケーションと結合して実行しても、または、その組み合わせとして実行してもよい。圧縮および暗号化ユーティリティはこれらアプリケーションの例である。ウィルススキャンを含むこれらのアプリケーションは、非常にCPUに負担をかけるものであり、したがってアウトソーシングによりファイラのような専用の装置が最もすべきことを実行し、他のタスクは処理クラスタ141に請け負わせることが可能となり、よりよいパフォーマンスをもたらす。
【0047】
本ステップの部分として、ファイラ130はまた、以下の下位ステップを実行してもよい。
・下位ステップ219(a)において、ファイラ130は、ファイル133に対するi-ノード内に、または、ファイルが読み出しオンリーの場合、上述の如く、別個のスキャン履歴データベース内に、スキャンレポートからの情報を記録する。
・好適な実施形態においては、ファイラ130は、操作者または権限を有するリモートユーザによるファイルに対するスキャン情報のリセットに応じるための、ソフトウェア的命令を備えている。これにより、操作者または権限を有するリモートユーザは、ファイラ130に1以上の選択されたファイル133を再スキャンさせることができる。
【0048】
ステップ221において、ファイラ130は、処理クラスタ140によるスキャンを受けて報告される利用可能性に基づいてファイル133をクライアント110に向けて送信する、または、送信しない。スキャンレポートのある部分については、ユーザへ送信してもよい。本ステップの部分として、ファイラ130は以下の下位ステップを実行する。
・下位ステップ221(a)において、クラスタ装置141からのレポートが、ファイル133は感染していることを理由として使用不可(、かつ、ファイル133はクラスタ装置141によって感染したのではない)ならば、ファイラ130はリクエストしたユーザに、クラスタ装置141からのレポートの情報の、少なくとも幾分かを示している、メッセージボックスを送信する。ファイラ130は、このメッセージボックスを、CIFSリクエストを作成して、ユーザへ送信可能である。なぜならば、CIFSプロトコルにより、ファイラ130がユーザのIP(インターネットプロトコル)アドレスを知ることができるからである。NFSの場合、ファイラ130はリクエストされたファイル133のパスを示す文字列を構成し、ユーザに、この文字列を含めたメッセージを送信する。
【0049】
本ステップにおいて、ファイル133に対するリクエストは受信されており、前記リクエストは処理され、そして、可能であるのならばファイル133は配信される。本処理は後のリクエストに対して、ステップ211から繰り返されてよい。
【0050】
本発明の一般性
本発明は、ファイルに対する処理要求の別の態様に対して広範な利用可能性および一般性を有する。
【0051】
本発明は、1以上の、以下を含むような環境に、または、それらの組み合わせに対して利用可能である。
・ファイル圧縮および解凍―ユーザへ送信するデータを解凍する目的、および、ユーザから受け取った記憶すべきデータを圧縮する目的で、クラスタのプロセッサを使用することができる。
・ファイル暗号化および解読―ユーザへ送信するデータを解読する目的、および、ユーザから受け取った記憶すべきデータを暗号化する目的で、クラスタのプロセッサを使用することができる。
・データベース簡潔化(database compaction)―ユーザへ送信するための、データベース、もしくは、他の構造を有するフォーマットのデータを簡潔(compact)にする目的、または、ユーザから受け取った記憶すべきデータを簡潔にする目的で、クラスタのプロセッサを使用することができる。
・CPUに負担をかけるタスクを専用装置から多目的コンピュータへ委託する、一般的なアウトソーシング―1つの例としては、第1形式で記憶されているデータとユーザに提示される第2形式のデータとの間の変換に、クラスタのプロセッサを使用することができる。
【0052】
代替的実施形態
本明細書において好適な実施形態について開示したが、本発明の概念、範囲、および、思想の範囲内においてさまざまな変形例が可能である。これらの変形例は、本出願を精読の後には当業者にとって明白である。
【図面の簡単な説明】
【0053】
【図1】分散化された装置でのウィルススキャンのためのシステムのブロック図である。
【図2】分散的ウィルススキャンのためのシステムの処理の流れ図である。
【符号の説明】
【0054】
100 ・・ システム 110 ・・ クライアント装置
111 ・・ ユーザ 115 ・・ 通信リンク
120 ・・ 通信ネットワーク 130 ・・ ファイラ
131 ・・ 大容量記憶装置 133 ・・ ファイル
135 ・・ クラスタリンク 137 ・・ コンフィグレーション情報
140 ・・ 処理クラスタ 141 ・・ クラスタ装置

【特許請求の範囲】
【請求項1】
サーバにおいて、ユーザからの、該サーバに保存されたオブジェクトに対するリクエストを受け取るステップと、
前記サーバにおいて、前記ユーザからのリクエストに応じて、クラスタ装置に、前記オブジェクトと関連するデータに対する操作を実行させるか否かの決定をするステップであって、前記操作は前記サーバに保存された前記オブジェクトへアクセスすることを含み、前記クラスタ装置は前記サーバとは別個の装置であり、前記クラスタ装置は前記ユーザから前記オブジェクトへの経路上になく、当該決定をするステップは、前記オブジェクトのタイプと、前記ユーザからの前記リクエストに伴うアクセスのタイプと、前記オブジェクトを格納するファイル空間と、に基づいて、前記クラスタ装置に前記操作を実行させるか否かを決定するステップを含んでいる、決定をするステップと、
前記決定をするステップの特定の結果に応じて、前記クラスタ装置に前記操作を実行させるステップであって、当該前記クラスタ装置に前記操作を実行させるステップは、前記オブジェクトが別のユーザによってロックされている場合に、前記サーバが、前記クラスタ装置に前記操作を実行させるために前記クラスタ装置が前記オブジェクトへアクセスすることを許可するステップを含んでいる、前記クラスタ装置に前記操作を実行させるステップと、
前記サーバにおいて、前記クラスタ装置から前記操作の結果を受け取るステップと、
前記サーバにおいて、前記操作の結果に基づいて、前記ユーザに対し、前記オブジェクトへアクセスすることを許可するステップ、を有する方法。
【請求項2】
前記操作が、複数の処理を含み、個々の処理が別個のクラスタ装置において実行される、請求項1に記載の方法。
【請求項3】
前記サーバが前記操作に対するタイムアウトを実施し、
たとえ前記タイムアウトが終了しようとも、前記クラスタ装置は前記操作を完了し、また、前記操作の前記結果を前記サーバに報告し、かつ、
前記サーバが、前記操作の前記結果を見込まれる後の使用のために記憶する、ことを特徴とする請求項1に記載の方法。
【請求項4】
前記操作にウィルススキャンが含まれる、ことを特徴とする請求項1に記載の方法。
【請求項5】
前記クラスタ装置が前記オブジェクトへのアクセスのためのスキャン用開放許可を有する場合に限り、前記操作が実行され、かつ、
前記クラスタ装置が前記オブジェクトへのアクセスのためのスキャン用開放許可を有する場合、たとえ前記オブジェクトが他のユーザまたは装置によってロックされていようとも前記操作が実行される、ことを特徴とする請求項4に記載の方法。
【請求項6】
複数のオブジェクトからなるオブジェクトのセットを保存し、かつ、ネットワークインターフェースを備えるサーバと、
ユーザから前記サーバに保存された前記オブジェクトへの経路上になく、かつ、前記サーバに接続された、クラスタ装置と、を有する装置であって、
前記サーバが、ユーザから、前記オブジェクトのセットのうちの1つのオブジェクトに対するリクエストを、前記ネットワークインターフェースを介して、受け取った場合には、前記サーバは、前記クラスタ装置に、前記1つのオブジェクトと関連するデータに対する操作を実行させるか否かの決定をし、前記操作は前記サーバに保存された前記1つのオブジェクトへアクセスすることを含み、前記サーバは、前記1つのオブジェクトのタイプと、前記ユーザからの前記リクエストに伴うアクセスのタイプと、前記1つのオブジェクトを格納するファイル空間と、に基づいて、前記クラスタ装置に前記操作を実行させるか否かの決定をし、オブジェクトの前記タイプは、ファイル名、ファイルタイプ、および、共有ファイルシステム、の少なくとも1つを含み、前記サーバは、前記クラスタ装置に対し、前記1つのオブジェクトを示す第1メッセージを送り、前記決定の結果に応じて、前記クラスタ装置に前記操作を実行させ、前記1つのオブジェクトが別のユーザによってロックされている場合に、前記サーバは、前記クラスタ装置に前記操作を実行させるために前記クラスタ装置が前記オブジェクトへアクセスすることを許可し、前記クラスタ装置は、前記サーバに対し、前記操作の結果を示す第2メッセージを送り、前記サーバは、前記第2メッセージにもとづいて、前記ユーザからの前記リクエストに対する応答において、前記ユーザに対し、前記1つのオブジェクトへアクセスすることを許可する、ことを特徴とする装置。
【請求項7】
前記サーバが前記第2メッセージに対するタイムアウトを実施し、
前記クラスタ装置は、たとえ前記タイムアウトが終了しようとも、前記第2メッセージを前記サーバに対して送信し、かつ、
前記サーバが、前記操作の結果を見込まれる後の使用のために記憶する、ことを特徴とする請求項6に記載の装置。
【請求項8】
前記操作にウィルススキャンが含まれる、ことを特徴とする請求項6に記載の装置。
【請求項9】
前記クラスタ装置が前記1つのオブジェクトへのアクセスのためのスキャン用開放許可を有する場合に限り、前記操作が実行され、かつ、
前記クラスタ装置が前記1つのオブジェクトへのアクセスのためのスキャン用開放許可を有する場合、たとえ前記1つのオブジェクトが他のユーザまたは装置によってロックされていようとも前記操作が実行される、ことを特徴とする請求項8に記載の装置。
【請求項10】
オブジェクトの前記タイプは、ファイル名、ファイルタイプ、および、共有ファイルシステム、の少なくとも1つを含む、請求項1に記載の方法。
【請求項11】
サーバにおいて、ユーザからの、該サーバに保存されたオブジェクトに対するリクエストを受け取るステップと、
前記オブジェクトが別のユーザによってロックされている場合に、前記サーバが、クラスタ装置に前記オブジェクトに対する操作を実行させるために前記クラスタ装置が前記オブジェクトへアクセスすることを許可するステップと、
前記サーバにおいて、前記クラスタ装置に、前記操作を実行させるステップと、
前記サーバにおいて、前記クラスタ装置から前記操作の結果を受け取るステップと、
前記ユーザのリクエストに対する応答において、前記操作の結果に基づいて、前記ユーザに対し、前記オブジェクトへアクセスすることを許可するステップと、を有する方法。
【請求項12】
複数のオブジェクトからなるオブジェクトのセットを保存し、かつ、ネットワークインターフェースを備えるサーバと、
ユーザから前記サーバに保存された前記オブジェクトへの経路上になく、かつ、前記サーバに接続された、クラスタ装置と、を有する装置であって、
前記サーバは、ユーザから、前記オブジェクトのセットのうちの1つのオブジェクトに対するリクエストを、前記ネットワークインターフェースを介して、受け取り、
前記1つのオブジェクトが別のユーザによってロックされている場合に、前記サーバは、前記サーバとは別個の装置である前記クラスタ装置に前記1つのオブジェクトに対する操作を実行させるために前記クラスタ装置が前記1つのオブジェクトへアクセスすることを許可し、
前記サーバは、前記クラスタ装置に、前記操作を実行させ、
前記サーバは、前記クラスタ装置から前記操作の結果を受け取り、
前記サーバは、前記ユーザのリクエストに対する応答において、前記操作の結果に基づいて、前記ユーザに対し、前記1つのオブジェクトへアクセスすることを許可する、装置。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2008−305418(P2008−305418A)
【公開日】平成20年12月18日(2008.12.18)
【国際特許分類】
【出願番号】特願2008−177614(P2008−177614)
【出願日】平成20年7月8日(2008.7.8)
【分割の表示】特願2002−591987(P2002−591987)の分割
【原出願日】平成13年11月30日(2001.11.30)
【出願人】(303039534)ネットワーク アプライアンス, インコーポレイテッド (27)
【Fターム(参考)】