(57)【要約】  【課題】  第１のプロセスプロセスが通信に用いるインタフェースが動的に規定される場合に、当該第１のプロセスに適合した第２のプロセスによる処理を、当該通信に係るデータに施すことができるデータ処理方法を提供する。  【解決手段】  ファイアウォール２４は、ソケットが規定されると、データベース３０を基に、ＨＴＴＰサーバプロセス２２に対応するフィルタプログラムを取得してそれを実行することで、フィルタプロセス４１を起動する。テーブルデータ３３において、上記ソケットと、ＨＴＴＰサーバプロセス２と、フィルタプロセス４１とを対応付ける。ファイアウォール２４は、上記ソケットを介して受信したＨＴＴＰ要求を、テーブルデータ３３を基に、フィルタプロセス４１に供して、攻撃コードの有無を検証させる。  【選択図】  図３
2005032059.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムを実行して得られる第１のプロセスが通信に用いるインタフェースを動的に規定し、前記第１のプログラムが前記インタフェースを介して通信するデータに所定の処理を施すコンピュータが行うデータ処理方法であって、
前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける第１の工程と、
前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の工程において当該インタフェースと対応付けられた前記第２のプロセスに処理させる第２の工程と
を有するデータ処理方法。
【請求項２】
前記第２の工程において、前記インタフェースを介して受信したデータを、前記第２のプロセスで検証処理した後に前記第１のプロセスに提供する
請求項１に記載のデータ処理方法。
【請求項３】
前記第１の工程において、前記第１のプロセスが通信先との間の通信に対するセッションを確立する度に前記インタフェースを規定する
請求項１に記載のデータ処理方法。
【請求項４】
前記第１のプロセスの前記通信を管理する通信プロセスと、
前記第２のプロセスによる前記検証処理を管理する管理プロセスと
を前記コンピュータが実行する場合に、
前記第１の工程において、前記第１のプロセスが受信に用いる前記インタフェースを前記通信プロセスが規定し、前記管理プロセスが前記第２のプロセスを当該インタフェースに対応付け、
前記第２の工程において、前記通信プロセスが前記インタフェースを介して受信したデータを前記管理プロセスに提供し、前記管理プロセスが当該提供を受けたデータを前記第２のプロセスを用いて検証処理した後に前記第１のプロセスに提供する
請求項２に記載のデータ処理方法。
【請求項５】
前記第１の工程において、
前記第１のプロセスが、前記通信プロセスに対して前記第１のプログラムを指定した待ち受け要求を出し、
前記通信プロセスが、前記第１のプロセスからの前記待ち受け要求に応じて、待ち受けソケットを生成し、当該待ち受けソケットと前記第１のプログラムを前記管理プロセスに指定し、
前記管理プロセスが、前記第１のプログラムに対応付けられた前記第２のプログラムを実行し、前記待ち受けソケットと前記第２のプロセスとを対応付け、
前記通信プロセスが、前記第１のプロセスの通信先から前記待ち受けソケットに対応するデータを受信すると、当該データを受信するため通信ソケットを生成し、当該通信ソケットを前記管理プロセスに指定し、
前記管理プロセスが、前記通信ソケットと前記第２のプロセスとを対応付け、
前記第２の工程において、
前記通信プロセスが、前記通信ソケットを介して受信したデータを、当該通信ソケットを指定して前記管理プロセスに提供し、
前記管理プロセスが、当該受信したデータを、指定された前記通信ソケットに前記第１の工程で対応付けられた前記第２のプロセスに提供し、
前記管理プロセスが、前記第２のプロセスで検証処理されたデータを前記第１のプロセスに提供する
請求項４に記載のデータ処理方法。
【請求項６】
動的に規定されたインタフェースを介して、第１のプログラムを実行して得られた第１
のプロセスが通信を行う場合に、前記通信に係るデータを検証処理するコンピュータが実行するプログラムであって、
前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける第１の手順と、
前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の手順によって当該インタフェースと対応付けられた前記第２のプロセスを用いて検証処理する第２の手順と
を前記コンピュータに実行させるプログラム。
【請求項７】
動的に規定されたインタフェースを介して、第１のプログラムを実行して得られる第１
のプロセスが通信を行う場合に、前記通信に係るデータを検証処理するコンピュータであって、
前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた検証処理の第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける第１の手段と、
前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の手段によって当該インタフェースと対応付けられた前記第２のプロセスを用いて検証処理する第２の手段と
を有するコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスが通信に用いるインタフェースを動的に規定する場合に、当該プロセスの特性に応じた適切な検証処理（フィルタ処理）を当該通信に係るデータに施すことができるデータ処理方法、プログラムおよびコンピュータに関する。
【背景技術】
【０００２】
例えば、Ａｐａｃｈｅなどに代表されるＷｅｂサーバでは、ＷｅｂサーバがＨＴＴＰ(Hypertext Transfer Protocol)要求などを受信すると、当該ＨＴＴＰ要求に含まれる所定の文字列パターンからなる攻撃プログラムをＷｅｂサーバ上で動作するアプリケーションのプロセスを実行し、そのアプリケーションプログラムＡＰの脆弱性により、コンピュータウィルス感染やクラッキングなどの被害を受けてしまう場合がある。
この対策として、Ｗｅｂサーバでは、ＨＴＴＰ要求に含まれるデータをフィルタプロセスに供し、当該フィルタプロセスにおいて予め用意した攻撃コードのパターンと比較して一致するパターンを検出する検証処理を行い、攻撃コードを含まないＨＴＴＰ要求のみを上記アプリケーションのプロセスに供している。
このようなＷｅｂサーバでは、ＴＣＰ(Transmission Control Protocol)の８０番ポートで、複数のアプリケーションプログラムＡＰに係るＨＴＴＰ要求を一括して受信している。この場合に、アプリケーションプログラムＡＰが通信を行う度に、ソケットと呼ばれるインタフェースを動的にアプリケーションプログラムＡＰに割り当てることで、受信したＨＴＴＰ要求を、それに対応するアプリケーションプログラムＡＰに供している。
【０００３】
ところで、攻撃コードのパターンは、アプリケーションプログラムＡＰによって異なる。
そのため、アプリケーションプログラムＡＰ毎に、フィルタプロセスを選択することが望ましい。
例えば、特許文献１のシステムでは、Ｗｅｂサーバが、８０番ポートを介して行われる通信内容を監視して通信プロトコルを判別し、その判別結果から、その通信プロトコルに予め対応付けたフィルタプロセスを選択してＨＴＴＰ要求の検証処理を行っている。
【特許文献１】特開２００１−１５６７１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した特許文献１のシステムでは、通信内容を基にした通信プロトコルの判別精度が低く、適切なフィルタプロセスを選択できない。
また、同じ通信プロトコルを使用する異なる複数のアプリケーションプログラムＡＰに
ついては、同じフィルタプロセスしか利用できず、上記検証処理の信頼性が低い。
そのため、アプリケーションプログラムＡＰに適合したフィルタプロセスを選択できず
、アプリケーションプログラムＡＰのプロセスが攻撃コードを実行し、攻撃を受けてしまうという問題がある。
【０００５】
本発明は、上述した従来技術の問題点に鑑みてなされ、プロセスが通信に用いるインタフェースが動的に規定される場合に、当該プロセスに適合した他のプロセスによる処理を、当該通信に係るデータに施すことができるデータ処理方法、プログラムおよびコンピュータを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した従来技術の問題点を解決するために、第１の発明のデータ処理方法は、第１のプログラムを実行して得られる第１のプロセスが通信に用いるインタフェースを動的に規定し、前記第１のプログラムが前記インタフェースを介して通信するデータに所定の処理を施すコンピュータが行うデータ処理方法であって、前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける第１の工程と、前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の工程において当該インタフェースと対応付けられた前記第２のプロセスに処理させる第２の工程とを有する。
【０００７】
第１の発明のデータ処理方法の作用は以下のようになる。
先ず、第１の工程において、前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける。
次に、第２の工程において、前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の工程において当該インタフェースと対応付けられた前記第２のプロセスに処理させる。
【０００８】
第２の発明のプログラムは、動的に規定されたインタフェースを介して、第１のプログラムを実行して得られた第１のプロセスが通信を行う場合に、前記通信に係るデータを検証処理するコンピュータが実行するプログラムであって、前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける第１の手順と、前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の手順によって当該インタフェースと対応付けられた前記第２のプロセスを用いて検証処理する第２の手順とを前記コンピュータに実行させる。
【０００９】
第３の発明のコンピュータは、動的に規定されたインタフェースを介して、第１のプロ
グラムを実行して得られる第１のプロセスが通信を行う場合に、前記通信に係るデータ
を検証処理するコンピュータであって、前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた検証処理の第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける第１の手段と、前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の手段によって当該インタフェースと対応付けられた前記第２のプロセスを用いて検証処理する第２の手段とを有する。
【００１０】
第３の発明の作用は以下のようになる。
先ず、第１の手段が、前記第１のプロセスが通信に用いる前記インタフェースが規定されると、予め前記第１のプログラムと対応付けられた検証処理の第２のプログラムを実行して得られる第２のプロセスを、前記インタフェースと対応付ける。
次に、第２の手段が、前記第１のプロセスが前記インタフェースを介して通信するデータを、前記第１の手段によって当該インタフェースと対応付けられた前記第２のプロセスを用いて検証処理する。
【発明の効果】
【００１１】
本発明によれば、第１のプロセスが通信に用いるインタフェースを動的に規定する場合に、当該第１のプロセスに適合した第２のプロセスによる処理を、当該通信に係るデータに施すことができるデータ処理方法、プログラムおよびコンピュータを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態を図１〜図１４を参照して説明する。
図１に示すコンピュータ４が本発明のコンピュータに対応している。
また、待ち受けソケットが本発明の待ち受けソケットに対応し、送受信ソケットが本発明のインタフェースまたは通信ソケットに対応している。
また、図３に示すＨＴＴＰサーバプロセス２２が第１の発明の第１のプロセスに対応し
、フィルタプロセス４１が第１の発明の第２のプロセスに対応している。
また、図３に示すＩＰプロセス４５が第１の発明の通信プロセスに対応し、制御プロセス４２が第１の発明の管理プロセスに対応している。
また、図２に示すメモリ１２の中のファイアウォールプログラムＰＲＧ１が第２の発明のプログラムに対応している。
また、図２に示すアプリケーションプログラムＡＰが本発明の第１のプログラムに対応し、図３に示すデータベース３０内のフィルタプロセス４１を規定するデータが本発明の第２のプログラムに対応している。
また、図１０に示すステップＳＴ４５等が第１の発明の第１の工程に対応し、図１１に示すステップＳＴ５１および図１２に示すステップＳＴ５２等が第１の発明の第２の工程に対応している。
第３の発明の第１の手段は図２の処理部１３が上記ステップＳＴ４５を実行して実現され、第２の手段は処理部１３が上記ステップＳＴ５１、ＳＴ５２等を実行して実現される。
【００１３】
図１は、本発明の一実施形態に係わる通信システム１の全体構成図である。
図１に示すように、通信システム１は、例えば、コンピュータ３およびコンピュータ４を有し、これらがネットワーク２を介して通信する。
コンピュータ３は、例えば、ＨＴＴＰクライアントとして機能し、コンピュータ４に対して、ＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol) などの通信プロトコルを基に、パケット形式でＨＴＴＰ要求などのデータを送信する。
本実施形態では、コンピュータ３は、コンピュータ４に対して、例えば、コンピュータ４のバッファ−オ−バフローなどを引き起こすアプリケーションプログラムＡＰの脆弱性を攻撃する攻撃コードを含むＨＴＴＰ要求を送信する。
当該攻撃に使用されるＨＴＴＰ要求は、例えば、コンピュータ４のＴＣＰ層およびＩＰ層において正当であると判断され、アプリケーション層においてその脆弱性を攻撃するパターンを含んでいる。
【００１４】
コンピュータ４は、ＨＴＴＰサ−バとして機能し、コンピュータ３からの上記ＨＴＴＰ要求を、例えば、ＴＣＰの８０番ポートで受信し、実行中のプロセスに提供する。当該プロセスは、コンピュータ４が所定のアプリケーションプログラムＡＰを実行して生成される。
【００１５】
コンピュータ４の動作概要を以下に説明する。
コンピュータ４上で動作するＩＰプロセス４５は、アプリケーションプログラムＡＰを実行して生成されるＨＴＴＰサーバプロセス２２が通信に用いるソケットを、セッションを確立する度に動的に規定する。
ファイアウォール２４は、上記ソケットが規定されると、データベース３０を基に、ＨＴＴＰサーバプロセス２２に対応するフィルタプログラムを取得してそれを実行することで、フィルタプロセス４１を起動する。データベース３０では、ＨＴＴＰサーバプロセス２２のアプリケーションプログラムＡＰに適合するフィルタプログラムが規定されている。
そして、テーブルデータ３３において、上記ソケットと、ＨＴＴＰサーバプロセス２２と、フィルタプロセス４１とを対応付ける。
そして、ファイアウォール２４は、上記ソケットを介して受信したＨＴＴＰ要求を、テーブルデータ３３を基に、フィルタプロセス４１に供して、攻撃コードの有無を検証させる。
そして、ファイアウォール２４は、上記ＨＴＴＰ要求に攻撃コードが含まれていないことを条件に、上記ソケットを介して受信したＨＴＴＰ要求をＨＴＴＰサーバプロセス２２に供する。
【００１６】
図２は、図１に示すコンピュータ４のハードウェア構成図である。
図２に示すように、コンピュータ４は、例えば、通信部１１、メモリ１２および処理部１３を有し、これらがバス１０を介して接続されている。
通信部１１は、ネットワーク２を介して、ＨＴＴＰ要求などのデータを授受する。
メモリ１２は、処理部１３が実行する種々のプログラムを記憶する。
例えば、メモリ１２は、ファイアウォールプログラムＰＲＧ１およびアプリケーションプログラムＡＰを記憶する。
処理部１３は、メモリ１２に記憶されたプログラムを実行して種々のプロセスを起動する。
【００１７】
図３は、図１および図２に示すコンピュータ４の機能ブロック図である。
図３に示すように、コンピュータ４は、例えば、インストローラ１９、ファイルシステム２０、ファイル管理プロセス２１、ＨＴＴＰサーバプロセス２２、ＯＳ(Operating System)２３、ファイアウォール２４を有する。
インストローラ１９は、メモリ１２に記憶されたインストールプログラムを処理部１３が実行することで生じるプロセスである。
ファイルシステム２０は、例えば、ＨＴＴＰサーバプロセス２２の処理を規定したアプリケーションプログラムＡＰの識別データＦＩＬＥ＿ＩＤと、実行コードＣＯＤＥとを対応付けて記憶する。ここで、ファイルシステム２０は、例えば、メモリ１２と、メモリ１２へのアクセスを規定する処理部１３のプロセスによって実現される。
【００１８】
ファイル管理プロセス２１は、上記アプリケーションプログラムＡＰの識別データＦＩＬＥ＿ＩＤと、そのチェックサム値ＣＨＫＳＵＭと、その名前ＰＲＯＧ＿Ｎとを対応付けて管理する。
ファイル管理プロセス２１は、処理部１３がファイル管理プログラムを実行して実現される。
ＨＴＴＰサーバプロセス２２は、処理部１３が、上記アプリケーションプログラムＡＰを実行して実現される。
ＯＳ２３は、ＩＰ処理を行うＩＰプロセス４５を有する。
また、ＯＳ２３は、動作中のプロセスの識別データＰＲＯＣＥ＿ＩＤと、そのアプリケーションプログラムＡＰの識別データＦＩＬＥ＿ＩＤとを対応付けて管理するテーブルデータ３４を有する。
【００１９】
ファイアウォール２４は、例えば、フィルタプロセス４１、制御プロセス４２、並びにテーブルデータ３３を有し、図２に示すファイアウォールプログラムＰＲＧ１を処理部１３が実行して実現される。
テーブルデータ３３は、アプリケーションプログラムＡＰを実行して生成されたＨＴＴＰサーバプロセス２２がコンピュータ３との通信に用いるソケットの識別データＳＯＣＫＥＴ＿ＩＤと、当該アプリケーションプログラムＡＰのプロセスの識別データＰＲＯＣＥ＿ＩＤと、当該プロセスに係わる通信に用いるフィルタプロセス４１の識別データＦＩＬＴ＿ＰＲＯＣＥ＿ＩＤとを対応付けて示す。
ファイアウォール２４は、所定のファイアウォールプログラムを処理部１３が実行して実現される。
【００２０】
データベース３０は、例えば、コンピュータ４がデータ授受可能に保持する。
データベース３０は、アプリケーションプログラムＡＰの名前ＰＲＯＧ＿Ｎと、当該アプリケーションプログラムＡＰに適したフィルタプログラムの種類を示す種類識別データＦＩＬＴ＿ＰＲＯＰと、当該フィルタプログラムに設定するパラメータＦＩＬＴ＿ＰＴＮとを対応付けて示す。
すなわち、本実施形態では、アプリケーションプログラムＡＰ毎に、そのフィルタ処理に適合した種類識別データＦＩＬＴ＿ＰＲＯＰとパラメータＦＩＬＴ＿ＰＴＮとがデータベース３０で規定されている。
【００２１】
以下、図１に示すコンピュータ４の動作例を説明する。
〔第１の動作例〕
以下、コンピュータ４にＨＴＴＰサーバプロセス２２のアプリケーションプログラムＡＰをインストールする場合のコンピュータ４の動作例を説明する。
図４は、当該動作例を説明するための図である。
ステップＳＴ１：
処理部１３がメモリ１２に記憶されたインストールプログラムを実行することでインストローラ１９が得られる。
そして、インストローラ１９が、ＨＴＴＰサーバのアプリケーションプログラムＡＰの実行コードＣＯＤＥを、当該アプリケーションプログラムＡＰの識別データＦＩＬＥ＿ＩＤと対応付けてファイルシステム２０に登録する。
ステップＳＴ２：
インストローラ１９が、ステップＳＴ１で登録した実行コードＣＯＤＥのチェックサムＣＨＫＳＵＭを計算する。
【００２２】
ステップＳＴ３：
インストローラ１９が、アプリケーションプログラムＡＰの上記識別データＦＩＬＥ＿ＩＤをファイル管理プロセス２１に登録する。
ステップＳＴ４：
インストローラ１９が、ステップＳＴ２で生成したチェックサムＣＨＫＳＵＭを、ステップＳＴ３で登録した識別データＦＩＬＥ＿ＩＤと対応付けてファイル管理プロセス２１に登録する。
【００２３】
ステップＳＴ５：
インストローラ１９が、アプリケーションプログラムＡＰの種類とバージョンとを識別できる情報を含むファイル名ＰＲＯＧ＿Ｎを生成する。
ステップＳＴ６：
インストローラ１９が、ステップＳＴ５で生成したファイル名ＰＲＯＧ＿Ｎを、ステップＳＴ３で登録した識別データＦＩＬＥ＿ＩＤと対応付けてファイル管理プロセス２１に登録する。
上述したインストール動作により、図５に示すように、ファイルシステム２０、並びにファイル管理プロセス２１のテーブルデータ３２にデータが設定される。
【００２４】
〔第２の動作例〕
以下、ＨＴＴＰサーバプロセス２２が起動されてから、ＨＴＴＰサーバプロセス２２がコンピュータ３からのＨＴＴＰ要求を待ち受けるまでにコンピュータ４が行う動作例を説明する。
図６〜図９は、当該動作例を説明するための図である。
ステップＳＴ１０：
図２に示す処理部１３は、メモリ１２（ファイルシステム２０）が保持するアプリケーションプログラムＡＰの実行コードＣＯＤＥを実行する。これにより、図３に示すＨＴＴＰサーバプロセス２２が起動される。
ステップＳＴ１１：
ＨＴＴＰサーバプロセス２２が、実行コードＣＯＤＥ内の記述「ＳＯＣＫＥＴ＿ＩＤ１＝ｓｏｃｋｅｔ（ＡＴ＿ＩＮＥＴ，ＳＯＣＫ＿ＳＴＲＥＡＭ，０）」に基づいて、ソケット生成要求をＩＰプロセス４５に出す。具体的には、ＨＴＴＰサーバプロセス２２は、システムコールｓｏｃｋｅｔをＩＰプロセス４５に出す。
ＩＰプロセス４５は、上記システムコールｓｏｃｋｅｔに応じて、待ち受けソケットの
識別データＳＯＣＫＥＴ＿ＩＤ１をＨＴＴＰサーバプロセス２２に戻り値として提供する。
【００２５】
ステップＳＴ１２：
ＨＴＴＰサーバプロセス２２は、コンピュータ４の複数のポートのうち、コンピュータ３からのＨＴＴＰ要求の待ち受けに使用するポートを設定する。
当該処理は、ＨＴＴＰサーバプロセス２２が、実行コードＣＯＤＥ内の記述「ｂｉｎｄ（ＳＯＣＫＥＴ＿ＩＤ１）」を基に実行する。
ステップＳＴ１３：
ＨＴＴＰサーバプロセス２２は、接続待機要求をＯＳ２３のＩＰプロセス４５に出す。  当該処理は、ＨＴＴＰサーバプロセス２２が、実行コードＣＯＤＥ内の記述「ｌｉｓｔｅｎ（ＳＯＣＫＥＴ＿ＩＤ１）」を基に実行する。
【００２６】
ステップＳＴ１４：
ＨＴＴＰサーバプロセス２２は、ＩＰプロセス４５に対してシステムコールａｃｃｅｐｔを出し、接続確立後に使用する送受信ソケットの識別データを返値として待つ。
ステップＳＴ１５：
ＩＰプロセス４５は、ステップＳＴ１３の接続待機要求に応じて、待ち受けソケットの識別データＳＯＣＫＥＴ＿ＩＤ１をファイアウォール２４に提供する。
ステップＳＴ１６：
ファイアウォール２４の制御プロセス４２は、ＨＴＴＰサーバプロセス２２の実行コードＣＯＤＥの識別データＦＩＬＥ＿ＩＤをＩＰプロセス４５から取得する。
具体的には、ＯＳ２３がＵＮＩＸ(登録商標)であれば、ＯＳ２３がＨＴＴＰサーバプロセス２２の固有情報を保持するので、制御プロセス４２は、これを取得する。
ステップＳＴ１７：
ファイアウォール１４の制御プロセス４２は、ステップＳＴ１５で受けた待ち受けソケットの識別データＳＯＣＫＥＴ＿ＩＤ１と、ステップＳＴ１６で受けた実行コードＣＯＤＥの識別データＦＩＬＥ＿ＩＤとを対応付けてテーブルデータ３３に登録する。
【００２７】
ステップＳＴ１８：
ファイアウォール１４の制御プロセス４２は、ステップＳＴ１６で取得した識別データＦＩＬＥ＿ＩＤを指定してプログラム名をファイル管理プロセス２１に要求する。
ステップＳＴ１９：
ファイル管理プロセス２１は、ステップＳＴ１８で受けた要求に応じて、識別データＦＩＬＥ＿ＩＤを指定して実行コードＣＯＤＥをファイルシステム２０に要求する。
ステップＳＴ２０：
ファイルシステム２０は、ステップＳＴ１９で受けた要求に応じて、指定された識別データＦＩＬＥ＿ＩＤに対応する実行コードＣＯＤＥをファイル管理プロセス２１に提供する。
ステップＳＴ２１：
ファイル管理プロセス２１は、ステップＳＴ２０で受けた実行コードＣＯＤＥの正当性を検証し、正当であると判断するとステップＳＴステップＳＴ２２に進み、そうでない場合にはエラー処理を行う。
具体的には、ファイル管理プロセス２１は、ステップＳＴ２０で受けた実行コードＣＯＤＥのチェックサムを計算し、これがテーブルデータ３２に登録されたチェックサムＣＨＫＳＵＭと一致すれば、実行コードＣＯＤＥが正当であると判断する。
ステップＳＴ２２：
ファイル管理プロセス２１は、ステップＳＴ１９で指定した識別データＦＩＬＥ＿ＩＤに対応するプログラム名ＰＲＯＧ＿Ｎをテーブルデータ３２から取得し、これをファイアウォール２４に提供する。
【００２８】
ステップＳＴ２３：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ２２で受けたプログラム名
ＰＲＯＧ＿Ｎを指定したフィルタ要求をデータベース３０に出す。
ステップＳＴ２４：
データベース３０は、ステップＳＴ２３で受けたフィルタ要求に応じて、指定されたプ
ログラム名ＰＲＯＧ＿Ｎに対応する、種類識別データＦＩＬＴ＿ＰＲＯＰとパラメータＦＩＬＴ＿ＰＴＮとをファイアウォール２４の制御プロセス４２に提供する。
ステップＳＴ２５：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ２４で受けたフィルタ要求に応じて、指定されたプログラム名ＰＲＯＧ＿Ｎに対応する種類識別データＦＩＬＴ＿ＰＲＯＰで示される種類のフィルタプログラムを、パラメータＦＩＬＴ＿ＰＴＮで示されるパラメータで設定して実行することでフィルタプロセス４１を起動する。
すなわち、制御プロセス４２は、ＨＴＴＰサーバプロセス２２のフィルタ処理に適合した種類識別データＦＩＬＴ＿ＰＲＯＰとパラメータＦＩＬＴ＿ＰＴＮとを基に規定されるフィルタプロセス４１を起動する。
【００２９】
ステップＳＴ２６：
ファイアウォール２４の制御プロセス４２は、図９に示すように、ステップＳＴ２５で起動したフィルタプロセス４１の識別データＦＩＬＴＥＲ＿ＩＤ「４１」を、ステップＳＴ１１で設定した識別データＳＯＣＫＥＴ＿ＩＤ１と識別データＦＩＬＥ＿ＩＤ「２２」と対応付けてテーブルデータ３３に設定する。
ステップＳＴ２７：
ファイアウォール２４の制御プロセス４２は、ＩＰプロセス４５に設定完了通知を出す。
ステップＳＴ２８：
ＩＰプロセス４５は、ステップＳＴ１３で受けた接続待機要求（システムコールｌｉｓｔｅｎ）に対する通常処理を行う。
【００３０】
［第３の動作例］
以下、コンピュータ３が送信したＨＴＴＰ要求（リクエスト）をコンピュータ４が受信した場合の動作例を説明する。
当該ＨＴＴＰ要求は、例えば、ＨＴＴＰサーバプロセス２２の特定バージョンの脆弱性
を攻撃するものである。
図１０〜図１４は、当該動作例を説明するための図である。
ステップＳＴ４１：
ＩＰプロセス４５は、例えば、コンピュータ３が送信したＨＴＴＰ要求を、ＴＣＰの８０番ポートで受信すると、ステップＳＴ４２に進む。
ステップＳＴ４２：
ＩＰプロセス４５は、図６に示すステップＳＴ１４でＨＴＴＰサーバプロセス２２から受けたシステムコールａｃｃｅｐｔの処理を開始し、ステップＳＴ１５で生成した待ち受けソケットに対応する送受信ソケットを生成し、それに識別データＳＯＣＫＥＴ＿ＩＤ２を割り当てる。
ステップＳＴ４３：
ＩＰプロセス４５は、ステップＳＴ４２で割り当てた識別データＳＯＣＫＥＴ＿ＩＤ２をファイアウォール２４の制御プロセス４２に提供する。
【００３１】
ステップＳＴ４４：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ４３で受けた識別データＳ
ＯＣＫＥＴ＿ＩＤ２に対応する識別データＳＯＣＫＥＴ＿ＩＤ１に対応付けられた識別データＰＲＯＣＥ＿ＩＤ「２２」，ＦＩＬＴＥＲ＿ＩＤ「４１」を、図９に示すテーブルデータ３３から取得する。
ステップＳＴ４５：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ４３で受けた識別データＳＯＣＫＥＴ＿ＩＤ２と、ステップＳＴ４４で取得した識別データＰＲＯＣＥ＿ＩＤ，ＦＩＬＴＥＲ＿ＩＤとを対応付けた項目を、テーブルデータ３３に追加する。
【００３２】
ステップＳＴ４６：
ファイアウォール２４の制御プロセス４２は、ＩＰプロセス４５に対して設定完了通知を出す。
ステップＳＴ４７：
ＩＰプロセス４５は、システムコールａｃｃｅｐｔの処理を完了してコンピュータ３との間の接続を確立する。
そして、ＩＰプロセス４５は、システムコールａｃｃｅｐｔの戻り値として、ＨＴＴＰサーバプロセス２２に対して、識別データＳＯＣＫＥＴ＿ＩＤ２を提供する。
ステップＳＴ４８：
ＨＴＴＰサーバプロセス２２は、ステップＳＴ４７で受けた識別データＳＯＣＫＥＴ＿ＩＤ２を指定したシステムコールｒｅａｄをＩＰプロセス４５に出す。
ステップＳＴ４９：
ＩＰプロセス４５は、ステップＳＴ４８で指定された識別データＳＯＣＫＥＴ＿ＩＤ２と、それに対応する送受信ソケットで受信したＨＴＴＰ要求に含まれるデータをファイアウォール２４に提供する。
ステップＳＴ５０：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ４９で受けた識別データＳＯＣＫＥＴ＿ＩＤ２に対応する識別データＦＩＬＴＥＲ＿ＩＤをテーブルデータ３３から取得する。
ステップＳＴ５１：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ５０で取得した識別データＦＩＬＴＥＲ＿ＩＤに対応するフィルタプロセス４１に、ステップＳＴ４９で受けたＨＴＴＰ要求に含まれるデータを提供する。
【００３３】
ステップＳＴ５２：
フィルタプロセス４１は、ステップＳＴ５１で受けたＨＴＴＰ要求に含まれるデータにフィルタ処理を施す。
具体的には、フィルタプロセス４１は、当該ＨＴＴＰ要求に含まれるデータ内に、所定のフィルタパターン（攻撃コードのパターン）と一致するパターンが含まれている否かを判断する。
ここで、フィルタプロセス４１は、前述したように、ＨＴＴＰサーバプロセス２２に適合したフィルタ処理を行うため、ＨＴＴＰサーバプロセス２２に対しての攻撃コードを高い信頼性で検出できる。
ステップＳＴ５３：
フィルタプロセス４１は、ステップＳＴ５２の判断結果（フィルタ結果）をファイアウォール２４の制御プロセス４２に通知する。
ステップＳＴ５４：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ５３で受けたフィルタ結果がパターン一致を示す場合にはステップＳＴ５５に進み、そうでない場合にはステップＳＴ５９に進む。
【００３４】
ステップＳＴ５５：
ファイアウォール２４の制御プロセス４２は、ステップＳＴ４９で受けたＨＴＴＰ要求内のデータを破棄する。
ステップＳＴ５６：
ファイアウォール２４の制御プロセス４２は、ＩＰプロセス４５に対して、ＨＴＴＰ要求が不正である旨を通知する。
ステップＳＴ５７：
ＩＰプロセス４５は、ステップＳＴ５６の通知を基に、システムコールｒｅａｄの返値として不正を示す値をＨＴＴＰサーバプロセス２２に返す。
ステップＳＴ５８：
ＨＴＴＰサーバプロセス２２は、ＨＴＴＰ要求の処理を中止する。
【００３５】
ステップＳＴ５９：
ファイアウォール２４の制御プロセス４２は、ＩＰプロセス４５に対して、ＨＴＴＰ要求が正当である旨を通知する。
ステップＳＴ６０：
ＩＰプロセス４５は、ステップＳＴ５９の通知を基に、システムコールｒｅａｄの返値として正当を示す値をＨＴＴＰサーバプロセス２２に返す。
ステップＳＴ６１：
ファイアウォール２４の制御プロセス４２は、ＨＴＴＰ要求内のデータをＨＴＴＰサーバプロセス２２に提供する。
ステップＳＴ６２：
ＨＴＴＰサーバプロセス２２は、ＨＴＴＰ要求の処理を開始する。
【００３６】
［第４の動作例］
以下、ＨＴＴＰサーバプロセス２２のアプリケーションプログラムＡＰのバージョンを更新する場合のコンピュータ４の動作例を説明する。
この場合には、コンピュータ４がＨＴＴＰサーバプロセス２２の停止要求を出す。
ＨＴＴＰサーバプロセス２２は、上記停止要求に応じて待ち受けソケットを指定したシ
ステムコールｃｌｏｓｅをＩＰプロセス４５に出す。
ＩＰプロセス４５は、システムコールｃｌｏｓｅを受けると、待ち受けソケットの識別
データＳＯＣＫＥＴ＿ＩＤ１を指定した登録削除要求をファイアウォール２４に出す。
ファイアウォール２４の制御プロセス４２は、上記登録削除要求で指定された識別デー
タＳＯＣＫＥＴ＿ＩＤ１に対応するテーブルデータ３３の項目を消去して、登録削除完了通知をＩＰプロセス４５に出す。
ＩＰプロセス４５は、上記登録削除完了通知を基に、システムコールｃｌｏｓｅの処理
の完了通知をＨＴＴＰサーバプロセス２２に出す。
これにより、ＨＴＴＰサーバプロセス２２は終了する。
【００３７】
次に、コンピュータ４において、ＨＴＴＰサーバプロセス２２のアプリケーションプログラムＡＰのアンインストール処理を行う。
続いて、コンピュータ４は、新たなアプリケーションプログラムＡＰのインストール処理を、図４を参照して説明した手順で行う。
その後、新たなアプリケーションプログラムＡＰを図２に示す処理部１３で実行して起動された新たなＨＴＴＰサーバプロセスについて、前述した第２，第３の動作例と同様の処理が行われる。
【００３８】
以上説明したように、通信システム１では、コンピュータ４のＨＴＴＰサーバプロセス２２が、コンピュータ３との通知に用いる送受信ソケットが生成されると、ＨＴＴＰサーバプロセス２２のフィルタ処理に適合したフィルタ特性を持つフィルタプロセス４１が当該送受信ソケットと自動的に対応付けられる。
そして、コンピュータ４において、上記送受信ソケットを介して受信したＨＴＴＰ要求内のデータが自動的にフィルタプロセス４１で検証処理される。
そのため、コンピュータ４によれば、ＨＴＴＰサーバプロセス２２に対してのＨＴＴＰ要求を、ＨＴＴＰサーバプロセス２２に適合したフィルタプロセス４１において確実にフィルタ処理させることができ、ＨＴＴＰサーバプロセス２２が攻撃コードを処理してしまうことを効果的に回避できる。
これにより、ＨＴＴＰ要求を不正に利用してアプリケーション層の脆弱性を攻撃するコードに対して適切な対策を講じることができる。
すなわち、コンピュータ４では、従来のように、通信内容を基にした通信プロトコルの判別を行う必要はなく、攻撃コ−ドを高精度に検出できる。
また、コンピュータ４は、複数のアプリケーションプログラム（ＨＴＴＰサーバプロセ
ス）が同じ通信プロトコルを採用している場合でも、個々のアプリケーションプログラム毎に適切なフィルタプロセスを利用できる。
また、コンピュータ４は、前述したＴＣＰの８０番ポートを通過する全てのデータを監
視するのではなく、ＨＴＴＰサーバプロセス２２に対応付けられて受信したＨＴＴＰ要求のみをフィルタプロセス４１で処理するため、フィルタ処理量を少なくできる。
【００３９】
本発明は上述した実施形態には限定されない。
上述した実施形態では、本発明のインタフェースとしてソケットを例示したが、その他、セッション毎に動的に規定されるインタフェースを介してプロセスが通信を行う場合にも本発明は同様に適用可能である。
また、上述した実施形態では、本発明の第２のプロセスとして、フィルタプロセスを例示したが、当該第２のプロセスは、第１のプロセスに対応して規定されるその他の処理を行うものでもよい。
【産業上の利用可能性】
【００４０】
本発明は、プロセスが通信に用いるインタフェースが動的に規定され、当該プロセスの特性に応じた適切な処理が要求されるシステムに適用可能である。
【図面の簡単な説明】
【００４１】
【図１】図１は、本発明の一実施形態に係わる通信システム１の全体構成図である。
【図２】図２は、図１に示すコンピュータ４のハードウェア構成図である。
【図３】図３は、図１および図２に示すコンピュータ４の機能ブロック図である。
【図４】図４は、図３に示すコンピュータにＨＴＴＰサーバプロセスのアプリケーションプログラムをインストールする場合のコンピュータ４の動作例を説明するための図である。
【図５】図５は、図３に示すコンピュータにＨＴＴＰサーバプロセスのアプリケーションプログラムをインストールする場合のコンピュータ４の動作例を説明するための図である。
【図６】図６は、図３に示すＨＴＴＰサーバプロセスが起動されてから、ＨＴＴＰサーバプロセスがＨＴＴＰ要求を待ち受けるまでの動作例を説明するための図である。
【図７】図７は、図３に示すＨＴＴＰサーバプロセスが起動されてから、ＨＴＴＰサーバプロセスがＨＴＴＰ要求を待ち受けるまでの動作例を説明するための図である。
【図８】図８は、図３に示すＨＴＴＰサーバプロセスが起動されてから、ＨＴＴＰサーバプロセスがＨＴＴＰ要求を待ち受けるまでの動作例を説明するための図である。
【図９】図９は、図３に示すＨＴＴＰサーバプロセスが起動されてから、ＨＴＴＰサーバプロセスがＨＴＴＰ要求を待ち受けるまでの動作例を説明するための図である。
【図１０】図１０は、ＨＴＴＰ要求を受信した後の図３に示すコンピュータの動作例を説明するための図である。
【図１１】図１１は、ＨＴＴＰ要求を受信した後の図３に示すコンピュータの動作例を説明するための図である。
【図１２】図１２は、ＨＴＴＰ要求を受信した後の図３に示すコンピュータの動作例を説明するための図である。
【図１３】図１３は、ＨＴＴＰ要求を受信した後の図３に示すコンピュータの動作例を説明するための図である。
【図１４】図１４は、ＨＴＴＰ要求を受信した後の図３に示すコンピュータの動作例を説明するための図である。
【符号の説明】
【００４２】
３，４…コンピュータ、１０…バス、１１…通信部、１２…メモリ、１３…処理部、１９…インストローラ、２０…ファイルシステム、２１…ファイル管理プロセス、２２…ＨＴＴＰサーバプロセス、２３…ＯＳ、２４…ファイアウォール、４１…フィルタプロセス、４２…制御プロセス、４５…ＩＰプロセス
【図１】
2005032059.tif 000003
【図２】
2005032059.tif 000004
【図３】
2005032059.tif 000005
【図４】
2005032059.tif 000006
【図５】
2005032059.tif 000007
【図６】
2005032059.tif 000008
【図７】
2005032059.tif 000009
【図８】
2005032059.tif 000010
【図９】
2005032059.tif 000011
【図１０】
2005032059.tif 000012
【図１１】
2005032059.tif 000013
【図１２】
2005032059.tif 000014
【図１３】
2005032059.tif 000015
【図１４】
2005032059.tif 000016