JP2008136176A - メモリブロックの割り当てを管理する方法及びデバイス、データ伝送ネットワークシステム、コンピュータ可読媒体、並びにコンピュータプログラム製品 - Google Patents

メモリブロックの割り当てを管理する方法及びデバイス、データ伝送ネットワークシステム、コンピュータ可読媒体、並びにコンピュータプログラム製品 Download PDF

Info

Publication number
JP2008136176A
JP2008136176A JP2007264838A JP2007264838A JP2008136176A JP 2008136176 A JP2008136176 A JP 2008136176A JP 2007264838 A JP2007264838 A JP 2007264838A JP 2007264838 A JP2007264838 A JP 2007264838A JP 2008136176 A JP2008136176 A JP 2008136176A
Authority
JP
Japan
Prior art keywords
tcp
state
function
tcp connection
connection
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
JP2007264838A
Other languages
English (en)
Other versions
JP5328131B2 (ja
Inventor
Christophe Mangin
クリストフ・マンガン
Romain Rollet
ロマン・ロレ
David Mentre
ダヴィド・マントル
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.)
MITSUBISHI ELECTRIC INFORMATION TECHNOLOGY CENTRE EUROPE BV
Mitsubishi Electric Information Technology Corp
Mitsubishi Electric R&D Centre Europe BV Netherlands
Original Assignee
MITSUBISHI ELECTRIC INFORMATION TECHNOLOGY CENTRE EUROPE BV
Mitsubishi Electric Information Technology Corp
Mitsubishi Electric Information Technology Center Europe BV Nederlands
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 MITSUBISHI ELECTRIC INFORMATION TECHNOLOGY CENTRE EUROPE BV, Mitsubishi Electric Information Technology Corp, Mitsubishi Electric Information Technology Center Europe BV Nederlands filed Critical MITSUBISHI ELECTRIC INFORMATION TECHNOLOGY CENTRE EUROPE BV
Publication of JP2008136176A publication Critical patent/JP2008136176A/ja
Application granted granted Critical
Publication of JP5328131B2 publication Critical patent/JP5328131B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】メモリブロックの割り当てを管理する方法及びデバイス、データ伝送ネットワークシステム、コンピュータ可読媒体、並びにコンピュータプログラムの提供。
【解決手段】関連するTCP接続に割り当てられている再組み立てバッファの占有率を測定する関数r(t)で、TCP接続に属するあらゆるパケットの受信時に更新される関数r(t)を接続ごとに計算し、対応する関数r(t)に設定された、関数r(t)の2つの異なる状態を定義する少なくとも第1のトリガを含む判定方式に基づいて、TCP接続をクローズし、対応するメモリブロックを解放する。
【選択図】図5

Description

