(57)【要約】  実行ファイルの信頼性を検査するチェックポイント（例えばゲートウェー）を介して前記実行ファイル（ＨＴＭＬファイル、スクリプトファイル、ウェブページ、ＥＸＥファイル、電子メールメッセージなど）の通過時間を高速化する方法であって、前記方法は、前記チェックポイントに到達する前記実行ファイルの部分を受信して蓄積するステップと、前記蓄積された部分の前記信頼性を検査するステップと、前記蓄積された部分が無害であると示された場合に、これを送信先へと加速的方法で放出及び送信するステップと、前記蓄積された部分が無害であるとも悪質であるとも示されなかった場合に、これを送信先へと減速的方法で放出及び送信するステップと、前記蓄積された部分が悪質であると示された場合に、警告処理を実行するステップとを含む。本発明の好適な実施形態によれば、データの受信及び送信またはそのいずれか一方は、ＯＳＩモデルの下位レベル、特にネットワークレベルにおいて実行される。
2007537617.tif 000002
【特許請求の範囲】
【請求項１】
実行ファイルの信頼性を検査するチェックポイントを介して、前記実行ファイルの通過時間を高速化する方法であって、前期方法は、
−  前記チェックポイントに到達する前記実行ファイルの少なくとも一部を受信して蓄積するステップと、
−  前記実行ファイルの前記少なくとも一部の前記信頼性を検査するステップと、
−  蓄積された前記少なくとも一部の信頼性が確認された場合に、これを送信先へと加速的方法で放出及び送信するステップと、
−  蓄積された前記少なくとも一部をその送信先へと減速的方法で放出及び送信ステップと、
−  前記少なくとも一部の非信頼性が示された場合に、警告処理を実行するステップとを含む、方法。
【請求項２】
前記減速的方法は、送信されるパケットをより小さいパケットに分割することにより、前記パケットの送信のオーバーヘッドを増大させるステップと、連続した２つの送信操作間に遅延を挿入するステップと、送信されるべきデータを即時ではなく周期的に送信するステップと、ダミーコマンドを送信するステップとを含む群から選択される操作によって実行される、請求項１に記載の方法。
【請求項３】
前記加速的方法は、複数のデータパケットを組み合わせて１つのパケットとすることによって、前記パケットの送信のオーバーヘッドを減少させるステップと、前記データが無害であると示された時点で送信可能なデータを送信するステップとを含む群から選択される操作によって実行される、請求項１に記載の方法。
【請求項４】
前記警告処理は、前記実行ファイルの前記送信先への送信を中止するステップと、前記チェックポイントのサーバーのオペレーターに警告するステップと、前記送信先に警告するステップと、前記送信元に警告するステップとを含む群から選択される、請求項１に記載の方法。
【請求項５】
前記少なくとも一部は、データパケットを含む、請求項１に記載の方法。
【請求項６】
前記受信は、ＯＳＩモデルの少なくとも１つの下位レベルにおいて実行される、請求項１に記載の方法。
【請求項７】
前記少なくとも１つの下位レベルは、前記ＯＳＩモデルのネットワーク層である、請求項６に記載の方法。
【請求項８】
前記送信は、前記ＯＳＩモデルの少なくとも１つの下位レベルにおいて実行される、請求項１に記載の方法。
【請求項９】
前記少なくとも１つの下位レベルは、前記ＯＳＩモデルの前記ネットワーク層である、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、悪質な内容を検出する分野に関する。より詳細には、本発明は、実行ファイルの信頼性を検査するチェックポイント（例えばゲートウェー）を介して、前記実行ファイルの転送時間を高速化する方法に関する。
【背景技術】
【０００２】
技術的に「ゲートウェー」という用語は、２つのネットワーク間のブリッジのことを言う。各ネットワークに対して、ゲートウェーは別のネットワークへの入口として機能するポイントである。実行の観点から見れば、ゲートウェーは、ゲートウェーに到着する所定のパケットの行先を認知したルーターと、ゲートウェーの内外への実際の経路をパケットに提供するスイッチとの両方に関連していることが多い。その性質により、ローカルネットワークへのゲートウェーは、ユーザーに到達する前にウイルス及び他の形態の悪質性を検出（「検査」）するために、それを通過するファイルをチェックするのに適切なポイントである。
検査プロセスには時間がかかるため、検査はゲートウェー等のチェックポイントを通過するトラフィックの速度に実質的な影響を与える。「セキュリティールーター（Security Router）」という名称の米国特許出願第１０／００２，４０７号は、信頼できるファイルの検査を省略することによって、高速化に関する問題に対処したものである。かかる発明によれば、マルチメディアファイル（例えばＪＰＧファイル）は、（その定義によって）実行コードを含まないため、これらファイルの検査を省略して、検査プロセスによって生じる遅延を軽減することができる。
【０００３】
この点に関しては、実行コードを含むファイルは、２つのカテゴリー、すなわち、検査プロセス中に検査機器によって完全にアクセスされるべきファイルと、検査プロセス中に検査機器によって部分的にアクセスされ得るＨＴＭＬファイル等のファイルと、に分類される。検査のために完全にアクセスされるべきファイル（ここではＦＡファイルと称する）は、ファイル全体が検査機器に対してアクセス可能とならなければ検査が開始できないため、チェックポイントを通過するトラフィックに対して実質的な遅延を生じる可能性がある。「悪質な内容に対するコンピューターネットワークの保護（Protection of computer networks against malicious content）」という名称の米国特許出願第０９／４９８，０９３号は、ファイルの最終パケットのみをチェックポイントに保留して、ファイルが無害であると示された場合に最終パケットを放出することにより、遅延に関する問題に対処している。
本発明は、ＨＴＭＬファイル等の検査プロセス中に検査機器によって部分的にアクセスされ得る実行ファイルを取り扱う。これらのファイルをここではＰＡファイルと称する。ＰＡファイルの場合、ＨＴＭＬファイルは、ユーザーのマシンに最初のパケットが到着した時点でブラウザーにより実行／表示されるため、悪質な実行内容が含まれている場合には、その悪質な実行ファイルは、最終パケットが到着する前に動作し始めてしまう可能性がある。従って、チェックポイントに最終パケットを保留する方法は、適切な解決法にはならない。ゲートウェーにファイル全体を保留すれば、ユーザーが遅延を通信上の問題としてとらえることがあるため、これも適切な解決法とはいえない。
【特許文献１】米国特許出願第１０／００２，４０７号
【特許文献２】米国特許出願第０９／４９８，０９３号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、本発明の目的は、実行ファイルの信頼性を検査するチェックポイントを介して、特に、ＰＡファイル等の実行ファイルの通過時間を高速化する方法を提供することである。
本発明の他の目的及び利点は、以下の説明を読み進めるにつれて明らかとなろう。
【課題を解決するための手段】
【０００５】
実行ファイルの信頼性を検査するチェックポイント（例えばゲートウェー）を介して前記実行ファイル（ＨＴＭＬファイル、スクリプトファイル、ウェブページ、ＥＸＥファイル、電子メールメッセージなど）の通過時間を高速化する方法であって、前記方法は、前記チェックポイントに到達する前記実行ファイルの部分を受信して蓄積するステップと、蓄積された部分の前記信頼性を検査するステップと、蓄積された部分が無害であると示された場合に、これを送信先へと加速的方法で放出及び送信するステップと、蓄積された部分が無害であるとも悪質であるとも示されなかった場合に、これを送信先へと減速的方法で放出及び送信するステップと、蓄積された部分が悪質であると示された場合に、警告処理を実行するステップとを含む。本発明の好適な実施形態によれば、データの受信及び送信またはそのいずれか一方は、ＯＳＩモデルの下位レベル、特にネットワークレベルにおいて実行される。
【発明を実施するための最良の形態】
【０００６】
本発明は、次の図面を参照することで、より良く理解されよう。
図１は、本発明を実施するために使用することのできるシステムの概略図である。コンピューター２１は、ローカルエリアネットワーク２０に接続される。ローカルエリアネットワーク２０は、インターネット１０に接続される。ローカルエリアネットワーク２０とインターネット１０との間には、ゲートウェーサーバー３０を介在させる。インターネットサーバー４０はウェブサイトのホストである。ブラウザーが、インターネットサーバー４０をホストとするウェブサイトにアドレスするコンピューター２１上で実行されることにより、ゲートウェーサーバー３０を通してインターネットサーバー４０からコンピューター２１へとファイルが転送される。
開放型システム間相互接続（Open System Interconnection）の頭字語であるＯＳＩは、電気通信ネットワークにおける２点間でのメッセージの伝送方法を定義する基準である。ＯＳＩは、電気通信を７階層に分類する。上位４層（第４層から第７層）は、メッセージがユーザーから、またはユーザーへどのように通過するかを定義するものであり、下位３層（第１層から第３層）は、任意のメッセージがホストコンピューターを通過する際に使用されるものである。
【０００７】
ＯＳＩモデルの７階層を以下に示す。
・第７層は、アプリケーション層であり、アプリケーションへのサービスを取り扱う。
・第６層は、プレゼンテーション層であり、情報の変換を行う。
・第５層は、セッション層であり、通信以外の問題を取り扱う。
・第４層は、トランスポート層であり、端末相互間の通信制御を提供する。
・第３層は、ネットワーク層であり、ネットワークにおける情報のルーティングを行う。
・第２層は、データリンク層であり、隣接するノード間にエラー制御を提供する。
・第１層は、物理層であり、伝送媒体にエンティティーを接続する。
アプリケーション層である第７層は、特にネットワーク上での実行を対象としたアプリケーションへのサービスを提供する。これは、ゲートウェーにおいて実行され、ＤＮＳ、ＦＴＰ、ＳＭＰＴ、及びＳＮＭＰ等のプロトコルをサポートする。
【０００８】
ネットワーク層である第３層は、ネットワークにおける情報のルーティングを行う。すなわち、主に論理ネットワークアドレス及びネームをその物理アドレスに変換する。例えば、送信元のコンピューターが送信するものと同じ程度の大きさのデータフレームをルーターが送信できない場合には、ネットワーク層がデータをより小さいユニットに分割することによって、それを補償する。このことは、ルーター、スイッチ等によって実行され、ＩＰ、ＩＰＥ、及びＯＳＩ等のプロトコルをサポートする。
本発明に関して、アプリケーション層とネットワーク層との違いは、アクセス可能なデータの種類である。より詳細には、ＯＳＩのアプリケーション層において実行されるプログラムは、ファイルにアクセスすることができるのに対し、ネットワーク層において実行されるプログラムは、パケットにアクセスすることができる。
【０００９】
図２は、本発明の好適な実施形態による、チェックポイントにおいてＰＡファイルの信頼性を検査するプロセスのフローチャートである。
ＯＳＩの階層同士の間でのデータの受け渡しは、単一ファイルを取り扱う際には、有意義ではないが、何千というファイルを取り扱う場合は、組織に入力されたデータをフィルーターリングするサーバーにおいては、このような遅延によってサーバーの性能に影響が及ぼされる。従って、ＯＳＩモデルの下位レベル、例えばネットワーク層において本方法を実行すれば、データを検査することによって生じる遅延が軽減される。しかし、ここに記載する方法は、ＯＳＩモデルの他の層においても実行できることに留意されたい。従って、ここではパケットに関して述べるが、本方法は、ＯＳＩモデルの下で利用可能なデータの形態、例えばデータチャンクによっても実行可能である。
１パケットのＰＡファイル、例えばＨＴＭＬファイルがチェックポイントで受信されると、プロセスは、ブロック１００において開始される。
ブロック１０１で、パケットは、例えばメモリーバッファー等のレポジトリーに加えられる。１パケット中に含まれるデータは、検査には適さない可能性があり、またパケットは、必ずしも送信された順序と同じ順序でチェックポイントに到達するとは限らないため、データを蓄積して検査可能とするまで、一時的にデータをレポジトリーに保存しなければならない。
【００１０】
典型的に、パケットは、２種類の情報、すなわち未加工データ(raw data)とヘッダーとを有しており、ヘッダーは、パケットのＩＰの送信先アドレス及びＩＰのソースアドレス、並びにファイル内での未加工データの位置等の情報を含んでいる。チェックポイントからの出力パケットのサイズは、必ずしも入力パケットのサイズと同じである必要はない。実際に、出力データは、それに対応する入力パケットと比べてサイズの異なるサイズのパケットに分割することができる。例えば、ゲートウェーに入る１００データバイトのパケットは、５０バイトの２つのパケットに分けて放出することができる。さらに、出力パケットを隣接したパケットのデータ等から構成することも可能である。
レポジトリー内に保存されたデータが検査に適する場合には、プロセスは、ブロック１０２から検査プロセス１０４に続く。明らかに、検査は、レポジトリーで利用可能なデータにおいてのみ実行できる。レポジトリー内に保存されたデータが検査に対して適さない場合には、後述するように、データは、減速的方法１０３で放出される。
【００１１】
当業者であれば、ＨＴＭＬファイルの悪質性を検出する種々の方法があることを認識できよう。例えば、ＨＴＭＬファイルは、ＨＴＭＬコマンド、スクリプト言語テキスト（ＶＢスクリプト及びジャバスクリプト（JavaScript）(登録商標)等）、アクティブコンテンツのコマンド（アクティブＸ及びJava（登録商標）アプレット等）など、数種のオブジェクトを含み得る。これらのオブジェクトは、例えば、スクリプト言語における機能のように「サブオブジェクト」に分割可能である。オブジェクトがその定義によってファイルあるいはコンピューターのメモリーの内容を変えることができるものである場合には、そのオブジェクトは、疑わしいと考えられる。オブジェクトの中に悪質な内容（例えば、アクティブＸコマンド）を含むものがあれば、他のオブジェクトは悪質なものでなくても（例えば、ＨＴＭＬコマンド）、結果的に疑わしいと考えられる。通常、オブジェクトそれぞれに対して、その悪質性を個別に検査することができる。データのチャンクがチェックポイントに到着する間に、ＨＴＭＬファイルのオブジェクトに対して解析が行われる。オブジェクトがチェックポイントで完全に利用可能である場合には、その悪質性を検査することができる。オブジェクトがその定義によって悪質な内容を含むことができない場合、あるいは検査した結果「無害である」ことが判明した場合には、その送信先に伝送できる。
【００１２】
ブロック１０５から：
−  検査したデータが表示に十分でない、すなわち無害であるとも悪質であるとも表示できない場合には、プロセスは、ブロック１０７に続く。このブロックでは、レポジトリーに保存されたデータは、２つの目的を満たすために減速的方法により送信先に送信される−１つは、タイムアウトエラーを生じないようにするためであり、他の１つは、受信側（例えばブラウザー）が無害であると示されていない実行データを受信することがないようにするためである。これは、故意に遅延させた後に、周期的に少量のデータ（例えば１バイトのデータを有するパケット）を送信すること等、種々の方法によって実行することができる。
−  検査したデータが悪質であると示された場合には、プロセスは、ブロック１０６に続き、ここで警告処理が実行され、典型的にはＨＴＭＬファイルの送信先への転送が中止される１０９。
−  しかし、レポジトリーに保存されたデータが無害であると示された場合には、プロセスは、ブロック１０８に続き、ここで、信頼のおけるデータの送信先への転送を高速化するため、チェックされたデータがその送信先に加速的方法で送信される。これは、より大きいパケットを構成して、遅延を生じることなくデータを送信する等、種々の方法で実行することができる。
【００１３】
一般的に、パケットが送信元から送信先まで送信される際には、パケットの受信に関する確認は、所定期間内に送信元によって受信されるべきであるが、所定期間内に受信されなければ、送信元は、この遅延を通信上の問題であるととらえ、その送信先にパケットを再送信することになる。従って、パケットを遅延させるために送信元と送信先（例えばチェックポイント）との間に介在する機器が、送信元と送信先の両方と通信するようにすべきである。介在する機器は、送信元と通信して、送信先におけるパケットの受信確認を送信し、パケットが送信される時に送信先と通信する。送信元と送信先の両方と通信するために、介在された機器は、「なりすまし」を行う。送信先である「ふり」をしながら送信元と通信し、また送信元である「ふり」をしながら送信先と通信する。当業者は、この方法が技術分野で周知であるとともに、アラジンノゥリッジシステムズ（Aladdin Knowledge Systems）のeSafeアプライアンスのような種々のネットワーク検査機器において、この方法を実行できることを認識できよう。
ブロック１０７は、減速的方法でチェックポイントに入るデータを「放出する」処理を行う。一方で、パケットは、そのデータの信頼性が判断されるまで、チェックポイントにおいて遅延されるべきであるが、他方、遅延は、タイムアウトエラーを生じる可能性がある。本発明によれば、許容期間内に少量のデータを（ネットワークの転送規則によって）放出することにより、上記のような矛盾を解決できる。例えば、１０２４バイトのデータからなる１個のパケットを、それぞれ１バイトのデータからなる１０２４個のパケットとして再構成する。それぞれのパケットは、パケット送信元、送信先、そのサイズ等の付属データを有するため、１バイトからなる１０２４個のパケットを送信するには、１０２４バイトからなる１個のパケットを送信するよりも長い時間がかかる。
【００１４】
これは、データを「減速的」方法で送信することに対する１つの解決法であるが、実際には、データを減速的方法で送信することは、種々の方法によって実行することができる。例えば、チェックポイントにおいてパケットを受信した直後に受け取ったデータパケットを送信するのではなく、通信ネットワークにおけるタイムアウトの限界値より周期を小さく設定して、周期的にパケットを送信する。当然ながら、パケットは、すぐに送信できるが、連続する２個のパケットの間に故意に遅延を挿入することができる。さらに、少量のデータ（例えば１バイトのデータを有するパケット）を送信することによりオーバーヘッドが増えるため、転送速度は、低下する。ＨＴＭＬのような読み取り可能なファイルでは、ダミーデータをＨＴＭＬの備考のような形で挿入することができる。このように通信セッションの継続中、内容が無害であると示されるまで、実行コードは、ブラウザーに到達しない。
実行の観点から見れば、いくつかのプロセス、すなわち、送信元からのパケットの受け取り、検査プロセス、及び送信先へのパケットの放出などを、並行して行うことができる。
【００１５】
図３ａは、第１プロセスのフローチャートである。チェックポイントにおいて動作するサーバーが、チェックポイントで受信された検査ファイルの新たなパケットを検索する（２１０）。回答が肯定であれば、新たなパケットの未加工データをレポジトリーに追加する（２１２）。新たなパケットがレポジトリーに追加された後（２１３）、あるいは検査ファイルの新たなパケットがない場合（２１１）には、第１のサブプロセスは、終了する。
図３ｂは、第２プロセスのフローチャートである。レポジトリー内に利用できる新たなデータがある場合（２２０）には、レポジトリー内のデータが検査される（２２２）。２２３において、検査したデータが悪質であると示された場合には、警告処理が実行され（２２４）、次いでファイルの転送が中止される（２２６）。２２３において、検査されたデータが無害であると示された場合には、あるデータ典型的には検査されたデータが、送信先に送信可能なものとしてマーキングされる（２２５）。レポジトリーにおいて利用できる新たなパケットがない場合（２２１）、無害であると示されたデータを送信先に送信した後（２２８）、あるいはレポジトリー内のデータを検査できなかった場合（２２７）、サブプロセスは、終了する。
図３ｃは、第３プロセスのフローチャートである。ブロック２３０において、送信先に送信可能な新たなデータがある場合には、送信可能なデータがパケットとして構成されて（２３２）、送信先に送信される（２３３）。その後、送信されたデータは、レポジトリー等から除去される（２３４）。送信先に送信可能な新たなデータがない場合（２３１）、あるいは送信可能なデータを送信した後（２３５）、第３プロセスは、終了する。
本発明は、ＦＡファイル、または任意の他の種類のファイルにも実行することができる。実際、送信元から送信先へとファイルを転送する際に、送信元と送信先との間のあるポイントで転送規則（例えばタイムアウト）を破ることなく遅延を生じさせる必要のある場合には、いつでも本発明を実施することができる。
【００１６】
当業者は、本発明の範囲を逸脱することなく、他の形態及び方法によって本発明を実施できることを理解できよう。ここに記載した実施形態は、例示であり、限定的なものではないとみなすべきである。
【図面の簡単な説明】
【００１７】
【図１】本発明を実施するために使用し得るシステムの概略図。
【図２】本発明の好適な実施形態による、チェックポイントにおけるＰＡファイルの信頼性を検査するプロセスのフローチャート。
【図３ａ】本発明の好適な実施形態による、チェックポイントに到達するパケットがレポジトリーに蓄積されるサブプロセスのフローチャート。
【図３ｂ】本発明の好適な実施形態による、レポジトリー内のデータを検査するサブプロセスのフローチャート。
【図３ｃ】本発明の好適な実施形態による、無害であることが示されたデータが送信先に転送されるサブプロセスのフローチャート。
【図１】
2007537617.tif 000003
【図２】
2007537617.tif 000004
【図３ａ】
2007537617.tif 000005
【図３ｂ】
2007537617.tif 000006
【図３ｃ】
2007537617.tif 000007
【国際調査報告】
2007537617.tif 000008