(57)【要約】【課題】アプリケーションに対する未知の攻撃に自動的に対応する。【解決手段】ネットワークに接続された情報処理装置は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部を備える。フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他のホストに配布することにより、他のホストではその未知の攻撃が既知の攻撃として登録され、その攻撃をフィルタリングして防御することができる。攻撃は、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。【選択図】　図２
2004054470.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された機器への攻撃に対処するネットワーク・セキュリティ・システムであって、
ネットワークに接続された機器は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部とを備え、フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他の機器に配布し、他の機器ではその未知の攻撃が既知の攻撃として登録され該攻撃をフィルタリングして防御する、
ことを特徴とするネットワーク・セキュリティ・システム。
【請求項２】
ネットワーク経由で行なわれる攻撃に対処する情報処理装置であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部と、
受信パケットを処理するプロセス実行部と、
プロセスに対する攻撃を検出する攻撃検出部と、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成部と、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信部と、
を具備することを特徴とする情報処理装置。
【請求項３】
前記シグニチャ生成部は、少なくとも攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンを含む前記シグニチャを生成する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記シグニチャ生成部は、受信パケットから取り出された送信先ポート番号及び／又はプロトコル番号を含む前記シグニチャを生成する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
アプリケーションに対する攻撃の特徴パターンからなるシグニチャを保持するシグニチャ・データベースと、
シグニチャ・データベースに登録されているシグニチャに基づいて受信パケットのフィルタリングを行なうパケット・フィルタリング部と、
受信パケットから未知の攻撃に関するシグニチャを取り出して前記シグニチャ・データベースに登録するシグニチャ登録部と、
をさらに備えることを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記パケット・フィルタリング部は、受信パケットの少なくともアプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄する、
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記パケット・フィルタリング部は、受信パケットのプロトコル番号及び／又は送信先ポート番号と、アプリケーション・データ・フィールドとをチェックし、そのシグニチャに合致するパケットを破棄する、
ことを特徴とする請求項５に記載の情報処理装置。
【請求項８】
どのような攻撃に対して防御したかを伝えるためのメッセージを作成してユーザに送信するユーザ通知部をさらに備える、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項９】
ネットワーク経由で行なわれる攻撃に対処する情報処理方法であって、
前記ネットワーク経由でパケットを受信するステップ、
受信パケットを処理するプロセス実行ステップと、
プロセスに対する攻撃を検出する攻撃検出ステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成ステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信ステップと、
を具備することを特徴とする情報処理方法。
【請求項１０】
前記シグニチャ生成ステップでは、少なくとも攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンとともにまとめてシグニチャとする、
ことを特徴とする請求項９に記載の情報処理方法。
【請求項１１】
前記シグニチャ生成ステップでは、受信パケットから取り出された送信先ポート番号及び／又はプロトコル番号を含む前記シグニチャを生成する、
ことを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
アプリケーションに対する攻撃の特徴パターンからなるシグニチャを保持するシグニチャ・データベースに登録されているシグニチャに基づいて受信パケットのフィルタリングを行なうパケット・フィルタリング・ステップと、
受信パケットから未知の攻撃に関するシグニチャを取り出して前記シグニチャ・データベースに登録するシグニチャ登録ステップと、
をさらに備えることを特徴とする請求項９に記載の情報処理方法。
【請求項１３】
前記パケット・フィルタリング・ステップでは、受信パケットのプロトコル番号、送信先ポート番号、アプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄する、
ことを特徴とする請求項１２に記載の情報処理方法。
【請求項１４】
どのような攻撃に対して防御したかを伝えるためのメッセージを作成してユーザに送信するユーザ通知ステップをさらに備える、
ことを特徴とする請求項９に記載の情報処理方法。
【請求項１５】
ネットワーク経由で行なわれる攻撃に対処する情報処理装置であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部と、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理部と、シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理部と、
を具備することを特徴とする情報処理装置。
【請求項１６】
受信したシグニチャに関連するアプリケーションの開発元に攻撃内容を通知する通知手段と、
攻撃内容の通知に応じて開発元に対する課金処理を行なう課金手段と、
をさらに備えることを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
ネットワーク経由で行なわれる攻撃に対処する情報処理方法であって、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理ステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理ステップと、
を具備することを特徴とする情報処理方法。
【請求項１８】
受信したシグニチャに関連するアプリケーションの開発元に攻撃内容を通知する通知ステップと、
攻撃内容の通知に応じて開発元に対する課金処理を行なう課金ステップと、
をさらに備えることを特徴とする請求項１７に記載の情報処理方法。
【請求項１９】
ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記ネットワーク経由でパケットを受信するステップ、
受信パケットを処理するプロセス実行ステップと、
プロセスに対する攻撃を検出する攻撃検出ステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成ステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信ステップと、
を具備することを特徴とするコンピュータ・プログラム。
【請求項２０】
ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理ステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理ステップと、
を具備することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機器への攻撃に対処する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、コンピュータ・ウィルスなどのネットワーク接続された機器への攻撃に対処するネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、アプリケーション毎に固有のセキュリティ・ホールへの攻撃に対処するネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、アプリケーションに対する未知の攻撃に自動的に対応するネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【０００３】
【従来の技術】
昨今、情報処理や情報通信などのコンピューティング技術が飛躍的に向上し、コンピュータ・システムが広汎に普及してきている。さらに、コンピュータどうしを相互接続するネットワーク・コンピューティング技術に対する要望も高まってきている。ネットワーク接続環境下では、コンピュータ資源の共有や、情報の共有・流通・配布・交換などの協働的作業を円滑に行なうことができる。
【０００４】
コンピュータどうしを相互接続するネットワークの形態はさまざまである。例えば、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）のような局所に敷設されたＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）や、さらには、ネットワークどうしの相互接続を繰り返し行った結果として文字通り世界規模のネットワークへ成長を遂げた「インターネット」（Ｔｈｅ　Ｉｎｔｅｒｎｅｔ）などさまざまである。
【０００５】
インターネットは、各大学や研究機関などに設置されたサーバが自主的に相互接続を繰り返した結果、巨大ネットワークへと成長するに至った、字義通り、ネットワークのネットワークである。現在、インターネット上には無数のサーバが接続されており、各サーバは、各種の資源オブジェクトを無数のクライアントに公開している。インターネット上のサーバ同士は、通常、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）プロトコルに従って相互接続されている。
【０００６】
インターネット上では、ＷＷＷ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）、Ｎｅｗｓ、ＴＥＬＮＥＴ（ＴＥＬｅｔｙｐｅｗｒｉｔｅｒ　ＮＥＴｗｏｒｋ）、ＦＴＰ（Ｆｉｌｅ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）、Ｇｏｐｈｅｒなど、多数のサービスが公開されている。このうちＷＷＷは、ハイパーリンク構造の情報空間を提供する広域情報検索システムであり、インターネットの爆発的な成長や急速な普及を遂げる最大の要因ともなっている。ＷＷＷシステム上では、テキスト、画像、音声などの各種メディアのコンテンツをハイテキスト形式で閲覧することができる。ＷＷＷ上で扱われるハイパーテキスト情報は、ＨＴＭＬ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）と呼ばれるハイパーテキスト形式の記述言語で記述される。ＴＣＰ／ＩＰに従えば、これらＨＴＭＬドキュメントを始めとする各種の情報資源は、ＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）という形式の識別子によって特定され、ＨＴＴＰ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）プロトコルに従って転送することができる（周知）。そして、クライアント側では、ＷＷＷブラウザを用いてＨＴＭＬコンテンツをダウンロードして、画面上にホームページとして表示させることができる。
【０００７】
最近では、電話回線（ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ　Ｄｉｇｉｔａｌ　Ｓｕｂｓｃｒｉｂｅｒ　Ｌｉｎｅ）など）やケーブル・テレビなどの高速なネットワーク回線の敷設に伴い、常時接続環境の充実してきている。また、今後普及が見込まれるＩＰｖ６により、数多くの機器がインターネットに接続されることが予想される。
【０００８】
しかしながら、このような広域ネットワークの普及と同時に、安全性に対する不安も生じている。何故ならば、ネットワークを介することで知らないうちに機器に不正にアクセスされ、システム内のデータを不正に模倣・盗用、改ざんしたり、ウィルス感染などによりシステムを使用不能にしたりするなど、人手を介さずに攻撃を受ける可能性があるからである。このため、インターネットの利用者は、いくつかのセキュリティ対策を講じなければならない。
【０００９】
現在報告されているセキュリティ関連の問題のうち、最も多いものの１つとして「バッファ・オーバーフロー」を利用したものを挙げることができる。
【００１０】
ここで、バッファ・オーバーフローとは、スタックの構造とＣ言語での配列の境界チェックの欠如に起因する。スタックとは、ＬＩＦＯ（Ｌａｓｔ　Ｉｎ　Ｆｉｓｒｔ　Ｏｕｔ）と呼ばれる最後に置かれたオブジェクトが最初に取り除かれるという性質を持つ抽象データ型であり、スタック・ポインタ（ＳＰ）、及びスタック・フレーム、フレーム・ポインタ（ＦＰ）から構成される。スタック・ポインタは、スタックの先頭を指す。スタック・フレームは、関数の引数、ローカル変数、以前のスタック・フレームを復元するために必要なデータ（関数呼び出し時のインストラクション・ポインタなど）を含む。フレーム・ポインタは、ローカル変数を参照するための相対値として利用される。
【００１１】
例として、以下に示すようなソースコードを実行する際のスタックの動作について、図１を参照しながら説明する。
【００１２】
【数１】
2004054470.tif 000003
【００１３】
関数呼び出し時には、以下の動作が行なわれる。
【００１４】
（１）関数の引数がスタックに積まれる（図１に示す例ではｃ、ｂ、ａ）。
（２）戻りアドレスがスタックに積まれる（図１に示す例ではｒｅｔ）。
（３）現在のＦＰがスタックに積まれ、保存される（図１に示す例ではｓｆｐ）。
（４）新しいＦＰとして現在のＳＰがＦＰにコピーされる。
（５）ローカル変数のための領域（図１ではｂｕｆ）を確保するためにＳＰを進める。図１はこの時点でのスタックの構成を示している。
【００１５】
また、関数戻り時には、以下の動作が行なわれる。
【００１６】
（１）現在のＦＰがＳＰにコピーされる。
（２）保存されていた以前のＦＰ（図１に示す例ではｓｆｐ）がＦＰにコピーされる。
（３）戻りアドレス（図１に示す例ではｒｅｔ）にジャンプする。
【００１７】
次に、バッファ・オーバーフローを利用した攻撃である「スタック・スマッシング」攻撃について、図１を例に説明する。
【００１８】
ローカル変数としての配列であるｂｕｆに、割り当てられている以上のデータを入力した場合、ｓｆｐ、ｒｅｔ、ａ、ｂ、ｃ以降が上書きされる。この際、メモリ上に置かれた悪意を持ったコードのアドレスではｒｅｔを上書きすると、関数戻り時にそのアドレスへジャンプし、そのコードが実行される。ＵＮＩＸでは、多くのデーモン・プロセス（メモリに常駐してさまざまなサービスを提供するプログラム）がｒｏｏｔ権限で実行されており、例えば悪意を持ったコードとして”ｅｘｅｃ（／ｂｉｎ／ｓｈ）”を利用し、デーモン・プロセスに対してスタック・スマッシング攻撃を行なうことにより、そのホストでのｒｏｏｔ権限を獲得することができる。
【００１９】
スタック・スマッシング攻撃を防ぐ従来技術としては、例えばＳｔａｃｋＧｕａｒｄ（Ｃｒｉｓｐｉｎ　Ｃｏｗａｎ他著の論文”Ａｕｔｏｍａｔｉｃ　Ａｄａｐｔｉｖｅ　Ｄｅｔｅｃｔｉｏｎ　ａｎｄ　Ｐｒｅｖｅｎｔｉｏｎ　ｏｆ　Ｂｕｆｆｅｒ−Ｏｖｅｒｆｌｏｗ　Ａｔｔａｃｋｓ”（ｉｎ　ｔｈｅ　７ｔｈ　ＵＳＥＮＩＸ　Ｓｅｃｕｒｉｔｙ　Ｓｙｍｐｏｓｉｕｍ，　１９９８）を参照のこと）が報告されている。このＳｔａｃｋＧｕａｒｄでは、戻りアドレスとローカル変数の間に”Ｃａｎａｒｙ　Ｗｏｒｄ”と呼ばれる値を挿入しておく。関数戻り時にこの値をチェックし、値が変更されていた場合にはスタック・スマッシング攻撃が行なわれたものとして、プロセスを終了させる。
【００２０】
また、特開２００１−２１６１６１号公報には、スタック上のバッファ・オーバーフローを原因とするスタック・スマッシング攻撃を防止する方法について開示されている。同公報に記載の方法によれば、関数のリターン処理において、スタックのプレヴィアス・フレーム・ポインタと配列との間に格納されたガード変数の有効性を確認することにより、スタック上のバッファ・オーバーフローを原因とするスタック・スマッシング攻撃に関しては、ネットワーク経由での攻撃及びローカル・ユーザからの攻撃のいずれに対しても防止することができる。
【００２１】
また、ネットワーク・セキュリティを確保する別の従来技術として、「パケット・フィルタ」が挙げられる。パケット・フィルタは、パケットの送信元アドレス、送信先アドレス、送信元ポート、送信先ポート、並びにプロトコルという５つの組をチェックして、あらかじめ記述されたルールに則ってパケットの通過の許可又は禁止を決定する。
【００２２】
また、この５つの組だけでなく、「シグニチャ」と呼ばれる、アプリケーションに対する攻撃の特徴パターンを保持しておき、そのパターンに一致するパケットの通過を禁止するものもある。
【００２３】
しかしながら、上記のＳｔａｃｋＧｕａｒｄや特開２００１−２１６１６１号公報で開示されている技術は、ネットワークを介した機器に対する特定の攻撃を検出することはできるが、検出後は該当するプロセスを終了させるだけであり、それ以降の対策に関しては特に考慮されていない。
【００２４】
また、パケット・フィルタリングの場合、あらかじめルールやシグニチャを記述する必要があり、新たな手法の攻撃が出現する度に管理者がルールを追加しなければならない。これは、新たな手法の攻撃は実際に攻撃されないと発覚しないという事実に起因する問題である。
【００２５】
また、特開平９−２１８８３７号公報（特許第３１６５３６６号公報）には、内部状態を監視して異常の発生が検出されたときに、ネットワークに接続された他の計算機へ検出された異常の種別を通知するとともに、他の計算機からの異常の種別の通知を受信するように構成されたネットワーク・セキュリティ・システムについて開示されている。しかしながら、同公報に記載のネットワーク・セキュリティ・システムによれば、あらかじめ登録しておいた状態から外れる場合にはその異常状態を通知するが、登録された状態に収まる範囲での未知の攻撃には対処することができない。
【００２６】
また、特開平１１−１６７４８７号公報には、あらかじめ格納されているウィルス・パターンに基づいてパケットが感染パケットかどうかのウィルス・チェックをネットワーク側で行なうウィルス・チェック・ネットワークについて開示されている。しかしながら、同公報に記載のウィルス・チェック・ネットワークが目的とするのはウィルス検知だけである。また、ウィルス・パターン情報管理手段に登録されるパターンは既知のものでなければならず、未知のウィルスについての対処方法や自動登録の方法に関しては開示されていない。さらに、ウィルス管理情報局から配布されるウィルス情報は、ウィルス・チェック装置にとっては未知であるがウィルス情報管理局にとっては既知であり、ウィルス情報管理局に未知のパターンを登録する手順については開示されていない。
【００２７】
また、特開平１１−１３４１９０号公報には、電子メールなどのネットワーク上をマシンからマシンへと転送される各種のデータにウィルスが感染した場合にそれを検出するとともに、ウィルス感染が検出されたとき、自動的に所定のものに対してウィルス感染を通知してウィルスの感染を防止するウィルス検出通知システムについて開示されている。しかしながら、同公報に記載のウィルス検出通知システムは、ウィルス・チェックによる検出結果を配布することを目的とするものであり、言い換えれば、配布される情報は検出結果のみであり、未知の攻撃パターンが配布されることはない。
【００２８】
【発明が解決しようとする課題】
本発明の目的は、コンピュータ・ウィルスなどのネットワーク接続された機器への攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【００２９】
本発明のさらなる目的は、アプリケーション毎に固有のセキュリティ・ホールへの攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【００３０】
本発明のさらなる目的は、アプリケーションに対する未知の攻撃に自動的に対応することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【００３１】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、ネットワークに接続された機器への攻撃に対処するネットワーク・セキュリティ・システムであって、
ネットワークに接続された機器は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部とを備え、フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他の機器に配布し、他の機器ではその未知の攻撃が既知の攻撃として登録され該攻撃をフィルタリングして防御する、
ことを特徴とするネットワーク・セキュリティ・システムである。
【００３２】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００３３】
本発明の第１の側面に係るネットワーク・セキュリティ・システムによれば、ネットワークに接続された各情報処理装置は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部を備えている。
【００３４】
フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他のホストに配布することにより、他のホストではその未知の攻撃が既知の攻撃として登録され、その攻撃をフィルタリングして防御することができる。
【００３５】
ここで、ネットワーク経由で情報処理装置が被る攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【００３６】
また、本発明の第２の側面は、ネットワーク経由で行なわれる攻撃に対処する情報処理装置又は情報処理方法であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部又はステップと、
受信パケットを処理するプロセス実行部又はステップと、
プロセスに対する攻撃を検出する攻撃検出部又はステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成部又はステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信部又はステップと、
を具備することを特徴とする情報処理装置又は情報処理方法である。
【００３７】
本発明の第２の側面に係る情報処理装置又は情報処理方法は、
アプリケーションに対する攻撃の特徴パターンからなるシグニチャを保持するシグニチャ・データベースに登録されているシグニチャに基づいて受信パケットのフィルタリングを行なうパケット・フィルタリング部又はステップと、
受信パケットから未知の攻撃に関するシグニチャを取り出して前記シグニチャ・データベースに登録するシグニチャ登録部又はステップと、
をさらに備えていてもよい。
【００３８】
したがって、本発明の第２の側面に係る情報処理装置又は情報処理方法によれば、実行中のプロセスがフィルタリングされずに通過した未知の攻撃パターンを受けた場合、そのプロセスが攻撃されたという事実から攻撃パターンを生成し他のホストに配布することができる。そして、ネットワーク上の他の情報処理装置では、攻撃パターンの配布を受けて、その未知の攻撃が既知の攻撃として登録して、その攻撃をフィルタリングして防御することができる。
【００３９】
ここで、ネットワーク経由で情報処理装置が被る攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【００４０】
また、前記シグニチャ生成部又はステップは、少なくとも攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンを含む前記シグニチャを生成する。あるいは、受信パケットから送信ポート番号、プロトコル番号を取り出して、攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンとともにまとめてシグニチャとするようにしてもよい。
【００４１】
また、前記パケット・フィルタリング部又はステップは、受信パケットのプロトコル番号、送信先ポート番号、アプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄するようにしてもよい。
【００４２】
また、どのような攻撃に対して防御したかを伝えるためのメッセージを作成して他のユーザに送信するユーザ通知部又はステップをさらに備えていてもよい。このような場合、攻撃に対して防御した際に、その事実を利用者に通知することができるので、利用者は安全であることを認識でき、安心して機器を利用することができる。
【００４３】
また、本発明の第３の側面は、ネットワーク経由で行なわれる攻撃に対処する情報処理装置又は情報処理方法であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部又はステップと、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理部又はステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理部又はステップと、
を具備することを特徴とする情報処理装置又は情報処理方法である。
【００４４】
したがって、本発明の第３の側面に係る情報処理装置又は情報処理方法によれば、ネットワーク上のある機器において実行中のプロセスがフィルタリングされずに通過した未知の攻撃パターンを受けた場合、そのプロセスが攻撃されたという事実に基づいて生成された攻撃パターンをその機器から受け取るとともに、ネットワーク上の他の機器に配布することができる。そして、ネットワーク上の他の機器では、攻撃パターンの配布を受けて、その未知の攻撃が既知の攻撃として登録して、その攻撃をフィルタリングして防御することができる。
【００４５】
本発明の第３の側面に係る情報処理装置又は情報処理方法は、受信したシグニチャに関連するアプリケーションの開発元に攻撃内容を通知する通知手段又はステップと、攻撃内容の通知に応じて開発元に対する課金処理を行なう課金手段又はステップとをさらに備えていてもよい。
【００４６】
このような場合、あるアプリケーションに関する未知のセキュリティ・ホールがネットワーク上のある機器において発見されると、アプリケーションの開発者に即座に通知することができる。この結果、開発者は修正プログラムの開発に即座に取り掛かることができる。また、そのサービスを提供する事業者は、その対価として開発者に課金を行なうことができる。
【００４７】
また、本発明の第４の側面は、ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記ネットワーク経由でパケットを受信するステップ、
受信パケットを処理するプロセス実行ステップと、
プロセスに対する攻撃を検出する攻撃検出ステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成ステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００４８】
また、本発明の第５の側面は、ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理ステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００４９】
本発明の第４及び第５の各側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、第４及び第５の各側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第２及び第３の各側面に係る情報処理装置又は情報処理方法のそれぞれと同様の作用効果を得ることができる。
【００５０】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００５１】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００５２】
図２には、本発明を実装したネットワーク・セキュリティ・システム１００の構成を模式的に示している。
【００５３】
ネットワーク１１０は、例えばＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）プロトコル群で構築されるインターネットや、電話網、あるいはその他の広域的な通信回線で構成される。
【００５４】
機器１２０は、例えば、クライアントに相当するアプリケーションなどのプログラムを起動して動作するコンピュータで構成される。図示の例では、各機器１２０は、ネットワーク・インターフェース（図示しない）などによりネットワーク１１０に接続されており、他の機器１２０や、配信サーバ１３０と通信することができる。
【００５５】
配信サーバ１３０は、例えば配信サーバ・アプリケーションを起動して動作するコンピュータで構成され、ネットワーク１１０に接続されて、各機器１２０と通信することができる。
【００５６】
ＡＰサーバ１４０は、例えば所定のサーバ・アプリケーションを起動して動作するコンピュータで構成され、ネットワーク１１０に接続されて、各機器１２０にさまざまなアプリケーション（ＡＰ）を提供する。各機器１２０側では、ＡＰサーバ１４０が提供するアプリケーションのプログラム・ファイルをダウンロードし、システムにインストールすることによって、プロセスを起動することができる。ＡＰサーバ１４０が提供するアプリケーションの一部は固有のセキュリティ・ホールを含んでおり、プロセス実行時の攻撃対象となる。
【００５７】
後述するように、ネットワーク１１０上の各機器１２０は、ネットワーク１１０経由で起動中のプロセスに対する攻撃を受けると、その攻撃されたという事実から攻撃パターンを生成して、配信サーバ１３０などネットワーク１１０上の他のホストに通知する。配信サーバ１３０は、ネットワーク１１０上の他の機器１２０に攻撃パターンを配布する。そして、他の機器１２０では、配布された未知の攻撃を既知の攻撃として登録することにより、以後その攻撃をフィルタリングして防御することができる。
【００５８】
ここで、ネットワーク１１０経由で機器１２０が被る攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【００５９】
また、ＡＰサーバ１４０は、アプリケーションの開発者又は開発者から委託を受けた事業者によって運営されている。配信サーバ１３０は、ネットワーク１１０上の機器から通知された攻撃パターンを該当するアプリケーションの開発者に通知するようにしてもよい。これによって、開発者はアプリケーションに内包されるセキュリティ・ホールを逐次修正して、バージョンの向上を図ることができる。また、配信サーバ１３０は、開発者に対する攻撃パターンの通知サービスを有料で行なうようにしてもよい。
【００６０】
図３には、ネットワーク１１０上で動作する機器１２０の機能構成を模式的に示している。機器１２０は、例えば、一般的なコンピュータ上でコンピュータ・プログラムを起動するという形態で実現される。
【００６１】
ネットワーク・インターフェース部２０５は、例えば物理媒体や無線媒体を介してネットワーク１１０に接続するデバイスであり、パケット・フィルタ部２１０と、シグニチャ送信部２７０に接続され、ネットワーク１１０を介した通信を行なう。
【００６２】
パケット・フィルタ部２１０は、例えばコンピュータ・プログラムとして実装され、ネットワーク・インターフェース部２０５と、シグニチャ・データベース２１５と、パケット・コピー部２２０に接続され、受信パケットのフィルタリングを行なう。
【００６３】
シグニチャ・データベース２１５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・フィルタ部２１０と、シグニチャ登録部２４５に接続され、パケット・フィルタリングのための情報（シグニチャ）を保持する。シグニチャは、アプリケーションに対する攻撃の特徴パターンからなる。
【００６４】
パケット・コピー部２２０は、例えばコンピュータ・プログラムによって実装され、パケット・フィルタ部２１０と、パケット・データベース２２５と、パケット振り分け部２３０に接続され、受信パケットのコピーを行なう。
【００６５】
パケット・データベース２２５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・コピー部２２０と、パケット選択部２６０に接続され、受信したパケットのコピーを保持する。
【００６６】
パケット振り分け部２３０は、例えばコンピュータ・プログラムによって実装され、パケット・コピー部２２０と、シグニチャ受信部２３５と、プロセス２５０に接続され、受信パケットの振り分けを行なう。
【００６７】
シグニチャ受信部２３５は、例えばコンピュータ・プログラムで実装され、パケット振り分け部２３０と、受信用鍵データベース２４０と、シグニチャ登録部２４５に接続され、受信パケットの正当性を検証し、受信パケットからシグニチャを取り出す。
【００６８】
受信用鍵データベース２４０は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ受信部２３５に接続され、受信パケットの正当性を検証するための鍵情報を保持する。
【００６９】
シグニチャ登録部２４５は、例えばコンピュータ・プログラムで構成され、シグニチャ・データベース２１５と、シグニチャ受信部２３５に接続され、受信したシグニチャを登録する。
【００７０】
プロセス２５０は、例えばコンピュータ・プログラムによって実装され、パケット振り分け部２３０と、攻撃検出部２５５に接続され、通常のアプリケーションとして動作して、受信パケットの処理を行なう。
【００７１】
攻撃検出部２５５は、例えばコンピュータ・プログラムによって実装され、プロセス２５０と、パケット選択部２６０に接続され、機器１２０上で起動中のプロセス２５０への攻撃を検出する。
【００７２】
ここで言う攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【００７３】
パケット選択部２６０は、例えばコンピュータ・プログラムによって実装され、パケット・データベース２２５と、攻撃検出部２５５と、シグニチャ生成部２６５に接続され、パケット・データベース２２５から攻撃に結び付いたパケット（以下、これを「ｅｘｐｌｏｉｔパケット」と呼ぶ）を検索する。
【００７４】
シグニチャ生成部２６５は、例えばコンピュータ・プログラムによって実装され、パケット選択部２６０と、シグニチャ送信部２７０に接続され、未知のｅｘｐｌｏｉｔパケットからパケット・フィルタ用のシグニチャを生成する。
【００７５】
シグニチャ送信部２７０は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部２０５と、シグニチャ生成部２６５と、送信用鍵データベース２７５に接続され、送信シグニチャの正当性を証明するための情報を付加して送信する。
【００７６】
送信用鍵データベース２７５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ送信部２７０に接続され、送信シグニチャの正当性を証明するための鍵情報を保持する。
【００７７】
なお、機器１２０を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置（図示しない）に格納され、コンピュータ上のＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）が適宜読み出して実行するようになっている。
【００７８】
また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク１１０を介して上記の記憶装置に複製（ダウンロード）したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる。
【００７９】
図４には、ネットワーク１１０上で動作する配信サーバ１３０の機能構成を模式的に示している。配信サーバ１３０は、例えば、一般的なコンピュータ上で所定のコンピュータ・プログラムを起動するという形態で実現される。
【００８０】
ネットワーク・インターフェース部３０５は、例えば物理媒体や無線媒体を介してネットワーク１１０に接続するデバイスであり、処理部３１０に接続され、ネットワーク１１０を介した通信を行なう。
【００８１】
処理部３１０は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部３０５と、鍵データベース３１５に接続され、配信サーバ１３０全体の動作を司る。
【００８２】
鍵データベース３１５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、処理部３１０に接続され、送受信パケットの正当性を証明、検証するための鍵情報を保持する。
【００８３】
なお、配信サーバ１３０を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置（図示しない）に格納され、コンピュータ上のＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）が適宜読み出して実行するようになっている。また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク１１０を介して上記の記憶装置に複製（ダウンロード）したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる（同上）。
【００８４】
次いで、本実施形態に係るネットワーク・セキュリティ・システム１００におけるセキュリティ動作について説明する。
【００８５】
図５〜図７には、本実施形態に係る機器１２０の基本動作をフローチャートの形式で示している。
【００８６】
ネットワーク・インターフェース部２０５は、ネットワーク１１０経由でパケット（以下、「受信パケット」とする）を受信すると（ステップＳ１）、これをパケット・フィルタ部２１０に渡す。
【００８７】
パケット・フィルタ部２１０は、受信パケットに合致するシグニチャをシグニチャ・データベース２１５から検索する（ステップＳ２）。
【００８８】
データベース検索の結果、合致するシグニチャが発見された場合には（ステップＳ３）、受信パケットは既知のｅｘｐｌｏｉｔパケットであると判断されるので、ステップＳ４に進んで、パケット・フィルタ部２１０ｆこの受信パケットを破棄する。その後、ステップＳ１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【００８９】
一方、合致するシグニチャが発見されなかった場合には、受信パケットは既知のｅｘｐｌｏｉｔパケットではないと判断されるので、ステップＳ５に進んで、受信パケットをパケット・コピー部２２０に渡す。
【００９０】
パケット・コピー部２２０は、受信パケットのコピーをパケット・データベース２２５に一定期間保存し（ステップＳ６）、受信パケットをパケット振り分け部２３０に渡す。
【００９１】
パケット振り分け部２３０は、受信パケットの種類に応じてパケットを振り分ける（ステップＳ７）。そして、受信パケットがシグニチャを含むパケットである場合にはステップＳ１０に進み、そうでない場合にはステップＳ８に進む。
【００９２】
ステップＳ８では、パケット振り分け部２３０は受信パケットがプロセス２５０宛のものであるかどうかを判断する。受信パケットがプロセス２５０宛てであればステップＳ１５に進み、そうでない場合にはステップＳ９に進む。
【００９３】
ステップＳ９では、受信パケットは振り分けられなかったので、パケット振り分け部２３０は、あて先が間違っているとしてこの受信パケットを破棄する。そして、ステップＳ１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【００９４】
ステップＳ７において受信パケットがシグニチャを含むと判断された場合、シグニチャ受信部２３５は、受信用鍵データベース２４０に格納されている鍵を利用して、受信パケットに施されている電子署名を検証する（ステップＳ１０）。また、受信パケットが暗号化されている場合には、受信用鍵データベース２４０に格納されている鍵を利用して受信パケットの復号化を行なう。
【００９５】
続くステップＳ１１では、この電子署名の検証に成功したかどうかを判断する。受信パケットの検証並びに復号化に成功した場合にはステップＳ１３に進み、失敗した場合にはステップＳ１２に進む。
【００９６】
受信パケットの検証又はその復号化に失敗した場合には、この受信パケットは不正なパケットであると判断されるので、シグニチャ受信部２３５は、受信パケットを破棄する（ステップＳ１２）。その後、ステップＳ１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【００９７】
一方、受信パケットの検証及びその復号化に成功した場合には、シグニチャ受信部２３５は、この受信パケットからシグニチャを取り出して（ステップＳ１３）、シグニチャ登録部２４５に渡す。シグニチャ登録部２４５は、受け取ったシグニチャをシグニチャ・データベース２１５に登録する（ステップＳ１４）。その後、ステップＳ１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【００９８】
ステップＳ８において受信パケットがプロセス宛であると判断された場合には、パケット振り分け部２３０から渡された受信パケットは、プロセス２５０に対する入力として与えられる（ステップＳ１５）。
【００９９】
そして、受信パケットが未知のｅｘｐｌｏｉｔパケットであった場合には、プロセス２５０が攻撃を受け、攻撃検出部２５５がこの攻撃を検出する（ステップＳ１６）。攻撃が検出された場合にはステップＳ１８に進み、検出されなかった場合にはステップＳ１７に進む。
【０１００】
攻撃検出部２５５がプロセス２５０への攻撃を検出しなかった場合には、プロセス２５０は受信パケットを処理する（ステップＳ１７）。その後、ステップＳ１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【０１０１】
一方、攻撃検出部２５５はプロセス２５０への攻撃を検出した場合には、攻撃検出部２５５は攻撃を受けたプロセス２５０を終了させるとともに（ステップＳ１８）、攻撃に結び付いたコード（以下、「ｅｘｐｌｏｉｔコード」とする）をパケット選択部２６０に渡す（ステップＳ１９）。
【０１０２】
パケット選択部２６０は、ｅｘｐｌｏｉｔコードに対応する受信パケットをパケット・データベース２２５から検索して（ステップＳ２０）、ｅｘｐｌｏｉｔコードと受信パケットをシグニチャ生成部２６５に渡す。
【０１０３】
シグニチャ生成部２６５は、ｅｘｐｌｏｉｔコードと受信パケットから、パケット・フィルタ部２１０により利用されるシグニチャを生成して（ステップＳ２１）、シグニチャ送信部２７０に渡す。
【０１０４】
シグニチャ送信部２７０は、送信用鍵データベース２７５に格納されている鍵を利用して送信シグニチャに電子署名を施す（ステップＳ２２）。また、送信シグニチャを暗号化する必要がある場合には、送信用鍵データベース２７５に格納されている鍵を利用して送信シグニチャの暗号化を行なう。その後、送信シグニチャをネットワーク・インターフェース部２０５に渡す。
【０１０５】
ネットワーク・インターフェース部２０５は、送信シグニチャを送信する（ステップＳ２３）。その後、ステップＳ１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【０１０６】
図８には、本実施形態に係る配信サーバ１３０の基本動作をフローチャートの形式で示している。
【０１０７】
ネットワーク・インターフェース部３０５は、ネットワーク１１０上のある機器１２０からシグニチャを受信すると（以下、「受信シグニチャ」とする）、これを処理部３１０に渡す（ステップＳ３１）。
【０１０８】
処理部３１０は、鍵データベース３１５に格納されている鍵を利用して、受信シグニチャに施されている電子署名を検証する（ステップＳ３２）。また、受信シグニチャが暗号化されている場合には、鍵データベース３１５に格納されている鍵を利用して、受信シグニチャの復号化を行なう。
【０１０９】
次いで、受信シグニチャの検証並びに復号化に成功したかどうかを判断する（ステップＳ３３）。
【０１１０】
受信シグニチャの検証又は復号化に失敗した場合には、この受信パケットは不正なパケットと判断されるので、処理部３１０は受信パケットを破棄する（ステップＳ３４）。その後、ステップＳ３１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【０１１１】
一方、受信シグニチャの検証及び復号化に成功した場合には、処理部３１０は、鍵データベース３１５に格納されている鍵を利用して、送信シグニチャに電子署名を施す（ステップＳ３５）。また、送信シグニチャを暗号化する必要がある場合には、鍵データベース３１５に格納されている鍵を利用して、送信シグニチャを暗号化する。
【０１１２】
そして、ネットワーク・インターフェース部３０５は、送信シグニチャをネットワーク１１０上の各機器１２０に送信する（ステップＳ３６）。その後、ステップＳ３１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【０１１３】
次いで、本発明の第２の実施形態について説明する。
【０１１４】
図９には、本発明の第２の実施形態に係る機器１２０−２の機能構成を模式的に示している。機器１２０−２は、例えば、一般的なコンピュータ上でコンピュータ・プログラムを起動するという形態で実現される。
【０１１５】
ネットワーク・インターフェース部２０５は、例えば物理媒体や無線媒体を介してネットワーク１１０に接続するデバイスであり、パケット・フィルタ部２１０と、シグニチャ送信部２７０と、ユーザ通知部２８０に接続され、ネットワーク１１０を介した通信を行なう。
【０１１６】
パケット・フィルタ部２１０は、例えばコンピュータ・プログラムとして実装され、ネットワーク・インターフェース部２０５と、シグニチャ・データベース２１５と、パケット・コピー部２２０と、ユーザ通知部２８０に接続され、受信パケットのフィルタリングを行なう。
【０１１７】
シグニチャ・データベース２１５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・フィルタ部２１０と、シグニチャ登録部２４５に接続され、パケット・フィルタリングのための情報（シグニチャ）を保持する。
【０１１８】
パケット・コピー部２２０は、例えばコンピュータ・プログラムによって実装され、パケット・フィルタ部２１０と、パケット・データベース２２５と、パケット振り分け部２３０に接続され、受信パケットのコピーを行なう。
【０１１９】
パケット・データベース２２５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・コピー部２２０と、パケット選択部２６０に接続され、受信したパケットのコピーを保持する。
【０１２０】
パケット振り分け部２３０は、例えばコンピュータ・プログラムによって実装され、パケット・コピー部２２０と、シグニチャ受信部２３５と、プロセス２５０に接続され、受信パケットの振り分けを行なう。
【０１２１】
シグニチャ受信部２３５は、例えばコンピュータ・プログラムで実装され、パケット振り分け部２３０と、受信用鍵データベース２４０と、シグニチャ登録部２４５に接続され、受信パケットの正当性を検証し、受信パケットからシグニチャを取り出す。
【０１２２】
受信用鍵データベース２４０は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ受信部２３５に接続され、受信パケットの正当性を検証するための鍵情報を保持する。
【０１２３】
シグニチャ登録部２４５は、例えばコンピュータ・プログラムで構成され、シグニチャ・データベース２１５と、シグニチャ受信部２３５に接続され、受信したシグニチャを登録する。
【０１２４】
プロセス２５０は、例えばコンピュータ・プログラムによって実装され、パケット振り分け部２３０と、攻撃検出部２５５に接続され、通常のアプリケーションとして動作して、受信パケットの処理を行なう。
【０１２５】
攻撃検出部２５５は、例えばコンピュータ・プログラムによって実装され、プロセス２５０と、パケット選択部２６０に接続され、機器１２０上で起動中のプロセス２５０への攻撃を検出する。
【０１２６】
パケット選択部２６０は、例えばコンピュータ・プログラムによって実装され、パケット・データベース２２５と、攻撃検出部２５５と、シグニチャ生成部２６５に接続され、パケット・データベース２２５から攻撃に結び付いたｅｘｐｌｏｉｔパケットを検索する。
【０１２７】
シグニチャ生成部２６５は、例えばコンピュータ・プログラムによって実装され、パケット選択部２６０と、シグニチャ送信部２７０に接続され、未知のｅｘｐｌｏｉｔパケットからパケット・フィルタ用のシグニチャを生成する。
【０１２８】
シグニチャ送信部２７０は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部２０５と、シグニチャ生成部２６５と、送信用鍵データベース２７５に接続され、送信シグニチャの正当性を証明するための情報を付加して送信する。
【０１２９】
送信用鍵データベース２７５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ送信部２７０に接続され、送信シグニチャの正当性を証明するための鍵情報を保持する。
【０１３０】
ユーザ通知部２８０は、例えばコンピュータ・プログラムで構成され、ネットワーク・インターフェース部２０５と、パケット・フィルタ部２１０と、ユーザ・データベース２８５に接続され、ユーザへの通知を行なう。
【０１３１】
ユーザ・データベース２８５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、ユーザ通知部２８０に接続され、ユーザ情報を保持する。
【０１３２】
なお、機器１２０−２を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置（図示しない）に格納され、コンピュータ上のＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）が適宜読み出して実行するようになっている。また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク１１０を介して上記の記憶装置に複製（ダウンロード）したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる（同上）。
【０１３３】
図１０には、本発明の第２の実施形態に係る配信サーバ１３０−２の機能構成を模式的に示している。配信サーバ１３０−２は、例えば、一般的なコンピュータ上で所定のコンピュータ・プログラムを起動するという形態で実現される。
【０１３４】
ネットワーク・インターフェース部３０５は、例えば物理媒体や無線媒体を介してネットワーク１１０に接続するデバイスであり、処理部３１０に接続され、ネットワーク１１０を介した通信を行なう。
【０１３５】
処理部３１０は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部３０５と、鍵データベース３１５と、課金データベース３２０に接続され、配信サーバ１３０全体の動作を司る。
【０１３６】
鍵データベース３１５は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、処理部３１０に接続され、送受信パケットの正当性を証明、検証するための鍵情報を保持する。
【０１３７】
課金データベース３２０は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、処理部３１０に接続され、課金情報を保持する。
【０１３８】
なお、配信サーバ１３０−２を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置（図示しない）に格納され、コンピュータ上のＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）が適宜読み出して実行するようになっている。また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク１１０を介して上記の記憶装置に複製（ダウンロード）したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる（同上）。
【０１３９】
次いで、本実施形態に係るネットワーク・セキュリティ・システム１００におけるセキュリティ動作について説明する。
【０１４０】
図１１には、本実施形態に係る機器１２０−２の基本動作をフローチャートの形式で示している。同図は、図５に示した本発明の第１の実施例に係る基本動作に置き換わるものである。
【０１４１】
ネットワーク・インターフェース部２０５は、ネットワーク１１０経由でパケットを受信すると（ステップＳ１）、この受信パケットをパケット・フィルタ部２１０に渡す。
【０１４２】
パケット・フィルタ部２１０は、受信パケットに合致するシグニチャをシグニチャ・データベース２１５から検索する（ステップＳ２）。
【０１４３】
データベース検索の結果、合致するシグニチャが発見された場合には（ステップＳ３）、受信パケットは既知のｅｘｐｌｏｉｔパケットであると判断されるので、ステップＳ４に進んで、パケット・フィルタ部２１０はこの受信パケットを破棄する。そして、パケット・フィルタ部２１０は、ユーザ通知部２８０にシグニチャを渡す（ステップＳ４−１）。
【０１４４】
ユーザ通知部２８０は、ユーザ・データベース２８５からユーザの連絡先を検索する（ステップＳ４−２）。さらに、ユーザ通知部２８０は、ユーザに対して、どのような攻撃に対して防御したかを伝えるためのメッセージを作成して、ネットワーク・インターフェース部２０５に渡す（ステップＳ４−３）。
【０１４５】
ネットワーク・インターフェース部２０５は、メッセージを送信する（ステップＳ４−４）。その後、ステップＳ１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【０１４６】
一方、合致するシグニチャが発見されなかった場合には、受信パケットは既知のｅｘｐｌｏｉｔパケットではないと判断されるので、ステップＳ５に進んで、受信パケットをパケット・コピー部２２０に渡す（以下、上述と同様）。
【０１４７】
図１２には、本実施形態に係る配信サーバ１３０−２の基本動作をフローチャートの形式で示している。同図は、図８に示した本発明の第１の実施例に係る基本動作に置き換わるものである。
【０１４８】
ネットワーク・インターフェース部３０５は、シグニチャを受信して、これを処理部３１０に渡す（ステップＳ３１）。
【０１４９】
処理部３１０は、鍵データベース３１５に格納されている鍵を利用して、受信シグニチャに施されている電子署名を検証する（ステップＳ３２）。また、受信シグニチャが暗号化されている場合には、鍵データベース３１５に格納されている鍵を利用して、受信シグニチャの復号化を行なう。
【０１５０】
次いで、受信シグニチャの検証並びに復号化に成功したかどうかを判断する（ステップＳ３３）。
【０１５１】
受信シグニチャの検証又は復号化に失敗した場合には、この受信パケットは不正なパケットと判断されるので、処理部３１０は受信パケットを破棄する（ステップＳ３４）。その後、ステップＳ３１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【０１５２】
一方、受信シグニチャの検証及び復号化に成功した場合には、処理部３１０は、鍵データベース３１５に格納されている鍵を利用して、送信シグニチャに電子署名を施す（ステップＳ３５）。また、送信シグニチャを暗号化する必要がある場合には、鍵データベース３１５に格納されている鍵を利用して、送信シグニチャを暗号化する。
【０１５３】
そして、ネットワーク・インターフェース部３０５は、送信シグニチャを送信する（ステップＳ３６）。
【０１５４】
さらに、処理部３１０は、課金データベース３２０から開発者の連絡先を検索する（ステップＳ３６−１）。開発者の連絡先の一例は、ＡＰサーバ１４０（図２を参照のこと）である。
【０１５５】
次いで、処理部３１０は、シグニチャの情報を基にどのような手法の攻撃が行なわれたかを伝えるためのメッセージを作成し（Ｓ３６−２）、これをネットワーク・インターフェース３０５に渡す。
【０１５６】
次いで、ネットワーク・インターフェース３０５は、メッセージを送信する（ステップＳ３６−３）。そして、処理を処理部３１０に戻す。
【０１５７】
処理部３１０は、課金データベース３２０に開発者の課金情報を記録する（ステップＳ３６−４）。その後、ステップＳ３１に復帰して、上述した受信パケットの処理を繰り返し実行する。
【０１５８】
続いて、各機能モジュール又はその動作手順の実装例について具体的に説明する。
【０１５９】
パケット・フィルタリングの実装例
機器１２０におけるパケット・フィルタ部２１０の動作の具体例を以下に示す。
【０１６０】
パケット・フィルタ部２１０は、まず、受信パケットのプロトコル番号（プロトコルの種別を示す）及び送信先ポート番号に合致するプロトコル番号及び送信先ポート番号を持つシグニチャがシグニチャ・データベース２１５に登録されているか否かを検索する。合致するシグニチャがあった場合には、さらにその受信パケットのアプリケーション・データ・フィールドとそのシグニチャのｅｘｐｌｏｉｔコードのパターンを比較し、合致していた場合、その受信パケットを破棄する。例えば、ｅｘｐｌｏｉｔコードに＼ｘｃｄ＼ｘ８０と＼ｘ２ｆ＼ｘ６２＼ｘ６９＼ｘ６ｅ＼ｘ２ｆ＼ｘ７３＼ｘ６８＼ｘ００を含み、プロトコル番号が示すプロトコルをＴＣＰ、送信先ポート番号を８０番とするシグニチャがシグニチャ・データベース２１５にある場合、パケット・フィルタ部２１０は、受信パケットのプロトコル番号、送信先ポート番号、アプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄する。
【０１６１】
なお、上述のシグニチャの意味するところは、＼ｘｃｄ＼ｘ８０がｅｘｅｃ（）システム・コールのバイナリ（１６進）表現された一部分を、＼ｘ２ｆ＼ｘ６２＼ｘ６９＼ｘ６ｅ＼ｘ２ｆ＼ｘ７３＼ｘ６８＼ｘ００が文字列／ｂｉｎ／ｓｈをそれぞれ表す。すなわち、ｗｅｂサーバに対して”ｅｘｅｃ（／ｂｉｎ／ｓｈ）”を実行しようとするコードである。
【０１６２】
また、すべての受信パケットのアプリケーション・データ・フィールドと、シグニチャ内のｅｘｐｌｏｉｔコードとの比較を行なうことが必要となるが、プロトコル番号と送信先ポート番号に基づく検索を行なわず、直接、受信パケットのアプリケーション・データ・フィールドと、シグニチャ内のｅｘｐｌｏｉｔコードのパターン・マッチングを行なって破棄する受信パケットを決めるようにしてもよい。また、プロトコル番号と送信先ポート番号のいずれか一方のみに基づいて検索を行ない、その後、受信パケットのアプリケーション・データ・フィールドと、シグニチャ内のｅｘｐｌｏｉｔコードのパターン・マッチングを行なって破棄する受信パケットを決めるようにしてもよい。
【０１６３】
シグニチャ送受信の実装例
初期化時の動作の具体例を以下に示す。
【０１６４】
（１）機器１２０は、配信サーバ１３０の公開鍵を取得し、受信用鍵データベース２４０に保存する。また、配信サーバ１３０は機器１２０の公開鍵を鍵データベース３１５に保持しているものとする。なお、ここでの公開鍵、秘密鍵のペアとしては、例えば公開鍵暗号アルゴリズムであるＲＳＡ方式を採用することができる。
（２）機器１２０は、シグニチャを受信するためにマルチキャスト・グループに参加する。マルチキャスト・グループとしては、例えばＩＰ　ｖｅｒｓｉｏｎ４のクラスＤアドレスで表されるグループを用いることができ、その場合の参加手段としては、ＲＦＣ（Ｒｅｑｕｅｓｔ　ｆｏｒ　Ｃｏｍｍｅｎｔ）１１１２に規定されているＩＧＭＰ（Ｉｎｔｅｒｎｅｔ　Ｇｒｏｕｐ　Ｍａｎａｇｅｍｅｎｔ　Ｐｒｏｔｏｃｏｌ：同一のデータを複数のホストに効率よく配信するＩＰマルチキャストで、配送を受けるための構成されるホストのグループを制御するためのプロトコル）を用いる。
【０１６５】
機器１２０におけるシグニチャ送信時のシグニチャ送信部２７０の動作の具体例を以下に示す。
【０１６６】
（１）送信用鍵データベース２７５に保存されている機器１２０の秘密鍵でシグニチャに電子署名する。電子署名としては、例えばＲＳＡ電子署名を用いることができる（以下同様）。
（２）シグニチャ送信部２７０は、シグニチャを配信サーバ１３０に対してユニキャストで送信する。なお、シグニチャ送信部２７０は配信サーバ１３０のユニキャスト・アドレスをあらかじめ知っているものとする。
【０１６７】
配信サーバ１３０におけるシグニチャ受信時の処理部３１０の動作の具体例を以下に示す。
【０１６８】
（１）機器１２０からのシグニチャを受信する。
（２）機器１２０の公開鍵で電子署名を検証する。
（３）配信サーバ１３０の秘密鍵でシグニチャに電子署名する。
（４）すべての機器１２０に向かってシグニチャをマルチキャストで送信する。マルチキャストによる送信方法としては、例えば、ＩＰ　ｖｅｒｓｉｏｎ４では単に送信先アドレスとしてクラスＤアドレスを指定すればよい。
【０１６９】
機器１２０におけるシグニチャ受信時のシグニチャ受信部２３５の動作の具体例を以下に示す。
【０１７０】
（１）配信サーバ１３０からのシグニチャを受信する。
（２）配信サーバ１３０の公開鍵で電子署名を検証する。
（３）シグニチャをシグニチャ登録部２４５に渡し、シグニチャ・データベース２１５に登録する。
【０１７１】
なお、本明細書中では、配信サーバ１３０がシグニチャを配信する具体例を示したが、本発明はこれに限定されるものではなく、例えば機器１２０のシグニチャ送信部２７０が配信サーバ１３０の機能を含むように構成してもよい。
【０１７２】
攻撃検出の実装例
機器１２０における攻撃の検出方法としては、例えばＳｔａｃｈＧｕａｒｄなどの従来技術をそのまま用いることができる。
【０１７３】
なお、本明細書中では、攻撃手段としてバッファ・オーバーフローによるスタック・スマッシング攻撃を主に取り上げたが、本発明はこれに特化したものではなく、攻撃を検出できる攻撃検出部２５５と、その攻撃パターンをシグニチャとして表現することができれば、他の手段も用いることが可能である。
【０１７４】
シグニチャ生成の実装例
機器１２０におけるシグニチャ生成方法の具体例を以下に示す。
【０１７５】
（１）攻撃検出部２５５は、攻撃を受けたプロセスを終了させ、そのメモリ・イメージ（コア）を取得し、その中に現れる特徴的なパターン、すなわちｅｘｐｌｏｉｔコードをパケット選択部２６０に渡す。
（２）パケット選択部２６０は、アプリケーション・データ・フィールドにｅｘｐｌｏｉｔコードを含むパケットをパケット・データベース２２５から検索し、ｅｘｐｌｏｉｔコードとともに、そのパケットをシグニチャ生成部２６５に渡す。
（３）シグニチャ生成部２６５は、受け取ったパケットから送信先ポート番号、プロトコル番号を取り出し、攻撃に結び付いたパターンとしてのｅｘｐｌｏｉｔコードとともにそれらをまとめてシグニチャとする。
【０１７６】
なお、上述のパケット・フィルタリングの実装例で示したように、パケット・フィルタ部２１０が、ｅｘｐｌｏｉｔコードのみから破棄すべき受信パケットを決める場合には、シグニチャは、少なくともｅｘｐｌｏｉｔコードを含んでいればよく、必ずしも送信先ポート番号とプロトコル番号とを含んでいる必要はない。また、パケット・フィルタ部２１０が、プロトコル番号と送信先ポート番号のいずれか一方とｅｘｐｌｏｉｔコードとから破棄すべき受信パケットを決める場合には、シグニチャは、少なくともｅｘｐｌｏｉｔコードとプロトコル番号と送信先ポート番号のいずれか一方とを含んでいればよい。
【０１７７】
メッセージ送信の実装例
機器１２０におけるユーザへの通知メッセージの送信方法の具体例を以下に示す。
【０１７８】
（１）ユーザ・データベース２８５は、連絡先としてその機器の所有者の電子メール・アドレスを保持しておく。
（２）ユーザ通知部２８０は、ユーザの電子メール・アドレスをユーザ・データベース２８５から検索する。
（３）ユーザ通知部２８０は、シグニチャに含まれる情報から、どのアプリケーションがどのような攻撃を受けたかを電子メールの本文に記載し、必要ならばユーザ・データベース２８５にあるユーザの鍵情報を利用して電子メールに暗号化や電子署名を施した後に送信する。
【０１７９】
配信サーバ１３０における開発者への通知メッセージ送信方法の具体例を以下に示す。
【０１８０】
（１）課金データベース３２０は、連絡先として開発者の電子メール・アドレスを保持しておく。
（２）処理部３１０は、新たな手法の攻撃を受けたプロセスの開発者の電子メール・アドレスを課金データベース３２０から検索する。
（３）処理部３１０は、セキュリティ・ホールの情報として、新たな手法の攻撃の特徴パターンを含むシグニチャを電子メールの本文に記載し、必要ならば課金データベース３２０にある開発者の鍵情報を利用して電子メールに暗号化や電子署名を施した後に送信する。
（４）処理部３１０は、開発者にメッセージを送信する毎に課金データベース３２０に課金情報を記録し、情報の対価として開発者に対して料金を請求する。
【０１８１】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１８２】
【発明の効果】
以上詳記したように、本発明によれば、コンピュータ・ウィルスなどのネットワーク接続された機器への攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【０１８３】
また、本発明によれば、アプリケーション毎に固有のセキュリティ・ホールへの攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【０１８４】
また、本発明によれば、アプリケーションに対する未知の攻撃に自動的に対応することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【０１８５】
本発明に係るネットワーク・セキュリティ・システムによれば、新たな手法の攻撃に対しても即座に自動的に防御することができるので、セキュリティ・メンテナンス・コストを大幅に削減することができる。特に、出荷後の製品の安全性を確保する上で有効に機能する。
【０１８６】
また、本発明に係るネットワーク・セキュリティ・システムによれば、未知のセキュリティ・ホールが発見されると同時に開発者に通知することができるので、開発者は修正プログラムの開発に即座に取り掛かることができる。また、そのサービスを提供する事業者は、その対価として開発者に課金を行なうことができる。
【０１８７】
また、本発明に係るネットワーク・セキュリティ・システムによれば、攻撃に対して防御した際に、その事実を利用者に通知することができるので、利用者は安全であることを認識でき、安心して機器を利用することができる。
【図面の簡単な説明】
【図１】ソースコードを実行する際のスタックの動作を示した図である。
【図２】本発明を実装したネットワーク・セキュリティ・システムの構成を模式的に示した図である。
【図３】ネットワーク１１０上で動作する機器１２０の機能構成を模式的に示した図である。
【図４】ネットワーク１１０上で動作する配信サーバ１３０の機能構成を模式的に示した図である。
【図５】機器１２０の基本動作を示したフローチャートである。
【図６】機器１２０の基本動作を示したフローチャートである。
【図７】機器１２０の基本動作を示したフローチャートである。
【図８】配信サーバ１３０の基本動作を示したフローチャートである。
【図９】本発明の第２の実施形態に係る機器１２０−２の機能構成を模式的に示した図である。
【図１０】本発明の第２の実施形態に係る配信サーバ１３０−２の機能構成を模式的に示した図である。
【図１１】機器１２０−２の基本動作を示したフローチャートである。
【図１２】配信サーバ１３０−２の基本動作を示したフローチャートである。
【符号の説明】
１００…ネットワーク・セキュリティ・システム
１１０…ネットワーク
１２０…機器，１３０…配信サーバ，１４０…ＡＰサーバ
２０５…ネットワーク・インターフェース部
２１０…パケット・フィルタ部
２１５…シグニチャ・データベース
２２０…パケット・コピー部
２２５…パケット・データベース
２３０…パケット振り分け部
２３５…シグニチャ受信部
２４０…受信用鍵データベース
２４５…シグニチャ登録部
２５０…プロセス
２５５…攻撃検出部
２６０…パケット選択部
２６５…シグニチャ生成部
２７０…シグニチャ送信部
２７５…送信用鍵データベース
２８０…ユーザ通知部
２８５…ユーザ・データベース
３０５…ネットワーク・インターフェース部
３１０…処理部
３１５…鍵データベース
３２０…課金データベース
【図１】
2004054470.tif 000004
【図２】
2004054470.tif 000005
【図３】
2004054470.tif 000006
【図４】
2004054470.tif 000007
【図５】
2004054470.tif 000008
【図６】
2004054470.tif 000009
【図７】
2004054470.tif 000010
【図８】
2004054470.tif 000011
【図９】
2004054470.tif 000012
【図１０】
2004054470.tif 000013
【図１１】
2004054470.tif 000014
【図１２】
2004054470.tif 000015