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