(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための最良の形態】
【0016】
実施の形態では本発明を実現するための最良の形態を例示しており、
図4ではネットワーク中継装置が設置される環境を説明し、
図1ではネットワーク中継装置内の構成として実施の形態で記載する箇所について例示して説明し、
図2では
図1記載の廃棄判定部内の構成を図示し、各機能部について説明している。さらに
図3および
図5から
図10では
図2記載の廃棄判定部内の構成要素について説明している。以下に詳細に説明する。
【0017】
1.ネットワークシステム
図4は、本発明の一実施の形態によるネットワーク中継装置を含むネットワークシステムの例を示す図である。本発明の一実施の形態によるネットワーク中継装置100は、ユーザに対して種々のサービスを提供するサーバ20をインターネットなどのネットワーク10に接続する。ネットワーク10には、サービスを利用するユーザが操作する端末30が多数又は複数接続され、ネットワーク10とネットワーク中継装置100を経由してサーバ20にアクセスする。
なお、端末30には、サービスの適正の利用ではなく、サーバ20に対する攻撃を目的としたユーザも含まれる場合もある。そのため、ネットワーク中継装置100は、適正なサービス利用を目的としたユーザのトラフィックと、攻撃を目的としたユーザのトラフィックを区別し、サーバ20の処理負荷が増大してきた場合に、適正なサービス利用を目的としたユーザのトラフィックを優先的に通す制御を行う。
図4において、本実施の形態では、一例として、複数(3本以上)の回線を持ち、受信パケットの宛先を判定して受信パケットをスイッチングするネットワーク中継装置100をスイッチとして機能させている。さらに、2本の回線を持ち、片方の回線から入力された受信パケットを他方の回線に転送するネットワーク中継装置100をブリッジとして機能させている。本実施の形態で記載するスイッチとはこのブリッジを除く全てのネットワーク中継装置100を指す。なお、ルーティング処理はスイッチング処理の一部であると考えて、ルーターはスイッチに含まれるようにしてもよい。
ただし、ネットワーク中継装置100が持つ回線の数は論理的なものでも良い。
本実施の形態では、保護対象となるリソースとしてサーバ20を想定しているが、サーバ20が提供するサービスの種類によって採取できる通信履歴情報が異なり、効果も異なる。本実施の形態ではサーバ20で提供されるサービスを、
「(1)UDPなどのコネクションレス型通信を使用したサービス」、
「(2)TCPなどのコネクション型通信を使用したサービス」、
「(3)eコマースなどの用途としてサーバにログインするタイプのサービス」、
の3種類に分類して、主に「(3)eコマースなどの用途としてサーバにログインするタイプのサービス」について説明し、他の2つのサービスについては採取できる通信履歴情報の違いなどについて説明する。なお、本発明及び本実施の形態は、これらサービスに限らず、様々なサービスに適用することができる。
【0018】
2.ネットワーク中継装置
図1は、ネットワーク中継装置100の構成を示している。
図1において、ネットワーク中継装置100はスイッチ機能を実現する図示しない機能部を持ち、更にDDoS攻撃によるサービス停止攻撃を抑止するサービス停止攻撃抑止部110を持つ。ネットワーク中継装置100の入力情報はネットワーク中継装置100の受信パケットであり、出力情報はネットワーク中継装置100から発信される送信パケットである。
本実施の形態ではネットワーク中継装置100の複数ある回線のうち、回線103を、保護対象となるリソース宛パケットが経由する装置内の回線とする。
サービス停止攻撃抑止部110は、ネットワーク中継装置100内で保護対象となるリソース宛パケットが経由する装置内の回線103へ出力される受信パケット121と、ネットワーク中継装置内で保護対象となるリソース宛パケットが経由する装置内の回線103から入力された受信パケット122と、サービス停止攻撃抑止部110に情報を伝達するための制御用パケット123と、を処理対象となる3種類の受信パケットとする。つまり、回線103に対して出力される予定であるパケットが受信パケット121とし、回線103から入力されたパケットが受信パケット122とし、回線を問わずネットワーク中継装置100に対して入力された制御用パケットを制御用パケット123とする。
サービス停止攻撃抑止部110は3種類の受信パケットに対して、廃棄判定部113にて処理を実施し、転送廃棄判定結果に基づいて、転送処理もしくは廃棄処理を実施する。サービス停止攻撃抑止部110は入力情報として3種類の受信パケットを入力して、出力情報として3種類の受信パケットのうちサービス停止攻撃抑止部110で廃棄処理を実施されなかったパケットを出力する。
【0019】
図1において、更に、サービス停止攻撃抑止部110は、次の各部を備える。
・廃棄判定部113内の各種テーブルの設定などを管理する設定管理部111、
・サービス停止攻撃抑止部110内で受信パケットを制御するために3種類の受信パケットに対して独立したパケットIDを付与するパケット識別子付与部112、
・3種類の受信パケットに対して転送廃棄判定を実施する廃棄判定部113、
・3種類の受信パケットを保持し廃棄判定部113の判定結果に基づいて転送処理もしくは廃棄処理を実施する受信パケット保持部114。
ただし、本実施の形態では、制御パケット123はネットワーク中継装置100宛のパケットであり、受信パケット122は保護対象となるリソースから発信されるパケットであるため、サービス停止攻撃に使用されるものではないことから、転送廃棄判定の対象としておらず全て転送処理を実施する。本実施の形態にて、転送廃棄判定の対象となりえるのは受信パケット121のみである。
パケット識別子付与部112は、入力情報として3種の受信パケットを入力し、出力情報は3種の受信パケットと、受信パケットに付与したパケットIDと、を出力する。
廃棄判定部113は、入力情報として、3種の受信パケットのうちいずれかの受信パケットと、受信パケットに付与したパケットIDと、を入力し、出力情報は、廃棄判定部113で転送廃棄判定処理を実施された受信パケットに割当てたパケットIDと、受信パケットの廃棄判定部113での転送廃棄判定結果と、を出力する。また、廃棄判定部113は、受信パケットの転送廃棄判定のために必要とする各種テーブルの設定などは設定管理部111から実施する。
設定管理部111は、ネットワーク中継装置100の管理者や保持者等が実施する廃棄判定部113の各種テーブルの設定などを実施する。設定管理部111に対してネットワーク中継装置100の管理者等が制御を実施する際は、ネットワーク中継装置100の制御機能を実現する、図示しない、中央制御部からアクセスするものである。
廃棄判定部113は、保護対象の負荷情報、暗号の復号化鍵、ユーザのログイン情報、悪性ユーザの指定情報、などといった転送廃棄判定に必要な情報を、制御用パケットにより外部から通知される。
また、ネットワーク中継装置100の管理者等が、設定管理部111を経由して、廃棄判定部113に対して転送廃棄判定に必要な情報を設定しても良い。
受信パケット保持部114は、パケット識別子付与部112からの入力情報として、3種の受信パケットと、受信パケットに付与したパケットIDと、を入力し、一方、廃棄判定部113からの入力情報として、廃棄判定部113で転送廃棄判定処理を実施された受信パケットに付与されたパケットIDと、受信パケットの廃棄判定部113での転送廃棄判定結果と、を入力し、出力情報は、3種類の受信パケットのうちサービス停止攻撃抑止部110として廃棄処理を実施されなかったパケットを出力する。
なお、パケットを送受信するためのパケット送受信部をパケット識別子付与部112の入力側及び受信パケット保持部114の出力側に備えるようにしてもよい。
【0020】
図2は、廃棄判定部113の構成を図示している。
廃棄判定部113は、受信パケット解析判定部201、履歴管理部202、優先度判定部203、負荷判定部204、廃棄率決定部205、パケット廃棄部206を備える。廃棄判定部113は、以下に示す5段階の処理を実施して入力された受信パケットの転送廃棄判定を実施する。
第1段階として、受信パケットに対する解析処理を実施する。解析処理は二つの機能を持つ。
第一の機能として、「パケット種別の判定」がある。受信パケット解析判定部201では、廃棄判定部113に入力される受信パケットに対して解析処理を実施し、「受信パケットが保護対象となるリソースに到達する」 と、「受信パケットが保護対象となるリソースから発信された」と、「サービス停止攻撃抑止部110に情報を伝達するための制御用パケットである」と、「いずれにも該当しない」と、の4通りの「パケット種別の判定」を実施している。受信パケット解析判定部201は、例えば、パケット識別子付与部112で付与されたパケットIDに基づき、「パケット種別の判定」を実施してもよい。なお、本実施の形態にて、転送廃棄判定の対象となりえるのは、特に、「保護対象となるリソースへ送信されるパケットである」 と判定されたパケットである。
第二の機能として、受信パケットの解析処理として「解析結果の取得」がある。受信パケット解析判定部201では、受信パケットの受信時刻やパケット長、各種ヘッダ情報など、「解析結果の取得」を実施している。
第2段階として、「受信パケットに関する情報の取得」処理の結果から通信履歴を検索し、さらに「解析結果の取得」により得た情報を通信履歴として蓄積する。
履歴管理部202では、「第1段階」で実施した「パケット種別の判定」により、「保護対象となるリソースへ送信されるパケットである」、あるいは「保護対象となるリソースから発信されたパケットである」のいずれかと判定された場合は、「解析結果の取得」の処理結果からユーザを検索し、通信履歴情報を取得する。また、履歴管理部202は、受信パケットに関する情報を含めて通信履歴情報として蓄積する。
第3段階では、二つの処理を平行して実施する。
一方では、優先度判定部203において、「解析結果の取得」による受信パケットの解析結果と、受信パケットに関する通信履歴情報から、「受信パケットの優先度」を判定する。
他方では、負荷判定部204において、「解析結果の取得」による受信パケットの解析結果と受信パケットに関する通信履歴情報から、「保護対象となるリソースの負荷レベル」を判定する。
第4段階として、「受信パケットの優先度」と「保護対象となるリソースの負荷レベル」から「受信パケットの廃棄率」を決定する。本実施の形態では、廃棄率決定部205において、後述の廃棄率決定テーブルにより、廃棄率を一意に決定する。
第5段階として、「受信パケットの廃棄率」に従って転送廃棄判定を実施する。本実施の形態ではパケット廃棄部206において転送廃棄判定を実施し、転送廃棄判定結果を求め、受信パケット保持部114と履歴管理部202に対して転送廃棄判定結果を通知する。
廃棄判定部113は、これら5段階の処理において、受信パケットにパケットIDを付与して、転送廃棄判定を実現する。
【0021】
3.転送廃棄判定の詳細処理
以下、廃棄判定部113の処理について詳解する。
(1)第1段階(受信パケット解析判定部201)
第1段階として、上述のように、受信パケット解析判定部201は、廃棄判定部112に入力されたパケットに対して解析処理を実施する。この解析処理は「パケット種別の判定」と「解析結果の取得」を目的としている。
受信パケット解析判定部201は、入力情報として受信パケットとパケットIDを入力して、出力情報として受信パケットの受信時刻やパケット長、各種ヘッダ情報や制御用パケットの情報などといった解析結果とパケットIDを出力する。
図3は、受信パケット解析判定部201の受信パケットの解析処理の一例を示すフローチャートである。本実施の形態ではIPアドレスによる経路制御を実施し、通信の暗号化が実施される場合について説明する。
ステップS300では、受信パケット解析判定部201は、パケットの受信を認識し、受信パケットの受信時刻とパケット長の情報を取得し、処理がステップS310に進められる。
ステップS310では、受信パケット解析判定部201は、受信パケットに含まれるL3(ネットワーク層)ヘッダ情報を解析することで、送信元および宛先IPアドレスやIPフラグメンテーションに関する情報などを取得し、処理がステップS320に進められる。パケット長の情報はL3ヘッダ情報を用いて判定しても良いものとする。
ステップS320では、受信パケット解析判定部201は、ステップS310で取得された宛先IPアドレスから受信パケットが保護対象となるリソースに到達するかどうかを判定する。例えば、保護対象となるリソースのリストを予め記憶したテーブルを備え、受信パケット解析判定部201は、このテーブルを参照し、保護対象となるリソースに到達するかどうかを判定する。 ステップS320において、受信パケットが保護対象となるリソースに到達する場合、処理がステップS330に進められる。ステップS320において、受信パケットが保護対象となるリソースに到達しない場合、受信パケット解析判定部201は、受信パケットが保護対象となるリソースに到達しないことを情報として取得し、処理がステップS321に進められる。
ステップS321では、受信パケット解析判定部201は、ステップS310で取得された送信元IPアドレスから受信パケットが保護対象となるリソースから発信されたかどうかを判定する。 ステップS321において、受信パケットが保護対象となるリソースから発信された場合、処理がステップS330に進められる。ステップS321において、受信パケットが保護対象となるリソースから発信されていない場合、受信パケット解析判定部201は、受信パケットが保護対象となるリソースから発信されていないことを情報として取得し、処理がステップS322に進められる。
ステップS322では、受信パケット解析判定部201は、受信パケットがネットワーク中継装置100宛の制御用パケットであるか判定する。ステップS322において、受信パケットがネットワーク中継装置100宛の制御用パケットであると判定された場合、処理はステップS332へ進められる。ステップS322において、受信パケットがネットワーク中継装置100宛の制御用パケットではないと判定された場合、処理がステップS380へ進められる。
ステップS332において、受信パケット解析判定部201は、受信パケットをネットワーク中継装置100宛の制御用パケットとして解析し、保護対象の負荷情報、暗号化されたパケットの復号に使用される復号化鍵、ユーザのログイン情報、悪性ユーザの指定情報、などといった情報を取得し、処理がステップS380へ進められる。
【0022】
ステップS330では、受信パケット解析判定部201は、ステップS310で取得されたIPフラグメンテーションに関する情報から受信パケットはIPフラグメンテーションが実施されたパケットの一部であるかどうかを判定する。ステップS330において、IPフラグメンテーションを実施している場合、処理がステップS331に進められる。ステップS330において、IPフラグメンテーションを実施していない場合、処理がステップS340に進められる。
ステップS331において、受信パケット解析判定部201は、ステップS310で取得されたIPフラグメンテーションに関する情報から受信パケットがIPフラグメンテーションの先頭パケットであり受信パケット内にL4(トランスポート層)のヘッダを含むかどうかを判定する。 ステップS331において、受信パケットがIPフラグメンテーションの先頭パケットであると判定された場合、処理がステップS341に進められる。ステップS331において、受信パケットがIPフラグメンテーションの先頭パケットでないと判断された場合、処理がステップS342に進められる。
ステップS340において、受信パケット解析判定部201は、受信パケット中のL4ヘッダ情報を解析することで、送信元および宛先ポート番号やTCPにおいてはSYN、FIN、ACKなどのフラグ情報などを取得し、処理がステップS350に進められる。ステップS350において、受信パケット解析判定部201は、受信パケットが暗号化されているかどうかを判定する。ステップS350において受信パケットが暗号化されていると判定された場合、処理がステップS351に進められる。ステップS350において受信パケットが暗号化されていないと判定された場合、処理がステップS360に進められる。ステップS351において、受信パケット解析判定部201は、ステップS340で取得されたIPアドレスとポート番号を基に復号化鍵をステップS332で取得された復号化鍵から検索し、復号を実施して、処理がステップS360に進められる。ステップS360において、受信パケット解析判定部201は、受信パケットに含まれるL7ヘッダ情報を解析することで、保護対象となるリソースであるサーバ上でユーザを特定するために使用される情報やユーザのステータスをあらわす情報などサーバを保護する上で有利な情報を取得する。一般にL7ヘッダ情報は数多くのバリエーションが存在し、また個人情報など機密性の高い情報に対しては暗号化が実施されている場合があるため、ネットワーク中継装置などにおいて解析を実施する場合は高度な解析機能を持つ必要があった。本実施の形態では、保護対象となるリソースが明らかとなっており、保護対象となるリソースのネットワーク環境および提供するサービスを認識することでL7ヘッダ情報を取得するための解析機能を限定することで容易にL7ヘッダ情報を取得できる。つぎに、処理はステップS380に進められる。
【0023】
ステップS341において、受信パケット解析判定部201は、受信パケット中のL4ヘッダ情報を解析することで、送信元および宛先ポート番号やTCPにおいてはSYN、FIN、ACKなどのフラグ情報などを取得し、処理がステップS352に進められる。ステップS352において、受信パケット解析判定部201は、受信パケットが暗号化されているかどうかを判定する。ステップS352において受信パケットが暗号化されていると判定された場合、処理がステップS353に進められる。ステップS352において受信パケットが暗号化されていないと判定された場合、処理がステップS361に進められる。ステップS353において、受信パケット解析判定部201は、ステップS341で取得されたIPアドレスとポート番号を基に復号化鍵をステップS332で取得された復号化鍵から検索し、復号を実施して、処理がステップS361に進められる。ステップS361において、受信パケット解析判定部201は、受信パケットのL7ヘッダ情報を解析して情報を取得し、処理はステップS370へ進められる。ステップS370において、受信パケット解析判定部201は、ステップS341で取得したIPアドレスとIPフラグメンテーションのID情報を基に受信パケットの上位層の情報を保存し、処理はステップS380へ進められる。
ステップS342において、受信パケット解析判定部201は、ステップS310で取得したL3ヘッダ情報のうちIPアドレスとIPフラグメンテーションのID情報を基にしてL4ヘッダ情報とL7(アプリケーション層)ヘッダ情報を検索し、処理がステップS354に進められる。ステップS354において、受信パケット解析判定部201は、ステップS342で取得されたIPアドレスとIPフラグメンテーションのID情報を基に受信パケットのL4ヘッダ情報やL7ヘッダ情報などの上位層の情報が保存されているかどうかを判定する。ステップS354において、上位層の情報が保存されていた場合、処理はステップS362へ進められる。ステップS354において、上位層の情報が保存されていなかった場合、処理はステップS363へ進められる。ステップS362において、受信パケット解析判定部201は、検索結果からL4ヘッダ情報とL7ヘッダ情報を取得し、処理はステップS380へ進められる。ステップS363において、受信パケット解析判定部201は、検索結果として有効な情報を取得できなかったことを情報として取得し、処理はステップS380へ進められる。
ステップS380において、受信パケット解析判定部201は、パケット処理を終了する。
【0024】
以上説明した処理により、受信パケット解析判定部201では、受信パケットを解析することで、受信パケットが保護対象となるリソースに到達するかという情報と、受信パケットの受信時刻と、パケット長と、L3ヘッダ情報と、L4ヘッダ情報と、L7ヘッダ情報と、IPフラグメンテーション途中のパケットと判定できるもののうち以前の受信パケット受信時の上位層の情報が保存されていなかったという情報と、が取得できる。
本実施の形態では「受信パケットが保護対象となるリソースに到達する」もしくは「受信パケットが保護対象から発信された」といったいずれかの場合の判定をIPアドレスにより実施するものとするが、判定条件をIPアドレスとL4ポート番号の組合わせにしても良い。また判定条件としてMACアドレスや、ネットワーク中継装置の受信物理ポートや、VLANなどのネットワーク中継装置の受信論理ポートなどといったものを使用しても良い。
本実施の形態では、L4ヘッダ情報やL7ヘッダ情報をIPアドレスとIPフラグメンテーションのIDを基にして保存しており、更に暗号化通信の復号化鍵についてもIPアドレスとL4ポート番号を基にして保存しているが、これらの情報については異なった方法で保存しても良いものとする。
図3のパケット処理は「(3)eコマースなどの用途としてサーバにログインするタイプのサービス」を想定して記載したものであり、「(1)UDPなどのコネクションレス型通信を使用したサービス」や「(2)TCPなどのコネクション型通信を使用したサービス」においては
図3と異なった処理を採用しても良い。
【0025】
(2)第2段階(履歴管理部202)
第2段階として、履歴管理部202は、「受信パケットが保護対象となるリソースに到達する」もしくは「受信パケットが保護対象となるリソースから発信された」といったいずれかの場合に、受信パケットに関して通信履歴情報の管理を実施する。
履歴管理部202は、受信パケット解析判定部201からの入力情報として、受信パケットの解析結果と、パケットIDとを入力し、一方、パケット廃棄部206からの入力情報として、転送廃棄判定結果と、受信パケットのパケットIDと、を入力し、出力情報として、受信パケットの解析結果と、受信パケットに関する通信履歴情報と、受信パケットのパケットIDと、を出力する。
履歴管理部202は、受信パケットのL3ヘッダ情報とL4ヘッダ情報のうちIPアドレスとポート番号を使用してユーザ毎の通信履歴情報を検索し、取得する。また、履歴管理部202は、通信履歴情報を作成し、記録する。履歴管理部202は、その際には、以下に示すような各情報の取得や集計、各カウンタ値等の増減等を適宜実行してもよい。
【0026】
図5は、履歴管理部202において「受信パケットが保護対象となるリソースに到達する」場合の受信パケットに関する通信履歴情報を検索する時の処理を例示している。履歴管理部202は、履歴管理機能に加え、通信履歴検索部501、通信履歴情報メモリ502、履歴情報更新部503を備える。
履歴管理部202は、通信履歴情報エントリの「検索処理」、「更新(記録)処理」、「追加(記録)処理」、「削除処理」を実施する。履歴管理部202は、パケット受信時に全てのパケットに対して通信履歴情報エントリの「検索処理」を実施し、パケットの転送廃棄判定の結果に基づいて、通信履歴情報エントリの「更新(記録)処理」あるいは「追加(記録)処理」を実施する。また、履歴管理部202は、エントリ数が増加してきた場合には通信履歴情報エントリの「削除処理」を実施する。
「受信パケットが保護対象となるリソースに到達する」場合、履歴管理部202は、受信パケット解析判定部201において実施した受信パケットの解析結果から、「受信パケットが保護対象となるリソースに到達する」こと、受信時刻、パケット長、およびヘッダ情報を取得している。履歴管理部202は、受信パケットのヘッダ情報から、送信元IPアドレスと送信元ポート番号等を使用してユーザを識別又は特定し、送信元IPアドレスと送信元ポート番号等によりユーザ毎の通信履歴情報を検索してユーザ毎の通信履歴情報を取得又は作成する。
ここで、例えば、通信履歴検索部501は、通信履歴情報メモリ502を参照し、送信元IPアドレスと送信元ポート番号から当該ユーザ通信履歴情報の保存アドレスを検索する。通信履歴検索部501は、通信履歴情報メモリ502上の保存アドレスを参照することで当該ユーザ通信履歴情報を取得する。
なお、ユーザ通信履歴情報は、通信履歴情報の例(後述、
図8の通信履歴情報504及び
図9の通信履歴情報800等参照)又はこのような通信履歴情報の例とその他の情報を合わせたものとすることができる。
なお、履歴管理部202は、特定の集合単位で記録する通信履歴情報として、送信元IPアドレスやL7ヘッダ情報として含まれるユーザIDなどといった単位で通信履歴情報を作成、記録しても良い。また、履歴管理部202(通信履歴検索部501)は、受信パケットのL3ヘッダ情報から送信元IPアドレスを使用して送信元IPアドレス毎の通信履歴情報を検索し、送信元IPアドレス毎の通信履歴情報を取得するようにしてもよい。また、履歴管理部202(通信履歴検索部501)は、受信パケットのL7ヘッダ情報からユーザIDなどのユーザを識別する情報を使用してユーザID毎の通信履歴情報を検索し、ユーザID毎の通信履歴情報を取得するようにしてもよい。
履歴管理部202は、保護対象となるリソースに到達する全て(又は複数)の通信につい
て記録する通信履歴情報として、保護対象となるリソース宛である通信の通信履歴情報を
取得又は作成する。
【0027】
図8に、通信履歴情報として記録する情報504の例を示す。
一例として、図示の通信履歴情報504では、「受信パケットが保護対象となるリソースに到達する」パケットに関する検索条件として、送信元IPアドレスと、送信元ポート番号と、L7ユーザIDと、を持ち、パケットに関する検索結果として、ユーザ単位の通信量カウンタ群と、L7ユーザID単位の通信量カウンタ群と、保護対象となるリソースに到達する全ての通信に関する通信量カウンタ群と、受信時刻情報と、有効受信時刻情報と、発信時刻情報と、コネクション確立中の判定情報と、ログイン中の判定情報と、通信履歴情報の保存アドレスと、を持つ。
また、履歴管理部202は、通信履歴情報を検索した際に、既存の通信履歴情報が存在しない場合には新規エントリとして通信履歴情報を追加することができ、このとき、通信履歴情報に対して、保存アドレスを適宜設定することができる。また、通信履歴情報のエントリ数が増加してきた場合には、検索頻度が低いエントリや判定した受信パケットの優先度が初期値に近いものを優先して削除しても良い。
なお、保存アドレスの割振りに関しては「1アドレスに対して1エントリ」としてもよい。ただし、通信履歴情報に関しても「ユーザ単位」、「特定の集合単位」、「保護対象となるリソースに到達する全ての通信」単位といった分類を持つことができ、これら3種の分類に関しては同時に処理するようにしてもよい。
図10に、ユーザ単位に保存アドレスを記録するテーブルの例を示す。履歴管理部202は、通信履歴情報を作成又は記録する際に、保存アドレスを適宜設定して、ユーザを識別する情報(検索条件)と、保存アドレスとの対応を図示のテーブルに保存するようにしてもよい。履歴管理部202は、通信履歴情報を検索する際、送信元IPアドレスと送信元ポート番号等に基づきこのテーブルを参照し、既に記録されている保存アドレスを検索する。
【0028】
「受信パケットが保護対象となるリソースから発信された」場合は、履歴管理部202(通信履歴検索部501)は、受信パケットに関する通信履歴情報を検索する際に、宛先IPアドレスと宛先ポート番号を使用してユーザ毎の通信履歴情報を検索してユーザ毎の通信履歴情報を取得する。
履歴情報更新部503は、通信履歴情報メモリ502上の通信履歴情報を更新する。履歴管理部202が取得した各通信履歴情報に対して、履歴管理部202(履歴情報更新部503)は受信パケットの解析結果と受信パケットの転送廃棄判定結果を考慮して更新処理を実施する。受信パケットがパケットの転送廃棄判定の結果で廃棄する場合、各通信履歴情報に受信パケット分の通信量情報などを含めなくても良い。ユーザ毎の通信履歴においては通信状態においても情報を更新しないもしくは通信状態の情報が無効であることを通信履歴情報として記録しても良い。パケットの転送廃棄判定に使用した受信パケットの優先度をユーザ毎の通信履歴情報に記録しても良い。
【0029】
次に、通信履歴情報として記録する情報を例示する。
「(3)eコマースなどの用途としてサーバにログインするタイプのサービス」では、以下の項目のうちいずれかひとつ又は複数又は全部を通信履歴情報として記録することができる。
前回判定した受信パケットの優先度と、
保護対象となるリソースから通知される優先ユーザの判定通知と、
保護対象となるリソースから通知される優良ユーザ、悪質ユーザの判定通知と、
SSL/TLSといった暗号通信やTCPといったコネクション型通信におけるコネクション確立中の判定情報と、
SSL/TLSといった暗号通信やTCPといったコネクション型通信におけるコネクション確立途中のステータス情報などといった通信状態の情報と、
パケット廃棄などによりステータス情報などといった通信状態の情報が無効となったことを示す情報と、
保護対象となるリソースから通知されるユーザのログイン中の判定情報と、
「受信パケットが保護対象となるリソースに到達する」パケットを受信した時刻を記録する受信時刻情報と、
「受信パケットが保護対象となるリソースに到達する」パケットのうち転送処理が実施されたパケットを受信した時刻を記録する有効受信時刻情報と、
「受信パケットが保護対象となるリソースから発信された」パケットを受信した時刻を記録する発信時刻情報と、
パケット数やバイト数といった通信量を計測する通信量カウンタと、
コネクション型通信におけるコネクションの確立回数を計測するコネクション確立回数カウンタと、
保護対象となるリソースが提供していないサービスに対する通信や、
コネクション型通信において順序処理に違反する通信や、
IPフラグメンテーションの対象パケットにおいてフラグメントオフセットの制御を違反する通信や、
特定のサービスやデータパターンにより正常な通信ではないと判定される通信や、
といった通信を計測する異常通信量カウンタ、
【0030】
なお、
図9に、通信履歴情報として記録する情報800の例を示す。
ここで、通信履歴情報として記録する情報は、
「(3)eコマースなどの用途としてサーバにログインするタイプのサービス」において記録することを想定しており、
「(2)TCPなどのコネクション型通信を使用したサービス」においては、
上述のユーザのログイン中の判定情報と、
が記録できない。
また、「(1)UDPなどのコネクションレス型通信を使用したサービス」においては、
上述のコネクション確立中の判定情報と、
上述のコネクション確立途中のステータス情報などといった通信状態の情報と、
上述の通信状態の情報が無効となったことを示す情報と、
上述のユーザのログイン中の判定情報と、
上述のコネクション確立回数カウンタと、
が記録できない。
【0031】
上述の通信量カウンタと、コネクション確立回数カウンタと、異常通信量カウンタと、に関しては計測時間が異なる計測カウンタを複数持つことで時間毎の数値の変動を記録するものとしても良い。
次に複数の計測カウンタを持つ場合の処理を例示する。
第一に、5分間隔で計測するカウンタを13個持つ。5分間隔で計測するカウンタは受信パケットの受信時刻に基づいて加算対象となるカウンタを変更する。これにより現在の5分間と最小で60分前までの情報を5分間隔で記録できる。
第二に、60分間隔で計測するカウンタを6個持つ。上述の5分間隔で計測するカウンタのうち現在の5分間を計測しているカウンタを除く12個のカウンタは60分間分の計測を完了しているため、60分毎に区切った時間で12個の5分間隔の計測カウンタの合計を記録することで60分間隔の情報を記録できる。
第三に、6時間間隔で計測するカウンタを4個持つ。上述の60分間隔で計測する6個のカウンタは6時間分の計測を完了しているため、6時間毎に区切った時間で6個の60分間隔の計測カウンタの合計を記録することで6時間間隔の情報を記録できる。
第四に、24時間間隔で計測するカウンタを7個持つ。上述の6時間間隔で計測する4個のカウンタは24時間分の計測を完了しているため、24時間毎に区切った時間で4個の6時間間隔の計測カウンタの合計を記録することで24時間間隔の情報を記録できる。同様にして、更に長い時間間隔の記録をとっても良い。
上述の第一から第四までの処理により、最大で過去7日間の情報を記録することが出来る。
また、上述の5分間隔の計測カウンタ以外においても、現在の時間間隔を計測するようにしても良い。
受信パケットが本ネットワーク中継装置宛の制御用パケットであり、特定のユーザの優先ユーザ判定結果やログイン中の判定結果などといった情報が含まれている場合はユーザ毎の通信履歴情報を検索し、通信履歴情報を更新しても良い。
このようにして履歴管理部202では受信パケットの情報に基づいて通信履歴情報を検索し、必要な場合は通信履歴情報を更新する。
【0032】
(3)第3段階(優先度判定部203、負荷判定部204)
第3段階の優先度判定として、優先度判定部203は、履歴管理部202で取得した受信パケットに関する通信履歴情報を基に受信パケットの優先度を判定する。
さらに優先度判定部203は、履歴管理部202で取得した受信パケットに関する通信履歴情報と受信パケット解析判定部201において実施した受信パケットの解析結果を組合わせて受信パケットの優先度を判定しても良い。
優先度判定部203では、入力情報として、受信パケット解析判定部201において実施した受信パケットの解析結果から取得した情報と、受信パケットの通信履歴情報と、受信パケットのパケットIDと、を入力し、出力情報として、受信パケットの優先度と、受信パケットのパケットIDと、を出力する。
次に優先度判定部203が実施する処理について説明する。
優先度の判定は受信パケットに関係する通信履歴情報とパケットの情報を判定条件を持つ判定式に入力して、判定式の判定結果が成立するか成立しないかによって判定するものとする。
判定式において、判定結果が成立した場合を「1」とし、判定結果が成立しない場合を「0」として、判定結果の重要度との積をとり、これを判定値とする。判定結果が成立しない場合には判定値は「0」となる。優先度は優先度の初期値に判定値を加算するものとする。ただし判定結果の重要度は負の値をとる場合もあるため、優先度の値は高くとも低くともなる。
さらに、受信パケットの優先度を判定する際に、複数の判定式を使用しても良い。
複数の判定式を使用した場合においても、判定結果の重要度はそれぞれ任意の値を設定して良い。
判定結果の重要度に関してはパケットの転送中においても変更処理を実施しても良い。優先度の判定について、通信履歴情報として保存された前回判定した受信パケットの優先度を基にして判定結果の重要度を加算して計算しても良いものとする。
【0033】
次に判定式として重要度が負の値を示すものを例示する。
・5分間隔で計測する通信量カウンタのうち、現在カウントしている通信量カウンタの値が他のカウンタが示す値の200%よりも大きくなった。
・5分間隔で計測する通信量カウンタのうち、現在カウントしている通信量カウンタの値が他のカウンタが示す値の500%よりも大きくなった。
・5分間隔で計測する通信量カウンタのうち、現在カウントしている通信量カウンタの値が60分間隔で計測する他のカウンタの値の2400%よりも大きくなった。
・5分間隔で計測する通信量カウンタのうち、現在カウントしている通信量カウンタの値がネットワーク中継装置内で設定した閾値よりも大きくなった。
・5分間隔で計測するコネクション確立回数カウンタのうち、現在カウントしているコネクション確立回数カウンタの値が他のカウンタが示す値の200%よりも大きくなった。
・パケットを受信した時刻を記録する受信時刻情報と通信履歴情報から取得した受信時刻情報の差が閾値よりも大きい。
・パケットを受信した時刻を記録する受信時刻情報と通信履歴情報から取得した受信時刻情報の差が閾値よりも小さい。
・受信パケットが持つL7ヘッダ情報として取得できるユーザIDから検索したユーザID毎の通信履歴情報の5分間隔で計測する現在の通信量カウンタの値が保護対象となるリソース宛である通信の通信履歴情報の5分間隔で計測する現在の通信量カウンタの値の50%よりも大きくなった。
【0034】
さらに、各計測カウンタを比較する場合に用いる閾値や比率においては複数の値を持ってそれぞれに判定しても良いものとする。
本実施の形態では、ユーザ毎の通信履歴情報のうち通信量カウンタ同士を比較することで、DDoS攻撃が発生している場合において、攻撃に参加しているユーザを単独の通信量が小さい場合においても推定することが出来ることを特徴とする。
次に判定式として重要度が正の値を示すものを例示する。
・通信履歴情報から受信パケットを発信しているユーザと保護対象となるリソースはコネクションを確立中であることが分かった。
・通信履歴情報から受信パケットを発信しているユーザは保護対象となるリソースにログイン中であることが分かった。
・通信履歴情報から受信パケットを発信しているユーザは優先ユーザであることが分かった。
【0035】
図6は、優先度判定部の受信パケットの優先度判定の一例を示している。
図6では、判定式(1)−(N)601、判定結果の重要度(1)−(N)602、優先度の初期値603、加算器604が図示されている。「優先度を決定する際の判定結果の重要度」である判定結果の重要度(1)−(N)602と、優先度の初期値603と、はネットワーク中継装置の管理者が設定管理部111を介して、パケットの転送中においても変更処理を実施しても良いものとする。通信情報履歴およびパケットの情報が判定式(1)−(N)601に入力される。判定式(1)−(N)601と判定結果の重要度(1)−(N)602から判定値が算出される。加算器604において、優先度の初期値603と判定値を加算した値が受信パケットの優先度として出力される。
本実施の形態では、一例として、判定式を5個使用し、優先度を100段階とし、優先度の初期値603を「50」として以下で解説する。優先度の判定においては、通信履歴情報として、送信元IPアドレスと送信元ポート番号から決定するユーザ毎の通信履歴情報と、L7ヘッダ情報から取得するユーザID毎の通信履歴情報と、保護対象となるリソース宛である通信の通信履歴情報と、を使用する。
判定式(1)として次を使用する。「5分間隔で計測する通信量カウンタのうち、現在カウントしている通信量カウンタの値が他のカウンタが示す値の200%よりも大きくなった。」さらに、判定結果の重要度(1)を「−10」とする。
判定式(2)として次を使用する。「5分間隔で計測する通信量カウンタのうち、現在カウントしている通信量カウンタの値が他のカウンタが示す値の500%よりも大きくなった。」さらに、判定結果の重要度(2)を「−10」とする。
判定式(3)として次を使用する。「受信パケットが持つL7ヘッダ情報として取得できるユーザIDから検索したユーザID毎の通信履歴情報の5分間隔で計測する現在の通信量カウンタの値が保護対象となるリソース宛である通信の通信履歴情報の5分間隔で計測する現在の通信量カウンタの値の50%よりも大きくなった。」さらに、判定結果の重要度(3)を「−60」とする。
判定式(4)として次を使用する。「通信履歴情報から受信パケットを発信しているユーザと保護対象となるリソースはコネクションを確立中であることが分かった。」さらに、判定結果の重要度(4)を「+5」とする。
判定式(5)として次を使用する。「通信履歴情報から受信パケットを発信しているユーザは保護対象となるリソースにログイン中であることが分かった。」さらに、判定結果の重要度(5)を「+20」とする。
ここで、判定式(1)、(3)、(4)、(5)が成立した場合、判定値(1)は「−10」となり、判定値(2)は「0」となり、判定値(3)は「−60」となり、判定値(4)は「+5」となり、判定値(5)は「+20」となり、優先度の初期値603が「50」であることから、受信パケットの優先度はこれらを加算器604において加算して「5」となる。
このようにして優先度判定部203では、判定式の判定結果と判定結果の重要度から判定値を求めて、優先度の初期値に判定値を加算することで受信パケットの優先度を判定する。
【0036】
第3段階の負荷レベル判定として、負荷判定部204が実施する処理について説明する。負荷判定部204、は保護対象となるリソースの負荷状態を判定する。負荷判定部204では、入力情報として、受信パケット解析判定部201において実施した受信パケットの解析結果から取得した情報と、受信パケットの通信履歴情報と、受信パケットのパケットIDと、を入力し、出力情報として、負荷レベルを出力する。
さらに負荷判定部204では、入力情報に加えて、現在および過去の負荷レベルの情報を保持し、参照することで負荷レベルを判定する。
以下に具体的な負荷判定方法として例を6例示す。
第1例:応答速度判定法について
保護対象リソース発パケットを受信した際にユーザを判定し、「保護対象リソース発パケット受信時刻」と、保護対象リソース発パケットのユーザについて記録されているユーザ毎の通信履歴上の「保護対象リソース宛パケット最終受信時刻」と、を比較し受信時刻の差分で判定する。この判定には1つ以上の閾値を持ち、閾値を超えていた場合は負荷が高い状態と判定し、それぞれの判定結果に設定された重要度にあわせて負荷を判定する。
第2例:コネクション数判定法について
保護対象リソース宛の受信パケット121と、保護対象リソース発の受信パケット122と、を受信する都度にユーザが特定された状態で履歴管理部から出力される通信履歴を基に保護対象となるリソースのコネクション数を判定する。この判定には1つ以上の閾値を持ち、閾値を超えていた場合はそれぞれの判定結果に設定された重要度にあわせて負荷を判定する。
第3例:転送パケット数判定法について
保護対象リソース宛パケットおよび保護対象リソース発パケットのうち少なくとも一方の数を時間毎に計測して転送パケット数を判定する。この判定には1つ以上の閾値を持ち、閾値を超えていた場合はそれぞれの判定結果に設定された重要度にあわせて負荷を判定する。
第4例:管理サーバからの負荷通知法について
ネットワーク中継装置の内部あるいは外部に「保護対象となるリソースの負荷状態を判定する管理サーバ」を持ち、管理サーバから負荷情報を通知する制御用パケットをネットワーク中継装置に転送して制御用パケットの解析結果から負荷を通知され判定する。
なお、管理サーバは保護対象となるリソースの内部に持っても良い。
さらに、上述の第1例から第3例の判定例は第4例の管理サーバにて判定を実施して制御用パケットを使用して通知しても良いものとする。
第5例:負荷レベル記録法について
負荷判定部204では後段の廃棄率決定部に対して負荷レベルを出力し続けている。
本負荷判定方法では、他の負荷判定方法の判定結果に加えて現在の負荷レベルを加味することで、負荷レベルが高い状態でなお保護対象となるリソースの負荷が高い状態が続いていた場合に、さらに高い負荷レベルを判定する。
第6例:負荷レベル設定法について
第1例から第5例の負荷判定方法と異なり、ネットワーク中継装置の管理者が設定管理部を経由して直接設定するものである。
さらに負荷判定部204は、優先度判定部203の「優先度を決定する際の判定結果の重要度」と同様に、これら判定結果に対する重要度を設定可能な負荷判定重要度テーブルを持ち、テーブル上の値は「負荷レベルを決定する際の判定結果の重要度」としてネットワーク中継装置運用中においても負荷判定の規則を変更できるものとする。負荷判定重要度テーブルはネットワーク中継装置の管理者が設定管理部111を介して、パケットの転送中においても変更処理を実施しても良いものとする。
【0037】
(4)第4段階(廃棄率決定部205)
第4段階として、廃棄率決定部205が実施する処理について説明する。
廃棄率決定部205は、優先度判定部203が判定した保護対象リソース宛受信パケットの優先度と、負荷判定部204が判定した保護対象となるリソースの負荷状態(負荷レベル)を基に、受信パケットの廃棄率を決定する。廃棄率決定部205は、優先度判定部203からの入力情報として、受信パケットの優先度と、受信パケットのパケットIDと、負荷判定部204からの入力情報として、負荷レベルと、を入力し、出力情報として、受信パケットの廃棄率と、受信パケットのパケットIDと、を出力する。
廃棄率決定部205では、保護対象リソース宛受信パケットの優先度と保護対象となるリソースの負荷状態から一意に廃棄率を決定するために廃棄率決定テーブルを持つ。
図7に、優先度判定と負荷レベルをそれぞれ100段階とした場合の廃棄率決定テーブル700を例示する。なお廃棄率決定テーブル700上の値は「優先度と廃棄レベルから決定する廃棄率」として任意に設定できるものとする。なお、「優先度と廃棄レベルから決定する廃棄率」は、一例として、百分率で表記している。さらに、廃棄率決定テーブル700上の値は、ネットワーク中継装置の管理者が設定管理部111を介して、パケットの転送中においても変更処理を実施しても良いものとする。
【0038】
(5)第5段階(パケット廃棄部206)
第5段階として、パケット廃棄部206が実施する処理について説明する。
パケット廃棄部206は、廃棄率決定部205が決定した受信パケットの廃棄率に基づいて、パケットの転送廃棄判定を実施する。パケット廃棄部206は、入力情報として、受信パケットの廃棄率と、受信パケットのパケットIDと、を入力し、出力情報として、受信パケットの転送廃棄判定結果と、受信パケットのパケットIDと、を出力する。
以上の5段階の処理を実施して、廃棄判定部113は、受信パケットの転送廃棄判定を実施する。廃棄判定部113は受信パケットにおいてパケットIDを付加した状態で処理しているため、受信パケット保持部101は受信パケットの転送廃棄判定結果と受信パケットのパケットIDを基にして、保持されている受信パケットに対して転送処理もしくは廃棄処理を実施する。
【0039】
4.補足
以上のように、本実施の形態では、廃棄判定部113内の履歴管理部202において保護対象となるリソースに関する送信受信パケットをユーザ毎に管理し、利用頻度が高いユーザに対してはステートフルに計測して通信履歴情報を記録し、また優先度判定部203において通信履歴情報を基に受信パケット単位で通信の優先度を判定する。さらに負荷判定部204において保護対象となるリソースの負荷レベルを判定し、受信パケット単位で判定した通信の優先度と組合わせることで、保護対象となるリソースの負荷が低い状態では攻撃者を含む優先度の低いユーザにおいても転送処理を実施し、保護対象となるリソースの負荷が高い状態では記録により蓄積された通信履歴と受信パケットから、ユーザ単位で通信の優先度を判定し、優先度の低い通信を高い比率で廃棄することができる。
優先度の高い通信は高い比率で転送され、優先度の低い通信を優先的に廃棄することで保護対象となるリソースの負荷を軽減する。これを保護対象となるリソースのサービス停止状態を発生させないレベルで実施する。これに加えて「優先度を決定する際の判定結果の重要度」や「負荷レベルを決定する際の判定結果の重要度」および「優先度と廃棄レベルから決定する廃棄率」をパケットの転送中においても変更処理を実施可能な機構を開発することで、未知のDDoS攻撃に対しても対処する方法が実現する。
「従来技術では進化するDDoS攻撃に対して十分な対処法が存在しないという課題」を解決し、「従来技術で頻繁に発生する攻撃パターンの判定に伴って発生する、「正常な」トラフィックを誤って攻撃パターンと判定して悪影響を与える課題」についても解決する、効果がある。
また、「DDoS攻撃の分散性に基づいて膨大な数の送信元が攻撃トラフィックを一斉に発生させた場合の対処法として十分な手法が存在しないという課題」においても解決する効果がある。
【0040】
5.本発明の他の実施形態
図11から
図20を用いて本発明の他の実施形態を説明する。
図11は、本発明の他の実施形態によるネットワーク中継装置100の構成を示す図である。図中、ネットワーク中継装置100は、本発明の他の実施形態による一つ以上のサービス停止攻撃抑止部110、ネットワーク中継装置100全体の制御を行う装置制御部1001、一つ以上の回線1004と接続されてネットワーク上の他の装置との間でパケットの送受信を行うインタフェース部1002、一つ以上のインタフェース部1002およびサービス停止攻撃抑止部との間でパケットの転送処理を行う中継処理部1003、管理者がネットワーク中継装置100の設定や運用の管理を行うための入出力装置1005を備える。なお、
図11の構成例ではインタフェース部1002、サービス停止攻撃抑止部110、回線1004はそれぞれ複数存在する。以降の説明でこれらを区別する必要がある場合、二つのインタフェース部1002は参照符号1002−1と1002−2、二つのサービス停止攻撃抑止部110は参照符号110−1と110−2、三つの回線1004は参照符号1004−1と1004−2と1004−3という記号により区別する。また、図中の実線矢印は各構成要素間でパケットがその方向に流すための信号線で接続されていることを示し、破線は各構成要素間でパケット以外の制御情報などを流すための信号線で接続されていることを示している。
図12は、ネットワーク中継装置100の構成要素である中継処理部1003の構成を示す図である。図中、中継処理部1003は、インタフェース部1002とサービス停止攻撃抑止部110との間でパケットの送受信を行うパケット送受信部1032、前記パケットの転送先となるインタフェース部1002またはサービス停止攻撃抑止部110を決定する処理を行う転送先決定部1033、転送先決定部1033で転送先が決められた前記パケットに対してQoS制御を行うためのQoS制御部1034、中継処理部の動作に必要な各種設定テーブルを格納するためのメモリ1038、メモリ1038内の各テーブルへの設定情報書き込み読み出しを行うテーブル設定管理部1031を備える。メモリ1038には、保護対象となるリソース宛のパケットを識別するために必要な情報を格納する保護対象情報テーブル1036、回線1004間でパケットの転送先を決定するために必要な情報を格納する経路情報テーブル1037、QoS制御に関する情報を格納するQoS設定テーブル1038が含まれる。なお、図中の実線矢印と破線の意味は
図11で説明したものと同様である。
図13は、ネットワーク中継装置100の構成要素であるサービス停止攻撃抑止部110の構成を示す図である。図中、サービス停止攻撃抑止部110は、中継処理部1003との間でパケットを送受信するためのパケット送受信部115、パケット送受信部115で受信したパケットに内部処理用の識別子を付与するパケット識別子付与部112、前記パケットを廃棄処理するかどうかを決定する廃棄判定部113、前記パケットの廃棄判定結果が廃棄判定部113から出力されるまでの間前記パケットを一時的に保持するための受信パケット保持部114、廃棄判定部113が必要とする情報の設定管理などを行う設定管理部111を備える。これらの構成要素のうち、パケット識別子付与部112、廃棄判定部113、受信パケット保持部114は、
図1で説明された実施例における構成要素と同一である。また、設定管理部112は、
図1で説明された実施例における設定管理部112が持つ機能に加えて、装置管理部1001からの指示により廃棄判定部113が内部に保持する優先度判定状況や決定されたパケットの廃棄率などの情報を読み出す機能を持つ。
【0041】
次に、以上のような構成によるネットワーク中継装置100の動作を
図19と
図20を用いて説明する。
図19は、ネットワーク中継装置100の基本的な動作を示したシーケンス図である。このシーケンス図では、
図11において、回線1004−1の先に保護対象となるリソースであるサーバにアクセスする端末が接続され、回線1004−2と回線1004−3の先にはそれぞれ保護対象となるサーバが接続されているという前提で、ネットワーク中継装置100が、回線1004−1から受信した保護対象となるサーバ宛てのパケットを中継する時の動作を示している。
まず、インタフェース部1002−1が回線1004−1からIPパケット1901を受信すると、インタフェース部1002−1がパケット受信処理S1902を実行する。
図17はIPパケットのフォーマットを示す図である。IPパケット1901も
図17のとおりIPパケットの中継に必要な情報を格納するIPヘッダ1701とデータ本体を格納するペイロード1702から構成される。
S1902においてインタフェース部1002−1は、IPパケット1901に転送元がインタフェース部1002−1であることを示す情報を格納した内部拡張ヘッダを付加し、中継処理部1003へ転送する。この内部拡張ヘッダが付加されたパケットを内部拡張IPパケット1903とする。
図18に、内部拡張IPヘッダのフォーマットを示す。
中継処理部1003は、内部拡張IPパケット1903を受信すると、パケット中継処理S1904を実行する。
図20は、パケット中継処理の詳細を示すフローチャートである。
ここで、
図20を用いてステップS1904において内部拡張IPパケット1903の中継先が決定するまでの処理を説明する。内部拡張IPパケット1903は中継処理部1003内のパケット送受信部1032により受信され、転送先決定部1033へ送られて
図20のフローチャートに従った処理が開始される。
まず、転送先決定部1033は、内部拡張IPパケット1903の内部拡張ヘッダ1801から該パケットの転送元を確認する(S2001)。ここでは転送元はインタフェース部1002−1であることが示されているので、転送元はサービス停止攻撃抑止部ではないという判定となり、処理はステップS2002へ進む。
ステップS2002では、転送先決定部1033が内部拡張IPパケット1903内のIPヘッダ1701とペイロード1702に含まれている情報に基づいて保護対象情報テーブル1036の検索を行う。
図14に、保護対象情報テーブル1036のフォーマットを示す。本実施例では、保護対象となるリソース宛のパケットは、該パケットのIPヘッダとペイロードに含まれる宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号、プロトコルの各情報の組み合わせにより特定される。ここで、一例として、内部拡張IPパケット1903内のIPヘッダ1701に含まれている宛先IPアドレスが10.0.1.1、宛先ポート番号が80、プロトコルがTCPだったとする。このとき、
図14に示された保護対象テーブル1036のエントリ10361がこれに合致するので、ステップS2002の判定はYESとなり、ステップS2005へ処理が進む。ステップS2005にて転送先決定部1033は、エントリ10361の処理モジュール欄に示されているサービス停止攻撃抑止部110−1を次の転送先として内部拡張IPパケット1903の内部拡張ヘッダ1801に格納し(これを内部拡張IPパケット1905とする)、パケット送受信処理部1032へ転送する。そして、パケット送受信処理部1032は、内部拡張IPパケット1905の内部拡張ヘッダ1801を参照し、サービス停止攻撃抑止部110−1へ内部拡張IPパケット1905を転送する(S2009)。
なお、もし、ここで、ステップS2002にて内部拡張IPパケット1903内のIPヘッダ1701に含まれている情報が保護対象情報テーブル1036のエントリ10362の保護対象宛パケット条件に合致するものであった場合は、サービス停止攻撃抑止部110−2を次の転送先として内部拡張IPパケット1903の内部拡張ヘッダ1801に格納するように動作する。このような動作により、保護対象リソース毎に複数のサービス停止攻撃抑止処理部110のいずれかに処理を分散させて全体の処理性能を高められるようになっている。
図19に戻り、以上説明したステップS1904の処理によって、中継処理部1003に転送された内部拡張IPパケット1903は、内部拡張IPパケット1905となってサービス停止攻撃抑止部110−1に転送され、サービス停止攻撃抑止部110−1はサービス停止攻撃抑止処理S1906を実行する。
ステップS1906では、パケット送受信部115が内部拡張IPパケット1905を受信し、これをパケット識別子付与部112へ転送する。以降、識別子付与部112、廃棄判定部113、受信パケット保持部114の各処理部によって、内部拡張IPパケット1905に対する通信履歴管理、廃棄率決定とそれに基づいた廃棄処理が行われるが、その処理内容は最初の実施例として
図1から
図3および
図5から
図10を用いて先に説明した処理と同様なので、ここの説明は割愛する。その処理の結果、内部拡張IPパケット1905は廃棄しないという判定になったとすると、パケット送受信部115は廃棄とならなかった内部拡張IPパケット1905を受信パケット保持部114から受け取り、内部拡張IPパケット1905の内部拡張ヘッダ1801にパケットの転送元がサービス停止攻撃抑止部110−1からであることを示す情報を格納し(これを内部拡張IPパケット1907とする)、中継処理部1003へ転送する。
内部拡張IPパケット1907を受け取った中継処理部1003は、ステップS1908としてパケット中継処理を実行する。ステップS1904と同様、内部拡張IPパケット1907は中継処理部1003内のパケット送受信部1032により受信され、転送先決定部1033へ送られて
図20のフローチャートに従った処理が開始される。
まず、転送先決定部1033は、内部拡張IPパケット1907の内部拡張ヘッダ1801から該パケットの転送元を確認する(S2001)。ここでは転送元はサービス停止攻撃抑止部110−1であることが示されているので、処理はステップS2002を飛ばし、ステップS2003へ進む。ステップS2001の処理は、サービス停止攻撃抑止部110から戻ってきたパケットが再度サービス停止攻撃抑止部110へ転送されてしまうことを防ぐための処理である。
なお、ステップS2002の判定がNoの場合も、ステップS2003へ進む。
次に、ステップS2003では転送先決定部1033は内部拡張IPパケット1907のIPヘッダ1701に含まれている情報に基づいて経路情報テーブル1037の検索を行う。
図15に、経路情報テーブル1037のフォーマットを示す。ここで、内部拡張IPパケット1907内のIPヘッダ1701に含まれている宛先IPアドレスは10.0.1.1なので、エントリ10371が合致する。そして、ステップS2004で内部拡張IPパケット1907の出力先として、合致したエントリ10371に含まれる転送先モジュール/出力回線1002−2/1004−2を内部拡張IPパケット1907の内部拡張ヘッダ1801に設定し、QoS制御部1034に処理を渡す。
QoS制御部1034は、ステップS2007として内部拡張IPパケット1907に対するQoS制御を実行する。どのパケットにどのようなQoS制御を施すかはQoS設定テーブル1038に設定されている。
図16に、QoS設定テーブルのフォーマットを示す。本実施例では、QoS制御対象とするパケットは、該パケットの内部拡張ヘッダに含まれる出力回線、IPヘッダとペイロードに含まれる宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号、プロトコルの各情報の組み合わせにより指定される。また、QoS制御の内容としては例えば輻輳発生時にあらかじめ指定された優先度に基づいてパケットを廃棄する優先制御や、特定のパケットをあらかじめ指定された占有帯域に収まるようにする帯域制御などがある。QoS制御部1034は、ステップS2007にて内部拡張IPパケット1907の内容に基づいてQoS設定テーブル1038を検索する。その結果、ここでは出力回線が1004−2、宛先アドレスが10.0.1.0なので、エントリ10381が合致するので、輻輳発生時に該パケットの優先度を予め定められた優先度として優先制御を行う(S2008)。具体的には、ネットワーク中継装置100において輻輳が発生していなければ内部拡張IPパケット1907そのまま中継されるが、もし輻輳が発生していた場合、優先度が予め定められた優先度以上のパケットが他に存在している場合はそれが優先的に中継されて内部拡張IPパケット1907は廃棄される可能性があり、逆に他のパケットの優先度が予め定められた優先度より小さければ内部拡張IPパケット1907が優先的に転送されるといった制御が行われる。
S2008のQoS制御の結果、内部拡張IPパケット1907がそのまま中継されることが決まったら、そのパケットはパケット送受信部1032に転送され、ステップS2009にて内部拡張ヘッダ1801の中で指定された転送先(この場合、中継先である回線1004−2を収容するインタフェース部1002−2)へ内部拡張IPパケット1909として転送する。
以上で
図19におけるステップS1908が完了し、内部拡張IPパケット1909を受信したインタフェース部1002−2は、内部拡張IPパケット1909から内部拡張ヘッダ1801を取り外すと共に(取り外し後のパケットをIPパケット1911とする)内部拡張ヘッダ内で指定されている出力回線1004−2へIPパケット1911を出力する。これによりIPパケット1911は最終的に保護対象リソースであるサーバに到達する。
以上の処理によりネットワーク中継装置100でのパケット中継処理が完了する。
なお、
図11に示したネットワーク中継装置100は、パケットの宛先IPアドレスを見て中継先を決定するレイヤ3中継を行う装置として説明したが、これはレイヤ2フレームのヘッダに含まれるMACアドレスにより中継先を決定するレイヤ2中継を行う装置であっても良い。この場合、経路情報テーブル1037の内容と転送先決定部1033の処理内容がレイヤ2中継を行うためのものに変わるだけである。
以上で本発明の他の実施形態によるネットワーク中継装置100の基本的なパケット中継処理シーケンスの説明は終了する。
【0042】
つぎに、中継処理部1003が持つQoS制御部1034とサービス停止攻撃抑止部110が有する廃棄制御の関係について補足説明する。
QoS制御部1034も場合によってはパケットの廃棄を行うことがあるという点ではサービス停止攻撃抑止部110と類似しているが両者には明確な機能分担が存在する。QoS制御部1034は多くの種類のQoS制御方法を実現するが、その制御対象となるパケットの指定方法は基本的にIPヘッダ等に含まれる情報に基づいたいわゆるフロー単位での指定となる。ところが、サービス停止攻撃抑止という視点では、廃棄の対象とすべきパケットは通信履歴などに基づいてパケット単位にきめ細かく制御する必要が出てくるので、これをQoS設定テーブル1038のような一般的なQoS設定機能により行おうとすると膨大なエントリの動的な追加と削除が必要となり実現は困難である。サービス停止攻撃抑止部110はこのようなパケット単位の動的できめ細やかな廃棄制御によりサービス停止攻撃の抑止を行う。一方で、サービス停止攻撃抑止部110で通常ユーザによる正常な通信と判断されてほとんど廃棄されなかったパケットが、ネットワーク中継装置100を通過する他のパケット量との関係で輻輳を起こした場合はQoS制御部1034による制御がこれを緩和する。すなわち、QoS制御部1034はネットワーク中継装置100全体に関する制御、サービス停止攻撃抑止部110は特定のリソース宛のパケットに対してサービス停止攻撃抑止の観点での制御を行うという役割分担となっており、両者が個々に機能してシステムとしては最適な制御となるように動作する。
図11では、サービス停止攻撃抑止部110が、主にハードウェアで実装されるものとして実施例を説明したが、変形例として、プログラム可能なプロセッサを内蔵されるモジュールカードが中継処理部1003に内部BUS(物理信号線)を介して接続され、サービス停止攻撃抑止部110で行われる廃棄制御がソフトウェアとして構成されてもよい。モジュールカードに関しては、例えば以下のように構成にしてもよい。
(1)インタフェース部1002及びサービス停止攻撃抑止部110が内部バスを介してそれぞれ中継処理部1003と接続され、インタフェース部1002とサービス停止攻撃抑止部110との間で中継処理部1003を介して信号を送受する構成
(2)インタフェース部1002、サービス停止攻撃抑止部110、中継処理部1003が共通の内部バスに実装され、各部が共通の内部バスを介して信号を送受する構成(なお、この場合、インタフェース部1002とサービス停止攻撃抑止部110との間で中継処理部1003を介して信号を送受してもよいし、インタフェース部1002とサービス停止攻撃抑止部110との間で直接信号を送受してもよい。)
【0043】
以上、ネットワーク中継装置100のパケットの中継処理に関する動作を説明したが、これらの動作に必要な各種のテーブル等の内容は、
図11に示した入出力装置1005を通してネットワーク管理者などが設定、参照できるようになっているので、次にこれについて説明する。
ネットワーク中継装置100の装置制御部1001は、管理者がネットワーク中継装置100内に保持されるテーブルの設定、参照を行うためのユーザインタフェース機能(例えばコマンドライン型のユーザインタフェースは、Webブラウザを使ったグラフィカルなユーザインタフェースなど)を備える。管理者から入出力装置1005を通して指定されたテーブルへの設定情報を、各処理部に送ってテーブルへの書き込みを行うように指示したり、逆に各処理部から管理者から指定されたテーブルの内容を転送するよう指示して、受け取った情報を入出力装置へ表示する等の機能を持つ。
さらに具体的に説明するなら、例えば中継処理部1003に含まれるテーブルの設定、参照を行う場合、装置制御部1001からの指示は中継処理部1003内のテーブル設定管理部1031が受け取り、前記指示に従って保護対象情報テーブル1036、経路情報テーブル1037、QoS設定テーブル1038に対する書き込みや読み出しを行い、読み出し情報については装置制御部1001へ送り返す。また、サービス停止攻撃抑止部110に含まれるテーブルの設定、参照を行う場合は、装置制御部1001からの指示はサービス停止攻撃抑止部110内の設定管理部111が受け取り、例えば廃棄率決定部205に含まれる廃棄率決定テーブル700の設定を行ったり、履歴管理部202に含まれる通信履歴情報メモリ502内の通信履歴情報を読み出したりする。さらに、読み出し情報については装置制御部1001へ送り返す。
以上のような機能により、入出力装置1005を操作する管理者は、ネットワーク中継装置100の設定管理を行うと共に、サービス停止攻撃抑止に関する動作状況を確認するための情報収集を行うこともできる。
なお、サービス停止攻撃抑止部110内の設定管理部111の機能について補足すると、前述した装置制御部1001の指示に従った設定管理以外に、最初の実施例として説明した制御パケット(
図1の123)による設定管理の機能も併せ持っていて良い。この場合、前記制御パケットの宛先IPアドレスは、サービス停止攻撃抑止部110に割り当てられたIPアドレス(サービス停止攻撃抑止部110−1と110−2では異なるIPアドレス)となり、ネットワーク中継装置100に前記制御パケットが到着すると、中継処理部1003内の処理で前記制御パケットのIPヘッダを参照し、宛先IPアドレスがサービス停止攻撃抑止部110のIPアドレスであれば経路情報テーブル1037のエントリ10373または10374のいずれかが合致して、サービス停止攻撃抑止部110−1または110−2へ制御パケットが転送される。サービス停止攻撃抑止部110−1または110−2では、パケット送受信部115が前記制御パケットの宛先IPアドレスが自分宛であることを確認して前記制御パケットをパケット識別子付与部112ではなく設定管理部111の方へ転送するように動作する。
【0044】
以上述べたように、本発明の他の実施形態によれば、ネットワーク中継装置内に複数のサービス停止攻撃抑止部を設け、サービス停止攻撃抑止処理を負荷分散することができるようになる。そのため、ハードウェア処理能力や通信履歴情報を保持するメモリ容量の制約により一つのサービス停止攻撃抑止部で処理可能な保護対象リソース数に制限があった場合でも、一つのネットワーク中継装置で対応可能な保護対象リソース数を増やすことができるという効果がある。
【0045】
6.付記
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれている。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置いてもよい。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。