(57)【要約】  クライアント装置は、ネットワーク環境において、サーバーに対してゲートウェイ経由で要求を送信する。要求は、ダウンロード・プロセスの一部として送信されるべき、サーバー上のファイルの特定部分を示す。ゲートウェイは、ファイルの要求された部分をメモリーに受信し、受信された部分を組み立てファイルに組み立てる。ゲートウェイは、受信された部分がクライアント・コンピューターに供給される前の、ファイルの要求された部分が受信されて利用可能となる期間に、前記組み立てファイルにおける最大の連続した部分を、ウィルスについて連続的にスキャンする。新しい部分が利用可能となる期間に最大の連続した部分をスキャンすることにより、スキャンを完成するための時間が短縮され、それにより、ゲートウェイのスループットが向上する。
2010528370.tif 000002
【特許請求の範囲】
【請求項１】
送信されるべきコンテンツ・ファイル（１０９）の特定部分を示す要求をサーバー（１０８）に送信するステップと、
前記コンテンツ・ファイル（１０９）の前記要求された部分を、前記サーバー（１０８）から周期的に受信するステップと、
前記受信された部分（１２６）を、連続する受信された部分（１２６）のブロックに組み立てるステップと、
前記要求された部分（１１４）が受信されている期間に、前記ブロックのうち最大のものにおいて、前記受信された部分（１２６）を、連続的にウィルスについてスキャンするステップと、
前記スキャンされた受信された部分（１２６）を、クライアント・コンピューター（１０２）に供給するステップと、
を備える方法。
【請求項２】
前記コンテンツ・ファイル（１０９）が、元の連続した順序に並べられた部分を含んでおり、
前記受信された部分（１２６）が、前記元の連続した順序で組み立てられ、
前記ブロックのうち最大のものにおいて前記受信された部分（１２６）をスキャンするステップが、前記最大のブロックにおいて、前記元の連続的な順序で、連続する受信された部分（１２６）をスキャンするステップを含む、
請求項１記載の方法。
【請求項３】
スキャンするステップが、前記最大ブロックにおける前記部分を、ウィルス・シグナチャーと比較するステップを含む、請求項２記載の方法。
【請求項４】
ウィルスを含む可能性が高い前記最大ブロックにおける受信した部分（１２６）を特定するステップと、
特定されなかった受信された部分（１２６）をスキャンせずに、前記特定された受信された部分（１２６）をスキャンするステップと
を更に含む、請求項１記載の方法。
【請求項５】
ウィルスの表示を提供するステップと、
ウィルスの表示に際して、前記ウィルスを含む受信された部分（１２６）を取り除くステップと
を更に含む、請求項４記載の方法。
【請求項６】
前記要求が、前記ファイル（１０９）の送信されるべき特定部分を、連続的な順序で又は連続的な順序なしで示す、請求項１記載の方法。
【請求項７】
コンテンツを送信するシステムであって、
コンテンツ・ファイル（１０９）を元の連続的な順序を有する複数の部分に断片化する第１のコンピューター（１０８）と、
ネットワークを介して前記第１のコンピューター及び第２のコンピューターと結合されたゲートウェイ（１０４）と、
前記ゲートウェイ（１０４）を介して前記第１のコンピューター（１０８）から複数の部分（１１４）を要求する前記第２のコンピューター（１０２）と、
を備え、
前記第１のコンピューターが、前記要求に対応する前記複数の部分（１１４）を送信し、
前記ゲートウェイ（１０４）が、前記複数の部分（１１４）をメモリー（１２４）に受信し、前記複数の部分が受信される期間に、前記受信された部分（１２６）を前記元の連続的な順序で組み立てファイルに組み立て、最大の連続した部分（１２６）を、前記組み立てファイル内において、前記連続的な順序でウィルスについてスキャンし、前記スキャンされた組み立てファイル（１２６）を複数の分解された部分（１１６）に分解し、前記分解された部分（１１６）を前記第２のコンピューター（１０２）に供給し、
前記第２のコンピューター（１０２）が、前記分解された部分（１１６）を受信し、前記分解された部分（１１６）を前記元の連続的な順序（１０９）で組み立てるシステム。
【請求項８】
前記第２のコンピューター（１０２）が、前記複数の部分の一部を、前記連続的な順序なしに送信されるよう要求する、請求項７記載のシステム。
【請求項９】
前記スキャンされた組み立てファイルが分解され、該分解された部分（１１６）が、他の要求された部分が受信される期間に前記第２のコンピューター１０２に供給される、請求項７記載のシステム。
【請求項１０】
前記分解された部分（１１６）が、前記要求された順序で前記第２のコンピューターに供給される、請求項７記載のシステム。
【請求項１１】
前記分解された部分（１１６）を前記第２のコンピューターに供給することが、前記組み立てファイルをスキャンする際にウィルスが供給された場合に中断される、請求項７記載のシステム。
【請求項１２】
前記組み立てファイルをスキャンする際にウィルスが検出された場合に、前記第２のコンピューターに表示が提供される、請求項７記載のシステム。
【請求項１３】
前記第１のコンピューターがサーバー（１０８）であり、前記第２のコンピューターがクライアント・コンピューター（１０２）である、請求項７記載のシステム。
【請求項１４】
元の連続的な順序に並べられた部分を含むコンテンツ・ファイル（１０９）を送信するための命令を有するコンピューター読み取り可能媒体であって、前記命令が、一つ又はそれ以上のプロセッサーにより実行された際に、
前記コンテンツ・ファイル（１０９）のどの特定部分が前記元の連続的な順序で送信されるべきか、及び前記ファイルのどの特定部分が前記元の連続的な順序ではなく送信されるべきかを示す要求をサーバー（１０８）に送信するステップと、
前記ファイルの前記特定部分（１２６）を、前記元の連続的な順序で、前記組み立てファイル（１２４）に周期的に受信し、格納するステップと、
前記組み立てファイル（１２６）の最大の受信された連続的な特定部分を、前記元の連続的な順序で、ウィルスについて連続的にスキャンするステップであって、前記組み立てファイル（１２６）が、他の要求された特定部分（１１４）が受信されている期間にスキャンされるステップと、
前記スキャンされたファイル（１２６）の部分を、クライアント・コンピューター（１０２）に供給するステップと、
を備えるコンピューター読み取り可能媒体。
【請求項１５】
受信された特定部分（１２６）が、メモリー内に連続的な順序で組織され、
前記組み立てファイル（１２６）をスキャンするステップが、前記連続的な順序で格納された特定部分のうち、最大の連続した部分をスキャンするステップを含む、
請求項１４記載のシステム。
【請求項１６】
前記受信された部分（１２６）が、ネットワーク１０６を介して、前記要求された順序で前記クライアント・コンピューター（１０２）に供給される、請求項１４記載のコンピューター読み取り可能媒体。
【請求項１７】
前記組み立てファイル（１２６）を連続的にスキャンする際にウィルスが検出された場合に、前記受信された部分（１２６）を前記クライアント・コンピューター（１０２）に供給するステップが中断される、請求項１４記載のコンピューター読み取り可能媒体。
【請求項１８】
前記組み立てファイル（１２６）を連続的にスキャンする際にウィルスが検出された場合に、前記クライアント・コンピューター（１０２）に表示を提供するステップを更に含む、請求項１４記載のコンピューター読み取り可能媒体。
【請求項１９】
前記スキャンされた組み立てファイルが、分解された部分（１１６）に分解され、前記分解された部分（１１６）が、他の特定部分が受信されている期間に前記クライアント・コンピューター（１０２）に供給される、請求項１４記載のコンピューター読み取り可能媒体。
【請求項２０】
ウィルスが検出された場合に、前記要求されたファイル（１１４）の表示を格納するステップと、
前記要求されたファイル（１０９）の前記特定部分に対する将来の要求において、前記ファイル（１１４）の特定部分に対する要求を拒絶するステップと
を更に備える、請求項１４記載のコンピューター読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューター・アプリケーションで遠隔ロケーションからファイルをダウンロードするための、一般に受け入れられている２つの方法がある。第１の方法では、クライアント・コンピューターが直接又はネットワーク・ゲートウェイを介してサーバーに接続する。クライアント・コンピューターは、ファイル全体を一度に送信するよう、サーバーに対する要求を送信する。サーバーは、典型的にはパケットの形で、ファイル全体をクライアントに送信することにより、要求に応答する。第２の方法では、クライアント・コンピューターは、各要求がファイルの特定部分を要求する一連の要求を、サーバー又は（例えば、ピア・ツー・ピア・ネットワークにおいて）ピア・コンピューターに送信する。
【０００２】
ファイルの特定部分を要求することは、ファイル全体を一度に要求するよりも望ましい。何故なら、接続が切れた場合に、ダウンロードの再開が可能となるからである。ファイルの特定部分を要求することは、また、クライアント・コンピューターが、より多くの帯域が利用可能な場合にはより多くの部分を要求し、より少ない領域しか利用できない場合には、より少ない部分を要求することができるため、利用可能な帯域のより効率的な利用を可能とする。
【０００３】
同一ファイルからダウンロードされた部分は、異なるサイズであってもよく、順序と関係なく受信されても、先にダウンロードされた部分と重複したりしてもよい。これは、ネットワーク・ゲートウェイ（又はホスト・コンピューター）に配置されたアンチウィルス（ＡＶ）・アプリケーションがアンチウィルス・スキャニングとルーティングされたトラフィックの検査とを実行する際に、該アプリケーションに困難をもたらす。スキャニングのプロセスは、遠隔ロケーションからダウンロードされたコンテンツと比較される、ウィルス参照シグナチャー（virus reference signature）又は発見的パターンを含むＡＶアプリケーションを含む。多くの場合において、アンチウィルス・アプリケーションは、ファイルにウィルスが埋め込まれていないことを保証するために、ファイル全体をスキャンしなければならない。
【０００４】
通常、ファイルの一部が要求された後で、アンチウィルス・スキャニングのためにファイル全体をダウンロードすることは不可能である。ファイル全体は非常に大きいかもしれず、ダウンロードを完成するために、かなりのネットワーク帯域と時間を要するかもしれない。既存のＡＶソリューションでは、スキャニング前にファイル全体をダウンロードしようと試みるか、又は、ダウンロードされた部分のコンテンツにスキャンを限定する。コンテンツのダウンロードされた部分のみを検査することは、ウィルス検出のために十分ではない。ウィルス・シグナチャーは、ファイルの２つ又はそれ以上の部分にわたって広がっており、ファイルの部分それぞれが別個にスキャンされた場合には、特定不可能であり得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
要約
本要約は、概念を、以下の詳細な説明において更に説明される簡易化された形態で紹介するために提供される。本要約は、特許請求の範囲に記載された発明の主要な特徴又は不可欠な特徴を特定することを意図しておらず、特許請求の範囲に記載された発明の範囲を限定するために利用されることも意図していない。
【０００６】
ここでは、他の事項と共に、コンテンツのアンチウィルス・スキャニングに利用される様々な技術の実施の形態を説明する。一つの実施の形態によれば、クライアント装置は、ネットワーク・ゲートウェイを介して、サーバーにコンテンツのダウンロード要求を送信する。要求は、コンテンツの送信されるべき特定の部分と、該部分が送信されるべき順序とを特定する。ゲートウェイは、コンテンツの要求された部分を、メモリーに受信する。該部分は、ブロックに組み立てられ、サーバーに格納されていたときと同一の順序に並べられる。この配列は、当該部分がネットワーク経由で受信される順序とは異なるかもしれない。ゲートウェイは、ファイルの要求された部分が受信される期間に、最大の連続した数の部分を備えるブロックを、ウィルスについてスキャンする。
【０００７】
最大の連続した数の部分を備えるブロックをスキャンすることにより、部分の境界を超えてウィルスを迅速に特定することが可能となり、ウィルスが検出された場合には、残りのダウンロードを中断することができる。これは、部分でダウンロードされるファイルを完全に遮断したり、それらをウィルス・スキャンしなかったりといった、従来の効率的ではないソリューションを回避しながら実行可能であり、正常なエンド・ユーザー体験を保ち、そのようなダウンロードの発生を可能としながら、ゲートウェイによって提供されるセキュリティを高める。
【０００８】
ゲートウェイが、ゲートウェイにおいてファイル全体が利用可能となる前に、ファイルの部分の小さな組み合わせを検査するので、最後の部分が受信されると、ファイル全体に対して最終的なスキャンが実施される。最終的なスキャンは、ウィルス・シグナチャーの一部のみが比較されればよいため、ゲートウェイがファイル全体が利用可能となるまで待っていた場合よりも速くなり得る。更に、ゲートウェイは、感染ファイルのダウンロードを中断することができるため、より多くの要求を処理することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、部分的に利用可能なコンテンツのアンチウィルス・スキャニングが実現され得る、例としてのアーキテクチャーを示す。
【図２ａ】図２ａは、図１のゲートウェイによって受信され、組み立てられ、スキャンされるコンテンツを示す図である。
【図２ｂ】図２ｂは、図１のゲートウェイによって受信され、組み立てられ、スキャンされるコンテンツを示す図である。
【図２ｃ】図２ｃは、図１のゲートウェイによって受信され、組み立てられ、スキャンされるコンテンツを示す図である。
【図３】図３は、アンチウィルス・スキャニング・システムのネットワーク・ゲートウェイにおける選択されたモジュールを示すブロック図である。
【図４】図４は、コンテンツがゲートウェイでルーティングされる最中に、部分的に利用可能なコンテンツをスキャンするために利用される例としてのプロセスのフロー図である。
【発明を実施するための形態】
【００１０】
発明の詳細な説明は、添付の図面を参照して記載される。図面において、参照番号の最も左側の桁は、該参照番号が最初に現れた図面を示す。異なる図面における同一の参照番号の使用は、類似又は同一のアイテムを示す。
【００１１】
概要
ここでは、他の事項と共に、コンテンツのアンチウィルス・スキャニングに利用される様々な技術の実施の形態を説明する。本明細書に記載される一つの実施の形態によれば、アンチウィルス・スキャニング・システムは、クライアントのコンピューター装置からの要求に応じて、ネットワーク・ゲートウェイ（又は任意のホスト・コンピューター）を介して、サーバー（又は任意のピア・コンピューター）からクライアントのコンピューター装置に対し、コンテンツの部分を転送する。当該部分は、ゲートウェイによって受信され、組み立てファイルに組み立てられる。ゲートウェイは、ファイルの要求された部分が受信される期間に、組み立てファイル内にある最大の連続した数の部分のブロックを、ウィルスについてスキャンする。
【００１２】
例としてのシステム・アーキテクチャー
図１は、ネットワーク・ゲートウェイ１０４を介してネットワーク１０６を介してサーバー１０８ａ〜１０８ｎに結合されたクライアント・コンピューター装置１０２ａ〜１０２ｎを含むウィルス検出システム１００を示す。ゲートウェイ１０４が図示されているが、ウィルス・スキャンをすることができる任意の種別のネットワーク処理機器が、ゲートウェイ１０４と置換されてもよい。そのような処理装置の例には、プロキシー・サーバー及び汎用コンピューターが含まれる。
【００１３】
サーバー１０８ａにはコンテンツ・ファイル１０９が格納される。該コンテンツ・ファイルは、元の連続した順序で並べられた部分１〜１０を有する。一つの実施の形態において、クライアント・コンピューター装置１０２ａは、サーバー１０８ａに格納されたコンテンツ・ファイル１０９のどの部分１１０がダウンロードされるべきかを示す要求を送信する。具体的に、装置１０２ａは、部分１１０が、１、２、３、６、７、９、１０、４、８、５という要求された順序で送信されることを要求する。ゲートウェイ１０４は、次に、ネットワーク１０６を介してサーバー１０８ａに部分要求１１２を供給する。サーバー１０８ａは、ゲートウェイ１０４に対し、部分１１４として、要求された順序で部分１０９を送信することにより応答する。
【００１４】
ゲートウェイ１０４は、一つ又はそれ以上のプロセッサー１２２及びメモリー１２４を含む。メモリー１２４には、組み立てファイル１２６及びデータストア１２８が格納される。部分１１４はゲートウェイ１０４によって受信され、プロセッサー１２２を用いてメモリー１２４に格納される。例としての実施の形態において、部分１１４が受信される際に、プロセッサー１２２は、受信された部分を、元の連続的な順序で、組み立てファイル１２６内のブロックに構成する。また、部分が受信されると、ウィルスがいるか否かを決定するために、組み立てファイル１２６内の連続した部分の最大ブロックがスキャンされる。スキャニングのプロセスの例が、図２ａ〜図２ｃに示される。
【００１５】
ウィルス・シグナチャーはデータストア１２８に格納される。データストア１２８は、新しいウィルス・シグナチャーによって周期的に更新される。一つの実施の形態において、スキャニングは、組み立てファイル１２６の部分をウィルス・シグナチャーと比較することによって実行される。もう一つの実施の形態において、アンチウィルス・スキャニングはシグナチャー比較に限定されない。スキャニングは、まず、コンテンツの種別を決定してから、（シグナチャーを探す）正規表現マッチング及び行動分析を実行し、隔離された環境でファイルの部分を実行して、実行された部分が何をしようとするかを観察することにより、実行されてもよい。
【００１６】
一つの実施の形態において、ウィルスを含まないことがわかっている、又は、ウィルスを含むことがわかっている組み立てファイル１２６の特定の部分が特定され得る。スキャニングの際に、ウィルスを含まないとわかっている部分は飛ばされ得る。一つの実施の形態において、ＡＶエンジンは、コンテンツを検査するために、ファイル全体をスキャンする必要があることを決定する（例えば、全体ファイルがなければ圧縮解除できないアーカイブである場合）。このような場合、ＡＶエンジンは、例えば全ての部分が利用可能である際に、ファイルを一度だけスキャンする。
【００１７】
スキャニングの際にウィルスが検出されなかった場合、ゲートウェイ１０４は、全体が要求された（又は部分的に要求された）コンテンツ・ファイルについて、受信した部分をブロック内で連続した順序に並べ続ける。ウィルス・シグナチャーの大きさは、多数の受信された部分の組み合わせよりも大きい可能性がある。そのため、ゲートウェイは、要求された部分が組み立てファイル１２６から分解され、分解された部分１１６として装置１０２ａに提供される前に、要求された部分全てをスキャンする。具体的に、要求（又は部分要求）にある全ての部分が受信されると、ゲートウェイ１０４は、分解された部分１１６を、装置１０２ａによって要求された順序で、装置１０２ａに供給する。
【００１８】
各部分が受信されて組み立てられると、組み立てファイル１２６の利用可能な最大の部分がスキャンされ、ウィルスが検出されない場合には、最後に受信された部分がクライアント・コンピューター装置１０２ａに供給される。これにより、クライアントは、ゲートウェイ１０４が更なる部分を組み立てる又は取って来る期間に待機していなくてよいことになる。
【００１９】
一つの実施の形態において、組み立てファイル１２６内でウィルスが検出された場合、組み立てファイルの感染された部分は取り除かれ、クライアント装置１０２ａに供給されない。また、ウィルスが検出されると、クライアント１０２ａに対し、ファイル１２６の感染部分の表示が提供され得る。更に、もう一つの実施の形態において、感染ファイルの表示は、クライアント装置１０２ａに送信される部分１１６にウィルス表示を埋め込むことによりクライアント装置１０２ａに供給されてもよく、又は、そのような表示が、システム管理者（図示せず）に送信されてもよい。
【００２０】
図２ａ〜図２ｃは、装置１０２ａからの単一の要求に応じてコンテンツを受信した後の連続的な時点における、ゲートウェイ１０４のメモリー１０４内に組み立てファイル１２６を含むメモリー１０４を示す。一つの実施の形態において、ゲートウェイ１０４は、装置１０２ａからの要求を検出し、複数の要求からの応答を、スキャンのために、単一の組み立てファイル１２６内のブロックに構成し得る。もう一つの実施の形態において、ゲートウェイ１０４は、スキャンされたコンテンツを装置１０２ａに転送する前に、単一の要求からの応答を検出してもよい。組み立てファイル１２６は、図２ａ及び図２ｂにおいては、部分的に利用可能なコンテンツを含むものとして示される。組み立てファイル１２６は、図２ｃにおいて、コンテンツ・ファイル１０９全体を含むよう示される。
【００２１】
図２ａを参照すると、コンテンツ・ファイル１０９の部分１１４（図１）が受信され、組み立てファイル１２６に格納される。部分１１４が受信されると、それらは、元の連続的な順序で並べられる（図１参照）。また、より多くの部分１１４が受信されると、連続した順序において最大数の部分を含むブロックがスキャンされ、ウィルスがいるか否かが決定される。一つの実施の形態において、部分がスキャンされる前には、最小閾値数の部分、又は最低限のサイズを有する集約された一定数の部分が受信されなければならない。組み立てファイル１２６は、個々の新しい部分が受信された後にスキャンされてもよい。更に、コンテンツ・ファイル全体が組み立てファイル１２６に格納されると、ウィルスの有無を決定するために、ファイル全体がスキャンされ得る。
【００２２】
例えば、図２ａにおいて、受信された部分１〜３、６、７、９、１０は、メモリー１２４内で組み立てられ、組み立てファイル１２６が作成される。この例において、部分の最小閾値数は４に設定され得る。そのため、部分４が受信されると、部分４は、組み立てファイル１２６内で部分１〜３、６、７、９、１０と組み合わされて、部分１〜４を有するブロック、部分６〜７を有するブロック及び部分９〜１０を有するブロックが作成される。連続した部分の最大のブロック、例えば、部分１〜４を含むブロックがスキャンされ、ウィルスの有無が決定される。ウィルスがいない場合、更なる部分が受信される。
【００２３】
図２ｂを参照すると、部分８が受信される。部分８は、組み立てファイル１２６内で部分１〜４、６〜７及び９〜１０と組み合わされて、部分１〜４を有するブロックと、部分６〜１０を有するブロックとが作成される。連続した部分の最大のブロック、例えば、部分６〜１０を含むブロックがスキャンされ、ウィルスの有無が決定される。ウィルスがいない場合、更なる部分が再び受信される。
【００２４】
図２ｃを参照すると、部分５が受信され、組み立てファイル１２６内で部分１〜４及び６〜１０と組み合わされて、部分１〜１０を有するブロックが作成される。連続した部分の最大のブロック、例えば部分１〜１０を含むブロックがスキャンされる。１０個の部分を有する例としてのコンテンツ・ファイル１０９が示されたが、更なる部分を有するより大きなファイルが、例えば、組み立てファイル１２６内で連続した部分の最大のブロックをスキャンすることにより、同様の方法で組み立てられ、スキャンされてもよい。
【００２５】
図３には、図１に示されたウィルス検出システム１００のゲートウェイ１０４における選択されたモジュールが示されている。ゲートウェイ１０４は、コンピューター実行可能命令の格納及び実行に適した処理能力及びメモリーを有する。一つの実施の形態において、ゲートウェイ１０４は、一つ又はそれ以上のプロセッサー１２２及びメモリー１２４を含む。
【００２６】
メモリー１２４は、例えばコンピューター読み取り可能命令、データ構造、プログラム・モジュール又は他のデータのような情報の格納のための任意の方法又は技術で実現された着脱式及び非着脱式の媒体である、揮発性及び不揮発性のメモリーを含み得る。そのようなメモリーは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリー又は他のメモリー技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）又は他の光学記憶媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、ＲＡＩＤ記憶システム、或いは、所望の情報を格納するために利用可能であり、コンピューター・システムによってアクセス可能な任意の他の媒体を含むが、それらに限定されない。
【００２７】
ゲートウェイ１０４のメモリー１２４には、送受信機コンポーネント３０６、組み立てモジュール３０８、スキャン・モジュール３１０、分解モジュール３１２及びデータストア３１４が格納される。これらのモジュール及び要素３０６〜３１４は、一つ又はそれ以上のプロセッサー１２２によって実行される、ソフトウェア又はコンピューター実行可能命令として実現され得る。
【００２８】
送受信機コンポーネント３０６は、クライアント・コンピューター装置１０２（ａ〜ｎ）からの情報及び要求を受信し、それらの要求を、ネットワーク１０６を介してサーバー１０８（ａ〜ｎ）に供給する。一つの実施の形態において、それらの要求は、ハイパー・テキスト転送プロトコル（ＨＴＴＰ）及び通信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）に従っている。送受信機コンポーネント３０６は、ゲートウェイ１０４によってサーバー１０８（ａ〜ｎ）から受信されたコンテンツを、クライアント・コンピューター装置１０２（ａ〜ｎ）に転送し、クライアント装置１０２（ａ〜ｎ）からのコンテンツを、サーバー（１０８ａ〜ｎ）に転送する。一つの実施の形態において、そのようなコンテンツは、メモリー１２４から直接に転送される。
【００２９】
組み立てモジュール３０８は、サーバー１０８（ａ〜ｎ）から受信した部分をメモリー１２４に蓄積及び格納する。部分は、組み立てファイル内のデータ・ブロックに連続して格納される。最大の連続した部分がウィルスについてスキャンされ得る。スキャン・モジュール３１０は、部分がゲートウェイ１０４によって受信されている期間に、組み立てファイル内において連続した最大の数の部分を有するブロックをスキャンする。部分の境界を越えて広がるシグナチャーを有するウィルスを含むウィルスを検出するために、ブロックがスキャンされる。最大の連続した部分をスキャンすることにより、ウィルスが検出され、部分的なコンテンツにおいてウィルスが検出される可能性が向上した場合に、ダウンロードのプロセスが迅速に終了され得る。
【００３０】
分解モジュール３１２は、クライアント・コンピューター装置１０２（ａ〜ｎ）への送信のために、組み立てファイルを、分解された部分に分解する。組み立てファイルが分解されると、分解された部分１１６は、要求１１０によって指示された順序で、クライアント・コンピューター装置１０２（ａ〜ｎ）へ送信されるよう手配される。より簡易な実施の形態において、最大の連続した部分がスキャンされた直後に、各部分が、受信されたときにクライアント１０２に送信される。
【００３１】
データストア３１４には、時々更新され得るウィルスのシグナチャーが格納される。もう一つの実施の形態において、検出ロジックはＡＶエンジンに含まれ、新しい悪意あるソフトウェア（ｍａｌｗａｒｅ）を検出するために、ＡＶエンジンが頻繁に更新される。データストア３１４には、また、先にウィルスが検出されたサーバー１０８（ａ〜ｎ）からのコンテンツ・ファイルの名前又はネットワーク・アドレス（例えば、ＵＲＬ）が格納され得る。一つの実施の形態において、組み立てファイルは、データストア３１４に格納されてもよい。
【００３２】
例としてのプロセス
図４に示す例としてのプロセスは、ハードウェア、ソフトウェア及びそれらの組み合わせによって実現され得る処理の流れを示す論理的フロー図のブロックの集合として示される。ソフトウェアの文脈において、ブロックは、一つ又はそれ以上のプロセッサーによって実行された際に列挙された処理を実行するコンピューター実行可能命令を表す。一般に、コンピューター実行可能命令は、特定の機能を実行し、又は特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造及びそれらに類するものを含む。処理を説明する順序は、限定として解釈されてはならず、記載された任意の数のブロックが、任意の順序で及び／又は並行に組み合わされて、該プロセスを実現することができる。説明のために、図１のシステム１００を参照してプロセスを説明するが、該プロセスは他のシステム・アーキテクチャーによっても実現され得る。
【００３３】
図４は、部分的に利用可能なコンテンツをウィルスについてスキャンするために、ウィルス検出システム１００のゲートウェイ１０４（図１参照）によって用いられる例としてのプロセス４００のフロー図を示す。フロー図は、図示されたブロックの順序で描かれてはいるが、ブロック４０２〜４２４は、何らの特別な順序で実現されなければならないものではない。
【００３４】
ブロック４０２において、ゲートウェイ１０４は、クライアント装置１０２（ａ〜ｎ）のうちの一つ、及びサーバー１０８（ａ〜ｎ）のうちの一つと結合される。ゲートウェイ１０４は、また、コンテンツ・ファイル１０９の部分１１０に対する、一つ又はそれ以上のクライアント・コンピューター装置１０２（ａ〜ｎ）からの要求を受信する。一つの実施の形態において、クライアント・コンピューター装置１０２（ａ〜ｎ）は、実際に、当該部分がサーバー１０８（ａ〜ｎ）から送信されるべき順序を特定する。もう一つの実施の形態において、クライアント・コンピューター装置１０２（ａ〜ｎ）は、要求として、ファイル名又はファイル・アドレスを送信してもよい。例示のために、プロセス４００において、ゲートウェイ１０４は、サーバー１０８ａへのクライアント１０２ａからの送信要求を受信する。
【００３５】
ブロック４０４において、ゲートウェイ１０４は、データストア２１４内の情報をクライアント・コンピューター装置１０２ａの要求と比較することにより、コンテンツ・ファイルの部分に対する受信された要求が、以前になされたことがあるか否かを決定する。そのような決定は、要求されたファイルを検査して、ファイルのアドレス又は名前を特定することによってなされ得る。そのような特定が既になされている場合（ブロック４０４において「はい」である場合）、ブロック４２０において、先に要求されたファイルがウィルスを含んでいたか否かの決定がなされる。ファイルが以前に要求されていない場合（ブロック４０４において「いいえ」である場合）、コンテンツ・ファイル１０９の部分に対するクライアント装置の要求１１０は、ブロック４０６において、サーバー１０８ａに送信される。
【００３６】
次に、ブロック４０８において、ゲートウェイ１０４は、コンテンツ・ファイル１０９の次の部分を、サーバー１０８ａから受信する。ブロック４１０において、ゲートウェイ１０４は、受信した部分をメモリー１２４に格納し、該部分を、組み立てファイル内において、連続的な順序でブロックに組み立てる。ブロック４１２において、ゲートウェイ１０４は、一つ又はそれ以上の部分をデータストア２１４から取り出されたウィルス・シグナチャーと比較することにより、組み立てファイルにおいて最大数の連続した部分を有するブロックをスキャンする。そのようなスキャンは、コンテンツ・ファイルの他の部分がゲートウェイ１０４によって受信されている期間に、部分の境界を越えて連続的に実行され得る。ウィルス・シグナチャーが組み立てファイルと合致する場合に、ウィルスが検出される。一つの実施の形態において、スキャンされるべきブロックの最小サイズと、組み立てファイルがスキャンされる最大回数とが、ゲートウェイ１０４において設定され得る。最小ブロック・サイズが存在しない場合、組み立てファイルはスキャンされなくてもよい。
【００３７】
もう一つの実施の形態において、ゲートウェイ１０４によって、（伝送プロトコルによって伝達されるオブジェクトの名前及びタイプに関する情報を組み合わせることにより、又は、組み立てられた連続部分を見て、実際のコンテンツに基づきファイル形式を決定することにより）組み立てファイルのファイル形式が特定される。また、ウィルスを含まないことがわかっている組み立てファイルの特定の部分が特定され、スキャンされなくてもよい。例えば、当該組み立てファイルがＪＰＥＧファイルであると特定された場合、ゲートウェイ１０４は、悪意のあるコードがＥＸＩＦ部分に見つかると想定して、ファイルの他の部分（非ＥＸＩＦ部分）を、スキャンせずに通過させる。
【００３８】
ブロック４１４において、ゲートウェイ１０４は、ウィルスが検出されたか否かを決定する。検出された場合（ブロック４１４において「はい」である場合）、ゲートウェイ１０４は、ブロック４２２において、管理者装置（図示せず）又はクライアント・コンピューターにウィルス表示を提供する。ウィルスが検出されなかった場合（ブロック４１４において「いいえ」である場合）、ブロック４１５において当該部分が組み立てファイルから分解され、分解された部分１１６（図１）として、要求１１０において当該部分が要求された順序で、クライアント・コンピューター装置１０２ａに供給される。全ての部分がゲートウェイ１０４に受信される前に、現在の部分が、クライアント・コンピューター装置１０２ａに送信される。その後、ブロック４１６において、要求されたファイルの全ての部分がゲートウェイ１０４によって受信されたか否か（例えば、ゲートウェイ１０４が完全な組み立てファイルを受信したか否か）が決定される。全ての部分が受信されていない場合（ブロック４１６において「いいえ」である場合）、ブロック４０８において、クライアント・コンピューターからの要求に応じて、コンテンツ・ファイルの次の部分が受信される。コンテンツ・ファイルの全ての部分が受信されている場合（ブロック４１４において「はい」である場合）、サーバー１０８ａから最後に受信された部分が、ブロック４１８において、クライアント・コンピューター装置１０２ａに送信される。
【００３９】
ブロック４２２においてウィルスが表示された後、一つの実施の形態において、組み立てファイルのウィルス部分が取り除かれ、ブロック４２４において、ファイルのウィルスを含む部分のクライアント・コンピューター装置１０２ａへの送信が中断される。もう一つの実施の形態では、ブロック４２４において、ファイルのウィルスを含む部分が、クライアント・コンピューター装置１０２ａに供給される前に捕捉される。
【００４０】
以前に要求されたファイルがウィルスを含むことが既に決定されている場合（ブロック４２０において「はい」である場合）、ブロック４２２においてウィルス表示が提供される。ファイルがウィルスを含むと決定されていない場合（ブロック４２０において「いいえ」である場合）、当該部分要求１１２が、ブロック４０６において、サーバー１０８ａに供給される。
結論
最後に、本発明を、構造的特徴及び／又は方法的行為に特化した言語で説明したが、添付の特許請求の範囲で規定した発明は、必ずしも上記の特定の特徴又は行為に限定されるものではない。むしろ、特定の特徴及び行為は、特許請求の範囲に記載された発明を実現する例としての形態として開示される。
【図１】
2010528370.tif 000003
【図２ａ】
2010528370.tif 000004
【図２ｂ】
2010528370.tif 000005
【図２ｃ】
2010528370.tif 000006
【図３】
2010528370.tif 000007
【図４】
2010528370.tif 000008
【国際調査報告】
2010528370.tif 000009
2010528370.tif 000010