説明

通信装置を制御するプログラム及び通信装置

【課題】本発明は、既存のプロトコルや通信ログから類推される特徴に基づいて不正通信を検知する技術を提供する。
【解決手段】
前記の発明が解決しようとする課題を解決するための手段として、データを提供する複数の第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置を制御するプログラムにおいて、通信装置に、複数の第二装置からのパケットから宛先情報と、暗号化方式を識別するための暗号情報を抽出し、暗号情報毎に宛先情報を記録する手順を実行させるプログラムを提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不正な通信(以下、不正通信と呼ぶ。)を検知する技術に関する。
【背景技術】
【0002】
不正通信を実現する技術として、ウェブサーバーとクライアントの間でデータをやり取りする際に使われるハイパーテキストトランスファープロトコル(HTTP)と暗号化のためのプロトコルであるセキュアソケットレイヤー(SSL)を利用する方法がある。SSLはHTTPの領域を用いて暗号化を実現する。HTTPは、クライアントがウェブサーバーにアクセスするときに使用するものであるため、不正通信を防ぐシステムであるファイアウォールにおいても通信が許容されている。このため、HTTPを利用することでファイアウォールを越えて不正通信が実現されるという問題がある。不正通信の手順は公開されていないため、その手順は不明である。
【0003】
しかし、HTTP上のSSLで使用する暗号方式のリスト(暗号方式リスト)の特徴に着目して不正通信かどうかを類推できる。SSLを使用した通信(SSL通信)をするために、開始段階においてクライアントとウェブサーバーは、その通信で使用する暗号方式を調整する。この調整は、以下手順で行う。先ず、クライアントがクライアント側で利用可能な暗号方式リストをウェブサーバーに送信する。次に、暗号方式リストを受信したウェブサーバーがその暗号方式リストの中から利用可能な暗号方式を選択し、その選択結果をクライアントに送信する。この暗号方式リストは、クライアントがウェブページを閲覧するときに使用するソフトウェアであるブラウザによって異なる。
【0004】
以下にSSLを利用した正当な通信と不正な通信における暗号方式リストの特徴を説明する。これらの特徴は、受信したパケットや受信したパケットを記憶した通信ログから類推したものである。
【0005】
正当なSSL通信の場合、複数の人が著名なブラウザを使用し、複数のウェブサーバーにアクセスする。このため、クライアントが送信する暗号方式のリスト毎にアクセス先の種類を数えた場合、その数は自然と増えていくという特徴がある。
【0006】
一方、不正なSSL通信の場合、特定の人が特定のブラウザを使用し、単一のサーバーにアクセスする。このため、クライアントが送信する暗号方式のリスト毎にアクセス先の種類を数えてもその数は増えないという特徴がある。
【0007】
また、不正通信を検知する技術として下記のものがある。
【特許文献1】特開2006−279930号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
受信したパケットから類推される特徴に基づいて不正通信を検知する。
【課題を解決するための手段】
【0009】
上記の課題を解決するための第一の手段として、データを提供する複数の第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置を制御するプログラムにおいて、通信装置に、
複数の第二装置からのパケットから宛先情報と、暗号化方式を識別するための暗号情報を抽出し、暗号情報毎に宛先情報を記録する手順を実行させるプログラムを提供する。
【0010】
上記の課題を解決するための第二の手段として、データを提供する第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置を制御するプログラムにおいて、通信装置に、複数の第二装置からのパケットから送信元アドレスと、暗号化方式を識別する暗号情報を抽出し、暗号情報毎に送信元アドレスを記録する手順を実行させるプログラムを提供する。
【0011】
上記の課題を解決するための第三の手段として、暗号情報の抽出は、暗号処理を実現するプロトコルの種別とプロトコルで使用するメッセージに基づいて行うことを特徴とするプログラムを提供する。
【0012】
上記の課題を解決するための第四の手段として、記録する手順により記録した情報を宛先情報の数又は送信元アドレスの数に基づいて通信装置に接続された装置に送信することを特徴とするプログラムを提供する。
【0013】
上記の課題を解決するための第五の手段として、データを提供する複数の第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置において、複数の第二装置からのパケットから宛先情報と、暗号化方式を識別するための暗号情報を抽出し、暗号情報毎に宛先情報を記録する制御部を備えたことを特徴とする通信装置を提供する。
【0014】
上記の課題を解決するための第六の手段として、データを提供する第一装置とデータを取得する複数の第二装置の間をネットワークを介して接続された通信装置において、複数の第二装置からのパケットから送信元アドレスと、暗号化方式を識別する暗号情報を抽出し、暗号情報毎に送信元アドレスを記録する制御部を備えたことを特徴とする通信装置を提供する。
【発明の効果】
【0015】
受信したパケットや受信したパケットを記憶した通信ログから類推される特徴に基づいて不正通信を検知できる効果がある。また、検知した不正通信に係る情報をネットワークの管理者に通知できる効果がある。
【発明を実施するための最良の形態】
【0016】
以下に図面を用いて本発明の実施形態を説明する。先ず、本実施例が対象とする不正通信の例を説明し、その後、その不正通信を検知する方法を具体的に説明する。
【0017】
[1.不正通信の例]
図1は、本実施形態が対象とする不正通信の例である。Aクライアント20、Bクライアント21、Cクライアント22、Dクラアント23は、いずれも不正な通信を行うクライアントである。また、それぞれのクライアントにインストールされているブラウザが持つ暗号方式リストは、全て同じである。ここでいう暗号方式リストは、クライアントが利用可能な暗号方式の一覧を指す。サーバー1は、不正な通信を行うウェブサーバーである。クライアントが発信したHTTPパケット30に基づく暗号方式毎にサーバーの数を数えた場合、サーバーの種類は全て同じであるため、その数は増えないという特徴がある。この特徴は、不正通信は特定のクライアントと特定のサーバー間で行われるために表れるものである。また、この特徴は、上記の説明の通り、正当な通信では表れない。図2において、不正通信は、HTTPやSSLに係る領域に不正通信を行うための不正通信情報を設定したパケットをクライアント6とサーバー1間でやり取りすることにより実現していると類推される。この類推は、受信したパケットや受信したパケットを記憶した通信ログに基づいて行われたものである。また、クライアント6とサーバー1の間に位置するファイアウォール3やプロクシ5は、正規のクライアントのウェブアクセスを許容するためにHTTPやSSLを許容する設定になっている。このため、クライアント6とサーバー1は不正通信情報を含むパケットを自由にやり取りすることができる。従って、上述の特徴を検出できる通信装置をクライアント1とサーバー6の間に設置することで不正通信を見つけることができる。
【0018】
[2.本実施形態の概要図]
図2は、本実施形態に係る通信システムの全体構成図である。本実施形態に係る通信システムは、サーバー1とインターネット2、ファイアウォール3、イントラネット4、プロクシ5、クライアント6、通信装置7、通信監視装置8で構成される。
【0019】
サーバー1は、HTTPやSSLに対応した情報処理装置であり、不正通信を試みる利用者が操作するクライアント6の通信先となる装置である。サーバー1は、第一装置と称することもある。インターネット2は、個々の情報処理装置を結んで情報をやり取りする世界的規模のネットワークシステムである。ファイアウォール3は、不正なパケットがイントラネット4に侵入することを防ぐシステムである。イントラネット4は、インターネット2の標準技術を用いて企業内に構築されたネットワークである。プロクシ5は、直接インターネット2に接続できないイントラネット4に接続されている情報処理装置に代わって、「代理」としてインターネット2との接続を行なう情報処理装置である。クライアント6は、HTTPやSSLに対応した情報処理装置であり、不正通信を試みる利用者が操作する装置である。クライアント6は、第二装置と称することもある。通信装置7は、サーバー1とクラアント6の間で行われる不正通信を検知するための装置である。通信装置7は、不正通信を検知した場合、その旨を表す検知情報を通信監視装置8に通知する。通信監視装置8は、通信装置7が送信した検知情報を受信するための装置である。
【0020】
[3.通信装置のハードウェア構成図]
図3は、通信装置7のハードウェア構成の一例を示すブロック図である。通信装置7は、セントラルプロセッシングユニット(CPU)71とランダムアクセスメモリー(RAM)72、リードオンリーメモリー(ROM)73、通信部74、記憶領域75で構成される。
【0021】
CPU71は、通信プログラム751を実行する装置である。RAM72は、通信プログラム751を実行するためのデータや通信プログラム751が一時的に必要とするデータを記憶する装置である。上述の一時的に必要とするデータを記憶する領域は、一時記憶領域と称することがある。ROM73は、一度書き込まれたデータを記憶する装置である。ROM73は、通信プログラム751を記憶している場合もある。通信部74は、サーバー1やファイアウォール3、プロクシ5、クライアント6、通信監視装置8との通信を担当する装置である。通信部74は、インターネット2の標準技術であるトランスミッションコントロールプロトコル(TCP)/インターネットプロトコル(IP)やHTTPなどのプロトコルに対応したものである。記憶領域75は、通信プログラム751と不正サーバー検知用データ752、不正クライアント検知用データ753を記憶する領域である。記憶領域75は、図示していないハードディスクなどの外部記憶装置の中に存在する領域である。通信プログラム751は、通信ログから不正通信に係るパケットを検知するように通信装置7を動作させる命令を記述したものである。不正サーバー検知用データ752は、不正な通信を行うサーバーを検知するために通信プログラム751が使用するデータである。不正クライアント検知用データ753は、不正な通信を行うクライアントを検知するために通信プログラム751が使用するデータである。
【0022】
[4.不正サーバー検知用データの構成図]
図4は、図3の不正サーバー検知用データ752を表す。不正サーバー検知用データ752は、CPU71が通信プログラム751を実行するときにRAM72上に生成する。不正サーバー検知用データ752の構成要素は、暗号方式リスト7521とアクセス先7522である。暗号方式リスト7521は、クライアントが持つ暗号方式の一覧を表す。暗号方式とは、暗号化に使用するアルゴリズムと鍵のサイズと、対象データの変換に使用するアルゴリズムであるハッシュの組み合わせを表す情報である。アクセス先7522は、不正通信を行うウェブサーバーを表す。アクセス先7522は、IPアドレスで表現される。
【0023】
[5.不正クライアント検知用データの構成図]
図5は、図3の不正クライアント検知用データ753を表す。不正クライアント検知用データ753は、CPU71が通信プログラム751を実行するときにRAM72上に生成する。不正クライアント検知用データ753の構成要素は、暗号方式リスト7531とアクセス元7532である。暗号方式リスト7531は、図4の暗号方式リスト7521と同じものである。アクセス元7531は、不正通信を行うクライアントを表す。アクセス元7531は、IPアドレスで表現される。
【0024】
[6.パケット構成図]
図6は、通信装置7がサーバー1又はファイアウォール3、プロクシ5、クライアント6から受信するパケットを表す。その情報要素は、ディーエスティマック41とエスアールシーマック42、タイプ43、バージョン+ヘッダーレングス44、テーオーエス45、データレングス46、アイディー47、フラグメント48、ティーティーエル49、プロトコル50、ヘッダーチェックサム51、エスアールシーアイピー52、ディーエスティーアイピー53、エスアールシーポート54、ディーエスティーポート55、シーケンスナンバー56、アックナンバー57、データオフセット+テーシーピーフラグ58、ウィンドウサイズ59、チェックサム60、アージェントポインター61、HTTPメッセージ62である。ディーエスティマック41からタイプ43は、MACヘッダーを表す。バージョン+ヘッダーレングス44からディーエスティーアイピー53は、IPヘッダーを表す。エスアールシーポート54からアージェントポインター61は、TCPヘッダーを表す。
【0025】
ディーエスティマック41は、このパケットの宛先のMACアドレスを表す。ここでいうMACとは、メディアアクセスコントロールを指す。エスアールシーマック42は、このパケットの送信元のMACアドレスを表す。タイプ43は、プロトコルの種類を表す。バージョン+ヘッダーレングス44は、IPプロトコルのバージョンとIPヘッダーの長さを表す。テーオーエス45は、パケット送信時の優先度を表す。データレングス46は、パケット全体の長さを表す。データレングス46は、パケットの長さを表す長さ情報である。アイディー47は、個々のパケットを識別する番号を表す。フラグメント48は、パケットが分割されたものかどうかを表す。ティーティーエル49は、パケットの生存時間を表す。プロトコル50は、プロトコルの番号を表す。ヘッダーチェックサム51は、誤り検出用のデータを表す。但し、ヘッダーチェックサム51は現在使用されていない。エスアールシーアイピー52は、このパケットの送信元のIPアドレスを表す。ディーエスティーアイピー53は、このパケットの宛先のIPアドレスを表す。エスアールシーポート54は、このパケットの送信元のポート番号を表す。ディーエスティーポート55は、このパケットの宛先のポート番号を表す。エスアールシーアイピー52及びディーエスティーアイピー53、エスアールシーポート54、ディーエスティーポート55は、識別情報と称することもある。シーケンスナンバー56は、受信側が送信データを識別する番号を表す。アックナンバー57は、送信側が受信データを識別する番号を表す。データオフセット+テーシーピーフラグ58は、データが格納されている位置と通信制御情報(テーシーピーフラグ)を表す。通信制御情報は、セッションを確立する確立情報又はセッションを切断する切断情報と称することもある。ここでいうデータとは、HTTPメッセージ62を指す。また、通信制御情報とは、通信確立を表す確立情報「SYN」や受信側からの応答を表す応答情報「ACK」、強制終了を表す強制終了情報「RST」、切断を表す切断情報「FIN」などを指す。ウィンドウサイズ59は、受信確認を待たずにまとめて送信可能なデータ量を表す。チェックサム60は、誤りの有無を検査するためのデータを表す。アージェントポインター61は、緊急に処理すべきデータの位置を表す。HTTP/SSL62は、HTTPで扱うデータ(HTTPデータ)又はSSLで扱うデータ(SSLデータ)を表す。ユーアールエル63は、アクセス先となるウェブサーバーを表す。エックスフォーワーデッドフォー64は、プロクシ5を経由してパケットを受信した場合に通信装置7がクライアントを識別するために使用する情報を表わす。ユーアールエル63とエックスフォーワーデッドフォー64は、いずれもHTTPデータの例である。SSLデータの例は、図7を用いて別途説明する。
【0026】
[7.SSLデータ構成図]
図7は、図6のHTTP/SSL62の中のSSLデータを表す。SSLは、階層の数は規定されていない。しかし、実質は二階層である。その階層は、メッセージ層70とレコード層74である。メッセージ層70は、認証機能とネゴシエーション機能を実現するための情報から成る。認証機能は、サーバー及びクライアントが本当に正しいものがどうかを認証するものである。ネゴシエーション機能は、サーバーとクラアントがお互いに使用できる暗号情報を決定するためのものである。レコード層74は、暗号化を実現するための情報からなる。メッセージ層70の情報要素は、コンテントタイプ71とプロトコルバージョン72、レングス73である。コンテントタイプ71は、レコード層で用いるプロトコルの種類を表す。本発明では、ハンドシェイクプロトコル(16)を使用する。ハンドシェイクプロトコルは、クライアントとサーバーが暗号化に使用する鍵の受け渡し及び認証を行うために使用するものである。ハンドシェイクとは、送信側と受信側が確認を行いながら信頼性の高い通信を行うことを指す。プロトコルバージョン72は、SSLのバージョンを表す。このバージョンは、例えば3.0(03 00)や3.1(03 01)である。レングス73は、レコード層74の長さを表す。レコード層74の情報要素は、ハンドシェイクタイプ75、レングス76、プロトコルバージョン77、ランダム78、セッションID79、サイファースイート80、レングス81、バリュー82、コンプレッションメソッド83である。ハンドシェイクタイプ75は、ハンドシェイクプロトコルで使用するメッセージの種類を表す。本発明では、クライアントハロー(ClientHello(10))を使用する。クライアントハローは、クライアントがサーバーにSSL通信の開始を通知するためのものである。レングス76は、これより以降の情報の長さを表す。プロトコルバージョン77は、クライアントがサーバーに要求するSSLのバージョンを表す。このバージョンは、例えば3.0(03 00)や3.1(03 01)である。ランダム78は、乱数である。セッションID79は、過去のSSL通信があり、そのSSL通信で使用したネゴシエーション結果を採用する場合に使用する。サイファースイート80は、クライアントが利用可能な暗号方式を表す。サイファースイート80は、レングス81とバリュー82から成る。レングス81は、暗号方式を表す値の長さを表す。バリュー82は、暗号方式の値を表す。暗号方式の値は、例えば、00 04(TLS_RSA_WITH_RC4_126_MD5)といった2バイト単位のものである。暗号方式は、暗号化に使用するアルゴリズムと鍵のサイズと、対象データの変換に使用するアルゴリズムであるハッシュの組み合わせを表す情報である。コンプレッションメソッド83は、クライアントが利用可能なメッセージ圧縮方式を表す値の長さと、圧縮方式の表す値から成る。バリュー82は、暗号情報になる。
【0027】
[8.不正通信検知処理のフローチャート(その1)]
図8は、通信装置7が不正通信を行うサーバーを検知する際の手順を表したフローチャートである。通信装置7のCPU71は、通信プログラム751を実行することにより、不正通信を行うサーバーを検知する処理を実現する。
【0028】
S301において、CPU71は、通信ログを取得する。ここでいう通信ログとは、通信装置7がサーバー1又はファイアウォール3、プロクシ5、クライアント6のいずれかから受信したパケットをそのパケットを受信した日時と共に記憶領域75に蓄積したものである。パケットは、図6で説明したものと同じである。上述の日時は、図示していないが通信装置7が持つ時計管理機能から取得する。この通信ログの取得契機は、通信装置7の製造元又は利用者が任意に設定できる。CPU71は、記憶領域75から通信ログを取得し、取得した通信ログを一時記憶領域に格納する。
【0029】
S302において、CPU71は、S301で一時記憶領域に格納した通信ログから同一の通信先を持つパケットを抽出する。この抽出は、CPU71が、通信ログ中のそれぞれのパケットが持つエスアールシーアイピー52とディーエスティーアイピー53、エスアールシーポート54、ディーエスティーポート55を調べて、同一のエスアールシーアイピー52とディーエスティーアイピー53、エスアールシーポート54、ディーエスティーポート55を持つパケットを抜き出す。そして、CPU71は、抜き出したパケットを一時記憶領域に格納する。
【0030】
S303において、CPU71は、S302で抽出した同一の通信先を持つパケットから同一のセッションに関係するパケットを抽出する。この抽出は、CPU71が、同一の通信先を持つそれぞれのパケットが持つテーシーピーフラグ58を調べて、セッションを確立する確立情報「SYN」又はセッションを強制終了する強制終了情報「RST」、セッションを切断する切断情報「FIN」を持つパケットを見つける。そして、CPU71が、同一の通信先を持つそれぞれのパケットからテーシーピーフラグが確立情報「SYN」のパケットと、テーシーピーフラグが強制終了情報「RST」又は切断情報「FIN」のパケットの間に存在するパケットを抜き出す。そして、CPU71は、抜き出したパケットを一時記憶領域に格納する。また、抜き出したパケットの数をパケット数として一時記憶領域に格納する。
【0031】
S304において、CPU71は、S303で抽出した同一のセッションに関係するパケットからHTTPメッセージを抽出する。この抽出は、CPU71が、HTTPメッセージ62の開始アドレスと最終アドレスを算出し、開始アドレスから終了アドレスの間のデータを抜き出す。開始アドレスは、14バイトにバージョン+ヘッダーレングス44とデータオフセット+テーシーピーフラグ58と1バイトを加えて算出する。終了アドレスは、14バイトにデータレングス46を加えて算出する。14バイトは、ディーエスティマック41とエスアールシーマック42、タイプ43を合計した長さである。そして、CPU71は、抜き出したパケットを一時記憶領域に格納する。
【0032】
S305において、CPU71は、S304で抽出したHTTPメッセージ62からユーアールエル63を抽出する。その方法は、以下の通りである。第一に、CPU71は、上述のパケットから、パケットの先頭が「ゲット(GET)」、「ポスト(POST)」、「ヘッド(HEAD)」のいずれかで始まるパケットを抽出する。GETは、クライアントがサーバーの持つ情報を取り出すための命令である。POSTは、クライアントからサーバーに情報を送信するための命令である。HEADは、クライアントがサーバーの持つ情報が持つ属性情報を取り出すための命令である。第二に、第一の処理で抽出したHTTP/メッセージ62からユーアールエル63を抽出する。ユーアールエル63は宛先情報と称する場合もある。そして、CPU71は、抽出したユーアールエル63を一時記憶領域に格納する。
【0033】
S306において、CPU71は、S304で抽出したHTTPメッセージ62から暗号情報を抽出する。ここでは、暗号情報を表すバリュー82を抽出する。その方法は、以下の通りである。第一に、CPU71は、上述のパケットからコンテントタイプ71がハンドシェイクプロトコル(16)であり、ハンドシェイクタイプ75が、クライアントハロー(10)であるパケットを抽出する。そして、CPU71は、抽出したパケットを一時記憶領域に格納する。第二に、CPU71は、第一の処理で抽出したHTTP/SSLデータからバリュー82を抽出する。そして、CPU71は、抽出したバリュー82を一時記憶領域に格納する。この抽出処理において、プロトコルバージョン72又はプロトコルバージョン76が、3.0(03 00)又は3.1(03 01)であることをバリュー82の抽出する条件に追加しても良い。また、バリュー82が、SSLの仕様で定義されているものであることをバリュー82の抽出する条件に追加しても良い。
【0034】
S307において、CPU71は、ユーアールエル63とバリュー82を図4の不正サーバー検知用データ752に記録する。ユーアールエル63は、S305で抽出したものである。バリュー82は、S306で抽出したものである。この記録は、バリュー82毎にユーアールエル63の種類を数えたものである。この記録は、具体的には以下のように行う。
【0035】
バリュー82が暗号方式リスト7521に存在しない場合、CPU71は、バリュー82を暗号方式リスト7521に格納する。そして、CPU71は、ユーアールエル63をその暗号方式リスト7521に対応するアクセス先7522に格納する。
【0036】
バリュー82が暗号方式リスト7521に存在する場合、CPU71は、バリュー82を暗号方式リスト7521に格納しない。そして、ユーアールエル63がその暗号方式リスト7521に対応するアクセス先7522に存在しない場合、CPU71は、ユーアールエル63をアクセス先7522に格納する。ユーアールエル63がその暗号方式リスト7521に対応するアクセス先7522に存在する場合、CPU71は、ユーアールエル63をアクセス先7522に格納しない。最後に、CPU71はS303で格納したパケット数を一つ減算する。
【0037】
S308において、CPU71は、未処理のパケットがあるかどうかを判別する。この判別は、CPU71が一時記憶領域中のパケット数が0かどうかを判別する。この判別の結果、パケット数が0の場合、CPU71はS310の処理を行う。この判別の結果、パケット数が0でない場合、S305の処理を行う。
【0038】
S310において、CPU71は、記録データを含むパケットを生成し、そのパケットを通信監視装置8に送信する。記録データは、不正サーバー検知用データ752である。CPU71は、記憶領域75から不正サーバー検知用データ752を抽出する。CPU71は、記憶領域75に格納されている通信監視装置8のIPアドレスを抽出する。CPU71は、不正サーバー検知用データ752と通信監視装置8のIPアドレスを含むパケットを生成する。CPU71は、生成したパケットを通信監視装置8に向けて送信する。監視装置8の利用者は、通知された不正サーバー検知用データ752から不正通信に関連するサーバーの候補を見つける。不正通信に関連するサーバーは、他のものに比較して種類が少ないアクセス先から特定される。
【0039】
また、記録データの出力は、CPU71が閾値以下のアクセス先に関連する不正通信を意味するメッセージを生成し、通信監視装置8に送信しても良い。ここでいう閾値は、通信装置7の製造元又は利用者が任意に設定したものである。閾値は、例えば1である。この値は、記録した情報の中で不正な通信を行っている可能性のアクセス先を区別するために採用したものである。CPU71は、通信ログからセッション開始時間と、宛先URL、クライアントIPアドレスを抽出する。セッション開始時間は、閾値以下の出現回数を検知したパケットのセッションを確立した日時である。この日時は、閾値以下の出現回数を検知したパケットの直前のテーシーピーフラグに確立情報「SYN」が設定されたパケットを受信した日時である。宛先URLとクライアントIPアドレスは、閾値以下の出現回数を検知したパケットのHTTPメッセージ62の中に存在する。CPU71は、検知理由として設定する「ある暗号方式を実装したクライアントが、特定のサイトにだけアクセスする」というデータを生成する。CPU71は、記憶領域75に格納されている通信監視装置8のIPアドレスを抽出する。CPU71は、セッション開始時間と、宛先URL、クライアントIPアドレス、検知理由を含むパケットを生成する。CPU71は、生成したパケットを通信監視装置8に向けて送信する。
【0040】
図10は、不正な通信を意味するメッセージの例を表す。セッション開始時間41は、閾値以下の出現回数を検知したパケットの直前に存在するテーシーピーフラグに確立情報「SYN」が設定されたパケットを受信した日時である。宛先URL42は、閾値以下の出現回数を検知したパケットのHTTPメッセージ62の中に存在する宛先URLを表す。クライアントIPアドレス43は、閾値以上の出現回数を検知したパケットのHTTPメッセージ62の中に存在するクライアントIPアドレスを表す。検知理由44は、不正な通信として検知した理由を表す。
【0041】
[9.不正通信検知処理のフローチャート(その2)]
図9は、通信装置7が不正通信を行うクライアントを検知する際の手順を表したフローチャートである。通信装置7のCPU71は、通信プログラム751を実行することにより、不正通信を行うクライアントを検知する処理を実現する。
【0042】
S311からS314までの処理は、図8のS301からS304までの処理と同じである。
【0043】
S315において、CPU71は、S313で抽出した同一セッションのパケット、もしくはS314で抽出したHTTPメッセージ62から送信元アドレスを抽出する。ここでは、送信元アドレスを表すエスアールシーアイピー52又はエックスフォーワーデッドフォー64を抽出する。通信装置7とクライアント6の間にプロクシ5が存在しない場合、エスアールシーアイピー52を抽出する。通信装置7とクライアント6の間にプロクシ5が存在する場合、エックスフォーワーデッドフォー64を抽出する。これは、通信装置7とクライアント6の間にプロクシ5が存在する場合、プロクシ5がアールシーアイピー52を書き換えるためである。そして、CPU71は、抽出した送信元アドレスを表すデータを一時記憶領域に格納する。
【0044】
S316の処理は、図8のS306の処理と同じである。
【0045】
S317において、CPU71は、エスアールシーアイピー52又はエックスフォーワーデッドフォー64と、バリュー82を図5の不正クライアント検知用データ753に記録する。エスアールシーアイピー52又はエックスフォーワーデッドフォー64は、S315で抽出したものである。バリュー82は、S315で抽出したものである。この記録は、バリュー82毎にエスアールシーアイピー52又はエックスフォーワーデッドフォー64の種類を数えたものである。この記録は、具体的には以下のように行う。バリュー82が暗号方式リスト7521に存在しない場合、CPU71は、バリュー82を暗号方式リスト7521に格納する。そして、CPU71は、エスアールシーアイピー52又はエックスフォーワーデッドフォー64をその暗号方式リスト7521に対応するアクセス先7522に格納する。バリュー82が暗号方式リスト7521に存在する場合、CPU71は、バリュー82を暗号方式リスト7521に格納しない。そして、エスアールシーアイピー52又はエックスフォーワーデッドフォー64がその暗号方式リスト7521に対応するアクセス先7522に存在しない場合、CPU71は、エスアールシーアイピー52又はエックスフォーワーデッドフォー64をアクセス先7522に格納する。エスアールシーアイピー52又はエックスフォーワーデッドフォー64がその暗号方式リスト7521に対応するアクセス先7522に存在する場合、CPU71は、エスアールシーアイピー52又はエックスフォーワーデッドフォー64をアクセス先7522に格納しない。
【0046】
S318の処理は、図8のS308の処理と同じである。
【0047】
S320において、CPU71は、記録データを含むパケットを生成し、そのパケットを通信監視装置8に送信する。記録データは、不正クライアント検知用データ753である。CPU71は、記憶領域75から不正サーバー検知用クライアント753を抽出する。CPU71は、記憶領域75に格納されている通信監視装置8のIPアドレスを抽出する。CPU71は、不正クライアント検知用データ753と通信監視装置8のIPアドレスを含むパケットを生成する。CPU71は、生成したパケットを通信監視装置8に向けて送信する。監視装置8の利用者は、通知された不正クライアント検知用データ753から不正通信に関連するクライアントの候補を見つける。不正通信に関連するクライアントは、他のものに比較して種類が少ないアクセス元から特定されるクラアントである。
【0048】
また、記録データの出力は、送信元アドレスの数が閾値以下の暗号方式リストに関連する不正通信を意味するメッセージを生成し、通信監視装置8に通知しても良い。ここでいう閾値は、通信装置7の製造元又は利用者が任意に設定したものである。閾値は、例えば1である。この値は、記録した情報の中で不正な通信を行っている可能性の一番高い暗号方式リストを区別するために採用したものである。このメッセージは、図8のS310のメッセージと同等のものである。異なるのは、検知理由の内容だけである。ここでいう検知理由は、ある暗号方式を実装したクライアントが、特定のクライアントにだけ存在するというものである。
【0049】
以上、本発明を実施例に基づいて説明したが、本発明は前記の実施例に限定されるものではなく、特許請求の範囲に記載した構成を変更しない限りどのようにでも実施することができる。
【図面の簡単な説明】
【0050】
【図1】不正通信の例である。
【図2】本実施形態の全体構成図である。
【図3】通信装置のハードウェア構成図である。
【図4】不正通信サーバー検知用データの構成図である。
【図5】不正通信クライアント検知用データの構成図である。
【図6】パケット構成図である。
【図7】SSLデータ構成図である。
【図8】不正通信検知処理のフローチャート(その1)である。
【図9】不正通信検知処理のフローチャート(その2)である。
【図10】不正通信を意味するメッセージの例である。
【符号の説明】
【0051】
1 サーバー
2 インターネット
3 FireWall(ファイアウォール)
4 イントラネット
5 Proxy(プロクシ)
6 クライアント
7 通信装置
8 通信監視装置