本発明は、包括的には、インターネット等のデータ伝送ネットワークに関する。より具体的には、本発明は、たとえば伝送制御プロトコル(「TCP」)パケットの処理を行うためのネットワークシステムの保護に関する。このようなデバイスは、以下ではTCPネットワークデバイスと呼ばれ、TCP処理ユニットを含む。
TCPは、インターネットエンジニアリングタスクフォース(IETF)のコメント要求(RFC)793に定義されているように、インターネットの基本プロトコルのうちの1つである。
TCPの基本的な特徴は、スライディングウィンドウメカニズムに基づいて、順序の揃っていないセグメントの伝送、フロー及び輻輳の制御メカニズム、並びに喪失データの再送をサポートすることにより、安全なトランスポートレイヤを提供することである。TCPに特有のこれらの機能は、TCP処理ユニットが、各接続の状態を記憶する接続ごとのデータ構造体を保持することを必要とする。これらのデータ構造体は、接続コンテキストと呼ばれ、再組み立てバッファ、送信バッファ、スライディングウィンドウメンテナンスパラメータ、タイマ等を備える。
たとえば攻撃といった過酷な状況下では、これらの接続コンテキストは、過度の処理資源、特に過度のメモリ資源を消費する可能性があり、その結果、TCP処理ユニットのこの資源を枯渇させる可能性がある。
インターネットの急速な発展によって、ネットワークレイヤよりも上のセマンティックレベルにおいてパケット処理を行うネットワークシステムが必要となってきた。このようなシステムには、トラフィック観測及び/又は解析システム、コンテンツ検査及び変換システム、侵入検知システム(IDS)、並びに侵入防止システム(IPS)が含まれる。侵入検知システムは、悪意のあるアクティビティの存在を受信者に警告することしかできないという意味で完全に受動型であるのに対して、侵入防止システムは、インライン(すなわち、カットスルー)で動作する。換言すると、侵入防止システムは、ネットワークトラフィックの中間ストリームを解析する。
これらのすべてのシステムの共通の特徴は、高レベルのパケット処理を正確に行うために、システムがトラフィックのフローごとの状態を保持しなければならないということである。インラインシステムであってもエンドポイントシステムであっても、この状態保持タスクのコア部分は、接続確立制御、再組み立て、再送、フロー制御、輻輳制御等のTCP処理タスクの実施を可能にするコンテキストを、TCP接続ごとに保持することにある。
[発明の背景]
現代のデータ伝送システムは、たとえば、バッファオーバーサイジング型の攻撃等、ますます高度化した攻撃を受ける。この種の攻撃は、ネットワークシステムの資源を枯渇させることにある。
確かに、TCPネットワークデバイスに対して起こり得る攻撃は、多数の偽のTCP接続をオープンして、一貫していないシーケンス番号を有するセグメントを送信することである。たとえば、攻撃者は、TCPウィンドウ全体にわたる不連続なシーケンス番号を有する一組の非常に小さなセグメントを送信する可能性があり、ウィンドウボトム(BoW(Bottom of Window))に位置するパケットを送信してくる可能性はない。又は、より巧妙に、攻撃者は、BoWセグメントを非常に低レートで送信する可能性もある。そのコンテキストでは、TCPネットワークデバイスは、TCPウィンドウ全体を観測できるように、一組の再組み立てバッファを割り当てるが、それらの再組み立てバッファを決して解放しない。そうすることによって、攻撃者は、制御されたTCP接続ごとに大きなボリュームのメモリをTCPネットワークデバイスに強制的に割り当てさせる。
その種の攻撃からの損傷を防止するか又は少なくとも制限する多くの努力が行われてきた。これらの多くの努力の結果、さまざまなタイプの答えがもたらされている。
それにもかかわらず、既知の保護技法のいずれも、すべてのタイプの状況で完全に満足できるものでないことが分かる。資源割り当ては、対象とされ得る攻撃に対する或るレベルの回復力を当該機器に提供する必要性と、それらの機器が攻撃を受けていない時にそれらの機器のオペレーションを過度に悪化させない必要性との間のトレードオフの結果として得られるものでなければならない。
[発明の概要]
本発明の目的は、TCP処理ユニットを含むTCP処理デバイスを、上述したタイプの攻撃から保護するための既知の技法に代わるものを提案することである。
このために、本発明の実施の形態は、偽造接続の再組み立てバッファのメモリブロックの割り当てを検出して、このような接続を「キル」する、すなわちクローズすることを可能にする方式に基づいている。この方式は、あらゆるパケットの受信時に更新され、且つ、再組み立てに使用される割り当て済みメモリの使用量を測定する、状態変数の解析に基づいている。
本発明の第1の態様によれば、TCP処理ユニットを含むTCPネットワークデバイスにおける、TCP接続に対するTCP再組み立てバッファのメモリブロックの割り当てを管理する方法であって、以下のステップ、すなわち、関連するTCP接続に割り当てられている再組み立てバッファのメモリブロックの占有率を測定する関数r(t)であって、TCP接続に属するあらゆるTCPパケットの受信時に更新される関数r(t)を接続ごとに計算するステップと、対応する関数r(t)に設定された、関数r(t)の2つの異なる状態を定義する少なくとも第1のトリガを含む判定方式に基づいて、TCP接続をクローズすることを可能にし、対応するメモリブロックを解放することを可能にするステップとを含む、方法が提案される。
本発明の有利な実施の形態は、従属請求項2〜12に従って規定される。
本発明の第2の態様は、TCP処理ユニットを含むTCPネットワークデバイスにおける、TCP再組み立てバッファの割り当てを管理するデバイスであって、第1の態様による方法を実施する手段を備える、デバイスに関する。
本発明の第3の態様は、第2の態様によるデバイスを備えるデータ伝送ネットワークシステムを対象とする。
最後に、本発明の第4の態様及び第5の態様は、それぞれ、第1の態様による方法を実施する1つ又は2つ以上の命令シーケンスを保持するコンピュータ可読媒体と、プロセッサにとってアクセス可能な命令シーケンスであって、当該プロセッサによって実行されると、第1の態様による方法を当該プロセッサに実施させる1つ又は2つ以上の記憶されている命令シーケンスを含むコンピュータプログラム製品とに関する。
[好ましい実施形態の説明]
本発明は、添付図面の図に、限定としてではなく例として示されている。添付図面において、同じ参照符号は同様の要素を指す。
以下の説明は、TCPネットワークデバイスにおいて偽造TCP接続に割り当てられた再組み立てバッファのメモリブロックを検出する、提案された方式の主要な原理を定義することを目的としている。
TCPネットワークデバイスは、TCPフローごとに処理機能を実行する一般的なデバイスである。管理された各TCP接続について、デバイスは、攻撃されたTCP接続に属するいくつかのパケットを受信するごとに更新できるコンテキストを割り当てる必要がある。TCPネットワークデバイスは、双方向から到来するTCPパケットを取得することができる。
TCPネットワークデバイスは、TCPエンドポイントサーバとすることができる。その場合、受信されたパケットは再組み立てされ、TCPペイロードに収容されたバイトストリームが上位レイヤに渡される。TCPシグナリング(TCPヘッダ、ACK等)は、TCP処理ユニットによって生成される。
TCPネットワークデバイスは、代替的に、各TCP接続上の統計を取る監視デバイスとすることもできる。その場合、TCPパケットは、TCP処理ユニットによって解析のみが行われ、その後、TCPエンドポイントへ転送される。
図1は、TCPネットワークデバイス100のアーキテクチャを説明している。
TCPパケットがネットワークから受信され、下位レイヤ処理がユニット111において適用される。次に、TCPパケットチェックユニット112が、TCPパケットを他のユニットへ送信する前に、TCPパケットの有効性のチェックを担当する。他のユニットには、TCP接続監視ユニット103及びTCP処理ユニット104が含まれる。以下の処理機能がユニット112によって実行される。
TCPチェックサムの計算及び比較;
接続識別(アドレス、ポート);
正しいシーケンス番号;
オープンされた接続に属さないパケットの廃棄。
有効なTCPパケットは、TCP接続監視ユニット113へ転送される。それ以外のパケットは廃棄される。詳細には、SYNパケット及びSYNACKパケットが先行していなかったACKパケットは拒否される。この機能を達成するために、TCPパケットチェックユニット112は、双方向から通過するTCPパケットにアクセスすることできる。TCPエンドポイントサーバの場合、TCPパケットチェックユニット112は、TCP処理ユニット114によって放出されたTCPパケットのシグナリング部分にアクセスすることができる。それらの機能の実施を説明することは、本説明の範囲外であり、また目的外である。
TCP接続監視ユニット113は、TCP処理ユニット114へ転送する前に、初期ハンドシェークACKパケットに応答して、TCP接続コンテキストの割り当て又は解放の認可をTCP処理ユニット114に与えることを担当する。それ以外の受信されたTCPパケットは、TCP処理ユニット114へ直接転送される。このユニットの説明は以下で詳述することにする。
最後に、TCP処理ユニット114は、当該TCP処理ユニット114を実装しているデバイスの種類に応じて、受信されたTCPパケットからいくつかのタスクを実行する。1つの共通タスクは、接続コンテキスト管理であり、接続コンテキストの割り当てや解放等のオペレーションが、TCP接続監視ユニット113によって送信された表示を考慮して行われる。TCP処理ユニット114のオペレーションを説明することは、本説明の範囲外であり、また目的外である。
従来技術によるシステムで行われることに反して、TCP接続は、アルゴリズムに基づいて疑わしいと考えられるときに、TCP接続監視ユニット113がクローズすることができる。このアルゴリズムの一実施形態は、以下の「オペレーションの原理」の節で提供することにする。
[接続のオープン]
次に、図2について、TCP接続確立のオペレーションの詳細を提示することにする。
図2は、TCPクライアントとTCPサーバとの間のメッセージの交換を図的に示している。このメッセージの交換には、同期メッセージ(SYN)の送信、同期確認応答メッセージ(SYNACK)の送信、及び確認応答メッセージ(ACK)の送信が含まれる。この図において、文字「SN」は、「シーケンス番号(Sequence Number)」の略語であり、文字「AN」は「確認済シーケンス番号(Acknowledged sequence Number)」の略語である。
従来技術では、TCP再組み立てバッファの割り当ては、初期TCPハンドシェークが完了した時点、すなわち、SYNパケット、SYNACKパケット、及びACKパケットがTCP送信機とTCP受信機との間で交換された時点で行われる。従来技術では、TCP再組み立てバッファの解放は、TCP接続がクローズされた時点(通常の場合)又はデバイスがTCPエンドポイント間で十分なトラフィックが交換されていないことを検出した時点で行われる。
[再組み立てバッファの管理]
次に、図3について、再組み立てバッファのオペレーションをより詳細に説明することにする。
セグメントがデバイスによって受信されると、そのペイロードは、そのシーケンス番号に従って対応する接続再組み立てバッファに挿入される。再組み立てバッファの下限(LowBuffBoundとして参照する)は、セグメントの方向とは逆方向のACKによって伝達されるACKシーケンス番号を解釈することによって保持される。この下限は、初期値として、TCP接続確立ハンドシェーク中に交渉された値に設定される。
再組み立てバッファの上限(UpBuffBoundとして参照する)は、現在のUpBuffBoundと、ウィンドウサイズ情報及び最後に受信されたACKによって運ばれたACKシーケンス番号の合計との最大値である。TCPネットワークデバイスがTCP送信機の下流側に位置すると考えると、UpBuffBoundを計算するこの方法によって、UpBuffBoundが送信機のものと常に一致することが保証される。
再組み立てバッファは、一組のn個までの個々の固定サイズのメモリブロック(複数可)310から構成される。メモリブロック310は、メモリブロックのプールからピックアップされる。メモリブロックのプールは、すべてのTCP接続の間で共有される。メモリブロックは、所与の接続に割り当てられる。すなわち、メモリブロックは、以下のように、セグメントの受信時に、その接続の再組み立てバッファに挿入されるか又は追加される。すなわち:
‐そのセグメントによってカバーされるシーケンス番号の範囲は、再組み立てバッファのシーケンス番号の範囲に属する。すなわち、範囲[LowBuffBound,UpBuffBound]内に含まれる;
‐そのセグメントによってカバーされるシーケンス番号の範囲は、その接続の再組み立てバッファにすでに割り当てられたメモリブロック(複数可)によってカバーされるシーケンス番号の範囲(複数可)にすべてが含まれるわけではない;
‐その接続の再組み立てバッファには、最大でn−1個のメモリブロックがすでに割り当てられている。
各接続について、n個のエントリーのポインタテーブル320が、再組み立てバッファを構成するメモリブロックへのポインタを保持するのに使用される。このポインタテーブルは、TCPウィンドウ全体をカバーするように適合されている。これは、ポインタの個数が、TCPウィンドウのサイズをメモリブロックのサイズ(メモリブロックは固定サイズを有する)によって割ったものに等しいことを意味する。ポインタテーブルは、パケットシーケンス番号について連続している。
バイトストリームが進むと、メモリブロックは解放され、メモリブロックプールに戻される。
各再組み立てバッファには、その再組み立てバッファのホール(hole)についての情報を記憶するデータ構造体が関連付けられる。ホールを取り囲むデータは、以下ではエッジと呼ばれる。上位エッジ及び下位エッジは、それらのエッジが取り囲むホールと比較してそれぞれ大きなシーケンス番号及び小さなシーケンス番号を有する。
パケットは可変サイズを有するので、メモリギャップが形成される。それにもかかわらず、上述したようなポインタテーブルを使用することによって、連鎖リストを管理する必要なく、受信データの再組み立ての管理が可能になる。
[攻撃に対する回復力]
TCPネットワークデバイスは、攻撃を受ける可能性がある。これらの攻撃は、主として、TCP接続状態及びバイトストリームコンテンツを維持するように実装された資源、特にTCP処理ユニットの再組み立てバッファを対象にする。TCPネットワークデバイスに対する通常の攻撃は、TCP処理ユニットのこれらの資源を枯渇させることにある。
次に、再組み立てバッファを構成する資源を枯渇させることにある資源枯渇攻撃(「バッファオーバーサイジング」としても知られている)を緩和することを目的としたメカニズムを説明することにする。
以下の説明では、TCPネットワークデバイス内のTCP処理ユニットによるTCP接続コンテキストの偽造TCP接続への割り当てを検出する方式を提示することにする。
或る種の攻撃は、したがって、多数の接続をオープンし、一貫していないシーケンス番号を有するセグメントを送信することによってメモリブロックのプールを枯渇させることにあるものとすることができる。たとえば、攻撃者は、TCPウィンドウ全体にわたる不連続なシーケンス番号を有する一組の非常に小さなセグメントを送信する可能性があり、ウィンドウボトム(BoW)に位置するパケットを送信してくる可能性はない。又は、より巧妙に、攻撃者は、BoWセグメントを非常に低レートで送信する可能性もある。
そのコンテキストでは、TCPネットワークデバイスは、TCPウィンドウ全体を観測できるように、一組の再組み立てバッファを割り当てるが、それらの再組み立てバッファを決して解放しない。そうすることによって、攻撃者は、図4の再組み立てバッファメモリ使用例によって示すように、制御されたTCP接続ごとに大きなボリュームのメモリをTCPネットワークデバイスに強制的に割り当てさせる。
図4において、3つの長方形は、所与の接続に割り当てられたバッファメモリの3つのメモリブロック31、32、及び33をシンボル化したものである。ブロック31、32、及び33のそれぞれ1つにおいて、破線エリア(dashed area)は、関連するTCP接続について受信されていないバイトの範囲(すなわち、ホール)を表している。
次に、この種の攻撃を検出して、実質的なトラフィックが観測されないオープンされた接続を「キル」する(すなわち、クローズする)ことを可能にするメカニズムを説明することにする。このメカニズムは状態変数の解析に基づいている。この状態変数は、あらゆるパケットの受信時に更新され、再組み立てに使用される割り当てられたメモリの使用量を測定するものである。
[オペレーションの原理]
r(t)を、再組み立てバッファの占有率の変化(dynamic)を測定する関数であるとする。この関数は、たとえば、0と1との間に含まれる値を取ることができる。この関数が1に近いとき、この関数は、占有率が低いという特徴を示し、したがって、TCPネットワークデバイスが攻撃を受けている可能性があるという特徴を示す。逆に、この関数が0に近いときは、この関数は、メモリブロックがほとんど接続に割り当てられていないことを反映し、メモリブロックは十分に満たされている(ホールをほとんど含んでいない)ことを反映する。通常、r(t)は、セグメントが順序正しく受信されるTCP接続については0に等しくなるべきである(ホールがない)。
さらに、b(t)を、接続によって使用されるメモリブロックの個数であるとし、Bを、1つのTCP接続に割り当てることができるブロックの最大数であるとし、Sを、1つのメモリブロックの固定サイズであるとする。
さらに、u(t)を、対応するデータが受信されていない割り当て済みブロック内のバイトの割合であるとする(すなわち、ホールである)。
r(t)は、
r(t)=[u(t)/(b(t)・S)]p・[b(t)/B]q (1)
として定義されることになる。ここで、p及びqは、この式の双方の因数に異なる重みを与えるように選ばれた係数である。第1の因数は、ホールによるメモリの浪費を測定する。第2の因数は、その接続に割り当てられたメモリを、許容される最大値と比較して表したものである。上記関係(1)によって与えられるr(t)の定義でこれらの2つの因数を結合することによって、双方のパラメータを考慮することが可能になる。
攻撃検出は、r(t)に設定されたトリガに基づいている。単純なしきい値比較は十分でない場合があるので、好ましくは、4つの状態が接続ごとに定義される。これらの状態は、それぞれ「無害」(Innocuous)、「嫌疑」(Suspicious)、「審査」(Probation)、及び「有罪」(Guilty)と示される。
接続がオープンされるとき、対応する関数r(t)の状態は「無害」に初期化される。r(t)が所定のしきい値Rよりも小さい限り、接続は「無害」状態に留まる。Rを超えると、状態は「嫌疑」に変化する。接続が「嫌疑」状態に入る時刻はtによって示される。
接続は、TS,Maxで示されるあまりも長い期間この状態に留まる場合、潜在的に有害であるとみなされる。このような場合には、接続状態は「有罪」に変化し、接続をクローズすることができる。この条件によって、接続のウィンドウボトムの進行が、接続のウィンドウエンド(End of Window)と比較してあまりにも遅い接続は、本質的に検出されてクローズされることになる。なお、上記ウィンドウボトム及び上記ウィンドウエンドは、その接続の受信された有効なTCPパケットの組の中で、それぞれ最小のシーケンス番号(SN)及び最大のシーケンス番号として定義される。
一方、「嫌疑」状態で、r(t)がしきい値R(R<R)よりも小さくなった場合、状態は「審査」に変化する。言い換えれば、Rは、ヒステリシスをもってRに対応するしきい値である。接続が「審査」状態に入る時刻は、tで示される。
r(t)が「審査」状態で再びRよりも大きくなった場合、接続は、「嫌疑」状態に戻る。一方、接続が(「嫌疑」状態に留まっていた時間と比較して)かなり長い時間「審査」状態に留まる場合、接続は無害であることが証明され、「無害」状態に戻る。このイベントは、「嫌疑」の期間と「審査」の期間とを比較する条件
(t-tP)/(tP-tS)>VN
によってトリガすることができる。ここで、Vは、接続状態をリセットする或る柔軟性を導入する固定値である。
言い換えれば、r(t)がRを下回り、且つ、接続が「審査」状態になってからの期間t−tが、接続が前に「嫌疑」状態に留まっていた期間t−tと比較してかなり大きいという条件が満たされる時、TCP接続が「審査」状態から「無害」状態へ変化するトリガが関数r(t)に設定される。
図5の状態図は、上述した接続オートマトンを要約している。この図は、「無害」、「嫌疑」、「審査」、及び「有罪」として参照される接続状態間の展開を与えている。この図において、
及びRは、r(t)についてのしきい値であり、R<Rであり;
S,Maxは、接続が、「有罪」状態に変化してクローズすることが可能になる前に、(「無害」状態に戻ることなく)「嫌疑」状態又は「審査」状態に留まることができる最大時間であり;
は、「審査」期間と「嫌疑」期間との間のしきい値比であり、「審査」期間はt−tによって定義され、「嫌疑」期間はt−tによって定義され;
は、オートマトンが「嫌疑」状態に入った最初の時刻であり、接続が「無害」状態に戻った時にリセットされ;
は、オートマトンが「審査」状態に入った最後の時刻である。
図6の例は、TCP再組み立てバッファにホールを誘発するエラー及び再送を経験する接続の状態展開を示している。エラーが回復すると、r(t)は0に戻り、接続状態は「無害」にリセットされる。
第2の例は、図7によって示されており、攻撃者によって制御される接続がどのようにキルされるかを示している。二重のしきい値の使用及びV条件によって、接続は、攻撃者がいくつかのバッファを頻繁に解放していても除去される。
[拡張]
このメカニズムを実施し、且つ、このメカニズムをTS,Max値にそれほど依存しないようにする拡張を追加することができる。確かに、このパラメータを選ぶことは容易ではない。このパラメータがあまりにも低い場合、いくつかの無害な接続がクローズされるはずである(これは、フォールスアラームに等しい)。逆に、このパラメータがあまりにも高い場合、接続をクローズするのがあまりにも遅くなり、攻撃者は、TS,Max内に多数の接続をオープンすることによって防御メカニズムを依然として迂回できるので、この方式は非効率的なものとなる。
この拡張によれば、Eを、「嫌疑」状態にあるTCP接続の組とする。この組において、接続はtに従って順序付けられる。利用可能なメモリブロックの個数が、定義されたしきい値Hを下回るごとに、Eに属する最小のtを有する接続がクローズされ、そのメモリブロックが解放される。この方式によって、もっとも疑わしい接続がクローズされることになる。
この拡張は、2分木を使用してtに従いEに属する接続をソートすることにより実施することができる。そして、TCPネットワークデバイスが攻撃を受けているとき、木のルートの接続がクローズされる。
[実装]
上記アルゴリズムは、メモリをほとんど必要とせず(状態用に1つの変数、t用に1つの変数、及びt用に1つの変数の3つの状態変数しか必要とされない)、計算をほとんど必要としない(r(t)を計算するのに使用される係数p及びqは、実施を簡単にするために固定値とすることができる)ので、パケットベースで容易に実装することができる。
本発明は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせで実施することができる。本明細書で説明した機能を実行するように適合されたあらゆるプロセッサ、コントローラ、又は他の装置が適している。
また、本発明は、コンピュータプログラム製品に具現化することもできる。コンピュータプログラム製品は、本明細書で説明した方法の実装を可能にするすべての機能を含み、情報処理システムにロードされると、これらの方法を実行することができる。本文脈におけるコンピュータプログラム手段又はコンピュータプログラムは、情報処理能力を有するシステムに特定の機能を直接実行させるか、又は、以下のa)別の言語への変換のいずれか又は双方の後に実行させることを目的とした一組の命令の、あらゆる言語、コード、又は表記によるあらゆる表現を意味する。このようなコンピュータプログラムは、コンピュータ可読媒体又はマシン可読媒体に記憶することができる。この媒体は、データ、命令、メッセージ又はメッセージパケット、及び他のマシン可読情報を当該媒体から読み出すことを可能にする。コンピュータ可読媒体又はマシン可読媒体には、ROM、フラッシュメモリ、ディスクドライブメモリ、CD−ROM、及びそれ以外の永久ストレージ等の不揮発性メモリが含まれ得る。加えて、コンピュータ可読媒体又はマシン可読媒体には、たとえば、RAM、バッファ、キャッシュメモリ、ネットワーク回路等の揮発性ストレージも含まれ得る。さらに、コンピュータ可読媒体又はマシン可読媒体には、このようなコンピュータ可読情報又はマシン可読情報の読み出しをデバイスに可能にする、有線ネットワーク又は無線ネットワークを含むネットワークリンク及び/又はネットワークインターフェース等の一時的な状態の媒体(transitory state medium)のコンピュータ可読情報又はマシン可読情報も含まれ得る。
本発明の好ましい実施形態であると現在考えられているものを図示して説明してきたが、本発明の真の範囲から逸脱することなく、さまざまな他の変更を行うことができ、均等物を代替することができることが当業者に理解されよう。
詳細には、TCP接続コンテキストの管理について本発明を説明してきたのに対して、他のデータ伝送プロトコルも、本発明の利点から好都合に利益を得ることができる。
加えて、本明細書で説明した中心となる発明概念から逸脱することなく、特定の状況を本発明の教示に適合させるために多くの変更を行うこともできる。さらに、本発明の一実施形態は、上述した特徴のすべてを含むとは限らない。したがって、本発明が、開示した特定の実施形態に限定されるものでないことが意図されており、本発明は、添付の特許請求の範囲の範囲内に含まれるすべての実施形態を含むことが意図されている。
TCPネットワークデバイスのアーキテクチャを示す図である。 TCP接続のオープン及びオペレーションを示すチャートである。 再組み立てバッファ管理を示す図である。 TCPネットワークデバイスの再組み立てバッファにおけるメモリブロックの占有を示す図である。 本発明の一実施形態による関数r(t)に関連する状態を示す状態図である。 TCPネットワークデバイスのオペレーションの第1の例における関数r(t)のグラフである。 TCPネットワークデバイスのオペレーションの第2の例における、関連するTCP接続のクローズにつながる関数r(t)のグラフである。

