JP2009049972A - 通信装置の制御方法及び通信装置 - Google Patents

通信装置の制御方法及び通信装置 Download PDF

Info

Publication number
JP2009049972A
JP2009049972A JP2008037219A JP2008037219A JP2009049972A JP 2009049972 A JP2009049972 A JP 2009049972A JP 2008037219 A JP2008037219 A JP 2008037219A JP 2008037219 A JP2008037219 A JP 2008037219A JP 2009049972 A JP2009049972 A JP 2009049972A
Authority
JP
Japan
Prior art keywords
data
packet
communication
cpu
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008037219A
Other languages
English (en)
Other versions
JP5035006B2 (ja
Inventor
Masahiro Komura
昌弘 小村
Hitoshi Mitomo
仁史 三友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008037219A priority Critical patent/JP5035006B2/ja
Publication of JP2009049972A publication Critical patent/JP2009049972A/ja
Application granted granted Critical
Publication of JP5035006B2 publication Critical patent/JP5035006B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【要約】
【課題】本発明は、受信したパケットから類推される特徴に基づいて不正通信を検知する。
【解決手段】 前記の発明が解決しようとする課題を解決するための手段として、データを提供する第一装置とデータを取得する第二装置の間をネットワークを介して接続する通信装置の制御方法において、第一装置又は第二装置からの複数のパケットから第一装置と第二装置がネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを抽出し、複数の制御パケット中の制御情報に含まれるデータ内を所定の単位で区切り、所定の単位で区切ったデータ同士を比較することを特徴とする通信装置の制御方法を提供する。
【選択図】図1

Description

本発明は、不正な通信(不正通信)を検知する技術に関する。
不正通信を実現する技術として、ウェブサーバーとクライアントの間でデータをやり取りする際に使われるハイパーテキスト トランスファー プロトコル(HTTP)を利用する方法がある。HTTPは、クライアントがウェブサーバーに通信するときに使用するため、不正通信を防ぐシステムであるファイアウォールにおいても通信が許容されている。このため、HTTPを利用することでファイアウォールを越えて不正通信が実現されるという問題がある。不正通信の手順は公開されていないため、その手順は不明である。しかし、HTTPの内容やHTTPを含むパケットの大きさに着目して不正通信かどうかを類推することができる。以下にその根拠を説明する。
HTTPを利用した正当な通信は、以下の手順で行う。先ず、クライアントとウェブサーバーは、HTTPを利用した通信(HTTP通信)を行うためのセッション(仮想通信路)を確立する。次に、クライアントとウェブサーバーは、先に確立したセッションを利用してリクエスト・メッセージとレスポンス・メッセージを一つずつ交換する。このリクエスト・メッセージには、クライントがウェブサーバーに望む処理が記載されている。このレスポンス・メッセージには、先に受信したリクエスト・メッセージに応答するための情報が記載されている。最後に、クライアントとウェブサーバーは、先に確立したセッションを切断する。HTTPには、一つのセッションで、複数のリクエスト・メッセージとレスポンス・メッセージを交換する機能(キープ アライブ機能)を持つ仕様もある。しかし、この機能は普及していないため、リクエスト・メッセージとレスポンス・メッセージは、通常、一つのセッションで一つずつ交換される。また、リクエスト・メッセージとレスポンス・メッセージは、HTTPに基づいて記載される。HTTPにおいて、両者は全く別のものとして定義されている。このため、両者に同じ内容のデータが含まれることや、両者を含むパケットが同じ大きさになることは通常有り得ない。このため、HTTPを利用した正当な通信は、一つのセッションで同じ内容のデータや同じ大きさのパケットが交換されることは通常有り得ない。
一方、HTTPを利用した不正な通信は、以下の手順で行う。この手順は、既存の通信プロトコルや通信ログから類推したものである。先ず、クライアントとウェブサーバーは、HTTPを利用した通信(HTTP通信)を行うためのセッション(仮想通信路)を確立する。次に、クライアントとウェブサーバーは、先に確立したセッションを利用して不正通信を行うためのネゴシエーションや不正通信を維持するためのハートビートを交換する。ここでいうネゴシエーションとは、先に確立したセッション上に不正通信用セッションを確立する処理を指す。この処理は、複数回の問いかけと返答によりを行う。ネゴシエーションは、HTTPに係る領域に不正通信を実現する不正通信情報を設定したパケットを用いて行われる。不正通信情報は、不正通信を制御するための制御情報を含む。この制御情報は、制御動作毎に存在し、それぞれの制御情報は、同じ内容のデータが使用される。また、ここでいうハートビートとは、一定期間パケットのやり取りがなかった場合に切断されるセッションを維持するための処理を指す。ハートビートもHTTPに係る領域に不正通信を実現する不正通信情報を設定したパケットを用いて行われる。ハートビート用のパケットは、同じ大きさである。最後に、クライアントとウェブサーバーは、先に確立したセッションを切断する。
また、不正通信を検知する技術として下記のものがある。
特開2006−279930号公報
受信したパケットから類推される特徴に基づいて不正通信を検知する。
上記の課題を解決するための第一の手段として、データを提供する第一装置とデータを取得する第二装置の間をネットワークを介して接続する通信装置の制御方法において、第一装置又は第二装置からの複数のパケットから第一装置と第二装置がネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを抽出し、複数の制御パケット中の制御情報に含まれるデータ内を所定の単位で区切り、所定の単位で区切ったデータ同士を比較することを特徴とする通信装置の制御方法を提供する。
上記の課題を解決するための第二の手段として、データを提供する第一装置とデータを取得する第二装置の間をネットワークを介して接続する通信装置の制御方法において、第一装置と第二装置がネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを取得し、取得した複数の制御パケットが同じ大きさであるかどうかを検出することを特徴とする通信装置の制御方法を提供する。
上記の課題を解決するための第三の手段として、制御パケットが同じ大きさであるかどうかの検出は、制御パケットに含まれる制御パケットの長さ情報に応じて行うことを特徴とする制御方法を提供する。
上記の課題を解決するための第四の手段として、データを提供する第一装置とデータを取得する第二装置の間をネットワークを介して接続された通信装置において、第一装置と第二装置がネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを取得し、複数の制御パケット中の制御情報に含まれるデータ内を所定の単位で区切り、所定の単位で区切ったデータ同士を比較する制御部を備えたことを特徴とする通信装置を提供する。
上記の課題を解決するための第五の手段として、データを提供する第一装置とデータを取得する第二装置の間をネットワークを介して接続する通信装置において、第一装置と第二装置がネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを取得し、取得した複数の制御パケットが同じ大きさであるかどうかを検出する制御部を備えたことを特徴とする通信装置を提供する。
受信したパケットや受信したパケットを記憶した通信ログから類推される特徴に基づいて不正通信を検知できる効果がある。また、検知した不正通信に係る情報をネットワークの管理者に通知できる効果がある。
以下に図面を用いて本発明の実施形態を説明する。先ず、本実施例が対象とする不正通信の例を説明し、その後、その不正通信を検知する方法を具体的に説明する。
[1.不正通信の例]
図1は、本実施形態が対象とする不正通信の例である。不正通信は、以下の手順で実現される。
(1)クライアント1とサーバー6は、HTTPを利用した通信(HTTP通信)を行うためのセッション(仮想通信路)を確立する。セッションの確立は、クライアント1とサーバー6の間で、通信を開始することを表すTCPフラグ(SYN)を含むパケット又は、TCPフラグ(SYN)と送信側から受信側にデータが正しく届いたことを表すTCPフラグ(ACK)を含むパケットを交換することで実現する。
(2)クライアント1とサーバー6は、ネゴシエーションを行う。一般的に、ネゴシエーションとは、複数の処理単位の間で一定の手順に従って問いかけと返答により情報の交換を行い、必要な状態を確立するための対話的な処理を指す。しかし、ここでいうネゴシエーションとは、(1)で確立したTCPのセッション上に不正通信用セッションを確立するためにクライアント1とサーバー6の間で行う対話的な処理を指す。このネゴシエーションは、HTTPで使用する領域に不正通信を実現する不正通信情報を設定したパケットを用いて行われる。不正通信情報は、不正通信を制御するための制御情報を含む。この制御情報は制御動作毎に存在する。同じ制御動作の制御情報は、同じ内容である。また、その制御情報は、HTTPで使用する領域の一部に存在する。
(3)クライアント1とサーバー6は、(2)で確立した不正通信用セッションを用いて不正な通信に係るデータを交換する。
(4)クライアント1とサーバー6は、ハートビートを行う。一般的にハートビートとは、ネットワーク上で情報処理装置が、自身が正常に稼動していることを外部に知らせる信号を指す。しかし、ここでいうハートビートとは、クライアント1とサーバー6の間で一定期間パケットのやり取りがなかった場合に切断されるセッションを維持するため処理を指す。ハートビートもHTTPで使用する領域に不正通信を実現する不正通信情報を設定したパケットを用いて行われる。ハートビートで用いられるパケットは、同じ大きさである。
(5)クライアント1とサーバー6は、(1)で確立したセッションを切断する。セッションの切断は、クライアント1とサーバー6の間で、通信を切断することを表すTCPフラグ(FIN)と送信側から受信側にデータが正しく届いたことを表すTCPフラグ(ACK)を含むパケットを交換することで実現する。
上述した不正通信の手順は、受信したパケットや受信したパケットを記憶した通信ログに基づいて類推したものである。従って、上述の(2)で説明したネゴシエーションや(4)で説明したハートビートを検出できる通信装置をクライアント1とサーバー6の間に設置することで不正通信を見つけることができる。
[2.全体構成図]
図2は、本発明の実施形態に係る通信システムの全体構成図である。本実施形態に係る通信システムは、サーバー1とインターネット2、ファイアウォール3、イントラネット4、プロクシ5、クライアント6、通信装置7、通信監視装置8で構成される。
サーバー1は、HTTPに対応した情報処理装置であり、不正通信を試みる利用者が操作するクライント6の通信先となる装置である。サーバー1は、第一装置と称することもある。インターネット2は、個々の情報処理装置を結んで情報をやり取りする世界的規模のネットワークシステムである。ファイアウォール3は、不正なパケットがイントラネット4に侵入することを防ぐシステムである。イントラネット4は、インターネット2の標準技術を用いて企業内に構築されたネットワークである。プロクシ5は、直接インターネット2に接続できないイントラネット4に接続されている情報処理装置に代わって、「代理」としてインターネット2との接続を行なう情報処理装置である。クライアント6は、HTTPに対応した情報処理装置であり、不正通信を試みる利用者が操作する装置である。クライアント6は、第二装置と称することもある。通信装置7は、サーバー1とクライアント6の間で行われる不正通信を検知するための装置である。通信装置7は、上述のネゴシエーションやハートビートを検知した場合、その旨を表す不正通信メッセージを通信監視装置8に通知する。通信監視装置8は、通信装置7が送信した不正通信通知を受信するための装置である。
[3.通信装置のハードウェア構成図]
図3は、通信装置7のハードウェア構成の一例を示すブロック図である。通信装置7は、セントラル プロセッシング ユニット(CPU)71とランダム アクセス メモリー(RAM)72、リード オンリー メモリー(ROM)73、通信部74、記憶領域75で構成する。
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が使用するデータである。
[4.ネゴシエーション検知用データの構成図]
図4は、図3のネゴシエーション検知用データ752を表す。ネゴシエーション検知用データ752は、CPU71が通信プログラム751を実行するときにRAM72上に生成する。ネゴシエーション検知用データ752の構成要素は、先頭位置7521とデータ列7522、出現回数7523である。先頭位置7521は、通信装置7が通信ログに含まれるパケットから上述のネゴシエーションの特徴を表すデータを抽出する位置を表す。データ列7522は、通信装置7が通信ログに含まれるパケットから抽出した上述のネゴシエーションの特徴を表すデータを表す。データ列7522の大きさは、通信装置7の製造元又は利用者が任意に設定できる。出現回数7523は、通信装置7が、通信ログに含まれるパケット中に存在するデータ列7522と同じデータ列を検出した回数を表す。
[5.ハートビート検知用データの構成図]
図5は、図3のハートビート検知用データ753を表す。ハートビート検知用データ753は、CPU71が通信プログラム751を実行するときにRAM72上に生成する。ハートビート検知用データ753の構成要素は、データサイズ7531と出現回数7532である。データサイズ7531は、通信装置7が通信ログに含まれるパケットから抽出した一つのパケットの大きさを表す。出現回数7532は、通信装置7が、通信ログに含まれるパケット中に存在する同じ大きさのパケットを検出した回数を表す。
[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ヘッダーを表す。
ディーエスティ マック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メッセージ62は、HTTPで使用するデータを表す。抽出HTTPメッセージ63から65は、ネゴシエーションを検知するために使用するHTTPメッセージ63の一部分を指す。
[7.不正通信検知処理のフローチャート(その1)]
図7は、通信装置7が通信ログから上述のネゴシエーションを検知する手順を表したフローチャートである。通信装置7のCPU71は、通信プログラム751を実行することにより、ネゴシエーションを検知する手順を実現する。
S301において、CPU71は、通信ログを取得する。ここでいう通信ログとは、通信装置7がサーバー1又はファイアウォール3、プロクシ5、クライアント6のいずれかから受信したパケットをそのパケットを受信した日時と共に記憶領域75に蓄積したものである。上述の日時は、図示していないが通信装置7が持つ時計管理機能から取得する。この通信ログの取得契機は、通信装置7の製造元又は利用者が任意に設定できる。CPU71は、記憶領域75から通信ログを取得し、取得した通信ログを一時記憶領域に格納する。
S302において、CPU71は、S301で一時記憶領域に格納した通信ログから同一の通信先を持つパケットを抽出する。この抽出は、CPU71が、通信ログ中のそれぞれのパケットが持つエスアールシーアイピー52とディーエスティーアイピー53、エスアールシーポート54、ディーエスティーポート55を調べて、同一のエスアールシーアイピー52とディーエスティーアイピー53、エスアールシーポート54、ディーエスティーポート55を持つパケットを抜き出す。そして、CPU71は、抜き出したパケットを一時記憶領域に格納する。
S303において、CPU71は、S302で抽出した同一の通信先を持つパケットから同一のセッションに関係するパケットを抽出する。この抽出は、CPU71が、同一の通信先を持つそれぞれのパケットが持つテーシーピーフラグ58を調べて、セッションを確立する確立情報「SYN」又はセッションを強制終了する強制終了情報「RST」、セッションを切断する切断情報「FIN」を持つパケットを見つける。そして、CPU71が、同一の通信先を持つそれぞれのパケットからテーシーピーフラグが確立情報「SYN」のパケットと、テーシーピーフラグが強制終了情報「RST」又は切断情報「FIN」のパケットの間に存在するパケットを抜き出す。そして、CPU71は、抜き出したパケットを一時記憶領域に格納する。また、抜き出したパケットの数をパケット数として一時
記憶領域に格納する。
S304において、CPU71は、S303で抽出した同一のセッションに関係するパケットからHTTPメッセージを抽出する。この抽出は、CPU71が、HTTPメッセージ62の開始アドレスと最終アドレスを算出し、開始アドレスから終了アドレスの間のデータを抜き出す。開始アドレスは、14バイトにバージョン+ヘッダーレングス44とデータオフセット+テーシーピーフラグ58と1バイトを加えて算出する。終了アドレスは、14バイトにデータレングス46を加えて算出する。14バイトは、ディーエスティ マック41とエスアールシー マック42、タイプ43を合計した長さである。そして、CPU71は、抜き出したパケットを一時記憶領域に格納する。
S305において、CPU71は、S304で抽出したHTTPメッセージ62から単位データを抽出する。単位データとは、ネゴシエーションの特徴を表すデータである。この単位データは、通信装置7の製造元又は利用者が任意に設定できる。この抽出は、単位データを抜き出す位置を変えながら行う。単位データを抜き出す位置の変更は、抽出位置情報を用いて行う。抽出位置情報は、通信装置7の製造元又は利用者が任意に設定できる。初めてこの処理を行う場合、CPU71は、HTTPメッセージ62の先頭から単位データ分の情報を抜き出す。抽出HTTPメッセージ63は、CPU71がHTTPメッセージ62の先頭から単位データを3バイトとして抜き出したデータを表す。そして、CPU71が、抜き出したデータを一時記憶領域に格納する。また、CPU71は、単位データを抜き出した位置を表す先頭位置を一時記憶領域に格納する。ここでは、先頭位置として「0」を一時記憶領域に格納する。二回目にこの処理を行う場合、CPU71は、HTTPメッセージ62の先頭に抽出位置情報を加算した位置から単位データ分の情報を抜き出す。そして、CPU71が、抜き出したデータを一時記憶領域に格納する。また、CPU71は、単位データを抜き出した位置を表す先頭位置を一時記憶領域に格納する。抽出HTTPメッセージ64は、CPU71が単位データを3バイト、抽出位置情報を1バイトとして二回目に抜き出したデータを表す。ここでは、先頭位置として「1」を一時記憶領域に格納する。以降この処理を行う場合、CPU71は、HTTPメッセージ62の先頭に先に格納した先頭情報に更に抽出位置情報を加算した位置から単位データ分の情報を抜き出す。そして、CPU71が、抜き出したデータを一時記憶領域に格納する。抽出HTTPメッセージ65は、CPU71が単位データを3バイト、抽出位置情報を1バイトとして三回目に抜き出したデータを表す。また、CPU71は、単位データを抜き出した位置を表す先頭位置を一時記憶領域に格納する。ここでは、先頭位置として「2」を一時記憶領域に格納する。
S306において、CPU71は、S305で抽出した単位データをネゴシエーション検知用データ752に格納する。この格納は、一時記憶領域中の先頭位置及び単位データと、ネゴシエーション検知用データ752を比較した結果に基づいて行う。初めてこの処理を行う場合、CPU71は、一時記憶領域中の先頭位置及び単位データをネゴシエーション検知用データ752中の先頭位置7521とデータ列7522に格納する。そして、CPU71は、上述の先頭位置及び単位データを格納した先頭位置7521とデータ列7522に対応する出現回数7523に「1」を格納する。二回目以降にこの処理を行う場合、CPU71は、一時記憶領域中の先頭位置及び単位データと、ネゴシエーション検知用データ752中の先頭位置7521とデータ列7522を比較する。この比較の結果、一時記憶領域中の先頭位置及び単位データと同じ組み合わせの先頭位置7521及びデータ列7522が存在していた場合、CPU71は、上述の同じ組み合わせの先頭位置7521及びデータ列7522に対応する出現回数7523に「1」を加算した値を格納する。この比較の結果、一時記憶領域中の先頭位置及び単位データと同じ組み合わせの先頭位置7521及びデータ列7522が存在していない場合、CPU71は、一時記憶領域中の先頭位置及び単位データをネゴシエーション検知用データ752中の先頭位置7521とデータ列7522に格納する。そして、CPU71は、上述の先頭位置及び単位データを格納した先頭位置7521とデータ列7522に対応する出現回数7523に「1」を格納する。
S307において、CPU71は、ネゴシエーション検知用データ752に格納する対象となる対象データがあるかどうかを判別する。CPU71は、S304で算出した最終アドレスから開始アドレスを引いたHTTPメッセージ長を算出する。そして、CPU71は、上述の「単位データ」の値に直前のS305で一時記憶領域に格納した「先頭位置」の値を足した格納済みデータ長として算出する。更に、CPU71が格納済みデータの長さがHTTPメッセージ62の長さを超過したかどうかを判別する。この判別の結果、格納済みデータ長がHTTPメッセージ長を超過していた場合、CPU71はS303で格納したパケット数を一つ減算した後、S308の処理を行う。この判別の結果、格納済みデータ長がHTTPメッセージ長を超過していなかった場合、CPU71はS305の処理を行う。
S308において、CPU71は、未処理のHTTPメッセージがあるかどうかを判別する。この判別は、CPU71が一時記憶領域中のパケット数が0かどうかを判別する。この判別の結果、パケット数が0の場合、CPU71はS309の処理を行う。この判別の結果、パケット数が0でない場合、S305の処理を行う。
S309において、CPU71は、S306で比較したデータの中の出現回数が閾値かどうかを判別する。この閾値は図示していないが、記憶領域75に存在する。また、この閾値は、通信装置7の製造元又は利用者が任意に設定できる。閾値は例えば2以上の値である。上述の通り、HTTPを利用した正当な通信は、一つのセッションで同じ内容のデータや同じ大きさのパケットが交換されることは通常有り得ない。このため、出現回数が2以上の値である場合、それを含むパケットは、HTTPを利用した不正な通信に関連する。しかし、まれに再送を行う通信システムがある。これに対応したのが、閾値が例えば3である。この値は、再送回数の最小単位である2よりも1大きい数を意味する。閾値3は所定の再送回数より大きい数である。再送回数は通信システムの仕様により決定される。このため、再送回数は一概には決定できない。しかし、閾値に3を設定した場合、通信システムの仕様により発生した一回の再送を不正として検出することを防ぐ効果がある。この判別の結果、出現回数が閾値以上の場合、S310の処理を行う。この判定の結果、出現回数が閾値未満の場合、処理を終了する。
S310において、CPU71は、不正通信を意味するメッセージを含むパケットを生成し、そのパケットを通信監視装置8に送信する。CPU71は、通信ログからセッション開始時間と、宛先URL、クライアントIPアドレスを抽出する。セッション開始時間は、閾値以上の出現回数を検知したパケットのセッションを確立した日時である。この日時は、閾値以上の出現回数を検知したパケットの直前のテーシーピーフラグに確立情報「SYN」が設定されたパケットを受信した日時である。宛先URLとクライアントIPアドレスは、閾値以上の出現回数を検知したパケットのHTTPメッセージ62の中に存在する。CPU71は、検知理由として設定する「同じバイト列を含む通信が繰り返される」というデータを生成する。CPU71は、記憶領域75に格納されている通信監視装置8のIPアドレスを抽出する。CPU71は、セッション開始時間と、宛先URL、クライアントIPアドレス、検知理由を含むパケットを生成する。CPU71は、生成したパケットを通信監視装置8に向けて送信する。
図9は、不正な通信を意味するメッセージの例を表す。セッション開始時間41は、閾値以上の出現回数を検知したパケットの直前に存在するテーシーピーフラグに確立情報「SYN」が設定されたパケットを受信した日時である。宛先URL42は、閾値以上の出現回数を検知したパケットのHTTPメッセージ62の中に存在する宛先URLを表す。クライアントIPアドレス43は、閾値以上の出現回数を検知したパケットのHTTPメッセージ62の中に存在するクライアントIPアドレスを表す。
[8.不正通信検知処理のフローチャート(その2)]
図8は、通信装置7が通信ログから上述のハートビートを検知する手順を表したフローチャートである。通信装置7のCPU71は、通信プログラム751を実行することにより、ハートビートを検知する手順を実現する。
S321からS323までの処理は、S301からS303までの処理と同じである。
S325において、CPU71は、S323で抽出した同一のセッションに関係するパケットからパケットの大きさを抽出する。CPU71は、同一のセッションに関係するパケットからデータレングス46を抜き出す。そして、抜き出したデータレングス46を一時記憶領域に格納する。
S326において、CPU71は、S325で抽出したデータレングス46をハートビート検知用データ753に格納する。この格納は、一時記憶領域中のデータレングス46と、ハートビート検知用データ753を比較した結果に基づいて行う。初めてこの処理を行う場合、CPU71は、一時記憶領域中のデータレングス46をハートビート検知用データ753中のデータサイズ7531に格納する。そして、CPU71は、上述のデータレングス46を格納したデータサイズ7531に対応する出現回数7523に「1」を格納する。二回目以降にこの処理を行う場合、CPU71は、一時記憶領域中のデータレングス46と、ハートビート検知用データ753中のデータサイズ7531を比較する。この比較の結果、一時記憶領域中のデータレングス46と同じ大きさのデータサイズ7531が存在していた場合、CPU71は、上述の同じ大きさのデータサイズ7531に対応する出現回数7533に「1」を加算した値を格納する。この比較の結果、一時記憶領域中のデータレングス46と同じ大きさのデータサイズ7531が存在していない場合、CPU71は、一時記憶領域中のデータレングス46をデータサイズ7531に格納する。そして、CPU71は、データレングス46を格納したデータサイズ7531に対応する出現回数7533に「1」を格納する。最後に、CPU71は、S323で一時記憶領域75に格納したパケット数を一つ減算する。
S328において、CPU71は、未処理のパケットがあるかどうかを判別する。CPU71は、一時記憶領域中のパケット数が0かどうかを判別する。この判別の結果、パケット数が0の場合、CPU71はS329の処理を行う。この判別の結果、パケット数が0でない場合、CPU71はS325の処理を行う。
S329において、CPU71は、S326で比較したデータの中の出現回数が閾値かどうかを判別する。この閾値は図示していないが、記憶領域75に存在する。また、この閾値は、通信装置7の製造元又は利用者が任意に設定できる。閾値は例えば2以上の値である。上述の通り、HTTPを利用した正当な通信は、一つのセッションで同じ内容のデータや同じ大きさのパケットが交換されることは通常有り得ない。このため、出現回数が2以上の値である場合、それを含むパケットは、HTTPを利用した不正な通信に関連する。しかし、まれに再送を行う通信システムがある。これに対応したのが、閾値が例えば3である。この値は、再送回数の最小単位である2よりも1大きい数を意味する。閾値3は所定の再送回数より大きい数である。再送回数は通信システムの仕様により決定される。このため、再送回数は一概には決定できない。しかし、閾値に3を設定した場合、通信システムの仕様により発生した一回の再送を不正として検出することを防ぐ効果がある。この判別の結果、出現回数が閾値以上の場合、S330の処理を行う。この判定の結果、出現回数が閾値未満の場合、処理を終了する。
S330において、CPU71は、不正通信を意味するメッセージを生成し、通信監視装置8に通知する。この処理は、S310と同等のものである。異なるのは、検知理由の内容だけである。ここでいう検知理由は、同じバイト数の通信が繰り返されるというものである。
〔9.先頭パケットのみを抽出する方法〕
次に、不正通信か否かを判別する処理の効率を高める方法について説明する。CPU71は、図7の処理において、通信ログの全てのパケットの中から不正なパケットを検出する処理を実行する。具体的には、CPU71は、一時記憶領域の同一のセッションに関係する全てのパケットから単位データが同じパケットを検出する。
まず、一般的なHTTPメッセージを含むパケットを送受信する場合を説明する。パケットは、MACヘッダー、TCPヘッダーおよびIPヘッダーが付加されたHTTPメッセージを有する。HTTPメッセージは、ヘッダ情報とヘッダ情報に対応するデータ情報とからなる。HTTPメッセージの先頭にヘッダ情報があり、ヘッダ情報の後にデータ情報がある。一つのパケットで送信できるデータ量は、クライアント1およびサーバ6の間で送信可能なサイズを決定する。送信側となるクライアント1あるいはサーバ6は、一つのHTTPメッセージのデータ量が一つのパケットで送信できるデータ量よりも大きい場合、HTTPメッセージを分割する。送信側となるクライアント1あるいはサーバ6は、分割したHTTPメッセージを複数のパケットによって相手先に送信する。クライアント1あるいはサーバ6が、HTTPメッセージを複数のパケットに分割した場合、HTTPメッセージのヘッダ情報は複数のパケットの内、最初のパケットに含まれる。
一方、一つの長い不正通信データを送信する場合を説明する。不正通信データは、HTTPメッセージではない、不正通信の情報であるとする。不正通信データは、例えば、アプリケーションを実行するための制御情報を有する。制御情報は、不正通信データの先頭付近にある場合が多い。不正通信データの先頭付近は、分割された複数のパケットの内、最初のパケットに含まれる。よって、単位データが同じになるか否かを検出する対象は、分割された複数のパケットの内、最初のパケットのみでよい。以降の説明では、通信データを複数のTCP/IPパケットに分割したときの最初のパケットを先頭パケットとする。先頭パケットは、ヘッダ情報を有するため、単位データを取得する対象となる。
ここで、先頭パケットを判別する原理を説明する。先頭パケットは、アックナンバー57が増加し、通信データを有するパケットである。通信データはHTTPメッセージの領域のデータである。クライアント1とサーバ6との間でTCPの接続が確立されると、それらの間にはストリーム型の通信路が形成される。ストリーム型とは、パケットが送信された順番に受信側が組み立てることができる方式である。クライアント1あるいはサーバ6からパケットを送信すると、受信側は通信データが送信された順番に読み出すことができる。
ストリーム型通信を実現するため、TCPでは、セッション内の通信データの位置を特定するためのシーケンスナンバー56およびアックナンバー57が定義される。CPUは、シーケンスナンバー56に基づいて通信データを整列する。クライアント1およびサーバ6のパケットのシーケンスナンバー56は、整数値であり、以下の状態で変化する。シーケンスナンバー56は、TCPのコネクションの開設時にランダムな初期値が与えられる。シーケンスナンバー56は、クライアント1およびサーバ6が双方向通信の場合、2種類となる。シーケンスナンバー56は、通信データの所定のデータ長ごとに増加する。
アックナンバー57は、パケットを相手に送信する際、送信側が次に送信すべきパケットのシーケンスナンバー56の値を示す。アックナンバー57は、受信したパケットのシーケンスナンバー56に受信したパケットのデータ部のバイト数を加算した値になる。アックナンバー57を含むパケットを送信する側は、アックナンバー57によって、通信データの受信を確認したデータ位置を、パケットを受信する側に知らせることが可能となる。例えば、通信データを送信した送信側は、所定時間経過しても送信した通信データに対応するシーケンスナンバー56を満たすアックナンバー57を含むパケットを検出できなかった場合に、パケットが到達しなかったと判定する。通信データを送信した送信側は、アックナンバー57によって到達の確認ができた以降の通信データを再送する。
よって、先頭パケットは、通信データを有するパケットの内、アックナンバー57が増加するパケットになる。アックナンバー57が増加するとは、検索対象のパケット群の直前のパケットのアックナンバー57と比較して増加することである。なお、クライアント1およびサーバ6は、双方向の通信の場合、それぞれ別のアックナンバー57を有する。先頭パケットは、クライアント1が送信側装置であるときのパケット群およびサーバ6が送信側装置であるときのパケット群の二種類のパケット群からそれぞれ抽出する。
図10は、パケットのシーケンスナンバー56とアックナンバー57との関係を説明する図である。図10では、TCP/IPのコネクションの開設時にシーケンスナンバー56およびアックナンバー57に設定される乱数の値は「0」であるとする。乱数の値は、受信済みの意味を持つため、TCP/IPコネクション開設時に「1」が加算される。よって、シーケンスナンバー56およびアックナンバー57の初期値は共に「1」になる。図10のDATA(データ)は、通信データを示す。通信データはHTTPメッセージのデータである。またLENは通信データの大きさを示す。
クライアント1は、2つのパケットP1およびP2をサーバ6に送信するとする。パケットP1のシーケンスナンバー56の値は、初期値「1」になる。パケットP1のデータ長は「2」である。パケットP2のシーケンスナンバー56は、パケットP1のシーケンスナンバー56の値「1」にパケットP1のデータ長の大きさ「2」を加算した値「3」になる。パケットP1は、アックナンバー57が増加し、データ長の大きさが「2」であるため、先頭パケットである。パケットP2は、パケットP1とアックナンバー57が等しいため、先頭パケットではない。
サーバ6は、パケットP1およびパケットP2を受信した後、パケットP3およびパケットP4をクライアント1に送信するとする。パケットP3のアックナンバー57の値は、パケットP2のシーケンスナンバー56の値「3」にパケットP2のデータ長の値「1」を加算した値「4」になる。パケットP3のシーケンスナンバー56は、サーバ6が初めて送信する場合、初期値「1」になる。パケットP3は、サーバ6がパケットP2までを受信したことをクライアント1に通知するためのパケットである。パケットP3はパケット2までを受信したことを通知するのみであるため、データを有さない。パケットP4のアックナンバー57の値は、パケットP2のシーケンスナンバー56の値「3」にパケットP2のデータ長の値「1」を加算した値「4」になる。パケットP4のシーケンスナンバー56は、パケットP3のシーケンスナンバー56の値「1」にパケットP3のデータ長の値「0」を加算した値「1」になる。パケットP3は、アックナンバー57が増加するが、データ長の大きさが「0」であるため、先頭パケットではない。パケットP4は、データ長の大きさが「0」ではないパケットの中で、アックナンバー57が増加する最初のパケットであるため、先頭パケットである。
クライアント1は、パケットP3およびパケットP4を受信した後、パケットP5およびパケットP6をサーバ6に送信するとする。パケットP5は、クライアント1がパケットP4までを受信したことをサーバ6に通知するためのパケットである。パケットP5は受信したことを確認するのみであるため、データを有さない。パケットP5のアックナンバー57の値は、パケットP4のシーケンスナンバー56の値「1」にパケットP4のデータ長の値「1」を加算した値「2」になる。パケットP5のシーケンスナンバー56は、パケットP2のシーケンスナンバー56の値「3」にパケットP2のデータ長の値「1」を加算した値「4」になる。パケットP6のアックナンバー57の値は、パケットP4のシーケンスナンバー56の値「1」にパケットP4のデータ長の値「1」を加算した値「2」になる。パケットP6のシーケンスナンバー56は、パケットP5のシーケンスナンバー56の値「4」にパケットP5のデータ長の値「0」を加算した値「4」になる。パケットP5は、アックナンバー57が増加するが、データ長の大きさが「0」であるため、先頭パケットではない。パケットP6は、データ長の大きさが「0」ではないパケットの中で、アックナンバー57が増加する最初のパケットであるため、先頭パケットである。
次に、先頭パケットの判別について説明する。図11は、先頭パケットの条件を説明する図である。図11は、図10のセッションのパケットのシーケンスナンバー56、アックナンバー57、及びデータ長を時間に沿って縦に並べた図である。また、クライアント1がサーバ6に送信するパケット群を左側に並べ(PACKET TO SERVER)、サーバ6がクライアント1に送信するパケット群を右側に並べた(PACKET TO CLIENT)。SEQはシーケンスナンバー56を示し、ACKはアックナンバー57を示し、LENは通信データの大きさを示す。P01、P02、P03、P1、P2、P3、P4、P5、およびP6は、パケットを示す。P01、P02、およびP03は、TCP/IPのハンドシェイク時にクライアント1とサーバ6との間で送受信するパケットである。P1、P2、P3、P4、P5、およびP6は、図10のパケットに対応する。
先頭パケットは、クライアント1からサーバ6に送信するパケットおよびサーバ6からクライアント1に送信するパケットのそれぞれから検出する。先頭パケットは、パケットに通信データを有し、アックナンバー57が増加する条件を満たす。
検出する場合、セッション内のパケット群からデータ長が「0」のパケットを検索の対象から外す。図11でデータ長が「0」のパケットはP01、P02、P2、P3、およびP5である。図11の実線の矩形で囲まれたパケットは、データ長が「0」である。
次に、残りの検索対象となったパケット群からアックナンバー57が増加するパケットを検索する。なお、アックナンバー57が初めて出たときも増加したものとみなす。図11で残りの検索対象となったパケット群からアックナンバー57が増加するパケットは、P1、P4、およびP6である。図11の実線の楕円で囲まれたパケットは、アックナンバー57が増加する。
図12は、先頭パケットを抽出する処理のフローチャートである。CPU71は、全てのパケットから分割されたパケットの先頭パケットを抽出する処理を実行する。CPU71は、例えば、図7のS303とS304の処理の間で先頭パケットを検出する処理を実行する。S301で一時記憶領域に格納され、S302で抽出された同一の通信先を持つパケットは、情報要素として、シーケンスナンバー56、アックナンバー57、およびデータレングス47を含む。CPU71は、クライアント1からサーバ6に送信するパケットの中の先頭パケットおよびサーバ6からクライアント1に送信するパケットの中の先頭パケットを、一時記憶領域に格納されたパケット群から、それぞれ検出する。
先頭パケットは以下の2の条件を満たすパケットである。第一の条件は通信データの大きさが「0」以外であることであり、第二の条件は前のパケットのアックナンバー57に対して増加するアックナンバー57を有することである。なお、初めてアックナンバー57が付されたパケットは、アックナンバー57が増加したとみなす。CPU71は、第一の条件および第二の条件を満たすパケットを抽出する。
一時領域に格納されたパケット群は、先頭パケットの検索対象である。CPU71は、パケット群内の各パケットを、サーバ6からクライアント1に送信するパケットとクライアント1からサーバ6に送信するパケットとに分類する(S401)。例えば、CPU71は、パケット内のエスアールシーアイピー52およびディーエスティーアイピー53によって分類する。以降の処理は、サーバ6からクライアント1に送信するパケットおよびクライアント1からサーバ6に送信するパケットのそれぞれについて実行するものとする。
CPU71は、データ長が「0」のパケットを先頭パケットの選択対象から除外する(S402)。S402の後、先頭パケットの検索対象となるパケット群(第二のパケット群)は、通信データの大きさが「0」以外である。次に、CPU71は、第二のパケット群からパケットを読み出す(S403)。
CPU71は、第二のパケット群から読み出したパケットのアックナンバー57は、直前に読み出したパケットのアックナンバー57から増加するか否かを判別する(S404)。
アックナンバー57が増加するパケットである場合(S404:Yes)、CPU71は先頭パケットであると判定する(S405)。S405でCPU71が先頭パケットであると判定した後、あるいはS404でCPU71がアックナンバー57の増加するパケットではないと判定した場合(S404:No)、CPU71は、第二のパケット群の全てのパケットについて判別処理が完了したか否かを判別する(S406)。
全パケットについての判別処理が完了していない場合(S406:No)、CPU71は、S403以降の処理を実行する。一方、全パケットについての判別処理が完了した場合(S406:Yes)、CPU71は、S304以降の処理を実行する。CPU71は、一時記憶領域の全パケットから抽出した先頭パケットについてS304以降の処理を実行する。S304以降の処理の対象が先頭パケットのみとなるため、CPU71が処理するパケットの数が減少し、処理時間の短縮が可能となる。
〔10.セッションのパケット数に応じて検索対象を決定する方法〕
次に、不正通信の検索対象となるセッションか否かをセッションでのパケット数で決定する方法について説明する。図7および図8の処理では、CPU71は通信ログの全てのセッションから不正なパケットを検出する処理を実行する。具体的には、CPU71は、一時記憶領域の同一のセッションに関係する全てのパケットから単位データが同じパケットを検出する。
しかし、データの送受信を行うパケットの数が少ないセッションでは、不正通信の検出率は下がる。例えば、パケットが一往復するのみのセッションでは、通信データに同じ制御データを有するパケットは存在せず、検索処理を行う必要はない。
そこで、データの送受信を行うパケット数が少ないセッションについては、不正通信か否かを判別する判別処理の対象外とする処理を行う。通信回数の少ないセッションについて判別処理を行わないため、処理対象のパケット数が減少する。この結果、CPU71で処理に要する時間が減少する効果がある。
図13は、検索対象となるセッションか否かを判別する処理のフローチャートである。CPU71は、例えば、図7のS303とS304の処理の間で検索対象となるセッションを検出する処理を実行する。CPU71はS303で抽出された同一セッション内の通信データを含むパケットの数を抽出する(S501)。CPU71は、通信データを含むか否かを、例えばデータレングス46によって判別する。
CPU71は、セッション内のパケットの数が所定値以上か否かを判別する(S502)。所定値は、「2」より大きい値になる。所定値は、CPU71の処理速度、処理対象のパケット数、検出精度に応じて適宜変更される。セッション内のパケットの数が所定値未満の場合(S502:no)、CPU71は、セッションを判別処理の対象外にする(S504)。セッション内のパケットの数が所定値以上の場合(S502:no)、CPU71は、セッションを判別処理の対象にする(S503)。CPU71は、セッションを判定対象にした場合は、図7のS304以降の処理を実行する。一方、CPU71は、セッションを判定対象外にした場合は、図7の処理を終了する。
なお、先頭パケットを検出した後で、本処理を実行しても良い。先頭パケットを検出した後の場合、CPU71は、先頭パケットの数が閾値以上か否かをS502で判別すればよい。
〔11.通信データに付加される共通の情報を検索対象から除外する方法〕
次に、通信データに付加される共通の情報を検索対象から除外する方法について説明する。通信データをカプセル化し、カプセル化した通信データにTCP/IPヘッダを付加して送信する場合がある。通信データをカプセル化するプロトコルは、例えば、セキュア・ソケット・レイヤ(Secure Socket Layer(以下SSLとする))、トランスポート・レイヤ・セキュリティ(Transport Layer Security(以下TLSとする))、ブイピーエヌ(Virtual Private Network(以下VPNとする))等がある。通信データをカプセル化するプロトコルにおいて、カプセル化した通信データにはヘッダ情報が付加される。例えば、VPN等のプロトコルにおいて、通信データにVPNであることを認識可能なヘッダ情報が付加される。VPNであることを認識可能なヘッダ情報はセッション内で同様になる。ネットワークの管理者が、不正通信ではないVPNを予め認識してある場合がある。しかし、図7のフローチャートでは、不正通信か否かを判別する単位データの抽出位置にVPNであることを示すヘッダ情報がある。この結果、CPU71は、VPNのヘッダ情報から抽出した単位データが同一になるため、不正通信であると誤って検出することになる。
一方、不正通信ではないVPNであっても、VPN内に含まれる通信データは不正通信を目的としている場合がある。
そこで、CPU71は、通信データをカプセル化したパケットでかつ不正通信データではない種類に該当するパケットについては、カプセル化するプロトコルのヘッダ情報より後の通信データを、不正通信か否かを判別する対象にする。
図14は、通信データをカプセル化したパケットの構造の説明図である。900は、通信データを示す。通信データ900はヘッダ情報901とデータ902とを有する構造である。910は、通信データ900がカプセル化されたデータである。データ910は、通信データ900に通信データをカプセル化するプロトコルによるヘッダ911が付加された状態である。なお、通信データをカプセル化するプロトコルは、通信データ900を暗号化するものもある。通信データ900が暗号化された場合は、通信データ900のヘッダ901およびデータ902は暗号化される。920および930は、データ910をTCP/IPで定められた大きさに分割し、TCP/IPヘッダ921および931を付加したパケットである。通信データをカプセル化するプロトコルによるヘッダ911および通信データ900をあわせたデータの量がTCP/IPで定められたデータの量よりも大きい場合、複数のパケットに分割される。このときパケット920は、先頭パケットになる。
パケット920は、不正通信か否かを判別する対象のパケットである。しかし、図7の処理の場合、通信データをカプセル化するプロトコルによるヘッダ911が不正通信か否かを判別するデータになる。セッション内では、通信データをカプセル化するプロトコルによるヘッダ911は、セッション内で同一となるため、不正通信か否かを誤って検出することになる。
そこで、CPU71は、通信データ900をカプセル化するプロトコルを適用したパケットか否かを判別する。そして、通信データ900をカプセル化するプロトコルの場合、CPU71は、通信データ900をカプセル化したヘッダ911より後の部分を不正通信か否かを検出する対象とする処理を行う。通信データ900をカプセル化したヘッダ911より後の部分は、通信データ900のヘッダ情報901である。
図15は、通信データをカプセル化するプロトコルを適用したパケットを検出する処理のフローチャートである。図15の処理は、例えば、図7のS303とS304の間で実行する。通信装置7は予め規約情報を有する。規約情報は、セッションにおいて、通信データをカプセル化するプロトコルのヘッダ情報である。通信データをカプセル化するプロトコルは、予め管理者が登録する。
CPU71は、S303で抽出したパケットの通信データのヘッダ部分のデータが、通信装置7が有する通信データをカプセル化するプロトコルのヘッダ情報と合致するか否かを判定する(S601)。通信装置7が有するヘッダの情報と合致する場合(S602:Yes)、CPU71は、不正通信か否かを判別するための単位データの抽出を行う領域を変更する(S603)。例えば、CPU71は、通信データをカプセル化する領域の後のデータから単位データを決定する。一方、通信装置7が有する通信データをカプセル化するプロトコルのヘッダ情報と合致しない場合(S602:No)、CPU71は、HTTPメッセージのヘッダ部分のデータを、不正通信か否かを判別する単位データに決定する。
なお、SSLおよびTLSは、インターネット上で情報を暗号化して送受信するプロトコルである。SSLおよびTLSは、通信データをカプセル化するとともに暗号化する。通信データが暗号化されると、通信データのヘッダの同一性を判別できない場合がある。そこで、CPU71は、SSLで暗号化されたパケットの場合、不正通信か否かを判別する作業を行わない判定をすることも可能である。この結果、処理対象のパケット数が減少するため、処理時間が短縮される効果がある。
以上、本発明を実施例に基づいて説明したが、本発明は前記の実施例に限定されるものではなく、特許請求の範囲に記載した構成を変更しない限りどのようにでも実施することができる。
不正通信の例である。 本実施形態の全体構成図である。 通信装置のハードウェア構成図である。 ネゴシエーション検知用データの構成図である。 ハートビート検知用データの構成図である。 パケット構成図である。 不正通信検知処理のフローチャート(その1)である。 不正通信検知処理のフローチャート(その2)である。 不正通信を意味するメッセージの例である。 パケットのシーケンスナンバー56とアックナンバー57との関係を説明する図である。 セッションのパケットのシーケンスナンバー56、アックナンバー57、及びデータ長を時間に沿って縦に並べた図である。 先頭パケットを抽出する処理のフローチャートである。 検索対象となるセッションか否かを判別する処理のフローチャートである。 通信データをカプセル化したパケットの構造の説明図である。 通信データをカプセル化するプロトコルを適用したパケットを検出する処理のフローチャートである。
符号の説明
1 サーバー
2 インターネット
3 FireWall(ファイアウォール)
4 イントラネット
5 Proxy(プロクシ)
6 クライアント
7 通信装置
8 通信監視装置

Claims (5)

  1. データを提供する第一装置と該データを取得する第二装置の間をネットワークを介して接続する通信装置の制御方法において、
    該第一装置又は該第二装置からの複数のパケットから該第一装置と該第二装置が該ネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを抽出し、
    該複数の制御パケット中の該制御情報に含まれるデータ内を所定の単位で区切り、該所定の単位で区切ったデータ同士を比較することを特徴とする通信装置の制御方法。
  2. データを提供する第一装置と該データを取得する第二装置の間をネットワークを介して接続する通信装置の制御方法において、
    該第一装置と該第二装置が該ネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを取得し、
    該取得した複数の制御パケットが同じ大きさであるかどうかを検出することを特徴とする通信装置の制御方法。
  3. 該制御パケットが同じ大きさであるかどうかの検出は、該制御パケットに含まれる該制御パケットの長さ情報に応じて行うことを特徴とする請求項2記載の制御方法。
  4. データを提供する第一装置と該データを取得する第二装置の間をネットワークを介して接続された通信装置において、
    該第一装置と該第二装置が該ネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを取得し、該複数の制御パケット中の該制御情報に含まれるデータ内を所定の単位で区切り、該所定の単位で区切ったデータ同士を比較する制御部を備えたことを特徴とする通信装置。
  5. データを提供する第一装置と該データを取得する第二装置の間をネットワークを介して接続する通信装置において、
    該第一装置と該第二装置が該ネットワーク上でデータを交換するための制御情報を含む複数の制御パケットを取得し、該取得した複数の制御パケットが同じ大きさであるかどうかを検出する制御部を備えたことを特徴とする通信装置。
JP2008037219A 2007-07-25 2008-02-19 通信装置の制御方法及び通信装置 Active JP5035006B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008037219A JP5035006B2 (ja) 2007-07-25 2008-02-19 通信装置の制御方法及び通信装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007193705 2007-07-25
JP2007193705 2007-07-25
JP2008037219A JP5035006B2 (ja) 2007-07-25 2008-02-19 通信装置の制御方法及び通信装置

Publications (2)

Publication Number Publication Date
JP2009049972A true JP2009049972A (ja) 2009-03-05
JP5035006B2 JP5035006B2 (ja) 2012-09-26

Family

ID=40501701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008037219A Active JP5035006B2 (ja) 2007-07-25 2008-02-19 通信装置の制御方法及び通信装置

Country Status (1)

Country Link
JP (1) JP5035006B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134213A (ja) * 2009-12-25 2011-07-07 Fujitsu Ltd メッセージ判別プログラム、メッセージ判別装置及びメッセージ判別方法
WO2013073448A1 (ja) * 2011-11-15 2013-05-23 独立行政法人科学技術振興機構 パケットデータ抽出装置、パケットデータ抽出装置の制御方法、制御プログラム、コンピュータ読み取り可能な記録媒体
JP2014089668A (ja) * 2012-10-31 2014-05-15 Brother Ind Ltd 通信中継プログラム、通信中継装置、及び、画像処理装置
US10091368B2 (en) 2012-09-03 2018-10-02 Brother Kogyo Kabushiki Kaisha Non-transitory machine-readable medium and communication relay apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004289298A (ja) * 2003-03-19 2004-10-14 Fujitsu Ltd データ処理装置
JP2004318742A (ja) * 2003-04-21 2004-11-11 Hitachi Ltd 分散型サービス不能攻撃を防ぐネットワークシステム
JP2006114991A (ja) * 2004-10-12 2006-04-27 Matsushita Electric Ind Co Ltd ファイアウォールシステム及びファイアウォール制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004289298A (ja) * 2003-03-19 2004-10-14 Fujitsu Ltd データ処理装置
JP2004318742A (ja) * 2003-04-21 2004-11-11 Hitachi Ltd 分散型サービス不能攻撃を防ぐネットワークシステム
JP2006114991A (ja) * 2004-10-12 2006-04-27 Matsushita Electric Ind Co Ltd ファイアウォールシステム及びファイアウォール制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134213A (ja) * 2009-12-25 2011-07-07 Fujitsu Ltd メッセージ判別プログラム、メッセージ判別装置及びメッセージ判別方法
WO2013073448A1 (ja) * 2011-11-15 2013-05-23 独立行政法人科学技術振興機構 パケットデータ抽出装置、パケットデータ抽出装置の制御方法、制御プログラム、コンピュータ読み取り可能な記録媒体
JP5536962B2 (ja) * 2011-11-15 2014-07-02 独立行政法人科学技術振興機構 パケットデータ抽出装置、パケットデータ抽出装置の制御方法、制御プログラム、コンピュータ読み取り可能な記録媒体
CN103947158A (zh) * 2011-11-15 2014-07-23 独立行政法人科学技术振兴机构 信息包数据提取装置、信息包数据提取装置的控制方法、控制程序、计算机可读取的记录介质
US9584408B2 (en) 2011-11-15 2017-02-28 Japan Science And Technology Agency Packet data extraction device, control method for packet data extraction device, and non-transitory computer-readable recording medium
US10091368B2 (en) 2012-09-03 2018-10-02 Brother Kogyo Kabushiki Kaisha Non-transitory machine-readable medium and communication relay apparatus
JP2014089668A (ja) * 2012-10-31 2014-05-15 Brother Ind Ltd 通信中継プログラム、通信中継装置、及び、画像処理装置
US9565053B2 (en) 2012-10-31 2017-02-07 Brother Kogyo Kabushiki Kaisha Non-transitory computer-readable medium, communication relay apparatus, and image processing apparatus

Also Published As

Publication number Publication date
JP5035006B2 (ja) 2012-09-26

Similar Documents

Publication Publication Date Title
US8095789B2 (en) Unauthorized communication detection method
EP1751910B1 (en) Preventing network reset denial of service attacks using embedded authentication information
KR102075228B1 (ko) 시큐리티 시스템 및 통신 제어 방법
US8984268B2 (en) Encrypted record transmission
EP2106095A1 (en) Methods and device for enforcing network access control utilizing secure packet tagging
JP4107213B2 (ja) パケット判定装置
US20090276537A1 (en) Mechanisms for role negotiation in the establishment of secure communication channels in peer-to-peer environments
EP3038314A1 (en) Ftp application layer packet filtering method, device and computer storage medium
US8490173B2 (en) Unauthorized communication detection method
US8543807B2 (en) Method and apparatus for protecting application layer in computer network system
CN103618726A (zh) 一种基于https协议实现移动数据业务识别的方法
JP5035006B2 (ja) 通信装置の制御方法及び通信装置
US20060195589A1 (en) Method and system for avoiding an unintentional time-out for communications in a client-proxy-server environment
KR101263381B1 (ko) TCP/IP네트워크에서의 서비스 거부 공격(DoS) 방어 방법 및 방어 장치
EP1702265B1 (en) Method and apparatus for preventing network reset denial of service attacks
EP2648383B1 (en) Method and device for data transmission
CN111641545B (zh) 一种隧道探测方法及装置、设备、存储介质
US7565694B2 (en) Method and apparatus for preventing network reset attacks
CN112235329A (zh) 一种识别syn报文真实性的方法、装置及网络设备
US9261948B2 (en) Image forming apparatus and control method for executing a proxy in response to a heartbeat
KR101971995B1 (ko) 보안을 위한 보안 소켓 계층 복호화 방법
US20070288645A1 (en) Method and System for Persistent and Reliable Data Transmission
JP4542053B2 (ja) パケット中継装置、パケット中継方法及びパケット中継プログラム
JP2010199943A (ja) 一方向データ通信方法および情報処理装置
KR101269552B1 (ko) Http를 이용한 통신에서 불완전한 get 요청 메시지에 의한 서비스 거부 공격을 탐지하는 방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120605

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120618

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5035006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150