(57)【特許請求の範囲】
【請求項１】
複数の第一装置と、該複数の第一装置の少なくとも一部とネットワークを介して通信する第二装置との間に配置される通信装置を制御するプログラムであって、
前記通信装置に、
前記第二装置により送信されたパケットに係る通信ログを、複数取得し、
取得した複数の前記通信ログの各々から、前記第二装置のブラウザが利用可能な暗号方式のリストと、前記複数の第一装置の中のいずれかであるアクセス先とを、抽出し、
前記リスト毎に、前記アクセス先を対応付けて、記憶部へ記憶し、
前記記憶部を参照し、前記リストに対応する前記アクセス先の多少を把握可能な記録データを、他の通信装置に送信する処理を実行させることを特徴とするプログラム。
【請求項２】
複数の第一装置と、該複数の第一装置の少なくとも一部とネットワークを介して通信する複数の第二装置との間に配置される通信装置を制御するプログラムであって、
前記通信装置に、
前記複数の第二装置の各々により送信されたパケットに係る通信ログを、複数取得し、
複数の前記通信ログの各々から、前記複数の第二装置各々におけるブラウザが利用可能な暗号方式のリストと、該複数の第二装置のいずれかであるアクセス元とを、抽出し、
前記リスト毎に、前記アクセス元を対応付けて、記憶部へ記憶し、
前記記憶部を参照し、前記リストに対応する前記アクセス元の多少を把握可能な記録データを、他の通信装置に送信する処理を実行させることを特徴とするプログラム。
【請求項３】
前記暗号方式のリストは、暗号処理を実現するプロトコルの種別と該プロトコルで使用するメッセージに基づいて抽出されることを特徴とする請求項１又は請求項２記載のプログラム。
【請求項４】
前記暗号化方式リストに対応づいた前記アクセス先の種類が、閾値よりも小さな場合に、当該アクセス先を、不正なアクセス先として、前記他の通信装置に送信することを特徴とする請求項１又は請求項３に記載のプログラム。
【請求項５】
前記暗号化方式リストに対応づいた前記アクセス元の種類が、閾値よりも小さな場合に、当該アクセス元を、不正なアクセス元として、前記他の通信装置に送信することを特徴とする請求項２又は請求項３に記載のプログラム。
【請求項６】
複数の第一装置と、該複数の第一装置の少なくとも一部とネットワークを介して通信する第二装置との間に配置される通信装置であって、
前記第二装置により送信されたパケットに係る通信ログを複数取得し、取得した複数の前記通信ログの各々から、前記第二装置のブラウザが利用可能な暗号方式のリストと、前記複数の第一装置の中のいずれかであるアクセス先とを、抽出し、前記リスト毎に、前記アクセス先を対応付けて、記憶部へ記憶する制御部と、
前記記憶部を参照し、前記リストに対応する前記アクセス先の多少を把握可能な記録データを、他の通信装置に送信する通信部とを有することを特徴とする通信装置。
【請求項７】
第一装置と、該第一装置とネットワークを介して通信する複数の第二装置との間に配置される通信装置であって、
前記第一装置により送信されたパケットに係る通信ログを、複数取得し、複数の前記通信ログの各々から、前記複数の第二装置各々におけるブラウザが利用可能な暗号方式のリストと、該複数の第二装置のいずれかであるアクセス元とを、抽出し、前記リスト毎に、前記アクセス元を対応付けて、記憶部へ記憶する制御部と、
前記記憶部を参照し、前記リストに対応する前記アクセス元の多少を把握可能な記録データを、他の通信装置に送信する通信部とを有することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な通信（以下、不正通信と呼ぶ。）を検知する技術に関する。
【背景技術】
【０００２】
不正通信を実現する技術として、ウェブサーバーとクライアントの間でデータをやり取りする際に使われるハイパーテキストトランスファープロトコル（ＨＴＴＰ）と暗号化のためのプロトコルであるセキュアソケットレイヤー（ＳＳＬ）を利用する方法がある。ＳＳＬはＨＴＴＰの領域を用いて暗号化を実現する。ＨＴＴＰは、クライアントがウェブサーバーにアクセスするときに使用するものであるため、不正通信を防ぐシステムであるファイアウォールにおいても通信が許容されている。このため、ＨＴＴＰを利用することでファイアウォールを越えて不正通信が実現されるという問題がある。不正通信の手順は公開されていないため、その手順は不明である。
【０００３】
しかし、ＨＴＴＰ上のＳＳＬで使用する暗号方式のリスト（暗号方式リスト）の特徴に着目して不正通信かどうかを類推できる。ＳＳＬを使用した通信（ＳＳＬ通信）をするために、開始段階においてクライアントとウェブサーバーは、その通信で使用する暗号方式を調整する。この調整は、以下手順で行う。先ず、クライアントがクライアント側で利用可能な暗号方式リストをウェブサーバーに送信する。次に、暗号方式リストを受信したウェブサーバーがその暗号方式リストの中から利用可能な暗号方式を選択し、その選択結果をクライアントに送信する。この暗号方式リストは、クライアントがウェブページを閲覧するときに使用するソフトウェアであるブラウザによって異なる。
【０００４】
以下にＳＳＬを利用した正当な通信と不正な通信における暗号方式リストの特徴を説明する。これらの特徴は、受信したパケットや受信したパケットを記憶した通信ログから類推したものである。
【０００５】
正当なＳＳＬ通信の場合、複数の人が著名なブラウザを使用し、複数のウェブサーバーにアクセスする。このため、クライアントが送信する暗号方式のリスト毎にアクセス先の種類を数えた場合、その数は自然と増えていくという特徴がある。
【０００６】
一方、不正なＳＳＬ通信の場合、特定の人が特定のブラウザを使用し、単一のサーバーにアクセスする。このため、クライアントが送信する暗号方式のリスト毎にアクセス先の種類を数えてもその数は増えないという特徴がある。
【０００７】
また、不正通信を検知する技術として下記のものがある。
【特許文献１】特開２００６−２７９９３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
受信したパケットから類推される特徴に基づいて不正通信を検知する。
【課題を解決するための手段】
【０００９】
上記の課題を解決するための第一の手段として、データを提供する複数の第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置を制御するプログラムにおいて、通信装置に、
複数の第二装置からのパケットから宛先情報と、暗号化方式を識別するための暗号情報を抽出し、暗号情報毎に宛先情報を記録する手順を実行させるプログラムを提供する。
【００１０】
上記の課題を解決するための第二の手段として、データを提供する第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置を制御するプログラムにおいて、通信装置に、複数の第二装置からのパケットから送信元アドレスと、暗号化方式を識別する暗号情報を抽出し、暗号情報毎に送信元アドレスを記録する手順を実行させるプログラムを提供する。
【００１１】
上記の課題を解決するための第三の手段として、暗号情報の抽出は、暗号処理を実現するプロトコルの種別とプロトコルで使用するメッセージに基づいて行うことを特徴とするプログラムを提供する。
【００１２】
上記の課題を解決するための第四の手段として、記録する手順により記録した情報を宛先情報の数又は送信元アドレスの数に基づいて通信装置に接続された装置に送信することを特徴とするプログラムを提供する。
【００１３】
上記の課題を解決するための第五の手段として、データを提供する複数の第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置において、複数の第二装置からのパケットから宛先情報と、暗号化方式を識別するための暗号情報を抽出し、暗号情報毎に宛先情報を記録する制御部を備えたことを特徴とする通信装置を提供する。
【００１４】
上記の課題を解決するための第六の手段として、データを提供する第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置において、複数の第二装置からのパケットから送信元アドレスと、暗号化方式を識別する暗号情報を抽出し、暗号情報毎に送信元アドレスを記録する制御部を備えたことを特徴とする通信装置を提供する。
【発明の効果】
【００１５】
受信したパケットや受信したパケットを記憶した通信ログから類推される特徴に基づいて不正通信を検知できる効果がある。また、検知した不正通信に係る情報をネットワークの管理者に通知できる効果がある。
【発明を実施するための最良の形態】
【００１６】
以下に図面を用いて本発明の実施形態を説明する。先ず、本実施例が対象とする不正通信の例を説明し、その後、その不正通信を検知する方法を具体的に説明する。
【００１７】
[１．不正通信の例]
図１は、本実施形態が対象とする不正通信の例である。Ａクライアント２０、Ｂクライアント２１、Ｃクライアント２２、Ｄクラアント２３は、いずれも不正な通信を行うクライアントである。また、それぞれのクライアントにインストールされているブラウザが持つ暗号方式リストは、全て同じである。ここでいう暗号方式リストは、クライアントが利用可能な暗号方式の一覧を指す。サーバー１は、不正な通信を行うウェブサーバーである。クライアントが発信したＨＴＴＰパケット３０に基づく暗号方式毎にサーバーの数を数えた場合、サーバーの種類は全て同じであるため、その数は増えないという特徴がある。この特徴は、不正通信は特定のクライアントと特定のサーバー間で行われるために表れるものである。また、この特徴は、上記の説明の通り、正当な通信では表れない。図２において、不正通信は、ＨＴＴＰやＳＳＬに係る領域に不正通信を行うための不正通信情報を設定したパケットをクライアント６とサーバー１間でやり取りすることにより実現していると類推される。この類推は、受信したパケットや受信したパケットを記憶した通信ログに基づいて行われたものである。また、クライアント６とサーバー１の間に位置するファイアウォール３やプロクシ５は、正規のクライアントのウェブアクセスを許容するためにＨＴＴＰやＳＳＬを許容する設定になっている。このため、クライアント６とサーバー１は不正通信情報を含むパケットを自由にやり取りすることができる。従って、上述の特徴を検出できる通信装置をクライアント１とサーバー６の間に設置することで不正通信を見つけることができる。
【００１８】
[２．本実施形態の概要図]
図２は、本実施形態に係る通信システムの全体構成図である。本実施形態に係る通信システムは、サーバー１とインターネット２、ファイアウォール３、イントラネット４、プロクシ５、クライアント６、通信装置７、通信監視装置８で構成される。
【００１９】
サーバー１は、ＨＴＴＰやＳＳＬに対応した情報処理装置であり、不正通信を試みる利用者が操作するクライアント６の通信先となる装置である。サーバー１は、第一装置と称することもある。インターネット２は、個々の情報処理装置を結んで情報をやり取りする世界的規模のネットワークシステムである。ファイアウォール３は、不正なパケットがイントラネット４に侵入することを防ぐシステムである。イントラネット４は、インターネット２の標準技術を用いて企業内に構築されたネットワークである。プロクシ５は、直接インターネット２に接続できないイントラネット４に接続されている情報処理装置に代わって、「代理」としてインターネット２との接続を行なう情報処理装置である。クライアント６は、ＨＴＴＰやＳＳＬに対応した情報処理装置であり、不正通信を試みる利用者が操作する装置である。クライアント６は、第二装置と称することもある。通信装置７は、サーバー１とクラアント６の間で行われる不正通信を検知するための装置である。通信装置７は、不正通信を検知した場合、その旨を表す検知情報を通信監視装置８に通知する。通信監視装置８は、通信装置７が送信した検知情報を受信するための装置である。
【００２０】
[３．通信装置のハードウェア構成図]
図３は、通信装置７のハードウェア構成の一例を示すブロック図である。通信装置７は、セントラルプロセッシングユニット（ＣＰＵ）７１とランダムアクセスメモリー（ＲＡＭ）７２、リードオンリーメモリー（ＲＯＭ）７３、通信部７４、記憶領域７５で構成される。
【００２１】
ＣＰＵ７１は、通信プログラム７５１を実行する装置である。ＲＡＭ７２は、通信プログラム７５１を実行するためのデータや通信プログラム７５１が一時的に必要とするデータを記憶する装置である。上述の一時的に必要とするデータを記憶する領域は、一時記憶領域と称することがある。ＲＯＭ７３は、一度書き込まれたデータを記憶する装置である。ＲＯＭ７３は、通信プログラム７５１を記憶している場合もある。通信部７４は、サーバー１やファイアウォール３、プロクシ５、クライアント６、通信監視装置８との通信を担当する装置である。通信部７４は、インターネット２の標準技術であるトランスミッションコントロールプロトコル（ＴＣＰ）／インターネットプロトコル（ＩＰ）やＨＴＴＰなどのプロトコルに対応したものである。記憶領域７５は、通信プログラム７５１と不正サーバー検知用データ７５２、不正クライアント検知用データ７５３を記憶する領域である。記憶領域７５は、図示していないハードディスクなどの外部記憶装置の中に存在する領域である。通信プログラム７５１は、通信ログから不正通信に係るパケットを検知するように通信装置７を動作させる命令を記述したものである。不正サーバー検知用データ７５２は、不正な通信を行うサーバーを検知するために通信プログラム７５１が使用するデータである。不正クライアント検知用データ７５３は、不正な通信を行うクライアントを検知するために通信プログラム７５１が使用するデータである。
【００２２】
[４．不正サーバー検知用データの構成図]
図４は、図３の不正サーバー検知用データ７５２を表す。不正サーバー検知用データ７５２は、ＣＰＵ７１が通信プログラム７５１を実行するときにＲＡＭ７２上に生成する。不正サーバー検知用データ７５２の構成要素は、暗号方式リスト７５２１とアクセス先７５２２である。暗号方式リスト７５２１は、クライアントが持つ暗号方式の一覧を表す。暗号方式とは、暗号化に使用するアルゴリズムと鍵のサイズと、対象データの変換に使用するアルゴリズムであるハッシュの組み合わせを表す情報である。アクセス先７５２２は、不正通信を行うウェブサーバーを表す。アクセス先７５２２は、ＩＰアドレスで表現される。
【００２３】
[５．不正クライアント検知用データの構成図]
図５は、図３の不正クライアント検知用データ７５３を表す。不正クライアント検知用データ７５３は、ＣＰＵ７１が通信プログラム７５１を実行するときにＲＡＭ７２上に生成する。不正クライアント検知用データ７５３の構成要素は、暗号方式リスト７５３１とアクセス元７５３２である。暗号方式リスト７５３１は、図４の暗号方式リスト７５２１と同じものである。アクセス元７５３１は、不正通信を行うクライアントを表す。アクセス元７５３１は、ＩＰアドレスで表現される。
【００２４】
[６．パケット構成図]
図６は、通信装置７がサーバー１又はファイアウォール３、プロクシ５、クライアント６から受信するパケットを表す。その情報要素は、ディーエスティマック４１とエスアールシーマック４２、タイプ４３、バージョン＋ヘッダーレングス４４、テーオーエス４５、データレングス４６、アイディー４７、フラグメント４８、ティーティーエル４９、プロトコル５０、ヘッダーチェックサム５１、エスアールシーアイピー５２、ディーエスティーアイピー５３、エスアールシーポート５４、ディーエスティーポート５５、シーケンスナンバー５６、アックナンバー５７、データオフセット＋テーシーピーフラグ５８、ウィンドウサイズ５９、チェックサム６０、アージェントポインター６１、ＨＴＴＰメッセージ６２である。ディーエスティマック４１からタイプ４３は、ＭＡＣヘッダーを表す。バージョン＋ヘッダーレングス４４からディーエスティーアイピー５３は、ＩＰヘッダーを表す。エスアールシーポート５４からアージェントポインター６１は、ＴＣＰヘッダーを表す。
【００２５】
ディーエスティマック４１は、このパケットの宛先のＭＡＣアドレスを表す。ここでいうＭＡＣとは、メディアアクセスコントロールを指す。エスアールシーマック４２は、このパケットの送信元のＭＡＣアドレスを表す。タイプ４３は、プロトコルの種類を表す。バージョン＋ヘッダーレングス４４は、ＩＰプロトコルのバージョンとＩＰヘッダーの長さを表す。テーオーエス４５は、パケット送信時の優先度を表す。データレングス４６は、パケット全体の長さを表す。データレングス４６は、パケットの長さを表す長さ情報である。アイディー４７は、個々のパケットを識別する番号を表す。フラグメント４８は、パケットが分割されたものかどうかを表す。ティーティーエル４９は、パケットの生存時間を表す。プロトコル５０は、プロトコルの番号を表す。ヘッダーチェックサム５１は、誤り検出用のデータを表す。但し、ヘッダーチェックサム５１は現在使用されていない。エスアールシーアイピー５２は、このパケットの送信元のＩＰアドレスを表す。ディーエスティーアイピー５３は、このパケットの宛先のＩＰアドレスを表す。エスアールシーポート５４は、このパケットの送信元のポート番号を表す。ディーエスティーポート５５は、このパケットの宛先のポート番号を表す。エスアールシーアイピー５２及びディーエスティーアイピー５３、エスアールシーポート５４、ディーエスティーポート５５は、識別情報と称することもある。シーケンスナンバー５６は、受信側が送信データを識別する番号を表す。アックナンバー５７は、送信側が受信データを識別する番号を表す。データオフセット＋テーシーピーフラグ５８は、データが格納されている位置と通信制御情報（テーシーピーフラグ）を表す。通信制御情報は、セッションを確立する確立情報又はセッションを切断する切断情報と称することもある。ここでいうデータとは、ＨＴＴＰメッセージ６２を指す。また、通信制御情報とは、通信確立を表す確立情報「ＳＹＮ」や受信側からの応答を表す応答情報「ＡＣＫ」、強制終了を表す強制終了情報「ＲＳＴ」、切断を表す切断情報「ＦＩＮ」などを指す。ウィンドウサイズ５９は、受信確認を待たずにまとめて送信可能なデータ量を表す。チェックサム６０は、誤りの有無を検査するためのデータを表す。アージェントポインター６１は、緊急に処理すべきデータの位置を表す。ＨＴＴＰ／ＳＳＬ６２は、ＨＴＴＰで扱うデータ（ＨＴＴＰデータ）又はＳＳＬで扱うデータ（ＳＳＬデータ）を表す。ユーアールエル６３は、アクセス先となるウェブサーバーを表す。エックスフォーワーデッドフォー６４は、プロクシ５を経由してパケットを受信した場合に通信装置７がクライアントを識別するために使用する情報を表わす。ユーアールエル６３とエックスフォーワーデッドフォー６４は、いずれもＨＴＴＰデータの例である。ＳＳＬデータの例は、図７を用いて別途説明する。
【００２６】
[７．ＳＳＬデータ構成図]
図７は、図６のＨＴＴＰ／ＳＳＬ６２の中のＳＳＬデータを表す。ＳＳＬは、階層の数は規定されていない。しかし、実質は二階層である。その階層は、メッセージ層７０とレコード層７４である。メッセージ層７０は、認証機能とネゴシエーション機能を実現するための情報から成る。認証機能は、サーバー及びクライアントが本当に正しいものがどうかを認証するものである。ネゴシエーション機能は、サーバーとクラアントがお互いに使用できる暗号情報を決定するためのものである。レコード層７４は、暗号化を実現するための情報からなる。メッセージ層７０の情報要素は、コンテントタイプ７１とプロトコルバージョン７２、レングス７３である。コンテントタイプ７１は、レコード層で用いるプロトコルの種類を表す。本発明では、ハンドシェイクプロトコル（１６）を使用する。ハンドシェイクプロトコルは、クライアントとサーバーが暗号化に使用する鍵の受け渡し及び認証を行うために使用するものである。ハンドシェイクとは、送信側と受信側が確認を行いながら信頼性の高い通信を行うことを指す。プロトコルバージョン７２は、ＳＳＬのバージョンを表す。このバージョンは、例えば３．０（０３  ００）や３．１（０３  ０１）である。レングス７３は、レコード層７４の長さを表す。レコード層７４の情報要素は、ハンドシェイクタイプ７５、レングス７６、プロトコルバージョン７７、ランダム７８、セッションＩＤ７９、サイファースイート８０、レングス８１、バリュー８２、コンプレッションメソッド８３である。ハンドシェイクタイプ７５は、ハンドシェイクプロトコルで使用するメッセージの種類を表す。本発明では、クライアントハロー（ＣｌｉｅｎｔＨｅｌｌｏ（１０））を使用する。クライアントハローは、クライアントがサーバーにＳＳＬ通信の開始を通知するためのものである。レングス７６は、これより以降の情報の長さを表す。プロトコルバージョン７７は、クライアントがサーバーに要求するＳＳＬのバージョンを表す。このバージョンは、例えば３．０（０３  ００）や３．１（０３  ０１）である。ランダム７８は、乱数である。セッションＩＤ７９は、過去のＳＳＬ通信があり、そのＳＳＬ通信で使用したネゴシエーション結果を採用する場合に使用する。サイファースイート８０は、クライアントが利用可能な暗号方式を表す。サイファースイート８０は、レングス８１とバリュー８２から成る。レングス８１は、暗号方式を表す値の長さを表す。バリュー８２は、暗号方式の値を表す。暗号方式の値は、例えば、００  ０４（ＴＬＳ＿ＲＳＡ＿ＷＩＴＨ＿ＲＣ４＿１２６＿ＭＤ５）といった２バイト単位のものである。暗号方式は、暗号化に使用するアルゴリズムと鍵のサイズと、対象データの変換に使用するアルゴリズムであるハッシュの組み合わせを表す情報である。コンプレッションメソッド８３は、クライアントが利用可能なメッセージ圧縮方式を表す値の長さと、圧縮方式の表す値から成る。バリュー８２は、暗号情報になる。
【００２７】
[８．不正通信検知処理のフローチャート（その１）]
図８は、通信装置７が不正通信を行うサーバーを検知する際の手順を表したフローチャートである。通信装置７のＣＰＵ７１は、通信プログラム７５１を実行することにより、不正通信を行うサーバーを検知する処理を実現する。
【００２８】
Ｓ３０１において、ＣＰＵ７１は、通信ログを取得する。ここでいう通信ログとは、通信装置７がサーバー１又はファイアウォール３、プロクシ５、クライアント６のいずれかから受信したパケットをそのパケットを受信した日時と共に記憶領域７５に蓄積したものである。パケットは、図６で説明したものと同じである。上述の日時は、図示していないが通信装置７が持つ時計管理機能から取得する。この通信ログの取得契機は、通信装置７の製造元又は利用者が任意に設定できる。ＣＰＵ７１は、記憶領域７５から通信ログを取得し、取得した通信ログを一時記憶領域に格納する。
【００２９】
Ｓ３０２において、ＣＰＵ７１は、Ｓ３０１で一時記憶領域に格納した通信ログから同一の通信先を持つパケットを抽出する。この抽出は、ＣＰＵ７１が、通信ログ中のそれぞれのパケットが持つエスアールシーアイピー５２とディーエスティーアイピー５３、エスアールシーポート５４、ディーエスティーポート５５を調べて、同一のエスアールシーアイピー５２とディーエスティーアイピー５３、エスアールシーポート５４、ディーエスティーポート５５を持つパケットを抜き出す。そして、ＣＰＵ７１は、抜き出したパケットを一時記憶領域に格納する。
【００３０】
Ｓ３０３において、ＣＰＵ７１は、Ｓ３０２で抽出した同一の通信先を持つパケットから同一のセッションに関係するパケットを抽出する。この抽出は、ＣＰＵ７１が、同一の通信先を持つそれぞれのパケットが持つテーシーピーフラグ５８を調べて、セッションを確立する確立情報「ＳＹＮ」又はセッションを強制終了する強制終了情報「ＲＳＴ」、セッションを切断する切断情報「ＦＩＮ」を持つパケットを見つける。そして、ＣＰＵ７１が、同一の通信先を持つそれぞれのパケットからテーシーピーフラグが確立情報「ＳＹＮ」のパケットと、テーシーピーフラグが強制終了情報「ＲＳＴ」又は切断情報「ＦＩＮ」のパケットの間に存在するパケットを抜き出す。そして、ＣＰＵ７１は、抜き出したパケットを一時記憶領域に格納する。また、抜き出したパケットの数をパケット数として一時記憶領域に格納する。
【００３１】
Ｓ３０４において、ＣＰＵ７１は、Ｓ３０３で抽出した同一のセッションに関係するパケットからＨＴＴＰメッセージを抽出する。この抽出は、ＣＰＵ７１が、ＨＴＴＰメッセージ６２の開始アドレスと最終アドレスを算出し、開始アドレスから終了アドレスの間のデータを抜き出す。開始アドレスは、１４バイトにバージョン＋ヘッダーレングス４４とデータオフセット＋テーシーピーフラグ５８と１バイトを加えて算出する。終了アドレスは、１４バイトにデータレングス４６を加えて算出する。１４バイトは、ディーエスティマック４１とエスアールシーマック４２、タイプ４３を合計した長さである。そして、ＣＰＵ７１は、抜き出したパケットを一時記憶領域に格納する。
【００３２】
Ｓ３０５において、ＣＰＵ７１は、Ｓ３０４で抽出したＨＴＴＰメッセージ６２からユーアールエル６３を抽出する。その方法は、以下の通りである。第一に、ＣＰＵ７１は、上述のパケットから、パケットの先頭が「ゲット（ＧＥＴ）」、「ポスト（ＰＯＳＴ）」、「ヘッド（ＨＥＡＤ）」のいずれかで始まるパケットを抽出する。ＧＥＴは、クライアントがサーバーの持つ情報を取り出すための命令である。ＰＯＳＴは、クライアントからサーバーに情報を送信するための命令である。ＨＥＡＤは、クライアントがサーバーの持つ情報が持つ属性情報を取り出すための命令である。第二に、第一の処理で抽出したＨＴＴＰ／メッセージ６２からユーアールエル６３を抽出する。ユーアールエル６３は宛先情報と称する場合もある。そして、ＣＰＵ７１は、抽出したユーアールエル６３を一時記憶領域に格納する。
【００３３】
Ｓ３０６において、ＣＰＵ７１は、Ｓ３０４で抽出したＨＴＴＰメッセージ６２から暗号情報を抽出する。ここでは、暗号情報を表すバリュー８２を抽出する。その方法は、以下の通りである。第一に、ＣＰＵ７１は、上述のパケットからコンテントタイプ７１がハンドシェイクプロトコル（１６）であり、ハンドシェイクタイプ７５が、クライアントハロー（１０）であるパケットを抽出する。そして、ＣＰＵ７１は、抽出したパケットを一時記憶領域に格納する。第二に、ＣＰＵ７１は、第一の処理で抽出したＨＴＴＰ／ＳＳＬデータからバリュー８２を抽出する。そして、ＣＰＵ７１は、抽出したバリュー８２を一時記憶領域に格納する。この抽出処理において、プロトコルバージョン７２又はプロトコルバージョン７６が、３．０（０３  ００）又は３．１（０３  ０１）であることをバリュー８２の抽出する条件に追加しても良い。また、バリュー８２が、ＳＳＬの仕様で定義されているものであることをバリュー８２の抽出する条件に追加しても良い。
【００３４】
Ｓ３０７において、ＣＰＵ７１は、ユーアールエル６３とバリュー８２を図４の不正サーバー検知用データ７５２に記録する。ユーアールエル６３は、Ｓ３０５で抽出したものである。バリュー８２は、Ｓ３０６で抽出したものである。この記録は、バリュー８２毎にユーアールエル６３の種類を数えたものである。この記録は、具体的には以下のように行う。
【００３５】
バリュー８２が暗号方式リスト７５２１に存在しない場合、ＣＰＵ７１は、バリュー８２を暗号方式リスト７５２１に格納する。そして、ＣＰＵ７１は、ユーアールエル６３をその暗号方式リスト７５２１に対応するアクセス先７５２２に格納する。
【００３６】
バリュー８２が暗号方式リスト７５２１に存在する場合、ＣＰＵ７１は、バリュー８２を暗号方式リスト７５２１に格納しない。そして、ユーアールエル６３がその暗号方式リスト７５２１に対応するアクセス先７５２２に存在しない場合、ＣＰＵ７１は、ユーアールエル６３をアクセス先７５２２に格納する。ユーアールエル６３がその暗号方式リスト７５２１に対応するアクセス先７５２２に存在する場合、ＣＰＵ７１は、ユーアールエル６３をアクセス先７５２２に格納しない。最後に、ＣＰＵ７１はＳ３０３で格納したパケット数を一つ減算する。
【００３７】
Ｓ３０８において、ＣＰＵ７１は、未処理のパケットがあるかどうかを判別する。この判別は、ＣＰＵ７１が一時記憶領域中のパケット数が０かどうかを判別する。この判別の結果、パケット数が０の場合、ＣＰＵ７１はＳ３１０の処理を行う。この判別の結果、パケット数が０でない場合、Ｓ３０５の処理を行う。
【００３８】
Ｓ３１０において、ＣＰＵ７１は、記録データを含むパケットを生成し、そのパケットを通信監視装置８に送信する。記録データは、不正サーバー検知用データ７５２である。ＣＰＵ７１は、記憶領域７５から不正サーバー検知用データ７５２を抽出する。ＣＰＵ７１は、記憶領域７５に格納されている通信監視装置８のＩＰアドレスを抽出する。ＣＰＵ７１は、不正サーバー検知用データ７５２と通信監視装置８のＩＰアドレスを含むパケットを生成する。ＣＰＵ７１は、生成したパケットを通信監視装置８に向けて送信する。監視装置８の利用者は、通知された不正サーバー検知用データ７５２から不正通信に関連するサーバーの候補を見つける。不正通信に関連するサーバーは、他のものに比較して種類が少ないアクセス先から特定される。
【００３９】
また、記録データの出力は、ＣＰＵ７１が閾値以下のアクセス先に関連する不正通信を意味するメッセージを生成し、通信監視装置８に送信しても良い。ここでいう閾値は、通信装置７の製造元又は利用者が任意に設定したものである。閾値は、例えば１である。この値は、記録した情報の中で不正な通信を行っている可能性のアクセス先を区別するために採用したものである。ＣＰＵ７１は、通信ログからセッション開始時間と、宛先ＵＲＬ、クライアントＩＰアドレスを抽出する。セッション開始時間は、閾値以下の出現回数を検知したパケットのセッションを確立した日時である。この日時は、閾値以下の出現回数を検知したパケットの直前のテーシーピーフラグに確立情報「ＳＹＮ」が設定されたパケットを受信した日時である。宛先ＵＲＬとクライアントＩＰアドレスは、閾値以下の出現回数を検知したパケットのＨＴＴＰメッセージ６２の中に存在する。ＣＰＵ７１は、検知理由として設定する「ある暗号方式を実装したクライアントが、特定のサイトにだけアクセスする」というデータを生成する。ＣＰＵ７１は、記憶領域７５に格納されている通信監視装置８のＩＰアドレスを抽出する。ＣＰＵ７１は、セッション開始時間と、宛先ＵＲＬ、クライアントＩＰアドレス、検知理由を含むパケットを生成する。ＣＰＵ７１は、生成したパケットを通信監視装置８に向けて送信する。
【００４０】
図１０は、不正な通信を意味するメッセージの例を表す。セッション開始時間４１は、閾値以下の出現回数を検知したパケットの直前に存在するテーシーピーフラグに確立情報「ＳＹＮ」が設定されたパケットを受信した日時である。宛先ＵＲＬ４２は、閾値以下の出現回数を検知したパケットのＨＴＴＰメッセージ６２の中に存在する宛先ＵＲＬを表す。クライアントＩＰアドレス４３は、閾値以上の出現回数を検知したパケットのＨＴＴＰメッセージ６２の中に存在するクライアントＩＰアドレスを表す。検知理由４４は、不正な通信として検知した理由を表す。
【００４１】
[９．不正通信検知処理のフローチャート（その２）]
図９は、通信装置７が不正通信を行うクライアントを検知する際の手順を表したフローチャートである。通信装置７のＣＰＵ７１は、通信プログラム７５１を実行することにより、不正通信を行うクライアントを検知する処理を実現する。
【００４２】
Ｓ３１１からＳ３１４までの処理は、図８のＳ３０１からＳ３０４までの処理と同じである。
【００４３】
Ｓ３１５において、ＣＰＵ７１は、Ｓ３１３で抽出した同一セッションのパケット、もしくはＳ３１４で抽出したＨＴＴＰメッセージ６２から送信元アドレスを抽出する。ここでは、送信元アドレスを表すエスアールシーアイピー５２又はエックスフォーワーデッドフォー６４を抽出する。通信装置７とクライアント６の間にプロクシ５が存在しない場合、エスアールシーアイピー５２を抽出する。通信装置７とクライアント６の間にプロクシ５が存在する場合、エックスフォーワーデッドフォー６４を抽出する。これは、通信装置７とクライアント６の間にプロクシ５が存在する場合、プロクシ５がアールシーアイピー５２を書き換えるためである。そして、ＣＰＵ７１は、抽出した送信元アドレスを表すデータを一時記憶領域に格納する。
【００４４】
Ｓ３１６の処理は、図８のＳ３０６の処理と同じである。
【００４５】
Ｓ３１７において、ＣＰＵ７１は、エスアールシーアイピー５２又はエックスフォーワーデッドフォー６４と、バリュー８２を図５の不正クライアント検知用データ７５３に記録する。エスアールシーアイピー５２又はエックスフォーワーデッドフォー６４は、Ｓ３１５で抽出したものである。バリュー８２は、Ｓ３１５で抽出したものである。この記録は、バリュー８２毎にエスアールシーアイピー５２又はエックスフォーワーデッドフォー６４の種類を数えたものである。この記録は、具体的には以下のように行う。バリュー８２が暗号方式リスト７５３１に存在しない場合、ＣＰＵ７１は、バリュー８２を暗号方式リスト７５３１に格納する。そして、ＣＰＵ７１は、エスアールシーアイピー５２又はエックスフォーワーデッドフォー６４をその暗号方式リスト７５３１に対応するアクセス元７５３２に格納する。バリュー８２が暗号方式リスト７５３１に存在する場合、ＣＰＵ７１は、バリュー８２を暗号方式リスト７５３１に格納しない。そして、エスアールシーアイピー５２又はエックスフォーワーデッドフォー６４がその暗号方式リスト７５３１に対応するアクセス元７５３２に存在しない場合、ＣＰＵ７１は、エスアールシーアイピー５２又はエックスフォーワーデッドフォー６４をアクセス元７５３２に格納する。エスアールシーアイピー５２又はエックスフォーワーデッドフォー６４がその暗号方式リスト７５３１に対応するアクセス元７５３２に存在する場合、ＣＰＵ７１は、エスアールシーアイピー５２又はエックスフォーワーデッドフォー６４をアクセス元７５３２に格納しない。
【００４６】
Ｓ３１８の処理は、図８のＳ３０８の処理と同じである。
【００４７】
Ｓ３２０において、ＣＰＵ７１は、記録データを含むパケットを生成し、そのパケットを通信監視装置８に送信する。記録データは、不正クライアント検知用データ７５３である。ＣＰＵ７１は、記憶領域７５から不正サーバー検知用クライアント７５３を抽出する。ＣＰＵ７１は、記憶領域７５に格納されている通信監視装置８のＩＰアドレスを抽出する。ＣＰＵ７１は、不正クライアント検知用データ７５３と通信監視装置８のＩＰアドレスを含むパケットを生成する。ＣＰＵ７１は、生成したパケットを通信監視装置８に向けて送信する。監視装置８の利用者は、通知された不正クライアント検知用データ７５３から不正通信に関連するクライアントの候補を見つける。不正通信に関連するクライアントは、他のものに比較して種類が少ないアクセス元から特定されるクラアントである。
【００４８】
また、記録データの出力は、送信元アドレスの数が閾値以下の暗号方式リストに関連する不正通信を意味するメッセージを生成し、通信監視装置８に通知しても良い。ここでいう閾値は、通信装置７の製造元又は利用者が任意に設定したものである。閾値は、例えば１である。この値は、記録した情報の中で不正な通信を行っている可能性の一番高い暗号方式リストを区別するために採用したものである。このメッセージは、図８のＳ３１０のメッセージと同等のものである。異なるのは、検知理由の内容だけである。ここでいう検知理由は、ある暗号方式を実装したクライアントが、特定のクライアントにだけ存在するというものである。
【００４９】
以上、本発明を実施例に基づいて説明したが、本発明は前記の実施例に限定されるものではなく、特許請求の範囲に記載した構成を変更しない限りどのようにでも実施することができる。
【図面の簡単な説明】
【００５０】
【図１】不正通信の例である。
【図２】本実施形態の全体構成図である。
【図３】通信装置のハードウェア構成図である。
【図４】不正通信サーバー検知用データの構成図である。
【図５】不正通信クライアント検知用データの構成図である。
【図６】パケット構成図である。
【図７】ＳＳＬデータ構成図である。
【図８】不正通信検知処理のフローチャート（その１）である。
【図９】不正通信検知処理のフローチャート（その２）である。
【図１０】不正通信を意味するメッセージの例である。
【符号の説明】
【００５１】
１  サーバー
２  インターネット
３  ＦｉｒｅＷａｌｌ（ファイアウォール）
４  イントラネット
５  Ｐｒｏｘｙ（プロクシ）
６  クライアント
７  通信装置
８  通信監視装置
【図１】
0005018329.tif 000002
【図２】
0005018329.tif 000003
【図３】
0005018329.tif 000004
【図４】
0005018329.tif 000005
【図５】
0005018329.tif 000006
【図６】
0005018329.tif 000007
【図７】
0005018329.tif 000008
【図８】
0005018329.tif 000009
【図９】
0005018329.tif 000010
【図１０】
0005018329.tif 000011