Claims (16)

  1. TCP処理ユニットを含むTCPネットワークデバイスにおける、TCP接続に対するTCP再組み立てバッファのメモリブロックの割り当てを管理する方法であって、以下のステップ、すなわち、
    関連するTCP接続に割り当てられている前記再組み立てバッファの前記メモリブロックの占有率を測定する関数r(t)であって、前記TCP接続に属するあらゆるTCPパケットの受信時に更新される関数r(t)を、接続ごとに計算するステップと、
    対応する前記関数r(t)に設定された、前記関数r(t)の2つの異なる状態を定義する少なくとも第1のトリガを含む判定方式に基づいて、TCP接続をクローズすることを可能にし、対応する前記メモリブロックを解放することを可能にするステップと
    を含む方法。
  2. 前記関数r(t)は、前記関連するTCP接続に割り当てられているメモリ空間の浪費を表す第1の因数であって、前記TCP接続について受信されたTCPパケットのシーケンス内のホールの存在に起因する浪費を表す第1の因数を含む、請求項1に記載の方法。
  3. 前記関数r(t)は、前記関連するTCP接続に割り当てられている前記メモリ空間を、前記TCP接続について許容される最大メモリ空間と比較して表す第2の因数を含む、請求項1または2に記載の方法。
  4. 前記関数r(t)は、
    r(t)=[u(t)/(b(t)・S)]p・[b(t)/B]q
    として定義され、ここで、
    u(t)は、対応するデータが受信されていない割り当て済みメモリブロック内のバイトの割合であり、
    b(t)は、前記関連するTCP接続によって使用されるメモリブロックの個数であり、
    Bは、1つのTCP接続に割り当てることができるメモリブロックの最大数であり、
    Sは、1つのメモリブロックの固定サイズであり、
    p及びqは、決定された値の係数である、請求項1〜3のいずれか一項に記載の方法。
  5. p及びqは固定値の係数である、請求項4に記載の方法。
  6. 前記判定方式は、前記関数r(t)に設定されたトリガであって、前記TCP接続に関連する少なくとも第1の状態、第2の状態、第3の状態、及び第4の状態を定義するトリガに基づく、請求項1〜5のいずれか一項に記載の方法。
  7. 前記関数r(t)に設定された第1のトリガは、前記関数r(t)が第1のしきい値(R)に達した時に、第1の状態(41)から第2の状態(42)へ前記TCP接続が変化するものである、請求項1〜6のいずれか一項に記載の方法。
  8. 前記関数r(t)に設定された第2のトリガは、前記関数r(t)が、ヒステリシスをもって前記第1のしきい値に対応する第2のしきい値(R)に戻って前記第2のしきい値(R)を通過する時に、前記第2の状態から前記第3の状態(43)へ前記TCP接続が変化するものである、請求項7に記載の方法。
  9. 前記関数r(t)に設定された第3のトリガは、前記関数r(t)が前記第2のしきい値を下回り、前記TCP接続が前記第3の状態(43)になってからの期間(t−t)が、前記TCP接続が前に前記第2の状態に留まっていた期間(t−t)と比較して実質的に大きいという条件が満たされる時に、前記第3の状態(43)から前記第1の状態(41)へ前記TCP接続が変化するものである、請求項8に記載の方法。
  10. 前記関数r(t)に設定された第4のトリガは、前記TCP接続が前記第2の状態(42)になってからの期間(t−t)が第3のしきい値(TS,Max)を超える時に、前記第2の状態(42)から前記第4の状態(44)へ前記TCP接続が変化するものである、請求項7〜9のいずれか一項に記載の方法。
  11. 前記接続は、前記関数r(t)が前記第4の状態(44)にある時にのみクローズすることができる、請求項10に記載の方法。
  12. 前記判定方式は、
    前記第2の状態(42)にある前記TCP接続の組を、それらのTCP接続が前記第2の状態(42)になってからの時間tに従って順序付けることと、
    利用可能なメモリブロックの個数が定義されているしきい値を下回るごとに、前記第2の状態(42)にある前記TCP接続の組のうち最小のtを有する1つのTCP接続を閉じることを可能にすることと
    を含む、請求項7〜11のいずれか一項に記載の方法。
  13. TCP処理ユニットを含むTCPネットワークデバイスにおける、TCP接続に対するTCP再組み立てバッファのメモリブロックの割り当てを管理するデバイス(100)であって、請求項1〜12のいずれか一項に記載の方法を実施する手段を備える、デバイス。
  14. 請求項13に記載のデバイスを備える、データ伝送ネットワークシステム。
  15. 請求項1〜12のいずれか一項に記載の方法を実施する1つ又は2つ以上の命令シーケンスを保持する、コンピュータ可読媒体。
  16. プロセッサにとってアクセス可能であり、且つ、前記プロセッサによって実行されると、請求項1〜12のいずれか一項に記載の方法を前記プロセッサに実施させる1つ又は2つ以上の記憶されている命令シーケンスを含む、コンピュータプログラム製品。
