(57)【要約】      （修正有）【課題】簡便に通信の送信元を特定することができる情報処理システム、サーバ装置、サーバ装置の制御方法及びプログラムを提供する。【解決手段】情報処理システムは、クライアント端末装置１０と、情報機器５０と、サーバ装置２０とを有する。クライアント端末装置１０は、パケットを監視する監視手段と、監視手段にて監視されたパケットに、クライアント固有の情報を付加する付加手段と、付加手段にて付加されたパケットを情報機器５０に送信する送信手段とを備える。サーバ装置２０は、情報機器５０からパケットを受信する受信手段と、受信手段にて受信したパケットから、クライアント固有の情報を抽出する抽出手段と、を備える。【選択図】図１
2020107335.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムであって、
クライアント端末装置と、情報機器と、サーバ装置とを有し、
前記クライアント端末装置は、
パケットを監視する監視手段と、
前記監視手段にて監視されたパケットに、クライアント固有の情報を付加する付加手段と、
前記付加手段にて付加されたパケットを前記情報機器に送信する送信手段と
を備え、
前記サーバ装置は、
前記情報機器から前記パケットを受信する受信手段と、
前記受信手段にて受信したパケットから、前記クライアント固有の情報を抽出する抽出手段と
を備えたことを特徴とする情報処理システム。
【請求項２】
前記サーバ装置は、プロキシサーバであることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記情報機器は、ルータ、ファイアウォール、またはＵＴＭであることを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記クライアント固有の情報は、前記クライアント端末装置を示す情報、ユーザを示す情報、及び前記パケットを送信したプログラムを示す情報のいずれか、または組み合わせであることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記サーバ装置は、
更に、
前記クライアント固有の情報である前記パケットを送信したプログラムを示す情報が、所定のプログラムを示す情報か否かを判定する第一の判定手段を備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
前記監視手段は、前記クライアント端末装置の操作を監視し、
前記クライアント端末装置は、
更に、
前記監視手段にて監視された操作を操作履歴として出力する出力手段を備えることを特徴とする請求項１乃至５に記載の情報処理システム。
【請求項７】
前記操作履歴には、前記パケットの宛先を示す情報が含まれ、
前記サーバ装置は、
更に、
前記操作履歴に特定のパケットの宛先を示す情報があるか否かを判定する第二の判定手段を備えることを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記操作履歴には、前記クライアント端末装置の変更前の時刻と、変更後の時刻との差であるオフセットの値が含まれ、
前記サーバ装置は、
更に、
前記オフセットの値に基づいて、前記クライアント端末装置の時刻を算出する算出手段を備え、
前記第二の判定手段は、前記算出手段にて算出された時刻に基づいて判定することを特徴とする請求項７に記載の情報処理システム。
【請求項９】
前記操作履歴には、前記パケットを送信したプログラムのハッシュ値が含まれ、
前記サーバ装置は、
更に、
前記操作履歴に特定のハッシュ値があるか否かを判定する第三の判定手段を備えることを特徴とする請求項６に記載の情報処理システム。
【請求項１０】
前記抽出手段は、前記受信したパケットから、ユーザを示す情報を抽出し、前記ユーザを示す情報と、前記クライアント端末装置へのログインの制限に関する情報とが対応付けられたテーブルに記録することを特徴とする請求項１ないし９のいずれか１項に記載の情報処理システム。
【請求項１１】
前記クライアント端末装置は、
前記クライアント端末装置へのログインが試みられた時に、前記クライアント端末装置のユーザを示す情報を含めた情報を、前記サーバ装置に送信し、
前記サーバ装置は、
前記テーブルに基づいて、受信した前記クライアント端末装置のユーザを示す情報における前記クライアント端末装置へのログインの制限を判定することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
クライアント端末から送信されたパケットを、情報機器を介して受信する受信手段と、
前記受信手段にて受信したパケットに、所定のクライアント固有の情報が含まれているか否かを判定する判定手段と、
前記判定手段にて所定のクライアント固有の情報が含まれていると判定された場合、該パケットからクライアント固有の情報を抽出する抽出手段と
を備えたことを特徴とするサーバ装置。
【請求項１３】
クライアント端末から送信されたパケットを、情報機器を介して受信する受信工程と、
前記受信工程にて受信したパケットに、所定のクライアント固有の情報が含まれているか否かを判定する判定工程と、
前記判定工程にて所定のクライアント固有の情報が含まれていると判定された場合、該パケットからクライアント固有の情報を抽出する抽出工程と
を備えたことを特徴とするサーバ装置の制御方法。
【請求項１４】
コンピュータを、
クライアント端末から送信されたパケットを、情報機器を介して受信する受信手段と、
前記受信手段にて受信したパケットに、所定のクライアント固有の情報が含まれているか否かを判定する判定手段と、
前記判定手段にて所定のクライアント固有の情報が含まれていると判定された場合、該パケットからクライアント固有の情報を抽出する抽出手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、サーバ装置、サーバ装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
マルウェアの中には、Ｃ＆Ｃ（ｃｏｍｍａｎｄ ａｎｄ ｃｏｎｔｒｏｌ）サーバなどの危険な接続先と通信を行い、ハッカーからの指示を受けたり、盗み出した機密情報を送信したりするものがある。これに対して、予め危険な接続先の接続先情報（ＵＲＬやＩＰアドレスなど）をリストアップしておき、リスト上にある宛先への通信を遮断することで、マルウェアによる被害を防ぐといった対策が取られている。この方法によれば、マルウェアによる直接的な被害を防ぐことはできるが、クライアント側に残っているマルウェアに対しては対策が打てないという問題がある。そのため、通信の送信元を特定し、対策を打つことが必要となる。
【０００３】
そこで、ネットワーク通信の送信元を特定する手法としては、イーサネット（登録商標）フレームにおけるＭＡＣアドレスを参照するという技術がある。ただし、ＭＡＣアドレスは同一セグメント内でのみ伝達可能な情報であるため、送信元のクライアントと特定を行うネットワーク機器との間に、別のネットワーク機器が存在しないことが前提となる。しかし、企業や官公庁内における一般的なネットワーク構成の場合、ネットワークの途中にはルータやファイアウォールなど様々な外部機器が存在する。そのため、そういった環境においては、ネットワーク通信の送信元が外部機器のＭＡＣアドレスとなってしまい、クライアントを特定することができない。また、外部機器にてネットワーク通信の送信元を管理する方法もあるが、管理が煩雑となる。
【０００４】
また、別の手法として、送信元ＩＰアドレスを参照するという技術がある。しかし、ＩＰアドレスは1つのコンピュータに常に固定されているわけではないため、たとえば１か月前の通信に関して、ＩＰアドレスからコンピュータ名を特定しようとしても、不可能な場合が多い。そこで、先行技術文献１には、リクエストＵＲＬ内にクライアントの情報を埋め込むことで、送信元であるクライアントを特定するという技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２４０５５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、先行技術文献１では、ＵＲＬを解析する場所をＷｅｂサーバとしているため、ユーザや管理者が管理できない範囲となり、管理外の通信に関しては適用できない。たとえば、マルウェアが利用するＣ＆Ｃサーバは、サイバー犯罪者が設置・管理しているため、この技術は適用できない。そこで、本発明は、簡便に通信の送信元を特定することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、たとえば、情報処理システムであって、
クライアント端末装置と、情報機器と、サーバ装置とを有し、
前記クライアント端末装置は、
パケットを監視する監視手段と、
前記監視手段にて監視されたパケットに、クライアント固有の情報を付加する付加手段と、
前記付加手段にて付加されたパケットを前記情報機器に送信する送信手段と
を備え、
前記サーバ装置は、
前記情報機器から前記パケットを受信する受信手段と、
前記受信手段にて受信したパケットから、前記クライアント固有の情報を抽出する抽出手段と
を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、簡便に通信の送信元を特定することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムの構成例を示すシステム構成図である。
【図２】クライアント端末装置１０の処理を示すフローチャートである。
【図３】サーバ装置２０の処理を示すフローチャートである。
【図４】パケットの一例を示す図である。
【図５】サーバ装置２０の処理を示すフローチャートである。
【図６】操作履歴の一例を示す図である。
【図７】サーバ装置２０の処理を示すフローチャートである。
【図８】操作履歴の一例を示す図である
【図９】サーバ装置２０の処理を示すフローチャートである。
【図１０】操作履歴の一例を示す図である。
【図１１】サーバ装置２０の処理を示すフローチャートである。
【図１２】情報処理システムの構成例を示すシステム構成図である。
【図１３】ログイン制限を示したシーケンス図である。
【図１４】アカウント管理テーブルの一例を示す図である。
【発明を実施するための形態】
【００１０】
［第一の実施形態］
＜システム構成図＞
先ず、本実施形態に係る情報処理システム構成について、図１のシステム構成図を用いて説明する。図１に示す如く、本実施形態に係る情報処理システムは、コンピュータすなわち情報処理装置１０、２０、５０を有しており、それぞれの情報処理装置はＬＡＮやインターネットなどのネットワーク３０に接続されている。以下、情報処理装置１０をクライアント端末装置、情報処理装置２０をサーバ装置（たとえば、プロキシサーバ）、情報処理装置５０を情報機器（たとえば、ルータ、ファイアウォールなど）と呼称する。なお、クライアント端末装置１０、情報機器５０は複数でもよい。サーバ装置２０は複数でもよく、サーバ装置２０の機能の一部または全部が分散設置された複数のサーバ装置２０によって実現されてもよい。また、クライアント端末装置１０、サーバ装置２０、情報機器５０は、ＰＣ・携帯端末装置などの情報処理装置が行うものとして後述する各処理を実行可能な装置であれば、如何なる装置であっても構わない。
【００１１】
＜クライアント端末装置＞
クライアント端末装置１０において、演算装置１０Ｃはマイクロプロセッサ（ＣＰＵ）である。演算装置１０Ｃは、メモリ１０ＥのＲＯＭに格納されたＢＩＯＳなどのブートプログラムに従い、記憶装置１０Ｂに格納されたオペレーティングシステム（ＯＳ）を起動し、さらにＯＳまたはユーザの操作に従い各種のプログラムを起動する。この記憶装置１０Ｂには、ＯＳや本装置が行うものとして後述する各処理を演算装置１０Ｃに実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、クライアントプログラム１０Ｆ、ブラウザ１０Ｇが含まれている。
【００１２】
クライアントプログラム１０Ｆは、クライアント端末装置１０のデータやプログラムなどを管理するためのプログラムであり、たとえば、パケットを監視する、パケットのＨＴＴＰリクエストのメッセージヘッダにクライアント固有の情報（たとえば、コンピュータ名、パケットを送信したプログラム名など）を付加する、パケットを送信する機能を有する。また、クライアントプログラム１０Ｆは、クライアント端末装置１０の操作を監視して操作履歴として記憶装置１０Ｂに記憶する機能、サーバ装置２０からの命令（たとえば、修正プログラムの適用命令、ウイルススキャン命令、隔離命令など）に従う制御機能を有していてもよい。また、クライアントプログラム１０Ｆは、操作履歴を出力する（たとえば、記憶装置１０Ｂに記憶する、サーバ装置２０に送信する）出力機能を有していてもよい。
【００１３】
図６は、操作履歴の一例を示す図である。クライアント端末装置１０から何らかの通信リクエストがなされた際にリクエストを行った日付や時刻、ログインしているユーザ名、コンピュータ名（ＰＣ名）、リクエスト先のＵＲＬ（アクセス先ＵＲＬ）などが記録されている。例えば、レコード６０１は、日付「２０１９／０８／１０」時刻「１４：００：００」にユーザ名「ｕｓｅｒＡ」がログインしていた、ＰＣ名「ＰＣ−Ａ」から、アクセス先ＵＲＬ「ｈｔｔｐ：//ａａａ.ｃｏｍ」に対して通信のリクエストを行ったことを表している。なお、記録される情報はこれに限定されない。
【００１４】
記憶装置１０Ｂに保存されているコンピュータプログラムやデータは、演算装置１０Ｃによる制御に従って適宜メモリ１０ＥのＲＡＭにロードされ、演算装置１０Ｃによる処理対象となる。また、ＯＳはたとえばＷｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ、Ｌｉｎｕｘ（登録商標）、ｉＯＳ、Ａｎｄｒｏｉｄなどである。
【００１５】
記憶装置１０Ｂは、ハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）などであり、ＯＳのほかにクライアント端末装置１０上で稼働するクライアントプログラム１０Ｆなどを格納する。Ｉ／Ｏデバイス１０Ａは、ポインティングデバイス（マウスなど）やキーボードに接続するための入出力インタフェース（Ｉ／Ｆ）、または、タッチパネルを組み込んだディスプレイなどである。なお、キーボードはソフトウェアキーボードでもよい。また、Ｉ／Ｏデバイス１０Ａは、入力された操作者の音声を音声認識機能によって認識し、認識した音声を演算装置１０Ｃへ伝達する、マイク等を含む音声式入力部でもよい。また、Ｉ／Ｏデバイス１０Ａは、情報を表示するためのユーザインタフェース（ＵＩ）としても機能する。
【００１６】
ネットワークＩ／Ｆ１０Ｄは、ネットワーク３０とのインタフェースであり、他の情報処理装置（たとえば、Ｗｅｂサーバなど）と通信するための通信回路である。演算装置１０Ｃは、ネットワークＩ／Ｆ１０Ｄを介して、ブラウザ１０Ｇなどのプログラムから発せられるリクエストパケットを宛先である他の情報処理装置（たとえば、Ｗｅｂサーバなど）に送信する。
【００１７】
＜サーバ装置＞
サーバ装置のハードウェア構成は、図１に示す如く、上記で説明したクライアント端末装置１０のハードウェア構成と同様であるとする。即ち、サーバ装置２０の演算装置２０Ｃは、サーバ装置２０の記憶装置２０Ｂに保存されているコンピュータプログラムやデータを用いて、サーバ装置２０のネットワークＩ／Ｆ２０Ｄを介して、他の情報処理装置とのデータ通信を行うと共に、サーバ装置２０が行うものとして後述する各処理を実行する。また、サーバ装置２０の記憶装置２０Ｂには、サーバプログラム２０Ｆが保存されている。
【００１８】
サーバ装置２０において、演算装置２０Ｃはマイクロプロセッサ（ＣＰＵ）である。演算装置２０Ｃは、メモリ２０EのＲＯＭに格納されたＢＩＯＳなどのブートプログラムに従い記憶装置２０Ｂに格納されたＯＳを起動する。そして、ネットワーク３０を介して接続されたクライアント端末装置１０からのリクエストパケットを受信し、インターネット上にある宛先である他の情報処理装置（たとえば、Ｗｅｂサーバなど）にリクエストパケットを送信する。
【００１９】
記憶装置２０Ｂは、ＨＤＤやＳＳＤなどであり、サーバ装置２０上で稼働するサーバプログラム２０Ｆを格納する。ネットワークＩ／Ｆ２０Ｄは、ネットワーク３０とのインタフェースであり、クライアント端末装置１０など他の情報処理装置と通信するための通信回路である。
【００２０】
サーバプログラム２０Ｆは、ネットワークＩ／Ｆ２０Ｄを介して複数のクライアント端末装置１０から受け取ったリクエストパケットを、ＨＴＴＰリクエストのメッセージヘッダごとに分割して、クライアント端末装置１０上のクライアントプログラム１０Ｆによって記述されたクライアント端末装置１０の情報を抽出する。また、ネットワーク３０を介して接続されたクライアント端末装置１０から送信されるクライアント端末装置１０の操作履歴を記憶装置２０Ｂに記憶させ、管理することもできるし、クライアント端末装置１０に対して修正プログラムの適用命令、ウイルススキャン命令、隔離命令などを送信することもできる。
【００２１】
サーバ装置２０は、クライアント端末装置１０側のネットワーク３０とインターネット４０との境界上に設置されている。この構成をとることにより、ネットワーク３０内とインターネット４０の間でやりとりされるすべてのパケットをサーバ装置２０経由にすることができ、やりとりされるすべてのパケットに対して本発明を適用することができる。
【００２２】
また、サーバ装置２０とクライアント端末装置１０は、図１では共にＬＡＮの内部に設置されているが、サーバ装置２０は、クライアント端末装置１０とネットワーク３０を介して接続可能であれば、インターネット４０上に設置してもよい。
【００２３】
＜情報機器＞
企業や官公庁などの一般的なネットワーク環境においては、クライアント端末装置１０とサーバ装置２０との間に、情報機器５０が設置される。情報機器５０は、クライアント端末装置１０からサーバ装置２０への通信を中継する機器であり、例えば、ルータ、ファイアウォール、ＵＴＭ（Ｕｎｉｆｉｅｄ Ｔｈｒｅａｔ Ｍａｎａｇｅｍｅｎｔ）など、他のネットワーク機器である。
なお、図１の構成の場合、情報機器５０とサーバ装置２０との間でやり取りされるイーサネット（登録商標）フレームのパケットの場合、送信元ＭＡＣアドレスが情報機器５０のものになるため、ＭＡＣアドレスを用いた送信元クライアントの特定は不可能になる。
【００２４】
＜クライアント端末装置の処理＞
図２は、本実施形態に係るクライアント端末装置１０が行う処理のフローチャートである。演算装置１０Ｃは、クライアント端末装置１０において、何らかのプログラム（たとえば、ブラウザ１０Ｇなど）によるパケット（たとえば、リクエストパケット）の送信を監視する（ステップＳ２０１）。
【００２５】
演算装置１０Ｃは、何らかのプログラムが、他の情報処理装置（たとえば、Ｗｅｂサーバなど）宛てにパケットの送信が試みられたか否かを判定する（ステップＳ２０２）。パケットの送信が試みられたと判定された場合（ステップＳ２０２のＹＥＳ）、そのパケットの送信を一時中断させる（ステップＳ２０３）。
【００２６】
次に、演算装置１０Ｃは、送信しようとしているパケット内のＨＴＴＰリクエストのメッセージに、クライアント端末装置１０の情報を示すクライアント固有の情報を独自のヘッダとして記録する（ステップＳ２０４）。クライアント固有の情報は、たとえば、クライアント端末装置を示す情報（コンピュータ名など）、ユーザを示す情報（ユーザ名など）、パケットを送信したプログラムを示す情報（リクエストを行ったプログラム名、プロセス名など）を含む。
【００２７】
図４は、演算装置１０Ｃによって編集されたパケット内のＨＴＴＰリクエストのメッセージヘッダの一例を示す図である。この例では、Ｕｓｅｒ−Ａｇｅｎｔなどの通常のヘッダのほかに、クライアントプログラム１０Ｆによって付加された「ＡＤＤＨＥＡＤＥＲ」ヘッダがあり、その中にはクライアント端末装置１０のコンピュータ名「ＴｅｓｔＰＣＮＡＭＥ．ｔｅｓｔ．ｃｏｍ」と、リクエストを行ったプログラム名「ｉｅｘｐｌｏｒｅ.ｅｘｅ」が記録されている。なお、リクエストパケットを送信したプログラム名と宛先ＵＲＬとを特定する方法は、公知技術（たとえば、特開２０１２−１８５７９９号公報）であるため説明を省略する。
【００２８】
パケット内のＨＴＴＰリクエストのメッセージヘッダにクライアント固有の情報を記録すると、演算装置１０Ｃは、ステップＳ２０３にて送信を一時中断していたパケットを送信する（ステップＳ２０５）。なお、上述した説明では、パケットの送信を行うプログラムの例としてブラウザ１０Ｇを挙げているが、このプログラムはブラウザ１０Ｇに限定されず、一般的なアプリケーション（表計算ソフト、文書作成ソフトなど）、プロセスでもよい。
【００２９】
＜サーバ装置の処理＞
図３は、サーバ装置２０の処理を示すフローチャートである。なお、以下の説明では、サーバ装置２０をプロキシサーバとして説明するが、これに限定されない。
【００３０】
クライアント端末装置１０から送信されたパケットは、図１の構成の場合、インターネット４０に到達する前に、情報機器５０を介して、プロキシサーバ２０に到達する。プロキシサーバ２０にパケットが到達すると、最初にプロキシサーバ２０内のサーバプログラム２０Ｆが、パケットを受信する（ステップＳ３０１）。
【００３１】
演算装置２０Ｃは、受け取った全てのパケットから、送信元のクライアント固有の情報を抽出しようと試みる。具体的には、受け取った全てのパケットに対して、以下の処理を行う。演算装置２０Ｃは、パケット内のＨＴＴＰリクエストのメッセージヘッダのデータを、ヘッダ名単位に分割する（ステップＳ３０２）。分割したヘッダの中に、クライアント端末装置１０のクライアントプログラム１０Ｆ（演算装置１０Ｃ）が追記したヘッダが存在するかどうかを判定する（ステップＳ３０３）。判定は、ヘッダ名が、クライアントプログラム１０Ｆ（演算装置１０Ｃ）が付加する固有のものかどうかなど、予め記憶装置２０Ｂに記憶されているテーブルを用いて判定を行う。テーブルには、例えば、図４に示されるような「ＡＤＤＨＥＡＤＥＲ」など、クライアントプログラム１０Ｆ固有の情報が記憶されている。
【００３２】
該当のヘッダが存在する場合には、そのヘッダに記録された文字列を、クライアント端末装置１０のクライアント固有の情報（コンピュータ名、プログラム名など）と認識して抽出する（ステップＳ３０４）。この結果、パケットを送信したクライアントの情報をプロキシサーバ上で特定することができる（ステップＳ３０５）。クライアントの情報を特定することにより、例えば、危険な接続先への通信を遮断してマルウェアによる被害を防ぐ場合に、クライアント側に残っているマルウェアに対しても対策を打つことができる。
【００３３】
図４を用いて具体的に説明する。たとえば、図４に示されるようなパケットをサーバプログラム２０Ｆが受け取った場合、まずヘッダ名単位に分割する。ヘッダの中には、クライアントプログラム１０Ｆが付加した「ＡＤＤＨＥＡＤＥＲ」ヘッダが存在するので、その内容の文字列「ＴｅｓｔＰＣＮＡＭＥ．ｔｅｓｔ．ｃｏ；ｉｅｘｐｌｏｒｅ.ｅｘｅ」を取得し、セミコロンで分割する。すると、送信元のコンピュータ名が「ＴｅｓｔＰＣＮＡＭＥ．ｔｅｓｔ．ｃｏ」であることがわかり、かつパケットの送信を行ったプログラム名が「ｉｅｘｐｌｏｒｅ.ｅｘｅ」であることがわかる。
【００３４】
なお、クライアントプログラム１０Ｆが付加するヘッダ名およびヘッダのフォーマットに関しては、予めサーバプログラム２０Ｆと、クライアントプログラム１０Ｆの間で取り決めておき、記憶装置１０Ｂ、２０Ｂに各々記憶しておく。
【００３５】
上述したように、パケットを解析する場所（例えば、通信の送信元を特定する場所）を通信経路の終端（Ｗｅｂサーバなど）ではなく、通信経路の途中かつ管理者が管理できる場所（プロキシサーバなど）に設置する。これにより、通信の宛先に影響されることなく、全てのパケットの解析を行い、簡便かつ正確に通信の送信元を特定することができる。
【００３６】
［第二の実施形態］
パケットの送信元クライアントを特定することにより、たとえば、以下のような効果を得ることができる。クライアント固有の情報として「コンピュータ名」、「リクエストを行ったプログラム名」をクライアント端末装置で付加し、サーバ装置（たとえば、プロキシサーバ）にて、宛先ＵＲＬが危険なＷｅｂサイトであるパケットを受信した場合、サーバ装置にて、受信したパケットに付加されたクライアント固有の情報から、危険なＷｅｂサイトへアクセスリクエストを行ったコンピュータおよびプログラムを特定することができる。以下では、パケットの送信元クライアントとプログラムをサーバ装置にて特定した後の処理について説明する。なお、本実施形態の動作の大部分が第一の実施形態の動作と共通するため、ここでは、第一の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【００３７】
図５は、サーバ装置２０の処理を示すフローチャートである。演算装置２０Ｃは、受信したパケットが危険なＷｅｂサイトへのリクエストか否かを判定する（ステップＳ５０１）。なお、パケットが危険なＷｅｂサイトへのアクセスのものかどうかの判断は、ＨＴＴＰリクエストヘッダの標準ヘッダに含まれる「Ｈｏｓｔ」などを、記憶装置２０Ｂに予め記憶されている危険なＷｅｂサイトのホスト名のリストと比較して判断する。危険なＷｅｂサイトではないと判定された場合（ステップＳ５０１のＮＯ）、パケットを宛先に送信し処理を終了する。なお、上述した説明では、サーバ装置２０にて受信したパケットが危険なＷｅｂサイトへのリクエストか否かを判定しているが、ネットワーク３０に接続されている不図示の装置（たとえば、ＵＴＭ）にて判定を行ってもよい。その場合、ステップＳ５０１は省略される。
【００３８】
演算装置２０Ｃは、特定したプログラムが、Ｗｅｂブラウザか否かを判定する（ステップＳ５０２）。Ｗｅｂブラウザか否かの判定は、記憶装置２０Ｂに予め記憶されているＷｅｂブラウザを示すプログラム情報に基づいて判定される。特定したプログラムがＷｅｂブラウザである場合、たとえば、フィッシングメールに記載されている危険なＵＲＬからジャンプしたことが推測できる。そこで、Ｗｅｂブラウザと判定された場合（ステップＳ５０２のＹＥＳ）、演算装置２０Ｃは、クライアントのメールの設定を変更する（ステップＳ５０３）。たとえば、フィッシングメールが届かないようにするために、ステップＳ５０２にて特定したクライアントの操作履歴からフィッシングメールを送信した宛先を調べ、その宛先からのメールを受信しない設定にする。なお、メール設定は、サーバ装置２０に記憶されていてもよいし、クライアント端末装置１０、不図示のメールサーバに記憶されてもよい。
【００３９】
サーバプログラム２０Ｆは、特定したプログラムが、一般的なアプリケーションか否かを判定する（ステップＳ５０４）。一般的なアプリケーションか否かの判定は、記憶装置２０Ｂに予め記憶されている一般的なアプリケーションを示すプログラム情報に基づいて判定される。一般的なアプリケーション（たとえば、表計算ソフト、文書作成ソフトなど）である場合、一般的なアプリケーションの脆弱性を利用したリクエストと推測される。そこで、一般的なアプリケーションと判定された場合（ステップＳ５０４のＹＥＳ）、演算装置２０Ｃは、クライアント端末装置１０に脆弱性を修正する修正プログラムを適用する（ステップＳ５０５）。なお、一般的なアプリケーションと修正プログラムの取得先（ダウンロードサーバ）を対応付けて記憶装置２０Ｂに予め記憶しておき、該当する取得先にアクセスして修正プログラムを取得し、クライアント端末装置１０に修正プログラムを適用してもよい。また、修正プログラムを一般的なアプリケーションと対応付けて記憶装置２０Ｂに予め記憶していてもよい。
【００４０】
演算装置２０Ｃは、特定したプログラムが一般的なアプリケーションではないと判定された場合（ステップＳ５０４のＮＯ）、ウイルススキャンまたは隔離命令をクライアント端末装置１０に送信する（ステップＳ５０６）。特定したプログラムがＷｅｂブラウザや一般的なアプリケーションではない場合、マルウェア自身がＣ＆Ｃサーバなど危険な接続先と通信していることが推測できる。そこで、クライアント端末装置１０内のウイルススキャンを行ったり、ネットワークから隔離したり、感染が拡大しないようにするといった対策が必要である。なお、ステップＳ５０２やステップＳ５０４にて、判定基準とした所定のプログラムであるＷｅｂブラウザや一般的なアプリケーションは一例であって、これに限定されない。
【００４１】
上述したように、クライアント固有の情報（クライアント情報）を付加することで、通常のパケットだけではわからない、クライアント端末装置側の状況を把握でき、かつ即座に適切な対策を講じることができる。
【００４２】
[第三の実施形態]
本実施形態では、操作履歴を用いることによって、一見無害であるＷｅｂサイトからの被害を発見して対処する処理について説明する。なお、本実施形態の動作の大部分が第一の実施形態および第二の実施形態の動作と共通するため、ここでは、第一の実施形態および第二の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【００４３】
図６の操作履歴を参照すると、レコード６０２にて、日付「２０１９／１１／１８」、時刻「１１：００：００」に、ユーザ名「ｕｓｅｒＣ」がＰＣ名「ＰＣ−Ｃ」において、「ｈｔｔｐ://ａａａ.ｃｏｍ」というＵＲＬにアクセスしたことが記録されている。もし、「ｈｔｔｐ://ａａａ.ｃｏｍ」が危険なＷｅｂサイトであると判明した場合、まずは該当のＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」にアクセスした「ＰＣ−Ｃ」に対してウイルススキャンをかける、または、該当のＵＲＬへのアクセスを禁止にするなどの処置を行うことが必要となる。
【００４４】
ただ、危険なＷｅｂサイトは、全て悪意のある者によって作られたわけではなく、通常のＷｅｂサイトであったＵＲＬが、悪意ある第三者に乗っ取られ、マルウェアを配布するなどの危険な動きをするように改ざんされるという場合もある。また、該当のＵＲＬが危険かどうかの判定は、アンチウィルスベンダーによる調査が行われた後に行われるので、Ｗｅｂサイトが改ざんされた瞬間ではなく、しばらく時間が経過した後になる。そのため、無害であると判定されている時期でも、実際にはすでに危険なＷｅｂサイトに改ざんされている可能性があるので、危険であると判定される以前に該当のＵＲＬにアクセスしたＰＣに対しても、ウイルススキャンなどの処置を行う必要がある。
【００４５】
図７は、サーバ装置２０の処理を示すフローチャートである。なお、図７のフローチャートにおいて図５に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、この処理ステップに係る説明は省略する。
【００４６】
まず、ステップＳ５０１において、演算装置２０Ｃが、あるクライアント端末装置１０（たとえば、「ＰＣ−Ｃ」）がアクセスしようとしたＵＲＬ（たとえば、「ｈｔｔｐ://ａａａ.ｃｏｍ」）が危険であると判定したとする。その後、演算装置２０Ｃは、記憶装置２０Ｂに記録されている全てのクライアント端末装置１０にて記録された操作履歴を参照する（ステップＳ７０１）。次に、演算装置２０Ｃは、危険であると判定されたＵＲＬに対して、ステップＳ５０１において検出されたパケットを発信したクライアント端末装置１０（たとえば、「ＰＣ−Ｃ」）以外からのアクセスが、操作履歴に存在するかどうかを判定する（ステップＳ７０２）。
【００４７】
図６の操作履歴を参照すると、レコード６０１にて、ＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」に対しては、日付「２０１９／０８／１０」、時刻「１４：００：００」にも、ＰＣ名「ＰＣ−Ａ」がアクセスしていることがわかる。
【００４８】
演算装置２０Ｃは、他のクライアント端末装置１０によるアクセスが確認されない場合（ステップＳ７０２のＮＯ）、何もせずに処理をステップＳ５０２へ移行する。アクセスが確認された場合（ステップＳ７０２のＹＥＳ）、演算装置２０Ｃは、該当クライアント端末装置１０（たとえば、「ＰＣ−Ａ」）に対して、ウイルススキャンまたは隔離命令を送信する(ステップＳ７０３)。
【００４９】
たとえば、図６の操作履歴の場合、「ＰＣ−Ａ」による該当ＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」へのアクセスが確認されたため、演算装置２０Ｃは、「ＰＣ−Ａ」に対してウイルススキャンなどの命令を発行する。
【００５０】
上述したように、操作履歴を参照することで、一見無害であるＷｅｂサイトからの被害を発見し、その対処を行うことができる。
【００５１】
[第四の実施形態]
本実施形態では、クライアント端末装置１０においてローカル時刻が変更された場合でも、Ｗｅｂサイトからの被害を発見して対処する処理について説明する。
【００５２】
第三の実施形態では、演算装置２０Ｃが操作履歴を参照することによって、危険なＵＲＬに対して、過去に他のクライアント端末装置１０からのアクセスが存在したかどうかを判定する処理を行っていた。しかし、操作履歴の「時刻」を、クライアント端末装置１０のローカルの時刻を基に記録している場合、ローカル時刻を基の時刻から変更してしまうと、操作履歴の時刻も変わってしまう。
【００５３】
ローカル時刻の変更自体を禁止すれば、上述した問題の発生を防止することができるが、プログラムのテスト等、悪意のない目的での時刻変更を阻害し、利便性を損なうことにもなるため、一概に時刻の変更を禁止することは適切ではない。そのため、ローカル時刻の変更を許容しつつ、操作履歴の正しい時刻を取得できるような手段が必要となる。
【００５４】
そこで、クライアント端末装置１０のローカル時刻が変更された際、演算装置１０Ｃは、変更前と変更後の時間差を記憶して、その差（オフセット）を操作履歴に記録しておく。時間差（オフセット）を操作履歴に記録する例を、図８に示す。
【００５５】
図８は、操作履歴の一例を示す図である。図８は、図６に表される操作履歴と同様の意味を持つが、図６に加えて、クライアント端末装置１０のローカル時刻が変更された際の、時間差（オフセット）が記録されている。レコード８０１にはオフセットの値として「＋４８：００」という値が記録されているが、これは、ローカル時刻が４８時間後ろにずらされていることを表している。
【００５６】
図９は、サーバ装置２０の処理を示すフローチャートである。なお、図９のフローチャートにおいて図５に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、この処理ステップに係る説明は省略する。
【００５７】
ステップＳ５０１において、日付「２０１９／１１／１８」、時刻「１１：００：００」に、ＰＣ名「ＰＣ−Ｃ」がアクセスしたＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」が、演算装置２０Ｃによって危険であるＷｅｂサイトであると判定したとする。演算装置２０Ｃは、以前に他のクライアント端末装置１０にて同一のＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」にアクセスしたかどうかを判定するために、記憶装置２０Ｂに記憶されている全てのクライアント端末装置１０にて記録された操作履歴を参照する（ステップＳ９０１）。
【００５８】
演算装置２０Ｃは、オフセットの値を用いた時刻の再計算を行う（ステップＳ９０２）。たとえば、図８のレコード８０１には、「ＰＣ−Ａ」が日付「２０１９／１１／１９」時刻「１４：００：００」に「ｈｔｔｐ://ａａａ.ｃｏｍ」へアクセスした操作履歴が存在するが、時刻のオフセットには、この操作履歴が本来の時刻から４８時間進んだものであることが記録されているため、オフセットを加味して時刻を再計算すると、日付「２０１９／１１／１７」、時刻「１４：００：００」となる。
【００５９】
演算装置２０Ｃは、ステップＳ９０２にて再計算された時刻を適用し、過去に該当のＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」にアクセスした履歴があるか否かを判定する（ステップＳ９０３）。たとえば、図８のレコード８０１は、ステップＳ９０２にて再計算された日付「２０１９／１１／１７」、時刻「１４：００：００」に、「ＰＣ−Ａ」において、「ｈｔｔｐ://ａａａ.ｃｏｍ」にアクセスがあったことが確認できる。
【００６０】
演算装置２０Ｃは、他のクライアント端末装置１０によるアクセスが確認されない場合（ステップＳ９０３のＮＯ）、何もせずに処理をステップＳ５０２へ移行する。アクセスが確認された場合（ステップＳ９０３のＹＥＳ）、演算装置２０Ｃは、該当クライアント端末装置１０（たとえば、「ＰＣ−Ａ」）に対して、ウイルススキャンまたは隔離命令を送信する(ステップＳ９０４)。
【００６１】
たとえば、図８の操作履歴の場合、「ＰＣ−Ａ」による該当ＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」へのアクセスが確認されたため、演算装置２０Ｃは、「ＰＣ−Ａ」に対してウイルススキャンなどの命令を発行する。従って、「ＰＣ−Ａ」に対しても、ウイルススキャン命令を出すなどの対処を行うことができる。
【００６２】
上述したように、クライアント端末装置１０においてローカル時刻が変更された場合でも、変更された時刻のオフセットの値を操作履歴に記録しておくことで、第三の実施形態と同様な対処を行うことができる。
【００６３】
[第五の実施形態]
本実施形態では、ハッシュ値を用いることによって、潜伏しているマルウェアが存在するクライアント端末装置を発見して対処する処理について説明する。なお、本実施形態の動作の大部分が第一の実施形態ないし第四の実施形態の動作と共通するため、ここでは、第一の実施形態ないし第四の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【００６４】
第三及び第四の実施形態では、演算装置２０Ｃが操作履歴を参照することによって、危険なＷｅｂサイトに対して、過去に他のクライアント端末装置１０からのアクセスが存在したかどうかを判定する処理を行っていた。本実施形態では、クライアント端末装置１０からパケットを送信したプログラム（クライアント端末装置１０上で動作し、ネットワークＩ／Ｆ１０Ｄおよびネットワーク３０を介して、リクエストパケットを外部に送信するプログラム）のハッシュ値を、クライアント固有の情報としてパケット内のＨＴＴＰリクエストメッセージヘッダに付加する。また、操作履歴に、パケットを送信したプログラム（通信のリクエストを行ったプログラム）のハッシュ値を記録する。
【００６５】
操作履歴にハッシュ値を付加した例として、図１０を示す。図１０は、操作履歴の一例を示す図である。図６および図８に表される操作履歴と同様の意味を持つが、図８に加えて、通信のリクエストを行ったプログラムのハッシュ値が記録されている。ハッシュ値は、クライアントプログラム１０Ｆによって、プログラムのバイナリの値をキーとして、ＳＨＡ−１やＳＨＡ−２５６といったアルゴリズムによって算出され、その後操作履歴として記憶装置１０Ｂに記録される。
【００６６】
レコード１００１には、ハッシュ値として「ＡＡＡＡＡＡ．．．」という値が記録されているが、これは、ハッシュ値「 ＡＡＡＡＡＡ．．．」のプログラムが通信リクエストを行ったことを表している。また、レコード１００１とレコード１００２のハッシュの値が「 ＡＡＡＡＡＡ．．．」で一致しているが、これは、２つの通信リクエストが、別々のクライアント端末装置１０（ＰＣ−Ａ、ＰＣ−Ｃ）から発せられているにも拘らず、全く同一のプログラムから行われたことを表している。
【００６７】
図１１は、サーバ装置２０の処理を示すフローチャートである。以下では、一例として、図１０に示す操作履歴が記録されているものとして説明を行う。
【００６８】
まず、ステップＳ５０１において、演算装置２０Ｃが、あるクライアント端末装置１０がアクセスしようとしたＵＲＬ（たとえば、「ｈｔｔｐ://０１２３４.ｃｏｍ」）が危険であると判定したとする。以下では、日付「２０１９／１１／２１」時刻「１６：００：００」に、「ＰＣ−Ｘ」から、ハッシュ値「ＡＡＡＡＡＡ．．．」のプログラムが、「ｈｔｔｐ://０１２３４.ｃｏｍ」というＵＲＬに対してアクセスを行ったものとして説明する。
【００６９】
その後、演算装置２０Ｃは、記憶装置２０Ｂに記録されている全てのクライアント端末装置１０にて記録された操作履歴を参照する（ステップＳ１１０１）。
【００７０】
次に、演算装置２０Ｃは、リクエストパケットにクライアント固有の情報として付加されたプログラムのハッシュ値（「ＡＡＡＡＡＡ．．．」）を取得し、ステップＳ１１０１にて参照した操作履歴の中から、過去に取得したハッシュ値と同一のハッシュ値を持つプログラムによる通信が存在するかどうかを判定する(ステップＳ１１０２)。
【００７１】
過去に同一のハッシュ値を持つプログラムによる通信が存在する場合（ステプＳ１１０２のＹＥＳ）、危険なＵＲＬ（「ｈｔｔｐ://０１２３４.ｃｏｍ）へアクセスしたものと全く同一のプログラムが存在するということになる。図１０に示す操作履歴の場合、ＵＲＬ「ｈｔｔｐ://０１２３４.ｃｏｍ」に対しては過去にアクセスした痕跡が無いが、ハッシュ値「ＡＡＡＡＡＡ．．．」による通信は、操作履歴のレコード１００１とレコード１００２の２件が該当する。
【００７２】
仮に、ハッシュ値「 ＡＡＡＡＡＡ．．．」のプログラムがマルウェアである場合、操作履歴に記憶されているＵＲＬ「ｈｔｔｐ://ａａａ.ｃｏｍ」および「ｈｔｔｐ://ｄｄｄ.ｃｏｍ」が危険ではないと判定されていたとしても、これらは未知のＣ＆Ｃサーバなどの危険なサイトである可能性が高い。従って、ＰＣ名「ＰＣ−Ａ」とＰＣ名「ＰＣ−Ｃ」にも、既に同じマルウェアが侵入していることがわかるため、演算装置２０Ｃから、これらのクライアント端末装置１０に対して、ウイルススキャンまたは隔離命令を送信する(ステップＳ１１０３)。
【００７３】
上述したように、ハッシュ値を用いることで、危険なＵＲＬにアクセスすることなく潜伏しているマルウェアが存在するクライアント端末装置を発見し、そのクライアント端末装置に対しても対処を行うことができる。
【００７４】
[第六の実施形態]
本実施形態では、ユーザアカウントを用いることによって、危険なＷｅｂサイトへアクセスを行おうとした同一ユーザによる、他のクライアント端末装置でのログインを制限する処理について説明する。
【００７５】
第一の実施形態では、クライアント端末装置１０から送信されるＨＴＴＰリクエストのメッセージヘッダに、クライアント固有の情報として、クライアント端末装置１０のコンピュータ名を付加することで、危険なＷｅｂサイトへのアクセスを行おうとしたクライアント端末装置１０を特定し、ネットワークから隔離する等の処置を行った。しかし、クライアント端末装置１０に対して何らかの処置を施したとしても、そのクライアント端末装置１０を使用したユーザが別のクライアント端末装置１０を使用した場合、同じような危険なＷｅｂサイトに接続を試みる可能性がある。
【００７６】
そこで、本実施形態では、演算装置１０Ｃが、クライアント固有の情報として、ログインしているユーザを示す情報である、ユーザアカウント（ユーザ名）を付加することにより、サーバ装置２０は、危険なＷｅｂサイトへのアクセス時にクライアント端末装置１０にログインしていたユーザアカウントを特定でき、特定したユーザアカウントを用いて、同一のユーザによるクライアント端末装置１０へのログインを制限することができる。
【００７７】
図１２は、情報処理システムの構成例を示すシステム構成図である。図１２に示す情報処理システムは、図１に示す情報処理システムの構成に加えて、サーバ装置６０、複数のクライアント端末装置１１を含む。サーバ装置６０の大部分は、サーバ管理装置２０と共通するため、以下では説明を省略し、異なる部分のみ説明する。なお、本実施形態の動作の大部分が第一の実施形態ないし第五の実施形態の動作と共通するため、ここでは、第一の実施形態ないし第五の実施形態と異なる動作についてのみ説明し、共通の動作については説明を省略する。
【００７８】
サーバ装置６０には、ネットワーク３０内に存在するすべてのクライアント端末装置１０のログインを管理する、ログイン管理プログラム６０Ｆが格納されている。なお、ログイン管理プログラム６０Ｆと、サーバプログラム２０Ｆは同一のサーバ装置上で実現する構成でもよい。
【００７９】
また、記憶装置６０Ｂには、ネットワーク３０内に存在するすべてのクライアント端末装置１０のユーザアカウント（アカウント名）とログイン制限（許可／拒否）が対応付けられたアカウント管理テーブルが記録されている。図１４に、アカウント管理テーブルの一例を示す。アカウント管理テーブルは、後述するように、危険なＷｅｂサイトにアクセスしたユーザアカウントを特定することで記録される。なお、アカウント管理テーブルは、管理者によって記録されてもよい。ログインを管理するログイン管理プログラム６０Fは、演算装置６０Ｃによる制御に従って適宜メモリ６０ＥのＲＡＭにロードされ、演算装置６０Ｃによる処理対象となる。
【００８０】
また、本実施形態では、クライアント端末装置１０にログインを行う際、図１３に示す処理が行われる。図１３は、ログイン制限を示したシーケンス図である。任意のクライアント端末装置１０において、ユーザによってログインが試みられたことをクライアント装置１０の演算装置１０Ｃが検知する(ステップＳ１３０１)。
【００８１】
演算装置１０Ｃは、ネットワークＩ／Ｆ１０Ｄおよびネットワーク３０を介して、サーバ装置６０に、ログインが可能かどうかの問い合わせを行う(ステップＳ１３０２)。また、問い合わせの際には、ログインしようとしているユーザアカウントも一緒に送信されるものとする。
【００８２】
問い合わせを受け取った演算装置６０Ｃは、記憶装置６０Ｂに記憶されているアカウント管理テーブルに基づいて、ロードしたユーザアカウントと、問い合わせに含まれるユーザアカウントとを比較し、ログイン可能かどうかを判定する（ステップ１３０３）。
【００８３】
演算装置６０Ｃは、問い合わせ元のクライアント端末装置１０に、判定の結果（ログインの許可または拒否）の返答を返す（ステップＳ１３０４）。
【００８４】
クライアント端末装置１０の演算装置１０Ｃは、受信した判定結果に基づいて、ログインの許可／拒否を行う。たとえば、図１４に示すように、ｕｓｅｒＡからのログインは許可され、ｕｓｅｒＢからのログインは拒否される、ということになる。
【００８５】
あるユーザが、危険なＷｅｂサイトへのアクセスを行ったとする（図５のステップＳ５０１にてＹＥＳと判定されたとする）。上述したように、本実施形態では、演算装置１０Ｃにより、リクエストパケットにログインしているユーザアカウントが付加されているため、演算装置２０Ｃは、リクエストを行ったユーザアカウントを特定できる。そこで、演算装置２０Ｃは、ネットワークＩ／Ｆ２０Ｄおよびネットワーク３０を介し、サーバ装置６０の記憶装置６０Ｂに記録されているアカウント管理テーブルの、危険なＷｅｂサイトへのアクセスを行ったユーザのユーザアカウントに対応するログイン制限を「拒否」と記録する。
【００８６】
上述したように、危険なＷｅｂサイトへのアクセスを試みたユーザが、別のクライアント端末装置からログインしようとした際に、そのログインを禁止することができる。これにより、同一ユーザによる危険なＷｅｂサイトへのアクセスを抑止することができる。
【００８７】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（たとえば、ＡＳＩＣ）によっても実現可能である。
【図１】
2020107335.tif 000003
【図２】
2020107335.tif 000004
【図３】
2020107335.tif 000005
【図４】
2020107335.tif 000006
【図５】
2020107335.tif 000007
【図６】
2020107335.tif 000008
【図７】
2020107335.tif 000009
【図８】
2020107335.tif 000010
【図９】
2020107335.tif 000011
【図１０】
2020107335.tif 000012
【図１１】
2020107335.tif 000013
【図１２】
2020107335.tif 000014
【図１３】
2020107335.tif 000015
【図１４】
2020107335.tif 000016