(57)【要約】本発明は、信頼できるプロセスを許可する柔軟なネットワークセキュリティシステム及びその方法に関するものである。本発明のシステムは、ネットワーク通信プログラムが使用するサーバポートの情報を抽出するポート監視部と；ファイアウォールによって通信を許可されたプログラムについての情報を抽出し、これを登録する内部許可プログラム格納部と；ポート監視部が、内部許可プログラム格納部に登録されているプログラムが使用するサーバポートについての情報を抽出した場合、抽出された情報を登録する内部許可ポート格納部と；インバウンドトラフィックパケットの目的地ポートが内部許可ポート格納部に登録されているか否かを判断し、登録されていないポートであれば当該パケットをファイアウォールに伝送し、登録されているポートであれば当該パケットが前記ファイアウォールを迂回するようにするファイアウォール柔軟化装置と；を含む。
2007517305.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク間で通信される情報の制限条件を設定することによって、ネットワークに接続されたコンピュータの当該ネットワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティシステムにおいて：
ネットワーク通信プログラムを通じて使用されるサーバポート情報を抽出するポート監視部と；
前記ファイアウォールによって通信が許可されるプログラムについての情報を抽出し、抽出された情報を登録する内部許可プログラム格納部と；
前記ポート監視部が、前記内部許可プログラム格納部に登録されているプログラムを用いて、使用されるサーバポートについての情報を抽出した場合、前記抽出されたサーバポート情報を登録する内部許可ポート格納部と；
インバウンドトラフィックのパケットの目的地であるポートが前記内部許可ポート格納部に登録されているか否かを判断し、登録されていないポートであれば当該パケットを前記ファイアウォールに伝送し、登録されているポートであれば当該パケットが前記ファイアウォールを迂回するようにするファイアウォール柔軟化装置と；
を含むことを特徴とする、ネットワークセキュリティシステム。
【請求項２】
前記内部許可プログラム格納部によって抽出され登録されるプログラム情報は、プログラム名、プログラムの全体パス及びＭＤ５ハッシュ値の情報を含むことを特徴とする、請求項１に記載のネットワークセキュリティシステム。
【請求項３】
前記内部許可ポート格納部によって抽出され登録されるサーバポート情報は、プログラムの全体パス、プロトコル及びポートの情報を含むことを特徴とする、請求項１に記載のネットワークセキュリティシステム。
【請求項４】
ネットワーク間で通信される情報の制限条件を設定することによって、ネットワークに接続されたコンピュータの当該ネックワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティの方法において：
ネットワーク通信プログラムを通じて使用されるサーバポートの情報を抽出する第１段階と；
前記ファイアウォールで通信が許可されるプログラムについての情報を抽出し、抽出された情報を内部許可プログラム格納部に登録する第２段階と；
前記第１段階において、前記内部許可プログラム格納部に登録されているプログラムを用いて、使用されるサーバポートについての情報を抽出した場合、前記抽出されたサーバポート情報を内部許可ポート格納部に登録する第３段階と；
インバウンドトラフィックのパケットの目的地であるポートが前記内部許可ポート格納部に登録されているか否かを判断する第４段階と；
前記第４段階での判断の結果、登録されていないポートであれば、当該パケットを前記ファイアウォールに伝送する第５段階と；
前記第４段階での判断の結果、登録されているポートであれば、当該パケットが前記ファイアウォールを迂回するようにする第６段階と；
を含むことを特徴とする、ネットワークセキュリティの方法。
【請求項５】
ＴＣＰを用いて通信する場合、前記第１段階は、ソケットがサーバーとして動作するためにリスンを実行するときに、フッキングを行うことでリスンポートを抽出することを特徴とする、請求項４に記載のネットワークセキュリティの方法。
【請求項６】
ＵＤＰを用いて通信する場合、前記第１段階は、ソケットがパケットを受信するために関連する関数を呼び出すときに、ユーザモードでフッキングを行うことで、サーバポートを抽出することを特徴とする、請求項４に記載のネットワークセキュリティの方法。
【請求項７】
前記第６段階は、フッキングされた元の関数を呼び出すことによって、当該パケットがファイアウォールを迂回するようにすることを特徴とする、請求項４に記載のネットワークセキュリティの方法。
【請求項８】
前記第２段階で抽出され登録されるプログラム情報は、プログラム名、プログラムの全体パス及びＭＤ５ハッシュ値の情報を含むことを特徴とする、請求項４に記載のネットワークセキュリティの方法。
【請求項９】
前記第３段階で抽出され登録されるサーバポート情報は、プログラムの全体パス、プロトコル及びポートの情報を含むことを特徴とする、請求項４に記載のネットワークセキュリティの方法。
【請求項１０】
ネットワーク間で通信される情報の制限条件を設定することによって、ネットワークに接続されたコンピュータの当該ネックワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティ方法であって、
ネットワーク通信プログラムを通じて使用されるサーバポート情報を抽出する第１段階と；
前記ファイアウォールで通信が許可されるプログラムについての情報を抽出し、抽出された情報を内部許可プログラム格納部に登録する第２段階と；
前記第１段階において、前記内部許可プログラム格納部に登録されているプログラムを用いて、使用されるサーバポートについての情報を抽出した場合、前記抽出されたサーバポート情報を内部許可ポート格納部に登録する第３段階と；
インバウンドトラフィックのパケットの目的地であるポートが前記内部許可ポート格納部に登録されているか否かを判断する第４段階と；
前記第４段階での判断の結果、登録されていないポートであれば、当該パケットを前記ファイアウォールに伝送する第５段階と；
前記第４段階での判断の結果、登録されているポートであれば、当該パケットが前記ファイアウォールを迂回するようにする第６段階と；
を含むことを特徴とする、ネットワークセキュリティの方法を実行することができるコンピュータが読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信頼できるプロセスを許可する柔軟なネットワークセキュリティシステム及びその方法に係り、より詳しくは、インターネット接続ファイアウォールに、通信が許可されたプログラムによって使用されるポートを自動で追加及び除去するようにして、専門家でないユーザであっても簡単にインターネット接続ファイアウォールの優れた機能を使用することができるようにする、ネットワークセキュリティシステム及びその方法に関するものである。
【背景技術】
【０００２】
ファイアウォール（Ｆｉｒｅｗａｌｌ）は、ネットワークと外部との間の保護境界線のようなセキュリティシステムである。
【０００３】
図１は、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）社によりウィンドウズ（登録商標）ＸＰ（Ｗｉｎｄｏｗｓ  ＸＰ（登録商標））バージョンから基本的に提供されている、コンピュータとネットワークとを保護するためのインターネット接続ファイアウォール（ＩＣＦ：Ｉｎｔｅｒｎｅｔ  Ｃｏｎｎｅｃｔｉｏｎ  Ｆｉｒｅｗａｌｌ）を示す図である。
【０００４】
このようなインターネット接続ファイアウォールは、ネットワークまたは小規模ネットワークとインターネットとの間に通信される情報の制限条件を設定するのに使用されるソフトウェアであって、インターネットに接続された単独のコンピュータのインターネットへの接続を保護する。
【０００５】
一方、従来のインターネット接続ファイアウォールは、ステートフル（Ｓｔａｔｅｆｕｌ）ファイアウォールである。ステートフルファイアウォールとは、対応する経路を通過する通信のすべてを監視し、処理される各メッセージの原本、対象アドレス及びポートを検査するファイアウォールである。
【０００６】
インターネット接続ファイアウォールは、外部へ送信されるトラフィック（アウトバウンドトラフィック）を許可し、外部から受信されるトラフィック（インバウンドトラフィック）を遮断することにより、インターネット接続ファイアウォール内のネットワークを外部から見えないようにする。このため、パーソナルコンピュータ（ＰＣ：Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）ファイアウォールでは、この機能をステルス（Ｓｔｅａｌｔｈ）機能とも言う。
【０００７】
以下に、インターネット接続ファイアウォールの動作を簡略に説明する。
【０００８】
インターネット接続ファイアウォールは、望まないトラフィックが個人接続を通じて入力されないようにするために、インターネット接続ファイアウォールコンピュータから発信されたトラフィックを追跡し、通信テーブルを保存する。さらに、インターネットのすべてのインバウンドトラフィックはテーブルにある項目と比較される。テーブルに一致する項目が存在し、通信の発信元がユーザのコンピュータであることが証明された場合にのみ、インバウンドインターネットトラフィックは、ネットワークコンピュータに接続される。
【０００９】
これに対し、インターネット接続がファイアウォール許可リストで許可されないものであれば、インターネット接続ファイアウォールは接続を切断する。したがって、望まない通信を自動的に取り消すことで、ポートスキャニング（Ｐｏｒｔ  Ｓｃａｎｎｉｎｇ）のような一般的なハッキングを遮断することができる。
【００１０】
このような例を調べるために、例えば、インターネット接続ファイアウォールコンピュータをリナックス（Ｌｉｎｕｘ）のｎｍａｐスキャニングツールでスキャンすると、インターネット接続ファイアウォールコンピュータは、どのようなスキャン動作に対しても応答しないため、ｎｍａｐは、すべてのスキャンに対してターゲットコンピュータがネットワーク上に存在しないと判断し、‘Ｈｏｓｔ  Ｓｅｅｍｓ  Ｄｏｗｎ’というメッセージを出力する。このように、インターネット接続ファイアウォールは、望まない通信を自動的に取り消すことにより、ポートスキャニングのような一般的なハッキングを遮断する。
【００１１】
一方、ウェブサービスを提供するコンピュータにインターネット接続ファイアウォールが組み込まれた場合、このようなインターネット接続ファイアウォールがインバウンドトラフィックを遮断するため、インターネット接続は切断され、正常なウェブサービスを提供することができなくなる。この問題を解決するために、インターネット接続ファイアウォールは、サービスが使用する８０番ポートへのインバウンドトラフィックを許可することにより、正常なウェブサービスを提供できるようにしている。
【００１２】
このように、インターネット接続ファイアウォールは、サービスとプロトコルとを追加することで、正常なサービスを使用することができ、ＰＣファイアウォールでもこのような機能を提供する。
【００１３】
一方、以下にこのようなインターネット接続ファイアウォールにおける問題点を説明する。
【００１４】
ウェブサーバ、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバ、テルネット（Ｔｅｌｎｅｔ）サーバ、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）プログラム、リモートコントロールプログラム、メッセンジャープログラムなどの最近のインターネット使用ソフトウェアは、サービスを提供するサーバとして動作する。そして、このようにサーバとして動作するソフトウェアの数は急激に増加しており、多くの一般のユーザもこのようなソフトウェアを使用する傾向にある。
【００１５】
しかし、大部分のユーザは、上記のようなサーバとして動作するソフトウェアが正常に作動しなくなることを理由に、インターネット接続ファイアウォールまたはＰＣファイアウォールのステルス機能の使用を避けている。もちろん、図２のように、ウィンドウズ（登録商標）ＸＰでは、サーバとして動作するソフトウェアが使用するポート、プロトコル、インターネットプロトコル（ＩＰ：Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などを追加することにより、対応するソフトウェアを正常に使用することができる。しかし、専門家でないユーザにとっては、サーバとして動作するポートを見つけることは難しいため、専門家でないユーザがこれらのソフトウェアを設定するのは難しい。
【００１６】
また、ソフトウェアのバージョンがアップグレードされる際に、サーバとして動作するポートが変更されることもあるため、正常なサービスが不意に中断されてしまうこともある。
【００１７】
このような様々な理由から、インターネット接続ファイアウォール及びＰＣファイアウォールのステルス機能は、ユーザから望まれている機能であるにもかかわらず、一般のユーザが使用することは難しいという問題点がある。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上記のような従来技術の問題点を解決するための本発明の目的は、通信の許可されたプログラムが使用するポートをインターネット接続ファイアウォールに自動的に追加または削除して、専門家でないユーザでも簡単にインターネット接続ファイアウォールの所望の機能を使用することが可能な、ネットワークセキュリティシステム及びその方法を提供することにある。
【課題を解決するための手段】
【００１９】
上記の目的を達成するために、本発明は、ネットワーク間で通信される情報の制限条件を設定することによって、ネットワークに接続されたコンピュータの当該ネックワーク接続を保護するファイアウォールを用いて信頼できるプロセスを許可するネットワークセキュリティシステムにおいて、ネットワーク通信プログラムを通じて使用されるサーバポート情報を抽出するポート監視部と；ファイアウォールによって通信が許可されるプログラムについての情報を抽出し、抽出された情報を登録する内部許可プログラム格納部と；ポート監視部が、内部許可プログラム格納部に登録されているプログラムを用いて、使用されるサーバポートについての情報を抽出した場合、抽出されたサーバポート情報を登録する内部許可ポート格納部と；インバウンドトラフィックのパケットの目的地であるポートが内部許可ポート格納部に登録されているか否かを判断し、登録されていないポートであれば当該パケットをファイアウォールに伝送し、登録されているポートであれば当該パケットが前記ファイアウォールを迂回するようにするファイアウォール柔軟化装置と；を含むことを特徴とする、ネットワークセキュリティシステムを提供する。
【００２０】
また、上記目的を達成するため、本発明は、ネットワーク間で通信される情報の制限条件を設定することで、ネットワークに接続されたコンピュータの当該ネックワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティの方法において、ネットワーク通信プログラムを通じて使用されるサーバポート情報を抽出する第１段階と；ファイアウォールで通信が許可されるプログラムについての情報を抽出し、抽出された情報を内部許可プログラム格納部に登録する第２段階と；第１段階において、内部許可プログラム格納部に登録されているプログラムを用いて、使用するサーバポートについての情報を抽出した場合、抽出されたサーバポート情報を内部許可ポート格納部に登録する第３段階と；インバウンドトラフィックのパケットの目的地であるポートが内部許可ポート格納部に登録されているか否かを判断する第４段階と；第４段階での判断の結果、登録されていないポートであれば、当該パケットをファイアウォールに伝送する第５段階と；前記第４段階での判断の結果、登録されているポートであれば、当該パケットがファイアウォールを迂回するようにする第６段階と；を含むことを特徴とする、ネットワークセキュリティの方法を提供する。
【００２１】
また、上記目的を達成するため、本発明は、ネットワーク間で通信される情報の制限条件を設定することで、ネットワークに接続されたコンピュータの当該ネックワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティの方法であって、ネットワーク通信プログラムを通じて使用されるサーバポート情報を抽出する第１段階と；ファイアウォールで通信が許可されるプログラムについての情報を抽出し、抽出された情報を内部許可プログラム格納部に登録する第２段階と；第１段階において、内部許可プログラム格納部に登録されているプログラムを用いて、使用するサーバポートについての情報を抽出した場合、抽出されたサーバポート情報を内部許可ポート格納部に登録する第３段階と；インバウンドトラフィックのパケットの目的地であるポートが内部許可ポート格納部に登録されているか否かを判断する第４段階と；第４段階での判断の結果、登録されていないポートであれば、当該パケットをファイアウォールに伝送する第５段階と；第４段階での判断の結果、登録されているポートであれば、当該パケットがファイアウォールを迂回するようにする第６段階と；を含むことを特徴とする、ネットワークセキュリティの方法を実行することができるコンピュータによって読取可能な記録媒体を提供する。
【００２２】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を用いて通信する場合、望ましくは、上記第１段階は、ソケットがサーバとして動作するためにリスン（Ｌｉｓｔｅｎ）を実行する時、フッキング（Ｈｏｏｋｉｎｇ）を行うことでリスンポートを抽出する。
【００２３】
ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いて通信する場合、望ましくは、上記第１段階は、ソケットがパケットを受信するために関連する関数を呼び出す時、ユーザモード（Ｕｓｅｒ  Ｍｏｄｅ）でフッキングを実行することで、サーバポートを抽出する。
【発明の効果】
【００２４】
以上説明したように本発明によれば、通信の許可されたプログラムが使用するポートをインターネット接続ファイアウォールに自動的に追加または削除することにより、専門家でないユーザでも簡単にインターネット接続ファイアウォールの優れた機能を使用することができる。
【発明を実施するための最良の形態】
【００２５】
以下、添付図面を参照しながら、本発明の一実施例による信頼できるプロセスを許可する柔軟なネットワークセキュリティシステム及びその方法をより詳細に説明する。
【００２６】
まず、本発明の背景技術に関連する技術を簡略に説明する。
【００２７】
図３は、本発明に利用されるマイクロソフトウィンドウズ（登録商標）オペレーティングシステムのモード区分を示すブロック図である。
【００２８】
図３を参照すれば、マイクロソフト社が提供するウィンドウズ（登録商標）ＸＰでは、カーネルモード（Ｋｅｒｎｅｌ  Ｍｏｄｅ）とユーザモード（Ｕｓｅｒ  Ｍｏｄｅ）とが提供される。カーネルモードでは、オペレーティングシステムカーネルと各種のデバイスドライバ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ）が実行され、ユーザモードでは、主にアプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）が実行される。そして、カーネルモードで動作するプログラムはデバイスドライバの形態で存在する。
【００２９】
マイクロソフトウィンドウズ（登録商標）オペレーティングシステムでサポートされているカーネルモードネットワーク構造は、ウィンドウズ（登録商標）ソケット（Ｓｏｃｋｅｔ）のカーネル部分であるＡＦＤ（ａｆｄ．ｓｙｓ）、ＮＤＩＳ（ＮＤＩＳ：Ｎｅｔｗｏｒｋ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）及びＴＤＩ（ＴＤＩ：Ｔｒａｎｓｐｏｒｔ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）を含む。
【００３０】
カーネルモードで最上位層に存在するａｆｄ．ｓｙｓは、ウィンドウズ（登録商標）ソケットにおいてユーザモードの最下位層に存在する動的リンクライブラリ（ＤＬＬ：Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）であるｍｓａｆｄ．ｄｌｌと通信し、下位層にあるＴＤＩとインタフェースを形成する。
【００３１】
ＴＤＩは、プロトコルスタック（Ｓｔａｃｋ）の上位に存在するカーネルモードインタフェースを定義する。ＮＤＩＳは、ネットワークインタフェースカードデバイスドライバ（ＮＩＣＤＤｓ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ  Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒｓ）のために、標準インタフェースを提供する。
【００３２】
以下、マイクロソフトウィンドウズ（登録商標）オペレーティングシステムのユーザモードにおけるファイアウォール構築方法を簡単に説明する。
【００３３】
フッキング（Ｈｏｏｋｉｎｇ）とは、フッキングしようとする関数のアドレスを格納し、元の関数のアドレスをユーザが作成した関数のアドレスで置き換え、これにより、ユーザが作成した関数を先に実行し、その後に元の関数を実行するという周知のプログラミング方法である。
【００３４】
（１）ＬＳＰ（Ｗｉｎｓｏｃｋ  Ｌａｙｅｒｅｄ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）：この方法は、マイクロソフト社から提供されている方法であって、ＱＯＳ（Ｑｕａｌｉｔｙ  Ｏｆ  Ｓｅｒｖｉｃｅ）、ＵＲＬフィルタリング及びデータストリーム（Ｄａｔａ  Ｓｔｒｅａｍ）の暗号化に多く用いられる、マイクロソフトネットワーキング内のコンポーネントであるＳＰＩ（Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ  Ｉｎｔｅｒｆａｃｅ）に基づくものである。
【００３５】
（２）ウィンドウズ（登録商標）２０００パケットフィルタリングインタフェース（Ｗｉｎｄｏｗｓ  ２０００  Ｐａｃｋｅｔ  Ｆｉｌｔｅｒｉｎｇ  Ｉｎｔｅｒｆａｃｅ）：ウィンドウズ（登録商標）２０００は、フィルタデスクリプタ（Ｆｉｌｔｅｒ  Ｄｅｓｃｒｉｐｔｏｒ）をインストールして、ユーザモードのアプリケーションプログラムがＩＰアドレス及びポート情報を基に許可または遮断する方法を用いる。
【００３６】
（３）Ｗｉｎｓｏｃｋ  Ｄｌｌ置換：この方法は、マイクロソフトウィンドウズ（登録商標）のＷｉｎｓｏｃｋ  ＤＬＬをユーザが作成したＤＬＬで置き換えることにより、フィルタリングする方法に基づく。
【００３７】
（４）グローバル関数フッキング（Ｇｌｏｂａｌ  Ｆｕｎｃｔｉｏｎ  Ｈｏｏｋｉｎｇ）：この方法は、Ｃｏｎｎｅｃｔ、Ｌｉｓｔｅｎ、Ｓｅｎｄ、Ｒｅｃｖ、Ｓｅｎｄｔｏ、およびＲｅｃｖｆｒｏｍのようなウィンドウズ（登録商標）のソケット関数、またはユーザモードのアプリケーションがカーネルモードのドライバと通信するために使用するＤｅｖｉｃｅＩｏＣｏｎｔｒｏｌ（）関数をフッキングする方法に基づく。
【００３８】
以下に、マイクロソフトウィンドウズ（登録商標）オペレーティングシステムのカーネルモードでファイアウォールを構築する方法を簡単に説明する。
【００３９】
（１）カーネルモードソケットフィルタ（Ｋｅｒｎｅｌ  Ｍｏｄｅ  Ｓｏｃｋｅｔ  Ｆｉｌｔｅｒ）：この方式は、ユーザモードでウィンドウズ（登録商標）ソケットの最下位層のＤＬＬであるｍｓａｆｄ．ｄｌｌがカーネルモードウィンドウズ（登録商標）ソケットであるａｆｄ．ｓｙｓと通信するすべての入出力（Ｉ／Ｏ）をフッキングする方法に基づく。
【００４０】
（２）ＴＤＩフィルタドライバ：この方式は、ｔｃｐｉｐ．ｓｙｓドライバ（＼Ｄｅｖｉｃｅ＼ＲａｗＩｐ、＼Ｄｅｖｉｃｅ＼Ｕｄｐ、＼Ｄｅｖｉｃｅ＼Ｔｃｐ、＼Ｄｅｖｉｃｅ＼Ｉｐ、または＼Ｄｅｖｉｃｅ＼ＭＵＬＴＩＣＡＳＴなど）によって生成されたデバイスに、ＩｏＡｔｔａｃｋＤｅｖｉｃｅ（）ＡＰＩを適用して作成したフィルタドライバを利用する方法に基づく。または、ｔｃｐｉｐ．ｓｙｓのドライバオブジェクト（Ｄｒｉｖｅｒ  Ｏｂｊｅｃｔ）にあるディスパッチテーブル（Ｄｉｓｐａｔｃｈ  Ｔａｂｌｅ）を置き換えることによって、すべてのＩ／Ｏをフッキングする方法に基づく。
【００４１】
（３）ＮＤＩＳ中間ドライバ：マイクロソフト社からユーザに提供されている方法であって、ＴＣＰ／ＩＰのようなプロトコルドライバとＮＩＣドライバ間に挿入してファイアウォール、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）などを開発する方法である。
【００４２】
（４）ＮＤＩＳフッキングフィルタドライバ：ＮＤＩＳライブラリの関数をフッキングする方法であって、ＮｄｉｓＲｅｇｉｓｔｅｒＰｒｏｔｏｃｏｌ、ＮｄｉｓＤｅｒｅｇｉｓｔｅｒＰｒｏｔｏｃｏｌ、ＮｄｉｓＯｐｅｎＡｄａｐｔｅｒ、ＮｄｉｓＣｌｏｓｅＡｄａｐｔｅｒ及びＮｄｉｓＳｅｎｄのような関数をフッキングする方法、あるいはプロトコルドライバを登録するＮｄｉｓＲｅｇｉｓｔｅｒＰｒｏｔｏｃｏｌ関数を使用し、リターンされたＮｄｉｓＰｒｏｔｏｃｏｌＨａｎｄｌｅに基づいてＴＣＰ／ＩＰのような既存の登録されたプロトコルドライバリンクを見つけた後、ＮＤＩＳと通信するプロトコルドライバ及びＮＩＣドライバのＩ／Ｏをフッキングする方法に基づく。
【００４３】
本発明の実施形態にかかるインターネット接続ファイアウォールは、上述したカーネルモードソケットフィルタ、ＴＤＩフィルタドライバ、ＮＤＩＳ中間ドライバ、ＮＤＩＳフッキングフィルタドライバなどで実装されることができ、一般的にはＮＤＩＳ中間ドライバまたはＮＤＩＳフッキングフィルタドライバで実装される。
【００４４】
インターネット接続ファイアウォールは、インターネット接続ファイアウォールコンピュータを起点とするトラフィックを追跡することにより、ＩＰとポートのすべての通信テーブルを保存する。そして、インターネットのすべてのインバウンドトラフィックは、この通信テーブルに存在する項目と比較される。テーブルに一致する項目があり、従って、通信がユーザのコンピュータを起点とするものであることが証明される場合にだけ、インバウンドインターネットトラフィックは許可され、そうでない場合には遮断される。
【００４５】
このようなインバウンドトラフィックの許可は、フッキングされた元の関数のアドレスを呼び出すことにより行われる。これに対し、インバウンドトラフィックの遮断は、原関数を呼び出すことなく、原関数の呼び出しが成功または失敗したことを示す偽（ｆａｌｓｅ）のリターン値を伝送すること、あるいは、原関数を呼び出したが、関数の実行が正常になされないように誤った情報を提供することにより行われる。
【００４６】
前述したファイアウォールと関連する基本的な内容に基づいて、本発明で提示する信頼できるプロセスを許可する柔軟なネットワークセキュリティシステム及びその方法に対して説明する。
【００４７】
図４は、本発明の実施形態にかかるインターネット接続ファイアウォールの動作を簡略化したフローチャートであって、ポート監視部とインターネット接続ファイアウォールとをインストールし、許可プログラムリストを内部許可プログラム格納部に格納する過程を示すフローチャートである。
【００４８】
まず、ステップＳ４１０で、ポート監視部及びインターネット接続ファイアウォールをインストールする。
【００４９】
ＴＣＰの場合、ソケットがサーバとして動作するためにリスン（Ｌｉｓｔｅｎ）を実行する時、ポート監視部は、Ｗｉｎｓｏｃｋフッキングによってリスンポートを抽出する。さらに、ｍｓａｆｄ．ｄｌｌで対応する操作が実行されるとき、カーネルのソケット部分であるＡＦＤで対応する操作が実行されるとき、または、ＴＤＩのＴｄｉＳｅｔＥｖｅｎｔ（）を通じてＴＤＩ＿ＥＶＥＮＴ＿ＣＯＮＮＥＣＴが呼び出されるとき、ポート監視部はリスンポートを抽出する。
【００５０】
ユーザデータグラムプロトコル（ＵＤＰ：Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）の場合、ソケットがパケットを受信するためにｒｅｃｖｆｒｏｍを呼び出すと、ユーザモードでＷｉｎｓｏｃｋフッキングを通じてパケットを受信するためのサーバポートを抽出する。さらに、ＡＦＤでの続きの操作がカーネルモードに存在するとき、または、ＴＤＩで、これに対応するＴｄｉＳｅｔＥｖｅｍｔ（）を通じてＴＤＩ＿ＥＶＥＮＴ＿ＲＥＣＥＩＶＥ＿ＤＡＴＡＧＲＡＭが生成されるとき、パケットを受信するためのサーバポートを抽出する。
【００５１】
このようなポート監視部は、ユーザモードのＷｉｎｓｏｃｋフッキングによって、または、カーネルモードのカーネルモードソケットフィルタ、ＴＤＩフィルタドライバによってインストールされ、サーバポート情報、プロトコル情報（ＴＣＰ、ＵＤＰなど）及びＯＰＥＮ／ＣＬＯＳＥ情報を抽出する役割を果たす。
【００５２】
その後、インターネット接続ファイアウォールをインストールする。このようなインターネット接続ファイアウォールは、前述したように、カーネルモードソケットフィルタ、ＴＤＩフィルタドライバ、ＮＤＩＳ中間ドライバ、ウィンドウズ（登録商標）２０００フィルタフックドライバ、またはＮＤＩＳフッキングフィルタドライバ内に実装することができ、一般的には、ＮＤＩＳ中間ドライバまたはＮＤＩＳフッキングフィルタドライバに組み込まれる。
【００５３】
ついで、ステップＳ４２０で、許可プログラムリストを内部許可プログラム格納部に格納する。図５は、本発明の一実施形態にかかる柔軟なインターネット接続ファイアウォールで、通信許可プログラムリストを内部許可プログラム格納部に格納するために表示されるインタフェース画面を示す図である。
【００５４】
図５に示すように、インターネット接続ファイアウォールで許可するプログラムを選択すると、プログラム名、プログラムの全体パス及びプログラムの整合性確認のための当該プログラムファイルのＭＤ５（ＭＤ５：Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ａｌｇｏｒｉｔｈｍ  ５）ハッシュ値を取得する。このようにして得られたプログラム名前、プログラム全体経路及びＭＤ５ハッシュ値を内部許可プログラム格納部に格納する。
【００５５】
内部許可プログラム格納部は、下の表１のような形式で格納され、プログラム名前、プログラム全体経路及びＭＤ５ハッシュ値の情報を含むファイルまたはデータベースの形式で格納される。
【００５６】
【表１】
2007517305.tif 000003
【００５７】
図６は、本発明で提示するインターネット接続ファイアウォール柔軟化装置を使用する全体ファイアウォールの動作を示すブロック図であって、以下、これを詳細に説明する。
【００５８】
インターネット使用プログラム６１０が、サーバとして動作するためにサーバポートをオープンすると、インターネット接続ファイアウォール柔軟化装置６２０は、当該サーバポートをオープンしたプログラムが内部許可プログラム格納部６５０に登録されているプログラムであるか否かを判断する。
【００５９】
当該プログラムが登録されていれば、インターネット接続ファイアウォール柔軟化装置６２０は、オープンされたサーバポートを内部許可ポート格納部６６０に登録する。
【００６０】
一方、外部からインバウンドトラフィックが伝送されたとき、インバウンドトラフィックは、ネットワークカード６４０を通過後、インターネット接続ファイアウォール６３０に到達する。インターネット接続ファイアウォール柔軟化装置６２０は、インバウンドトラフィックのパケットを検査して、目的地ポートが内部許可ポート格納部６６０に登録されているか否かを判断する。
【００６１】
判断の結果、当該ポートが登録されていなければ、パケットはインターネット接続ファイアウォール６３０に伝送され、このパケットは遮断される。しかし、当該ポートが登録されていれば、パケットはインターネット接続ファイアウォール６３０を通過することが許可されず、インターネット接続ファイアウォール柔軟化装置６２０に迂回させるために、フッキングされた原関数が呼び出される。
【００６２】
下記の表２は内部許可ポート格納部に登録されたポートを示す例である。
【００６３】
【表２】
2007517305.tif 000004
【００６４】
表２に表すように、内部許可ポート格納部は、プログラム全体パス、プロトコル及びポートについての情報を含み、メモリ上に配列または接続リストの形式で存在するか、あるいはファイルまたはデータベースの形式で存在する。
【００６５】
図７は、本発明の一実施形態にかかる柔軟なインターネット接続ファイアウォールの内部許可ポート格納部にサーバポートを格納または削除する過程を示すフローチャートである。以下、これを詳細に説明する。
【００６６】
まず、ステップＳ７０１で、サーバポート、ＯＰＥＮ／ＣＬＯＳＥ情報及びプロトコル（ＴＣＰ、ＵＤＰなど）情報をポート監視部から抽出した後、ステップＳ７０３で、ポート監視部は、サーバポートをオープンした現在のプログラムが内部許可プログラム格納部に登録されているプログラムであるか否かを判断する。
【００６７】
一方、ステップＳ７０３で、ネットワークを使用する現在のプロセスについての情報を得る方法は、ポート監視部でＰｓＧｅｔＣｕｒｒｅｎｔＰｒｏｃｅｓｓＩｄ（）関数を使用して現在のプロセスのＩＤ情報を抽出した後、このプロセスＩＤを通じて現在のプログラムの全体パスを取得する。このようにして取得したプログラムの全体パスを通じて当該プログラムのＭＤ５ハッシュ値を抽出し、このＭＤ５ハッシュ値とプログラム全体パスを用いて、現在のプログラムが内部許可プログラム格納部に存在するか否かを判断するものである。
【００６８】
ステップＳ７０３での判断の結果、現在のプログラムが登録されていなければ処理を終了し、登録されていれば、ステップＳ７０５で、抽出されたＯＰＥＮ／ＣＬＯＳＥ情報を使用してサーバポートがオープンされているか、もしくはクローズされているかを判断する。
【００６９】
ステップＳ７０５での判断の結果、オープンされたポートであれば、ステップＳ７０９で、プログラム全体パス、プロトコル及びサーバポートの情報を内部許可ポート格納部に登録した後、処理を終了する。
【００７０】
また、ステップＳ７０５での判断の結果、オープンされたポートでなければ、ステップＳ７０６及びステップＳ７０７で、プログラム全体パス、プロトコル及びサーバポートの情報と一致する内部許可ポート格納部の項目を検索して削除した後、処理を終了する。
【００７１】
図８は、本発明の一実施形態にかかるインターネット接続ファイアウォールの前のパケット処理過程を示すフローチャートである。以下、これを詳細に説明する。
【００７２】
まず、ステップＳ８０１で、インターネット接続ファイアウォールで処理される前にインバウンドトラフィックからパケットを抽出した後、ステップＳ８０３で、抽出されたパケットから、当該目的地（ローカル）ポートとプロトコル情報を抽出する。
【００７３】
そして、ステップＳ８０５で、抽出した目的地ポートとプロトコルの情報が内部許可ポート格納部に登録されているか否かを判断する。
【００７４】
ステップＳ８０５での判断の結果、情報が登録されていなければ、ステップＳ８０７で、当該パケットをインターネット接続ファイアウォールに伝送する。一方、情報が登録されていれば、目的地ポートは許可されなければならないポートであるので、ステップＳ８０９で、フッキングされた原関数を呼び出すことにより、インターネット接続ファイアウォールを迂回させる。
【００７５】
以上、好適な実施形態に基づいて本発明を説明したが、このような実施形態は本発明を制限するためのものではなく例示するためのものである。本発明が属する分野の当業者であれば、本発明の技術思想を逸脱せずに上記実施形態の多様な修正、追加及び代替に想到し得ることは明らかである。したがって、本発明の保護範囲は、添付する請求範囲のみによって限定されるもので、上記のような修正、追加及び代替をすべて含むものとして解釈されなければならない。
【産業上の利用可能性】
【００７６】
以上のように、本発明によれば、通信が許可されたプログラムによって使用されるポートが、インターネット接続ファイアウォールに自動で追加及び除去できるようにすることで、専門家ではないユーザであっても簡単にインターネット接続ファイアウォールの優れた機能を使用することができる。
【図面の簡単な説明】
【００７７】
【図１】マイクロソフト社がウィンドウズ（登録商標）ＸＰバージョンから基本的に提供する、コンピュータ及びネットワークを保護するためのインターネット接続ファイアウォールを示す図である。
【図２】ウィンドウズ（登録商標）ＸＰでサーバとして動作するソフトウェアが使用するポート、プロトコル、ＩＰなどを追加するためのインタフェース画面を示す図である。
【図３】本発明の実施形態において利用されるマイクロソフトウィンドウズ（登録商標）オペレーティングシステムのモード区分を示すブロック図である。
【図４】本発明の実施形態にかかるインターネット接続ファイアウォールの動作を簡略化したフローチャートであって、ポート監視部とインターネット接続ファイアウォールのインストール及び内部許可プログラム格納部への許可プログラムリストの格納の過程を示すフローチャートである。
【図５】本発明の一実施形態にかかる柔軟なインターネット接続ファイアウォールにおいて、通信許可プログラムリストを内部許可プログラム格納部に格納するために表示されるインタフェース画面を示す図である。
【図６】本発明の実施形態にかかるインターネット接続ファイアウォール柔軟化装置を用いた全ファイアウォールの動作を示すブロック図である。
【図７】本発明の一実施形態にかかる柔軟なインターネット接続ファイアウォールの内部許可ポート格納部にサーバポートを格納または削除する過程を示すフローチャートである。
【図８】本発明の一実施形態にかかるインターネット接続ファイアウォールの前に実行されるパケット処理過程を示すフローチャートである。
【図３】
2007517305.tif 000005
【図４】
2007517305.tif 000006
【図６】
2007517305.tif 000007
【図７】
2007517305.tif 000008
【図８】
2007517305.tif 000009
【図１】
2007517305.tif 000010
【図２】
2007517305.tif 000011
【図５】
2007517305.tif 000012
【手続補正書】
【提出日】平成18年4月14日(2006.4.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワーク間で通信される情報の制限条件を設定することによって、ネットワークに接続されたコンピュータの当該ネットワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティシステムにおいて：
ネットワーク通信プログラムを通じて使用されるサーバポート情報を抽出するポート監視部と；
前記ファイアウォールによって通信が許可されるプログラムについての情報を抽出し、抽出された情報を登録する内部許可プログラム格納部と；
前記ポート監視部が、前記内部許可プログラム格納部に登録されているプログラムを用いて、使用されるサーバポートについての情報を抽出した場合、前記抽出されたサーバポート情報を登録する内部許可ポート格納部と；
インバウンドトラフィックのパケットの目的地であるポートが前記内部許可ポート格納部に登録されているか否かを判断し、登録されていないポートであれば当該パケットを前記ファイアウォールに伝送し、登録されているポートであれば当該パケットが前記ファイアウォールを迂回するようにするファイアウォール柔軟化装置と；
を含むことを特徴とする、ネットワークセキュリティシステム。
【請求項２】
前記内部許可プログラム格納部によって抽出され登録されるプログラム情報は、プログラム名、プログラムの全体パス及びＭＤ５ハッシュ値の情報を含むことを特徴とする、請求項１に記載のネットワークセキュリティシステム。
【請求項３】
前記内部許可ポート格納部によって抽出され登録されるサーバポート情報は、プログラムの全体パス、プロトコル及びポートの情報を含むことを特徴とする、請求項１に記載のネットワークセキュリティシステム。
【請求項４】
ネットワーク間で通信される情報の制限条件を設定することによって、ネットワークに接続されたコンピュータの当該ネックワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティの方法において：
ネットワーク通信プログラムを通じて使用されるサーバポートの情報を抽出する第１段階と；
前記ファイアウォールで通信が許可されるプログラムについての情報を抽出し、抽出された情報を内部許可プログラム格納部に登録する第２段階と；
前記第１段階において、前記内部許可プログラム格納部に登録されているプログラムを用いて、使用されるサーバポートについての情報を抽出した場合、前記抽出されたサーバポート情報を内部許可ポート格納部に登録する第３段階と；
インバウンドトラフィックのパケットの目的地であるポートが前記内部許可ポート格納部に登録されているか否かを判断する第４段階と；
前記第４段階での判断の結果、登録されていないポートであれば、当該パケットを前記ファイアウォールに伝送する第５段階と；
前記第４段階での判断の結果、登録されているポートであれば、当該パケットが前記ファイアウォールを迂回するようにする第６段階と；
を含むことを特徴とする、ネットワークセキュリティの方法。
【請求項５】
前記第２段階で抽出され登録されるプログラム情報は、プログラム名、プログラムの全体パス及びＭＤ５ハッシュ値の情報を含むことを特徴とする、請求項４に記載のネットワークセキュリティの方法。
【請求項６】
前記第３段階で抽出され登録されるサーバポート情報は、プログラムの全体パス、プロトコル及びポートの情報を含むことを特徴とする、請求項４に記載のネットワークセキュリティの方法。
【請求項７】
ネットワーク間で通信される情報の制限条件を設定することによって、ネットワークに接続されたコンピュータの当該ネックワーク接続を保護するファイアウォールを用いて、信頼できるプロセスを許可するネットワークセキュリティ方法であって、
ネットワーク通信プログラムを通じて使用されるサーバポート情報を抽出する第１段階と；
前記ファイアウォールで通信が許可されるプログラムについての情報を抽出し、抽出された情報を内部許可プログラム格納部に登録する第２段階と；
前記第１段階において、前記内部許可プログラム格納部に登録されているプログラムを用いて、使用されるサーバポートについての情報を抽出した場合、前記抽出されたサーバポート情報を内部許可ポート格納部に登録する第３段階と；
インバウンドトラフィックのパケットの目的地であるポートが前記内部許可ポート格納部に登録されているか否かを判断する第４段階と；
前記第４段階での判断の結果、登録されていないポートであれば、当該パケットを前記ファイアウォールに伝送する第５段階と；
前記第４段階での判断の結果、登録されているポートであれば、当該パケットが前記ファイアウォールを迂回するようにする第６段階と；
を含むことを特徴とする、ネットワークセキュリティの方法を実行することができるコンピュータが読取可能な記録媒体。
【国際調査報告】
2007517305.tif 000013
2007517305.tif 000014