【特許請求の範囲】
【請求項1】
データを提供する複数の第一装置と該データを取得する複数の第二装置の間をネットワークを介して接続された通信装置を制御するプログラムにおいて、該通信装置に、
複数の該第二装置からのパケットから宛先情報と、暗号化方式を識別するための暗号情報を抽出し、該暗号情報毎に該宛先情報を記録する手順を実行させるプログラム。
【請求項2】
データを提供する第一装置と該データを取得する複数の第二装置の間をネットワークを介して接続された通信装置を制御するプログラムにおいて、該通信装置に、
複数の該第二装置からのパケットから送信元アドレスと、暗号化方式を識別する暗号情報を抽出し、該暗号情報毎に該送信元アドレスを記録する手順を実行させるプログラム。
【請求項3】
該暗号情報の抽出は、暗号処理を実現するプロトコルの種別と該プロトコルで使用するメッセージに基づいて行うことを特徴とする請求項1又は2記載のプログラム。
【請求項4】
該記録する手順により記録した情報を該宛先情報の数又は該送信元アドレスの数に基づいて該通信装置に接続された装置に送信することを特徴とする請求項1又は請求項2記載のプログラム。
【請求項5】
データを提供する複数の第一装置と該データを取得する複数の第二装置の間をネットワークを介して接続された通信装置において、
複数の該第二装置からのパケットから宛先情報と、暗号化方式を識別するための暗号情報を抽出し、該暗号情報毎に該宛先情報を記録する制御部を備えたことを特徴とする通信装置。
【請求項6】
データを提供する第一装置と該データを取得する複数の第二装置の間をネットワークを介して接続された通信装置において、
複数の該第二装置からのパケットから送信元アドレスと、暗号化方式を識別する暗号情報を抽出し、該暗号情報毎に該送信元アドレスを記録する制御部を備えたことを特徴とする通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−44664(P2009−44664A)
【公開日】平成21年2月26日(2009.2.26)
【国際特許分類】
【出願番号】特願2007−210018(P2007−210018)
【出願日】平成19年8月10日(2007.8.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】