(57)【要約】【課題】情報処理装置から外部装置宛のデータ通信において、正当な指示に従って行われるデータ通信については許可し、不当な指示に従って行われるデータ通信については許可しない仕組みを実現する。【解決手段】クライアント装置は、履歴情報をファイアウォール装置に送信する。ファイアウォール装置は、クライアント装置から送信されてくる履歴情報とメールサーバ装置宛のメールパケットとを受信すると、履歴情報を解析して、そのメールパケットの送信処理がクライアント装置において正当な指示に従って行われたものであるかを判定する。そして、ファイアウォール装置は、正当な指示に従って行われたものだと判定した場合には、受信したメールパケットをメールサーバ装置に転送し、正当な指示に従って行われたものではないと判定した場合には、受信したメールパケットをメールサーバ装置に転送せずに破棄する。【選択図】図１
2009100359.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、中継装置とを備え、
前記情報処理装置は、
利用者の操作を受け付ける操作手段と、
プログラムを記憶する記憶手段と、
通信を行う第１通信手段と、
前記操作又は前記プログラムによる指示に従って処理を行う処理手段であって、前記中継装置に接続された外部装置にデータを送信する処理が当該操作又は当該プログラムにより指示された場合には、当該外部装置宛のデータを前記第１通信手段から前記中継装置に送信する送信処理を行う処理手段と、
前記操作手段が受け付けた操作の履歴又は前記処理手段が行った処理の履歴を表す履歴情報を前記第１通信手段から前記中継装置に送信する履歴送信手段とを備え、
前記中継装置は、
通信を行う第２通信手段と、
前記情報処理装置から送信されてくる前記外部装置宛のデータと前記履歴情報とを前記第２通信手段が受信すると、当該履歴情報を解析して、前記処理手段による当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであるか否かを判定する判定手段と、
前記判定手段によって前記送信処理が正当な指示に従って行われたものであると判定された場合には、前記第２通信手段が受信した前記外部装置宛のデータを当該外部装置に転送し、前記判定手段によって前記送信処理が正当な指示に従って行われたものではない判定された場合には、前記第２通信手段が受信した前記外部装置宛のデータを当該外部装置に転送しない転送制御手段とを備える
ことを特徴とする通信システム。
【請求項２】
前記情報処理装置の前記履歴送信手段は、前記操作手段が操作される度又は前記処理手段が処理を行う度に、前記履歴情報を前記第１通信手段から前記中継装置に送信する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記情報処理装置の前記履歴送信手段は、
前記履歴情報を記憶する記憶手段を備え、
前記処理手段が前記送信処理を行う時に、前記記憶手段から前記履歴情報を読み出して、前記第１通信手段から前記中継装置に送信する
ことを特徴とする請求項１に記載の通信システム。
【請求項４】
前記情報処理装置の前記履歴送信手段は、前記履歴情報を暗号化して前記第１通信手段から前記中継装置に送信し、
前記中継装置の前記第２通信手段は、前記情報処理装置から暗号化された前記履歴情報が送信されてくると、当該暗号化された履歴情報を受信して、これを復号し、
前記判定手段は、復号された前記履歴情報を解析して前記判定を行う
ことを特徴とする請求項１に記載の通信システム。
【請求項５】
自装置に接続された情報処理装置及び自装置に接続された外部装置と通信を行う通信手段と、
前記情報処理装置から送信されてくる前記外部装置宛のデータと、前記情報処理装置の操作手段が受け付けた操作の履歴又は前記情報処理装置の処理手段が行った処理の履歴を表す履歴情報とを前記通信手段が受信すると、当該履歴情報を解析して、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであるか否かを判定する判定手段と、
前記判定手段によって前記送信処理が正当な指示に従って行われたものであると判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送し、前記判定手段によって前記送信処理が正当な指示に従って行われたものではない判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送しない転送制御手段と
を備えることを特徴とする中継装置。
【請求項６】
前記判定手段は、
前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれている場合には、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであると判定し、
前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれていない場合には、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものではないと判定する
ことを特徴とする請求項５に記載の中継装置。
【請求項７】
前記判定手段は、
不正なプログラムによる指示に従って行われる処理のパターンを記憶する記憶手段を備え、
前記記憶手段によって記憶されている前記処理のパターンが前記履歴情報に含まれている場合には、前記通信手段が受信したデータの送信処理が前記情報処理装置において正当な指示に従って行われたものではないと判定する
ことを特徴とする請求項５に記載の中継装置。
【請求項８】
前記判定手段は、
前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれている場合には、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであると判定し、
前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれておらず、且つ、前記記憶手段によって記憶されている前記処理のパターンが前記履歴情報に含まれている場合には、前記通信手段が受信したデータの送信処理が前記情報処理装置において正当な指示に従って行われたものではないと判定する
ことを特徴とする請求項５に記載の中継装置。
【請求項９】
前記判定手段は、
正当な指示を行うプログラムを特定する正当プログラム情報、又は、不当な指示を行うプログラムを特定する不正プログラム情報を記憶する記憶手段を備え、
前記通信手段が受信したデータの送信処理が前記正当プログラム情報によって特定されるプログラムによる指示に従って行われたことを表す処理の履歴が前記履歴情報に含まれている場合には、当該データの送信処理を前記情報処理装置において正当な指示に従って行われたものであると判定し、
前記通信手段が受信したデータの送信処理が前記不正プログラム情報によって特定されるプログラムによる指示に従って行われたことを表す処理の履歴が前記履歴情報に含まれている場合には、当該データの送信処理を前記情報処理装置において正当な指示に従って行われたものではないと判定する
ことを特徴とする請求項５に記載の中継装置。
【請求項１０】
前記情報処理装置からのデータの送信が許可されている外部装置を特定する許可情報を記憶する記憶手段を備え、
前記通信手段が前記記憶手段に記憶されている前記許可情報によって特定される外部装置宛のデータを受信した場合には、前記判定手段は前記判定を行わずに、前記転送制御手段は、前記データを当該外部装置宛に転送する
ことを特徴とする請求項５に記載の中継装置。
【請求項１１】
コンピュータを、
自コンピュータに接続された情報処理装置及び自コンピュータに接続された外部装置と通信を行う通信手段と、
前記情報処理装置から送信されてくる前記外部装置宛のデータと、前記情報処理装置の操作手段が受け付けた操作の履歴又は前記情報処理装置の処理手段が行った処理の履歴を表す履歴情報とを前記通信手段が受信すると、当該履歴情報を解析して、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであるか否かを判定する判定手段と、
前記判定手段によって前記送信処理が正当な指示に従って行われたものであると判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送し、前記判定手段によって前記送信処理が正当な指示に従って行われたものではない判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送しない転送制御手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置から中継装置を経由したデータ通信を制御する技術に関する。
【背景技術】
【０００２】
ファイアウォール装置と呼ばれる中継装置を用いて、特定のポートへの通信を制限する技術が知られている。例えば、特許文献１には、ファイアウォール装置がＦＴＰ（File Transfer Protocol）クライアントから要求されたデータコネクションポートへの通信を一時的に許可することにより、データコネクションポートを常時開放しておかなくても、ＦＴＰクライアントとＦＴＰサーバ間のデータの送受信を可能にする技術が開示されている。
【特許文献１】特開２０００−３４９８２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した特許文献１に記載の技術では、例えば悪意のある利用者がＦＴＰクライアントなどの情報処理装置を操作して、全てのポートへの通信許可をファイアウォール装置に要求した場合、ファイアウォール装置は、全てのポートへの通信を許可してしまう。この場合には、ＬＡＮ（Local Area Network）側から見てファイアフォール装置の外側に配置されていて、本来ならばファイアウォール装置によって通信が許可されていない外部装置に対して、ＬＡＮ側のクライアント装置からクラッキングなどの攻撃が行われる恐れがある。つまり、特許文献１の記載の技術は、ＬＡＮなどの内部ネットワーク内のクライアント装置が全て正当なものであるとの前提の下で通信制限を行っているに過ぎないから、不当な指示に従って行われるデータ通信を防止することができない。
【０００４】
一方、ファイアウォール装置を用いて、予め設定されたポートへの通信のみを許可するようにした場合には、上述のような不当な利用者からの攻撃を防ぐことはできるが、正当な利用者の利便性が損なわれてしまう。例えば、上述したＦＴＰによるデータ通信では、制御コネクションポートは予め決められているが、データコネクションポートについては、制御コネクションが確立された後に動的に決定されるようになっている。このような場合には、データコネクションポートがその時々で異なるものになるため、データコネクションポートへの通信を許可するように予め設定しておくことができず、利用者がＦＴＰのデータ通信を行うことができなくなってしまう。つまり、予め設定されたポートへの通信のみを許可するようにした場合、その設定を限定的にすると、正当な利用者が行い得るデータ通信が限定されてしまい不便になる。
【０００５】
本発明はこのような背景に鑑みてなされたものであり、情報処理装置から外部装置宛のデータ通信において、正当な指示に従って行われるデータ通信については許可し、不当な指示に従って行われるデータ通信については許可しない仕組みを実現することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明は、情報処理装置と、中継装置とを備え、前記情報処理装置は、利用者の操作を受け付ける操作手段と、プログラムを記憶する記憶手段と、通信を行う第１通信手段と、前記操作又は前記プログラムによる指示に従って処理を行う処理手段であって、前記中継装置に接続された外部装置にデータを送信する処理が当該操作又は当該プログラムにより指示された場合には、当該外部装置宛のデータを前記第１通信手段から前記中継装置に送信する送信処理を行う処理手段と、前記操作手段が受け付けた操作の履歴又は前記処理手段が行った処理の履歴を表す履歴情報を前記第１通信手段から前記中継装置に送信する履歴送信手段とを備え、前記中継装置は、通信を行う第２通信手段と、前記情報処理装置から送信されてくる前記外部装置宛のデータと前記履歴情報とを前記第２通信手段が受信すると、当該履歴情報を解析して、前記処理手段による当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであるか否かを判定する判定手段と、前記判定手段によって前記送信処理が正当な指示に従って行われたものであると判定された場合には、前記第２通信手段が受信した前記外部装置宛のデータを当該外部装置に転送し、前記判定手段によって前記送信処理が正当な指示に従って行われたものではない判定された場合には、前記第２通信手段が受信した前記外部装置宛のデータを当該外部装置に転送しない転送制御手段とを備えることを特徴とする通信システムを提供する。
【０００７】
本発明の好ましい態様において、前記情報処理装置の前記履歴送信手段は、前記操作手段が操作される度又は前記処理手段が処理を行う度に、前記履歴情報を前記第１通信手段から前記中継装置に送信してもよい。
【０００８】
本発明の好ましい態様において、前記情報処理装置の前記履歴送信手段は、前記履歴情報を記憶する記憶手段を備え、前記処理手段が前記送信処理を行う時に、前記記憶手段から前記履歴情報を読み出して、前記第１通信手段から前記中継装置に送信してもよい。
【０００９】
本発明の好ましい態様において、前記情報処理装置の前記履歴送信手段は、前記履歴情報を暗号化して前記第１通信手段から前記中継装置に送信し、前記中継装置の前記第２通信手段は、前記情報処理装置から暗号化された前記履歴情報が送信されてくると、当該暗号化された履歴情報を受信して、これを復号し、前記判定手段は、復号された前記履歴情報を解析して前記判定を行ってもよい。
【００１０】
また、本発明は、自装置に接続された情報処理装置及び自装置に接続された外部装置と通信を行う通信手段と、前記情報処理装置から送信されてくる前記外部装置宛のデータと、前記情報処理装置の操作手段が受け付けた操作の履歴又は前記情報処理装置の処理手段が行った処理の履歴を表す履歴情報とを前記通信手段が受信すると、当該履歴情報を解析して、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであるか否かを判定する判定手段と、前記判定手段によって前記送信処理が正当な指示に従って行われたものであると判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送し、前記判定手段によって前記送信処理が正当な指示に従って行われたものではない判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送しない転送制御手段とを備えることを特徴とする中継装置を提供する。
【００１１】
本発明の好ましい態様において、前記判定手段は、前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれている場合には、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであると判定し、前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれていない場合には、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものではないと判定してもよい。
【００１２】
本発明の好ましい態様において、前記判定手段は、不正なプログラムによる指示に従って行われる処理のパターンを記憶する記憶手段を備え、前記記憶手段によって記憶されている前記処理のパターンが前記履歴情報に含まれている場合には、前記通信手段が受信したデータの送信処理が前記情報処理装置において正当な指示に従って行われたものではないと判定してもよい。
【００１３】
本発明の好ましい態様において、前記判定手段は、前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれている場合には、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであると判定し、前記通信手段が受信したデータの送信処理を指示する操作の履歴が前記履歴情報に含まれておらず、且つ、前記記憶手段によって記憶されている前記処理のパターンが前記履歴情報に含まれている場合には、前記通信手段が受信したデータの送信処理が前記情報処理装置において正当な指示に従って行われたものではないと判定してもよい。
【００１４】
本発明の好ましい態様において、前記判定手段は、正当な指示を行うプログラムを特定する正当プログラム情報、又は、不当な指示を行うプログラムを特定する不正プログラム情報を記憶する記憶手段を備え、前記通信手段が受信したデータの送信処理が前記正当プログラム情報によって特定されるプログラムによる指示に従って行われたことを表す処理の履歴が前記履歴情報に含まれている場合には、当該データの送信処理を前記情報処理装置において正当な指示に従って行われたものであると判定し、前記通信手段が受信したデータの送信処理が前記不正プログラム情報によって特定されるプログラムによる指示に従って行われたことを表す処理の履歴が前記履歴情報に含まれている場合には、当該データの送信処理を前記情報処理装置において正当な指示に従って行われたものではないと判定してもよい。
【００１５】
本発明の好ましい態様においては、前記情報処理装置からのデータの送信が許可されている外部装置を特定する許可情報を記憶する記憶手段を備え、前記通信手段が前記記憶手段に記憶されている前記許可情報によって特定される外部装置宛のデータを受信した場合には、前記判定手段は前記判定を行わずに、前記転送制御手段は、前記データを当該外部装置宛に転送してもよい。
【００１６】
また、本発明は、コンピュータを、自コンピュータに接続された情報処理装置及び自コンピュータに接続された外部装置と通信を行う通信手段と、前記情報処理装置から送信されてくる前記外部装置宛のデータと、前記情報処理装置の操作手段が受け付けた操作の履歴又は前記情報処理装置の処理手段が行った処理の履歴を表す履歴情報とを前記通信手段が受信すると、当該履歴情報を解析して、当該データの送信処理が前記情報処理装置において正当な指示に従って行われたものであるか否かを判定する判定手段と、前記判定手段によって前記送信処理が正当な指示に従って行われたものであると判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送し、前記判定手段によって前記送信処理が正当な指示に従って行われたものではない判定された場合には、前記通信手段が受信した前記外部装置宛のデータを当該外部装置に転送しない転送制御手段として機能させるためのプログラムを提供する。
【発明の効果】
【００１７】
本発明によれば、情報処理装置から外部装置宛のデータ通信において、正当な指示に従って行われるデータ通信については許可し、不当な指示に従って行われるデータ通信については許可しない仕組みを実現することができる。
【発明を実施するための最良の形態】
【００１８】
［実施形態］
まず、図１を参照して、本発明に係る通信システム１について説明する。同図に示すように、通信システム１は、メールサーバ装置１０と、複数のクライアント装置２０と、ファイアウォール装置３０とを備えている。メールサーバ装置１０は、インターネットなどの外部ネットワークＮ１に接続されており、クライアント装置２０は、ＬＡＮなどの内部ネットワークＮ２に接続されている。ファイアウォール装置３０は、外部ネットワークＮ１と内部ネットワークＮ２の双方に接続されており、クライアント装置２０とメールサーバ装置１０間の通信を中継して、その通信の制御を行う。
【００１９】
次に、図２を参照して、メールサーバ装置１０の構成について説明する。
メールサーバ装置１０は、外部ネットワークＮ１を介してファイアウォール装置３０に接続された外部装置であり、ＣＰＵ（Central Processing Unit）１１と、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などのメモリ１２と、通信部１３と、記憶部１４とを備えている。ＣＰＵ１１は、メモリ１２に記憶されている制御プログラムを実行することによって、メールサーバ装置１０全体を制御する。通信部１３は、ファイアウォール装置３０と通信を行うための通信手段である。記憶部１４は、例えばハードディスクであり、各種のデータを記憶しているほか、電子メールをメールアドレス毎に記憶するためのメールボックスと呼ばれる記憶領域を有している。このメールサーバ装置１０は、ＣＰＵ１１がメモリ１２に記憶されているメール配送用のプログラムを実行することにより、メール送信元のクライアント装置２０から送信されてきたメールパケットをいったん記憶部１４のメールボックスに記憶したのち、そのメール送信先からの要求に応じて記憶部１４から読み出して送信先に転送する。なお、このメール配送用のプログラムは記憶部１４に記憶されていてもよい。このメールサーバ装置１０は予め幾つかのポート番号が設定されているが、クライアント装置２０からのメールパケットの受信用のポートには、ＳＭＴＰ（Simple Mail Transfer Protocol）に対応するウェルノウンポート番号である「２５番」というポート番号が設定されているものとする。
【００２０】
次に、図３を参照して、クライアント装置２０の構成について説明する。
クライアント装置２０は、利用者によって操作されるパーソナルコンピュータや携帯電話機などの情報処理装置であり、ＣＰＵ２１と、ＲＯＭやＲＡＭなどのメモリ２２と、通信部２３と、記憶部２４と、操作部２５と、表示部２６とを備えている。ＣＰＵ２１は、メモリ２２に記憶されているプログラムを実行することによって、各種の処理を実行する処理手段である。通信部２３は、ファイアウォール装置３０経由でメールサーバ装置１０と通信を行うための通信手段である。記憶部２４は、例えばハードディスクであり、各種のデータを記憶する記憶手段である。操作部２５は、例えばキーボードとマウスであり、利用者の操作を受け付けて、その操作に応じた信号をＣＰＵ２１に供給する操作手段である。ＣＰＵ１１はこの操作に応じて、利用者が指示した処理を実行する。表示部２６は、例えば液晶ディスプレイであり、ＣＰＵ２１による制御の下で各種の画像を表示する。このクライアント装置２０は、ＣＰＵ２１がメモリ２２に記憶されている履歴送信用のプログラムを実行することにより、操作部２５が受け付けた操作の履歴又はＣＰＵ２１が行った処理の履歴を表す履歴情報を、通信部２３からファイアウォール装置３０に送信するようになっている。なお、この履歴送信用のプログラムは、記憶部２４に記憶されていてもよい。この履歴情報の送信は、利用者によって操作部２５が操作される度又はＣＰＵ２１が処理を行う度に行われる。
【００２１】
次に、図４を参照して、ファイアウォール装置３０の構成について説明する。
ファイアウォール装置３０は、クライアント装置２０とメールサーバ装置１０との間で送受信されるデータを中継する中継装置であり、ＣＰＵ３１と、フラッシュメモリやＲＡＭなどのメモリ３２と、通信部３３とを備えている。ＣＰＵ３１は、メモリ３２に記憶されている制御プログラムを実行することによって、ファイアウォール装置３０全体を制御する。通信部３３は、クライアント装置２０やメールサーバ装置１０と通信を行うための通信手段である。このファイアウォール装置３０は、ＣＰＵ３１がメモリ３２に記憶されている転送制御用のプログラムを実行することにより、クライアント装置２０とメールサーバ装置１０間の通信を制御する。また、メモリ３２には、不正なプログラムによる指示に従って行われる処理のパターンが予め記憶されている。この処理のパターンは、クライアント装置２０において行われた処理が、不当なプログラムによる指示に従って行われたものか、正当なプログラムによる指示に従って行われたのかを判断するために用いられるものである。ここでいう処理のパターンとは、処理の方式や傾向を類型化したものであり、例えば処理の具体的手順を表したもので、同一の処理が連続して行われた回数やその処理間隔などが含まれる。以下の説明では、同一のポート番号宛のデータの「連続送信回数」が「１０回超」であり、且つそれらのデータの「送信間隔」が「１秒以内」であるという処理パターンがメモリ３２に記憶されているものとする。以下、この処理のパターンことを、不正処理パターンと呼ぶ。
【００２２】
次に、図５を参照して、通信システム１の動作について説明する。
上述したように、クライアント装置２０のＣＰＵ２１は、利用者によって操作部２５が操作される度又はＣＰＵ２１が処理を行う度に、操作部２５が受け付けた操作の履歴又はＣＰＵ２１が行った処理の履歴を表す履歴情報を生成して、通信部２３からファイアウォール装置３０に送信する（ステップＳ１１０）。この履歴情報の一例を挙げると、例えば利用者によってマウスが移動されると、マウスの移動とそれが行われた時刻とを表す「２００７／ｘｘ／ｙｙ  ２０：１０：１５  Ｍｏｕｓｅ  Ｍｏｖｅ」という履歴情報がファイアウォール装置３０に送信される。続いて、利用者によってマウスの左ボタンがクリックされると、マウスの左クリックとそれが行われた時刻とを表す「２００７／ｘｘ／ｙｙ  ２０：１０：１７  Ｍｏｕｓｅ  Ｌｅｆｔ  Ｂｕｔｔｏｎ  Ｃｌｉｃｋ」という履歴情報がファイアウォール装置３０に送信される。これらの履歴情報は、操作部２５が受け付けた操作の履歴を表す履歴情報に相当する。そして、マウスの左クリックによって、電子メールの送受信を行うためのメーラーがＣＰＵ２１によって起動されると、メーラーの実行とそれが行われた時刻を表す「２００７／ｘｘ／ｙｙ  ２０：１０：１７  Ｍａｉｌｅｒ  Ｓｔａｒｔ」という履歴情報がファイアウォール装置３０に送信される。この履歴情報は、ＣＰＵ２１が行った処理の履歴を表す履歴情報に相当する。
【００２３】
履歴情報がクライアント装置２０からファイアウォール装置３０に送信される際には、その送信元のクライアント装置の通信アドレスとして、ネットワークＮ２においてクライアント装置２０に割り当てられたネットワークアドレスがＣＰＵ２１により履歴情報に付加される。そして、ファイアウォール装置３０のＣＰＵ３１は、クライアント装置２０から履歴情報が送信されてくる度に、その履歴情報を通信部３３によって受信し、メモリ３２に記憶させる（ステップＳ１２０）。このときに、ＣＰＵ３１は、通信部３３によって受信された履歴情報を、その送信元となるクライアント装置２０のネットワークアドレス毎にメモリ３２に記憶させる。これにより、メモリ３２には、各々のクライアント装置２０において操作部２５が受け付けた操作の履歴とＣＰＵ２１が行った処理の履歴とを表す履歴情報が記憶されていく。
【００２４】
ここでは、上述したようにメーラーがＣＰＵ２１によって起動された後に、利用者によってクライアント装置２０のマウスの左ボタンがクリックされて、メールサーバ装置１０宛のメールパケットを送信する送信処理が指示された場合を想定する。この場合、クライアント装置２０のＣＰＵ２１は、上述と同様にして、マウスの左クリックとそれが行われた時刻とを表す「２００７／ｘｘ／ｙｙ  ２０：１５：１２  Ｍｏｕｓｅ  Ｌｅｆｔ  Ｂｕｔｔｏｎ  Ｃｌｉｃｋ」という履歴情報をファイアウォール装置３０に送信する（ステップＳ１１０）。続いて、ＣＰＵ２１は、マウスの左クリックによって指示された、メールサーバ装置１０宛のメールパケットの送信処理を行う（ステップＳ１３０）。このとき、ＣＰＵ２１は、メールサーバ装置１０の２５番ポート宛のメールパケットの送信とそれが行われた時刻とを表す「２００７／ｘｘ／ｙｙ  ２０：１５：１３  Ｐａｃｋｅｔ（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ  ２５）Ｓｅｎｄ」という履歴情報を送信し、それに続いて、メールサーバ装置１０宛のメールパケットを送信する。なお、このメールパケットには、メールサーバ装置１０のアドレス情報（メールサーバ装置１０の通信アドレスとポート番号「２５番」とを含む）のほか、そのメールパケットの最終的な送信先を表すメールアドレスなども含まれている。
【００２５】
ファイアウォール装置３０のＣＰＵ３１は、上述のステップＳ１２０と同様にして、クライアント装置２０から送信されてきた履歴情報を通信部３３によって受信し、メモリ３２に記憶させるとともに、クライアント装置２０から送信されてきたメールパケットも通信部３３によって受信する（ステップＳ１４０）。これにより、メモリ３２には、例えば図６に示す履歴情報Ｌ１が記憶される。この履歴情報Ｌ１においては、「２００７／ｘｘ／ｙｙ  ２０：１５：１２  Ｍｏｕｓｅ  Ｌｅｆｔ  Ｂｕｔｔｏｎ  Ｃｌｉｃｋ」という操作の履歴ｌ１１の後に、「２００７／ｘｘ／ｙｙ  ２０：１５：１３  Ｐａｃｋｅｔ（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ  ２５）Ｓｅｎｄ」という処理の履歴ｌ１２が続いている。これは、ステップＳ１４０にて受信したメールパケットの送信処理が、マウスの左クリックによる指示に従って行われたことを表している。
【００２６】
続いて、ＣＰＵ３１は、ステップＳ１２０においてメモリ３２に記憶させた履歴情報を解析して、ステップＳ１４０にて受信したメールパケットの送信処理が、クライアント装置２０において正当な指示に従って行われたものであるか否かを判定する（図５のステップＳ１５０）。具体的に説明すると、まず、ＣＰＵ３１は、クライアント装置２０において行われた送信処理が、操作部２５の操作による指示に従って行われたものであるか否かを判断する。送信処理が操作部２５の操作による指示に従って行われたと判断した場合、ＣＰＵ３１は、この送信処理を正当な指示に従って行われたものであるとみなす。一方、送信処理が操作部２５の操作による指示に従って行われていないと判断した場合、すなわち送信処理がクライアント装置２０において或るプログラムによる指示に従って行われていた場合、ＣＰＵ３１は、この送信処理の履歴情報の中に、メモリ３２に記憶されている不正処理パターンが含まれているか否かを判断する。送信処理の履歴情報に不正処理パターンが含まれていないと判断した場合、ＣＰＵ３１は、この送信処理を正当な指示に従って行われたものであるとみなす。一方、送信処理の履歴情報に不正処理パターンが含まれていると判断した場合、ＣＰＵ３１は、その送信処理を不当な指示に従って行われたものであるとみなす。
【００２７】
図６に示した例では、操作部２５の操作による指示に従ってメールパケットの送信処理が行われたことを表す操作の履歴ｌ１１が履歴情報Ｌ１に含まれているため、ＣＰＵ３１は、ステップＳ１４０にて受信したメールパケットの送信処理が、クライアント装置２０において正当な指示に従って行われたものであると判定する（ステップＳ１５０：ＹＥＳ）。この場合、ＣＰＵ３１は、ステップＳ１４０にて受信したメールパケットを通信部３３からメールサーバ装置１０宛に転送する（ステップＳ１６０）。メールサーバ装置１０のＣＰＵ１１は、ファイアウォール装置３０からメールパケットが転送されてくると、それをいったん記憶部１４のメールボックスに記憶したのち、その送信先からの要求に応じて記憶部１４から読み出して、送信先のメールアドレスが表す最終的な送信先へ配送する（ステップＳ１７０）。これにより、クライアント装置２０から送信されたメールパケットは、そのメールアドレスが表す最終的な送信先に送信される。
【００２８】
次に、例えば、コンピュータウィルスなどの不正なプログラムによって、メールサーバ装置１０宛のメールパケットを多数回繰り返し送信するという不正な送信処理が指示された場合を想定する。この場合、コンピュータウィルスのプログラム名を例えば「ａａａ．ｅｘｅ」とすると、クライアント装置２０のＣＰＵ２１は、上述と同様にして、「ａａａ．ｅｘｅ」というプログラムの実行とそれが行われた時刻を表す「２００７／ｘｘ／ｙｙ  ２０：１０：１８  ａａａ．ｅｘｅ  Ｓｔａｒｔ」という履歴情報をファイアウォール装置３０に送信する（ステップＳ１１０）。続いて、ＣＰＵ２１は、この「ａａａ．ｅｘｅ」というプログラムにより指示された、メールサーバ装置１０宛のメールパケットを繰り返し送信する送信処理を行う（ステップＳ１３０）。これにより、メールサーバ装置１０の２５番ポート宛のメールパケットの送信とそれが行われた時刻とを表す「２００７／ｘｘ／ｙｙ  ２０：１０：１８  Ｐａｃｋｅｔ（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ  ２５）Ｓｅｎｄ」という履歴情報と、２５番ポート宛のメールパケットとが、クライアント装置２０からファイアウォール装置３０に繰り返し送信されることになる。
【００２９】
ファイアウォール装置３０のＣＰＵ３１は、クライアント装置２０から履歴情報及びメールパケットが送信されてくる度に、送信されてきた履歴情報を通信部３３によって受信し、メモリ３２に記憶させるとともに（ステップＳ１２０）、送信されてきたメールパケットを通信部３３によって受信する（ステップＳ１４０）。これにより、メモリ３２には、例えば図７に示す履歴情報Ｌ２が記憶される。この履歴情報Ｌ２においては、操作部２５の操作の履歴が含まれておらず、「２００７／ｘｘ／ｙｙ  ２０：１０：１８  ａａａ．ｅｘｅ  Ｓｔａｒｔ」という処理の履歴ｌ２１の後に、「２００７／ｘｘ／ｙｙ  ２０：１０：１８  Ｐａｃｋｅｔ（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ  ２５）Ｓｅｎｄ」という処理の履歴ｌ２２が１１回続いている。これは、ステップＳ１４０にて受信したメールパケットの送信処理が、操作部２５の操作ではなく、「ａａａ．ｅｘｅ」というプログラムの指示に従って行われたということを表している。
【００３０】
ＣＰＵ３１は、ステップＳ１４０にて通信部３３がメールパケットを受信する度に、ステップＳ１２０においてメモリ３２に記憶させた履歴情報を解析して、受信したメールパケットの送信処理が、クライアント装置２０において正当な指示に従って行われたものであるか否かを判定する（ステップＳ１５０）。この例では、操作部２５の操作ではなく、プログラムによる指示に従ってメールパケットの送信処理が行われたことを表す履歴情報Ｌ２がメモリ３２に記憶されているため、ＣＰＵ３１は、メモリ３２に記憶されている処理のパターンが履歴情報Ｌ２に含まれているか否かに基いて、この判定を行う。
【００３１】
図７に示した履歴情報Ｌ２には、２５番ポート宛のメールパケットの「連続送信回数」が「１１回」であり、且つそれらのメールパケットの「送信間隔」が「１秒以内」であることを表す処理の履歴ｌ２２が含まれている。つまり、この履歴情報Ｌ２には、同一のポート番号宛のデータの「連続送信回数」が「１０回超」であり、且つそれらのデータの「送信間隔」が「１秒以内」であるという処理パターンが含まれている。これはメモリ３２に記憶されている不正処理パターンに合致する。この場合、ＣＰＵ３１は、ステップＳ１４０にて受信したメールパケットの送信処理が、正当な指示に従って行われたものではないと判定し（ステップＳ１５０：ＮＯ）、ステップＳ１４０にて受信したメールパケットをメールサーバ装置１０に転送せずに破棄する（ステップＳ１８０）。これにより、例えばクライアント装置２０のＣＰＵ２１が、不当なプログラムによる指示に従ってメールサーバ装置１０宛のメールパケットを大量に送信する送信処理を行った場合であっても、その送信処理が不当なプログラムによる指示に従って行われたものであるとみなされた時点で、そのメールパケットはメールサーバ装置１０に転送されずに破棄される。つまり、クライアント装置２０からメールサーバ装置１０への攻撃が未然に防止されることになる。
【００３２】
以上説明した実施形態によれば、クライアント装置２０からメールサーバ装置１０宛のメールパケットの送信において、正当な指示に従って行われるメールパケットの送信については許可し、不当な指示に従って行われるメールパケットの送信については許可しないので、不正なデータ通信のみを制限することが可能となる。
【００３３】
［変形例］
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の各変形例を適宜組み合わせてもよい。
（変形例１）
上述した実施形態において、履歴情報には、操作部２５が受け付けた操作の履歴と、ＣＰＵ２１が行った処理の履歴とが両方含まれていた。これに対し、操作部２５が受け付けた操作の履歴のみを表す履歴情報がファイアウォール装置３０に送信されてもよい。この場合、ファイアウォール装置３０のＣＰＵ３１は、クライアント装置２０において操作部２５の操作による指示に従って行われた送信処理については、正当な指示に従って行われたものであると判定し、クライアント装置２０において操作部２５の操作以外の指示に従って行われた送信処理については、不当な指示に従って行われたものであると判定する。例えば、クライアント装置２０からメールパケットの送信処理を指示する操作の履歴を表す履歴情報が送信されていないにも関わらず、メールパケットが送信されてきた場合には、そのメールパケットの送信処理が正当な指示に従って行われたものではないと判定する。
これにより、履歴情報にＣＰＵ２１が行った処理の履歴を表す履歴情報が含まれていなくても、クライアント装置２０からメールサーバ装置１０宛のメールパケットの送信において、正当な指示に従って行われるメールパケットの送信については許可する一方、不当な指示に従って行われるメールパケットの送信を制限することができる。
【００３４】
また、ＣＰＵ２１が行った処理の履歴のみを表す履歴情報がファイアウォール装置３０に送信されてもよい。この場合、ファイアウォール装置３０のＣＰＵ３１は、メモリ３２に記憶されている不正処理パターンが履歴情報に含まれている場合には、メールパケットの送信処理が正当な指示に従って行われたものではないと判定し、その不正処理パターンが履歴情報に含まれていない場合には、メールパケットの送信処理が正当な指示に従って行われたものであると判定する。
例えば、図７に示した履歴情報Ｌ２がメモリ３２に記憶されている場合、この履歴情報Ｌ２にはメモリ３２に記憶されている処理のパターンが含まれているため、ＣＰＵ３１は、ステップＳ１４０にて受信したメールパケットの送信処理が正当な指示に従って行われたものではないと判定する。これに対し、例えば図８に示す履歴情報Ｌ３がメモリ３２に記憶されている場合を考えると、この履歴情報Ｌ３には、２５番ポート宛にメールパケットが「２回」連続して送信されており、且つそれらの送信間隔が「１秒超」であることを表す処理の履歴が含まれている。この処理のパターンは、メモリ３２に記憶されている不正処理パターンに合致しない。よって、ＣＰＵ３１は、ステップＳ１４０にて受信したメールパケットの送信処理が正当な指示に従って行われたものであると判定する。
これにより、履歴情報に操作部２５が受け付けた操作の履歴を表す履歴情報が含まれていなくても、正当な指示に従って行われたメールパケットの送信についてはその通信を許可する一方、不当な指示に従って行われたメールパケットの送信については制限することができる。
【００３５】
（変形例２）
上述した実施形態では、メモリ３２に記憶されている不正処理パターンが履歴情報に含まれていれば、ステップＳ１４０にて受信したメールパケットの送信処理が、正当な指示に従って行われたものではないと判定していた。これに対し、不正な指示を行うプログラムのプログラム名を列挙した不正プログラムリスト（不正プログラム情報）を予めメモリ３２に記憶させておき、この不正プログラムリストに登録されているプログラムによる指示に従って行われた送信処理については、正当な指示に従って行われたものではないと判定してもよい。
具体的に説明すると、ＣＰＵ３１は、まずメモリ３２に記憶されている履歴情報に、ステップＳ１４０にて受信したメールパケットの送信処理が不正プログラムリストのプログラムによる指示に従って行われたことを表す処理の履歴が含まれているか否かを判断する。メールパケットの送信処理が不正プログラムリストのプログラムによる指示に従って行われたことを表す処理の履歴が履歴情報に含まれている場合、ＣＰＵ３１は、その送信処理を正当な指示に従って行われたものではないと判定する。一方、メールパケットの送信処理が不正プログラムリストに登録されていないプログラムによる指示に従って行われたことを表す処理の履歴が履歴情報に含まれている場合、ＣＰＵ３１は、その送信処理を正当な指示に従って行われたものであると判定する。
あるいは、正当な指示を行うプログラムのプログラム名を列挙した正当プログラムリスト（正当プログラム情報）を予めメモリ３２に記憶させておき、ＣＰＵ３１は、この正当プログラムリストに登録されている正当なプログラムによる指示に従って行われた送信処理については、正当な指示に従って行われたものであると判定してもよい。
これにより、例えば公表されているコンピュータウィルスなどを予め不正プログラムリストに登録させておけば、クライアント装置２０においてコンピュータウィルスなどの不正なプログラムによる指示に従って行われたデータ通信を阻止することができる。また、安全なプログラムであると確認されているプログラムを正当プログラムリストに登録させておけば、クライアント装置２０において正当なプログラムによる指示に従って行われたデータ通信については常に許可されるようになる。なお、上述した不正プログラムリスト（不正プログラム情報）や正当プログラムリスト（正当プログラム情報）は、それぞれプログラムを特定し得るものであればよく、プログラム名以外の何らかの情報、例えば拡張子でプログラムを特定してもよい。
【００３６】
（変形例３）
上述した実施形態では、クライアント装置２０からメールサーバ装置１０宛にメールパケットが送信される度に、そのメールパケットをメールサーバ装置１０に転送するか否かを判断するための転送制御処理が行われていた。これに対し、ファイアウォール装置３０は、クライアント装置２０から外部ネットワークＮ１に接続された特定の外部装置宛にデータが送信されたときには、この転送制御処理を行わず、クライアント装置２０から特定の外部装置以外の外部装置宛にデータが送信されたときには、この転送制御処理を行うようにしてもよい。
例えば、外部ネットワークＮ１に、上述したメールサーバ装置１０の他に、ブラウザによって表示可能なコンテンツデータを配信するＷｅｂサーバ装置と、ファイルデータの転送を行うＦＴＰサーバ装置とが接続されている構成を想定する。このＷｅｂサーバ装置には、例えばＨＴＴＰ（HyperText Transfer Protocol）に対応するウェルノウンポート番号である８０番ポートが予め割り当てられおり、ＦＴＰサーバ装置には、例えばＦＴＰに対応するウェルノウンポート番号である２０番ポートと２１番ポートとが予め割り当てられている。この構成において、クライアント装置２０からのデータの送信を許可する外部装置を特定する許可情報として、その外部装置が提供する各種サービスのポート番号を使用した場合を考える。この場合、ファイアウォール装置３０のメモリ３２には、クライアント装置２０からのデータの送信を許可するポート番号を許可情報として予め記憶させておく。例えば、クライアント装置２０からＨＴＴＰに対応するウェルノウンポート番号である８０番ポートへのデータ送信を許可する場合には、この８０番ポートを許可情報として予めメモリ３２に記憶させておく。
そして、ファイアウォール装置３０のＣＰＵ３１は、クライアント装置２０からあるポート番号宛にデータが送信されてくると、そのポート番号がメモリ３２に許可情報として記憶されているか否かを判定する。ここで、データの宛先となるポート番号が許可情報としてメモリ３２に記憶されている場合、ＣＰＵ３１は、このデータをそのポート番号宛に転送する。一方、データの宛先となるポート番号が許可情報としてメモリ３２に記憶されていない場合、ＣＰＵ３１は、上述した実施形態と同様にして、そのデータを転送するか否かを判断するための転送制御処理を行う。例えば、クライアント装置２０から８０番ポート宛のデータが送信されてきた場合、８０番ポートはメモリ３２に許可情報として記憶されているため、ＣＰＵ３１は、このデータをＷｅｂサーバ装置の８０番ポート宛にそのまま転送する。一方、クライアント装置２０から２０番ポート又は２１番ポート宛のデータが送信されてきた場合、２０番ポート又は２１番ポートはメモリ３２に許可情報として記憶されていないため、ＣＰＵ３１は、上述した実施形態と同様にして、このデータをＦＴＰサーバ装置の２０番ポート宛又は２１番ポートに転送するか否かを判断するための転送制御処理を行う。
この構成によれば、クライアント装置２０からのデータの送信を許可する外部装置を特定する許可情報を予めメモリ３２に記憶させておけば、クライアント装置２０からその外部装置宛てのデータの送信については転送制御処理が行われない。この許可情報としては、上述したポート番号であってもよいし、外部装置の識別情報、例えば通信アドレスやホスト名などであってもよい。また、外部装置の識別情報とポート番号とを組み合わせたものを許可情報としてもよい。外部装置の識別情報とポート番号とを組み合わせたものを許可情報とした場合には、単一の外部装置が複数のサービスを提供している構成であっても、その外部装置の特定のサービスにおいて使用されるポート番号宛のデータについては転送制御処理を行わずにそのまま送信することができる。この変形例によれば、クライアント装置２０から特定の外部装置又はポート番号宛のデータの送信における遅延時間を短くすることができる。
【００３７】
（変形例４）
上述した実施形態において、クライアント装置２０のＣＰＵ２１は、利用者によって操作部２５が操作される度又はＣＰＵ２１が処理を行う度に、履歴情報を通信部２３からファイアウォール装置３０に送信していた。これに対し、クライアント装置２０のＣＰＵ２１は、この履歴情報を記憶部２４に記憶させておき、メールサーバ装置１０宛のメールパケットを送信する送信処理を行う時に、記憶部２４から履歴情報を読み出して、通信部２３からファイアウォール装置３０に送信してもよい。ここでいう「送信処理を行う時」とは、送信処理の直前直後も含む。ファイアウォール装置３０のＣＰＵ３１が履歴情報を解析する時間を十分に確保するためには、クライアント装置２０のＣＰＵ２１は、まずは履歴情報の送信を終えた後にメールサーバ装置１０宛のメールパケットを送信することが望ましい。ただし、ファイアウォール装置３０におけるメールパケットの転送遅延が許されるなら、クライアント装置２０のＣＰＵ２１は、メールサーバ装置１０宛のメールパケットを送信した直後に履歴情報を送信してもよい。この場合、上述したステップＳ１３０〜Ｓ１４０の処理が行われた後、ステップＳ１１０〜Ｓ１２０の処理が行われることになる。これにより、各々のクライアント装置２０からファイアウォール装置３０に履歴情報がまとめて送信されるため、内部ネットワークＮ２の負荷を低減することができる。
【００３８】
（変形例５）
上述した実施形態において、クライアント装置２０からファイアウォール装置３０への履歴情報の送信は、非暗号化状態で行われていた。これに対し、クライアント装置２０からファイアウォール装置３０への送信される履歴情報が暗号化されてもよい。この場合、クライアント装置２０のＣＰＵ２１は、まず履歴情報を暗号化し、暗号化された履歴情報を通信部２３からファイアウォール装置３０に送信する。ファイアウォール装置３０のＣＰＵ３１は、クライアント装置２０から暗号化された履歴情報が送信されてくると、その暗号化された履歴情報を受信した後、復号してからメモリ３２に記憶させる。これにより、クライアント装置２０からファイアウォール装置３０に送信される履歴情報の改竄を防ぐことができる。
【００３９】
（変形例６）
上述した実施形態において、例えば履歴情報の送信を行っていないクライアント装置２０から、メールサーバ装置１０宛のメールパケットが送信されてきた場合、ファイアウォール装置３０のＣＰＵ３１は、そのクライアント装置２０に対応する履歴情報を検索しても見つからないことになる。このようなときには、ＣＰＵ３１は、データ通信の指示が正当か不当かを判断できないし、履歴情報を送信しないということから不当なデータ通信であるということもできるので、そのメールパケットをメールサーバ装置１０に転送せずに、破棄してもよい。
【００４０】
（変形例７）
上述した実施形態では、同一のポート番号宛へのデータの「連続送信回数」が「１０回超」であり、且つそれらのデータの「送信間隔」が「１秒以内」であるという不正処理パターンを例示したが、この例に限らない。例えば上記の回数や間隔の具体的数値はもちろん任意に決めることができる。また、或る種類の処理を行った後に別の種類の処理を行ったというような、処理の種類とその処理順などを不正処理パターンとしてもよいし、或る処理を一定時間以上継続しているとか、或る一定期間毎に処理を実行しているなどといった処理時間や処理の規則性などを不正処理パターンとしてもよい。つまり、この不正処理パターンは、クライアント装置２０において不当なプログラムによる指示に従って行われる処理を表すものであればよい。また、この処理のパターンは、例えば新しいコンピュータウィルスによる指示に従って行われる処理のパターンが公表される度に書き換えられてもよい。
【００４１】
（変形例８）
上述したファイアウォール装置３０のＣＰＵ３１又はクライアント装置２０のＣＰＵ２１が実行するプログラムは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、フラッシュメモリなどの記録媒体に記録した状態で提供し得る。また、インターネットなどのネットワーク経由でコンピュータにダウンロードさせることも可能である。即ち、本発明をプログラムとして実現することもできる。
【図面の簡単な説明】
【００４２】
【図１】本発明に係る通信システム１を示す図である。
【図２】メールサーバ装置１０の構成を示す図である。
【図３】クライアント装置２０の構成を示す図である。
【図４】ファイアウォール装置３０の構成を示す図である。
【図５】通信システム１の動作を示すシーケンス図である。
【図６】履歴情報Ｌ１の一例を示す図である。
【図７】履歴情報Ｌ２の一例を示す図である。
【図８】履歴情報Ｌ３の一例を示す図である。
【符号の説明】
【００４３】
１…通信システム、１０…メールサーバ装置、１１…ＣＰＵ、１２…メモリ、１３…通信部、１４…記憶部、２０…クライアント装置、２１…ＣＰＵ、２２…メモリ、２３…通信部、２４…記憶部、２５…操作部、２６…表示部、３０…ファイアウォール装置、３１…ＣＰＵ、３２…メモリ、３３…通信部。
【図１】
2009100359.tif 000003
【図２】
2009100359.tif 000004
【図３】
2009100359.tif 000005
【図４】
2009100359.tif 000006
【図５】
2009100359.tif 000007
【図６】
2009100359.tif 000008
【図７】
2009100359.tif 000009
【図８】
2009100359.tif 000010