(57)【要約】      （修正有）【課題】ゲートウェイノードでウイルス検査を実施する手段を提供し、各コンピュータにウイルス検査プログラムをインストールする必要性をなくする。【解決手段】ファイル転送を制御するＦＴＰプロキシサーバと、メールメッセージの転送を制御するＳＭＴＰプロキシサーバとを備えた、コンピュータネットワーク上でウイルスを検出・除去するシステム。ＦＴＰプロキシ・サーバおよびＳＭＴＰプロキシサーバは、システムの通常動作と並行して稼働し、ネットワークに対して送受信されるファイルやメッセージに含まれるウイルスをその送受信の前に検出する動作をする。ＦＴＰプロキシサーバおよびＳＭＴＰプロキシサーバは、受信したファイル／メッセージ、および送信するファイル／メッセージ全てについて、それを転送する前にウイルス検査を行い、ウイルスを含んでいない場合にのみ、それらのファイルやメッセージの転送を行なう。【選択図】図３
2008171415.tif 000002
【特許請求の範囲】
【請求項１】
前記宛先アドレスを第１のネットワークの有効なアドレスと比較することにより前記データが前記第１のネットワーク内に転送されるか否かを判定するステップを更に含み、
前記サーバがＦＴＰプロキシ・サーバであり、
前記データを電気的に転送するステップは、前記データが前記第１のネットワーク内に転送されない場合、該データをクライアント・ノードから前記ＦＴＰプロキシ・サーバに転送するステップを含み、
前記データを電気的に転送する前記ステップは、前記データが前記第１のネットワーク内に転送される場合、前記データをサーバ・タスクからＦＴＰデーモンへ転送し、次いで該ＦＴＰデーモンから前記ＦＴＰプロキシ・サーバへ転送するステップを含む、請求項５に記載の方法。
【請求項２】
前記宛先アドレスを第１のネットワークの有効なアドレスと比較することにより前記データが前記第１のネットワーク内に転送されるか否かを判定するステップを更に含み、
前記サーバがＦＴＰプロキシ・サーバであり、
前記データを宛先アドレスに送信するステップは、前記データが前記第１のネットワーク内に転送される場合、該データを前記ＦＴＰプロキシ・サーバから前記宛先アドレスを有するノードに転送するステップを含み、
前記データを宛先アドレスに送信するステップは、前記データが前記第１のネットワーク内に転送されない場合、該データを前記ＦＴＰプロキシ・サーバからＦＴＰデーモンへ転送し、次いで該ＦＴＰデーモンから前記宛先アドレスを有するノードへ転送するステップを含む、請求項１に記載の方法。
【請求項３】
第１のコンピュータと第２のコンピュータの間で転送されるメール・メッセージのウイルスを検出するための、コンピュータで実施される方法であって、
宛先アドレスを含むメール・メッセージ要求を受信するステップと、
前記メール・メッセージをサーバへ電気的に転送するステップと、
前記メール・メッセージがウイルスを含むか否かを判定するステップと、
前記メール・メッセージがウイルスを含む場合、該メール・メッセージに対し、予め設定された動作を実施するステップと、
前記メール・メッセージがウイルスを含まない場合、該メール・メッセージを前記宛先アドレスに送信するステップと
からなる方法。
【請求項４】
前記メール・メッセージかウイルスを含むか否かを判定するステップは、前記メールメッセージの符号化部分を検査することによって行なわれる、請求項３に記載の方法。
【請求項５】
前記メールメッセージの符号化部分を検査するステップは、uuencodeされた部分を検査するステップである、請求項４に記載の方法。
【請求項６】
前記メール・メッセージが符号化部分を含まない場合、前記メール・メッセージを宛先アドレスに送信するステップを実施し、
前記サーバはＳＭＴＰプロキシ・サーバおよびＳＭＴＰデーモンを含み、
前記メール・メッセージを送信するステップは、前記メール・メッセージを前記ＳＭＴＰプロキシ・サーバから前記ＳＭＴＰデーモンへ転送し、更に該メール・メッセージを前記ＳＭＴＰデーモンから前記宛先アドレスに一致するアドレスを有するノードへ転送する、請求項４に記載の方法。
【請求項７】
前記メール・メッセージがウイルスを含むか否かを判定するステップは、
前記メール・メッセージを一時ファイルに記憶するステップと、
前記一時ファイルに対してウイルスの検査を行なうステップと、
前記検査を行なうステップでウイルスが発見されたか否かを調べるステップとを更に含む、請求項３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、コンピュータ・システム及びコンピュータ・ネットワークに関する。特に本発明は、コンピュータ・ウイルスを検出・除去するシステムおよび方法に関する。更に詳しくは、本発明はコンピュータ・ネットワーク間で転送されるファイル及びメッセージからコンピュータ・ウイルスを検出し、除去するシステムおよび方法に関する。
【背景技術】
【０００２】
最近、コンピュータの使用が広範に広がっている。更に、ネットワーク内のコンピュータの相互接続も広く行き渡っている。図１を参照すると、従来技術の情報システム20の一部のブロック図が示されている。この示された情報システム20の一部は、第１のネットワーク22、第２のネットワーク24、及び第３のネットワーク26を含んでいる。この情報システム20は、単なる例として示されており、当業者は、それぞれが、それ自身保護されたドメインであり、任意の数のノードを有する、任意の数のネットワークを含むような情報システム20を構築できる。図１に示すように、ネットワーク22、24、26のそれぞれは、複数のノード30、32から形成される。各ノード30、32は、マイクロコンピュータであることが好ましい。ノード30、32は、複数のネットワーク接続36によって、一緒に接続され、ネットワークを形成する。例えば、ノード30、32は、トークンリング形式、イーサネット形式、または当業界で公知の他の様々な形式を使用して、一緒に接続される。ネットワーク22、24、26は、それぞれのネットワーク22、24、26を他のネットワーク22、24、26にリンクする、ゲートウエイとして機能するノード32を含む。ゲートウエイ・ノード32のそれぞれは、POTS（Plain Old Telephone Service)やT-1リンクといった標準電話回線接続34によって、電話交換網28を介して他のゲートウエイ・ノード32に接続されるのが好ましい。ネットワーク22、24、26間の全ての通信は、このゲートウエイ・ノード32を介して行われるのが好ましい。
【０００３】
感染したコンピュータ、特にマイクロコンピュータが有する特有の問題はコンピュータ・ウイルスおよびワーム(worm)である。コンピュータ・ウイルスは、別のプログラム内に埋め込まれ、または隠されたコードの一部である。プログラムが実行されると、そのコードが起動され、それ自身をシステム内の他のプログラムにアタッチする。感染したプログラムは、次にそのコードを他のプログラムにコピーする。こうしたウイルスの活動の結果は、メッセージをスクリーン上に表示させる単純な悪ふざけであることもあるし、プログラム及びデータを破壊するような、より深刻な結果となることもある。従来技術の別の問題はワームである。ワームはコンピュータの利用可能な資源を使って、ディスクとメモリにわたって自身を複写し、最終的にはコンピュータ・システムをクラッシュさせる、破壊的なプログラムである。ワームとウイルスのその破壊的な性質のため、それらをコンピュータ及びネットワークから除去するニーズが明らかに存在する。
【０００４】
従来の技術は、様々なウイルス検出プログラムを用いて、このウイルスの影響を小さくし、その増殖を抑えようとしてきた。こうしたウイルス検出方法の１つは、挙動傍受(behavior interception)とも呼ばれるが、書き込み、消去、ディスクのフォーマット等といった重要なオペレーティング・システムの機能について、コンピュータやシステムを監視するものである。こうした動作が発生した場合、このプログラムはユーザに、このような動作を期待していたかどうかに関する入力を促す。こうした動作を期待していないのであれば（例えば、ユーザがこうした機能を使用するプログラムを何も動作させていない）、ユーザは、それがウイルス・プログラムによって行われていることに気づき、その動作を中止することができる。別のウイルス検出方法は、シグネチャ検査(signature scannig)として知られるが、システム上にコピーされるプログラム・コードを走査するものである。システムはウイルスに使用されているプログラム・コードの既知のパターンを検索する。現在、シグネチャ検査は、フロッピー(R)ディスク・ドライブ、ハード・ドライブ、または光学ドライブ上でのみ動作する。これまでの別の従来技術のウイルス検出に対するアプローチは、システム上に記憶され、ウイルスに開放されている全てのホスト・プログラムのチェックサムを実行する。従って、ウイルスが後でそれ自身をホスト・プログラムにアタッチする場合、チェックサム値が異なるものになり、ウイルスの存在が検出される。
【０００５】
それにも関わらず、これらの従来技術のアプローチは多くの欠点を有する。第１に、挙動傍受は、ウイルスのコードの一部となりうる重要な動作が、こうした重要な動作が通常のプログラムの動作に関して発生する可能性のある位置に配置されうるので、全てのウイルス検出を行うことができない。第２に、ほとんどのシグネチャ検査はディスク・ドライブの新しい入力に関して実行されるのみである。インターネットの出現と、その急速な広まりによって、他のネットワークと通信しているゲートウエイ・ノードによって使用されるような、接続36の走査を成功裡に行うことができる従来技術の方法はない。第３に、上記方法の多くはかなり多くのコンピュータ資源を必要とし、それは次に全体のシステム性能を劣化させる。従って、ウイルス検出プログラムを全てのコンピュータで動作させることは、現実的でなくなってきている。それ故、こうした多くのウイルス検出プログラムの動作によって、個々のマシンは高い性能を発揮できない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従って、コンピュータの性能に大きな影響を与えることなくウイルスを効果的に検出、除去するためのシステム、及び方法に対するニーズがある。更に、ゲートウエイやインターネットによって他の情報システムに接続されたネットワーク内のウイルスを検出、除去できるシステム、及び方法に対するニーズもある。
【課題を解決するための手段】
【０００７】
本発明は、コンピュータ・ネットワーク上でウイルスを検出し、除去する装置、及び方法を使用して、従来技術の制限、及び欠点を克服する。本発明を含むシステムは、複数のノードと、他のネットワークに接続するためのゲートウエイ・ノードから構成されるネットワークである。このノードはマイクロコンピュータであることが望ましく、ゲートウエイ・ノードは、ディスプレイ装置、中央演算処理装置、本発明の装置を形成するメモリ、入力装置、ネットワーク・リンク、及び通信ユニットを含む。メモリは更に、カーネルを含むオペレーティング・システム、ファイル転送プロトコル(FTP)プロキシ・サーバ、メール転送プロトコル(SMTP)プロキシ・サーバを含んでいる。中央演算処理装置、ディスプレイ装置、入力装置、及びメモリは接続され、メモリ内に記憶されているアプリケーション・プログラムを実行するよう動作される。ゲートウエイ・ノードの中央演算処理装置も、通信ユニットに対してファイルを転送し、及び受信するためにFTPプロキシ・サーバを実行し、通信ユニットに対してメッセージを転送し、及び受信するためにSMTPプロキシ・サーバを実行する。FTPプロキシ・サーバとSMTPプロキシ・サーバは、ゲートウエイ・ノードの通常動作で同時に動作されることが好ましい。これらのサーバは、ネットワークに、またはネットワークから転送されるメッセージ及びファイル内のウイルスが、そのファイルがネットワーク内に、またはネットワークから転送される前に検出されるような方法で動作することが望ましい。本発明のゲートウエイ・ノードが特に有用である理由は、ウイルスの検出にＦＴＰプロキシ・サーバおよびＳＭＴＰプロキシ・サーバを使用する影響が最小限で済むからである。その理由は、ネットワークへ送信されるファイルや、ネットワークから受信するファイルに対してしかウイルスの存在検査を行なわないため、他のイントラネットワーク・トラフィックには何も影響を及ぼさないからである。
【０００８】
本発明はまた、ファイルがネットワーク内に転送される前にそのファイルを処理する方法、及びファイルがネットワークから転送される前にそのファイルを処理する方法も含む。ファイルを処理する好ましい方法は、データ転送コマンド及びファイル名を受信するステップ、そのファイルをプロキシ・サーバに転送するステップ、そのファイルにウイルス検出を行うステップ、そのファイルがウイルスを含むかどうか判定するステップ、そのファイルがウイルスを含まない場合にそのファイルをプロキシ・サーバから受信ノードに転送するステップ、そのファイルがウイルスを含む場合にそのファイルで事前設定動作を行うステップを含む。本発明はまた、メッセージがネットワークに転送、またはネットワークから転送される前に、そのメッセージを処理する、同様に動作する方法も含む。
【発明を実施するための最良の形態】
【０００９】
本発明のウイルス検出システム及び方法は、図１に関連して示した上述のような情報システム20上で動作することが望ましい。本発明は、従来技術のものと同様、複数のノード・システム30、及び各ネットワーク22、24、26に少なくとも１つのゲートウエイ・ノード33を含むことが望ましい。しかし、本発明は、ネットワーク内に転送される、またはネットワークの外に転送される全てのファイルに対するウイルス検出も行う新しいゲートウエイ・ノード33を提供するので、従来のものとは異なる。更に、新しいゲートウエイ・ノード33は、ネットワーク内に転送される、またはネットワークの外に転送される全てのメッセージに対するウイルス検出も行う。
【００１０】
図２を参照すると、本発明に従って構成された、新しいゲートウエイ・ノード33の好適実施例のブロック図が示されている。このゲートウエイ・ノード33の好適実施例は、ディスプレイ装置40、中央処理装置(CPU)42、メモリ44、データ記憶装置46、入力装置50、ネットワーク・リンク52、及び通信ユニット54を含む。CPU 42は、バス56によって、ディスプレイ装置40、メモリ44、データ記憶装置46、入力装置50、ネットワーク・リンク52、及び通信ユニット54に、フォン・ノイマン・アーキテクチャで接続されている。CPU 42、ディスプレイ装置40、入力装置50、及びメモリ44は、パーソナル・コンピュータのような従来技法によって接続されうる。CPU 42は、モトローラ68040、またはインテル・ペンティアムやX86タイプのプロセッサのようなマイクロ・プロセッサであることが望ましく、ディスプレイ装置40は、ビデオモニタであることが望ましく、入力装置50は、キーボード、及びマウスタイプのコントローラであることが好ましい。CPU 42はまた、ハードディスク・ドライブのようなデータ記憶装置44にも、従来の方法で接続される。当業者には、このゲートウエイ・ノード33がミニコンピュータ、またはメインフレーム・コンピュータでもよいことが理解される。
【００１１】
バス56はまた、ネットワーク・リンク52にも接続され、ゲートウエイ・ノード33とネットワーク上の他のノード30との間の通信を容易にする。本発明の好適実施例では、ネットワーク・リンク52は、ケーブル、または線36に接続されたトランシーバを含むネットワーク・アダプタ・カードであることが望ましい。例えば、ネットワーク・リンク52は、同軸線、ツイストペア線、または光ファイバ線に接続されたイーサネット・カードであってもよい。当業者には、トークンリング、イーサネット、またはアークネット(arcnet)を含む様々な異なるネットワーク構成、及びオペレーティング・システムを使用でき、本発明がそうしたものの使用には依存していないことが理解される。ネットワーク・リンク52は、ネットワークを介して送信された信号、または所与のネットワークの保護されたドメイン内の信号を送信、受信、及び記憶するのに責任を有する。ネットワーク・リンク52はバス56に接続され、これらの信号をCPU 34に提供し、この逆も行われる。
【００１２】
バス56はまた、通信ユニット54に接続され、ゲートウエイ・ノード33と他のネットワークの間の通信を容易にする。特に、通信ユニット54は、他のネットワークにデータ及びメッセージを送信するために、CPU 42と接続される。例えば、通信ユニット54は、従来の方法で他のネットワークに接続されるモデム、ブリッジまたはルータであってもよい。本発明の好適実施例では、通信ユニット54はルータであることが望ましい。通信ユニット54は次に、専用T-1電話回線、光ファイバ、または従来の複数の接続方法のどれか１つのような媒体34を介して、他のネットワークに接続される。
【００１３】
CPU 42は、メモリ44から受信した命令、または入力装置50を介してユーザから受信した命令の案内、及び制御のもとで、通信ユニット54を使用するデータを送信、及び受信するための信号を提供する。ネットワーク間のデータ転送は、送信、及び受信のファイル、及びメッセージに細分化され、次にパケットに分解される。本発明の方法は、ゲートウエイ・ノード33を介してネットワーク内あるいは外へのメッセージ及びファイルの転送全てに適用されるウイルス検出技法を使用する。
【００１４】
図３を参照すると、ゲートウエイ・ノード33のメモリ44の好適実施例がより詳しく示されている。メモリ44は、ランダムアクセスメモリ(RAM)であることが望ましいが、読み取り専用メモリ(ROM)であってもよい。メモリ44は、ファイル転送プロトコル(FTP)プロキシ・サーバ60、メール転送プロトコル(SMTP)プロキシ・サーバ62、及びカーネル66を含むオペレーティング・システム64を含むことが望ましい。ファイル転送、及びメッセージのウイルス検出を行う本発明のルーチンは、主にFTPプロキシ・サーバ60とSMTPプロキシ・サーバ62を含む。FTPプロキシ・サーバ60は、通信ユニット54を介したゲートウエイ・ノード33への、及びそこからのファイル転送を制御するためのルーチンであり、従って、そのゲートウエイ・ノードが一部となっている所与のネットワークへの、及びそこからのファイル転送を制御する。FTPプロキシ・サーバ60の動作は、図5A、5B、6A、6B、及び6Cに関して以下で詳細に説明する。同様に、SMTPプロキシ・サーバ62は、ゲートウエイ・ノード33への、及びそこからのメッセージの転送を制御するためのルーチンであり、従って、そのゲートウエイ・ノード33が関連するそれぞれのネットワークへの、及びそこからのメッセージの転送を制御する。SMTPプロキシ・サーバ62の動作は、図７、8A、及び8Bに関して以下で詳細に説明する。本発明は、Berkeley SoftwareのUNIXのような従来のオペレーティング・システム28を使用するのが好ましい。当業者には、本発明がいかにMacintosh System Softwareのバージョン7.1、DOS、WindowsやWindows NTなどの他のオペレーティング・システムで使用できるよう容易に適応できるかが理解される。メモリ44は、これには限定されないが、コンピュータ描画プログラム、ワープロ、及びスプレッドシート・プログラムを含む様々な別のアプリケーション・プログラム68を含むことができる。本発明は、FTPプロキシ・サーバ60とSMTPプロキシ・サーバ62が好適にもゲートウエイ・ノード33のメモリ44内にのみ含まれ、またはインストールされるために、ウイルス検出及び除去の影響を最小にするので、従来の技術に比べて特に有利である。従って、所与のネットワークの保護されたドメインの内部に転送されているデータは、そのデータ・パケットがゲートウエイ・ノード33を介して経路付けられたものでない可能性があるため、全てがチェックされているとは限らない。
【００１５】
本発明の装置、特にFTPプロキシ・サーバ60、及びSMTPプロキシ・サーバ62が、ゲートウエイ・ノード33上に配置される、及び配置されることが好ましいとして上述してきたが、当業者には、本発明の装置を、ウエブからファイル及びメッセージがダウンロードされたときに、それらを走査するために、FTPサーバやワールド・ワイド・ウエブ・サーバに含めることもできることが理解される。更に、代替実施例では、本発明の装置を、ネットワークの各ノードから受信され、または送信された全てのメッセージに対するウイルス検出を行うために、そのノード内に含めることができる。
【００１６】
図４で最もよく示されているように、CPU 42は、ネットワークを介して通信を行うため、プロトコル層の階層も使用する。本発明のプロトコル層の階層は、図４にISO-OSI参照モデルと比較して例として示されている。本発明の階層のプロトコル層410-426は、従来プロトコル層の下位層400-403と同様である。これらの層は、（１）送信媒体410によって形成される物理層400、（２）ネットワーク・インタフェース・カード411で形成されるデータ・リンク層401、（３）アドレス解決412、インターネット・プロトコル413、及びインターネット制御メッセージ・プロトコル414から形成されるネットワーク層402、及び（４）転送制御プロトコル415、及びユーザ・データグラム・プロトコル416から形成されるトランスポート層403を含む。プレゼンテーション層405及びセッション層404に対応して、本発明のプロトコル階層は、ファイル転送プロトコル417、簡易メール転送プロトコル419、TELNETプロトコル419及び簡易ネットワーク管理プロトコル420の、４つの通信方法を提供する。
【００１７】
アプリケーション層406上には、ファイル転送423、電子メール424、端末エミュレーション425、及びネットワーク管理426を扱うための対応する構成要素がある。本発明は、ゲートウエイ・ノード33に関し、追加の層をアプリケーション層406とプレゼンテーション層405の間に提供することによって、ウイルスを検出、制御、及び除去することができるので有利である。特に、本発明の階層に従うと、FTPプロキシ・サーバ層421とSMTPプロキシ・サーバ層422が提供される。これらの層421、422は、ファイル転送層423とファイル転送プロトコル417、及び電子メール層424とSMTPプロトコル層418と連動し、それぞれファイル転送とメッセージを処理する。例えば、どんなファイル転送要求もファイル転送アプリケーション423によって生成され、即ち、第１にFTPプロキシ・サーバ層421によって処理され、次にファイル転送プロトコル417及び他の下位層415、413、411によって、データ転送が実際に転送媒体410に適用されるまで処理される。同様に、いかなるメッセージ要求も最初にSMTPプロキシ・サーバ層418によって処理され、その後、物理層に達するまでSMTPプロトコル、及び他の下位層415、413、411によって処理される。本発明は、全てのウイルスのふるい分けがアプリケーション・レベル以下で行われるため、特に有益である。従って、アプリケーションは、こうしたウイルスの検出と除去が行われていることに気づかず、これらの動作が、アプリケーション・レベル層406の動作に対して完全に透過的である。FTPプロキシ・サーバ層421とSMTPプロキシ・サーバ層422は、それらがファイル転送層423とファイル転送プロトコル417の間、及び電子メール層424とSMTPプロトコル層418の間に提供される接続効果を示すためのものがそれら自身の層であるとして図４に示されてきたが、当業者には、FTPプロキシ・サーバ層421とSMTPプロキシ・サーバ層422もまた、それらがアプリケーション層406に対して見えない、あるいは透過的であるために、それぞれ転送プロトコル層417とSMTPプロトコル層418の一部として、正しく見られうることが理解される。
【００１８】
FTPプロキシ・サーバ60の動作の好適方法と実施例が、ゲートウエイ・ノード33との関係、及びゲートウエイ・ノード33の制御に着目して記述され、従って、他のネットワークへの接続に関する媒体、線34へのアクセスを制御する。この方法は、図5A、及び5Bを参照すると最もよく理解され、この図は、インターネット・デーモン70、FTPプロキシ・サーバ60、及びFTPデーモン78によって、実行される機能を示し、それぞれはゲートウエイ・ノード33に常駐する。図5A、及び5Bでは、同様の部分に同様の参照番号が付されており、これらの図は、ファイルが転送される方向（クライアント・タスク72からサーバ・タスク82へ、またはサーバ・タスク82からクライアント・タスク72へのどちらか）のみが異なる。明確さ、及び理解のし易さのために、図5A、及び5Bにはデータ・ポートのみが示されており、両方に矢印のついた線がコマンドまたは経路の制御を示し、明示的に示されてはいないが、コマンド・ポートを含むと仮定される。FTPプロキシ・サーバ60の動作がここで、クライアント・タスク72（要求マシン）とサーバ・タスク82（供給マシン）の間のファイル転送に関連して述べられる。クライアント・タスク72（要求マシン）が保護されたドメイン内部にあり、サーバ・タスク82（供給マシン）が保護されたドメインの外部にあると仮定されているが、以下で述べられる本発明はまた、クライアント・タスク72（要求マシン）が保護されたドメインの外部にあり、サーバ・タスク82（供給マシン）が保護されたドメイン内部にある場合に、ゲートウエイ・ノード33によって使用される。
【００１９】
図6Aないし6Cは、媒体を横断したネットワークの制御されたドメインから、別のネットワークへのファイル転送（例えば、媒体34を介して第２のネットワーク24のノード32から第３のネットワーク26の第２のノード32へのファイル転送）を実行するための好適方法のフローチャートである。ステップ600から始まる方法は、クライアント・ノードを使用し、接続要求をネットワークを介してゲートウエイ・ノード33に送信する。ステップ602では、ゲートウエイ・ノード33が前述のようなオペレーティング・システム64を有することが好ましく、オペレーティング・システム64の一部がファイア・ウオール、またはユーザ認証のためのルーチンを含むことが望ましい。要求を受信すると、ゲートウエイ・ノード33は最初に、ユーザを認証して、その接続要求を許可するべきかを決定する。これは、通常UNIXの一部で利用可能な従来の方法で行われる。インターネット・デーモン70はFTPプロキシ・サーバ60のインスタンスを作成し、その接続をステップ602のサービスのためにFTPプロキシ・サーバ60に渡す。インターネット・デーモン70は、オペレーティング・システム64の一部となるプログラムであり、バックグランドで実行される。実行中、インターネット・デーモン70の機能の１つが、TELNET、ログイン、及びFTPなどの、多くの公知の機能のためにソケットにバインドされる。接続要求が検出されると、本発明に従って構成されたインターネット・デーモン70が、FTPプロキシ・サーバ60を発生させ、これは実際にデータ転送を扱うサーバである。その後、FTPプロキシ・サーバ60はクライアント・タスク72とサーバ・タスク82の間を通るネットワーク・トラフィックを制御する。次に、ステップ604で、クライアント・ノードがデータ転送要求とファイル名を送信し、データがFTPプロキシ・サーバ60とクライアント・タスク72の間で転送される第１のデータ・ポート76を確立する。ステップ606で、データ転送要求とファイル名がFTPプロキシ・サーバ60によって受信される。ステップ608で、FTPプロキシ・サーバ60は、データが外の方向に（例えば、ファイルがクライアント・タスク72からサーバ・タスク82に転送される）転送されるかどうかを判定する。これは、FTPプロキシ・サーバ60でそのデータ転送要求を比較することによって判定される。例えば、データ転送要求がSTORコマンドであれば、そのデータは外の方向に転送されるものであり、データ転送要求がRETRコマンドであれば、そのデータは外の方向の転送ではないということになる。
【００２０】
データが外方向に転送される場合、方法はステップ608からステップ610に遷移する。ここで図5Aに関連して図6Bを参照すると、ネットワークの保護されたドメインの外にデータを転送する処理がより詳しく説明されている。ステップ610では、FTPプロキシ・サーバ60が、転送されるファイルがウイルスを含みうるタイプのファイルかどうか判定する。このステップは、ファイル名の拡張子をチェックすることによって行われるのが望ましい。例えば、.txt、.bmd、.pcx、及び.gifの拡張子のファイルは、そのファイルがウイルスを含む可能性が小さいことを示し、.exe、.zip、及び.comの拡張子は、そのファイルがウイルスを含む可能性が高いタイプのファイルである。転送されるファイルがウイルスを含む可能性のあるタイプでない場合、方法はステップ612を続ける。ステップ612で、第２のデータ・ポート80が確立され、データ転送要求とそのファイルがFTPプロキシ・サーバ60からFTPデーモン78に、そのファイルがサーバ・タスク72に送信されるように送信される。FTPデーモン78は、転送コマンドをサーバ・タスク82に通信させ、ファイルの送信をするための第３のポート84を確立し（サーバ・タスク82とFTPデーモン78を第３のポート84にバインドすることを含む）、及びそのファイルをサーバ・タスク82に転送する、ゲートウエイ・ノード33によって実行されるプログラムである。転送されると、方法は完了し終了する。しかし、その転送されるファイルがウイルスを含む可能性のあるタイプのファイルであるとステップ610で判定されると、方法はステップ614に進む。ステップ614で、FTPプロキシ・サーバ60は、クライアントからFTPプロキシ・サーバ60に第１のポート76を介してファイルを転送し、ステップ616で、ファイルは一時的にゲートウエイ・ノード33に記憶される。ステップ618で、一時的に記憶されたファイルは、それがウイルスを含むか判定するために分析される。これは、その一時的に記憶されたファイルにウイルス・チェック・プログラムを発行することによって行われることが好ましい。例えば、シグネチャ検査ウイルス検出のバージョンを実行する、アメリカ合衆国、カリフォルニア州クパチーノのTrend Micro Devices Incorporatedが製造、販売するPC-Cillinといったプログラムが使用されうる。しかし、当業者には、様々な他のウイルス検出方法が、ステップ618で使用されうることが理解される。ステップ620では、ウイルス・チェック・プログラムの出力は、FTPプロキシ・サーバ60によってユーザ／クライアント・タスク72に、応答メッセージの一部としてエコーされるのが好ましい。次にステップ622では、方法が、任意のウイルスが検出されたかどうか判定する。ウイルスが検出されなかった場合、方法はステップ612で継続され、前述されたようにファイルを送信する。しかし、ウイルスが検出された場合、本発明は有利にも、FTPプロキシ・サーバ60による任意の種類の様々な方法での応答を可能にする。FTPプロキシ・サーバ60の応答は、ユーザのニーズ及び構成ファイルに指定された要求に従って判定される。この構成ファイルは、ユーザからの入力によって完全に書き換え可能で、メモリ44に記憶されることが好ましい。例えば、ユーザが指定する可能性のあるいくつかは、１）何もせずにファイルを転送する、２）一時ファイルを削除、または消去して、ファイルを転送しない、または、３）ファイルをリネームして、それを指定されたゲートウエイ・ノード33のディレクトリ内に記憶し、ユーザに新しいファイル名と、システム管理者からファイルを手動で要求するのに使用されうるディレクトリ・パスを知らせる、である。当業者には、ユーザが指定する可能性のある他の様々な代替案があり、ステップ624、626、及び628は例示の目的だけで提供されたことが理解される。次に、ステップ624では、構成ファイルが一時ファイルの扱いを判定するために検索される。ステップ626では、FTPプロキシ・サーバ60が、ウイルスの存在を無視して転送を続けるべきかを判定する。無視して転送を続ける場合、方法はステップ612で続けられ、ここでファイルがFTPデーモン78に渡され、一時ファイルが削除される。そうでない場合、方法は、ステップ628で続けられ、ここで、ファイルが削除されてサーバ・タスク82には送信されずに、一時ファイルがゲートウエイ・ノード33から削除されるかまたは、ファイルがリネームされてゲートウエイ・ノード33の指定されたディレクトリに記憶され、その新しいファイル名と、システム管理者からファイルを手動で要求するのに使用されうるディレクトリ・パスがユーザに知らされ、一時ファイルがゲートウエイ・ノード33から削除される。ステップ628で取られる動作は、ステップ624で判定された構成ファイルの設定に依存する。ステップ628の後で、方法は終了する。図5Aから分かるように、ファイルに関するパスは、第１のデータ・ポート76を介してクライアント・タスク72からFTPプロキシ・サーバ60に送信され、次に第２のデータ・ポート80を介してFTPデーモン78に送信され、最後に第３のデータ・ポート84を介してサーバ・タスク82に送信される。
【００２１】
図6Aのステップ608に戻ると、データが外方向に転送されない場合、方法は、ステップ608からステップ640に遷移する。ここで図6Cを図5Bに関連して参照すると、データをネットワークの保護されたドメイン内に転送する処理が、より詳しく記述されている。ステップ640では、次にFTPプロキシ・サーバ60がデータ転送要求とファイル名を最初にFTPデーモン78に送信し、次にサーバ・タスク82に送信する。ステップ642では、第２のポート80がFTPプロキシ・サーバ60とFTPデーモン78の間に確立される。次に、第３のポート84がFTPデーモン78とサーバ・タスク82の間で確立される。両ポート80、84は、第１のポート76の確立と同じ方法で確立される。FTPデーモン78は第３のポート84をインターネット・デーモン76から要求し、ポート・コマンドを、第３のポート84のアドレスを含んだサーバ・タスク82に送信する。サーバ・タスク82は次に、第３のポート84に接続され、ステップ644でデータの転送を開始する。FTPデーモン78は次に、そのファイルをFTPプロキシ・サーバ60に送信する。次に、ステップ646で、FTPプロキシ・サーバ60が、その転送されるファイルがウイルスを含みうるタイプのファイルかどうかを判定する。このことは、ステップ610に関連して前述したものと同じに行われる。転送されるファイルがウイルスを含みうるタイプのファイルである場合、方法はステップ648で続けられ、ここでそのファイルがFTPプロキシ・サーバ60から第１のポート76を介して、クライアント・タスク72に転送され、次に方法は完了し、終了する。一方、転送されるファイルが、ウイルスを含む可能性のあるファイルである場合、方法はステップ650で一時的にそのファイルをゲートウエイ・ノードに記憶する。次にステップ652で、一時的に記憶されたファイルが分析され、それがウイルスを含むかどうか判定する。その分析はここではステップ618と同じものである。ステップ652で、ウイルス・チェック・プログラムの出力が、FTPプロキシ・サーバ60によって応答メッセージの一部としてクライアント・タスク72にエコーされるのが好ましい。次にステップ656では、方法が、任意のウイルスが検出されたかどうか判定する。ウイルスが検出されなかった場合、方法はステップ648で上述のように継続される。しかし、ウイルスが検出された場合、本発明は、一時ファイルの扱いを判定するために構成ファイルを検索する。ステップ660では、FTPプロキシ・サーバ60が、ウイルスの存在を無視して転送を続けるべきかを判定する。無視して転送を続ける場合、方法はステップ648で続けられ、ここでファイルがクライアント・タスク72に渡され、一時ファイルが削除される。そうでない場合、方法は、ステップ662で続けられ、ここで、一時ファイルが削除され、ファイルは、削除されてクライアント・タスク72には送信されないか、またはリネームされて、ゲートウエイ・ノード33に記憶され、クライアント・タスク72に、そのファイルをシステム管理者が手動で検索できるように、新しい名前とパスが知らされる。方法はここで終了する。図5Bから分かるように、データ転送要求は、クライアント・タスク72からFTPプロキシ・サーバ60に送信され、次にFTPデーモン78に送信され、サーバ・タスク82に送信され、それに応答してファイルを第３のポートを介してFTPデーモン78に送信し、第２のポー��80を介してFTPプロキシ・サーバ60に送信し、最後に第１のポート76を介してクライアント・タスク72に送信する。
【００２２】
図７，8A、及び8Bを参照すると、SMTPプロキシ・サーバ62の動作が記述されている。SMTPプロキシ・サーバ62は、所与のネットワークの保護されたドメインに入ることができるデータ、即ちウイルスが通る他の入り口チャネルのみを制御する。SMTPプロキシ・サーバ62は、ゲートウエイ・ノード33に常駐し、通信ユニット54と媒体34を介したネットワークに入る、及び出る全ての電子メッセージまたはメールの転送を制御し、扱うプログラムであることが望ましい。SMTPプロキシ・サーバ62は、ネットワークの保護されたドメイン内のクライアント・タスク92から保護されたドメインの外側の異なるネットワーク上のノードにおけるサーバ・タスク102へのメール・メッセージの転送に関連して記述され、当業者には、SMTPプロキシ・サーバ62がどのようにして入力メール・メッセージを同じように扱うかが理解される。全てのメール・メッセージはSMTPプロキシ・サーバ62によって同じように扱われ、どのノード32がサーバかという指定と、どのクライアントがメッセージの指示に従って変わるかという指定だけがゲートウエイ・ノード33の透視から送信されている。メール・メッセージがノード間のコマンド経路を使用して渡されるので、これらの経路だけが図７に示されている。理解を容易にするために、コマンド・ポートは図７に示されていないが、以下の好適方法の関連ステップ内で説明される。
【００２３】
ここで図8Aを参照すると、電子メールを送信するために本発明の好適方法が、SMTPプロキシ・サーバ62を生じさせ、または起動させるステップ802で開始される。次にステップ804で、クライアント・タスク（１つ又は複数）92とSMTPプロキシ・サーバ62の間の通信のための第１のコマンド・ポート96が生成される。ポート・コマンドに加えて、第１のポート96のアドレスが、SMTPプロキシ・サーバ62に提供される。次にステップ806で、SMTPプロキシ・サーバ62が第１のポート96にバインドされて、任意のクライアント・タスクとSMTPプロキシ・サーバ62の間のメール・メッセージの送信のためのチャネルを確立する。次にステップ808で、SMTPプロキシ・サーバ62がSMTPデーモン98またはSMTPサーバを生じさせる。SMTPデーモン98はBSD UNIXオペレーティング・システムの一部である既存のプログラム「sendmail」であることが望ましい。このことは、それが書く必要のあるコードの量を減らし、OSI参照モデルの下位層との互換性を保証するので、非常に有効である。次にステップ810で、第２のコマンド・ポートが、SMTPプロキシ・サーバ62とSMTPデーモン98の間の通信のために生成される。ステップ812で、SMTPデーモン98が、SMTPプロキシ・サーバ62と通信を行うための第２のコマンド・ポートにバインドされる。実際、本発明は、オペレーティング・システム64の一部である共有ライブラリ内にバインド機能を再定義することによって、SMTPデーモン98を適当なポート、即ち第２のポートにバインドする。本発明は、SMTPデーモン98（ほとんどのUNIXシステム上のsendmail)が動的にリンクされるという事実を有効に利用する。本発明は、システム・コールbind()を再定義する共有ライブラリを使用し、sendmailを、それが実行されたときに再定義されたバージョンのbind()コールにリンクさせる。再定義されたバージョンのbind()コールが、SMTPデーモン98(sendmailプログラム）が第１のコマンド・ポート（smtpポート）にバインドしようとしていることを判定した場合、他端がSMTPプロキシ・サーバ62であるソケット（第２のコマンド・ポートへのソケット）にそれを戻す。次に、ステップ800で、クライアント・タスク92はSMTPプロキシ・サーバからの接続を要求し、通信のための第１のコマンド・ポートを使用するよう指示される。次にステップ818で、メッセージがクライアント・タスク92から第１のポートを介してSMTPプロキシ・サーバ62に転送される。
【００２４】
図8Bを参照すると、SMTPプロキシ・サーバ62がメッセージの本文を走査し、符号化された任意の部分に関するチェックを行いながら、ステップ820で方法が続けられる。本発明は、バイナリ・データをASCIIデータに符号化する、「uuencodeされた」符号化技法で、符号化されている部分に関して、メッセージを走査するのが好ましい。メッセージの「uuencodeされた」部分はいつも、「begin 644 filename」といった行から始まり、「end」といった行で終わる。こうした符号化された部分の存在は、ファイルがウイルスを含む可能性を示唆している。「uuencodeされた」部分のこの走査は、使用できる多くの走査技法のうちの単なる１つであり、当業者には、本発明が、mimeといった他の技法に従って符号化されたような他の符号化された部分に走査を行うために変更することができる。次に、ステップ822では、SMTPプロキシ・サーバ62は、メッセージが符号化された部分を含むか判定する。メッセージがどんな符号化された部分も含まない場合、ステップ824でSMTPプロキシ・サーバ62は第２のコマンド・ポートを介してそのメッセージをSMTPデーモン98に転送する。ステップ814では次に、SMTPデーモン98が第３のコマンド・ポートを、SMTPデーモン98とサーバ・タスク102の間の通信のために生成する。次にステップ816で、サーバ・タスク102が第３のコマンド・ポートにバインドされ、サーバ・タスク102とSMTPデーモン98の間の通信を確立する。当業者には、サーバ・タスク102がゲートウエイ・ノード33上に常駐する場合、ネットワークを介したこれ以上のデータの転送は必要ないので、ステップ814とステップ816が必要でなく、省略してもよい。次にSMTPデーモン98は、ステップ826で第３のコマンド・ポートを介して、メッセージをサーバ・タスク102に転送し、これでこの方法は完了する。
【００２５】
一方、ステップ822で、そのメッセージが符号化された部分を含むことが判定された場合、SMTPプロキシ・サーバ62はメッセージの符号化された部分のそれぞれを、ステップ828でゲートウエイ・ノード33にある自身の一時ファイルに記憶する。例えば、メッセージが３つの符号化された部分を含む場合、各符号化された部分は別個のファイルに記憶される。次に、ステップ830で、自身のファイルに記憶された符号化された各部分が、当業者には理解されるように、uudecodeプログラムを使用して個別に復号される。業界で知られる、こうした復号プログラムは、ASCIIファイルをそれらの元のバイナリ・コードに戻すよう変換する。次にステップ832で、SMTPプロキシ・サーバ62は、その一時ファイル（１つ又は複数）に記憶された各メッセージ部分に関して、ウイルス・チェック・プログラムを呼び出し、実行する。次に、ステップ834で、SMTPプロキシ・サーバ62は、ウイルスが検出されたかどうか判定する。ウイルスが検出されない場合、方法は前述のようにステップ824、814、816、及び826を続ける。しかし、ウイルスが検出されると、本発明はSMTPプロキシ・サーバ62をFTPプロキシ・サーバ60のように、任意の数の様々な方法で応答させることができる。SMTPプロキシ・サーバ62の応答はまた、構成ファイルに指定されたユーザの必要性、及び要求に従うことによって判定される。この構成ファイルはユーザからの入力に従って完全に修正可能であることが望ましい。ウイルスを扱う構成ファイルはステップ836で判定される。このことは、その構成ファイルの検索及び読み取り、またはメモリ44に既に記憶された構成データを単に検索することによって行われる。次にステップ838で取られる動作は、この構成ファイルの設定から判定される。例えば、ユーザが指定しうるいくつかのオプションは、１）何もせずにメール・メッセージを変更せずに転送する、２）メール・メッセージから、ウイルスを有すると判定された符号化された部分が削除されたメール・メッセージを転送する、３）ウイルスを含むメッセージの符号化された部分をリネームし、そのリネームされた部分をSMTPプロキシ・サーバ62上の指定されたディレクトリ内にファイルとして記憶し、かつユーザに、リネームされたファイルとシステム管理者から手動でファイルを要求するのに使用されうるディレクトリ・パスを知らせる、または４）ステップ832の出力を、それぞれの符号化された部分の代わりに、メール・メッセージに書き込み、そのメール・メッセージをステップ824と826で送信する。構成ファイルの検査によって判定された動作が一旦実行されると、その指定された動作がステップ840で取られ、変換されたメッセージが転送され、一時ファイルが消去され、方法が終了する。例えば、メッセージが、３つの符号化された部分、ウイルスを含む２つの符号化された部分、及びウイルスを含む部分が削除されたことを示す構成ファイルを有している場合、本発明の方法は、もとのメッセージと同じであるが、２つの、ウイルスを含む符号化された部分が削除されている変形されたメッセージを、サーバ・タスク102に送信する。
【００２６】
本発明が一定の好適実施例に関連して説明されてきたが、当業者には、様々な変更を行うことができるということが理解される。例えば、本発明の好適動作は、FTPプロキシ・サーバ60が、そのファイル・タイプがウイルスを含むタイプのものかどうか判定する（ステップ610及び646）よう指定する。しかし代替実施例は、こうしたステップを省略でき、ウイルスに関して全ての転送されたファイルを単に一時的に記憶し、走査するようにできる。同様に代替実施例において、SMTPプロキシ・サーバ60は、メッセージが符号化され、転送された全てのメッセージを一時的に記憶し、ウイルスに関して走査するかどうかを判定するステップ822を省略できる。更に、本発明は、一時的にファイルまたはメッセージをゲートウエイ・ノードの一時ファイルに記憶するものとして前述されてきたが、このステップは、ファイルがウイルスを含むかどうかの判定が、そのファイルがクライアント・ノードからゲートウエイ・ノードに転送されるときに行われる場合、省略できる。好適実施例に対する、これらの、及び他の変更と修正は本発明によって提供され、それは請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００２７】
【図１】本発明が動作する複数のネットワーク、及び複数のノードを有する従来技術の情報システムを示すブロック図である。
【図２】本発明の装置を含むゲートウエイ・ノードの好適実施例のブロック図である。
【図３】本発明の装置を含む、ゲートウエイ・ノードのメモリの好適実施例のブロック図である。
【図４】従来技術のOSI層モデルと比較した、本発明に従って階層的に構成されたプロトコル層の好適実施例のブロック図である。
【図５Ａ】本発明の好適実施例によるデータファイルを送信する好適システムを示す機能ブロック図である。
【図５Ｂ】本発明の好適実施例によるデータファイルを受信する好適システムを示す機能ブロック図である。
【図６Ａ】本発明によるファイル転送を実行する好適方法を示すフロー図である。
【図６Ｂ】本発明によるファイル転送を実行する好適方法を示すフロー図である。
【図６Ｃ】本発明によるファイル転送を実行する好適方法を示すフロー図である。
【図７】本発明の好適実施例によるメール・メッセージを転送する好適システムを示す機能ブロック図である。
【図８Ａ】ネットワークに対して双方向にメッセージを送受信する好適方法を示すフロー図である。
【図８Ｂ】ネットワークに対して双方向にメッセージを送受信する好適方法を示すフロー図である。
【図１】
2008171415.tif 000003
【図２】
2008171415.tif 000004
【図３】
2008171415.tif 000005
【図４】
2008171415.tif 000006
【図５Ａ】
2008171415.tif 000007
【図５Ｂ】
2008171415.tif 000008
【図６Ａ】
2008171415.tif 000009
【図６Ｂ】
2008171415.tif 000010
【図６Ｃ】
2008171415.tif 000011
【図７】
2008171415.tif 000012
【図８Ａ】
2008171415.tif 000013
【図８Ｂ】
2008171415.tif 000014