IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ネットフリックス・インコーポレイテッドの特許一覧

<>
  • 特許-パケット交換網における攻撃軽減 図1
  • 特許-パケット交換網における攻撃軽減 図2
  • 特許-パケット交換網における攻撃軽減 図3
  • 特許-パケット交換網における攻撃軽減 図4
  • 特許-パケット交換網における攻撃軽減 図5
  • 特許-パケット交換網における攻撃軽減 図6
  • 特許-パケット交換網における攻撃軽減 図7
  • 特許-パケット交換網における攻撃軽減 図8A
  • 特許-パケット交換網における攻撃軽減 図8B
  • 特許-パケット交換網における攻撃軽減 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-13
(45)【発行日】2024-11-21
(54)【発明の名称】パケット交換網における攻撃軽減
(51)【国際特許分類】
   H04L 12/22 20060101AFI20241114BHJP
   H04L 43/16 20220101ALI20241114BHJP
【FI】
H04L12/22
H04L43/16
【請求項の数】 20
(21)【出願番号】P 2021578042
(86)(22)【出願日】2020-07-01
(65)【公表番号】
(43)【公表日】2022-09-07
(86)【国際出願番号】 US2020040578
(87)【国際公開番号】W WO2021003318
(87)【国際公開日】2021-01-07
【審査請求日】2023-06-08
(31)【優先権主張番号】62/870,621
(32)【優先日】2019-07-03
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/576,556
(32)【優先日】2019-09-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506267178
【氏名又は名称】ネットフリックス・インコーポレイテッド
【氏名又は名称原語表記】NETFLIX, INC.
【住所又は居所原語表記】121 Albright Way Los Gatos, California 95032 UNITED STATES OF AMERICA
(74)【代理人】
【識別番号】100073184
【弁理士】
【氏名又は名称】柳田 征史
(74)【代理人】
【識別番号】100175042
【弁理士】
【氏名又は名称】高橋 秀明
(72)【発明者】
【氏名】ランドル スチュアート
【審査官】吉田 歩
(56)【参考文献】
【文献】米国特許出願公開第2009/0138968(US,A1)
【文献】Scott Behrens sbehrens,Linux and FreeBSD Kernel: Multiple TCP-based remote denials of service vulnerabilities,2019年06月17日,https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/22
H04L 43/16
(57)【特許請求の範囲】
【請求項1】
ネットワークコンピューティングシステムであって、
トランスポートプロトコルを介してデータを送信および受信するネットワークアダプタと、
前記ネットワークアダプタにおいて受信したデータを少なくとも一時的には格納するメモリ装置と、
前記受信したデータの少なくとも幾つか処理を実行するプロセッサと、を備え、該少なくとも幾つかの処理は、
ネットワークノードから前記ネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、前記SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用することと、
前記ネットワークノードから受信した前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することにより、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値到達したと決定することと、
前記閾値の1つ以上が到達たと決定することに応答して、
前記ネットワークノードをセキュリティへの脅威として識別することと、
前記セキュリティへの脅威を軽減するために1つ以上の救済行動を取ることを含んでおり、前記SACKメッセージは、前記ネットワークノードに送られたデータを追尾するセンドマップを用いて処理されることを特徴とするネットワークコンピューティングシステム。
【請求項2】
前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することは、前記SACKメッセージが処理されるときの前記動作機能と関連付けられている1つ以上のカウンタを増加することを含んでいることを特徴とする、請求項1に記載のネットワークコンピューティングシステム。
【請求項3】
前記カウンタは、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値いつ到達したかを示していることを特徴とする、請求項2に記載のネットワークコンピューティングシステム。
【請求項4】
前記カウンタの1つ以上は、肯定応答(ACK)メッセージを受信すると修正されることを特徴とする、請求項2に記載のネットワークコンピューティングシステム。
【請求項5】
前記セキュリティへの脅威は、前記ネットワークコンピューティングシステムに対して攻撃を実行している攻撃ノードを備えていることを特徴とする、請求項1に記載のネットワークコンピューティングシステム。
【請求項6】
前記セキュリティへの脅威を軽減するために使用される前記1つ以上の救済行動の少なくとも1つは、前記ネットワークノードから受信した前記SACKメッセージの少なくとも幾つかを無視することを備えていることを特徴とする、請求項1に記載のネットワークコンピューティングシステム。
【請求項7】
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、ACK位置をセンドマップ内で移動すべきかどうかの指標を備えていることを特徴とする、請求項1に記載のネットワークコンピューティングシステム。
【請求項8】
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、前記ACK位置を前記センドマップ内でどの位の距離だけ移動すべきかの測定値を備えていることを特徴とする、請求項7に記載のネットワークコンピューティングシステム。
【請求項9】
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、指定された時間期間内に幾つのSACKメッセージが受信されるかの指標を備えていることを特徴とする、請求項1に記載のネットワークコンピューティングシステム。
【請求項10】
以前に受信したSACKメッセージを除去するために前記SACKメッセージをフィルタ処理することを更に備えていることを特徴とする、請求項1に記載のネットワークコンピューティングシステム。
【請求項11】
前記SACKメッセージをフィルタ処理することは更に、重複するSACKメッセージを除去することを備えていることを特徴とする、請求項10に記載のネットワークコンピューティングシステム。
【請求項12】
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、指定された時間期間内に幾つのSACKメッセージがフィルタ処理されたかの指標を備えていることを特徴とする、請求項10に記載のネットワークコンピューティングシステム。
【請求項13】
コンピュータにより実現される方法であって、
ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、前記SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用することと、
前記ネットワークノードから受信した前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することにより、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値到達したと決定することと、
前記閾値の1つ以上が到達たと決定することに応答して、
前記ネットワークノードをセキュリティへの脅威として識別することと、
前記セキュリティへの脅威を軽減するための1つ以上の救済行動を取ることを備え
前記SACKメッセージは、前記ネットワークノードに送られたデータを追尾するセンドマップを用いて処理されることを特徴とするコンピュータにより実現される方法。
【請求項14】
前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値到達したと決定することは、前記ネットワークノードがセンドマップのサイズを増大させるために、複数の送信の攻撃に応答しようとしていると決定することを含んでいることを特徴とする、請求項13に記載のコンピュータにより実現される方法。
【請求項15】
ACKまたはSACKメッセージと関連付けられている1つ以上のカウンタを減少するために崩壊ファクタを前記センドマップに適用することを更に備えていることを特徴とする、請求項14に記載のコンピュータにより実現される方法。
【請求項16】
前記ACKまたはSACKメッセージが除去されている間に、前記ネットワークノードはセキュリティへの脅威として識別されることを特徴とする、請求項15に記載のコンピュータにより実現される方法。
【請求項17】
前記閾値が前記ネットワークノードによりもはや満たされないと決定すると、それに続いて、前記ネットワークノードはセキュリティへの脅威として分類されることから解消されることを特徴とする、請求項16に記載のコンピュータにより実現される方法。
【請求項18】
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、前記コンピュータにおける1つ以上の現在の動作状況に基づいて動的に変更されることを特徴とする、請求項13に記載のコンピュータにより実現される方法。
【請求項19】
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、指定されたトリガの発生に基づいて動的に変更されることを特徴とする、請求項13に記載のコンピュータにより実現される方法。
【請求項20】
1つ以上のコンピュータ実行可能命令を備えている非一時的コンピュータ読み取り可能媒体であって、前記1つ以上のコンピュータ実行可能命令はコンピューティング装置の少なくとも1つのプロセッサにより実行されると、前記コンピューティング装置に、
ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、前記SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用させ、
前記ネットワークノードから受信した前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することにより、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値到達したと決定させ、前記閾値の1つ以上が到達たと決定することに応答して、
前記ネットワークノードをセキュリティへの脅威として識別させ、
前記セキュリティへの脅威を軽減するための1つ以上の救済行動を取らせ
前記SACKメッセージは、前記ネットワークノードに送られたデータを追尾するセンドマップを用いて処理されることを特徴とする非一時的コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願へのクロスリファレンス]
この出願は、2019年7月3日に出願された米国暫定出願第62/870,621号と、2019年9月19日に出願された米国非暫定出願第16/576,556号の恩典を主張するものであり、その開示の全体はここにおいて参考文献として組み込まれる。
【背景技術】
【0002】
毎日、膨大な量のデータがコンピュータネットワークを介して世界中で送信されている。これらのネットワークはデータファイルを、有線または無線データリンクを介して送信されるより小さなデータパケットに分解する。データパケットは多様なプロトコルを使用して送信される。これらのプロトコルはトランスポートプロトコルとよく称される。これらのトランスポートプロトコルはデータがどのように転送されるかを指定することができ、また、データパケットの何れも順序どおりではなく受信されても大丈夫かどうかを示すことを含んでいる。伝送制御プロトコル(TCP)のように、そのような順序どおりではない送信が可能な場合、指定されたシーケンス外のエンドノードで受信されるデータパケットもあり得る。データパケットを順序どおりでなく受信することもあり得るので、エンドノードとサーバは、何れのパケットが到着し、何れのパケットが到着していないかの追尾を続ける。データパケットがエンドノードに到着すると、エンドノードは肯定応答(ACK)メッセージをサーバに送ってサーバにそれらのデータパケットが到着したことを通知する。しかし、この通知プロセスは悪用され易く、攻撃者がサーバの機能を麻痺させるために使用され得る。
【発明の概要】
【0003】
下記により詳細に記述されるように、本開示は、トランスポートプロトコル肯定応答システムにおける弱点を利用するように設計されている攻撃を軽減する方法とシステムを記述する。
【0004】
1つの例においては、コンピュータネットワーキング環境における攻撃を軽減するための、コンピュータにより実現される方法は、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージにトランスポートプロトコル発見的方法を適用することを含んでいる。トランスポートプロトコル発見的方法は、SACKメッセージを処理するときに実行される動作機能に対する閾値を識別する。方法はまた、ネットワークノードから受信したSACKメッセージにトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法に対する閾値が到達されたと決定することも含んでいる。そして、閾値が到達されたと決定することに応答して、方法は、ネットワークノードがセキュリティへの脅威であると識別することと、セキュリティへの脅威を軽減するための救済行動を取ることを含んでいる。
【0005】
幾つかの例においては、SACKメッセージにトランスポートプロトコル発見的方法を適用することは、SACKメッセージが処理されるときの動作機能と関連付けられている種々のカウンタを増加することを含んでいる。カウンタは、トランスポートプロトコル発見的方法に対する閾値がいつ到達されたかを示す。幾つかのケースにおいては、肯定応答(ACK)メッセージを受信するとカウンタは修正される。
【0006】
幾つかの例においては、セキュリティへの脅威は、ネットワークコンピューティングシステムに対して攻撃を行っている攻撃ノードである。セキュリティへの脅威を軽減するために使用される救済行動の少なくとも1つは、ネットワークノードから受信したSACKメッセージの少なくとも幾つかを無視することを含んでいる。
【0007】
幾つかの例においては、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、ACK位置をセンドマップ(何れのデータが送られたかを追尾するためのデータマップ)内で移動すべきかどうかの指標を含んでいる。SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、ACK位置をセンドマップ内でどの位の距離だけ移動すべきかの測定値を含んでいる。他のケースにおいては、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、幾つのSACKメッセージが指定された時間期間内に受信されるかの指標を含んでいる。
【0008】
幾つかの例においては、SACKメッセージは、以前に受信したSACKメッセージを除去するためにフィルタ処理される。幾つかの例においては、SACKメッセージをフィルタ処理することは、重複するSACKメッセージを除去することを更に含んでいる。幾つかの例においては、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、幾つのSACKメッセージが指定された時間期間内にフィルタ処理されたかの指標を含んでいる。
【0009】
幾つかの例においては、トランスポートプロトコル発見的方法に対する閾値が到達されたと決定することは、ネットワークノードがセンドマップのサイズを増大するために、複数の異なるセンドの試みを承認しようと試みていると決定することを含んでいる。幾つかの例においては、ACKまたはSACKメッセージと関連付けられている1つ以上のカウンタを減少するために崩壊ファクタがセンドマップに追加される。幾つかの例においては、ACKまたはSACKメッセージが除去されている間に、ネットワークノードはセキュリティへの脅威として識別される。閾値がネットワークノードによりもはや満たされないと決定すると、それに続いて、ネットワークノードはセキュリティへの脅威と分類されることから解消される。
【0010】
幾つかの例においては、SACKメッセージを処理するときに実行される動作機能に対する閾値は、ネットワークコンピューティングシステムにおける現在の動作状況に基づいて動的に変更される。他の例においては、SACKメッセージを処理するときに実行される動作機能に対する閾値は、指定されたトリガの発生に基づいて動的に変更される。
【0011】
加えて、コンピュータネットワーキング環境における攻撃を軽減するための対応するネットワークコンピューティングシステムは、トランスポートプロトコルを介してデータを送信および受信するネットワークアダプタ、ネットワークアダプタにおいて受信したデータを少なくとも一時的には格納するメモリ装置、および受信データの少なくとも幾つかを処理するプロセッサを含んでいる。プロセッサは、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、SACKメッセージを処理するときに実行される動作機能に対する閾値を識別するトランスポートプロトコル発見的方法を適用する。プロセッサはまた、ネットワークノードから受信したSACKメッセージにトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法に対する閾値が到達されたと決定する。そして、閾値が到達されたと決定することに応答して、プロセッサはネットワークノードをセキュリティへの脅威として識別して、セキュリティへの脅威を軽減するための救済行動を取る。
【0012】
幾つかの例においては、上記の方法はコンピュータ読み取り可能媒体上のコンピュータ読み取り可能命令として符号化される。例えば、コンピュータ読み取り可能媒体は、コンピューティング装置の少なくとも1つのプロセッサにより実行されると、コンピューティング装置に、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用させ、ネットワークノードから受信したSACKメッセージに1つ以上のトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法の1つ以上に対する閾値が到達されたと決定させ、閾値の1つ以上が到達されたと決定することに応答して、ネットワークノードをセキュリティへの脅威として識別させ、セキュリティへの脅威を軽減するための1つ以上の救済行動を取らせる1つ以上のコンピュータ読み取り可能命令を含んでいる。
【0013】
ここにおいて記述されている実施形態の何れからの特徴も、ここにおいて記述されている全般的な原則に従う他の特徴と組み合わせて使用できる。これらのおよび他の実施形態、特徴、および利点は、付随する図面と請求項と連携して下記の詳細な記述を読むことにより、より完全に理解されるであろう。
【0014】
付随する図面は多数の例としての実施形態を示しており、明細書の一部である。下記の記述と共に、これらの図面は本開示の種々の原則を例示および説明している。
【図面の簡単な説明】
【0015】
図1図1は、例としてのコンテンツ配信エコシステムのブロック図である。
図2図2は、図1において示されているコンテンツ配信エコシステム内の例としての配信インフラストラクチャのブロック図である。
図3図3は、図1において示されているコンテンツ配信エコシステム内の例としてのコンテンツプレーヤのブロック図である。
図4図4は、ここにおいて記述されている実施形態が動作するコンピューティング環境である。
図5図5は、パケット交換網における攻撃を軽減するための例としての方法のフロー図である。
図6図6は、種々のカウンタ、量、および接続識別子を識別するチャートである。
図7図7は、種々の閾値、それらの閾値に対する現在値、およびそれらの閾値に対する最大値を識別するチャートである。
図8A図8Aは、時間の経過において更新されるセンドマップの実施形態を例示している。
図8B図8Bは、時間の経過において更新されるセンドマップの実施形態を例示している。
図9図9は、センドマップに適用される前に、崩壊ファクタがメッセージカウンタに適用される実施形態を例示している。
【0016】
図面を通して、同一の参照文字と記述は類似のものを示しているが、同一の要素であるとは限らない。ここにおいて記述されている例としての実施形態は種々の修正および代替の形状を取り得るが、特定の実施形態は図面において例として示されており、ここにおいて詳細に記述される。しかし、ここにおいて記述されている例としての実施形態は開示されている特別な形状に制限されることは意図されていない。そうではなく、本開示は、付随する請求項の範囲内のすべての修正例、等価物、および代替例をカバーしている。
【発明を実施するための形態】
【0017】
本開示は全体的には、パケット交換網における攻撃を軽減することに向けられている。下記により詳細に説明されるように、本開示の実施形態は、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージにトランスポートプロトコル発見的方法を適用する。トランスポートプロトコル発見的方法は、SACKメッセージを処理するときに実行される動作機能に対する閾値を識別する。これらの実施形態もまた、ネットワークノードから受信したSACKメッセージにトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法に対する閾値が到達されたと決定する。そして、閾値が到達されたと決定することに応答して、ネットワークノードはセキュリティへの脅威として識別され、脅威を軽減するための救済行動が取られる。
【0018】
従来のパケット交換網においては、攻撃者はネットワークの設計における弱点を悪用しようと試みることがよくある。例えば、伝送制御プロトコル(TCP)に関して上記に注記したように、サーバにより送られた幾つかのデータパケットは、受信者において順序どおりでなく受信され得る。データパケットは、目的地に到達するためにインターネットを回り道しながら通過することがよくある。このルートに沿うリンクの幾つかは他よりも早いこともあり得る。そのため、幾つかのデータパケットは、受信装置(例えば、エンドノード)に順序どおりではなく到着することもあり、または、完全に行方不明になって受信装置に到達できないこともある(例えば、過負荷となったルータのために)。データパケットは順序どおりではなく受信されることがよくあるので、エンドノードは、何れのパケットが到着し、何れが到着していないかの追尾を続けるためにサーバに肯定応答メッセージを送る。これらの通知は典型的には、センドマップ、スコアボード、データツリー、または他のデータ構造においてサーバにより維持される。ここにおいて使用されているように、「センドマップ」とは、何れのデータがピアノードに送られたかを追尾するデータマップのことである。センドマップは、これらのピアノードからの入ってくる肯定応答を処理するために使用される。データツリーまたは他のデータ構造は、ここにおいて記述されている実施形態においてはセンドマップの代わりに、またはセンドマップに追加して使用できる。
【0019】
サーバから転送されたパケットがエンドノードに到着すると、エンドノードは、それらのデータパケットが到着したことをサーバに通知するために種々のタイプの肯定応答(ACK)メッセージを送る。選択的ACK(SACK)メッセージは、特定の順序どおりではないメッセージの受信を承認し、一方、ACKメッセージは、承認されたメッセージまでのすべての以前のメッセージの受信を承認する。そのため、ファイルが例えば10個の異なるパケットに分割されて送信される場合、受信エンドノードにより送信されたSACKメッセージはパケット5が到着したことを示すことができ、受信ノードエンドにより送信されたパケット3に対するACKメッセージは、パケット1~3のすべてが受信されたことを示すことができる。センドマップはパケット1~3とパケット5が受信され、パケット4とパケット6~10のステータスは不明であるという注記を作成できる。
【0020】
現実世界のシナリオにおいては、もちろん何万、何百万、または何十億もの多くの異なるパケットをTCP接続の間に送ることができ、受信できる。そのため、サーバは非常に多くの数のACKとSACKメッセージを受信している可能性がある。攻撃者はこの事実を利用でき、過剰な量のACK/SACKメッセージを送ることによりサーバを過負荷状態にしようとすることができる。大量のACK/SACKメッセージを送ることにより、センドマップは大量のメッセージのために効率よく機能できなくなるまでサイズが増大し、サーバは応答できなくなり、そのコンピューティング能力のすべては増大し続けるセンドマップを維持するために使用されるようになる。
【0021】
これらのタイプの攻撃を阻止するための幾つかの従来の解決策は、センドマップエントリの総数に制限を設けることを含んでいる。そのような解決策は単に具体的な数字を識別して、その数字を超える如何なるセンドマップエントリの作成も認めないだけである。しかし、センドマップは各新しいセンド(送ること)および送信に対して新しいエントリを作成できるという仮定のもとで動作する。各センドはTCP接続において追尾される必要があるので、センドマップエントリが作成できない場合、サーバはデータパケットを送ろうとはせず、そのため、データが転送されることを妨げ、または、転送できるデータ量を厳しく制限する。他の従来の解決策は、SACKを割り当てることができるセンドマップエントリの数に制限を設ける。追加的なSACKメッセージが入ってきてこの制限に達すると、サーバはSACK情報を破棄し始める。これはサーバの性能を相当に低下させる。
【0022】
ここにおいて記述されている実施形態はこれらの欠点を、攻撃者により実行される行動を識別するトランスポートプロトコル発見的方法を確立することにより回避する。これらのトランスポートプロトコル発見的方法は、センドマップエントリに制限を設けたり、SACKに制限を設ける必要なしに、これらの悪意のある行動を識別するように構成されている。いったん確立されると、トランスポートプロトコル発見的方法は、データパケット肯定応答を処理するときに実行されるある行動に対して制限を確立することによりある行動を監視する。それらの制限に到達すると、ここにおいて記述されているシステムは、あるノードからの行動を監視し、そのノードから受信した肯定応答メッセージに対して実行できる行動(例えば、センドマップの移動)数を制限することを含む救済行動を取る。これらの実施形態は、TCP、ユーザデータグラムプロトコル(UDP)、リライアブルデータプロトコル(RDP)、または他のトランスポートプロトコルを含む任意のトランスポートプロトコルと連携して使用できる。
【0023】
幾つかのケースにおいては、SACKメッセージにトランスポートプロトコル発見的方法を適用することは、SACKメッセージが処理されるときの動作機能と関連付けられている種々のカウンタを増加することを含んでいる。カウンタは、トランスポートプロトコル発見的方法に対する閾値がいつ到達されたかを示している。幾つかのケースにおいては、肯定応答(ACK)メッセージを受信するとカウンタは修正される。
【0024】
セキュリティへの脅威を軽減するために使用される救済行動の少なくとも1つは、ネットワークノードから受信したSACKメッセージの少なくとも幾つかを無視することを含んでいる。幾つかの例においては、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、ACK位置をセンドマップ内で移動すべきかどうかの指標を含んでいる。他のケースにおいては、閾値は、ACK位置をセンドマップ内でどの位の距離だけ移動すべきかの測定値を含んでいる。更に他のケースにおいては、閾値は、指定された時間期間内に幾つのSACKメッセージが受信されるかの指標を含んでいる。
【0025】
幾つかのケースにおいては、SACKメッセージは、以前に受信したSACKメッセージを除去するために、または、重複するSACKメッセージを除去するためにフィルタ処理される。幾つかのケースにおいては、閾値は、指定された時間期間内に幾つのSACKメッセージがフィルタ処理され、およびフィルタ処理されなかったかの指標を含んでいる。
【0026】
幾つかのケースにおいては、トランスポートプロトコル発見的方法に対する閾値が到達されたと決定することは、ネットワークノードがセンドマップのサイズを増大するために複数の異なるセンドの試みを承認しようと試みていると決定することを含んでいる。幾つかの実施形態においては、新しいACKまたはSACKメッセージを処理する前に、古くなったACKまたはSACKカウントを減少するために、センドマップに対して崩壊ファクタが追加される。古くなったACKまたはSACKカウントが減少されている間に、ネットワークノードをセキュリティへの脅威と識別することができる。閾値がネットワークノードによりもはや満たされないと決定すると、それに続いて、ネットワークノードはセキュリティへの脅威と分類されることから解消される。
【0027】
幾つかのケースにおいては、SACKメッセージを処理するときに実行される動作機能に対する閾値は、ネットワークコンピューティングシステムにおける現在の動作状況に基づいて動的に変更される。他のケースにおいては、SACKメッセージを処理するときに実行される動作機能に対する閾値は、指定されたトリガの発生に基づいて動的に変更される。
【0028】
ここにおいて記述されている実施形態の多くは、世界中の視聴者にビデオコンテンツを提供するように設計されている分散型ネットワークを含む、実質的に任意のタイプのコンピューティングネットワークと共に使用できるので、種々のコンピュータネットワークとビデオ配信システムが図1~3を参照して最初に記述される。これらの図は、ユーザにビデオコンテンツを提供するために使用される種々のネットワークと配信方法を紹介している。図4~9は、攻撃ノードを識別して、攻撃を軽減または防ぐための救済行動を取るために、そのようなネットワークを介して送られる、または受信される肯定応答メッセージにトランスポートプロトコル発見的方法が適用される、より具体的な実施形態を記述している。
【0029】
図1は、コンテンツプレーヤ120と通信している配信インフラストラクチャ110を含んでいるコンテンツ配信エコシステム100のブロック図である。幾つかの実施形態においては、配信インフラストラクチャ110はデータを符号化し、符号化されたデータを、データパケットを介してコンテンツプレーヤ120に転送するように構成できる。コンテンツプレーヤ120は符号化されたデータを、配信インフラストラクチャ110を介して受信し、ユーザへの再生のために復号化するように構成できる。配信インフラストラクチャ110により提供されるデータは、オーディオ、ビデオ、テキスト、画像、アニメーション、インタラクティブコンテンツ、触覚データ、仮想または拡張現実データ、位置データ、ゲーミングデータ、または、ストリーミングを介して提供できる任意の他のタイプのデータを含むことができる。
【0030】
配信インフラストラクチャ110は一般的には、任意のサービス、ハードウェア、ソフトウェア、または、コンテンツをエンドユーザに渡すように構成されている他のインフラストラクチャ構成要素である。例えば、配信インフラストラクチャ110は、コンテンツ収集システム、メディアコード変換とパッケージングサービス、ネットワーク構成要素(例えば、ネットワークアダプタ)、および/または、多様な他のタイプのハードウェアとソフトウェアを含むことができる。配信インフラストラクチャ110は、非常に複雑な配信システム、単一のメディアサーバまたは装置、または、その中間の任意のものとして実現できる。幾つかの例においては、サイズまたは複雑さに拘わりなく、配信インフラストラクチャ110は少なくとも1つの物理プロセッサ112と少なくとも1つのメモリ装置114を含むことができる。1つ以上のモジュール116を、ここにおいて検討されるような適応ストリーミングを可能にするためにメモリ114に格納またはロードできる。
【0031】
コンテンツプレーヤ120は一般的には、配信インフラストラクチャ110を介して提供されたオーディオおよび/またはビデオコンテンツを再生できる任意のタイプまたは形状の装置またはシステムである。コンテンツプレーヤ120の例としては、制限されることはないが、モバイルフォン、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、テレビ、セットトップボックス、デジタルメディアプレーヤ、仮想現実ヘッドセット、拡張現実眼鏡、および/または、デジタルコンテンツを表現できる任意の他のタイプまたは形状の装置が含まれる。配信インフラストラクチャ110と同様に、コンテンツプレーヤ120は、物理プロセッサ122、メモリ124、および1つ以上のモジュール126を含むことができる。ここにおいて記述されている適応ストリーミングプロセスの幾つかまたはすべてはモジュール126により実行でき、または可能にすることができ、幾つかの例においては、配信インフラストラクチャ110のモジュール116は、マルチメディアコンテンツの適応ストリーミングを提供するために、コンテンツプレーヤ120のモジュール126と連携して動作できる。
【0032】
ある実施形態においては、図1におけるモジュール116および/または126の1つ以上は、コンピューティング装置により実行されると、そのコンピューティング装置に1つ以上のタスクを実行させることができる1つ以上のソフトウェアアプリケーションまたはプログラムであることができる。例えば、下記により詳細に記述されるように、モジュール116と126の1つ以上は、1つ以上の汎用コンピューティング装置を起動するように格納および構成されているモジュールであることができる。図1におけるモジュール116と126の1つ以上もまた、1つ以上のタスクを実行するように構成されている1つ以上の特殊目的コンピュータのすべてまたは一部であることもできる。
【0033】
加えて、ここにおいて記述されているモジュール、プロセス、アルゴリズム、またはステップの1つ以上は、データ、物理装置、および/または、物理装置の表現を1つの形状から他の形状に変換できる。例えば、ここにおいて詳述されているモジュールの1つ以上は欠陥識別データを受信でき、その欠陥識別データを、インタラクティブユーザインタフェースにおける提示のために準備することにより欠陥識別データを変換でき、変換の結果をインタラクティブユーザインタフェースに提供し、変換された欠陥識別データをインタラクティブユーザインタフェース上に表現できる。追加的に、または代替的に、ここにおいて詳述されているモジュールの1つ以上は、プロセッサ、揮発性メモリ、不揮発性メモリ、および/または、物理コンピューティング装置の任意の他の部分を、コンピューティング装置上で実行されること、データをコンピューティング装置に格納すること、および/または、コンピューティング装置と相互作用することにより1つの形状から他の形状に変換できる。
【0034】
物理プロセッサ112と122は一般的には、コンピュータ読み取り可能命令を解釈および/または実行できる、任意のタイプの形状の、ハードウェアにより実現される処理ユニットである。1つの例においては、物理プロセッサ112と122はそれぞれ、モジュール116と126の1つ以上にアクセス、および/または、それを修正できる。追加的に、または、代替的に、物理プロセッサ112と122は、マルチメディアコンテンツの適応ストリーミングを促進するために、モジュール116と126の1つ以上を実行できる。物理プロセッサ112と122の例としては、制限されることはないが、マイクロプロセッサ、マイクロコントローラ、中央演算処理装置(CPU)、ソフトコアプロセッサを実現するフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、それらの1つ以上の部分、それらの1つ以上の変形または組み合わせ、および/または、任意の他の適切な物理プロセッサが含まれる。
【0035】
メモリ114と124は一般的には、データおよび/またはコンピュータ読み取り可能命令を格納できる、任意のタイプまたは形状の揮発性または不揮発性格納装置または媒体である。1つの例においては、メモリ114および/または124は、モジュール116と126の1つ以上を格納、ロード、および/または維持できる。メモリ114および/または124の例としては、制限されることはないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、光ディスクドライブ、キャッシュ、それらの1つ以上の変形または組み合わせ、および/または、任意の他の適切なメモリ装置またはシステムが含まれる。
【0036】
図2は、ある実施形態に係るコンテンツ配信インフラストラクチャ110の例としての構成要素のブロック図である。配信インフラストラクチャ110は、格納装置210、サービス220、およびネットワーク230を含むことができる。格納装置210は一般的には、任意の装置、装置のセット、および/または、エンドユーザに渡すためのコンテンツを格納できるシステムである。格納装置210は、テラバイトまたはペタバイトのデータを格納できる装置を有する中央貯蔵構造を含むことができ、および/または、分散型格納システム(例えば、ある領域内のミラーリングされたコンテンツへのより高速なアクセスを提供するために、インターネット相互接続位置におけるコンテンツに対してミラーリングまたはキャッシングをするアプライアンス)を含むことができる。
【0037】
示されているように、格納装置210は、特には、コンテンツ212、ユーザデータ214、および/または、ログデータ216を格納できる。コンテンツ212は、テレビ番組、映画、ビデオゲーム、ユーザにより生成されたコンテンツ、および/または、任意の他の適切なタイプまたは形状のコンテンツを含むことができる。ユーザデータ214は、個人的に識別可能な情報(PII)、支払情報、嗜好設定、言語とアクセス可能性設定、および/または、特別なユーザまたはコンテンツプレーヤと関連付けられている任意の他の情報を含むことができる。ログデータ216は、視聴履歴情報、ネットワークスループット情報、および/または、ユーザの配信インフラストラクチャ110との接続または配信インフラストラクチャ110との相互作用と関連付けられている任意の他の測定基準を含むことができる。
【0038】
サービス220は、個人化サービス222、コード変換サービス224、および/または、パッケージングサービス226を含むことができる。個人化サービス222は、推奨、コンテンツストリーム、および/または、配信インフラストラクチャ110とのユーザの経験の他の態様を個人化できる。コード変換サービス224は、異なる符号化の間のリアルタイムのスイッチングを可能にする異なるビットレートにおける媒体を圧縮できる。パッケージングサービス226は、ストリーミングのためにネットワーク230などのようなデリバリネットワークに符号化されたビデオを展開する前にパッケージ化することができる。
【0039】
ネットワーク230は一般的には、通信またはデータ転送を促進できる任意の媒体またはアーキテクチャである。ネットワーク230は、無線および/または有線接続を使用して、トランスポートプロトコルを介して通信および/またはデータ転送を促進できる。ネットワーク230の例としては、制限されることはないが、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、パワーライン通信(PLC)、セルラーネットワーク(例えば、モバイル通信(GSM(登録商標))ネットワークのためのグローバルシステム)、それらの1つ以上の部分、それらの1つ以上の変形または組み合わせ、および/または、任意の他の適切なネットワークが含まれる。例えば、図2において示されているように、ネットワーク230は、インターネットバックボーン232、インターネットサービスプロバイダ234、および/または、ローカルネットワーク236を含むことができる。
【0040】
図3は、図1のコンテンツプレーヤ120の例としての実現形態のブロック図である。コンテンツプレーヤ120は一般的には、コンピュータ実行可能命令を読むことができる任意のタイプまたは形状のコンピューティング装置である。コンテンツプレーヤ120としては、制限されることはないが、ラップトップ、タブレット、デスクトップ、サーバ、セルラーフォン、マルチメディアプレーヤ、埋め込み型システム、ウェアラブルデバイス(例えば、スマートウォッチ、スマート眼鏡など)、スマート車両、ゲーミングコンソール、スマート電気器具などのようなインターネットのモノ(IoT)装置、それらの1つ以上の変形または組み合わせ、および/または、任意の他の適切なコンピューティング装置が含まれる。
【0041】
図3において示されているように、プロセッサ122とメモリ124に加えて、コンテンツプレーヤ120は、通信インフラストラクチャ302と、ネットワーク接続324に結合されている通信インタフェース322を含むことができる。コンテンツプレーヤ120はまた、グラフィックス装置328に結合されているグラフィックスインタフェース326、入力装置336に結合されている入力インタフェース334、および格納装置340に結合されている格納インタフェース338も含むことができる。
【0042】
通信インフラストラクチャ302は一般的には、コンピューティング装置の1つ以上の構成要素間の通信を促進できる任意のタイプまたは形状のインフラストラクチャである。通信インフラストラクチャ302の例としては、制限されることはないが、任意のタイプまたは形状の通信バス(例えば、周辺構成要素相互接続(PCI)バス、PCI Express(PCIe)(周辺構成要素相互接続エクスプレス)バス、メモリバス、フロントサイドバス、集積駆動電子機器(IDE)バス、制御または登録バス、ホストバスなど)が含まれる。
【0043】
注記したように、メモリ124は一般的には、データおよび/または他のコンピュータ読み取り可能命令を格納できる任意のタイプまたは形状の揮発性または不揮発性格納装置または媒体である。幾つかの例においては、メモリ124は、プロセッサ122による実行のためにオペレーティングシステム308を格納および/またはロードできる。1つの例においては、オペレーティングシステム308は、コンピュータハードウェアとソフトウェアリソースを管理し、および/または、共通のサービスを、コンテンツプレーヤ120上のコンピュータプログラムおよび/またはアプリケーションに提供するソフトウェアを含むことができ、および/または、それらであることができる。
【0044】
オペレーティングシステム308は、ハードウェア構成要素(例えば、グラフィックスインタフェース326、オーディオインタフェース330、入力インタフェース334、および/または、格納インタフェース338)を管理することなどのような、種々のシステム管理機能を実行できる。オペレーティングシステム308はまた、再生アプリケーション310に対するメモリ管理モデルを処理することもできる。再生アプリケーション310のモジュールは、例えば、コンテンツバッファ312、オーディオデコーダ318、およびビデオデコーダ320を含むことができる。
【0045】
再生アプリケーション310は、通信インタフェース322を介してデジタルコンテンツを検索し、グラフィックスインタフェース326を通してデジタルコンテンツを再生するように構成できる。ビデオデコーダ320は、ビデオデータのユニットをビデオバッファ316から読むことができ、ビデオデータのユニットを、持続時間において再生時間の固定の長さに対応するビデオフレームのシーケンスにおいて出力できる。ビデオデータのユニットをビデオバッファ316から読むことにより、ビデオデータのユニットをビデオバッファ316から効果的に取り出すことができる。そして、ビデオフレームのシーケンスはグラフィックスインタフェース326により描写でき、ユーザに表示するためにグラフィックス装置328送信できる。
【0046】
配信インフラストラクチャ110の帯域幅が制限され、および/または、変動する状況においては、再生アプリケーション310は、多様なファクタ(シーンの複雑さ、オーディオの複雑さ、ネットワーク帯域幅、装置能力など)に基づいて、異なるビットレートのビデオ符号化からビデオデータおよび/またはオーディオデータの連続する部分をダウンロードしてバッファに格納できる。幾つかの実施形態においては、ビデオ再生品質には、オーディオ再生品質よりも高い優先度を与えることができる。オーディオ再生とビデオ再生品質はまた、互いにバランスを取ることができ、幾つかの実施形態においては、オーディオ再生品質には、ビデオ再生品質よりも高い優先度を与えることができる。
【0047】
コンテンツプレーヤ120はまた、格納インタフェース338を介して通信インフラストラクチャ302に結合されている格納装置340を含むこともできる。格納装置340は一般的には、データおよび/または他のコンピュータ読み取り可能命令を格納できる任意のタイプまたは形状の格納装置または媒体である。例えば、格納装置340は、磁気ディスクドライブ、ソリッドステートドライブ、光ディスクドライブ、フラッシュドライブなどであってよい。格納インタフェース338は一般的には、格納装置340とコンテンツプレーヤ120の他の構成要素との間でデータを転送するための任意のタイプまたは形状のインタフェースまたは装置である。
【0048】
多くの他の装置またはサブシステムをコンテンツプレーヤ120に含むことができ、またはコンテンツプレーヤ120に接続できる。逆に、図3において例示されている構成要素と装置の1つ以上は、ここにおいて記述され、および/または、例示されている実施形態を実践するためには存在する必要はない。上記に言及した装置とサブシステムはまた、図3に示されているものとは異なる方法で相互接続することもできる。コンテンツプレーヤ120はまた、任意の数のソフトウェア、ファームウェア、および/またはハードウェア構成を採用できる。
【0049】
図4は、ネットワークコンピューティングシステム401を含んでいるコンピューティング環境400を例示している。ネットワークコンピューティングシステム401は、ローカルコンピューティングシステムまたは分散型(例えば、クラウド)コンピューティングシステムを含んでいる、実質的に任意のタイプのコンピューティングシステムであってよい。ネットワークコンピューティングシステム401は、少なくとも1つのプロセッサ402と少なくとも何らかのシステムメモリ403を含むことができる。コンピューティングシステム401は、多様な異なる機能を実行するためのプログラムモジュールを含むことができる。プログラムモジュールはハードウェアに基づくものであっても、ソフトウェアに基づくものであってもよく、または、ハードウェアとソフトウェアの組み合わせを含むことができる。各プログラムモジュールは、下記において記述される機能を含む、指定された機能を実行するためにコンピューティングハードウェアおよび/またはソフトウェアを使用できる。
【0050】
ネットワークコンピューティングシステム401はまた、他のコンピュータシステムと通信するように構成されているネットワークアダプタ404も含んでいる。ネットワークアダプタ404は、データを他のコンピュータシステムから受信でき、および/または、データを他のコンピュータシステムに送信できる任意の有線または無線通信手段を含むことができる。これらの通信手段は、イーサネット(登録商標)アダプタ、WIFIアダプタ、例えば、ハードウェアに基づく受信機405、ハードウェアに基づく送信機406、または、データの受信と送信の両者が可能な組み合わされたハードウェアに基づくトランシーバを含むハードウェア無線装置を含むことができる。無線装置は、セルラー無線装置、ブルートゥース(登録商標)無線装置、全地球測位システム(GPS)無線装置、または他のタイプの無線装置であってよい。ネットワークアダプタ404は、データベース、モバイルコンピューティング装置(モバイルフォンまたはタブレットなどのような)、埋め込み型または他のタイプのコンピューティングシステムと相互作用するように構成できる。
【0051】
ネットワークコンピューティングシステム401はまた、トランスポートプロトコル発見的方法モジュール407も含んでいる。トランスポートプロトコル発見的方法モジュール407は、それらの発見的方法に対する1つ以上の閾値409を有する発見的方法408を生成する。例えば、ネットワークコンピューティングシステム401がACKメッセージ417、SACKメッセージ418、または他のタイプの肯定応答(例えば、否定応答(NACK))を含むデータ416を処理するときに、ネットワークコンピューティングシステム401はある行動を取る。上記に注記したように、これらの行動の1つは、センドマップエントリを作成または更新することを含んでいる。コンピューティングシステム(例えば、パーソナルコンピュータ414またはモバイル装置415)がACK417またはSACK518を送るときに、ネットワークコンピューティングシステム401は、そのセンドマップに対するアップデート(最新情報)を作成する。幾つかの実施形態においては、ネットワークコンピューティングシステム401はまた、悪意のある行動を検出するように設計されている発見的方法408も解析する。
【0052】
これらの発見的方法の1つは、受信ノードにより送られたSACKメッセージに対するACKメッセージの比を調べる。例えば、ネットワークコンピューティングシステム401が、ユーザのモバイル装置415にデータ416(例えば、ビデオコンテンツ)を送信するサーバである場合、そのモバイル装置は、ACKとSACKメッセージの組み合わせを時間の経過においてネットワークコンピューティングシステム401に送り返す。ACKとSACKメッセージは必ずしも一緒に送られるとは限らず、時間の経過において送られ、ネットワークコンピューティングシステム401は、ACK対SACK比におけるパターンを検出できる。モバイル装置415がACKより非常に多くのSACKを送っている場合、このACKに対するSACKの高い比は、モバイル装置が攻撃ノードであることを示すことができる。その時点において、ネットワークコンピューティングシステム401はモバイル装置415を攻撃ノードとして標識を付けるか、または、ネットワークコンピューティングシステムは装置を攻撃者として標識を付ける前に待機して、モバイル装置に関連する他の発見的方法を解析する。
【0053】
ネットワークコンピューティングシステム401が調べる他の発見的方法408はACKとSACKメッセージにより作成された移動の数である。例えば、ACK417またはSACKメッセージ418がネットワークコンピューティングシステム401において受信されると、システムは、すべての以前のデータパケットがエンドノード(例えば、モバイル装置415)で受信されたこと示す、センドマップにおけるポインタをセンドマップに沿って移動する必要があるかどうかを決定する。ポインタを移動することは、ネットワークコンピューティングシステム401による演算を必要とし、そのため、過度の移動は過度の演算を必要とする。所与のセンドマップに対して多すぎる移動がなされる場合、センドマップ移動はネットワークコンピューティングシステム401のリソースを圧迫する可能性が高く、通信は遅くなり、ゆっくり進むか、または停止することもあり得る。そのため、ここにおいて記述されている実施形態においては、ネットワークコンピューティングシステム401は、各エンドノードにより引き起こされたセンドマップ移動の数を監視する。エンドノードが多すぎる移動を引き起こしている場合、ネットワークコンピューティングシステム401の脅威軽減モジュール412は、そのエンドノードからのACKとSACKに応答することを停止し、他の軽減行動413を取ることができる。これらの考え方は、図5の方法500に関して下記に更に記述される。
【0054】
図5は、パケット交換網における攻撃を軽減するための、例としてのコンピュータにより実現される方法500のフロー図である。図5において示されているステップは、図4において例示されているネットワークコンピューティングシステムを含む、任意の適切なコンピュータ実行可能コードおよび/またはコンピューティングシステムにより実行できる。1つの例においては、図5において示されているステップのそれぞれは、その構造が複数のサブステップを含んでいる、または、複数のサブステップにより表わされるアルゴリズムを表わすことができ、その例は下記により詳細に提供される。
【0055】
図5の方法500におけるステップ510において例示されているように、図4のネットワークコンピューティングシステム401は、ネットワークノード(例えば、415)からネットワークアダプタ404において受信したSACKメッセージ418に1つ以上のトランスポートプロトコル発見的方法408を適用する。トランスポートプロトコル発見的方法408は、SACKメッセージを処理するときに実行される動作機能に対する閾値409を識別できる。閾値は下記の1つ以上を含むことができる。許可されているセンドマップポインタ移動の閾値数を識別するACK移動閾値、SACKメッセージに対する受信されたACKメッセージの比を識別するACK対SACK閾値、SACKメッセージがセンドマップポインタ移動(または、ここにおいての「移動」)を引き起こす場合と、SACKメッセージが移動を引き起こさない場合を識別するSACK対移動閾値、攻撃者の公表はフォールスポジティブ(偽陽性)であったかどうかを識別する修復閾値、および、ネットワークコンピューティングシステムに格納されているリスト(例えば、データベース420のリスト421)におけるセンドマップエントリの最小カウントを識別するマップ最小閾値。ここで、多くの異なる閾値409をトランスポートプロトコル発見的方法において使用でき、上記の閾値はそのような値の例であり、制限は意図されていないということが認識されるであろう。
【0056】
方法500のステップ520において、図4の閾値監視モジュール410は、ネットワークノード(例えば、415)から受信したSACKメッセージ418にトランスポートプロトコル発見的方法408を適用することにより、トランスポートプロトコル発見的方法の少なくとも1つに対する閾値409が到達されたと決定する。閾値監視モジュール410は閾値を監視し、それらの値がいつ超えられたかを決定するように構成されている。幾つかの実施形態においては、閾値に対応するカウンタが実装される。各メッセージ処理イベント(例えば、センドマップ移動イベント)が起こると、その行動と関連付けられているカウンタは増加される。多くの連続する増加の後に、閾値監視モジュール410は、カウンタ値が、そのカウンタに対する確立された閾値409を超えたと決定できる。
【0057】
閾値409の1つ以上が到達されたと決定することに応答して、セキュリティ脅威識別モジュール411は、ステップ530において、ネットワークノード(例えば、415)をセキュリティへの脅威として識別し、ステップ540において、脅威軽減モジュール412は、セキュリティへの脅威を削減または除去するために、1つ以上の救済、軽減行動413を取る。軽減行動413は、セキュリティへの脅威から受信したACK/SACKメッセージのより少ない数に応答すること、セキュリティへの脅威からのACK/SACKメッセージを完全に無視すること、セキュリティへの脅威からのACK/SACKメッセージに応答して実行される行動の数またはタイプを減少すること(例えば、より少ないセンドマップ移動動作を実行すること、またはセンドマップにおいてより少ないACK/SACKエントリを作成すること)、ACK/SACKをフィルタ処理すること、ACK/SACKメッセージを処理するときに崩壊ファクタを導入すること、または、他の軽減行動を取ることを含むことができる。幾つかのケースにおいては、セキュリティ脅威識別モジュール411は、セキュリティへの脅威として標識を付けられたノードの監視を継続する。時間の経過において、ノードの閾値409が通常の予期される範囲に戻った場合、このノードを非脅威として再分類することができる。
【0058】
幾つかの実施形態においては、上記に注記したように、これらの閾値409はカウンタと関連付けられている。例えば、図6において示されているように、チャート600における異なるカウンタは異なる行動を追尾する。それらの行動が起きると(例えば、センドマップポインタが移動されると)、その行動と関連付けられているカウンタ601は増加される。ネットワークコンピューティングシステム401は、あるノードから受信したACKメッセージの総数を示すACK_Totalカウンタなどのようなカウンタを確立する。送ってくる側と受信する側を識別する接続は、接続識別子603により識別できる。例えば、図4のモバイル手持ち型装置415が「A」として識別され、ネットワークコンピューティングシステム401が「B」として識別される場合、接続は「AB」と称することができる。それらの装置が複数のトランスポートプロトコル接続を有している(同時または連続しての何れか)ケースにおいては、接続識別子603は、「AB1」または「AB2」などのように数字を含むことができる。そのため、カウンタ601の固有のセットをノード間の各接続(例えば、「AB1」)に適用でき、またはカウンタを、ノードAとBとの間の接続のすべてに適用できる。そのため、カウンタ601は、通信がサーバとエンドノードとの間で行ったり来たりと転送されるときに、時間の経過において種々の閾値を追尾する。
【0059】
チャート600において、カウンタACK_Totalは、量602により示されているように、ネットワークコンピューティングシステム401において幾つのACKメッセージが受信されたかを示している。現在の量は62であり、ネットワークコンピューティングシステム401がノード「B」から62のACKメッセージを受信したことを示している。SACK_Totalカウンタは、53の受信されたSACKメッセージのカウントを示しており、Movedカウンタは、14のセンドマップポインタ移動の数量を示している。非常に大きな数の「移動」は、SACKメッセージが不法なものであり、セキュリティへの脅威からの攻撃の一部であることを示すことができる。No_Moveカウンタは、センドマップポインタを移動することなくSACKメッセージが受信された回数を追尾する。ほとんどのSACKメッセージは「移動なし」という結果になり、そのため、「移動なし」の低いカウントは典型的には、メッセージ送信が正常に動作していることを示している。ACK、SACK、または他の肯定応答メッセージがネットワークコンピューティングシステム401において受信されると、ネットワークコンピューティングシステム401は総計にメッセージを追加し、センドマップポインタがいつ移動されたかを注記し、それらの動作機能が実行されるたびに関連付けられているカウンタを増加する。多くの異なるタイプのカウンタを、異なるタイプのメッセージと、これらのメッセージに応答して実行される異なるタイプの行動を追尾するために実装できるということは理解されるであろう。
【0060】
図7は、異なる閾値701、それらの関連付けられている現在値702、および最大値703を有しているチャート700を例示している。名前が示しているように、現在値702は、それぞれの閾値に対するカウンタの現在値を示している。最大値703は、その閾値に対する最大の許可されている値を示している。その閾値に対するカウンタの値が最大値703を超えて増加されると、図4の閾値監視モジュール410は、その閾値701に対する閾値が到達されたことを示す。閾値701は、ネットワークコンピューティングシステム401が追尾および監視できる潜在的トランスポートプロトコル発見的方法のサンプリングを表わしている。
【0061】
図7において、ACK_Movement_Thresholdは、所与の時間枠内で許可されるセンドマップポインタ移動の閾値数を識別する。現在値702は27であり、27のセンドマップポインタ移動が所与の時間枠において、または指定されたイベントの発生のときから起きたことを示している。最大値50に到達すると、図4のセキュリティ脅威識別モジュール411は、エンドノード(例えば、パーソナルコンピュータ414)をセキュリティへの脅威として識別する。ACK_to_SACK_Thresholdは、指定された時間枠内、または指定されたイベントの発生のときから、エンドノードから受信したSACKメッセージに対する、受信したACKメッセージの比を識別する。SACK_to_Move_Thresholdは、SACKメッセージがセンドマップポインタ移動を引き起こした場合と、SACKメッセージが移動を引き起こさない場合を識別する。
【0062】
SACK_to_Move_Thresholdは、no_move(移動なし)に対するSACK移動の百分率(例えば、図7においては61%)であってよく、その閾値百分率が超えられると、セキュリティ脅威識別モジュール411はエンドノードをセキュリティへの脅威として識別する。Restoral_Thresholdは、攻撃者の公表がフォールスポジティブ(偽陽性)であったかどうかを示す百分率を識別し、Map_Minimum閾値は、エンドノードがセキュリティへの脅威であるかどうかを決定することを開始する前に格納されているセンドマップエントリの最小カウントを識別する。上記に識別されたカウンタと同様に、識別された閾値701は、ネットワークコンピューティングシステム401が追尾および監視できる潜在的トランスポートプロトコル発見的方法のサンプリングを表わしており、他の閾値は、リスト表示されている閾値と組み合わせて、またはリスト表示されている閾値の代替として使用できるということは理解されるであろう。
【0063】
幾つかのケースにおいては、カウンタの現在値は、あるタイプの肯定応答メッセージを受信すると修正され、またはリセットされることさえもある。例えば、コンピュータシステム414からのACKメッセージ417を受信すると、ネットワークコンピューティングシステム401は、カウンタ601におけるACK_Totalなどのような肯定応答メッセージを追尾するカウンタを修正できる。エンドノードが過度の量のACKメッセージまたはSACKメッセージを送っている場合、閾値監視モジュール410は閾値が超えられたと決定し、セキュリティ脅威識別モジュール411はエンドノードを脅威として識別する。
【0064】
図8Aは、送られてきたパケット801を識別する、複数のエントリを有するセンドマップ800Aの実施形態を例示している。ACKメッセージがネットワークアダプタ404において受信されると、ネットワークコンピューティングシステム401は、ACKメッセージ802までの以前に送られたメッセージのそれぞれを承認する。図8Aと8Bにおいて、承認されたメッセージは、右下がりの斜線による陰影により示され、選択的に承認されたメッセージは右上がりの斜線による陰影により示され、承認されていないパケットは陰影が付けられていない。803においてネットワークコンピューティングシステム401は、そのパケットの受信を承認するSACKメッセージ803を受信する。SACKメッセージ804も同様に、順序どおりでなく受信したパケットの受信を承認する。ACKメッセージ805が受信されると、ACKは、ACK805までのすべてのデータパケット801が受信されたことを示す。そのため、図8Bにおいて示されているように、ACK805までのすべてのパケット801は承認されたものとして陰影が付けられる。新しく受信されたSACKメッセージ806は、他の順序どおりではないパケットが選択的に承認されたことを示している。
【0065】
ACKが移動されると(802から805などのように)、「Moved」カウンタが1だけ増加される。幾つかの実施形態においては、過度の量のセンドマップ移動動作(例えば、図7のACK_Movement_Thresholdを超える)は、エンドノードがセキュリティへの脅威であることを示しており、セキュリティ脅威識別モジュール411はエンドノードを脅威として標識を付ける。幾つかのケースにおいては、ネットワークコンピューティングシステム401は、ACK位置をどの位の距離だけ移動すべきかを決定できる。図8Aにおいて、ACK802は、ACKメッセージ805により指定されたパケットまで9個の位置を移動される。エンドノードから受信した多数の短い移動は潜在的攻撃を示すことができる。そのため、SACKメッセージを処理するときに実行される動作機能の1つは、ACK位置をセンドマップ(例えば、800A/800B)内でどの位の距離だけ移動すべきかを測定することを含んでいる。更に、多数のSACKメッセージが短い時間期間に受信された場合、セキュリティ脅威識別モジュール411はまた、エンドノードを脅威として標識を付ける。
【0066】
ネットワークコンピューティングシステム401がエンドノードを脅威として標識を付けると、脅威軽減モジュール412は、エンドノードにより引き起こされた脅威を削減または削除するために種々の軽減行動413を取る。1つの軽減行動は、そのエンドノードとの通信を完全に切断することである。他の軽減行動は、そのエンドノードから受信したSACKメッセージのすべて、または幾つかを無視することである。他の軽減行動は、他のタイプのACKメッセージを無視すること、または、あるACKメッセージにのみ応答することである。エンドノードからのこれらのACK/SACKメッセージの幾つか、またはすべてを無視することにより、ネットワークコンピューティングシステム401は、センドマップを維持することに多くのコンピューティングリソースを消費することを停止し、そのため、この攻撃前線を効果的に削除する。プロセッサ402は健全なレートで動作を継続し、攻撃ノードからの処理要求に過度に専念しない。
【0067】
図9は、SACKメッセージが処理される前に、SACKメッセージがフィルタ処理される実施形態を例示している。このフィルタ処理は、セキュリティへの脅威を検出する前に実行できる。1つの実施形態においては、SACKメッセージ901はサーバ(例えば、図4のネットワークコンピューティングシステム401)において受信される。サーバは、SACKメッセージ901の1つ以上をフィルタ処理するためのフィルタ902を適用し、そのため、フィルタ処理されたSACKメッセージはサーバにより処理されない(例えば、センドマップ904は更新されない)。フィルタ902はまた、以前に受信したSACKメッセージを除去、または重複するSACKメッセージを除去するためにも使用できる。フィルタ処理されたメッセージは、センドマップ904において処理される前にフィルタ処理され、そのため、処理リソースは、センドマップを更新するためにそれらのメッセージを処理することに消費されない。そのため、このタイプのフィルタ処理は、そうでなければSACKメッセージ901を処理することに消費されていたCPUとメモリのオーバヘッドを大いに節約できる。幾つかのケースにおいては、ネットワークコンピューティングシステム401は、指定された時間期間内に幾つのSACKメッセージがフィルタ処理されたかを追尾し、その数を、特定のエンドノードが攻撃を実行しようと試みているかどうかを決定するために使用する。
【0068】
崩壊ファクタ903は、攻撃ノードをより迅速に識別するために使用される。崩壊ファクタ903は、カウンタの数量を一様に減少し、それにより、閾値量に到達するために必要な時間量を減少するためにカウンタ(例えば、図7の702)に適用される。例えば、攻撃者がセンドマップウィンドウのサイズを速く増大しようと試みて多数のACK(例えば、50,000のACK)を送ろうとしても、ACK対SACK比は非常に大きいので、そのため、確立されたACK対SACK比閾値(例えば、60%)内に良好に留まる可能性が高い。比がこの閾値内である間は、攻撃者はセンドマップウィンドウを拡張するためにACKメッセージを送信し続けることができる。しかし、崩壊ファクタ903を指定された時間増加(例えば、毎秒)でカウンタに一様に適用することにより、カウンタは1/2または1/4または何らかの他の比で減少される。
【0069】
すべてのカウンタが同じ崩壊比で減少されるので、ACK対SACK比もまた同じに留まる。例えば、上記の例において、100のSACKが50,000のACKと共に受信された場合、ACK対SACK比は50,000:100となる。1/4の崩壊ファクタが適用された場合、カウンタはそれぞれ元の値の1/4に減少され、そのため12,500:25となる。カウンタ値における更なる減少は、ACK対SACK比を確立されたACK対SACK比閾値(例えば、60%のACK対SACK)により近づけることができる。ACK対SACK比閾値が到達されると、システムは攻撃者を無力にするための軽減行動を取ることができる。より効率的な方法でこの閾値に到達することにより、攻撃者をより迅速に識別且つ停止させることが可能になる。
【0070】
幾つかのケースにおいては、図4のセキュリティ脅威識別モジュール411は、古くなったACKまたはSACKメッセージを除去している間に、エンドノード(例えば、415)をセキュリティへの脅威として識別するように構成されている。例えば、セキュリティ脅威識別モジュール411は、エンドノード415が閾値量を超える数のACK/SACKメッセージを送っていることを決定するためにカウンタと協議できる。ネットワークコンピューティングシステム401は、新しいメッセージが処理される前に、より古いACK/SACKメッセージが適切に処理されることを確実にできる。より古い、おそらくは古くなったACK/SACKメッセージが処理されている間に、ネットワークコンピューティングシステム401は同時にエンドノード415がセキュリティへの脅威であると決定できる。
【0071】
しかし、幾つかのケースにおいては、エンドノード415は意図的にネットワークコンピューティングシステム401を攻撃していないことがある。例えば、エンドノード415により送られたACK/SACKメッセージは、故障または狭帯域幅ネットワークリンクのために遅延されていることもあり得る。例えば、ネットワークが重度に輻輳していることもあり得、あるタイプの干渉に遭遇していることもあり得る。そのため、ACK/SACKメッセージが大きな束となって到着することもあり得る。セキュリティ脅威識別モジュール411はエンドノード415にセキュリティへの脅威として標識を付け、1つ以上の軽減行動413を開始できる。しかし、ネットワークコンピューティングシステム401はエンドノード415の監視を継続することができ、時間の経過において、ノード415により送られた肯定応答メッセージが確立された閾値より低い通常のレベルに戻れば、セキュリティ脅威識別モジュールは、そのノードがもはやセキュリティへの脅威ではないと再分類する。
【0072】
更に、閾値自身を時間の経過において変更することができる。そのようなケースにおいては、1つ以上の閾値を超えていると分類されたエンドノードはもはやそれらの閾値を超えることはない。そのため、エンドノードを非脅威として再分類できる。閾値409は、例えば、ネットワークコンピューティングシステム401における現在の動作状況のために変更できる。ネットワークコンピューティングシステム401が高いCPU負荷の状況の場合、例えば、閾値409を動的に低くすることができる。または、ネットワークコンピューティングシステム401が軽い負荷を受けている場合、より多くのコンピューティングパワーがセンドマップの変更を処理するために利用可能なので、閾値409を動的に高めることができる。
【0073】
閾値がより高いケースにおいては、エンドノードをセキュリティへの脅威と誤って識別し、それらのサービスの現在のレベルを低め、または削除する可能性はより低い。例えば、SACK対ACK比が99%に設定された場合、攻撃者を識別するためにはより長い時間がかかる可能性があるが、ネットワークコンピューティングシステム401が誤検出をする可能性はより低くなる。追加的に、または代替的に、センドマップ(またはデータツリー)のサイズを考慮することができる。ほとんどのエンドポイント、例えば、高いレベルのデータ損失に遭遇しないエンドポイントは非常に小さいセンドマップを有する。そのため、監視を開始するためにさえ必要とされるセンドマップエントリ数の閾値が増大されると、増大された制限が、通常は損失回復の間に高いSACK対ACK比に達する可能性のある多数の接続を消去し得る。しかし、センドマップのサイズは依然として相対的に小さいので、そのセンドマップを維持するためのコンピューティング負担は低くいままである。そして、そのため、SACK対ACK比が比較的に高くても、サイズはある閾値サイズ未満なので、送っているノードは攻撃者とは識別されない。
【0074】
そのため、ネットワークコンピューティングシステム401は、時間の経過において、および異なる状況または誘発イベントに基づいて閾値409を変更できる。幾つかのケースにおいては、各カウンタに対する閾値は方針において詳細が明らかにされる。これらの方針は、図4の閾値更新モジュール419により更新できる。そして、方針において指定されている更新された閾値422は、閾値が超えられたかどうかを決定するときに閾値監視モジュール410により実現される。閾値もまたどの位速く攻撃者を識別するか、またはどの位速く、不良接続のために多数のACK/SACKを供給している非脅威ノードを、非脅威として適切に分類されるかを変更するために変えることができる。そのため、閾値を設定してあとは意識する必要はなく、または、CPUまたはメモリ帯域幅または指定された誘発イベントの発生(例えば、指定された国におけるノードから、または指定されたブラウザから、またはIPアドレスのあるバンクからパケットを受信すること)などのような現在の状況に基づいて動的に変えることができる。
【0075】
1つの実施形態においては、方法500が動作するネットワークコンピューティングシステムは、トランスポートプロトコルを介してデータを送信および受信するネットワークアダプタ、ネットワークアダプタにおいて受信したデータを少なくとも一時的には格納するメモリ装置、および、受信データの少なくとも幾つかを処理するプロセッサを含んでおり、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用することと、ネットワークノードから受信したSACKメッセージに1つ以上のトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法の1つ以上に対する閾値が到達されたと決定することと、閾値の1つ以上が到達されたと決定することに応答して、ネットワークノードをセキュリティへの脅威として識別し、セキュリティへの脅威を軽減するために1つ以上の救済行動を取ることを含んでいる。
【0076】
対応する非一時的コンピュータ読み取り可能媒体は1つ以上のコンピュータ実行可能命令を含んでおり、このコンピュータ実行可能命令は、コンピューティング装置の少なくとも1つのプロセッサにより実行されるとそのコンピューティング装置に、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用させ、ネットワークノードから受信したSACKメッセージに1つ以上のトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法の1つ以上に対する閾値が到達されたと決定させ、閾値の1つ以上が到達されたと決定することに応答して、ネットワークノードをセキュリティへの脅威として識別させ、セキュリティへの脅威を軽減するために1つ以上の救済行動を取らせる。
【0077】
従って、ここにおいて記述されている方法とシステムは、多様な異なるトランスポートプロトコル発見的方法を使用して攻撃者を検出できる。これらの発見的方法は、肯定応答メッセージが受信されたときに取られるある行動に対する閾値を定義する。それらの閾値量が満たされると、ノードは攻撃者として識別され、将来の悪意のある行動に対して監視される。ノードの行動が通常に戻ると、そのノードはもはや脅威としては分類されない。更に、メッセージを処理するシステムの能力が増大すると、または他の方針の条件が満たされると、閾値を変えることができ、脅威として分類されたノードはもはやそのようには分類されない。この機能は、センドマップエントリの総数に制限を課すことなく、または、SACKを割り当てることができるセンドマップエントリ数を制限することなく提供される。
【0078】
例としての実施形態
【0079】
1.ネットワークコンピューティングシステムであって、トランスポートプロトコルを介してデータを送信および受信するネットワークアダプタと、ネットワークアダプタにおいて受信したデータを少なくとも一時的には格納するメモリ装置と、受信データの少なくとも幾つかを処理するプロセッサを備え、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用することと、ネットワークノードから受信したSACKメッセージに1つ以上のトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法の1つ以上に対する閾値が到達されたと決定することと、閾値の1つ以上が到達されたと決定することに応答して、ネットワークノードをセキュリティへの脅威として識別することと、セキュリティへの脅威を軽減するために1つ以上の救済行動を取ることを含んでいる。
【0080】
2.請求項1のネットワークコンピューティングシステムであって、SACKメッセージに1つ以上のトランスポートプロトコル発見的方法を適用することは、SACKメッセージが処理されるときの動作機能と関連付けられている1つ以上のカウンタを増加することを含んでいる。
【0081】
3.請求項2のネットワークコンピューティングシステムであって、カウンタは、トランスポートプロトコル発見的方法の1つ以上に対する閾値がいつ到達されたかを示している。
【0082】
4.請求項2のネットワークコンピューティングシステムであって、カウンタの1つ以上は、肯定応答(ACK)メッセージを受信すると修正される。
【0083】
5.請求項1のネットワークコンピューティングシステムであって、セキュリティへの脅威は、ネットワークコンピューティングシステムに対して攻撃を実行している攻撃ノードを備えている。
【0084】
6.請求項1のネットワークコンピューティングシステムであって、セキュリティへの脅威を軽減するために使用される1つ以上の救済行動の少なくとも1つは、ネットワークノードから受信したSACKメッセージの少なくとも幾つかを無視することを備えている。
【0085】
7.請求項1のネットワークコンピューティングシステムであって、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、ACK位置をセンドマップ内で移動すべきかどうかの指標を備えている。
【0086】
8.請求項7のネットワークコンピューティングシステムであって、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、ACK位置をセンドマップ内でどの位の距離だけ移動すべきかの測定値を備えている。
【0087】
9.請求項1のネットワークコンピューティングシステムであって、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、指定された時間期間内に幾つのSACKメッセージが受信されるかの指標を備えている。
【0088】
10.請求項1のネットワークコンピューティングシステムであって、以前に受信したSACKメッセージを除去するためにSACKメッセージをフィルタ処理することを更に備えている。
【0089】
11.請求項10のネットワークコンピューティングシステムであって、SACKメッセージをフィルタ処理することは更に、重複するSACKメッセージを除去することを備えている。
【0090】
12.請求項10のネットワークコンピューティングシステムであって、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、指定された時間期間内に幾つのSACKメッセージがフィルタ処理されたかの指標を備えている。
【0091】
13.コンピュータにより実現される方法であって、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用することと、ネットワークノードから受信したSACKメッセージに1つ以上のトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法の1つ以上に対する閾値が到達されたと決定することと、閾値の1つ以上が到達されたと決定することに応答して、ネットワークノードをセキュリティへの脅威として識別することと、セキュリティへの脅威を軽減するための1つ以上の救済行動を取ることを備えている。
【0092】
14.請求項13のコンピュータにより実現される方法であって、トランスポートプロトコル発見的方法の1つ以上に対する閾値が到達されたと決定することは、ネットワークノードがセンドマップのサイズを増大するために、複数のセンドの試みを承認しようと試みていると決定することを含んでいる。
【0093】
15.請求項14のコンピュータにより実現される方法であって、ACKまたはSACKメッセージと関連付けられている1つ以上のカウンタを減少するために崩壊ファクタをセンドマップに追加することを更に備えている。
【0094】
16.請求項15のコンピュータにより実現される方法であって、ACKまたはSACKメッセージが除去されている間に、ネットワークノードはセキュリティへの脅威として識別される。
【0095】
17.請求項16のコンピュータにより実現される方法であって、閾値がネットワークノードによりもはや満たされないと決定すると、それに続いて、ネットワークノードはセキュリティへの脅威として分類されることから解消される。
【0096】
18.請求項13のコンピュータにより実現される方法であって、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、ネットワークコンピューティングシステムにおける1つ以上の現在の動作状況に基づいて動的に変更される。
【0097】
19.請求項13のコンピュータにより実現される方法であって、SACKメッセージを処理するときに実行される動作機能に対する閾値の少なくとも1つは、指定されたトリガの発生に基づいて動的に変更される。
【0098】
20.1つ以上のコンピュータ実行可能命令を備えている非一時的コンピュータ読み取り可能媒体であって、1つ以上のコンピュータ実行可能命令はコンピューティング装置の少なくとも1つのプロセッサにより実行されると、そのコンピューティング装置に、ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用させ、ネットワークノードから受信したSACKメッセージに1つ以上のトランスポートプロトコル発見的方法を適用することにより、トランスポートプロトコル発見的方法の1つ以上に対する閾値が到達されたと決定させ、閾値の1つ以上が到達されたと決定することに応答して、ネットワークノードをセキュリティへの脅威として識別させ、セキュリティへの脅威を軽減するための1つ以上の救済行動を取らせる。
【0099】
上記に詳述したように、ここにおいて記述、および/または、例示されているコンピューティング装置とシステムは、ここにおいて記述されているモジュール内に含まれているようなコンピュータ読み取り可能命令を実行できるコンピューティング装置またはシステムの任意のタイプまたは形状を広く表わしている。それらの最も基本的な構成においては、これらのコンピューティング装置はそれぞれ少なくとも1つのメモリ装置と少なくとも1つの物理プロセッサを含むことができる。
【0100】
幾つかの例においては、「メモリ装置」という用語は一般的に、データおよび/またはコンピュータ読み取り可能命令を格納できる揮発性または不揮発性格納装置または媒体の任意のタイプまたは形状を指している。1つの例においては、メモリ装置は、ここにおいて記述されているモジュールの1つ以上を格納、ロード、および/または維持できる。メモリ装置の例としては、制限されることはないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、光ディスクドライブ、キャッシュ、それらの1つ以上の変形または組合わせ、または、任意の他の適切な格納メモリが含まれる。
【0101】
幾つかの例においては、「物理プロセッサ」という用語は一般的に、コンピュータ読み取り可能命令を解釈および/または実行できるハードウェアにより実現される処理ユニットの任意のタイプまたは形状を指している。1つの例においては、物理プロセッサは、上記のメモリ装置に格納されている1つ以上のモジュールにアクセスでき、および/または、それを修正できる。物理プロセッサの例としては、制限されることはないが、マイクロプロセッサ、マイクロコントローラ、中央演算処理装置(CPU)、ソフトコアプロセッサを実現するフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、それらの1つ以上の部分、それらの1つ以上の変形または組み合わせ、または任意の他の適切な物理プロセッサが含まれる。
【0102】
別個の要素として例示されているが、ここにおいて記述および/または例示されているモジュールは、単一のモジュールまたはアプリケーションの部分を表わすことができる。加えて、ある実施形態においては、これらのモジュールの1つ以上は、コンピューティング装置により実行されると、そのコンピューティング装置に1つ以上のタスクを実行させる1つ以上のソフトウェアアプリケーションまたはプログラムを表わすことができる。例えば、ここにおいて記述および/または例示されているモジュールの1つ以上は、ここにおいて記述および/または例示されているコンピューティング装置またはシステムの1つ以上に格納され、そこで動作するように構成されているモジュールを表わすことができる。これらのモジュールの1つ以上はまた、1つ以上のタスクを実行するように構成されている1つ以上の特殊目的コンピュータのすべてまたは一部を表わすことができる。
【0103】
加えて、ここにおいて記述されているモジュールの1つ以上は、データ、物理装置、および/または、物理装置の表現を1つの形状から他の形状に変換できる。例えば、ここにおいて詳述されているモジュール1つ以上は、変換されるデータを受信でき、データを変換でき、発見的方法を適用するために変換の結果を出力でき、セキュリティへの脅威を識別するために変換の結果を使用でき、将来のセキュリティへの脅威を識別するために変換の結果を格納できる。追加的に、または代替的に、ここにおいて詳述されているモジュールの1つ以上は、コンピューティング装置上で実行されること、コンピューティング装置上にデータを格納すること、および/または、コンピューティング装置と相互作用することにより、プロセッサ、揮発性メモリ、不揮発性メモリ、および/または物理コンピューティング装置の任意の他の部分を1つの形状から他の形状に変換できる。
【0104】
幾つかの実施形態においては、「コンピュータ読み取り可能媒体」という用語は一般的に、コンピュータ読み取り可能命令を格納または搬送できる装置、担体、または媒体の任意の形状を指している。コンピュータ読み取り可能媒体の例としては、制限されることはないが、搬送波などのような送信型媒体、磁気格納媒体(例えば、ハードディスクドライブ、テープドライブ、およびフロッピー(登録商標)ディスク)などのような非一時的型媒体、光格納媒体(例えば、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、およびブルーレイディスク)、電子格納媒体(例えば、ソリッドステートドライブとフラッシュ媒体)、および他の配信システムが含まれる。
【0105】
ここにおいて記述および/または例示されているプロセスパラメータとステップのシーケンスは例としてのみの目的のために提示されており必要に応じて変えることができる。例えば、ここにおいて例示および/または記述されているステップは、特別な順序で示すまたは検討することができ、これらのステップは例示または検討されている順序で必ずしも実行される必要はない。ここにおいて記述および/または例示されている種々の例としての方法はまた、ここにおいて記述または例示されているステップの1つ以上を省略でき、または、開示されているそれらのステップに加えて追加的ステップを含むことができる。
【0106】
前記の記述は、ここにおいて開示されている例としての実施形態の種々の態様を当業者が最も良好に利用することを可能にするために提供されている。この例としての記述はすべてを網羅していることは意図されておらず、また、開示されている何れの正確な形状に制限されることは意図されていない。多数の修正および変形が本開示の精神と範囲から逸脱することなく可能である。ここにおいて開示されている実施形態は、すべての態様において例示であり制限的ではないと考えられるべきである。本開示の範囲を決定するときは、付随する請求項とその等価物を参照すべきである。
【0107】
別途明記されない限り、明細書と請求項において使用されているような「~に接続されている」と「~に結合されている」(およびそれらの派生語)という用語は、直接および間接的(つまり、他の要素または構成要素を介する)接続の両方を可能とするものとして解釈されるべきである。加えて、明細書と請求項において使用されているような「1つの」という用語は「少なくとも1つの」を意味していると解釈されるべきである。最後に、使用を簡単にするために、明細書と請求項において使用されているような「含んでいる」と「有している」(およびそれらの派生語)という用語は、「備えている」という用語と相互に交換可能であり、同じ意味を有している。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
ネットワークコンピューティングシステムであって、
トランスポートプロトコルを介してデータを送信および受信するネットワークアダプタと、
前記ネットワークアダプタにおいて受信したデータを少なくとも一時的には格納するメモリ装置と、
前記受信したデータの少なくとも幾つかを処理するプロセッサを備え、
ネットワークノードから前記ネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、前記SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用することと、
前記ネットワークノードから受信した前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することにより、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値が到達されたと決定することと、
前記閾値の1つ以上が到達されたと決定することに応答して、
前記ネットワークノードをセキュリティへの脅威として識別することと、
前記セキュリティへの脅威を軽減するために1つ以上の救済行動を取ることを含んでいることを特徴とするネットワークコンピューティングシステム。
実施形態2
前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することは、前記SACKメッセージが処理されるときの前記動作機能と関連付けられている1つ以上のカウンタを増加することを含んでいることを特徴とする、実施形態1に記載のネットワークコンピューティングシステム。
実施形態3
前記カウンタは、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値がいつ到達されたかを示していることを特徴とする、実施形態2に記載のネットワークコンピューティングシステム。
実施形態4
前記カウンタの1つ以上は、肯定応答(ACK)メッセージを受信すると修正されることを特徴とする、実施形態2に記載のネットワークコンピューティングシステム。
実施形態5
前記セキュリティへの脅威は、前記ネットワークコンピューティングシステムに対して攻撃を実行している攻撃ノードを備えていることを特徴とする、実施形態1に記載のネットワークコンピューティングシステム。
実施形態6
前記セキュリティへの脅威を軽減するために使用される前記1つ以上の救済行動の少なくとも1つは、前記ネットワークノードから受信した前記SACKメッセージの少なくとも幾つかを無視することを備えていることを特徴とする、実施形態1に記載のネットワークコンピューティングシステム。
実施形態7
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、ACK位置をセンドマップ内で移動すべきかどうかの指標を備えていることを特徴とする、実施形態1に記載のネットワークコンピューティングシステム。
実施形態8
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、前記ACK位置を前記センドマップ内でどの位の距離だけ移動すべきかの測定値を備えていることを特徴とする、実施形態7に記載のネットワークコンピューティングシステム。
実施形態9
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、指定された時間期間内に幾つのSACKメッセージが受信されるかの指標を備えていることを特徴とする、実施形態1に記載のネットワークコンピューティングシステム。
実施形態10
以前に受信したSACKメッセージを除去するために前記SACKメッセージをフィルタ処理することを更に備えていることを特徴とする、実施形態1に記載のネットワークコンピューティングシステム。
実施形態11
前記SACKメッセージをフィルタ処理することは更に、重複するSACKメッセージを除去することを備えていることを特徴とする、実施形態10に記載のネットワークコンピューティングシステム。
実施形態12
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、指定された時間期間内に幾つのSACKメッセージがフィルタ処理されたかの指標を備えていることを特徴とする、実施形態10に記載のネットワークコンピューティングシステム。
実施形態13
コンピュータにより実現される方法であって、
ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、前記SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用することと、
前記ネットワークノードから受信した前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することにより、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値が到達されたと決定することと、
前記閾値の1つ以上が到達されたと決定することに応答して、
前記ネットワークノードをセキュリティへの脅威として識別することと、
前記セキュリティへの脅威を軽減するための1つ以上の救済行動を取ることを備えていることを特徴とするコンピュータにより実現される方法。
実施形態14
前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値が到達されたと決定することは、前記ネットワークノードがセンドマップのサイズを増大するために、複数のセンドの試みを承認しようと試みていると決定することを含んでいることを特徴とする、実施形態13に記載のコンピュータにより実現される方法。
実施形態15
ACKまたはSACKメッセージと関連付けられている1つ以上のカウンタを減少するために崩壊ファクタを前記センドマップに追加することを更に備えていることを特徴とする、実施形態14に記載のコンピュータにより実現される方法。
実施形態16
前記ACKまたはSACKメッセージが除去されている間に、前記ネットワークノードはセキュリティへの脅威として識別されることを特徴とする、実施形態15に記載のコンピュータにより実現される方法。
実施形態17
前記閾値が前記ネットワークノードによりもはや満たされないと決定すると、それに続いて、前記ネットワークノードはセキュリティへの脅威として分類されることから解消されることを特徴とする、実施形態16に記載のコンピュータにより実現される方法。
実施形態18
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、前記ネットワークコンピューティングシステムにおける1つ以上の現在の動作状況に基づいて動的に変更されることを特徴とする、実施形態13に記載のコンピュータにより実現される方法。
実施形態19
前記SACKメッセージを処理するときに実行される動作機能に対する前記閾値の少なくとも1つは、指定されたトリガの発生に基づいて動的に変更されることを特徴とする、実施形態13に記載のコンピュータにより実現される方法。
実施形態20
1つ以上のコンピュータ実行可能命令を備えている非一時的コンピュータ読み取り可能媒体であって、前記1つ以上のコンピュータ実行可能命令はコンピューティング装置の少なくとも1つのプロセッサにより実行されると、前記コンピューティング装置に、
ネットワークノードからネットワークアダプタにおいて受信した選択的肯定応答(SACK)メッセージに、前記SACKメッセージを処理するときに実行される動作機能に対する1つ以上の閾値を識別する1つ以上のトランスポートプロトコル発見的方法を適用させ、
前記ネットワークノードから受信した前記SACKメッセージに前記1つ以上のトランスポートプロトコル発見的方法を適用することにより、前記トランスポートプロトコル発見的方法の1つ以上に対する前記閾値が到達されたと決定させ、前記閾値の1つ以上が到達されたと決定することに応答して、
前記ネットワークノードをセキュリティへの脅威として識別させ、
前記セキュリティへの脅威を軽減するための1つ以上の救済行動を取らせることを特徴とする非一時的コンピュータ読み取り可能媒体。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9