(57)【要約】【課題】暗号化されたプロトコルによる外部装置へのアクセスを把握できる情報処理装置を提供する。【解決手段】通信するプロセスが動作する情報処理装置であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出手段と、通信先へのアクセス可否を判定するための情報を含む設定情報を保持する保持手段と、前記設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記プロセスによる前記通信先へのアクセスを禁止する禁止手段と、を備えていることを特徴とする。【選択図】図３
2014206929.tif 000002
【特許請求の範囲】
【請求項１】
通信するプロセスが動作する情報処理装置であって、
前記プロセスが暗号通信を行う際の接続処理を検出する検出手段と、
通信先へのアクセス可否を判定するための情報を含む設定情報を保持する保持手段と、
前記設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記プロセスによる前記通信先へのアクセスを禁止する禁止手段と、
を備えていることを特徴とする情報処理装置。
【請求項２】
前記検出した接続処理を実行したユーザを特定する特定手段をさらに備えていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、前記情報処理装置にログオンしているユーザを、前記検出した接続処理を実行したユーザと特定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記保持手段は、プロセスと、該プロセスが使用する通信ポートを示すポート情報との対応関係を示す第１情報と、ユーザと、該ユーザが起動したプロセスとの対応関係を示す第２情報を保持し、
前記特定手段は、前記検出した接続処理に含まれる通信ポートと前記第１情報から前記検出した接続処理に対応するプロセスを判定し、前記判定したプロセスと前記第２情報から前記検出した接続処理を実行したユーザを特定することを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記第１情報は、プロセスが通信ポートを使用するために用いるドライバ・ソフトウェアの入力又は出力をフィルタリングすることにより、通信ポートにアクセスするために使用するアプリケーション・プログラミング・インタフェースとプロセスとの通信を監視することにより、或いは、ポート監視インターフェースにより取得されたものであることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記設定情報は、ユーザ及び／又はプロセス毎に、通信先へのアクセス可否を判定するための情報を含むことを特徴とする請求項２から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記特定したユーザと、前記暗号通信を行うプロセスと、前記暗号通信の通信先の少なくとも１つを含むログ情報を記録する記録手段をさらに備えていることを特徴とする請求項２から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記記録手段が記録したログ情報を予め定められた管理装置へ送信する送信手段を更に備えていることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記情報処理装置は、他の情報処理装置のユーザが前記情報処理装置にログオンして前記情報処理装置を使用できる様に構成されていることを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記情報処理装置は複数のユーザが同時に使用できる様に構成されていることを特徴とする請求項２から９のいずれか１項に記載の情報処理装置。
【請求項１１】
通信するプロセスが動作する情報処理装置であって、
前記プロセスが暗号通信を行う際の接続処理を検出する検出手段と、
前記暗号通信の通信先をログ情報として記録する記録手段と、
を備えていることを特徴とする情報処理装置。
【請求項１２】
通信するプロセスが動作する情報処理装置であって、
前記プロセスが暗号通信を行う際の接続処理を検出する検出手段と、
前記検出した接続処理を実行したユーザを特定する特定手段と、
を備えていることを特徴とする情報処理装置。
【請求項１３】
クライアント装置の通信を中継する情報処理装置であって、
前記クライアント装置が暗号通信を行う際の接続処理を検出する検出手段と、
通信先へのアクセス可否を判定するための情報を含む設定情報を保持する保持手段と、
前記設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記暗号通信を禁止する禁止手段と、
を備えていることを特徴とする情報処理装置。
【請求項１４】
クライアント装置の通信を中継する情報処理装置であって、
前記クライアント装置が暗号通信を行う際の接続処理を検出する検出手段と、
前記暗号通信の通信先をログ情報として記録する記録手段と、
を備えていることを特徴とする情報処理装置。
【請求項１５】
クライアント装置の通信を中継する情報処理装置であって、
前記クライアント装置が暗号通信を行う際の接続処理を検出する検出手段と、
前記クライアント装置にログオンしているユーザを前記接続処理に含まれる前記クライアント装置についての情報から特定する特定手段と、
を備えていることを特徴とする情報処理装置。
【請求項１６】
通信するプロセスが動作する情報処理装置における制御方法であって、
前記プロセスが暗号通信を行う際の接続処理を検出する検出ステップと、
通信先へのアクセス可否を判定するための情報を含む設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記暗号通信を禁止する禁止ステップと、
を含むことを特徴とする制御方法。
【請求項１７】
通信するプロセスが動作する情報処理装置における制御方法であって、
前記プロセスが暗号通信を行う際の接続処理を検出する検出ステップと、
前記暗号通信の通信先をログ情報として記録する記録ステップと、
を含むことを特徴とする制御方法。
【請求項１８】
通信するプロセスが動作する情報処理装置における制御方法であって、
前記プロセスが暗号通信を行う際の接続処理を検出する検出ステップと、
前記検出した接続処理を実行したユーザを特定する特定ステップと、
を含むことを特徴とする制御方法。
【請求項１９】
クライアント装置の通信を中継する情報処理装置における制御方法であって、
前記クライアント装置が暗号通信を行う際の接続処理を検出する検出ステップと、
通信先へのアクセス可否を判定するための情報を含む設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記暗号通信を禁止する禁止ステップと、
を含むことを特徴とする制御方法。
【請求項２０】
クライアント装置の通信を中継する情報処理装置における制御方法であって、
前記クライアント装置が暗号通信を行う際の接続処理を検出する検出ステップと、
前記暗号通信の通信先をログ情報として記録する記録ステップと、
を含むことを特徴とする制御方法。
【請求項２１】
クライアント装置の通信を中継する情報処理装置における制御方法であって、
前記クライアント装置が暗号通信を行う際の接続処理を検出する検出ステップと、
前記クライアント装置にログオンしているユーザを前記接続処理に含まれる前記クライアント装置についての情報から特定する特定ステップと、
を含むことを特徴とする制御方法。
【請求項２２】
コンピュータ可読媒体に記憶されたプログラムであって、コンピュータを請求項１から１５のいずれか１項に記載の情報処理装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理装置の制御方法及びプログラムに関し、特に、外部装置へのアクセスログの取得技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータの普及や通信技術の進展などにより、インターネットは、子供を含む幅広い層に利用されるに至っている。その多くの利便性によって、インターネットへのアクセスは、ビジネス、学校、家庭生活において、我々の毎日の活動にほとんど不可欠のものになっている。
【０００３】
他方で、インターネットの広範な普及に伴い、近年、学生、子供、従業者が特定の望ましくないウェブサイトにアクセスすることが問題となっている。また、インターネットのユーザの使用の仕方次第で、機密情報が漏洩しうることも問題となっている。
【０００４】
このような問題意識に基づき、ユーザのウェブサイトへのアクセスを監視するために、特許文献１は、パケットキャプチャによりアクセスログの取得を行う構成を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２７６７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の構成では、コンピュータが暗号化されていないプロトコル(ＨＴＴＰ)によりどのウェブサイトにアクセスしたのかを把握することはできるが、コンピュータが暗号化されているプロトコル(ＨＴＴＰＳ)によりどのウェブサイトにアクセスしたのかを把握することができない。また現在はＷｅｂメールサービスやストレージサービスはＨＴＴＰＳでアクセスすることが多い。すなわち、Ｗｅｂメールやストレージサービスを利用してユーザが機密情報の漏洩等を行うこと等を把握し、禁止することができない。
【０００７】
本発明は上記課題に鑑みなされたものであり、暗号化されたプロトコルによる外部装置へのアクセスを少なくとも把握できる情報処理装置、その制御方法及びプログラムを提供するものである。
【課題を解決するための手段】
【０００８】
本発明の一側面によると、通信するプロセスが動作する情報処理装置であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出手段と、通信先へのアクセス可否を判定するための情報を含む設定情報を保持する保持手段と、前記設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記プロセスによる前記通信先へのアクセスを禁止する禁止手段と、を備えていることを特徴とする。
【０００９】
本発明の一側面によると、通信するプロセスが動作する情報処理装置であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出手段と、前記暗号通信の通信先をログ情報として記録する記録手段と、を備えていることを特徴とする。
【００１０】
本発明の一側面によると、通信するプロセスが動作する情報処理装置であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出手段と、前記検出した接続処理を実行したユーザを特定する特定手段と、を備えていることを特徴とする。
【００１１】
本発明の一側面によると、クライアント装置の通信を中継する情報処理装置であって、前記クライアント装置が暗号通信を行う際の接続処理を検出する検出手段と、通信先へのアクセス可否を判定するための情報を含む設定情報を保持する保持手段と、前記設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記暗号通信を禁止する禁止手段と、を備えていることを特徴とする。
【００１２】
本発明の一側面によると、クライアント装置の通信を中継する情報処理装置であって、前記クライアント装置が暗号通信を行う際の接続処理を検出する検出手段と、前記暗号通信の通信先をログ情報として記録する記録手段と、を備えていることを特徴とする。
【００１３】
本発明の一側面によると、クライアント装置の通信を中継する情報処理装置であって、前記クライアント装置が暗号通信を行う際の接続処理を検出する検出手段と、前記クライアント装置にログオンしているユーザを前記接続処理に含まれる前記クライアント装置についての情報から特定する特定手段と、を備えていることを特徴とする。
【００１４】
本発明の一側面によると、通信するプロセスが動作する情報処理装置における制御方法であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出ステップと、通信先へのアクセス可否を判定するための情報を含む設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記暗号通信を禁止する禁止ステップと、を含むことを特徴とする。
【００１５】
本発明の一側面によると、通信するプロセスが動作する情報処理装置における制御方法であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出ステップと、前記暗号通信の通信先をログ情報として記録する記録ステップと、を含むことを特徴とする。
【００１６】
本発明の一側面によると、通信するプロセスが動作する情報処理装置における制御方法であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出ステップと、前記検出した接続処理を実行したユーザを特定する特定ステップと、を含むことを特徴とする。
【００１７】
本発明の一側面によると、クライアント装置の通信を中継する情報処理装置における制御方法であって、前記クライアント装置が暗号通信を行う際の接続処理を検出する検出ステップと、通信先へのアクセス可否を判定するための情報を含む設定情報により、前記暗号通信の通信先にアクセスできないと判定された場合、前記暗号通信を禁止する禁止ステップと、を含むことを特徴とする。
【００１８】
本発明の一側面によると、クライアント装置の通信を中継する情報処理装置における制御方法であって、前記クライアント装置が暗号通信を行う際の接続処理を検出する検出ステップと、前記暗号通信の通信先をログ情報として記録する記録ステップと、を含むことを特徴とする。
【００１９】
本発明の一側面によると、通信するプロセスが動作する情報処理装置における制御方法であって、前記プロセスが暗号通信を行う際の接続処理を検出する検出ステップと、前記検出した接続処理を実行したユーザを特定する特定ステップと、を含むことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、暗号化されたプロトコルによる外部装置へのアクセスを把握することができる。
【図面の簡単な説明】
【００２１】
【図１】一実施形態による情報処理システムの構成図。
【図２】一実施形態によるユーザ設定の取得処理を示すフローチャート。
【図３】一実施形態による端末装置における、Ｗｅｂアクセス監視処理を示すフローチャート。
【図４】一実施形態によるＴＣＰポートドライバをフィルタリングし、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図５】一実施形態によるＴＣＰポートドライバをフィルタリングし、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図６】一実施形態によるＡＰＩフックにより、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図７】一実施形態によるＡＰＩフックにより、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図８】一実施形態によるＯＳ標準のポート監視インターフェースを利用し、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図９】一実施形態によるＯＳ標準のポート監視インターフェースを利用し、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図１０】一実施形態によるポート情報一覧ＡＰＩを利用し、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図１１】一実施形態によるファイル情報オブジェクト一覧取得ＡＰＩを利用し、プロセスＩＤと通信ポート情報の対応リストを作成する処理を示すフローチャート。
【図１２】一実施形態による情報処理システムの構成図。
【図１３】一実施形態による端末装置における、プロセス毎のＷｅｂアクセス監視処理を示すフローチャート。
【図１４】一実施形態による情報処理システムの構成図。
【図１５】一実施形態によるプロキシ装置でのＷｅｂアクセス監視処理を示すフローチャート。
【図１６】一実施形態によるユーザプロセスリスト及び被アクセスポート情報の一例を示す図。
【発明を実施するための形態】
【００２２】
以下、添付図面を参照して本発明の実施形態を詳細に説明する。
【００２３】
＜第１実施形態＞
（情報処理システム）
図１は、本発明の一実施形態に係る情報処理システムの構成図である。図１に示すように、情報処理システムは、クライアントとして動作する端末装置（以下、クライアント装置と呼ぶ。）１３０、サーバとして動作する端末装置（以下、サーバ装置と呼ぶ。）１１０、プロキシサーバとして動作する端末装置（以下、プロキシ装置と呼ぶ。）１４０、ネットワーク１２０及びインターネット１５０を含む。各端末装置は、パーソナルコンピュータ、携帯情報端末などの情報処理装置であり、本実施形態ではそれぞれパーソナルコンピュータにより実現するものとして説明する。なお、サーバ装置１１０を含めない形態とすることもできる。クライアント装置１３０、サーバ装置１１０及びプロキシ装置１４０は、ネットワーク１２０を介して互いに通信が可能となっている。クライアント装置１３０がインターネット１５０にアクセスする場合はプロキシ装置１４０を経由する必要がある。つまり、プロキシ装置１４０は、クライアント装置１３０のインターネット１５０との通信を中継する装置である。
【００２４】
［クライアント装置］
クライアント装置１３０は、たとえば、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ(Hard Disc Drive)、入力装置、表示装置、インターフェース、システムバスを備えている。後述するように、クライアント装置１３０においては、外部装置と通信するプロセスが動作する。
【００２５】
クライアント装置１３０のＣＰＵは、ＲＯＭやＨＤＤに記憶されているコンピュータプログラムに基づいて各部を制御するプロセッサである。ＲＡＭは書き込み可能メモリであり、ワークエリアとして機能する。ＲＯＭは不揮発性の記憶素子であり、ファームウエアなどを記憶する。ＨＤＤは大容量記憶装置であり、オペレーティングシステム、アプリケーションプログラムなどが記憶されている。なお、セキュリティソフトウェア１３２、Ｗｅｂブラウザ１３３などもＨＤＤに格納される。
【００２６】
セキュリティソフトウェア１３２は、その詳細については後述する様に、クライアント装置１３０で実行されることで、パケットフィルタ機能を提供する。つまり、クライアント装置１３０が行う通信を監視し、外部装置へのアクセスの制御を行う機能ブロックを実現する。この機能ブロックは、さらに、外部装置へのアクセスログ（ログ情報）の取得も行う。
【００２７】
ＣＰＵと各部は、システムバスを介して命令やデータの送受信を実行する。インターフェースは、他の端末装置とネットワーク１２０を介して通信するための通信回路である。
【００２８】
［サーバ装置］
サーバ装置１１０は、たとえば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、入力装置、表示装置、インターフェース、システムバスを備えている。サーバ装置１１０はクライアント装置１３０の動作を管理する管理装置として動作する。クライアント装置１３０が有する構成要素と同一名称の構成要素は、上述したクライアント装置１３０の構成要素と同等の機能を有する。
【００２９】
なお、サーバ装置１１０には、例えば、実行するプログラムによりログ収集部１１１、セキュリティ情報設定部１１２が実現されている。ログ収集部１１１には、クライアント装置１３０から収集したクライアント装置１３０のアクセスログ情報が記録される。セキュリティ情報設定部１１２には、例えば、ユーザ毎、プロセス毎のログ記録を行うか否かについての情報や、外部装置にアクセス可能なプロセスや、その通信先についての情報である設定情報が格納される。通信先は、例えば、ＵＲＬ(Uniform Resource Locator)で特定され、通信不可を示すブラックリストや、通信可を示すホワイトリスト等でアクセスの可否が指定される。なお、ログ収集部１１１、セキュリティ情報設定部１１２は、クライアント装置１３０が備えてもよい。
【００３０】
［プロキシ装置］
プロキシ装置１４０は、たとえば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、入力装置、表示装置、インターフェース、システムバスを備えている。プロキシ装置１４０はクライアント装置１３０のインターネット１５０への通信を管理する管理装置として動作する。クライアント装置１３０が有する構成要素と同一名称の構成要素は、上述したクライアント装置１３０の構成要素と同等の機能を有する。
【００３１】
なお、以下の説明では、クライアント装置１３０、サーバ装置１１０、プロキシ装置１４０がパーソナルコンピュータであることを前提にしているが、本発明は、そのような形態に限定されない。すなわち、クライアント装置１３０、サーバ装置１１０、プロキシ装置１４０が一般的なパーソナルコンピュータと同等以上、若しくはそれに準ずる演算処理能力を有する機器であるならばその種類、機種は限定されるものではない。
【００３２】
（ユーザ設定取得処理）
図２は、クライアント装置１３０において実行される、ユーザ設定情報（以下、単に、ユーザ設定と呼ぶ。）の取得処理を示すフローチャートである。
【００３３】
Ｓ２０１で、クライアント装置１３０は、セキュリティソフトウェア１３２を起動する。セキュリティソフトウェア１３２は、サービスプログラムとして自動的に起動することも、ユーザが任意に起動することもできる。
【００３４】
Ｓ２０２で、クライアント装置１３０にユーザがログオンする。ログオンは、ユーザが、アカウント名又はユーザ名と、それに対応するパスワードなどを入力することで行われる。
【００３５】
Ｓ２０３で、クライアント装置１３０は、ログオンしたユーザのユーザ情報を取得する。ここでユーザ情報とはアカウント名、ドメイン名、ＰＣ名、ユーザ名などユーザを一意に識別することが可能な値である。
【００３６】
Ｓ２０４で、Ｓ２０３で取得したユーザ情報を利用して、クライアント装置１３０はサーバ装置１１０と通信を行い、サーバ装置１１０のセキュリティ情報設定部１１２が保持する設定情報からログオンしたユーザのユーザ設定を取得する。ここで、ユーザ設定には、ログオンしたユーザが、暗号通信によりアクセスできる通信先を判定するための情報が含まれている。具体的には、ユーザ設定は、例えば、アクセスできる通信先を示す情報や、アクセスできない通信先を示す情報を含んでいる。なお、サーバ装置１１０は、該当するユーザが登録されていない場合はデフォルト情報などを返答する。本実施形態ではユーザ情報からユーザ設定を取得しているが、ＩＰアドレス、ＰＣ名、ＭＡＣアドレス、セキュリティ権限などによりユーザ設定を取得してもよい。
【００３７】
Ｓ２０５で、セキュリティソフトウェア１３２はパケットフィルタを開始する。パケットフィルタの実装方法はＴＣＰ／ＩＰドライバのフィルタドライバにより実装してもよいし、ＡＰＩフックによりＷＩＮＳｏｃｋＡＰＩのｓｅｎｄやネットワーク通信を行うＡＰＩなどを監視することで実装してもよい。
【００３８】
Ｓ２０６で、パケットフィルタはＷｅｂアクセスの監視を開始する。
【００３９】
（Ｗｅｂアクセス監視処理）
図３は、クライアント装置１３０において実行される、Ｗｅｂアクセス監視処理を示すフローチャートである。なお、後述する説明では、Ｗｅｂブラウザを起動することにより監視処理を開始しているが、Ｗｅｂブラウザの起動に限定されず、通信するアプリケーションがＨＴＴＰＳプロトコルで任意のＵＲＬにアクセスすることにより監視処理を開始してもよい。
【００４０】
Ｓ２１０１で、クライアント装置１３０は、Ｗｅｂブラウザ１３３を起動する。Ｗｅｂブラウザ１３３は、ユーザが任意に起動、もしくはプログラムから起動されてもよい。
【００４１】
Ｓ２１０２で、クライアント装置１３０のＷｅｂブラウザ１３３がＨＴＴＰＳプロトコルで任意のＵＲＬへのアクセス、つまり暗号通信を開始する。本実施例ではＨＴＴＰＳの例を記述しているが、ＦＴＰＳ、ＳＦＴＰなどの暗号通信に対して実行してもよい。
【００４２】
Ｓ２１０３で、Ｗｅｂブラウザ１３３は、ＨＴＴＰＳ通信を行うためにプロキシ装置１４０に送信するＨＴＴＰのＣＯＮＮＥＣＴ通知（接続処理）を行うためのイベントを発生させる。プロキシ装置１４０を通してＨＴＴＰＳ通信を行う場合、トンネル接続の確立を行う必要性がある。ＨＴＴＰのＣＯＮＮＥＣＴ通知は、トンネル接続の確立を行う通信である。
【００４３】
Ｓ２１０４で、Ｓ２１０３のＣＯＮＮＥＣＴ通知が、図２のＳ２０５で開始したパケットフィルタにより検出される。ＣＯＮＮＥＣＴ通知の中にはＨＴＴＴＰＳ通信における、通信先ホスト名、通信先ＩＰアドレス、通信先ＵＲＬなどの情報が含まれている。
【００４４】
Ｓ２１０５で、パケットフィルタは、検出したＣＯＮＮＥＣＴ通知に含まれる通信先ＵＲＬと、図２のＳ２０４で取得したユーザ設定に基づき、通信先ＵＲＬへのアクセス権限があるかを判定する。アクセス権限のあるＵＲＬであるか否かの判断方法は、全文一致、部分一致、先頭一致などにより実施することができる。また、ＨＴＴＰＳ通信を行う通信先のＩＰアドレスやホスト名等によりアクセス権限があるかの判断を行ってもよい。
【００４５】
アクセス権限がない場合、パケットフィルタは、Ｓ２１０６で、ＣＯＮＮＥＣＴ通知を破棄する。或いは、ＣＯＮＮＥＣＴ通知を正しくないものに改ざんし、ＣＯＮＮＥＣＴ通知を失敗させてもよい。いずれにしても、ＣＯＮＮＥＣＴ通知の失敗により、Ｗａｂブラウザ１３３によるＨＴＴＰＳ通信を禁止することができる。
【００４６】
一方、アクセス権限がある場合、パケットフィルタは、Ｓ２１０７で、ＣＯＮＮＥＣＴ通知のプロキシ装置１４０への送信を許可する。これにより、Ｗａｂブラウザ１３３は、ＨＴＴＰＳ通信を行う。
【００４７】
以上の構成により、禁止されたＵＲＬへのＨＴＴＰＳ通信を禁止し、それ以外へのＨＴＴＰＳ通信を許可することができる。なお、本実施形態においては、クライアント装置１３０にログオンしているユーザのユーザ設定によりＨＴＴＰＳ通信を禁止していた。しかしながら、ユーザに拘らず、クライアント装置１３０が暗号通信による通信できる通信先を判定できる設定情報によりＨＴＴＰＳ通信を禁止する構成とすることもできる。例えば、設定情報は、暗号通信による通信できる通信先を特定する情報、或いは、暗号通信による通信できない通信先を特定する情報を含んでいる。さらに、本実施形態は、ＨＴＴＰＳ通信を禁止するものであったが、禁止するのではなく通信先や、特定したユーザ等を含むアクセスログをログ情報として記録してもよいし、ＨＴＴＰＳ通信を禁止されたことを含むアクセスログをログ情報として記録してもよい。また、ログ情報は、クライアント装置１３０が保持するのではなく、サーバ装置１１０に送信してサーバ装置１１０が保存することもできる。
【００４８】
＜第２実施形態＞
以下、第２実施形態について、第１実施形態との相違点を中心に説明する。第１実施形態において、総ての通信は情報処理装置にログオンしているユーザによるものとしていた。また、通信先のみで暗号通信の可否を判定していた。本実施形態では、複数のユーザが同時に情報処理装置にログオンしていたとしても、暗号通信を行ったユーザを特定して暗号通信の状況を把握し、又は、暗号通信の可否を判定する。さらに、通信先及びプロセスの組み合わせにより暗号通信の可否を制御する。以下、本実施形態について第１実施形態との相違点を中心に説明する。
【００４９】
（情報処理システム）
本実施形態の情報システムの構成については第１実施形態と同様である。
【００５０】
（ユーザ設定取得処理）
本実施形態におけるユーザ設定の取得処理については第１実施形態と同様である。なお、本実施形態におけるユーザ設定は、ユーザがアクセスできる通信先をプロセス毎に判定できる情報を含んでいる。
【００５１】
（Ｗｅｂアクセス監視処理）
図１３は、クライアント装置１３０において実行される、Ｗｅｂアクセス監視処理を示すフローチャートである。
【００５２】
Ｓ２２０１で、クライアント装置１３０は、Ｗｅｂブラウザ１３３を起動する。Ｗｅｂブラウザ１３３は、ユーザが任意に起動、もしくはプログラムから起動されてもよい。
【００５３】
Ｓ２２０２で、クライアント装置１３０は、Ｓ２２０１で起動したプログラムの情報を取得する。取得する情報にはプログラム名、起動したユーザのアカウント名、ドメイン名、プロセスＩＤ、セッションＩＤなどが含まれる。クライアント装置１３０は、図１６（Ａ）に示すような、プロセスとユーザ情報の対応を記したユーザプロセスリスト（第２情報）を管理しており、取得したプログラムの情報から、プロセスとユーザ情報の対応を判定してユーザプロセスリストに追加する。なお、取得するのは起動したプログラムの情報に限らず、ポートにアクセスした際や通信を行った際にプログラムの情報を取得することも可能である。
【００５４】
Ｓ２２０３〜Ｓ２２０５の処理は、図３のＳ２１０２〜Ｓ２１０４の処理と同様である。なお、ＣＯＮＮＥＣＴ通知には、通信元ポート、通信先ポート、通信元ＩＰアドレス、通知先ＩＰアドレス、ＨＴＴＰＳ通信における通信先ホスト名、通信先ＩＰアドレス、通信先ＵＲＬなどの情報が含まれている。
【００５５】
クライアント装置１３０は、図１６（Ｂ）に示すような、被アクセスポート情報（第１情報）を管理している。被アクセスポート情報とは、クライアント装置１３０においてアクセスされている通信ポートのポート情報と、当該通信ポートにアクセスを行ったプロセスとの対応関係を収集したリストである。ポート情報とは、通信ポートの種類(ＴＣＰ，ＵＤＰ等)、（通信元、通信先）ポート番号、（通信元、通信先）ＩＰアドレス等のポート情報を含む情報である。例えば、ＴＣＰポートドライバやＵＤＰポートドライバをフィルタリングしたり、ＡＰＩ（Application Programming Interface）フックによりポートにアクセスしたＡＰＩをフックしたり、ＯＳ標準のポート監視インターフェース(Windows Filterling Platform等)を利用する等により、ポート情報を収集することができる。
【００５６】
Ｓ２２０６で、パケットフィルタは、Ｓ２２０５で取得した通信ポートと、被アクセスポート情報から通信を開始したユーザを特定する。具体的には、Ｓ２２０５で取得した通信元ポートと被アクセスポート情報から、Ｓ２２０５で取得したＣＯＮＮＥＣＴ通知に対応するプロセスを特定する。続いて、ユーザプロセスリストを参照して、当該プロセスに対応するユーザを特定する。パケットフィルタは、Ｓ２２０７において、Ｓ２２０６で特定したユーザのユーザ設定を特定する。
【００５７】
Ｓ２２０８において、パケットフィルタは、Ｓ２２０７で特定したユーザ設定に基づき、開始しようとしているＨＴＴＰＳ通信の通信先ＵＲＬへの特定したプロセスでのアクセス権限があるか否かを判定する。Ｓ２２０９及びＳ２２１０の処理は、図３におけるＳ２１０６及びＳ２１０７の処理と同様である。なお、本実施形態においても、暗号通信を禁止するのではなく、特定したユーザ、プロセス、暗号通信の通信先の少なくとも１つを含むログ情報を記録する形態とすることもできる。また、暗号通信を禁止されたことを含むログ情報を記録する形態とすることもできる。さらに、本実施形態では、設定情報は、ユーザ及びプロセス毎に、通信先へのアクセス可否を判定するための情報を含むものであったが、ユーザ又はプロセス毎に、通信先へのアクセス可否を判定するための情報を含むものであってもよい。つまり、プロセスに拘らず、ユーザと通信先によりアクセス可否を判定しても、ユーザに拘らず、プロセスと通信先によりアクセス可否を判定してもよい。
【００５８】
（被アクセスポート情報取得処理）
被アクセスポート情報を取得する処理の詳細として、ＴＣＰ/ＵＤＰポートドライバのフィルタリング、ＡＰＩフック、ＯＳ標準のポート監視インターフェース、ポート情報一覧取得ＡＰＩ、ファイルオブジェクト情報一覧取得ＡＰＩ、それぞれの具体的手順を説明する。
【００５９】
［ＴＣＰ/ＵＤＰポートドライバのフィルタリング］
図４は、ＴＣＰポートドライバとＵＤＰポートドライバをフィルタリングし、プロセスＩＤと通信ポート情報との対応リストを作成する処理の手順を示すフローチャートである。この処理では、プロセスが通信ポートを使用するために用いるドライバ・ソフトウェアの入出力をフィルタリングすることにより、被アクセスポート情報を取得する。以下の各工程はクライアント装置１３０が実行する。なお、後述する処理は、ＴＣＰポートドライバとＵＤＰポートドライバを用いてフィルタリングを行う処理について説明するが、ＴＣＰポートドライバのみ、或いは、ＵＤＰポートドライバのみでフィルタリングを行っても
よい。
【００６０】
Ｓ３０１でセキュリティソフトウェア１３２が作成したフィルタドライバをＴＣＰポートドライバとＵＤＰポートドライバにアタッチする。アタッチするタイミングは監視を開始した際などである。フィルタドライバをＴＣＰポートドライバやＵＤＰポートドライバにアタッチするとは、ＴＣＰポートやＵＤＰポートを介したデータ伝送のフィルタリングを開始する処理をいう。
【００６１】
Ｓ３０２で、任意のプログラムが、外部の装置と通信するためのＴＣＰポートもしくはＵＤＰポートにアクセスする。
【００６２】
そして、Ｓ３０３で、セキュリティソフトウェア１３２において、アタッチしたフィルタドライバにファイルオブジェクトの作成、書き込み、読み込みなどのイベントが通知される。ここで、ファイルオブジェクトとは、ファイル、デバイス、ディレクトリの情報を格納しているオブジェクトをいう。例えば、ファイルパス、ファイル名、ファイルへのアクセス権、デバイス情報などが格納されている。
【００６３】
Ｓ３０４で、上記のイベントの情報から、ファイルオブジェクトを作成したプロセスを識別する情報を取得し、Ｓ３０５で、ファイルオブジェクトからポート情報を取得する。
この場合のポート情報とはポート種類、ＩＰアドレスやポート番号を指す。
【００６４】
Ｓ３０６で、Ｓ３０４、Ｓ３０５で取得したプロセスＩＤ、通信ポート情報及びファイルオブジェクトなどから、被アクセスポート情報を作成する。Ｓ３０７で被アクセスポート情報リスト内に同一の被アクセスポート情報（プロセスＩＤ、ポート種類、ＩＰアドレス、ポート番号などが同一）が存在した場合、リストには追加しない、もしくはリストの情報を上書きし、Ｓ３０９に移行する。なお、リストの情報の上書きとは、既に存在する情報を該情報に更新、既に存在する情報を削除後に該情報をリストに追加、リストに該情報を追加後に既に存在する情報を削除することを含む。リスト内に同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加しリストに追加することで、新しく追加された情報を識別できるようにし、リスト内で検索を行った際は、新しいものを優先して使用するように実装してもよい。Ｓ３０７において、同一の被アクセスポート情報が存在しない場合はＳ３０８でリストに格納してＳ３０９に移行する。
【００６５】
Ｓ３０９で、起動プログラムが、ＴＣＰ/ＵＤＰポートを破棄すると、Ｓ３１０でセキュリティソフトウェア１３２がアタッチしたフィルタドライバに、ファイルオブジェクト破棄イベントが通知される。
【００６６】
Ｓ３１１で、ファイルオブジェクト破棄イベントにより削除されるファイルオブジェクトから、削除される被アクセスポート情報を特定して、Ｓ３１２で被アクセスポート情報リストから、削除対象として特定した被アクセスポート情報を削除する。複数該当する情報が登録されていた場合は、該当する情報をすべて削除する。またはファイルオブジェクト破棄イベントでなく、一定間隔で被アクセスポート情報を削除してもよい。
【００６７】
これにより、リアルタイムにＴＣＰポートと対応プロセスＩＤのリストを作成することができる。なお、ここではＴＣＰポートドライバについて記述したが、ＵＤＰポートドライバやその他のドライバにおいても、対応リストを作成することができる。
【００６８】
上述した形態では、ファイルオブジェクト破棄イベントを監視し、被アクセスポート情報を被アクセスポート情報リストから削除していた。しかしながら、図５を用いて説明する様に、ファイルオブジェクト破棄イベントを監視しない形態とすることもできる。
【００６９】
なお、図５のＳ４０１〜Ｓ４０６は、図４のＳ３０１〜Ｓ３０６の処理と同一であるため、その説明は省略する。
【００７０】
Ｓ４０７でプロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、Ｓ４０８に移行し、リストにその情報を上書きする。プロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加しリストに追加することで、新しく追加された情報を識別できるようにして、リスト内で検索を行った際は、新しいものを優先して使用するように実装してもよい。それ以外の場合、Ｓ４０９において、被アクセスポート情報リストに被アクセスポート情報を追加して格納する。以上の処理により、ファイルオブジェクト破棄イベントを監視しない構成とすることができる。
【００７１】
［ＡＰＩフック］
図６は、ＡＰＩフックを使用し、プロセスＩＤと通信ポート情報の対応リストを作成する処理の手順を示すフローチャートである。この処理では、プロセスと、通信ポートにアクセス（作成及び破棄）するために使用するアプリケーション・プログラミング・インタフェースと、の間の通信を監視することで、被アクセスポート情報を取得する。
【００７２】
Ｓ５０１で、セキュリティソフトウェア１３２が、ポート作成ＡＰＩ、ポート破棄ＡＰＩ等をフックする。フックするタイミングはポート監視を開始した際などである。フックするＡＰＩは、具体的には、例えば、ＷＩＮＳｏｃｋＡＰＩのｂｉｎｄやｃｏｎｎｅｃｔ、ｃｌｏｓｅｓｏｃｋｅｔなどである。
【００７３】
Ｓ５０２で、任意のプログラムがポートアクセスＡＰＩ（作成、書き込み、読み込み等）を使用し、Ｓ５０３でセキュリティソフトウェア１３２において、ポートアクセスＡＰＩをフックするイベントを発生させる。ここで、ＡＰＩをフックするとは、当該ＡＰＩの呼びだしを別のオブジェクトが横取りすることをいう。ＡＰＩのフックは、具体的にはＡＰＩを呼び出す際に用いられるアドレスを、特定のアドレスに書き換えることにより実行される。
【００７４】
Ｓ５０４で上記のイベントの情報から、ＡＰＩが使用するプロセスを取得し、Ｓ５０５でＡＰＩの戻り値や入力からポート情報を取得する。この場合のポート情報とは、ポート種類、ＩＰアドレスやポート番号を指す。
【００７５】
Ｓ５０６でＳ５０４、Ｓ５０５で取得したプロセスＩＤと、通信ポート情報及びハンドル情報などから被アクセスポート情報を作成する。Ｓ５０７で被アクセスポート情報リスト内に同一の被アクセスポート情報が存在した場合、リストに追加しない、もしくはリストの情報を上書きし、Ｓ５０９に移行する。リスト内に同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加しリストに追加することで、新しく追加された情報を識別できるようにし、リスト内で検索を行った際は、新しいものを優先して使用するように実装してもよい。Ｓ５０７において、同一の被アクセスポート情報が存
在しない場合はＳ５０８でリストに格納し、Ｓ５０９に移行する。
【００７６】
Ｓ５０９で、任意のプログラムは、ポート破棄ＡＰＩを使用し、Ｓ５１０でセキュリティソフトウェア１３２に、ポート破棄ＡＰＩフックイベントを発生させる。
【００７７】
Ｓ５１１で、削除されるハンドル情報などから、削除される被アクセスポート情報を特定し、Ｓ５１２で被アクセスポート情報リストから削除対象の被アクセスポート情報を削除する。複数該当する情報が登録されていた場合は、該当する情報をすべて削除する。またはポート破棄ＡＰＩフックイベントでなく、一定間隔で被アクセスポート情報リストを削除してもよい。
【００７８】
これによりリアルタイムに通信ポートと対応プロセスＩＤのリストを作成することができる。ここでは、ＷＩＮＳｏｃｋＡＰＩのフックについて記述したが、その他のＡＰＩにおいても被アクセスポート情報リストを作成することができる。
【００７９】
上述した形態では、ポート破棄ＡＰＩフックイベントを監視し、被アクセスポート情報を被アクセスポート情報リストから削除していた。しかしながら、図７を用いて説明する様に、ポート破棄ＡＰＩフックイベントを監視しない形態とすることもできる。
【００８０】
なお、図７のＳ６０１〜Ｓ６０６は、図６のＳ５０１〜Ｓ５０６の処理と同一であるため、その説明は省略する。
【００８１】
Ｓ６０７でプロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、Ｓ６０８でその情報を上書きする。プロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加しリストに追加することで、新しく追加された情報を識別できるようにして、リスト内で検索を行った際は、新しいものを優先して使用するように実装してもよい。それ以外の場合、Ｓ６０９において、被アクセスポート情報リストに被アクセスポート情報を格納する。
【００８２】
以上の処理により、ポート破棄ＡＰＩフックイベントを監視しない構成とすることができる。
【００８３】
［ＯＳ標準のポート監視インターフェース］
図８は、ＯＳ標準のポート監視インターフェースを使用し、被アクセスポート情報リストを作成する処理の手順を示すフローチャートである。なおＯＳ標準のポート監視インターフェースとは、WindowsFiltelingPlatform等のポートアクセス（作成、接続、破棄、書き込み、読み込み等）のイベントを通知するインターフェースのことを指す。
【００８４】
Ｓ１００１で、セキュリティソフトウェア１３２が、ＯＳ標準のポート監視インターフェースにポートアクセスのイベントが発生した際に呼ばれるコールバックを登録する。
【００８５】
Ｓ１００２で、任意のプログラムがポートにアクセスし、Ｓ１００３でセキュリティソフトウェア１３２において、ポートアクセスのコールバックが発生する。
【００８６】
Ｓ１００４で上記コールバックの情報から、プロセスＩＤを、Ｓ１００５でポート情報を取得する。この場合のポート情報とは、ポート種類、ＩＰアドレスやポート番号を指す。
【００８７】
Ｓ１００６でＳ１００４、Ｓ１００５で取得したプロセスＩＤとポート情報から被アクセスポート情報を作成する。Ｓ１００７で被アクセスポート情報２３３リスト内に同一の被アクセスポート情報が存在した場合、被アクセスポート情報２３３リストに追加しない、もしくはリストの情報を上書きし、Ｓ１００９に移行する。被アクセスポート情報２３３リスト内に同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加しリストに追加することで、新しく追加された情報を識別できるようにし、リスト内で検索を行った際は、新しいものを優先して使用するように実装してもよい。Ｓ１
００７で、同じ被アクセスポート情報が存在しない場合、Ｓ１００８で被アクセスポート情報２３３リストに格納し、Ｓ１００９に移行する。
【００８８】
Ｓ１００９で、任意のプログラムは、ポート破棄をし、Ｓ１０１０でセキュリティソフトウェア１３２に、ポート破棄イベントのコールバックが発生する。
【００８９】
Ｓ１０１１で、コールバックの情報から、削除される被アクセスポート情報を特定し、Ｓ１０１２で被アクセスポート情報リストから削除対象の被アクセスポート情報を削除する。複数該当する情報が登録されていた場合は、該当する情報をすべて削除する。
またはポート破棄イベントのコールバックでなく、一定間隔で被アクセスポート情報を削除してもよい。
【００９０】
これによりリアルタイムに通信ポートと対応プロセスＩＤのリストが作成することができる。
【００９１】
上述した形態では、ポート破棄イベントのコールバックを監視し、被アクセスポート情報を被アクセスポート情報リストから削除していた。しかしながら、図９を用いて説明する様に、ポート破棄イベントのコールバックを監視しない形態とすることもできる。
【００９２】
なお、図９のＳ１１０１〜Ｓ１１０６は、図８のＳ１００１〜Ｓ１００６の処理と同一であるため、その説明は省略する。
【００９３】
Ｓ１１０７でプロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、Ｓ１１０８でその情報を上書きする。プロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加しリストに追加することで、新しく追加された情報を識別できるようにし、リスト内で検索を行った際は、新しいものを優先して使用するように実装してもよい。それ以外の場合、Ｓ１１０９において、被アクセスポート情報リストに被アクセスポート情報を格納する。以上の処理により、ポート破棄イベントのコールバックを監視しない構成とすることができる。
【００９４】
また被アクセスポート情報を取得する処理としては、上記手法でアクセス時にリアルタイムにリスト作成してもいいし、一定時間ごとにポート情報一覧取得ＡＰＩやファイルオブジェクト情報一覧ＡＰＩを利用して取得してもよい。一定時間ごとにポート情報取得ＡＰＩやファイルオブジェクト情報一覧ＡＰＩを利用して取得することにより、クライアント装置１３０やネットワークへの負荷を軽減することが可能となる。次にポート情報一覧取得ＡＰＩを利用したリスト作成方法と、ＴＣＰ／ＵＤＰポートドライバのファイルオブジェクト情報を利用したリスト作成方法についてそれぞれの具体的手順を説明する。
【００９５】
［ポート情報一覧取得ＡＰＩ］
図１０は、一定間隔ごとにポート情報一覧取得ＡＰＩを使用し、被アクセスポート情報リストを作成する処理の手順を示すフローチャートである。
【００９６】
Ｓ１２０１でセキュリティソフトは、ポート情報一覧取得ＡＰＩを利用し、被アクセスポート情報一覧を取得する。Ｓ１２０２でプロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、Ｓ１２０３でリストの情報を上書きする。リスト内にプロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加しリストに追加することで、新しく追加された情報を識別できるようにし、リスト内で検索を行った際は、新しいものを優先し、使用するように実装してもよい。Ｓ１２０２で被アクセスポート情報リスト内にプロセスＩＤ以外が同一の被アクセスポート情報存在しない場合、Ｓ１２０４でリストに被アクセスポート情報を格納する。
【００９７】
Ｓ１２０５で、取得したすべての被アクセスポート情報に対してＳ１２０２〜Ｓ１２０４の処理を行っていない場合はＳ１２０２に戻り繰り返す。繰り返し終了後、Ｓ１２０６において、ＡＰＩで取得した情報と等しくない情報が被アクセスポート情報リストに存在するか確認する。存在しない場合は終了し、存在する場合はＳ１２０７においてＡＰＩで取得した情報と等しくない情報を被アクセスポート情報リストから削除する。これにより、通信ポートと対応プロセスＩＤのリストが作成することができる。
【００９８】
［ファイルオブジェクト情報一覧取得ＡＰＩ］
図１１は一定間隔ごとにファイルオブジェクト情報一覧取得ＡＰＩを使用し、ファイルオブジェクトの一覧を取得し、被アクセスポート情報リストを作成する処理の手順を示すフローチャートである。このＡＰＩではすべてのドライバのファイルオブジェクトが取得される。
【００９９】
Ｓ１３０１でファイルオブジェクト一覧取得ＡＰＩを利用し、ファイルオブジェクト一覧を取得する。Ｓ１３０２でファイルオブジェクトがＴＣＰ又はＵＤＰドライバに属しているか判断し、いずれにも属していない場合にはＳ１３０７に移行する。いずれかのドライバに属している場合はＳ１３０３でファイルオブジェクトから被アクセスポート情報を取得する。
【０１００】
Ｓ１３０４において、プロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、Ｓ１３０５でリストの情報を上書きする。リスト内にプロセスＩＤ以外が同一の被アクセスポート情報が存在した場合、時間もしくはシーケンス番号などを付加してリストに追加することで、新しく追加された情報を識別できるようにし、リスト内で検索を行った際は、新しいものを優先して使用するように実装してもよい。Ｓ１３０４で存在しない場合、Ｓ１３０６において、被アクセスポート情報を被アクセスポート情報リストに格納する。
【０１０１】
Ｓ１３０７で取得したすべてのファイルオブジェクトに対してＳ１３０２〜Ｓ１３０６の処理を行っていない場合には、Ｓ１３０２に戻って処理を繰り返す。繰り返し終了後、Ｓ１３０８において、Ｓ１３０１〜Ｓ１３０７で取得した被アクセスポート情報と等しくない情報が被アクセスポート情報リストに存在するか確認する。存在しない場合は終了し、存在する場合はＳ１３０９で等しくない被アクセスポート情報を被アクセスポート情報リストから削除する。これにより、通信ポートと対応プロセスＩＤのリストが作成することができる。
【０１０２】
＜第３実施形態＞
第３実施形態では、第２実施形態のセキュリティソフトウェア１３２をターミナルサービスに適用したものである。本実施形態では、クライアント装置で動作するプロセスは、外部装置において実行されるアプリケーションを遠隔操作する処理を行う。
【０１０３】
なお、第３実施形態の動作の大部分は第２実施形態の動作と共通するため、第２実施形態と異なる構成、動作についてのみ説明し、共通の動作については説明を省略する。
【０１０４】
ターミナルサービスとは、クライアントコンピュータがサーバコンピュータにリモート接続し、サーバコンピュータ上に生成された仮想デスクトップ環境を利用してサーバコンピュータ上でアプリケーションプログラムを実行できるようにするサービスである。
【０１０５】
図１２は、本実施形態に係る情報処理システム（ターミナルサービス）の全体構成図である。本実施形態に係るシステムは、情報処理装置の一例である複数の端末装置（サーバ装置１１０、サーバ装置１５３０、クライアント装置１５６０、１５７０、プロキシ装置１４０）を備えており、これらはＬＡＮなどのネットワーク１２０を介して接続されている。またインターネット１５０にはプロキシ装置１４０を通してのみ接続される。
【０１０６】
サーバ装置１５３０上では、ターミナルサービス提供部１５３４を含むオペレーティングシステムが動作している。また、サーバ装置１５３０には、セキュリティソフトウェア１３２がインストールされている。セキュリティソフトウェア１３２は、パケットフィルタ機能、つまり、インターネットアクセス制御機能を提供するプログラムである。
【０１０７】
ターミナルサービス提供部１５３４は、たとえば、ターミナルサーバと呼ばれるプログラムによって実現される。サーバ装置１５３０は、認証情報記憶部１５３１を有している。認証情報記憶部１５３１には、たとえば、クライアント装置１５６０、１５７０の各利用者のログオンユーザ情報等（ユーザ名、セッションＩＤ等）が格納されている。
【０１０８】
クライアント装置１５６０、１５７０のそれぞれは、ターミナルサービス提供部１５３４から提供されるターミナルサービスを利用するためのターミナルサービス利用部１５６１を備えている。クライアント装置１５６０、１５７０のそれぞれは、不図示のキーボード等の入力部や、ディスプレイ装置などの表示部が接続されている。ターミナルサービス利用部１５６１は、たとえば、リモート・デスクトップ接続（ＲＤＣ）と呼ばれるプログラムや、ターミナルサービス・クライアント（ＴＳＣ）と呼ばれるプログラムによって実現される。ターミナルサービスは、Ｗｉｎｄｏｗｓ(登録商標)、ＭａｃＯＳおよびＬｉｎｕｘ（登録商標）などの一般的なオペレーティングシステム（ＯＳ）であれば一般に備えているサービスであるが、その名称はＯＳによって異なっている。
【０１０９】
リモートサービスは、第１のパーソナルコンピュータ（ＰＣ）に対して第２のＰＣからリモートログインして、第１のＰＣを遠隔操作するサービスである。例えば、第１のＰＣから情報を取得したり、第１のＰＣに情報を書き込んだり、第１のＰＣにインストールされているソフトウェアを第１のＰＣ上で実行したりする。なお、第１のＰＣの入力部を通じて直接ログオンしているユーザをローカルユーザと呼び、第２のＰＣから第１のＰＣへリモートログオンしているユーザをリモートユーザと呼んで区別することにする。
【０１１０】
サーバとして機能するサーバ装置１５３０は、クライアントとして機能するクライアント装置１５６０、１５７０に仮想デスクトップ画面を表示するための情報を送信する。クライアント装置１５６０、１５７０は、サーバ装置１５３０から受信した情報に従って仮想デスクトップ画面をディスプレイ装置に表示したり、利用者が仮想デスクトップ画面上で行う操作に従って、コマンドやデータをサーバ装置１５３０に送信したりする。サーバ装置１５３０では、クライアント装置１５６０、１５７０から送信されてきたコマンドやデータに応じてアプリケーションプログラムを実行し、実行結果をクライアント装置１５６０、１５７０へ送信する。クライアント装置１５６０、１５７０では、サーバ装置１５３０から送信されてきた実行結果を仮想デスクトップ画面上に表示する。サーバ装置１５３０は、リモートユーザによって使用される一方で、同時並行的にローカルユーザによっても使用可能である。
【０１１１】
このように、リモートユーザとローカルユーザとを含む複数のユーザが同時に使用可能な情報処理システム（ターミナルサービス）においては、アプリケーションプログラムが、サーバ装置１５３０で実行される。複数のクライアント装置１５６０、１５７０からサーバ装置１５３０に同時に接続してアプリケーションプログラムを実行することも可能である。この場合、リモートユーザ毎にセッションが分けられ、各利用者は別々の仮想デスクトップ環境を利用してアプリケーションプログラムを実行する。ターミナルサービス提供部１５３４は、各セッションを区別するためにセッションＩＤを発行する。なお、同時に使用可能とは、同じ時間に複数のユーザがログオンしている状態を含む。このようなターミナルサービスは一般的な技術であるため、これ以上の説明は省略する。
【０１１２】
図１２においてサーバ装置１１０上のログ収集部１１１では、セキュリティソフトウェア１３２で使用するユーザ毎の外部装置へのアクセス情報を記録する。セキュリティ情報設定部１１２は、ユーザ毎の接続可能なＵＲＬのブラックリストやホワイトリスト等、ユーザ毎のユーザ設定情報を記録している。セキュリティソフトウェア１３２は、ユーザが端末１５３０にログイン時、リモートログイン時などのタイミングで端末１１０と通信し、ユーザ毎のユーザ設定情報を取得する。
【０１１３】
（ユーザ設定取得処理）
本実施形態におけるユーザ設定の取得処理については第２実施形態と同様である。なお、本実施形態では、図２のＳ２０３で、ログオンしたユーザのユーザ情報を取得する。ここでユーザ情報に、セッションＩＤを含むようにする。
【０１１４】
従って、図１３のＳ２２０６では、被アクセスポート情報リストには、複数のユーザが同時に使用可能な情報処理システム（ターミナルサービス）におけるユーザ毎のリストが作成される。
【０１１５】
以上のように、本実施形態によれば、複数のユーザが同時に使用可能な情報処理システムにおいても、Ｗｅｂアクセスについてログインしたユーザ毎のログ取得、ユーザ毎に適したアクセス権限を与えることが可能となる。
【０１１６】
＜第４実施形態＞
第４実施形態では、上記第１実施形態のセキュリティソフトウェア１３２をプロキシ装置で実行する。
【０１１７】
（情報処理システム）
図１４は、本実施形態に係る情報処理システムの構成図である。クライアント装置１６３０がインターネット１５０にアクセスする際の通信がプロキシ装置１６４０を経由する。そのため、プロキシ装置１６４０においてセキュリティソフトウェア１６４１がプロキシ装置１６４０への通信をパケットフィルタにより取得・制御することで、暗号プロトコルの制御が可能となる。プロキシ装置１６４０は、セキュリティソフトウェア１６４１を起動する。セキュリティソフトウェア１６４１は、サービスプログラムとして自動的に起動することも、ユーザが任意に起動したりすることもできる。
【０１１８】
（ユーザ設定取得処理）
プロキシ装置１６４０において実行される、ユーザ設定取得処理を記述する。セキュリティソフトウェア１６４１はクライアント装置１６３０からプロキシ装置１６４０への通信を取得する。その取得した情報の中にあるＭＡＣアドレス、ＩＰアドレス、ＰＣ名などを利用して、サーバ装置１１０と通信を行い、サーバ装置１１０のセキュリティ情報設定部１１２が有する設定情報からユーザ設定を取得する。
【０１１９】
（Ｗｅｂアクセス監視処理）
図１５は、プロキシ装置１６４０において実行される、Ｗｅｂアクセス監視処理を示すフローチャートである。
【０１２０】
クライアント装置１６３０はＨＴＴＰＳ通信を行うために、プロキシ装置１４０にＨＴＴＰのＣＯＮＮＥＣＴ通知を行う。本実施形態ではＨＴＴＰＳの例を記述しているがＴＰＳ、ＳＦＴＰなどの通信に対して実行してもよい。プロキシ装置１４０を通してＨＴＴＰＳ通信を行う場合、トンネル接続の確立を行う必要性がある。ＨＴＴＰのＣＯＮＮＥＣＴ通知は、トンネル接続の確立を行う通信である。
【０１２１】
Ｓ１５０１で、プロキシ装置１６４０は、クライアント装置１６３０からＣＯＮＮＥＣＴ通知を受信すると、パケットフィルタが、Ｓ１５０２において、受信したＣＯＮＮＥＣＴ通知を検出する。ＣＯＮＮＥＣＴ通知の中にはＨＴＴＰＳ通信を行う通信先ホスト名、通信先ＩＰアドレス、通信先ＵＲＬなどの情報が含まれている。パケットフィルタは、Ｓ１５０３において、図３のＳ２１０５の処理と同様に、通信先ＵＲＬへのアクセス権限を、通信を開始したユーザが有しているかをユーザ設定から判断（Ｓ１５０３）する。Ｓ１５０４及びＳ１５０５の処理は、図３におけるＳ２１０６及びＳ２１０７の処理と同様である。
【０１２２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又はコンピュータ可読媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014206929.tif 000003
【図２】
2014206929.tif 000004
【図３】
2014206929.tif 000005
【図４】
2014206929.tif 000006
【図５】
2014206929.tif 000007
【図６】
2014206929.tif 000008
【図７】
2014206929.tif 000009
【図８】
2014206929.tif 000010
【図９】
2014206929.tif 000011
【図１０】
2014206929.tif 000012
【図１１】
2014206929.tif 000013
【図１２】
2014206929.tif 000014
【図１３】
2014206929.tif 000015
【図１４】
2014206929.tif 000016
【図１５】
2014206929.tif 000017
【図１６】
2014206929.tif 000018