JP2007264838A 2006-10-10 2007-10-10 メモリブロックの割り当てを管理する方法及びデバイス、データ伝送ネットワークシステム、コンピュータ可読媒体、並びにコンピュータプログラム Expired - Fee Related JP5328131B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06291579.8 2006-10-10
EP06291579.8A EP1912402B1 (en) 2006-10-10 2006-10-10 Protection of the data transmission network systems against buffer oversizing attacks

Publications (2)

Publication Number Publication Date
JP2008136176A true JP2008136176A (ja) 2008-06-12
JP5328131B2 JP5328131B2 (ja) 2013-10-30

Family

ID=38007226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007264838A Expired - Fee Related JP5328131B2 (ja) 2006-10-10 2007-10-10 メモリブロックの割り当てを管理する方法及びデバイス、データ伝送ネットワークシステム、コンピュータ可読媒体、並びにコンピュータプログラム

Country Status (3)

Country Link
US (1) US8060593B2 (ja)
EP (1) EP1912402B1 (ja)
JP (1) JP5328131B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1868321B1 (en) * 2006-06-12 2016-01-20 Mitsubishi Denki Kabushiki Kaisha In-line content analysis of a TCP segment stream
US20080256271A1 (en) * 2006-12-12 2008-10-16 Breed Paul T Methods and apparatus for reducing storage usage in devices
US9363193B2 (en) * 2013-11-19 2016-06-07 Cavium, Inc. Virtualized network interface for TCP reassembly buffer allocation
CN104754003B (zh) * 2013-12-30 2019-01-08 腾讯科技(深圳)有限公司 传输数据的方法及系统
WO2021208097A1 (en) * 2020-04-17 2021-10-21 Huawei Technologies Co., Ltd. Methods and apparatuses for resource management of a network connection to process tasks across the network

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10233802A (ja) * 1997-02-07 1998-09-02 Lucent Technol Inc Tcp接続の性能改善方法
EP1170975A1 (en) * 2000-07-05 2002-01-09 Roke Manor Research Limited Method of operating a packet reassembly buffer
JP2002016633A (ja) * 2000-06-30 2002-01-18 Ntt Communications Kk 通信状態制御方法および通信状態制御システム
JP2003173300A (ja) * 2001-09-27 2003-06-20 Toshiba Corp サーバー計算機保護装置、サーバー計算機保護方法、サーバー計算機保護プログラム及びサーバー計算機
US20030123394A1 (en) * 2001-11-13 2003-07-03 Ems Technologies, Inc. Flow control between performance enhancing proxies over variable bandwidth split links
JP2004248198A (ja) * 2003-02-17 2004-09-02 Fujitsu Ltd DoS攻撃防御方法及び装置
US20050018618A1 (en) * 2003-07-25 2005-01-27 Mualem Hezi I. System and method for threat detection and response
US20050235358A1 (en) * 2004-04-15 2005-10-20 International Business Machines Corporation Server denial of service shield
JP2006191537A (ja) * 2004-11-12 2006-07-20 Microsoft Corp 統合ホストプロトコルスタック管理を使用するセキュアなインターネットプロトコル(ispec)オフロードのための方法および装置
JP2007221192A (ja) * 2006-02-14 2007-08-30 Nec Engineering Ltd 攻撃パケットフィルタ装置
JP2007267051A (ja) * 2006-03-29 2007-10-11 Nec Engineering Ltd パケット受信回路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003084A (en) * 1996-09-13 1999-12-14 Secure Computing Corporation Secure network proxy for connecting entities
US6438101B1 (en) * 1997-12-23 2002-08-20 At&T Corp. Method and apparatus for managing congestion within an internetwork using window adaptation
US7213063B2 (en) * 2000-01-18 2007-05-01 Lucent Technologies Inc. Method, apparatus and system for maintaining connections between computers using connection-oriented protocols
US6950947B1 (en) * 2000-06-20 2005-09-27 Networks Associates Technology, Inc. System for sharing network state to enhance network throughput
US20020176361A1 (en) * 2001-05-25 2002-11-28 Yunnan Wu End-to-end traffic management and adaptive multi-hop multimedia transmission
US7403542B1 (en) * 2002-07-19 2008-07-22 Qlogic, Corporation Method and system for processing network data packets
US7496108B2 (en) * 2004-01-07 2009-02-24 International Business Machines Corporation Method for dynamic management of TCP reassembly buffers
US7257840B2 (en) * 2004-01-16 2007-08-14 Cisco Technology, Inc. Preventing network data injection attacks using duplicate-ACK and reassembly gap approaches
US7570653B2 (en) * 2004-09-02 2009-08-04 Cisco Technology, Inc. Buffer allocation using probability of dropping unordered segments
US7822837B1 (en) * 2004-12-30 2010-10-26 Packeteer, Inc. Adaptive correlation of service level agreement and network application performance
KR20090083339A (ko) * 2006-09-13 2009-08-03 아산키아 네트웍스 인코포레이티드 다중경로 환경에서 전송 프로토콜의 성능을 향상시키기 위한 시스템 및 방법

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10233802A (ja) * 1997-02-07 1998-09-02 Lucent Technol Inc Tcp接続の性能改善方法
JP2002016633A (ja) * 2000-06-30 2002-01-18 Ntt Communications Kk 通信状態制御方法および通信状態制御システム
EP1170975A1 (en) * 2000-07-05 2002-01-09 Roke Manor Research Limited Method of operating a packet reassembly buffer
JP2003173300A (ja) * 2001-09-27 2003-06-20 Toshiba Corp サーバー計算機保護装置、サーバー計算機保護方法、サーバー計算機保護プログラム及びサーバー計算機
US20030123394A1 (en) * 2001-11-13 2003-07-03 Ems Technologies, Inc. Flow control between performance enhancing proxies over variable bandwidth split links
JP2004248198A (ja) * 2003-02-17 2004-09-02 Fujitsu Ltd DoS攻撃防御方法及び装置
US20050018618A1 (en) * 2003-07-25 2005-01-27 Mualem Hezi I. System and method for threat detection and response
US20050235358A1 (en) * 2004-04-15 2005-10-20 International Business Machines Corporation Server denial of service shield
JP2006191537A (ja) * 2004-11-12 2006-07-20 Microsoft Corp 統合ホストプロトコルスタック管理を使用するセキュアなインターネットプロトコル(ispec)オフロードのための方法および装置
JP2007221192A (ja) * 2006-02-14 2007-08-30 Nec Engineering Ltd 攻撃パケットフィルタ装置
JP2007267051A (ja) * 2006-03-29 2007-10-11 Nec Engineering Ltd パケット受信回路

