(57)【要約】データ・パケットをリダイレクトするシステム及び方法であって、システムは、データ・パケットをリダイレクトするステートレス双方向プロキシを含み、データ・パケットはヘッダ及び本体を含み、ヘッダは、データ・パケットのソースを識別するソース・アドレスとデータ・パケットの宛先を識別する宛先アドレスとを含む。ステートレス双方向プロキシは、データ・パケットを送受信する第１及び第２の入出力インターフェースと、ソース・アドレス及び宛先アドレスを格納するストレージ・コンポーネントと、受信されたデータ・パケットのソース・アドレス及び宛先アドレスを、格納されるソース・アドレス及び宛先アドレスに変更する処理コンポーネントとを含む。
2009510647.tif 000002
【特許請求の範囲】
【請求項１】
データ・パケットをリダイレクトする方法であって、前記データ・パケットがヘッダ及び本体を含み、前記ヘッダがソース・アドレス及び宛先アドレスを含み、
ソースからのデータ・パケットの受信に応答して、前記受信されたデータ・パケットの前記ヘッダ内の前記ソース・アドレス及び前記宛先アドレスを所定のソース・アドレス及び宛先アドレスに変更することによって、新しい受信されたデータ・パケットを作成するステップと、
前記新しい受信されたデータ・パケットを前記所定の宛先アドレスによって決定される宛先に送るステップと
を含む方法。
【請求項２】
前記所定の宛先アドレスによって決定される宛先からの応答データ・パケットの受信に応答して、前記応答データ・パケットの前記ヘッダ内の前記ソース・アドレス及び前記宛先アドレスを変更することによって新しい応答データ・パケットを作成するステップであって、前記ソース・アドレスが前記ソースのアドレスであるステップと、
前記ソース・アドレスを使用して前記新しい応答データ・パケットを前記ソースにリダイレクトするステップと
を更に含む、請求項１に記載の方法。
【請求項３】
前記所定のソース・アドレスがプロキシのアドレスである、請求項２に記載の方法。
【請求項４】
前記受信されたデータ・パケット及び前記応答データ・パケットの前記ヘッダ内の前記ソース・アドレスが、それぞれ、ソース・ネットワーク・アドレス、ソース・ネットワーク識別子を含み、受信されたデータ・パケット及び応答データ・パケットの前記ヘッダ内の前記宛先アドレスが、それぞれ、宛先ネットワーク・アドレス及び宛先ネットワーク識別子を含む、請求項２に記載の方法。
【請求項５】
（ａ）前記新しい受信されたデータ・パケットを作成するステップが、
（ｉ）関連する受信されたデータ・パケットの前記本体をコピーするステップと、
（ｉｉ）前記ソース・ネットワーク・アドレス、前記ソース・ネットワーク識別子、前記宛先ネットワーク・アドレス及び前記宛先ネットワーク識別子を変更するステップと
を含み、
（ｂ）前記新しい応答データ・パケットを作成するステップが、
（ｉ）関連する応答データ・パケットの前記本体をコピーするステップと、
（ｉｉ）前記ソース・ネットワーク・アドレス、前記ソース・ネットワーク識別子、前記宛先ネットワーク・アドレス及び前記宛先ネットワーク識別子を変更するステップと
を含む、請求項４に記載の方法。
【請求項６】
前記ソース・ネットワーク・アドレス及び前記宛先ネットワーク・アドレスがインターネット・プロトコル（「ＩＰ」）アドレスであり、前記ソース・ネットワーク識別子及び前記宛先ネットワーク識別子がメディア・アクセス制御（「ＭＡＣ」）アドレスである、請求項５に記載の方法。
【請求項７】
アンチマルウェア・ソフトウェアを実行するコンピューティング・デバイスにマルウェア・データ・パケットを送る方法であって、前記マルウェア・データ・パケットがヘッダ及び本体を含み、前記ヘッダが、前記マルウェア・データ・パケットのソースを識別するマルウェア・ソース・アドレスと無作為に生成された宛先アドレスを含み、
マルウェア・データ・パケットの受信に応答して、前記マルウェア・ソース・アドレスを所定のソース・アドレスに変更すること及び前記無作為に生成された宛先アドレスを前記アンチマルウェア・ソフトウェアを実行する前記コンピューティング・デバイスのアドレスに変更することによって、新しいマルウェア・データ・パケットを作成するステップと、
前記新しいマルウェア・データ・パケットを、前記アンチマルウェア・ソフトウェアを実行する前記コンピューティング・デバイスに転送するステップと
を含む方法。
【請求項８】
前記新しいマルウェア・データ・パケットの受信に応答して前記アンチマルウェア・ソフトウェアを実行する前記コンピューティング・デバイスによって作られた応答データ・パケットを、前記アンチマルウェア・ソフトウェアを実行する前記コンピューティング・デバイスから受信することに応答して、前記応答データ・パケットの前記ヘッダに含まれる前記宛先アドレスを前記マルウェア・ソース・アドレスに変更し、前記応答データ・パケットの前記ヘッダに含まれる前記ソース・アドレスを前記無作為に生成された宛先アドレスに変更することによって、新しい応答データ・パケットを作成するステップ
を更に含む、請求項７に記載の方法。
【請求項９】
前記所定のソース・アドレスがプロキシのアドレスを含む、請求項８に記載の方法。
【請求項１０】
前記マルウェア・ソース・アドレスがマルウェア・ソース・ネットワーク・アドレス及びマルウェア・ソース・ネットワーク識別子を含み、前記ランダムに生成された宛先アドレスが、宛先ネットワーク・アドレス及び宛先ネットワーク識別子を含む、請求項７に記載の方法。
【請求項１１】
前記新しいマルウェア・データ・パケットを作成するステップが、
（ａ）関連するマルウェア・データ・パケットの前記本体をコピーするステップと、
（ｂ）前記マルウェア・ソース・ネットワーク・アドレス及び前記マルウェア・ソース・ネットワーク識別子を、それぞれ、無作為に生成された宛先ネットワーク・アドレス及び所定のネットワーク識別子に変更するステップと、
（ｃ）前記宛先アドレス及び前記宛先ネットワーク識別子を、前記アンチマルウェア・ソフトウェアを実行する前記コンピューティング・デバイスに関連する宛先アドレス及び宛先ネットワーク識別子に変更するステップと
を含む、請求項１０に記載の方法。
【請求項１２】
前記ソース・ネットワーク・アドレス及び前記宛先ネットワーク・アドレスがインターネット・プロトコル（「ＩＰ」）アドレスであり、ソース識別子及びネットワーク識別子がメディア・アクセス制御（「ＭＡＣ」）アドレスである、請求項１１に記載の方法。
【請求項１３】
データ・パケットをリダイレクトするステートレス・プロキシであって、前記データ・パケットが、ヘッダ及び本体を含み、前記ヘッダが、前記データ・パケットのソースを識別するソース・アドレス及び前記データ・パケットの宛先を識別する宛先アドレスを含み、前記ステートレス・プロキシが、
（ａ）データ・パケットを受信し、送信する第１入出力インターフェースと、
（ｂ）データ・パケットを受信し、送信する第２入出力インターフェースと、
（ｃ）ソース・アドレス及び宛先アドレスを格納するストレージ・コンポーネントと、
（ｄ）前記データ・パケットの前記ソース・アドレス及び前記宛先アドレスを変更するように動作可能な処理コンポーネントであって、
（ｉ）前記第１及び第２の入出力インターフェースの一方がデータ・パケットを受信することに応答して、前記受信されたデータ・パケットの前記ヘッダ上の前記ソース・アドレス及び前記宛先アドレスを前記ストレージ・コンポーネントに格納されたソース・アドレス及び宛先アドレスに変更することによって、新しい受信されたデータ・パケットを作成し、
（ｉｉ）前記新しい受信されたデータ・パケットを前記第１及び第２の入出力インターフェースの他方に向ける
処理コンポーネントと、
を含むステートレス・プロキシ。
【請求項１４】
前記処理コンポーネントがまた、
（ｉ）前記第１及び第２の入出力インターフェースの他方が応答データ・パケットを受信することに応答して、前記応答データ・パケットの前記ヘッダ上の前記ソース・アドレス及び前記宛先アドレスを前記ストレージ・コンポーネントに格納された他のソース・アドレス及び宛先アドレスに変更することによって新しい応答データ・パケットを作成し、
（ｉｉ）前記新しい応答データ・パケットを前記第１及び第２の入出力インターフェースの前記一方に向ける、
請求項１３に記載のプロキシ。
【請求項１５】
前記第１及び第２の入出力インターフェースが、第１及び第２のネットワーク結合デバイスによって第１及び第２のネットワークに結合され、
前記第１及び第２のネットワーク結合デバイスが、ルータとネットワーク・ハブとのうちの１つである、
請求項１３に記載のプロキシ。
【請求項１６】
前記新しい受信されたデータ・パケットが、前記受信されたデータ・パケットの前記ヘッダ内の前記ソース・アドレス及び前記宛先アドレスを変更し、前記受信されたデータ・パケットの前記本体をコピーすることによって作成される、請求項１３に記載のプロキシ。
【請求項１７】
前記処理コンポーネントが、前記ストレージ・コンポーネントに格納されたソフトウェア・プログラムを実行するプログラマブル・プロセッサである、請求項１３に記載のプロキシ。
【請求項１８】
前記データ・パケットの前記ヘッダが、ソース・ネットワーク識別子及び宛先ネットワーク識別子を更に含む、請求項１３に記載のプロキシ。
【請求項１９】
前記ソース・アドレス及び前記宛先アドレスがインターネット・プロトコル・アドレスであり、前記ソース・ネットワーク識別子及び前記宛先ネットワーク識別子がメディア・アクセス制御アドレスである、請求項１８に記載のプロキシ。
【請求項２０】
前記処理コンポーネントが論理回路である、請求項１３に記載のプロキシ。
【発明の詳細な説明】
【技術分野】
【０００１】
背景技術
その発端以降、インターネットは、全世界で指数関数的な速度で人気を獲得してきた。ますます多くの人々及び会社がインターネットを使って、他の人々や会社と接続し、また、インターネット・サーバを介して入手可能な情報、サービス及び商品の無数の情報源に接続しているので、毎年、クライアント・マシン（「クライアント」）すなわちユーザ装置及びサーバ・マシン（「サーバ」）を含む数十万台のコンピュータ・システムがインターネットに追加される。大規模で複雑なすべての市場と同様に、インターネットに接続されたサーバ及びクライアントは、悪意のある当事者のターゲットになってきた。悪意のある当事者は、ソフトウェアを使用して、サーバとクライアントとに格納された、個人、金融機関、政府及び他の会社に属する機密情報及び独占的情報への許可されないアクセスを得る。集合的にマルウェアと称する、ウィルス、ワーム、トロイの木馬、スパム（不要で迷惑な通常は宣伝の電子メール・メッセージ）等々の悪意のあるソフトウェア・プログラムの使用の回数及び頻度は、最近２〜３年間に実質的に増加した。システム及び機密データへのアクセスを保護し、ネットワーク・データ帯域幅を保存するために、アンチマルウェア・ソフトウェアの開発及び使用も急速に増加した。アンチウィルス及びスパム・ガードを含むアンチマルウェア・ソフトウェアのパッケージ・ソフトならびに他の保護ソフトウェアの使用が、より一般的になった。アンチマルウェア・ソフトウェアのパッケージ・ソフトの例は、インターネット保護ソフトウェアのノートン・アンチウィールス及びマカフィー・ウィールススキャンのパッケージ・ソフトである。
【０００２】
すべての新しいソフトウェア・アプリケーションに似て、アンチマルウェア・ソフトウェアは、信頼性及び正しい機能性を保証するために、現実的な環境でテストされなければならない。ソフトウェア試験は、一般に、機能性の特定の領域に焦点を合わせた試験を行い、結果を調査できるように動作パラメータ及び構成を綿密に制御できる、制御された環境で実行される。ほとんどのマルウェアは、本質的に、ネットワーク化された環境で使用される実行可能ソフトウェアなので、アンチマルウェア・ソフトウェアの試験は、制御されたネットワーク環境を必要とする。ウィルス型のマルウェアは、感染していないコンピュータ・プログラム又はコンピューティング・デバイス・プログラムに感染することによって蔓延する実行可能ソフトウェアである。感染とは、ソフトウェア・コードの悪意のある部分（すなわちマルウェア）を既存の正当なソフトウェア・プログラムに埋め込むことを意味する。埋め込まれたマルウェアは、その後、正当なソフトウェア・プログラムがプロセッサによる実行のためにユーザによって選択される時に、又は通常のコンピューティング動作中に他の正当なプロセスによって実行のために選択される時に、コンピュータ・プロセッサによって実行される。マルウェアは、そのマルウェアがプロセッサによって実行される時に達成するように設計された損傷を引き起こす。ほとんどのマルウェア、特にウィルスは、インターネット上で循環し、或るコンピュータ（すなわち、サーバ又はクライアント）から別のコンピュータへ電子メール添付ファイルを介して転送され、その電子メール添付ファイルがユーザによってそれと意識されずに開かれる時に実行され、又は、正当なソフトウェア・プログラムもしくはウェブページに添付されるか埋め込まれた寄生ソフトウェアとして実行される。ワームは、ウィルスと異なって、実行されるプログラムに埋め込まれる必要がない。ワームが実行されたならば、ワームはそれ自体を複製して一層多くのワームを作成し、最終的にネットワークの帯域幅を消費し、これによって、他のプログラムがその関連のコンピューティング・リソースを使用できなくする。
【０００３】
アンチマルウェア・ソフトウェアの有効性をテストするためには、アンチマルウェア・ソフトウェアを実行する試験システムは、マルウェア・ソフトウェア・プログラムを実行するマルウェア・システムによって送信されるマルウェア・パケットを受信できなければならない。マルウェア・パケットを受信する試験システムは、アンチマルウェア・ソフトウェアがマルウェア・パケットを正しく検出し、そのマルウェア・パケットが試験システムに感染するのを防ぐかどうかを、テスタ、人間又は自動化されたコンピュータ試験プログラムが観察することを可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ほとんどのマルウェアは、マルウェアの配信のためにインターネット上のコンピュータを無作為にターゲットにする、インターネット・プロトコル（「ＩＰ」）アドレスなどの無作為のネットワーク・アドレスを生成する。マルウェアによって生成される無作為のネットワーク・アドレスは、試験システムのネットワーク・アドレスと一致する可能性が非常に低いので、試験システムが、マルウェア・システム上で実行されるマルウェアによって生成されたパケットを受信する可能性は低い。必要なのは、試験システムで動作するアンチマルウェア・ソフトウェアの有効性を決定できるように、マルウェア・パケットが試験システムに送られることを保証する方法である。
【課題を解決するための手段】
【０００５】
この要約は、下記の「発明を実施するための最良の形態」で更に説明される概念から選択されたものを単純化した形で紹介するために提供される。この要約は、特許請求される主題の主要な特徴を識別することを意図されたものではなく、特許請求される主題の範囲を決定する際の助けとして使用されることを意図されたものでもない。
【０００６】
データ・パケット・トラフィックを送る方法及びシステムが提供される。プロキシ・デバイスは、第１及び第２のコンピューティング・デバイス、システム又はネットワークを結合する。プロキシ・デバイスは、宛先にアドレス指定された第１及び第２のコンピューティング・デバイス、システム又はネットワークの一方からデータ・パケットを受信し、そのデータ・パケットを第１及び第２のコンピューティング・デバイス、システム又はネットワークの他方にリダイレクトする。プロキシ・デバイスは、第１及び第２のコンピューティング・デバイス、システム又はネットワークの他方によって受信されたパケットに応答して、第１及び第２のコンピューティング・デバイス、システム又はネットワークの他方からのデータ・パケットを受信し、その応答データ・パケットを、発信側の第１及び第２のコンピューティング・デバイス、システム又はネットワークにリダイレクトすることができる。
【０００７】
１つの例示的な実施の形態では、発信側の第１及び第２のコンピューティング・デバイス、システム又はネットワークは、悪意のあるソフトウェア（「マルウェア」）を実行し、これによって、オリジナルのデータ・パケットはマルウェアを含み、第１及び第２のコンピューティング・デバイス、システム又はネットワークの他方は、アンチマルウェア試験ソフトウェアを実行する。
【０００８】
本発明の前述の態様及び多数の付随する利点は、添付図面と共に解釈されるときに以下の詳細な説明を参照することによって一層よく理解されるようになるので、一層容易に理解されるようになるであろう。
【発明を実施するための最良の形態】
【０００９】
コンピュータ・ネットワーク・データ・パケットをリダイレクトするシステム及び方法を説明する。このシステム及び方法は、理想的には、マルウェア・ソフトウェアを実行するマルウェア・システムからアンチマルウェア・ソフトウェアを実行するホスト・システムへデータ・パケットをリダイレクトするのに適するが、このシステム及び方法は、他の環境でも用途を見出すことができる。更に、このシステム及び方法を双方向環境で説明するが、このシステム及び方法は単方向環境でも用途を見出すことができる。したがって、理解されるとおり、本発明は本明細書で説明される例示的な実施の形態への適用に限定されると解釈してはならず、そのような例示的な実施の形態を限定として解釈してはならない。
【００１０】
図１に、マルウェア・コンピューティング・デバイス１００、ホスト・コンピューティング・デバイス１０４及びプロキシ・デバイス１０２を含む、２つのコンピューティング・デバイスのシステムを示す。プロキシ・デバイス１０２は、２つの入出力結合又は入出力接続を有する双方向ステートレス・デバイスである。一方の入出力結合又は入出力接続は、マルウェア・コンピューティング・デバイス１００に有線又は無線で接続され、他方の入出力結合又は入出力接続は、ホスト・コンピューティング・デバイス１０４に有線又は無線で接続される。
【００１１】
マルウェア・コンピューティング・デバイス１００及びホスト・コンピューティング・デバイス１０４は、デスクトップ型のパーソナルコンピュータとして図示されているが、これは限定ではなく例示と解釈されなければならない。デスクトップ型のパーソナルコンピュータ以外にも、マルウェア・コンピューティング・デバイス１００及びホスト・コンピューティング・デバイス１０４の一方又は両方はラップトップ・コンピュータ、携帯情報端末、携帯電話機、サーバなどを含む様々な他のコンピューティング・デバイスのいずれかの形を取ることができるが、これらに限定されない。
【００１２】
プロキシ・デバイス１０２は、マルウェア・コンピューティング・デバイスからデータ・パケットを受信し、それらをホスト・コンピューティング・デバイスに転送し、また、その逆を行う。図示及び理解を簡単にするために、マルウェア・コンピューティング・デバイス１００によって生成されるデータ・パケットをパケット＃１と表し、プロキシ・デバイス１０２によってホスト・コンピューティング・デバイス１０４に転送されるデータ・パケットをパケット＃２と表し、ホスト・コンピューティング・デバイス１０４によって生成されるデータ・パケットをパケット＃３と表し、プロキシ・デバイス１０２によってマルウェア・コンピューティング・デバイス１００に転送されるデータ・パケットをパケット＃４と表すことにする。パケット＃１などの各データ・パケットは、ソース・アドレス及び宛先アドレスを含み、各アドレスは、そのデータ・パケットの通信経路の１つの端点を識別する。ソース・アドレス及び宛先アドレスは、例えばインターネット・プロトコル（ＩＰ）アドレスとすることができる。更に、各データ・パケットは、ソース・コンピューティング・デバイス及び宛先コンピューティング・デバイスのメディア・アクセス制御（「ＭＡＣ」）アドレスを含むことができ、各ＭＡＣアドレスはソース・コンピューティング・デバイス及び宛先コンピューティング・デバイスを一意に識別する。図１に示された例示的な実施の形態では、どのコンピューティング・デバイスが送信しているか、及びどのコンピューティング・デバイスが受信しているかに応じて、ソース・コンピューティング・デバイスがマルウェア・コンピューティング・デバイスであり、宛先コンピューティング・デバイスがホスト・コンピューティング・デバイスである。
【００１３】
図１に戻って、マルウェア・コンピューティング・デバイス１００で動作するマルウェア・ソフトウェアは、無作為の宛先アドレスをパケット＃１のデータ・パケットに適用する。これらのパケットはマルウェアを含む。プロキシ・デバイス１０２は、パケット＃１のデータ・パケットを受信し、パケット＃１のデータ・パケットがパケット＃２のデータ・パケットとしてホスト・コンピューティング・デバイス１０４にリダイレクトされるように、ソース・アドレス及び宛先アドレスを変更する。また、プロキシ・デバイスは、応答パケット、すなわちホスト・コンピューティング・デバイス１０４によって作られるパケット＃３のデータ・パケットのソース・アドレス及び宛先アドレスを変更し、その応答パケットをパケット＃４のデータ・パケットとしてマルウェア・コンピューティング・デバイスにリダイレクトする。より具体的には、プロキシ・デバイス１０２は、マルウェア・コンピューティング・デバイス１００のＭＡＣアドレス及びＩＰアドレスとホスト・コンピューティング・デバイス１０４のＭＡＣアドレス及びＩＰアドレスとを格納するメモリを備えている。プロキシ・デバイス１０２に格納される前述の情報は、プロキシ・デバイス１０２がステートレスな形で動作することを可能にする。すなわち、この構成情報は、プロキシ・デバイス１０２が、それが受信し送信する各パケットの状態情報すなわちＭＡＣ及びＩＰを維持することなく動作することを可能にする。マルウェア・コンピューティング・デバイスをホスト・コンピューティング・デバイスに接続するネットワークは、実際には、プロキシ・デバイス１０２によって切り替えられる。マルウェア・コンピューティング・デバイス１００及びホスト・コンピューティング・デバイス１０４は、接続するネットワーク上でお互いの存在を直接に検出することができず、したがって、ネットワーク・データ・パケットをお互いに直接に送信することができない。実際には、マルウェア・コンピューティング・デバイス１００及びホスト・コンピューティング・デバイス１０４のそれぞれは、プロキシ・デバイス１０２を介して接続された別々のサブネットワーク内にある。これに関して、プロキシ・デバイス１０２はネットワーク・ルータとして機能する。
【００１４】
図２は、プロキシ・デバイス１０２に格納されたソフトウェアにより、プロキシ・プロセッサが、ソース・アドレス及び宛先アドレスを変更することによってマルウェア・コンピューティング・デバイス１００とホスト・コンピューティング・デバイス１０４との間でデータ・パケットをどのようにしてリダイレクトするかを示す機能流れ図である。最初に、ブロック２１０で、プロキシ・デバイス１０２は、マルウェア・コンピューティング・デバイス１００とホスト・コンピューティング・デバイス１０４とからのパケットを「聴取」する。パケットが受信されると（ブロック２２０）、プロキシ・デバイス１０２は、ブロック２３０で、そのパケットがホスト・コンピューティング・デバイスからのものであるかどうかを決定する。パケットがホスト・コンピューティング・デバイス１０４からのものではない場合、そのパケットはマルウェア・コンピューティング・デバイス１００からのものである。本発明の図示の例示的な実施の形態においては、マルウェア・コンピューティング・デバイス１００によって送信されたパケットすなわちパケット＃１のデータ・パケットは、Ｍａｌｗａｒｅ＿ＭＡＣ（マルウェア・コンピューティング・デバイス１００のＭＡＣアドレス）の値をセットされたソースＭＡＣアドレスと、Ｍａｌｗａｒｅ＿ＩＰの値をセットされたソース・ネットワーク・アドレス、すなわちマルウェア・コンピューティング・デバイス１００のネットワーク・アドレスとを含む。更に、パケット＃１のデータ・パケットは、Ｐｒｏｘｙ＿ＭＡＣ（プロキシ・デバイス１０２のＭＡＣアドレス）の値をセットされた宛先ＭＡＣアドレスと、Ｔａｒｇｅｔ＿ＩＰの値をセットされた宛先ネットワーク・アドレスとを含む。Ｔａｒｇｅｔ＿ＩＰの値は、マルウェア・コンピューティング・デバイス１００で動作するマルウェア・ソフトウェアによって生成された無作為の受信側コンピューティング・デバイス・アドレスである。
【００１５】
図２に戻って、パケット＃１のデータ・パケットを受信すると、この流れ図はブロック２４０に進み、ここで、プロキシ・デバイス１０２はソースＭＡＣアドレスをＰｒｏｘｙ＿ＭＡＣに変更し、ソース・ネットワーク・アドレスをＴａｒｇｅｔ＿ＩＰに変更する。また、プロキシ・デバイス１０２は、宛先ＭＡＣアドレスをＨｏｓｔ＿ＭＡＣ（ホスト・コンピューティング・デバイス１０４のＭＡＣアドレス）に変更し、宛先ネットワーク・アドレスをＨｏｓｔ＿ＩＰ（ホスト・コンピューティング・デバイス１０４のネットワーク・アドレス）に変更する。これらの変更は、パケット＃１のデータ・パケットをパケット＃２のデータ・パケットに変換する。パケット＃２のデータ・パケットの本体は、パケット＃１のデータ・パケットの本体と同一であるが、ソース・アドレス及び宛先アドレスは異なり、上で説明した形で変更されている。本明細書で説明する例示的な実施の形態のプロキシ・デバイス、マルウェア・コンピューティング・デバイス及びホスト・コンピューティング・デバイスのソース・アドレス及び宛先アドレスはＩＰアドレスであるが、明らかに、使用の環境に応じて、他のアドレスを使用することができる。次いで、ブロック２５０で、プロキシ・デバイス１０２はパケット＃２のデータ・パケットをホスト・コンピューティング・デバイス１０４に送信する。マルウェア・コンピューティング・デバイス１００とホスト・コンピューティング・デバイス１０４とはパケット＃１のデータ・パケットがリダイレクトされたことを全く知らない。ブロック２９０で、更なるパケットが期待される場合に、流れはブロック２１０に戻って、更なるパケットを聴取する。更なるパケットが期待されない場合には、流れは終了する。
【００１６】
ブロック２３０に戻って、受信されたパケットがマルウェア・コンピューティング・デバイスからではなくホスト・コンピューティング・デバイスからのものである場合、受信されたデータ・パケットは応答データ・パケットである。すなわち、そのデータ・パケットはパケット＃３のデータ・パケットである。この場合に、流れ図はブロック２７０に進み、ここで、プロキシ・デバイス１０２はパケット＃３のデータ・パケットをパケット＃４のデータ・パケットに変換する。より具体的には、パケット＃３のデータ・パケットは、Ｈｏｓｔ＿ＭＡＣのソースＭＡＣアドレスとＨｏｓｔ＿ＩＰのソース・ネットワーク・アドレスとを含む。更に、パケット＃３のデータ・パケットは、Ｐｒｏｘｙ＿ＭＡＣの宛先ＭＡＣアドレスとＴａｒｇｅｔ＿ＩＰの宛先ネットワーク・アドレスとを含む。プロキシ・デバイス１０２は、パケット＃３の各データ・パケットをパケット＃４のデータ・パケットに変更する。これは、ソースＭＡＣアドレスをＰｒｏｘｙ＿ＭＡＣに変更し、ソース・ネットワーク・アドレスをＴａｒｇｅｔ＿ＩＰに変更し、宛先ＭＡＣアドレスをＭａｌｗａｒｅ＿ＭＡＣに変更し、宛先ネットワーク・アドレスをＭａｌｗａｒｅ＿ＩＰ（マルウェア・コンピューティング・デバイス１００のネットワーク・アドレス）に変更することによって達成される。したがって、パケット＃１のデータ・パケット及びパケット＃２のデータ・パケットと同様に、パケット＃３のデータ・パケット及びパケット＃４のデータ・パケットの本体は変更されず、パケット・ヘッダ内のソース・アドレス及び宛先アドレスだけが変更される。次いで、ブロック２８０で、プロキシ・デバイス１０２は、パケット＃４のデータ・パケットをマルウェア・コンピューティング・デバイス１００に送信する。したがって、マルウェア・コンピューティング・デバイス１００は、リダイレクトされたパケット＃３のデータ・パケットをパケット＃４のデータ・パケットとして受信する。やはり、マルウェア・コンピューティング・デバイス１００とホスト・コンピューティング・デバイス１０４とは、パケット＃３のデータ・パケットがリダイレクトされたことを全く知らない。前と同様に、ブロック２９０で、更なるパケットが期待される場合、流れはブロック２１０に戻って、更なるパケットを聴取する。更なるパケットが期待されない場合には、流れは終了する。
【００１７】
要するに、プロキシ・デバイス１０２は、ソース・システム又は宛先システム、すなわちマルウェア・コンピューティング・デバイス１００又はホスト・コンピューティング・デバイスがリダイレクトに気付くことなく、マルウェア・コンピューティング・デバイス１００で発するデータ・パケットをホスト・コンピューティング・デバイス１０４にリダイレクトし、応答データ・パケットをマルウェア・コンピューティング・デバイス１００にリダイレクトする。
【００１８】
図３は、ステートレス双方向プロキシ・デバイス３０８を含むマルチコンピュータ・ネットワーク・システムを示す。図３によって示される例示的な構成においては、プロキシ・デバイス３０８は２つのサブネット、すなわちマルウェア・サブネット３００及びホスト・サブネット３１０を結合する。マルウェア・サブネット３００は複数のコンピューティング・デバイス、例えばパーソナルコンピュータ又は他のコンピューティング・デバイスを含み、そのうちの少なくとも１つがマルウェア・コンピューティング・デバイス３０２であり、ホスト・サブネット３１０はホスト・コンピューティング・デバイス３１２を含む複数のホスト・コンピューティング・デバイスを含む。マルウェア・サブネット３００は、ネット・デバイスＭとして識別されるネットワーク結合デバイス３０４を介してプロキシ・デバイス３０８に結合される。同様に、ホスト・サブネット３１０は、ネット・デバイスＨとして識別される別のネットワーク結合デバイス３０６を介してプロキシ・デバイス３０８に結合される。１つの例示的な実施の形態では、ネットワーク・デバイス３０４、３０６は、或るサブネットを別のサブネットに適切に接続するネットワーク・ルータである。この例示的な実施の形態では、プロキシ・デバイス３０８は、ルータの機能のサブセット、すなわち、ネットワーク結合デバイス３０４、３０６を介して接続されるサブネットからのデータ・パケットの受信及びルーティングを実行する。この実施の形態では、ポート転送などの技法を利用して、ルータに接続された特定のシステムにデータ・パケットを転送することができる。ポート転送方式では、通信ポート番号が、パケットが送られるコンピューティング・デバイスのネットワーク・アドレスに含まれる。そのコンピューティング・デバイスは、その通信ポート番号を含むデータ・パケットに応答する（すなわち、受け入れる）。ポート転送は、複数のコンピューティング・デバイスによる使用のためにＩＰアドレスなどの単一のネットワーク・アドレスを効果的に拡張するようにポート番号を使用するが、そのようなコンピューティング・デバイスのそれぞれは、典型的には、特定のポート番号で特定のアプリケーションに応答する。例えば、ウェブ・ブラウジングに使用されるハイパーテキスト転送プロトコル（「ＨＴＴＰ」）は、ポート８０が機能することを必要とし、ファイル転送プロトコル（「ＦＴＰ」）はポート２１を必要とする。或るネットワーク・パケットがＨＴＴＰ情報を含む場合、ポート転送方式は、パケットを、ポート８０に関連するコンピューティング・デバイスに向けさせる。ポート転送は、ウェブ・ブラウジング及びＦＴＰなど、複数のアプリケーションのために働く単一のコンピューティング・デバイス上で使用することもできる。もう１つの例示的な実施の形態では、ネットワーク・デバイス３０４、３０６はネットワーク・ハブ、すなわち、ネットワーク接続をネットワークの複数のコンピューティング・デバイスに複製するハブである。この実施の形態では、プロキシ・デバイス３０８は、マルウェア・サブネットをホスト・サブネットに接続するルータの機能を含む。
【００１９】
図４は、プロキシ・デバイス３０８とネットワーク・コンピューティング・デバイス３０４、３０６が、マルウェア・コンピューティング・デバイス３０２とホスト・サブネット３１０に含まれるホスト・コンピューティング・デバイス３１２との間でデータ・パケットをどのようにリダイレクトするかを示す流れ図である。図３のプロキシ・デバイス及びネットワーク接続デバイスの動作は、図１のプロキシ・デバイス１０２の動作に実質的に類似するが、図４は、サブネット３００、３１０のそれぞれに複数のコンピューティング・デバイスを備え、マルウェア・サブネット３００及びホスト・サブネット３１０をプロキシ・デバイス３０８に接続するネットワーク接続デバイス３０４、３０６を備える点で図１と異なる。
【００２０】
図４の流れはブロック４０５に進み、ここで、プロキシ・デバイス３０８は、適切なデータ・パケット、すなわちマルウェア・コンピューティング・デバイス３０２又はホスト・コンピューティング・デバイス３１２からのデータ・パケットを聴取することにより、マルウェア・サブネット及びホスト・サブネットを監視する。他のデータ・パケットは無視される。プロキシ・デバイス３１０が適切なデータ・パケットを受信すると（ブロック４１０）、ブロック４１５で、プロキシ・デバイスはパケットがホスト・コンピューティング・デバイス３１２からのものかどうかを決定する。パケットがホスト・コンピューティング・デバイス３０２からではない場合、そのデータ・パケットはマルウェア・コンピューティング・デバイス３１２からのものである。この場合、流れはブロック４２０に進み、ここで、図２に関して上で全般的に説明したように、パケット＃１のデータ・パケットすなわちマルウェア・コンピューティング・デバイスのデータ・パケットは、パケット＃１のデータ・パケットの本体をコピーし、ヘッダ内のネットワーク識別及びアドレスを変更することによって、パケット＃２のデータ・パケットに変更される。次いで、ブロック４２５で、プロキシ・デバイス３０８は、パケット＃２のデータ・パケットを、ホスト・サブネットに接続されたネットワーク接続デバイス３０６すなわちネット・デバイスＨに送信する。上で注記したように、ネットワーク接続デバイス３０６は複数の形をとることができる。１つの例示的な実施の形態では、ネットワーク接続デバイス３０４、３０６は、プロキシ・デバイス３０８からの外部ネットワーク・トラフィックを、関連するサブネット３００、３１０に接続するルータである。ルータは、上で説明したポート転送などの技法を使用して、データ・パケットを、ネットワーク接続デバイス３０６に接続された特定のコンピューティング・デバイスに転送する。図３に示された例示的な構成では、パケット＃２のデータ・パケットは、ネット・デバイスＨにより、ターゲットであるホスト・コンピューティング・デバイス３１２にルーティングされる。このルーティングは、ターゲットであるホスト・コンピューティング・デバイス３１２の共通のネットワーク・アドレス及び指定されたポート番号に基づく。代りに、ネット・デバイスＨは、各ホスト・コンピューティング・デバイス３１２に別個のネットワーク・アドレス（例えば、ＩＰ）を割り当てることができ、これによって、パケット＃２のデータ・パケットが、ターゲットのホスト・コンピューティング・デバイス３１２の別個のネットワーク・アドレスに基づいて、ターゲットのホスト・コンピューティング・デバイス３１２に配信される。別の代替案では、ネット・デバイスＨ  ３０６はネットワーク・ハブであり、プロキシ・デバイスは２つの接続されたサブネット間でルーティング機能を実行する。この代替案では、ネット・デバイスＨ  ３０６は、ホスト・コンピューティング・デバイス３１２を含むサブネット３１０へのアクセス・ポイントを提供する。もう１つの代替案（図示せず）では、プロキシ・デバイス３０８及びネットワーク・デバイス３０４、３０６は、プロキシ、ルータ、及び��スト・コンピューティング・デバイス３０２、３１２へのアクセス・ポイントの機能を実行する単一のデバイスに統合される。更に別の代替案では、プロキシ・デバイス３０８及びネットワーク接続デバイス３０４、３０６の機能がハードウェアではなくソフトウェアを使用して実施される。もう１つの代替案では、プロキシ・デバイス３０８及びネットワーク接続デバイス３０４、３０６の機能がハードウェアとソフトウェアとの組合せを使用して実施される。したがって、上で注記したように、図３に示された構成は限定的ではなく、例示と解釈されなければならない。
【００２１】
図４に戻って、次に、ブロック４３０で、ネット・デバイスＨ  ３０６は、パケット＃２のデータ・パケットをホスト・サブネット３１０内のターゲット、すなわちホスト・コンピューティング・デバイス３１２に転送する。受信すべき更なるパケットがある場合には、ブロック４６０で、流れはブロック４０５に戻り、そうでない場合には、流れは終了する。
【００２２】
ブロック４１５に戻って、パケットがパケット＃３のデータ・パケット、すなわちホスト・コンピューティング・デバイス３１２からのデータ・パケットである場合、流れはブロック４４０に進み、ここで、図２に関して上で全般的に説明したように、プロキシ・デバイス３０８は、パケット＃３のデータ・パケットの本体をコピーし、ヘッダ内のネットワーク識別及びアドレスを変更することによって、パケット＃３のデータ・パケットからパケット＃４のデータ・パケットを作成する。次いで、ブロック４４５で、プロキシ・デバイス３０８は、パケット＃４のデータ・パケットをネット・デバイスＭに送信し、ネット・デバイスＭは、パケット＃４のデータ・パケットをマルウェア・コンピューティング・デバイス３０２に、全般的にはネット・デバイスＨがパケット＃２のデータ・パケットを転送するのと同じ方法で転送する。その後、ブロック４６０で、受信すべき更なるパケットがある場合、流れはブロック４０５に戻り、そうでない場合、流れは終了する。
【００２３】
図５は、ソフトウェア又はハードウェアの形での実施に適するプロキシ・デバイス５００の例示的な実施の形態を示す。図を簡単にするために、主要なハードウェア又はソフトウェアのモジュール又はコンポーネントだけが図５に図示されており、理解されるとおり、実際のプロキシは追加のモジュール又はコンポーネントを含み得る。図５に示された例示的なプロキシ・デバイス５００は、プロセッサ５０２、メモリ５０４及び一対の入出力インターフェース５０６、５０８を備える。当業者に周知の通り、メモリ５０４は異なるセクションを含むことができ、各セクションは異なるタイプであってよい。例えば、メモリ５０４は、ダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）セクション及び読取専用メモリ（「ＲＯＭ」）又は不揮発性フラッシュ型メモリを含むことができる。典型的には、ＤＲＡＭは、プロキシ・ソフトウェアの実行中のデータの一時的ストレージ及び中間ストレージに使用され、ＲＯＭ又はフラッシュ・メモリは、不揮発性データ及びプログラムを格納するのに使用される。データ・パケットは入出力インターフェース５０６、５０８のうちの１つで受信される。受信されたデータ・パケットはシステム・バス５１０を介してメモリ５０４に転送される。プロセッサ５０２はデータの移動を制御し、プロキシ・デバイスが必要とするデータ処理タスクを実行する。より具体的には、プロセッサ５０２は、メモリ５０４に格納されたソフトウェア・プログラム（「プロキシ・ソフトウェア」）を実行する。プロキシ・ソフトウェアはメモリ５０４の不揮発性部分に格納される。メモリ５０４の不揮発性部分は、ソース・コンピューティング・デバイス及び宛先コンピューティング・デバイス、例えば、図１及び３に関して上で説明したマルウェア・コンピューティング・デバイス及びホスト・コンピューティング・デバイスのアドレスをも格納する。プロキシ・ソフトウェアは、ステートレス・プロキシ・デバイスの動作機能、例えば、図２及び４に図示され、上で説明されたステートレス双方向プロキシ・デバイスの機能を実行する。より具体的には、プロキシ・ソフトウェアは、入出力インターフェースの一方から受信されたデータ・パケットをメモリに一時的に格納し、受信されたデータ・パケットのヘッダ内のソース・アドレス及び宛先アドレスを変更し、入出力インターフェース５０６、５０８の他方を使用して新しいデータ・パケットを宛先に送信することによって、データ・パケットをリダイレクトする。
【００２４】
もう１つの実施の形態（図面には図示せず）では、すべてのプロキシ・コンポーネント、すなわち、プロセッサ５０２、メモリ５０４及び入出力インターフェース５０６、５０８が単一の電子チップに一体化される。別の実施の形態では、入出力インターフェース５０６、５０８を、イーサネット（登録商標）・インターフェースなどの有線ネットワーク・インターフェースとすることができる。もう１つの実施の形態では、無線受信機及び無線送信機などの他のコンポーネントを使用して、入出力インターフェース５０６、５０８の機能を実行することができる。もう１つの実施の形態では、クロック・ジェネレータ、余分な論理回路、データ・バッファ、電力回路網などの他のハードウェア・コンポーネントをプロキシ・デバイスに含めることができる。したがって、上で注記したように、図５に示されたプロキシ・コンポーネント又はプロキシ・モジュールは限定的ではなく、例示と解釈されなければならない。
【００２５】
図６は、ハードウェアでの実施に理想的に適する代替のプロキシ・デバイス６００の例示的な実施の形態を示す。図６に示されたプロキシ・デバイス６００は、論理制御回路（「コントローラ」）６０２、２つのデータ・パケット・バッファ・メモリ（「データ・パケット・バッファ」）６０４、６０６、及び２つの入出力インターフェース６０８、６１０を含む。入出力インターフェース６０８、６１０の一方で受信されたデータ・パケットは、システム・バス６１２を介してデータ・パケット関連のバッファ６０４、６０６の関連する１つに転送される。コントローラ６０２は、入出力インターフェース６０８、６１０とデータ・パケット・バッファ６０４、６０６との間のデータ移動ならびにプロキシ・デバイスが必要とする他のデータ処理タスク、すなわち、図２及び４に示された上述のプロキシ機能などの計算プロセスを制御する。好ましくは、コントローラ６０２は、入出力インターフェース６０８、６１０のビット・レートなど、動作パラメータをセットするための低水準でプログラムされたハードウェア・コンポーネントからなる。コントローラ６０２の低水準プログラミングは、例えば、ハードウェア・スイッチ、プログラマブル論理アレイ（「ＰＬＡ」）、消去可能プログラマブル読取専用メモリ（「ＥＰＲＯＭ」）、又は当技術分野で周知の他の低水準プログラミング・デバイスを使用して実行することができる。低水準プログラミングは、図１〜４に関して上で説明した方法でデータ・パケットをリダイレクトするときにプロキシが使用するソース・アドレス及び宛先アドレスをセットすることをも含むことができる。好ましくは、バッファ６０４、６０６はメモリ・アレイを含む。例えば、データ・パケット・バッファ６０４、６０６は、ＤＲＡＭ、スタティックＲＡＭタイプ（「ＳＲＡＭ」）、又は十分なアクセス速度を有する他の適切なメモリ・アレイとすることができる。必要であれば、プロキシは、図６に示されている２つより多くのデータ・パケット・バッファを含むことができる。例えば、プロキシは、同時双方向データ・パケット処理（すなわち全二重）用の４つ又は６つの独立にアドレス指定可能なバッファと、データ・パケット・アドレスを変更している間に値をスワップするための一時データ・パケット・バッファとを含むことができる。データ・パケット・バッファの他の組合せも可能である。コントローラ６０２は、データ・パケットに含まれるデータをデータ・パケット・バッファ６０４、６０６との間で転送させ、データ・パケット・バッファ６０４、６０６に格納させる。図２及び４に関して上で説明したように、コントローラ６０２は、新しいデータ・パケットを作成する時に、入出力インターフェース６０８、６１０の一方から受け取ったデータ・パケットのヘッダ内のソース・アドレス及び宛先アドレスを変更する。新しいデータ・パケットは、入出力インターフェース６０８、６１０の他方を使用して宛先に送信される。
【００２６】
更に別の実施の形態（図面には図示せず）では、プロキシ・コンポーネント、すなわち、プロセッサ５０２又はコントローラ６０２、メモリ５０４又はデータ・パケット・バッファ６０４、６０６、及び入出力インターフェース５０６、５０８又は６０８、６１０を、ハードウェア・コンポーネント及びソフトウェア・プログラムの組合せによって実施することができる。例えば、入出力インターフェース６０８、６１０及びデータ・バッファ６０４、６０６を、ハードウェア・コンポーネントを使用して実施することができ、コントローラ６０２を、プロセッサ５０２に類似するプログラマブル・コントローラに置換することができる。したがって、図５と同様に、図６に示されたプロキシ構成は限定的ではなく、例示と解釈されなければならない。
【００２７】
上で説明した方法及びシステムは、アンチマルウェア・ソフトウェアの試験での使用に理想的に適する。そのような使用では、マルウェア・コンピューティング・デバイス１００、３０２が、マルウェアを含むデータ・パケットを生成するマルウェアを実行する。上で注記したように、また、当業者に周知の通り、マルウェア・データ・パケットは、コンピューティング・デバイス及び／又はコンピューティング・デバイスの要素及びコンポーネントを汚染し、及び／又はこれに過負荷を与えるように設計される。マルウェア・データ・パケットに含まれるランダム・ターゲティングに関する問題を除去するために、図１及び３に示された例示的な構成で使用されるプロキシ・デバイス１０２、３０８は、アンチマルウェア・ソフトウェアを実行している特定のホスト・コンピューティング・デバイスにマルウェア・データ・パケットをリダイレクトする。この配置は、アンチマルウェア・ソフトウェアの試験において有利である。これは、マルウェアを含むすべてのネットワーク・パケットが、プロキシ・デバイス１０２、３０８の制御の下で既知の宛先にリダイレクトされ、データを収集すること及びアンチマルウェア・ソフトウェアがマルウェア・データ・パケットにどのように応答するかを観察することが可能になるからである。
【００２８】
本発明の例示的な実施の形態を図示し且つ説明してきたが、理解されるように、本発明の趣旨及び範囲から逸脱することなく様々な変更を行うことができる。例えば、本発明は、アンチマルウェア・ソフトウェアの試験での使用に理想的に適するが、本発明の実施の形態は他の環境での用途を見出すことができる。更に、図示され説明されたプロキシ・デバイス１０２、３０８は双方向的に動作するが、単方向プロキシ・デバイスが幾つかの環境で用途を見出すことができる。したがって、理解されるとおり、添付の特許請求の範囲の範囲内で、本発明を、本明細書で具体的に説明されたものと異なる形で実施することができる。
【００２９】
排他的な所有権又は特権が請求される本発明の実施の形態は、特許請求の範囲で定義される。
【図面の簡単な説明】
【００３０】
【図１】ステートレス双方向プロキシ・デバイスを含む、２つのコンピュータのシステムを示す図である。
【図２】図１に示されたステートレス双方向プロキシ・デバイスの動作を示す流れ図である。
【図３】ステートレス双方向プロキシ・デバイスを含む、マルチコンピュータ・ネットワーク・システムを示す絵図である。
【図４】図３に示されたステートレス双方向プロキシ・デバイス及び関連する要素の動作を示す流れ図である。
【図５】ステートレス双方向プロキシ・デバイスの例示的な実施の形態を示すブロック図である。
【図６】ステートレス双方向プロキシ・デバイスの別の例示的な実施の形態を示すブロック図である。
【図１】
2009510647.tif 000003
【図２】
2009510647.tif 000004
【図３】
2009510647.tif 000005
【図４】
2009510647.tif 000006
【図５】
2009510647.tif 000007
【図６】
2009510647.tif 000008
【国際調査報告】
2009510647.tif 000009
2009510647.tif 000010