(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038784
(43)【公開日】2024-03-21
(54)【発明の名称】情報処理システム、サーバ装置、サーバ装置の制御方法、クライアント端末装置、クライアント端末装置の制御方法およびプログラム
(51)【国際特許分類】
G06F 21/55 20130101AFI20240313BHJP
【FI】
G06F21/55
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022143060
(22)【出願日】2022-09-08
(71)【出願人】
【識別番号】000104652
【氏名又は名称】キヤノン電子株式会社
(72)【発明者】
【氏名】高野 和希
(57)【要約】 (修正有)
【課題】簡便に通信の送信元を特定する情報処理システム、サーバ装置及びクライアント端末装置並びにそれらの制御方法及びプログラムを提供する。
【解決手段】情報処理装置において、サーバ装置は、クライアント端末装置からリクエストパケットを受信し、受信したパケットに、特定のパケットの宛先を示す情報が含まれるか否かを判定し、特定のパケットの宛先を示す情報が含まれると判定した場合、特定の情報を付加したパケットを、クライアント端末装置に送信する。クライアント端末装置は、サーバ装置からパケットを受信し、受信したパケットに、特定の情報が含まれるか否かを判定し、特定の情報が含まれると判定した場合、パケットにクライアント固有の情報を付加して、サーバ装置に送信する。サーバ装置はさらに、クライアント端末から送信されたパケットを受信し、受信したパケットから、クライアント固有の情報を抽出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
情報処理システムであって、
クライアント端末装置と、情報機器と、サーバ装置とを有し、
前記サーバ装置は、
前記情報機器を介して前記クライアント端末装置からリクエストパケットを受信する第一の受信手段と、
前記第一の受信手段にて受信したリクエストパケットに、特定のパケットの宛先を示す情報が含まれるか否かを判定する第一の判定手段と、
前記第一の判定手段にて特定のパケットの宛先を示す情報が含まれると判定された場合、特定の情報を付加したパケットを、前記情報機器を介して前記クライアント端末装置に送信する第一の送信手段と
を備え、
前記クライアント端末装置は、
前記情報機器を介して前記サーバ装置からパケットを受信する第二の受信手段と、
前記第二の受信手段にて受信したパケットに、前記特定の情報が含まれるか否かを判定する第二の判定手段と、
前記第二の判定手段にて特定の情報が含まれると判定された場合、パケットにクライアント固有の情報を付加して、前記サーバ装置に前記情報機器を介して送信する第二の送信手段と
を備え、
前記サーバ装置は、さらに、
前記情報機器を介して前記クライアント端末から送信されたパケットを受信する第三の受信手段と、
前記第三の受信手段にて受信したパケットから、前記クライアント固有の情報を抽出する抽出手段と
を備えることを特徴とする情報処理システム。
【請求項2】
前記サーバ装置は、プロキシサーバであることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記情報機器は、ルータ、ファイアウォール、またはUTMであることを特徴とする請求項1または2に記載の情報処理システム。
【請求項4】
前記クライアント固有の情報は、前記クライアント端末装置を示す情報、ユーザを示す情報、及び前記パケットを送信したプログラムを示す情報のいずれか、または組み合わせであることを特徴とする請求項1に記載の情報処理システム。
【請求項5】
前記サーバ装置は、更に、前記クライアント固有の情報である前記パケットを送信したプログラムを示す情報が、所定のプログラムを示す情報か否かを判定する第三の判定手段を備えることを特徴とする請求項1に記載の情報処理システム。
【請求項6】
前記監視手段は、前記クライアント端末装置の操作を監視し、前記クライアント端末装置は、更に、前記監視手段にて監視された操作を操作履歴として出力する出力手段を備えることを特徴とする請求項1に記載の情報処理システム。
【請求項7】
前記操作履歴には、前記パケットの宛先を示す情報が含まれ、
前記サーバ装置は、更に、前記操作履歴に特定のパケットの宛先を示す情報があるか否かを判定する第四の判定手段を備えることを特徴とする請求項6に記載の情報処理システム。
【請求項8】
前記操作履歴には、前記クライアント端末装置の変更前の時刻と、変更後の時刻との差であるオフセットの値が含まれ、
前記サーバ装置は、更に、前記オフセットの値に基づいて、前記クライアント端末装置の時刻を算出する算出手段を備え、
前記第四の判定手段は、前記算出手段にて算出された時刻に基づいて判定することを特徴とする請求項7に記載の情報処理システム。
【請求項9】
前記操作履歴には、前記パケットを送信したプログラムのハッシュ値が含まれ、
前記サーバ装置は、更に、前記操作履歴に特定のハッシュ値があるか否かを判定する第五の判定手段を備えることを特徴とする請求項6に記載の情報処理システム。
【請求項10】
前記クライアント固有の情報は、ユーザを示す情報であり、
前記抽出手段は、前記第三の受信手段にて受信したパケットから、前記ユーザを示す情報を抽出し、前記ユーザを示す情報と、前記クライアント端末装置へのログインの制限に関する情報とが対応付けられたテーブルに、該ユーザを示す情報を記録することを特徴とする請求項1に記載の情報処理システム。
【請求項11】
前記クライアント端末装置は、
前記クライアント端末装置へのログインが試みられた時に、前記クライアント端末装置のユーザを示す情報を含めた情報を、前記サーバ装置に送信し、
前記サーバ装置は、
前記テーブルに基づいて、受信した前記クライアント端末装置のユーザを示す情報における前記クライアント端末装置へのログインの制限を判定することを特徴とする請求項10に記載の情報処理システム。
【請求項12】
前記特定の情報は、前記第一の判定手段の判定に関する情報、ウイルススキャン命令、及び転送命令のいずれか、または組み合わせであることを特徴とする請求項1に記載の情報処理システム。
【請求項13】
情報機器を介してクライアント端末装置からリクエストパケットを受信する第一の受信手段と、
前記第一の受信手段にて受信したリクエストパケットに、特定のパケットの宛先を示す情報が含まれるか否かを判定する第一の判定手段と、
前記第一の判定手段にて特定のパケットの宛先を示す情報が含まれると判定された場合、特定の情報を付加したパケットを、前記情報機器を介して前記クライアント端末装置に送信する送信手段と、
前記情報機器を介して前記クライアント端末から送信されたパケットを受信する第二の受信手段と、
前記第二の受信手段にて受信したパケットから、クライアント固有の情報を抽出する抽出手段と
を備えることを特徴とするサーバ装置。
【請求項14】
情報機器を介してクライアント端末装置からリクエストパケットを受信する第一の受信工程と、
前記第一の受信工程にて受信したリクエストパケットに、特定のパケットの宛先を示す情報が含まれるか否かを判定する第一の判定工程と、
前記第一の判定工程にて特定のパケットの宛先を示す情報が含まれると判定された場合、特定の情報を付加したパケットを、前記情報機器を介して前記クライアント端末装置に送信する送信工程と、
前記情報機器を介して前記クライアント端末から送信されたパケットを受信する第二の受信工程と、
前記第二の受信工程にて受信したパケットから、クライアント固有の情報を抽出する抽出工程と
を備えることを特徴とするサーバ装置の制御方法。
【請求項15】
コンピュータを、
情報機器を介してクライアント端末装置からリクエストパケットを受信する第一の受信手段と、
前記第一の受信手段にて受信したリクエストパケットに、特定のパケットの宛先を示す情報が含まれるか否かを判定する第一の判定手段と、
前記第一の判定手段にて特定のパケットの宛先を示す情報が含まれると判定された場合、特定の情報を付加したパケットを、前記情報機器を介して前記クライアント端末装置に送信する送信手段と、
前記情報機器を介して前記クライアント端末から送信されたパケットを受信する第二の受信手段と、
前記第二の受信手段にて受信したパケットから、クライアント固有の情報を抽出する抽出手段
として機能させるためのプログラム。
【請求項16】
情報機器を介してサーバ装置からパケットを受信する受信手段と、
前記受信手段にて受信したパケットに、特定の情報が含まれるか否かを判定する判定手段と、
前記判定手段にて特定の情報が含まれると判定された場合、パケットにクライアント固有の情報を付加して、前記サーバ装置に前記情報機器を介して送信する送信手段と
を備えることを特徴とするクライアント端末装置。
【請求項17】
情報機器を介してサーバ装置からパケットを受信する受信工程と、
前記受信工程にて受信したパケットに、特定の情報が含まれるか否かを判定する判定工程と、
前記判定工程にて特定の情報が含まれると判定された場合、パケットにクライアント固有の情報を付加して、前記サーバ装置に前記情報機器を介して送信する送信工程と
を備えることを特徴とするクライアント端末装置の制御方法。
【請求項18】
コンピュータを、
情報機器を介してサーバ装置からパケットを受信する受信手段と、
前記受信手段にて受信したパケットに、特定の情報が含まれるか否かを判定する判定手段と、
前記判定手段にて特定の情報が含まれると判定された場合、パケットにクライアント固有の情報を付加して、前記サーバ装置に前記情報機器を介して送信する送信手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、サーバ装置、サーバ装置の制御方法、クライアント端末装置、クライアント端末装置の制御方法およびプログラムに関する。
【背景技術】
【0002】
マルウェアの中には、C&C(command and control)サーバなどの危険な接続先と通信を行い、ハッカーからの指示を受けたり、盗み出した機密情報を送信したりするものがある。これに対して、予め危険な接続先の接続先情報(URLやIPアドレスなど)をリストアップしておき、リスト上にある宛先への通信を遮断することで、マルウェアによる被害を防ぐといった対策が取られている。この方法によれば、マルウェアによる直接的な被害を防ぐことはできるが、クライアント側に残っているマルウェアに対しては対策が打てないという問題がある。そのため、通信の送信元を特定し、対策を打つことが必要となる。
【0003】
そこで、ネットワーク通信の送信元を特定する手法としては、イーサネット(登録商標)フレームにおけるMACアドレスを参照するという技術がある。ただし、MACアドレスは同一セグメント内でのみ伝達可能な情報であるため、送信元のクライアントと特定を行うネットワーク機器との間に、別のネットワーク機器が存在しないことが前提となる。しかし、企業や官公庁内における一般的なネットワーク構成の場合、ネットワークの途中にはルータやファイアウォールなど様々な外部機器が存在する。そのため、そういった環境においては、ネットワーク通信の送信元が外部機器のMACアドレスとなってしまい、クライアントを特定することができない。また、外部機器にてネットワーク通信の送信元を管理する方法もあるが、管理が煩雑となる。
【0004】
また、別の手法として、送信元IPアドレスを参照するという技術がある。しかし、IPアドレスは1つのコンピュータに常に固定されているわけではないため、たとえば1か月前の通信に関して、IPアドレスからコンピュータ名を特定しようとしても、既にIPアドレスが変更されてしまっており、特定できない場合が多い。そこで、先行技術文献1には、リクエストURL内にクライアントの情報を埋め込むことで、送信元であるクライアントを特定するという技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、先行技術文献1では、URLを解析する場所をWebサーバとしているため、ユーザや管理者が管理できない範囲となり、管理外の通信に関しては適用できない。たとえば、マルウェアが利用するC&Cサーバは、サイバー犯罪者が設置・管理しているため、この技術は適用できない。そこで、本発明は、簡便かつ正確に通信の送信元を特定することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、たとえば、情報処理システムであって、
クライアント端末装置と、情報機器と、サーバ装置とを有し、
前記サーバ装置は、
前記情報機器を介して前記クライアント端末装置からリクエストパケットを受信する第一の受信手段と、
前記第一の受信手段にて受信したリクエストパケットに、特定のパケットの宛先を示す情報が含まれるか否かを判定する第一の判定手段と、
前記第一の判定手段にて特定のパケットの宛先を示す情報が含まれると判定された場合、特定の情報を付加したパケットを、前記情報機器を介して前記クライアント端末装置に送信する第一の送信手段と
を備え、
前記クライアント端末装置は、
前記情報機器を介して前記サーバ装置からパケットを受信する第二の受信手段と、
前記第二の受信手段にて受信したパケットに、前記特定の情報が含まれるか否かを判定する第二の判定手段と、
前記第二の判定手段にて特定の情報が含まれると判定された場合、パケットにクライアント固有の情報を付加して、前記サーバ装置に前記情報機器を介して送信する第二の送信手段と
を備え、
前記サーバ装置は、さらに、
前記情報機器を介して前記クライアント端末から送信されたパケットを受信する第三の受信手段と、
前記第三の受信手段にて受信したパケットから、前記クライアント固有の情報を抽出する抽出手段と
を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、簡便に通信の送信元を特定することができる。
【図面の簡単な説明】
【0009】
【
図1】情報処理システムの構成例を示すシステム構成図である。
【
図2】サーバ装置20の処理を示すフローチャートである。
【
図3】クライント端末装置10の処理を示すフローチャートである。
【
図4】サーバ装置20の処理を示すフローチャートである。
【
図7】データベースに記録される情報の一例を示すである。
【
図8】サーバ装置20の処理を示すフローチャートである
【
図10】サーバ装置20の処理を示すフローチャートである。
【
図12】サーバ装置20の処理を示すフローチャートである。
【
図14】サーバ装置20の処理を示すフローチャートである。
【
図15】情報処理システムの構成例を示すシステム構成図である。
【
図16】ログイン制限を示したシーケンス図である。
【
図17】アカウント管理テーブルの一例を示す図である。
【発明を実施するための形態】
【0010】
[第一の実施形態]
<システム構成図>
先ず、本実施形態に係る情報処理システム構成について、
図1のシステム構成図を用いて説明する。
図1に示す如く、本実施形態に係る情報処理システムは、コンピュータすなわち情報処理装置10、20、50を有しており、それぞれの情報処理装置はLANやインターネットなどのネットワーク30に接続されている。以下、情報処理装置10をクライアント端末装置、情報処理装置20を、クライアント端末装置10を管理するサーバ装置(たとえば、プロキシサーバ)、情報処理装置50を情報機器(たとえば、ルータ、ファイアウォールなど)と呼称する。なお、クライアント端末装置10、情報機器50は複数でもよい。また、クライアント端末装置10、サーバ装置20、情報機器50は、PC・携帯端末装置などの情報処理装置が行うものとして後述する各処理を実行可能な装置であれば、如何なる装置であっても構わない。
【0011】
<クライアント端末装置>
クライアント端末装置10において、演算装置10Cはプロセッサ(CPU)である。演算装置10Cは、メモリ10EのROMに格納されたBIOSなどのブートプログラムに従い、記憶装置10Bに格納されたオペレーティングシステム(OS)を起動し、さらにOSまたはユーザの操作に従い各種のプログラムを起動する。この記憶装置10Bには、OSや本装置が行うものとして後述する各処理を演算装置10Cに実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、クライアントプログラム10F、ブラウザ10Gが含まれている。
【0012】
クライアントプログラム10Fは、クライアント端末装置10のデータやプログラムなどを管理するためのプログラムであり、たとえば、パケットを監視する、パケットのHTTPリクエストのメッセージヘッダにクライアント固有の情報(たとえば、コンピュータ名、パケットを送信したプログラム名など)を付加する、パケットを送信する機能を有する。また、クライアントプログラム10Fは、ネットワークI/F10Dを介してサーバ装置20から受け取ったリクエストパケットを、HTTPリクエストのメッセージヘッダごとに分割して、サーバ装置20上のサーバプログラム20Fが、後述の方法によってパケットの内部に記録した情報を抽出する。また、クライアントプログラム10Fは、クライアント端末装置10の操作を操作履歴として記憶装置10Bに記憶する機能、サーバ装置20からの命令(たとえば、修正プログラムの適用命令、ウイルススキャン命令、隔離命令など)に従う制御機能を有していてもよい。
【0013】
図9は、操作履歴の一例を示す図である。この図では、クライアント端末装置10から、何らかの通信リクエストがなされた際に、リクエストを行った日付や時刻、ログインしていたユーザー名、リクエスト先のURLなどが記録されている。例えば、レコード901には、2020/08/10の14:00:00に、userAがログインしていたPC-Aから、「http://aaa.com」に対して通信のリクエストが発せられたことを表している。なお、記録される情報としては、この図に限定されるものではない。記憶装置10Bに保存されているコンピュータプログラムやデータは、演算装置10Cによる制御に従って適宜メモリ10EのRAMにロードされ、演算装置10Cによる処理対象となる。また、OSはたとえばWindows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、Android(登録商標)などである。
【0014】
記憶装置10Bは、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などであり、OSのほかにクライアント端末装置10上で稼働するクライアントプログラム10Fなどを格納する。I/Oデバイス10Aは、ポインティングデバイス(マウスなど)やキーボードに接続するための入出力インタフェース(I/F)、または、タッチパネルを組み込んだディスプレイなどである。なお、キーボードはソフトウェアキーボードでもよい。また、I/Oデバイス10Aは、入力された操作者の音声を音声認識機能によって認識し、認識した音声を演算装置10Cへ伝達する、マイク等を含む音声式入力部でもよい。また、I/Oデバイス10Aは、情報を表示するためのユーザインタフェース(UI)としても機能する。
【0015】
ネットワークI/F10Dは、ネットワーク30とのインタフェースであり、他の情報処理装置(たとえば、Webサーバなど)と通信するための通信回路である。演算装置10Cは、ネットワークI/F10Dを介して、ブラウザ10Gなどのプログラムから発せられるリクエストパケットを宛先である他の情報処理装置(たとえば、Webサーバなど)に送信する。
【0016】
<サーバ装置>
サーバ装置のハードウェア構成は、
図1に示す如く、上記で説明したクライアント端末装置10のハードウェア構成と同様であるとする。即ち、サーバ装置20の演算装置20Cは、サーバ装置20の記憶装置20Bに保存されているコンピュータプログラムやデータを用いて、サーバ装置20のネットワークI/F20Dを介して、他の情報処理装置とのデータ通信を行うと共に、サーバ装置20が行うものとして後述する各処理を実行する。また、サーバ装置20の記憶装置20Bには、サーバプログラム20Fが保存されている。
【0017】
サーバ装置20において、演算装置20Cはマイクロプロセッサ(CPU)である。演算装置20Cは、メモリ20EのROMに格納されたBIOSなどのブートプログラムに従い記憶装置20Bに格納されたOSを起動する。そして、ネットワーク30を介して接続されたクライアント端末装置10からのリクエストパケットを受信し、インターネット上にある宛先である他の情報処理装置(たとえば、Webサーバなど)にリクエストパケットを送信する。
【0018】
記憶装置20Bは、HDDやSSDなどであり、サーバ装置20上で稼働するサーバプログラム20Fを格納する。ネットワークI/F20Dは、ネットワーク30とのインタフェースであり、クライアント端末装置10など他の情報処理装置と通信するための通信回路である。
【0019】
サーバプログラム20Fは、ネットワークI/F20Dを介して複数のクライアント端末装置10から受け取ったリクエストパケットを、HTTPリクエストのメッセージヘッダごとに分割して、クライアント端末装置10上のクライアントプログラム10Fによって付加されたクライアント端末装置10の情報を抽出する。また、クライアント端末装置10からのリクエストを拒否した場合、その理由を返答パケット内に付加する。
【0020】
また、ネットワーク30を介して接続されたクライアント端末装置10から送信されるクライアント端末装置10の操作履歴を記憶装置20Bに記憶させ、管理することもできるし、クライアント端末装置10に対して修正プログラムの適用命令、ウイルススキャン命令、隔離命令などを送信することもできる。
【0021】
データベース20Gは、クライアント端末装置10からのリクエストを拒否した場合に、同端末から送信されてくるクライアント固有の情報を蓄積する。
【0022】
サーバ装置20は、クライアント端末装置10側のネットワーク30とインターネット40との境界上に設置されている。この構成をとることにより、ネットワーク30内とインターネット40の間でやりとりされるすべてのパケットをサーバ装置20経由にすることができ、やりとりされるすべてのパケットに対して本発明を適用することができる。
【0023】
また、サーバ装置20とクライアント端末装置10は、
図1では共にLANの内部に設置されているが、サーバ装置20は、クライアント端末装置10とネットワーク30を介して接続可能であれば、インターネット40上に設置してもよい。
【0024】
<情報機器>
企業や官公庁などの一般的なネットワーク環境においては、クライアント端末装置10とサーバ装置20との間に、情報機器50が設置される。情報機器50は、クライアント端末装置10からサーバ装置20への通信を中継する機器であり、例えば、ルータ、ファイアウォール、UTM(Unified Threat Management)など、他のネットワーク機器である。なお、
図1の構成の場合、情報機器50とサーバ装置20との間でやり取りされるイーサネット(登録商標)フレームのパケットの場合、送信元MACアドレスが情報機器50のものになるため、MACアドレスを用いた送信元クライアントの特定は不可能になる。
【0025】
<サーバ装置の付加処理>
図2は、本実施形態に係るサーバ装置20が行う付加処理のフローチャートである。
【0026】
サーバ装置20の演算装置20Cは、ネットワーク30によって接続されたクライアント端末装置10から、リクエストパケットが送信されてくるのを監視している(S-201)。
【0027】
クライアント端末装置10からリクエストパケットが送信されると、インターネット40に到達する前に、情報機器50を介して、サーバ装置20にパケットが到達する。サーバ装置20にパケットが到達すると、演算装置20Cは、受信したパケットが危険なWebサイトへのリクエストか否か(遮断対象か否か)を判定する(S-202)。なお、パケットが危険なWebサイトへのアクセスのものかどうかの判断は、記憶装置20Bに予め記憶されている危険なWebサイトのホスト名のリストと、HTTPリクエストヘッダの標準ヘッダに含まれる「Host」とを、比較して判断する。なお、「Host」は一例であって、「Referer」など、危険なWebサイトへのアクセスがわかれば、これに限定されない。
【0028】
演算装置20Cによって、接続先が危険なwebサイトであると判断された場合(S-202のYES)、リクエストパケットを破棄する等して、接続を拒否する(S-204)。危険なwebサイトではないと判断した場合(S-202のNO)、そのリクエストを通過させ、webサイトへの接続を許可する(S-203)。
【0029】
これにより、クライアント端末装置10が危険なwebサイトに接続することを防ぐことができ、コンピュータウィルスに感染するなどの被害を防ぐ効果を得ることができる。しかし、パケットを破棄した場合、クライアント端末装置10では、単純に接続ができない状態になるのみであり、接続できない理由を知ることができない。そのため、演算装置20Cは、返答パケットのヘッダ部分に、接続を拒否した理由(「危険なwebサイトに接続した」等)を付加して(S-205)、クライアント端末10に送信する(S-206)。これにより、クライアント端末装置10において、接続が拒否された理由を知ることができる。
【0030】
図5は、パケットの一例を示す図であり、演算装置20Cによって編集されたパケット内のHTTPレスポンスのメッセージヘッダの一例である。この例では、Content-Typeなどの通常のヘッダのほかに、演算装置20Cによって付加された「DenyReason」ヘッダがあり、その中には接続を拒否した理由「malicious web site」が記録されている。
【0031】
演算装置20Cによって付加される情報は、接続を拒否した理由(特定の情報)に限定されず、例えば、クライアント端末装置10に対するウィルススキャン命令や、返答パケットを他のコンピュータへ転送する命令などを付加してもよい。
【0032】
また、演算装置20Cが情報を付加する箇所についても、HTTPリクエストのメッセージヘッダに限定されず、例えばTCPパケットのヘッダ部やデータ部などを用いてもよい。
【0033】
<クライアント端末装置の処理>
図3は、本実施形態に係るおよびクライアント端末装置10が行う処理のフローチャートである。サーバ装置20から送信されたパケットがクライアント端末装置10に到達すると、演算装置10Cが、パケットを受信する(S-301)。
【0034】
演算装置10Cは、受け取った全てのパケットに対して、その接続リクエストが拒否されたかどうかを判定する。具体的には、受け取った全てのパケットに対して、以下の処理を行う。
【0035】
演算装置10Cは、パケット内のHTTPリクエストのメッセージヘッダのデータを、ヘッダ名単位に分割する(S-302)。次に、演算装置10Cは、返答パケットに、遮断されたことを示す情報があるか否かを判定する(S-303)。すなわち、分割したヘッダの中に、サーバ装置20のサーバプログラム20F(演算装置20C)が追記したヘッダ名が存在するかどうかを判定する。判定は、ヘッダ名が、サーバプログラム20F(演算装置20C)が付加する固有のものかどうかなど、予め記憶装置10Bに記憶されているテーブルを用いて判定を行う。
【0036】
リクエストが拒否されたかどうかの判定方法は、上記のような独自ヘッダとして記述された部分を用いる方法に限定されず、例えばサーバ装置20が返答パケットを返す際のレスポンスコードを独自のものに変更するなどの方法を用いてもよい。また、サーバ装置20をプロキシサーバとした場合、プロキシサーバの性質上、SSL等の暗号化通信の場合は、基本的にはHTTPパケットのヘッダ部やデータ部を参照できないため、そのような問題を回避するために、TCPパケットのヘッダ部分などに情報を記録してもよい。
【0037】
図5に示すように、パケットには「DenyReason」など、接続を拒否した理由が記録されている。また、前記の「DenyReason」は、RFC(Request For Comments)で規定されたHTTPの標準ヘッダではないため、受信パケットに該当ヘッダを残したまま、ブラウザ等のアプリケーションへ該当パケットを渡したとすると、アプリケーション側が該当ヘッダを読み取れず、エラーが発生する危険性がある。そのため、演算装置10Cは、該当ヘッダを削除してから、リクエスト元のアプリケーションに該当パケットを渡す(S-304)。
【0038】
上述した処理によって、接続を拒否されたことが分かった場合、演算装置10Cは、前記の「DenyReason」に記録された理由をもとに、クライアント端末装置10に適切な処置(ネットワーク遮断等)を行う(S-305)。例えば、拒否理由が危険なwebサイトへのアクセスを行ったためであった場合、クライアント端末装置10はマルウェアに感染している危険性が高いといえる。そのため、演算装置10Cは、マルウェアが拡散しないようにするために、クライアント端末装置10をネットワークから遮断する。
【0039】
サーバ装置20に対して送信するパケットを作成し(S-306)、該当パケットに、クライアント端末装置10の情報を示すクライアント固有の情報および、該当パケットがクライアント固有の情報を伝達する目的で送信されたことを表す識別情報を付加して(S-307)、該当パケットをサーバ装置20へ送信する(S-308)。
【0040】
クライアント固有の情報とは、たとえば、クライアント端末装置を示す情報(コンピュータ名、ユーザ名など)、パケットを送信したプログラムを示す情報(リクエストを行ったプログラム名、プロセス名など)である。これらの情報は、パケット内の任意の箇所に記述する。例えば、パケットのヘッダ部分に記述してもよいし、POSTパケットのデータ部分に記述するような形をとってもよい。
【0041】
一例として、パケットのヘッダ部分にクライアント固有の情報および、クライアント固有の情報を伝達する目的で送信されたことを表す識別情報を記述する方法を説明する。
図6は、パケットの一例を示す図であり、演算装置10Cによって編集されたパケット内のHTTPリクエストのメッセージヘッダの一例である。この例では、User-Agentなどの通常のヘッダのほかに、クライアントプログラム10Fによって付加された「ADDHEADER」ヘッダがあり、その中にはクライアント端末装置10のコンピュータ名「TestPCNAME.test.com」と、リクエストを行ったプログラム名「iexplore.exe」が記録されている。なお、リクエストパケットを送信したプログラム名と宛先URLとを特定する方法は、公知の技術(たとえば、特開2012-185799号公報)であるため説明を省略する。
【0042】
また、
図6に示すパケットには「IsBlock」ヘッダがあるが、このヘッダが、クライアント固有の情報を伝達する目的で送信されたことを表す識別情報となる。パケットに該当情報を付加した後、演算装置10Cはサーバ装置20へパケットを送信する。
【0043】
<サーバ装置の抽出処理>
図4は、本実施形態に係るサーバ装置20が行う抽出処理のフローチャートである。演算装置10Cから送信されたパケットがサーバ装置20に到達すると、演算装置20Cは、パケットを受信する(S-401)。
【0044】
次に、演算装置20Cは、該当パケットがクライアント固有の情報を伝達する目的で送信されたものであるか否かを判定し、また、そうであれば送信元のクライアント固有の情報を抽出しようと試みる。具体的には、該当パケットに対して、以下の処理を行う。演算装置20Cは、パケット内のHTTPリクエストのメッセージヘッダのデータを、ヘッダ名単位に分割する(S-402)。次に、分割したヘッダの中に、クライアント端末装置10のクライアントプログラム10F(演算装置10C)が付加した、クライアント固有の情報を伝達する目的で送信されたことを示す識別情報が存在するかどうかを判定する(S-403)。
【0045】
存在する場合は(S-403のYES)、分割したヘッダの中から、クライアント固有の情報(コンピュータ名、プログラム名など)を表すヘッダがあるかどうかを探し、ヘッダの値に記録された文字列を、該当のクライアント固有の情報として抽出する(S-404)。
【0046】
図6を用いて具体的に説明する。たとえば、
図6に示されるようなパケットをサーバプログラム20Fが受け取った場合、まずヘッダ名単位に分割する。ヘッダの中には、クライアントプログラム10Fが付加した「IsBlock」ヘッダが存在するので、このパケットは、クライアント固有の情報を伝達する目的で送信されたものであると判断できる。また、「ADDHEADER」ヘッダが存在するので、その内容の文字列「TestPCNAME.test.co;iexplore.exe」を取得し、セミコロンで分割する。すると、送信元のコンピュータ名が「TestPCNAME.test.co」であることがわかり、かつパケットの送信を行ったプログラム名が「iexplore.exe」であることがわかる。
【0047】
この結果、危険なWebサイトへのリクエストパケットを送信したクライアントの情報をサーバ装置上で特定することができる(S-405)。次に、演算装置20Cは、該当のクライアントがリクエストを拒否されたという情報をデータベース20Gに記録する(S-406)。
【0048】
また、
図7に、データベース20Gに記録する情報の例を示す。ここでは、アクセスを試みた時刻、コンピュータ名、プロセス名、ユーザ名などが記録されており、例えば日付をキーにして集計すれば、日別のアクセス数を、コンピュータ名をキーにして集計すれば、危険なアクセスを試みたコンピュータのランキングを算出することなどが可能になる。
【0049】
なお、クライアントプログラム10Fが付加するヘッダ名およびヘッダのフォーマットに関しては、予めサーバプログラム20Fと、クライアントプログラム10Fの間で取り決めておき、記憶装置10B、20Bに各々記憶しておく。
【0050】
上述したように、本発明においては、パケットを解析する場所(例えば、通信の送信元を特定する場所)を通信経路の終端(Webサーバなど)ではなく、通信経路の途中かつ管理者が管理できる場所(プロキシサーバなど)に設置する。これにより、通信の宛先に影響されることなく、全てのパケットの解析を行い、簡便かつ正確に通信の送信元を特定することができる。
【0051】
また、クライアントの情報を特定することにより、例えば、危険な接続先への通信を遮断してマルウェアによる被害を防ぐ場合に、クライアント端末装置に残っているマルウェアに対しても対策を打つことができる。また、データベース20Gに記録された情報を参照することで、例えば頻繁に危険なサイトにアクセスを試みている端末を特定することができ、セキュリティ監査などの際に有効なデータを提供することができる。
【0052】
[第二の実施形態]
パケットの送信元クライアントを特定することにより、たとえば、以下のような効果を得ることができる。受信したパケットに付加されたクライアント固有の情報から、危険なWebサイトへアクセスリクエストを行ったコンピュータおよびプログラムを特定することができる。以下では、パケットの送信元クライアントとプログラムをサーバ装置にて特定した後の処理について説明する。なお、本実施形態の動作の大部分が第一の実施形態の動作と共通するため、ここでは、第一の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【0053】
図8は、サーバ装置20の処理を示すフローチャートである。演算装置20Cは、受信したパケットが危険なWebサイトへのリクエストか否かを判定する(S-801)。なお、パケットが危険なWebサイトへのアクセスのものかどうかの判断は、HTTPリクエストヘッダの標準ヘッダに含まれる「Host」と、記憶装置20Bに予め記憶されている危険なWebサイトのホスト名のリストとを比較して判断する。危険なWebサイトではないと判定された場合(S-801のNO)、パケットを宛先に送信し処理を終了する。なお、上述した説明では、サーバ装置20にて受信したパケットが危険なWebサイトへのリクエストか否かを判定しているが、ネットワーク30に接続されている不図示の装置(たとえば、UTM)にて判定を行ってもよい。その場合、ステップS-801は省略される。
【0054】
また、危険なWebサイトへのアクセスだと判断された場合(S-801のYES)、クライアント装置10およびサーバ装置20は、
図2のS-204~S-206、
図3のS-301~S-208、および
図4のS-401~S-406に記載の処理を行い、クライアントの特定(コンピュータ名、プログラム名など)を行う(S-802)。これらの処理は実施形態1に記述されているため、本実施形態での記述は省略する。
【0055】
演算装置20Cは、S-802にて特定したプログラムが、Webブラウザか否かを判定する(S-803)。Webブラウザか否かの判定は、記憶装置20Bに予め記憶されているWebブラウザを示すプログラム情報に基づいて判定される。特定したプログラムがWebブラウザである場合、たとえば、フィッシングメールに記載されている危険なURLからジャンプしたことが推測できる。そこで、Webブラウザと判定された場合(S-803のYES)、演算装置20Cは、クライアントのメールの設定を変更する(S-804)。たとえば、フィッシングメールが届かないようにするために、ステップS-803にて特定したクライアントの操作履歴からフィッシングメールを送信した宛先を調べ、その宛先からのメールを受信しない設定にする。なお、メール設定は、サーバ装置20に記憶されていてもよいし、クライアント端末装置10、不図示のメールサーバに記憶されてもよい。
【0056】
演算装置20Cは、特定したプログラムが、一般的なアプリケーションか否かを判定する(S-805)。一般的なアプリケーションか否かの判定は、記憶装置20Bに予め記憶されている一般的なアプリケーションを示すプログラム情報に基づいて判定される。一般的なアプリケーション(たとえば、表計算ソフト、文書作成ソフトなど)である場合、一般的なアプリケーションの脆弱性を利用したリクエストと推測される。そこで、一般的なアプリケーションと判定された場合(S-805のYES)、演算装置20Cは、クライアント端末装置10に脆弱性を修正する修正プログラムを適用する(S-806)。なお、一般的なアプリケーションと修正プログラムの取得先(ダウンロードサーバ)を対応付けて記憶装置20Bに予め記憶しておき、該当する取得先にアクセスして修正プログラムを取得し、クライアント端末装置10に修正プログラムを適用してもよい。また、修正プログラムを一般的なアプリケーションと対応付けて記憶装置20Bに予め記憶していてもよい。
【0057】
演算装置20Cは、特定したプログラムが一般的なアプリケーションではないと判定された場合(S-805のNO)、ウイルススキャンまたは隔離命令をクライアント端末装置10に送信する(S-807)。特定したプログラムがWebブラウザや一般的なアプリケーションではない場合、マルウェア自身がC&Cサーバなど危険な接続先と通信していることが推測できる。そこで、クライアント端末装置10内のウイルススキャンを行ったり、ネットワークから隔離したり、感染が拡大しないようにするといった対策が必要である。なお、ステップS-803やステップS-805にて、判定基準とした所定のプログラムであるWebブラウザや一般的なアプリケーションは一例であって、これに限定されない。
【0058】
上述したように、クライアント固有の情報(クライアント情報)を付加することで、通常のパケットだけではわからない、クライアント端末装置側の状況を把握でき、かつ即座に適切な対策を講じることができる。
【0059】
[第三の実施形態]
本実施形態では、操作履歴を用いることによって、一見無害であるWebサイトからの被害を発見して対処する処理について説明する。なお、本実施形態の動作の大部分が第一の実施形態および第二の実施形態の動作と共通するため、ここでは、第一の実施形態および第二の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【0060】
図9は、操作履歴の一例を示す図である。
図9の操作履歴を参照すると、レコード902にて、日付「2020/11/18」、時刻「11:00:00」に、ユーザ名「userC」がPC名「PC-C」において、「http://aaa.com」というURLにアクセスしたことが記録されている。もし、「http://aaa.com」が危険なWebサイトであると判明した場合、まずは該当のURL「http://aaa.com」にアクセスした「PC-C」に対してウイルススキャンをかける、または、該当のURLへのアクセスを禁止にするなどの処置を行うことが必要となる。
【0061】
ただ、危険なWebサイトは、全て悪意のある者によって作られたわけではなく、通常のWebサイトであったURLが、悪意ある第三者に乗っ取られ、マルウェアを配布するなどの危険な動きをするように改ざんされるという場合もある。また、該当のURLが危険かどうかの判定は、アンチウィルスベンダーによる調査が行われた後に行われるので、Webサイトが改ざんされた瞬間ではなく、しばらく時間が経過した後になる。そのため、無害であると判定されている時期でも、実際にはすでに危険なWebサイトに改ざんされている可能性があるので、危険であると判定される以前に該当のURLにアクセスしたPCに対しても、ウイルススキャンなどの処置を行う必要がある。
【0062】
図10は、サーバ装置20の処理を示すフローチャートである。なお、
図10のフローチャートにおいて
図8に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、この処理ステップに係る説明は省略する。
【0063】
まず、ステップS-801において、演算装置20Cが、あるクライアント端末装置10(たとえば、「PC-C」)がアクセスしようとしたURL(たとえば、「http://aaa.com」)が危険であると判定したとする。その後、演算装置20Cは、記憶装置20Bに記録されている全てのクライアント端末装置10にて記録された操作履歴を参照する(S-1001)。次に、演算装置20Cは、危険であると判定されたURLに対して、ステップS-801において検出されたパケットを発信したクライアント端末装置10(たとえば、「PC-C」)以外からのアクセスが、操作履歴に存在するかどうかを判定する(S-1002)。
【0064】
図9の操作履歴を参照すると、レコード901にて、URL「http://aaa.com」に対しては、日付「2020/08/10」、時刻「14:00:00」にも、PC名「PC-A」がアクセスしていることがわかる。演算装置20Cは、他のクライアント端末装置10によるアクセスが確認されない場合(S-1002のNO)、何もせずに処理をステップS-803へ移行する。アクセスが確認された場合(S-1002のYES)、演算装置20Cは、該当クライアント端末装置10(たとえば、「PC-A」)に対して、ウイルススキャンまたは隔離命令を送信する(S-1003)。たとえば、
図9の操作履歴の場合、「PC-A」による該当URL「http://aaa.com」へのアクセスが確認されたため、演算装置20Cは、「PC-A」に対してウイルススキャンなどの命令を発行する。
【0065】
上述したように、操作履歴を参照することで、一見無害であるWebサイトからの被害を発見し、その対処を行うことができる。
【0066】
[第四の実施形態]
本実施形態では、クライアント端末装置10においてローカル時刻が変更された場合でも、Webサイトからの被害を発見して対処する処理について説明する。
【0067】
第三の実施形態では、演算装置20Cが操作履歴を参照することによって、危険なURLに対して、過去に他のクライアント端末装置10からのアクセスが存在したかどうかを判定する処理を行っていた。しかし、操作履歴の「時刻」を、クライアント端末装置10のローカルの時刻を基に記録している場合、ローカル時刻を基の時刻から変更してしまうと、操作履歴の時刻も変わってしまう。
【0068】
ローカル時刻の変更自体を禁止すれば、上述した問題の発生を防止することができるが、プログラムのテスト等、悪意のない目的での時刻変更を阻害し、利便性を損なうことにもなるため、一概に時刻の変更を禁止することは適切ではない。そのため、ローカル時刻の変更を許容しつつ、操作履歴の正しい時刻を取得できるような手段が必要となる。そこで、クライアント端末装置10のローカル時刻が変更された際、演算装置10Cは、変更前と変更後の時間差を記憶して、その差(オフセット)を操作履歴に記録しておく。時間差(オフセット)を操作履歴に記録する例を、
図11に示す。
図11は、操作履歴の一例を示す図である。
【0069】
図12は、サーバ装置20の処理を示すフローチャートである。なお、
図12のフローチャートにおいて
図8に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、この処理ステップに係る説明は省略する。
【0070】
ステップS-801において、日付「2020/11/18」、時刻「11:00:00」に、PC名「PC-C」がアクセスしたURL「http://aaa.com」が、演算装置20Cによって危険であるWebサイトであると判定したとする。演算装置20Cは、以前に他のクライアント端末装置10にて同一のURL「http://aaa.com」にアクセスしたかどうかを判定するために、記憶装置20Bに記憶されている全てのクライアント端末装置10にて記録された操作履歴を参照する(S-1201)。
【0071】
演算装置20Cは、オフセットの値を用いた時刻の再計算を行う(S-1202)。たとえば、
図11のレコード1101には、「PC-A」が日付「2020/11/19」時刻「14:00:00」に「http://aaa.com」へアクセスした操作履歴が存在するが、時刻のオフセットには、この操作履歴が本来の時刻から48時間進んだものであることが記録されているため、オフセットを加味して時刻を再計算すると、日付「2020/11/17」、時刻「14:00:00」となる。
【0072】
演算装置20Cは、ステップS-1202にて再計算された時刻を適用し、過去に該当のURL「http://aaa.com」にアクセスした履歴があるか否かを判定する(S-1203)。たとえば、
図11のレコード1101は、ステップS-1202にて再計算された日付「2020/11/17」、時刻「14:00:00」に、「PC-A」において、「http://aaa.com」にアクセスがあったことが確認できる。
【0073】
演算装置20Cは、他のクライアント端末装置10によるアクセスが確認されない場合(S-1203のNO)、何もせずに処理をステップS-803へ移行する。アクセスが確認された場合(S-1203のYES)、演算装置20Cは、該当クライアント端末装置10(たとえば、「PC-A」)に対して、ウイルススキャンまたは隔離命令を送信する(S-1204)。
【0074】
たとえば、
図11の操作履歴の場合、「PC-A」による該当URL「http://aaa.com」へのアクセスが確認されたため、演算装置20Cは、「PC-A」に対してウイルススキャンなどの命令を発行する。従って、「PC-A」に対しても、ウイルススキャン命令を出すなどの対処を行うことができる。
【0075】
上述したように、クライアント端末装置10においてローカル時刻が変更された場合でも、変更された時刻のオフセットの値を操作履歴に記録しておくことで、第三の実施形態と同様な対処を行うことができる。
【0076】
[第五の実施形態]
本実施形態では、ハッシュ値を用いることによって、潜伏しているマルウェアが存在するクライアント端末装置を発見して対処する処理について説明する。なお、本実施形態の動作の大部分が第一の実施形態ないし第四の実施形態の動作と共通するため、ここでは、第一の実施形態ないし第四の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【0077】
第三及び第四の実施形態では、演算装置20Cが操作履歴を参照することによって、危険なWebサイトに対して、過去に他のクライアント端末装置10からのアクセスが存在したかどうかを判定する処理を行っていた。本実施形態では、クライアント端末装置10からパケットを送信したプログラム(クライアント端末装置10上で動作し、ネットワークI/F10Dおよびネットワーク30を介して、リクエストパケットを外部に送信するプログラムのハッシュ値を、クライアント固有の情報として、
図3に示すS-306~S-308の操作にて作成する、クライアント固有の情報を伝達するパケットを介して、クライアント端末装置10からサーバ装置20へ伝達する。また、操作履歴に、パケットを送信したプログラム(通信のリクエストを行ったプログラム)のハッシュ値を記録する。
【0078】
操作履歴にハッシュ値を付加した例として、
図13を示す。
図13は、操作履歴の一例を示す図である。
図9および
図11に表される操作履歴と同様の意味を持つが、
図11に加えて、通信のリクエストを行ったプログラムのハッシュ値が記録されている。ハッシュ値は、クライアントプログラム10Fによって、プログラムのバイナリの値をキーとして、SHA-1やSHA-256といったアルゴリズムによって算出され、その後操作履歴として記憶装置10Bに記録される。
【0079】
レコード1301には、ハッシュ値として「AAAAAA...」という値が記録されているが、これは、ハッシュ値「 AAAAAA...」のプログラムが通信リクエストを行ったことを表している。また、レコード1301とレコード1302のハッシュの値が「 AAAAAA...」で一致しているが、これは、2つの通信リクエストが、別々のクライアント端末装置10(PC-A、PC-C)から発せられているにも拘らず、全く同一のプログラムから行われたことを表している。
【0080】
図14は、サーバ装置20の処理を示すフローチャートである。以下では、一例として、
図13に示す操作履歴が記録されているものとして説明を行う。
【0081】
まず、ステップS-801において、演算装置20Cが、あるクライアント端末装置10がアクセスしようとしたURL(たとえば、「http://01234.com」)が危険であると判定したとする。以下では、日付「2020/11/21」時刻「16:00:00」に、「PC-X」から、ハッシュ値「AAAAAA...」のプログラムが、「http://01234.com」というURLに対してアクセスを行ったものとして説明する。
【0082】
その後、演算装置20Cは、記憶装置20Bに記録されている全てのクライアント端末装置10にて記録された操作履歴を参照する(S-1401)。
【0083】
次に、クライアント装置10およびサーバ装置20は、
図3および
図4の処理を行い、クライアントの特定(ハッシュ値)を行う(S-802)。次に、演算装置20Cは、ステップS-1401にて参照した操作履歴の中から、S-802で取得したハッシュ値と同一のハッシュ値を持つプログラムによる通信が存在するかどうかを判定する(S-1402)。
【0084】
過去に同一のハッシュ値を持つプログラムによる通信が存在する場合(ステップS-1402のYES)、危険なURL(「http://01234.com)へアクセスしたものと全く同一のプログラムが存在するということになる。
図13に示す操作履歴の場合、URL「http://01234.com」に対しては過去にアクセスした痕跡が無いが、ハッシュ値「AAAAAA...」による通信は、操作履歴のレコード1301とレコード1302の2件が該当する。
【0085】
仮に、ハッシュ値「 AAAAAA...」のプログラムがマルウェアである場合、操作履歴に記憶されているURL「http://aaa.com」および「http://ddd.com」が危険ではないと判定されていたとしても、これらは未知のC&Cサーバなどの危険なサイトである可能性が高い。従って、PC名「PC-A」とPC名「PC-C」にも、既に同じマルウェアが侵入していることがわかるため、演算装置20Cから、これらのクライアント端末装置10に対して、ウイルススキャンまたは隔離命令を送信する(S-1403)。
【0086】
上述したように、ハッシュ値を用いることで、危険なURLにアクセスすることなく潜伏しているマルウェアが存在するクライアント端末装置を発見し、そのクライアント端末装置に対しても対処を行うことができる。
【0087】
[第六の実施形態]
本実施形態では、ユーザアカウントを用いることによって、危険なWebサイトへアクセスを行おうとした同一ユーザによる、他のクライアント端末装置でのログインを制限する処理について説明する。
【0088】
第一の実施形態では、クライアント端末装置10から送信されるHTTPリクエストのメッセージヘッダに、クライアント固有の情報として、クライアント端末装置10のコンピュータ名を付加することで、危険なWebサイトへのアクセスを行おうとしたクライアント端末装置10を特定し、ネットワークから隔離する等の処置を行った。しかし、クライアント端末装置10に対して何らかの処置を施したとしても、そのクライアント端末装置10を使用したユーザが別のクライアント端末装置10を使用した場合、同じような危険なWebサイトに接続を試みる可能性がある。そこで、本実施形態では、演算装置10Cが、クライアント固有の情報として、ログインしているユーザを示す情報である、ユーザアカウント(ユーザ名)を付加することにより、サーバ装置20は、危険なWebサイトへのアクセス時にクライアント端末装置10にログインしていたユーザアカウントを特定でき、特定したユーザアカウントを用いて、同一のユーザによるクライアント端末装置10へのログインを制限することができる。
【0089】
図15は、情報処理システムの構成例を示すシステム構成図である。
図15に示す情報処理システムは、
図1に示す情報処理システムの構成に加えて、サーバ装置60、複数のクライアント端末装置11を含む。サーバ装置60の大部分は、サーバ管理装置20と共通するため、以下では説明を省略し、異なる部分のみ説明する。なお、本実施形態の動作の大部分が第一の実施形態ないし第五の実施形態の動作と共通するため、ここでは、第一の実施形態ないし第五の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【0090】
サーバ装置60には、ネットワーク30内に存在するすべてのクライアント端末装置10のログインを管理する、ログイン管理プログラム60Fが格納されている。なお、ログイン管理プログラム60Fと、サーバプログラム20Fは同一のサーバ装置上で実現する構成でもよい。
【0091】
また、記憶装置60Bには、ネットワーク30内に存在するすべてのクライアント端末装置10のユーザアカウント(アカウント名)とログイン制限(許可/拒否)が対応付けられたアカウント管理テーブルが記録されている。
図17に、アカウント管理テーブルの一例を示す。アカウント管理テーブルは、後述するように、危険なWebサイトにアクセスしたユーザアカウントを特定することで記録される。なお、アカウント管理テーブルは、管理者によって記録されてもよい。ログインを管理するログイン管理プログラム60Fは、演算装置60Cによる制御に従って適宜メモリ60EのRAMにロードされ、演算装置60Cによる処理対象となる。
【0092】
また、本実施形態では、クライアント端末装置10にログインを行う際、
図16に示す処理が行われる。
図16は、ログイン制限を示したシーケンス図である。任意のクライアント端末装置10において、ユーザによってログインが試みられたことをクライアント装置10の演算装置10Cが検知する(S-1601)。
【0093】
演算装置10Cは、ネットワークI/F10Dおよびネットワーク30を介して、サーバ装置60に、ログインが可能かどうかの問い合わせを行う(S-1602)。また、問い合わせの際には、ログインしようとしているユーザアカウントも一緒に送信されるものとする。
【0094】
問い合わせを受け取った演算装置60Cは、記憶装置60Bに記憶されているアカウント管理テーブルに基づいて、ロードしたユーザアカウントと、問い合わせに含まれるユーザアカウントとを比較し、ログイン可能かどうかを判定する(S-1603)。
【0095】
演算装置60Cは、問い合わせ元のクライアント端末装置10に、判定の結果(ログインの許可または拒否)の返答を返す(S-1604)。クライアント端末装置10の演算装置10Cは、受信した判定結果に基づいて、ログインの許可/拒否を行う。たとえば、
図17に示すように、userAからのログインは許可され、userBからのログインは拒否される、ということになる。
【0096】
あるユーザが、危険なWebサイトへのアクセスを行ったとする(
図8のステップS-801にてYESと判定されたとする)。上述したように、本実施形態では、演算装置10Cにより、リクエストパケットにログインしているユーザアカウントが付加されているため、演算装置20Cは、リクエストを行ったユーザアカウントを特定できる。そこで、演算装置20Cは、ネットワークI/F20Dおよびネットワーク30を介し、サーバ装置60の記憶装置60Bに記録されているアカウント管理テーブルの、危険なWebサイトへのアクセスを行ったユーザのユーザアカウントに対応するログイン制限を「拒否」と記録する。
【0097】
上述したように、危険なWebサイトへのアクセスを試みたユーザが、別のクライアント端末装置からログインしようとした際に、そのログインを禁止することができる。これにより、同一ユーザによる危険なWebサイトへのアクセスを抑止することができる。
【0098】
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(たとえば、ASIC)によっても実現可能である。