Also Published As

Publication number Publication date
EP1912402A1 (en) 2008-04-16
JP5328131B2 (ja) 2013-10-30
EP1912402B1 (en) 2019-08-28
US8060593B2 (en) 2011-11-15
US20080256247A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
US10284594B2 (en) Detecting and preventing flooding attacks in a network environment
EP2289221B1 (en) Network intrusion protection
US10009365B2 (en) System and method for integrated header, state, rate and content anomaly prevention for session initiation protocol
Schuba et al. Analysis of a denial of service attack on TCP
US20070025374A1 (en) TCP normalization engine
WO2008148106A1 (en) Proactive test-based differentiation method and system to mitigate low rate dos attacks
JP4373306B2 (ja) Tcpステートレス・ホグによるtcpサーバに対する分散サービス妨害攻撃を防御する方法および装置
EP2009864A1 (en) Method and apparatus for attack prevention
JP5328131B2 (ja) メモリブロックの割り当てを管理する方法及びデバイス、データ伝送ネットワークシステム、コンピュータ可読媒体、並びにコンピュータプログラム
JP2007336551A (ja) 少なくとも1つのtcpデータセグメントストリームをインラインコンテンツ解析にサブミットするための方法及びデバイス、その方法を実施するための1つ又は複数の命令シーケンスを保持するコンピュータ可読媒体、並びにコンピュータプログラム製品
CN111756685B (zh) 一种基于假设检验的ddos攻击检测方法
US8006303B1 (en) System, method and program product for intrusion protection of a network
CN112583850B (zh) 网络攻击防护方法、装置及系统
Daniels et al. Identification of host audit data to detect attacks on low-level IP vulnerabilities
US11616796B2 (en) System and method to protect resource allocation in stateful connection managers
CN1741473A (zh) 一种网络数据包有效性判定方法及系统
Mathis et al. Congestion exposure (conex) concepts, abstract mechanism, and requirements
US20180270197A1 (en) Intrusion prevention
JP2007537617A (ja) チェックポイントを介して実行ファイルの通過時間を高速化する方法
Bellaïche et al. SYN flooding attack detection by TCP handshake anomalies
EP1898586A1 (en) Protection for data transmission network systems against SYN flood denial of service attacks
Tedesco et al. Data reduction in intrusion alert correlation
JP4481780B2 (ja) Tcpサーバへのsynパケット帯域幅攻撃から防御する方法および装置
Shakhov et al. On modeling counteraction against TCP SYN flooding
Mathis et al. RFC 7713: Congestion Exposure (ConEx) Concepts, Abstract Mechanism, and Requirements

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120806

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130604

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: 20130625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130723

R150 Certificate of patent or registration of utility model

Ref document number: 5328131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees