JP2004054470A - ネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム - Google Patents
ネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2004054470A JP2004054470A JP2002209233A JP2002209233A JP2004054470A JP 2004054470 A JP2004054470 A JP 2004054470A JP 2002209233 A JP2002209233 A JP 2002209233A JP 2002209233 A JP2002209233 A JP 2002209233A JP 2004054470 A JP2004054470 A JP 2004054470A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- attack
- packet
- network
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
【解決手段】ネットワークに接続された情報処理装置は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部を備える。フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他のホストに配布することにより、他のホストではその未知の攻撃が既知の攻撃として登録され、その攻撃をフィルタリングして防御することができる。攻撃は、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【選択図】 図2
Description
【発明の属する技術分野】
本発明は、機器への攻撃に対処する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、コンピュータ・ウィルスなどのネットワーク接続された機器への攻撃に対処するネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、アプリケーション毎に固有のセキュリティ・ホールへの攻撃に対処するネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、アプリケーションに対する未知の攻撃に自動的に対応するネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【0003】
【従来の技術】
昨今、情報処理や情報通信などのコンピューティング技術が飛躍的に向上し、コンピュータ・システムが広汎に普及してきている。さらに、コンピュータどうしを相互接続するネットワーク・コンピューティング技術に対する要望も高まってきている。ネットワーク接続環境下では、コンピュータ資源の共有や、情報の共有・流通・配布・交換などの協働的作業を円滑に行なうことができる。
【0004】
コンピュータどうしを相互接続するネットワークの形態はさまざまである。例えば、イーサネット(Ethernet)(登録商標)のような局所に敷設されたLAN(Local Area Network)や、さらには、ネットワークどうしの相互接続を繰り返し行った結果として文字通り世界規模のネットワークへ成長を遂げた「インターネット」(The Internet)などさまざまである。
【0005】
インターネットは、各大学や研究機関などに設置されたサーバが自主的に相互接続を繰り返した結果、巨大ネットワークへと成長するに至った、字義通り、ネットワークのネットワークである。現在、インターネット上には無数のサーバが接続されており、各サーバは、各種の資源オブジェクトを無数のクライアントに公開している。インターネット上のサーバ同士は、通常、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って相互接続されている。
【0006】
インターネット上では、WWW(World Wide Web)、News、TELNET(TELetypewriter NETwork)、FTP(File Transfer Protocol)、Gopherなど、多数のサービスが公開されている。このうちWWWは、ハイパーリンク構造の情報空間を提供する広域情報検索システムであり、インターネットの爆発的な成長や急速な普及を遂げる最大の要因ともなっている。WWWシステム上では、テキスト、画像、音声などの各種メディアのコンテンツをハイテキスト形式で閲覧することができる。WWW上で扱われるハイパーテキスト情報は、HTML(Hyper Text Markup Language)と呼ばれるハイパーテキスト形式の記述言語で記述される。TCP/IPに従えば、これらHTMLドキュメントを始めとする各種の情報資源は、URL(Uniform Resource Locator)という形式の識別子によって特定され、HTTP(Hyper Text Transfer Protocol)プロトコルに従って転送することができる(周知)。そして、クライアント側では、WWWブラウザを用いてHTMLコンテンツをダウンロードして、画面上にホームページとして表示させることができる。
【0007】
最近では、電話回線(ADSL(Asymmetric Digital Subscriber Line)など)やケーブル・テレビなどの高速なネットワーク回線の敷設に伴い、常時接続環境の充実してきている。また、今後普及が見込まれるIPv6により、数多くの機器がインターネットに接続されることが予想される。
【0008】
しかしながら、このような広域ネットワークの普及と同時に、安全性に対する不安も生じている。何故ならば、ネットワークを介することで知らないうちに機器に不正にアクセスされ、システム内のデータを不正に模倣・盗用、改ざんしたり、ウィルス感染などによりシステムを使用不能にしたりするなど、人手を介さずに攻撃を受ける可能性があるからである。このため、インターネットの利用者は、いくつかのセキュリティ対策を講じなければならない。
【0009】
現在報告されているセキュリティ関連の問題のうち、最も多いものの1つとして「バッファ・オーバーフロー」を利用したものを挙げることができる。
【0010】
ここで、バッファ・オーバーフローとは、スタックの構造とC言語での配列の境界チェックの欠如に起因する。スタックとは、LIFO(Last In Fisrt Out)と呼ばれる最後に置かれたオブジェクトが最初に取り除かれるという性質を持つ抽象データ型であり、スタック・ポインタ(SP)、及びスタック・フレーム、フレーム・ポインタ(FP)から構成される。スタック・ポインタは、スタックの先頭を指す。スタック・フレームは、関数の引数、ローカル変数、以前のスタック・フレームを復元するために必要なデータ(関数呼び出し時のインストラクション・ポインタなど)を含む。フレーム・ポインタは、ローカル変数を参照するための相対値として利用される。
【0011】
例として、以下に示すようなソースコードを実行する際のスタックの動作について、図1を参照しながら説明する。
【0012】
【数1】
【0013】
関数呼び出し時には、以下の動作が行なわれる。
【0014】
(1)関数の引数がスタックに積まれる(図1に示す例ではc、b、a)。
(2)戻りアドレスがスタックに積まれる(図1に示す例ではret)。
(3)現在のFPがスタックに積まれ、保存される(図1に示す例ではsfp)。
(4)新しいFPとして現在のSPがFPにコピーされる。
(5)ローカル変数のための領域(図1ではbuf)を確保するためにSPを進める。図1はこの時点でのスタックの構成を示している。
【0015】
また、関数戻り時には、以下の動作が行なわれる。
【0016】
(1)現在のFPがSPにコピーされる。
(2)保存されていた以前のFP(図1に示す例ではsfp)がFPにコピーされる。
(3)戻りアドレス(図1に示す例ではret)にジャンプする。
【0017】
次に、バッファ・オーバーフローを利用した攻撃である「スタック・スマッシング」攻撃について、図1を例に説明する。
【0018】
ローカル変数としての配列であるbufに、割り当てられている以上のデータを入力した場合、sfp、ret、a、b、c以降が上書きされる。この際、メモリ上に置かれた悪意を持ったコードのアドレスではretを上書きすると、関数戻り時にそのアドレスへジャンプし、そのコードが実行される。UNIXでは、多くのデーモン・プロセス(メモリに常駐してさまざまなサービスを提供するプログラム)がroot権限で実行されており、例えば悪意を持ったコードとして”exec(/bin/sh)”を利用し、デーモン・プロセスに対してスタック・スマッシング攻撃を行なうことにより、そのホストでのroot権限を獲得することができる。
【0019】
スタック・スマッシング攻撃を防ぐ従来技術としては、例えばStackGuard(Crispin Cowan他著の論文”Automatic Adaptive Detection and Prevention of Buffer−Overflow Attacks”(in the 7th USENIX Security Symposium, 1998)を参照のこと)が報告されている。このStackGuardでは、戻りアドレスとローカル変数の間に”Canary Word”と呼ばれる値を挿入しておく。関数戻り時にこの値をチェックし、値が変更されていた場合にはスタック・スマッシング攻撃が行なわれたものとして、プロセスを終了させる。
【0020】
また、特開2001−216161号公報には、スタック上のバッファ・オーバーフローを原因とするスタック・スマッシング攻撃を防止する方法について開示されている。同公報に記載の方法によれば、関数のリターン処理において、スタックのプレヴィアス・フレーム・ポインタと配列との間に格納されたガード変数の有効性を確認することにより、スタック上のバッファ・オーバーフローを原因とするスタック・スマッシング攻撃に関しては、ネットワーク経由での攻撃及びローカル・ユーザからの攻撃のいずれに対しても防止することができる。
【0021】
また、ネットワーク・セキュリティを確保する別の従来技術として、「パケット・フィルタ」が挙げられる。パケット・フィルタは、パケットの送信元アドレス、送信先アドレス、送信元ポート、送信先ポート、並びにプロトコルという5つの組をチェックして、あらかじめ記述されたルールに則ってパケットの通過の許可又は禁止を決定する。
【0022】
また、この5つの組だけでなく、「シグニチャ」と呼ばれる、アプリケーションに対する攻撃の特徴パターンを保持しておき、そのパターンに一致するパケットの通過を禁止するものもある。
【0023】
しかしながら、上記のStackGuardや特開2001−216161号公報で開示されている技術は、ネットワークを介した機器に対する特定の攻撃を検出することはできるが、検出後は該当するプロセスを終了させるだけであり、それ以降の対策に関しては特に考慮されていない。
【0024】
また、パケット・フィルタリングの場合、あらかじめルールやシグニチャを記述する必要があり、新たな手法の攻撃が出現する度に管理者がルールを追加しなければならない。これは、新たな手法の攻撃は実際に攻撃されないと発覚しないという事実に起因する問題である。
【0025】
また、特開平9−218837号公報(特許第3165366号公報)には、内部状態を監視して異常の発生が検出されたときに、ネットワークに接続された他の計算機へ検出された異常の種別を通知するとともに、他の計算機からの異常の種別の通知を受信するように構成されたネットワーク・セキュリティ・システムについて開示されている。しかしながら、同公報に記載のネットワーク・セキュリティ・システムによれば、あらかじめ登録しておいた状態から外れる場合にはその異常状態を通知するが、登録された状態に収まる範囲での未知の攻撃には対処することができない。
【0026】
また、特開平11−167487号公報には、あらかじめ格納されているウィルス・パターンに基づいてパケットが感染パケットかどうかのウィルス・チェックをネットワーク側で行なうウィルス・チェック・ネットワークについて開示されている。しかしながら、同公報に記載のウィルス・チェック・ネットワークが目的とするのはウィルス検知だけである。また、ウィルス・パターン情報管理手段に登録されるパターンは既知のものでなければならず、未知のウィルスについての対処方法や自動登録の方法に関しては開示されていない。さらに、ウィルス管理情報局から配布されるウィルス情報は、ウィルス・チェック装置にとっては未知であるがウィルス情報管理局にとっては既知であり、ウィルス情報管理局に未知のパターンを登録する手順については開示されていない。
【0027】
また、特開平11−134190号公報には、電子メールなどのネットワーク上をマシンからマシンへと転送される各種のデータにウィルスが感染した場合にそれを検出するとともに、ウィルス感染が検出されたとき、自動的に所定のものに対してウィルス感染を通知してウィルスの感染を防止するウィルス検出通知システムについて開示されている。しかしながら、同公報に記載のウィルス検出通知システムは、ウィルス・チェックによる検出結果を配布することを目的とするものであり、言い換えれば、配布される情報は検出結果のみであり、未知の攻撃パターンが配布されることはない。
【0028】
【発明が解決しようとする課題】
本発明の目的は、コンピュータ・ウィルスなどのネットワーク接続された機器への攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【0029】
本発明のさらなる目的は、アプリケーション毎に固有のセキュリティ・ホールへの攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【0030】
本発明のさらなる目的は、アプリケーションに対する未知の攻撃に自動的に対応することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【0031】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、ネットワークに接続された機器への攻撃に対処するネットワーク・セキュリティ・システムであって、
ネットワークに接続された機器は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部とを備え、フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他の機器に配布し、他の機器ではその未知の攻撃が既知の攻撃として登録され該攻撃をフィルタリングして防御する、
ことを特徴とするネットワーク・セキュリティ・システムである。
【0032】
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【0033】
本発明の第1の側面に係るネットワーク・セキュリティ・システムによれば、ネットワークに接続された各情報処理装置は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部を備えている。
【0034】
フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他のホストに配布することにより、他のホストではその未知の攻撃が既知の攻撃として登録され、その攻撃をフィルタリングして防御することができる。
【0035】
ここで、ネットワーク経由で情報処理装置が被る攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【0036】
また、本発明の第2の側面は、ネットワーク経由で行なわれる攻撃に対処する情報処理装置又は情報処理方法であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部又はステップと、
受信パケットを処理するプロセス実行部又はステップと、
プロセスに対する攻撃を検出する攻撃検出部又はステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成部又はステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信部又はステップと、
を具備することを特徴とする情報処理装置又は情報処理方法である。
【0037】
本発明の第2の側面に係る情報処理装置又は情報処理方法は、
アプリケーションに対する攻撃の特徴パターンからなるシグニチャを保持するシグニチャ・データベースに登録されているシグニチャに基づいて受信パケットのフィルタリングを行なうパケット・フィルタリング部又はステップと、
受信パケットから未知の攻撃に関するシグニチャを取り出して前記シグニチャ・データベースに登録するシグニチャ登録部又はステップと、
をさらに備えていてもよい。
【0038】
したがって、本発明の第2の側面に係る情報処理装置又は情報処理方法によれば、実行中のプロセスがフィルタリングされずに通過した未知の攻撃パターンを受けた場合、そのプロセスが攻撃されたという事実から攻撃パターンを生成し他のホストに配布することができる。そして、ネットワーク上の他の情報処理装置では、攻撃パターンの配布を受けて、その未知の攻撃が既知の攻撃として登録して、その攻撃をフィルタリングして防御することができる。
【0039】
ここで、ネットワーク経由で情報処理装置が被る攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【0040】
また、前記シグニチャ生成部又はステップは、少なくとも攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンを含む前記シグニチャを生成する。あるいは、受信パケットから送信ポート番号、プロトコル番号を取り出して、攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンとともにまとめてシグニチャとするようにしてもよい。
【0041】
また、前記パケット・フィルタリング部又はステップは、受信パケットのプロトコル番号、送信先ポート番号、アプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄するようにしてもよい。
【0042】
また、どのような攻撃に対して防御したかを伝えるためのメッセージを作成して他のユーザに送信するユーザ通知部又はステップをさらに備えていてもよい。このような場合、攻撃に対して防御した際に、その事実を利用者に通知することができるので、利用者は安全であることを認識でき、安心して機器を利用することができる。
【0043】
また、本発明の第3の側面は、ネットワーク経由で行なわれる攻撃に対処する情報処理装置又は情報処理方法であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部又はステップと、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理部又はステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理部又はステップと、
を具備することを特徴とする情報処理装置又は情報処理方法である。
【0044】
したがって、本発明の第3の側面に係る情報処理装置又は情報処理方法によれば、ネットワーク上のある機器において実行中のプロセスがフィルタリングされずに通過した未知の攻撃パターンを受けた場合、そのプロセスが攻撃されたという事実に基づいて生成された攻撃パターンをその機器から受け取るとともに、ネットワーク上の他の機器に配布することができる。そして、ネットワーク上の他の機器では、攻撃パターンの配布を受けて、その未知の攻撃が既知の攻撃として登録して、その攻撃をフィルタリングして防御することができる。
【0045】
本発明の第3の側面に係る情報処理装置又は情報処理方法は、受信したシグニチャに関連するアプリケーションの開発元に攻撃内容を通知する通知手段又はステップと、攻撃内容の通知に応じて開発元に対する課金処理を行なう課金手段又はステップとをさらに備えていてもよい。
【0046】
このような場合、あるアプリケーションに関する未知のセキュリティ・ホールがネットワーク上のある機器において発見されると、アプリケーションの開発者に即座に通知することができる。この結果、開発者は修正プログラムの開発に即座に取り掛かることができる。また、そのサービスを提供する事業者は、その対価として開発者に課金を行なうことができる。
【0047】
また、本発明の第4の側面は、ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記ネットワーク経由でパケットを受信するステップ、
受信パケットを処理するプロセス実行ステップと、
プロセスに対する攻撃を検出する攻撃検出ステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成ステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【0048】
また、本発明の第5の側面は、ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理ステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【0049】
本発明の第4及び第5の各側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、第4及び第5の各側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第2及び第3の各側面に係る情報処理装置又は情報処理方法のそれぞれと同様の作用効果を得ることができる。
【0050】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0051】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0052】
図2には、本発明を実装したネットワーク・セキュリティ・システム100の構成を模式的に示している。
【0053】
ネットワーク110は、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコル群で構築されるインターネットや、電話網、あるいはその他の広域的な通信回線で構成される。
【0054】
機器120は、例えば、クライアントに相当するアプリケーションなどのプログラムを起動して動作するコンピュータで構成される。図示の例では、各機器120は、ネットワーク・インターフェース(図示しない)などによりネットワーク110に接続されており、他の機器120や、配信サーバ130と通信することができる。
【0055】
配信サーバ130は、例えば配信サーバ・アプリケーションを起動して動作するコンピュータで構成され、ネットワーク110に接続されて、各機器120と通信することができる。
【0056】
APサーバ140は、例えば所定のサーバ・アプリケーションを起動して動作するコンピュータで構成され、ネットワーク110に接続されて、各機器120にさまざまなアプリケーション(AP)を提供する。各機器120側では、APサーバ140が提供するアプリケーションのプログラム・ファイルをダウンロードし、システムにインストールすることによって、プロセスを起動することができる。APサーバ140が提供するアプリケーションの一部は固有のセキュリティ・ホールを含んでおり、プロセス実行時の攻撃対象となる。
【0057】
後述するように、ネットワーク110上の各機器120は、ネットワーク110経由で起動中のプロセスに対する攻撃を受けると、その攻撃されたという事実から攻撃パターンを生成して、配信サーバ130などネットワーク110上の他のホストに通知する。配信サーバ130は、ネットワーク110上の他の機器120に攻撃パターンを配布する。そして、他の機器120では、配布された未知の攻撃を既知の攻撃として登録することにより、以後その攻撃をフィルタリングして防御することができる。
【0058】
ここで、ネットワーク110経由で機器120が被る攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【0059】
また、APサーバ140は、アプリケーションの開発者又は開発者から委託を受けた事業者によって運営されている。配信サーバ130は、ネットワーク110上の機器から通知された攻撃パターンを該当するアプリケーションの開発者に通知するようにしてもよい。これによって、開発者はアプリケーションに内包されるセキュリティ・ホールを逐次修正して、バージョンの向上を図ることができる。また、配信サーバ130は、開発者に対する攻撃パターンの通知サービスを有料で行なうようにしてもよい。
【0060】
図3には、ネットワーク110上で動作する機器120の機能構成を模式的に示している。機器120は、例えば、一般的なコンピュータ上でコンピュータ・プログラムを起動するという形態で実現される。
【0061】
ネットワーク・インターフェース部205は、例えば物理媒体や無線媒体を介してネットワーク110に接続するデバイスであり、パケット・フィルタ部210と、シグニチャ送信部270に接続され、ネットワーク110を介した通信を行なう。
【0062】
パケット・フィルタ部210は、例えばコンピュータ・プログラムとして実装され、ネットワーク・インターフェース部205と、シグニチャ・データベース215と、パケット・コピー部220に接続され、受信パケットのフィルタリングを行なう。
【0063】
シグニチャ・データベース215は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・フィルタ部210と、シグニチャ登録部245に接続され、パケット・フィルタリングのための情報(シグニチャ)を保持する。シグニチャは、アプリケーションに対する攻撃の特徴パターンからなる。
【0064】
パケット・コピー部220は、例えばコンピュータ・プログラムによって実装され、パケット・フィルタ部210と、パケット・データベース225と、パケット振り分け部230に接続され、受信パケットのコピーを行なう。
【0065】
パケット・データベース225は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・コピー部220と、パケット選択部260に接続され、受信したパケットのコピーを保持する。
【0066】
パケット振り分け部230は、例えばコンピュータ・プログラムによって実装され、パケット・コピー部220と、シグニチャ受信部235と、プロセス250に接続され、受信パケットの振り分けを行なう。
【0067】
シグニチャ受信部235は、例えばコンピュータ・プログラムで実装され、パケット振り分け部230と、受信用鍵データベース240と、シグニチャ登録部245に接続され、受信パケットの正当性を検証し、受信パケットからシグニチャを取り出す。
【0068】
受信用鍵データベース240は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ受信部235に接続され、受信パケットの正当性を検証するための鍵情報を保持する。
【0069】
シグニチャ登録部245は、例えばコンピュータ・プログラムで構成され、シグニチャ・データベース215と、シグニチャ受信部235に接続され、受信したシグニチャを登録する。
【0070】
プロセス250は、例えばコンピュータ・プログラムによって実装され、パケット振り分け部230と、攻撃検出部255に接続され、通常のアプリケーションとして動作して、受信パケットの処理を行なう。
【0071】
攻撃検出部255は、例えばコンピュータ・プログラムによって実装され、プロセス250と、パケット選択部260に接続され、機器120上で起動中のプロセス250への攻撃を検出する。
【0072】
ここで言う攻撃には、ウィルスだけでなく、バッファ・オーバーフローを起こすバイナリ・データからなるパケットも含まれる。
【0073】
パケット選択部260は、例えばコンピュータ・プログラムによって実装され、パケット・データベース225と、攻撃検出部255と、シグニチャ生成部265に接続され、パケット・データベース225から攻撃に結び付いたパケット(以下、これを「exploitパケット」と呼ぶ)を検索する。
【0074】
シグニチャ生成部265は、例えばコンピュータ・プログラムによって実装され、パケット選択部260と、シグニチャ送信部270に接続され、未知のexploitパケットからパケット・フィルタ用のシグニチャを生成する。
【0075】
シグニチャ送信部270は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部205と、シグニチャ生成部265と、送信用鍵データベース275に接続され、送信シグニチャの正当性を証明するための情報を付加して送信する。
【0076】
送信用鍵データベース275は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ送信部270に接続され、送信シグニチャの正当性を証明するための鍵情報を保持する。
【0077】
なお、機器120を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置(図示しない)に格納され、コンピュータ上のCPU(Central Processing Unit)が適宜読み出して実行するようになっている。
【0078】
また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク110を介して上記の記憶装置に複製(ダウンロード)したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる。
【0079】
図4には、ネットワーク110上で動作する配信サーバ130の機能構成を模式的に示している。配信サーバ130は、例えば、一般的なコンピュータ上で所定のコンピュータ・プログラムを起動するという形態で実現される。
【0080】
ネットワーク・インターフェース部305は、例えば物理媒体や無線媒体を介してネットワーク110に接続するデバイスであり、処理部310に接続され、ネットワーク110を介した通信を行なう。
【0081】
処理部310は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部305と、鍵データベース315に接続され、配信サーバ130全体の動作を司る。
【0082】
鍵データベース315は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、処理部310に接続され、送受信パケットの正当性を証明、検証するための鍵情報を保持する。
【0083】
なお、配信サーバ130を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置(図示しない)に格納され、コンピュータ上のCPU(Central Processing Unit)が適宜読み出して実行するようになっている。また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク110を介して上記の記憶装置に複製(ダウンロード)したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる(同上)。
【0084】
次いで、本実施形態に係るネットワーク・セキュリティ・システム100におけるセキュリティ動作について説明する。
【0085】
図5〜図7には、本実施形態に係る機器120の基本動作をフローチャートの形式で示している。
【0086】
ネットワーク・インターフェース部205は、ネットワーク110経由でパケット(以下、「受信パケット」とする)を受信すると(ステップS1)、これをパケット・フィルタ部210に渡す。
【0087】
パケット・フィルタ部210は、受信パケットに合致するシグニチャをシグニチャ・データベース215から検索する(ステップS2)。
【0088】
データベース検索の結果、合致するシグニチャが発見された場合には(ステップS3)、受信パケットは既知のexploitパケットであると判断されるので、ステップS4に進んで、パケット・フィルタ部210fこの受信パケットを破棄する。その後、ステップS1に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0089】
一方、合致するシグニチャが発見されなかった場合には、受信パケットは既知のexploitパケットではないと判断されるので、ステップS5に進んで、受信パケットをパケット・コピー部220に渡す。
【0090】
パケット・コピー部220は、受信パケットのコピーをパケット・データベース225に一定期間保存し(ステップS6)、受信パケットをパケット振り分け部230に渡す。
【0091】
パケット振り分け部230は、受信パケットの種類に応じてパケットを振り分ける(ステップS7)。そして、受信パケットがシグニチャを含むパケットである場合にはステップS10に進み、そうでない場合にはステップS8に進む。
【0092】
ステップS8では、パケット振り分け部230は受信パケットがプロセス250宛のものであるかどうかを判断する。受信パケットがプロセス250宛てであればステップS15に進み、そうでない場合にはステップS9に進む。
【0093】
ステップS9では、受信パケットは振り分けられなかったので、パケット振り分け部230は、あて先が間違っているとしてこの受信パケットを破棄する。そして、ステップS1に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0094】
ステップS7において受信パケットがシグニチャを含むと判断された場合、シグニチャ受信部235は、受信用鍵データベース240に格納されている鍵を利用して、受信パケットに施されている電子署名を検証する(ステップS10)。また、受信パケットが暗号化されている場合には、受信用鍵データベース240に格納されている鍵を利用して受信パケットの復号化を行なう。
【0095】
続くステップS11では、この電子署名の検証に成功したかどうかを判断する。受信パケットの検証並びに復号化に成功した場合にはステップS13に進み、失敗した場合にはステップS12に進む。
【0096】
受信パケットの検証又はその復号化に失敗した場合には、この受信パケットは不正なパケットであると判断されるので、シグニチャ受信部235は、受信パケットを破棄する(ステップS12)。その後、ステップS1に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0097】
一方、受信パケットの検証及びその復号化に成功した場合には、シグニチャ受信部235は、この受信パケットからシグニチャを取り出して(ステップS13)、シグニチャ登録部245に渡す。シグニチャ登録部245は、受け取ったシグニチャをシグニチャ・データベース215に登録する(ステップS14)。その後、ステップS1に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0098】
ステップS8において受信パケットがプロセス宛であると判断された場合には、パケット振り分け部230から渡された受信パケットは、プロセス250に対する入力として与えられる(ステップS15)。
【0099】
そして、受信パケットが未知のexploitパケットであった場合には、プロセス250が攻撃を受け、攻撃検出部255がこの攻撃を検出する(ステップS16)。攻撃が検出された場合にはステップS18に進み、検出されなかった場合にはステップS17に進む。
【0100】
攻撃検出部255がプロセス250への攻撃を検出しなかった場合には、プロセス250は受信パケットを処理する(ステップS17)。その後、ステップS1に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0101】
一方、攻撃検出部255はプロセス250への攻撃を検出した場合には、攻撃検出部255は攻撃を受けたプロセス250を終了させるとともに(ステップS18)、攻撃に結び付いたコード(以下、「exploitコード」とする)をパケット選択部260に渡す(ステップS19)。
【0102】
パケット選択部260は、exploitコードに対応する受信パケットをパケット・データベース225から検索して(ステップS20)、exploitコードと受信パケットをシグニチャ生成部265に渡す。
【0103】
シグニチャ生成部265は、exploitコードと受信パケットから、パケット・フィルタ部210により利用されるシグニチャを生成して(ステップS21)、シグニチャ送信部270に渡す。
【0104】
シグニチャ送信部270は、送信用鍵データベース275に格納されている鍵を利用して送信シグニチャに電子署名を施す(ステップS22)。また、送信シグニチャを暗号化する必要がある場合には、送信用鍵データベース275に格納されている鍵を利用して送信シグニチャの暗号化を行なう。その後、送信シグニチャをネットワーク・インターフェース部205に渡す。
【0105】
ネットワーク・インターフェース部205は、送信シグニチャを送信する(ステップS23)。その後、ステップS1に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0106】
図8には、本実施形態に係る配信サーバ130の基本動作をフローチャートの形式で示している。
【0107】
ネットワーク・インターフェース部305は、ネットワーク110上のある機器120からシグニチャを受信すると(以下、「受信シグニチャ」とする)、これを処理部310に渡す(ステップS31)。
【0108】
処理部310は、鍵データベース315に格納されている鍵を利用して、受信シグニチャに施されている電子署名を検証する(ステップS32)。また、受信シグニチャが暗号化されている場合には、鍵データベース315に格納されている鍵を利用して、受信シグニチャの復号化を行なう。
【0109】
次いで、受信シグニチャの検証並びに復号化に成功したかどうかを判断する(ステップS33)。
【0110】
受信シグニチャの検証又は復号化に失敗した場合には、この受信パケットは不正なパケットと判断されるので、処理部310は受信パケットを破棄する(ステップS34)。その後、ステップS31に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0111】
一方、受信シグニチャの検証及び復号化に成功した場合には、処理部310は、鍵データベース315に格納されている鍵を利用して、送信シグニチャに電子署名を施す(ステップS35)。また、送信シグニチャを暗号化する必要がある場合には、鍵データベース315に格納されている鍵を利用して、送信シグニチャを暗号化する。
【0112】
そして、ネットワーク・インターフェース部305は、送信シグニチャをネットワーク110上の各機器120に送信する(ステップS36)。その後、ステップS31に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0113】
次いで、本発明の第2の実施形態について説明する。
【0114】
図9には、本発明の第2の実施形態に係る機器120−2の機能構成を模式的に示している。機器120−2は、例えば、一般的なコンピュータ上でコンピュータ・プログラムを起動するという形態で実現される。
【0115】
ネットワーク・インターフェース部205は、例えば物理媒体や無線媒体を介してネットワーク110に接続するデバイスであり、パケット・フィルタ部210と、シグニチャ送信部270と、ユーザ通知部280に接続され、ネットワーク110を介した通信を行なう。
【0116】
パケット・フィルタ部210は、例えばコンピュータ・プログラムとして実装され、ネットワーク・インターフェース部205と、シグニチャ・データベース215と、パケット・コピー部220と、ユーザ通知部280に接続され、受信パケットのフィルタリングを行なう。
【0117】
シグニチャ・データベース215は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・フィルタ部210と、シグニチャ登録部245に接続され、パケット・フィルタリングのための情報(シグニチャ)を保持する。
【0118】
パケット・コピー部220は、例えばコンピュータ・プログラムによって実装され、パケット・フィルタ部210と、パケット・データベース225と、パケット振り分け部230に接続され、受信パケットのコピーを行なう。
【0119】
パケット・データベース225は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、パケット・コピー部220と、パケット選択部260に接続され、受信したパケットのコピーを保持する。
【0120】
パケット振り分け部230は、例えばコンピュータ・プログラムによって実装され、パケット・コピー部220と、シグニチャ受信部235と、プロセス250に接続され、受信パケットの振り分けを行なう。
【0121】
シグニチャ受信部235は、例えばコンピュータ・プログラムで実装され、パケット振り分け部230と、受信用鍵データベース240と、シグニチャ登録部245に接続され、受信パケットの正当性を検証し、受信パケットからシグニチャを取り出す。
【0122】
受信用鍵データベース240は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ受信部235に接続され、受信パケットの正当性を検証するための鍵情報を保持する。
【0123】
シグニチャ登録部245は、例えばコンピュータ・プログラムで構成され、シグニチャ・データベース215と、シグニチャ受信部235に接続され、受信したシグニチャを登録する。
【0124】
プロセス250は、例えばコンピュータ・プログラムによって実装され、パケット振り分け部230と、攻撃検出部255に接続され、通常のアプリケーションとして動作して、受信パケットの処理を行なう。
【0125】
攻撃検出部255は、例えばコンピュータ・プログラムによって実装され、プロセス250と、パケット選択部260に接続され、機器120上で起動中のプロセス250への攻撃を検出する。
【0126】
パケット選択部260は、例えばコンピュータ・プログラムによって実装され、パケット・データベース225と、攻撃検出部255と、シグニチャ生成部265に接続され、パケット・データベース225から攻撃に結び付いたexploitパケットを検索する。
【0127】
シグニチャ生成部265は、例えばコンピュータ・プログラムによって実装され、パケット選択部260と、シグニチャ送信部270に接続され、未知のexploitパケットからパケット・フィルタ用のシグニチャを生成する。
【0128】
シグニチャ送信部270は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部205と、シグニチャ生成部265と、送信用鍵データベース275に接続され、送信シグニチャの正当性を証明するための情報を付加して送信する。
【0129】
送信用鍵データベース275は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、シグニチャ送信部270に接続され、送信シグニチャの正当性を証明するための鍵情報を保持する。
【0130】
ユーザ通知部280は、例えばコンピュータ・プログラムで構成され、ネットワーク・インターフェース部205と、パケット・フィルタ部210と、ユーザ・データベース285に接続され、ユーザへの通知を行なう。
【0131】
ユーザ・データベース285は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、ユーザ通知部280に接続され、ユーザ情報を保持する。
【0132】
なお、機器120−2を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置(図示しない)に格納され、コンピュータ上のCPU(Central Processing Unit)が適宜読み出して実行するようになっている。また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク110を介して上記の記憶装置に複製(ダウンロード)したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる(同上)。
【0133】
図10には、本発明の第2の実施形態に係る配信サーバ130−2の機能構成を模式的に示している。配信サーバ130−2は、例えば、一般的なコンピュータ上で所定のコンピュータ・プログラムを起動するという形態で実現される。
【0134】
ネットワーク・インターフェース部305は、例えば物理媒体や無線媒体を介してネットワーク110に接続するデバイスであり、処理部310に接続され、ネットワーク110を介した通信を行なう。
【0135】
処理部310は、例えばコンピュータ・プログラムによって実装され、ネットワーク・インターフェース部305と、鍵データベース315と、課金データベース320に接続され、配信サーバ130全体の動作を司る。
【0136】
鍵データベース315は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、処理部310に接続され、送受信パケットの正当性を証明、検証するための鍵情報を保持する。
【0137】
課金データベース320は、例えばメモリやハード・ディスク装置などの記憶媒体で構成され、処理部310に接続され、課金情報を保持する。
【0138】
なお、配信サーバ130−2を構成する上記の各機能モジュールを実装するためのコンピュータ・プログラムは、通常、メモリやハード・ディスク装置などのコンピュータ上の記憶装置(図示しない)に格納され、コンピュータ上のCPU(Central Processing Unit)が適宜読み出して実行するようになっている。また、コンピュータ・プログラムは、コンピュータが読み取り可能な可搬性の記憶媒体に記録されてマシン間を移動したり、あるいはネットワーク110を介して上記の記憶装置に複製(ダウンロード)したりするようにしてもよい。あるいは、専用の集積回路によりコンピュータ・プログラムが規定する処理動作を実行するように構成することもできる(同上)。
【0139】
次いで、本実施形態に係るネットワーク・セキュリティ・システム100におけるセキュリティ動作について説明する。
【0140】
図11には、本実施形態に係る機器120−2の基本動作をフローチャートの形式で示している。同図は、図5に示した本発明の第1の実施例に係る基本動作に置き換わるものである。
【0141】
ネットワーク・インターフェース部205は、ネットワーク110経由でパケットを受信すると(ステップS1)、この受信パケットをパケット・フィルタ部210に渡す。
【0142】
パケット・フィルタ部210は、受信パケットに合致するシグニチャをシグニチャ・データベース215から検索する(ステップS2)。
【0143】
データベース検索の結果、合致するシグニチャが発見された場合には(ステップS3)、受信パケットは既知のexploitパケットであると判断されるので、ステップS4に進んで、パケット・フィルタ部210はこの受信パケットを破棄する。そして、パケット・フィルタ部210は、ユーザ通知部280にシグニチャを渡す(ステップS4−1)。
【0144】
ユーザ通知部280は、ユーザ・データベース285からユーザの連絡先を検索する(ステップS4−2)。さらに、ユーザ通知部280は、ユーザに対して、どのような攻撃に対して防御したかを伝えるためのメッセージを作成して、ネットワーク・インターフェース部205に渡す(ステップS4−3)。
【0145】
ネットワーク・インターフェース部205は、メッセージを送信する(ステップS4−4)。その後、ステップS1に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0146】
一方、合致するシグニチャが発見されなかった場合には、受信パケットは既知のexploitパケットではないと判断されるので、ステップS5に進んで、受信パケットをパケット・コピー部220に渡す(以下、上述と同様)。
【0147】
図12には、本実施形態に係る配信サーバ130−2の基本動作をフローチャートの形式で示している。同図は、図8に示した本発明の第1の実施例に係る基本動作に置き換わるものである。
【0148】
ネットワーク・インターフェース部305は、シグニチャを受信して、これを処理部310に渡す(ステップS31)。
【0149】
処理部310は、鍵データベース315に格納されている鍵を利用して、受信シグニチャに施されている電子署名を検証する(ステップS32)。また、受信シグニチャが暗号化されている場合には、鍵データベース315に格納されている鍵を利用して、受信シグニチャの復号化を行なう。
【0150】
次いで、受信シグニチャの検証並びに復号化に成功したかどうかを判断する(ステップS33)。
【0151】
受信シグニチャの検証又は復号化に失敗した場合には、この受信パケットは不正なパケットと判断されるので、処理部310は受信パケットを破棄する(ステップS34)。その後、ステップS31に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0152】
一方、受信シグニチャの検証及び復号化に成功した場合には、処理部310は、鍵データベース315に格納されている鍵を利用して、送信シグニチャに電子署名を施す(ステップS35)。また、送信シグニチャを暗号化する必要がある場合には、鍵データベース315に格納されている鍵を利用して、送信シグニチャを暗号化する。
【0153】
そして、ネットワーク・インターフェース部305は、送信シグニチャを送信する(ステップS36)。
【0154】
さらに、処理部310は、課金データベース320から開発者の連絡先を検索する(ステップS36−1)。開発者の連絡先の一例は、APサーバ140(図2を参照のこと)である。
【0155】
次いで、処理部310は、シグニチャの情報を基にどのような手法の攻撃が行なわれたかを伝えるためのメッセージを作成し(S36−2)、これをネットワーク・インターフェース305に渡す。
【0156】
次いで、ネットワーク・インターフェース305は、メッセージを送信する(ステップS36−3)。そして、処理を処理部310に戻す。
【0157】
処理部310は、課金データベース320に開発者の課金情報を記録する(ステップS36−4)。その後、ステップS31に復帰して、上述した受信パケットの処理を繰り返し実行する。
【0158】
続いて、各機能モジュール又はその動作手順の実装例について具体的に説明する。
【0159】
パケット・フィルタリングの実装例
機器120におけるパケット・フィルタ部210の動作の具体例を以下に示す。
【0160】
パケット・フィルタ部210は、まず、受信パケットのプロトコル番号(プロトコルの種別を示す)及び送信先ポート番号に合致するプロトコル番号及び送信先ポート番号を持つシグニチャがシグニチャ・データベース215に登録されているか否かを検索する。合致するシグニチャがあった場合には、さらにその受信パケットのアプリケーション・データ・フィールドとそのシグニチャのexploitコードのパターンを比較し、合致していた場合、その受信パケットを破棄する。例えば、exploitコードに\xcd\x80と\x2f\x62\x69\x6e\x2f\x73\x68\x00を含み、プロトコル番号が示すプロトコルをTCP、送信先ポート番号を80番とするシグニチャがシグニチャ・データベース215にある場合、パケット・フィルタ部210は、受信パケットのプロトコル番号、送信先ポート番号、アプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄する。
【0161】
なお、上述のシグニチャの意味するところは、\xcd\x80がexec()システム・コールのバイナリ(16進)表現された一部分を、\x2f\x62\x69\x6e\x2f\x73\x68\x00が文字列/bin/shをそれぞれ表す。すなわち、webサーバに対して”exec(/bin/sh)”を実行しようとするコードである。
【0162】
また、すべての受信パケットのアプリケーション・データ・フィールドと、シグニチャ内のexploitコードとの比較を行なうことが必要となるが、プロトコル番号と送信先ポート番号に基づく検索を行なわず、直接、受信パケットのアプリケーション・データ・フィールドと、シグニチャ内のexploitコードのパターン・マッチングを行なって破棄する受信パケットを決めるようにしてもよい。また、プロトコル番号と送信先ポート番号のいずれか一方のみに基づいて検索を行ない、その後、受信パケットのアプリケーション・データ・フィールドと、シグニチャ内のexploitコードのパターン・マッチングを行なって破棄する受信パケットを決めるようにしてもよい。
【0163】
シグニチャ送受信の実装例
初期化時の動作の具体例を以下に示す。
【0164】
(1)機器120は、配信サーバ130の公開鍵を取得し、受信用鍵データベース240に保存する。また、配信サーバ130は機器120の公開鍵を鍵データベース315に保持しているものとする。なお、ここでの公開鍵、秘密鍵のペアとしては、例えば公開鍵暗号アルゴリズムであるRSA方式を採用することができる。
(2)機器120は、シグニチャを受信するためにマルチキャスト・グループに参加する。マルチキャスト・グループとしては、例えばIP version4のクラスDアドレスで表されるグループを用いることができ、その場合の参加手段としては、RFC(Request for Comment)1112に規定されているIGMP(Internet Group Management Protocol:同一のデータを複数のホストに効率よく配信するIPマルチキャストで、配送を受けるための構成されるホストのグループを制御するためのプロトコル)を用いる。
【0165】
機器120におけるシグニチャ送信時のシグニチャ送信部270の動作の具体例を以下に示す。
【0166】
(1)送信用鍵データベース275に保存されている機器120の秘密鍵でシグニチャに電子署名する。電子署名としては、例えばRSA電子署名を用いることができる(以下同様)。
(2)シグニチャ送信部270は、シグニチャを配信サーバ130に対してユニキャストで送信する。なお、シグニチャ送信部270は配信サーバ130のユニキャスト・アドレスをあらかじめ知っているものとする。
【0167】
配信サーバ130におけるシグニチャ受信時の処理部310の動作の具体例を以下に示す。
【0168】
(1)機器120からのシグニチャを受信する。
(2)機器120の公開鍵で電子署名を検証する。
(3)配信サーバ130の秘密鍵でシグニチャに電子署名する。
(4)すべての機器120に向かってシグニチャをマルチキャストで送信する。マルチキャストによる送信方法としては、例えば、IP version4では単に送信先アドレスとしてクラスDアドレスを指定すればよい。
【0169】
機器120におけるシグニチャ受信時のシグニチャ受信部235の動作の具体例を以下に示す。
【0170】
(1)配信サーバ130からのシグニチャを受信する。
(2)配信サーバ130の公開鍵で電子署名を検証する。
(3)シグニチャをシグニチャ登録部245に渡し、シグニチャ・データベース215に登録する。
【0171】
なお、本明細書中では、配信サーバ130がシグニチャを配信する具体例を示したが、本発明はこれに限定されるものではなく、例えば機器120のシグニチャ送信部270が配信サーバ130の機能を含むように構成してもよい。
【0172】
攻撃検出の実装例
機器120における攻撃の検出方法としては、例えばStachGuardなどの従来技術をそのまま用いることができる。
【0173】
なお、本明細書中では、攻撃手段としてバッファ・オーバーフローによるスタック・スマッシング攻撃を主に取り上げたが、本発明はこれに特化したものではなく、攻撃を検出できる攻撃検出部255と、その攻撃パターンをシグニチャとして表現することができれば、他の手段も用いることが可能である。
【0174】
シグニチャ生成の実装例
機器120におけるシグニチャ生成方法の具体例を以下に示す。
【0175】
(1)攻撃検出部255は、攻撃を受けたプロセスを終了させ、そのメモリ・イメージ(コア)を取得し、その中に現れる特徴的なパターン、すなわちexploitコードをパケット選択部260に渡す。
(2)パケット選択部260は、アプリケーション・データ・フィールドにexploitコードを含むパケットをパケット・データベース225から検索し、exploitコードとともに、そのパケットをシグニチャ生成部265に渡す。
(3)シグニチャ生成部265は、受け取ったパケットから送信先ポート番号、プロトコル番号を取り出し、攻撃に結び付いたパターンとしてのexploitコードとともにそれらをまとめてシグニチャとする。
【0176】
なお、上述のパケット・フィルタリングの実装例で示したように、パケット・フィルタ部210が、exploitコードのみから破棄すべき受信パケットを決める場合には、シグニチャは、少なくともexploitコードを含んでいればよく、必ずしも送信先ポート番号とプロトコル番号とを含んでいる必要はない。また、パケット・フィルタ部210が、プロトコル番号と送信先ポート番号のいずれか一方とexploitコードとから破棄すべき受信パケットを決める場合には、シグニチャは、少なくともexploitコードとプロトコル番号と送信先ポート番号のいずれか一方とを含んでいればよい。
【0177】
メッセージ送信の実装例
機器120におけるユーザへの通知メッセージの送信方法の具体例を以下に示す。
【0178】
(1)ユーザ・データベース285は、連絡先としてその機器の所有者の電子メール・アドレスを保持しておく。
(2)ユーザ通知部280は、ユーザの電子メール・アドレスをユーザ・データベース285から検索する。
(3)ユーザ通知部280は、シグニチャに含まれる情報から、どのアプリケーションがどのような攻撃を受けたかを電子メールの本文に記載し、必要ならばユーザ・データベース285にあるユーザの鍵情報を利用して電子メールに暗号化や電子署名を施した後に送信する。
【0179】
配信サーバ130における開発者への通知メッセージ送信方法の具体例を以下に示す。
【0180】
(1)課金データベース320は、連絡先として開発者の電子メール・アドレスを保持しておく。
(2)処理部310は、新たな手法の攻撃を受けたプロセスの開発者の電子メール・アドレスを課金データベース320から検索する。
(3)処理部310は、セキュリティ・ホールの情報として、新たな手法の攻撃の特徴パターンを含むシグニチャを電子メールの本文に記載し、必要ならば課金データベース320にある開発者の鍵情報を利用して電子メールに暗号化や電子署名を施した後に送信する。
(4)処理部310は、開発者にメッセージを送信する毎に課金データベース320に課金情報を記録し、情報の対価として開発者に対して料金を請求する。
【0181】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0182】
【発明の効果】
以上詳記したように、本発明によれば、コンピュータ・ウィルスなどのネットワーク接続された機器への攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【0183】
また、本発明によれば、アプリケーション毎に固有のセキュリティ・ホールへの攻撃に好適に対処することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【0184】
また、本発明によれば、アプリケーションに対する未知の攻撃に自動的に対応することができる、優れたネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【0185】
本発明に係るネットワーク・セキュリティ・システムによれば、新たな手法の攻撃に対しても即座に自動的に防御することができるので、セキュリティ・メンテナンス・コストを大幅に削減することができる。特に、出荷後の製品の安全性を確保する上で有効に機能する。
【0186】
また、本発明に係るネットワーク・セキュリティ・システムによれば、未知のセキュリティ・ホールが発見されると同時に開発者に通知することができるので、開発者は修正プログラムの開発に即座に取り掛かることができる。また、そのサービスを提供する事業者は、その対価として開発者に課金を行なうことができる。
【0187】
また、本発明に係るネットワーク・セキュリティ・システムによれば、攻撃に対して防御した際に、その事実を利用者に通知することができるので、利用者は安全であることを認識でき、安心して機器を利用することができる。
【図面の簡単な説明】
【図1】ソースコードを実行する際のスタックの動作を示した図である。
【図2】本発明を実装したネットワーク・セキュリティ・システムの構成を模式的に示した図である。
【図3】ネットワーク110上で動作する機器120の機能構成を模式的に示した図である。
【図4】ネットワーク110上で動作する配信サーバ130の機能構成を模式的に示した図である。
【図5】機器120の基本動作を示したフローチャートである。
【図6】機器120の基本動作を示したフローチャートである。
【図7】機器120の基本動作を示したフローチャートである。
【図8】配信サーバ130の基本動作を示したフローチャートである。
【図9】本発明の第2の実施形態に係る機器120−2の機能構成を模式的に示した図である。
【図10】本発明の第2の実施形態に係る配信サーバ130−2の機能構成を模式的に示した図である。
【図11】機器120−2の基本動作を示したフローチャートである。
【図12】配信サーバ130−2の基本動作を示したフローチャートである。
【符号の説明】
100…ネットワーク・セキュリティ・システム
110…ネットワーク
120…機器,130…配信サーバ,140…APサーバ
205…ネットワーク・インターフェース部
210…パケット・フィルタ部
215…シグニチャ・データベース
220…パケット・コピー部
225…パケット・データベース
230…パケット振り分け部
235…シグニチャ受信部
240…受信用鍵データベース
245…シグニチャ登録部
250…プロセス
255…攻撃検出部
260…パケット選択部
265…シグニチャ生成部
270…シグニチャ送信部
275…送信用鍵データベース
280…ユーザ通知部
285…ユーザ・データベース
305…ネットワーク・インターフェース部
310…処理部
315…鍵データベース
320…課金データベース
Claims (20)
- ネットワークに接続された機器への攻撃に対処するネットワーク・セキュリティ・システムであって、
ネットワークに接続された機器は、パケット・フィルタリング部と、攻撃検出部と、攻撃パターン生成部と、攻撃パターン送受信部とを備え、フィルタリングされずに通過した未知の攻撃パターンを受けた場合、その攻撃されたという事実から攻撃パターンを生成し他の機器に配布し、他の機器ではその未知の攻撃が既知の攻撃として登録され該攻撃をフィルタリングして防御する、
ことを特徴とするネットワーク・セキュリティ・システム。 - ネットワーク経由で行なわれる攻撃に対処する情報処理装置であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部と、
受信パケットを処理するプロセス実行部と、
プロセスに対する攻撃を検出する攻撃検出部と、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成部と、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信部と、
を具備することを特徴とする情報処理装置。 - 前記シグニチャ生成部は、少なくとも攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンを含む前記シグニチャを生成する、
ことを特徴とする請求項2に記載の情報処理装置。 - 前記シグニチャ生成部は、受信パケットから取り出された送信先ポート番号及び/又はプロトコル番号を含む前記シグニチャを生成する、
ことを特徴とする請求項3に記載の情報処理装置。 - アプリケーションに対する攻撃の特徴パターンからなるシグニチャを保持するシグニチャ・データベースと、
シグニチャ・データベースに登録されているシグニチャに基づいて受信パケットのフィルタリングを行なうパケット・フィルタリング部と、
受信パケットから未知の攻撃に関するシグニチャを取り出して前記シグニチャ・データベースに登録するシグニチャ登録部と、
をさらに備えることを特徴とする請求項2に記載の情報処理装置。 - 前記パケット・フィルタリング部は、受信パケットの少なくともアプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄する、
ことを特徴とする請求項5に記載の情報処理装置。 - 前記パケット・フィルタリング部は、受信パケットのプロトコル番号及び/又は送信先ポート番号と、アプリケーション・データ・フィールドとをチェックし、そのシグニチャに合致するパケットを破棄する、
ことを特徴とする請求項5に記載の情報処理装置。 - どのような攻撃に対して防御したかを伝えるためのメッセージを作成してユーザに送信するユーザ通知部をさらに備える、
ことを特徴とする請求項2に記載の情報処理装置。 - ネットワーク経由で行なわれる攻撃に対処する情報処理方法であって、
前記ネットワーク経由でパケットを受信するステップ、
受信パケットを処理するプロセス実行ステップと、
プロセスに対する攻撃を検出する攻撃検出ステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成ステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信ステップと、
を具備することを特徴とする情報処理方法。 - 前記シグニチャ生成ステップでは、少なくとも攻撃を受けたプロセスに関するメモリ・イメージに現れるパターンとともにまとめてシグニチャとする、
ことを特徴とする請求項9に記載の情報処理方法。 - 前記シグニチャ生成ステップでは、受信パケットから取り出された送信先ポート番号及び/又はプロトコル番号を含む前記シグニチャを生成する、
ことを特徴とする請求項10に記載の情報処理方法。 - アプリケーションに対する攻撃の特徴パターンからなるシグニチャを保持するシグニチャ・データベースに登録されているシグニチャに基づいて受信パケットのフィルタリングを行なうパケット・フィルタリング・ステップと、
受信パケットから未知の攻撃に関するシグニチャを取り出して前記シグニチャ・データベースに登録するシグニチャ登録ステップと、
をさらに備えることを特徴とする請求項9に記載の情報処理方法。 - 前記パケット・フィルタリング・ステップでは、受信パケットのプロトコル番号、送信先ポート番号、アプリケーション・データ・フィールドをチェックし、そのシグニチャに合致するパケットを破棄する、
ことを特徴とする請求項12に記載の情報処理方法。 - どのような攻撃に対して防御したかを伝えるためのメッセージを作成してユーザに送信するユーザ通知ステップをさらに備える、
ことを特徴とする請求項9に記載の情報処理方法。 - ネットワーク経由で行なわれる攻撃に対処する情報処理装置であって、
前記ネットワークに接続してパケットを送受信するネットワーク・インターフェース部と、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理部と、シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理部と、
を具備することを特徴とする情報処理装置。 - 受信したシグニチャに関連するアプリケーションの開発元に攻撃内容を通知する通知手段と、
攻撃内容の通知に応じて開発元に対する課金処理を行なう課金手段と、
をさらに備えることを特徴とする請求項15に記載の情報処理装置。 - ネットワーク経由で行なわれる攻撃に対処する情報処理方法であって、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理ステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理ステップと、
を具備することを特徴とする情報処理方法。 - 受信したシグニチャに関連するアプリケーションの開発元に攻撃内容を通知する通知ステップと、
攻撃内容の通知に応じて開発元に対する課金処理を行なう課金ステップと、
をさらに備えることを特徴とする請求項17に記載の情報処理方法。 - ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記ネットワーク経由でパケットを受信するステップ、
受信パケットを処理するプロセス実行ステップと、
プロセスに対する攻撃を検出する攻撃検出ステップと、
攻撃に結び付いた受信パケットからパケット・フィルタ用のシグニチャを生成するシグニチャ生成ステップと、
シグニチャを含んだパケットをネットワーク経由で送信するシグニチャ送信ステップと、
を具備することを特徴とするコンピュータ・プログラム。 - ネットワーク経由で行なわれる攻撃に対処するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
プロセスへの攻撃に対処するためのパケット・フィルタ用のシグニチャを含んだパケットをネットワーク上の端末から受信処理するシグニチャ受信処理ステップと、
シグニチャを含んだパケットをネットワーク上の端末に送信処理するシグニチャ送信処理ステップと、
を具備することを特徴とするコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002209233A JP4265163B2 (ja) | 2002-07-18 | 2002-07-18 | ネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002209233A JP4265163B2 (ja) | 2002-07-18 | 2002-07-18 | ネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004054470A true JP2004054470A (ja) | 2004-02-19 |
JP2004054470A5 JP2004054470A5 (ja) | 2005-10-27 |
JP4265163B2 JP4265163B2 (ja) | 2009-05-20 |
Family
ID=31933134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002209233A Expired - Fee Related JP4265163B2 (ja) | 2002-07-18 | 2002-07-18 | ネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4265163B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008519374A (ja) * | 2004-11-04 | 2008-06-05 | テルコーディア テクノロジーズ インコーポレイテッド | ネットワークフロー内のエクスプロイトコードの検出 |
JP2008278272A (ja) * | 2007-04-27 | 2008-11-13 | Kddi Corp | 電子システム、電子機器、中央装置、プログラム、および記録媒体 |
JP2015106336A (ja) * | 2013-12-02 | 2015-06-08 | 日本電信電話株式会社 | バイト列抽出装置、バイト列抽出方法、および、バイト列抽出プログラム |
CN113544676A (zh) * | 2019-03-12 | 2021-10-22 | 三菱电机株式会社 | 攻击估计装置、攻击控制方法和攻击估计程序 |
-
2002
- 2002-07-18 JP JP2002209233A patent/JP4265163B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008519374A (ja) * | 2004-11-04 | 2008-06-05 | テルコーディア テクノロジーズ インコーポレイテッド | ネットワークフロー内のエクスプロイトコードの検出 |
JP4676499B2 (ja) * | 2004-11-04 | 2011-04-27 | テルコーディア ライセンシング カンパニー, リミテッド ライアビリティ カンパニー | ネットワークフロー内のエクスプロイトコードの検出 |
JP2008278272A (ja) * | 2007-04-27 | 2008-11-13 | Kddi Corp | 電子システム、電子機器、中央装置、プログラム、および記録媒体 |
JP2015106336A (ja) * | 2013-12-02 | 2015-06-08 | 日本電信電話株式会社 | バイト列抽出装置、バイト列抽出方法、および、バイト列抽出プログラム |
CN113544676A (zh) * | 2019-03-12 | 2021-10-22 | 三菱电机株式会社 | 攻击估计装置、攻击控制方法和攻击估计程序 |
Also Published As
Publication number | Publication date |
---|---|
JP4265163B2 (ja) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
De Donno et al. | DDoS-capable IoT malwares: Comparative analysis and Mirai investigation | |
Wang et al. | Shield: Vulnerability-driven network filters for preventing known vulnerability exploits | |
US9525696B2 (en) | Systems and methods for processing data flows | |
US8010469B2 (en) | Systems and methods for processing data flows | |
US8250631B2 (en) | Protecting against denial of service attacks using trust, quality of service, personalization, and hide port messages | |
US6192477B1 (en) | Methods, software, and apparatus for secure communication over a computer network | |
US8402540B2 (en) | Systems and methods for processing data flows | |
EP2432188B1 (en) | Systems and methods for processing data flows | |
TWI359598B (en) | Switching network employing server quarantine func | |
US20110219035A1 (en) | Database security via data flow processing | |
US20110214157A1 (en) | Securing a network with data flow processing | |
US20110231564A1 (en) | Processing data flows with a data flow processor | |
US20110231510A1 (en) | Processing data flows with a data flow processor | |
US20110213869A1 (en) | Processing data flows with a data flow processor | |
US20110238855A1 (en) | Processing data flows with a data flow processor | |
US11290484B2 (en) | Bot characteristic detection method and apparatus | |
US20080229415A1 (en) | Systems and methods for processing data flows | |
US20080262991A1 (en) | Systems and methods for processing data flows | |
JP2004304752A (ja) | 攻撃防御システムおよび攻撃防御方法 | |
Verma | Legitimate applications of peer-to-peer networks | |
JP4265163B2 (ja) | ネットワーク・セキュリティ・システム、情報処理装置及び情報処理方法、並びにコンピュータ・プログラム | |
Carrier et al. | The session token protocol for forensics and traceback | |
Thompson et al. | The software vulnerability guide | |
Waldman et al. | The architecture of robust publishing systems | |
Comer | Network processors: programmable technology for building network systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050712 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050712 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050712 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090106 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090127 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |