(57)【要約】  本発明の実施形態は、悪意ある攻撃の検出方法および装置を開示しており、ここで、方法は、第1のスイッチによって送信されたPacket-inメッセージを、コントローラによって、受信するステップであって、Packet-inメッセージは、第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、ステップと、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、第1のスイッチに異常フローエントリを、コントローラによって、送信するステップであって、異常フローエントリが送信元ホスト識別子を含む、ステップと、第1のスイッチによって送信されたトリガ処理カウントを、コントローラによって、受信するステップであって、異常フローエントリがタイムアウトした後に、トリガ処理カウントが第1のスイッチによって送信され、トリガ処理カウントは異常フローエントリがトリガされた回数である、ステップと、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従い、コントローラによって、判定するステップを含む。本発明の実施形態では、ホストからの悪意ある攻撃を検出することを可能とし、コントローラのデータ処理量を低減することを可能とし、コントローラの性能を改善することを可能としている。
2016537898.tif 000002
【特許請求の範囲】
【請求項１】
悪意ある攻撃の検出方法であって、
第1のスイッチによって送信されたPacket-inメッセージを、コントローラによって、受信するステップであって、前記Packet-inメッセージは、前記第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、ステップと、
前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、前記第1のスイッチに異常フローエントリを、前記コントローラによって、送信するステップであって、前記異常フローエントリが前記送信元ホスト識別子を含む、ステップと、
前記第1のスイッチによって送信されたトリガ処理カウントを、前記コントローラによって、受信するステップであって、前記異常フローエントリがタイムアウトした後に、前記トリガ処理カウントが前記第1のスイッチによって送信され、前記トリガ処理カウントは前記異常フローエントリがトリガされた回数である、ステップと、
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従い、前記コントローラによって、判定するステップとを含む、方法。
【請求項２】
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従い、前記コントローラによって、判定するステップは、
前記トリガ処理カウントおよび前記異常フローエントリの時効時間に従って前記異常フローエントリのトリガ処理レートを、前記コントローラによって、算出するステップと、
前記トリガ処理レートがレート閾値より大きいかどうかを、前記コントローラによって、判定し、前記トリガ処理レートが前記レート閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると、前記コントローラによって、判定する、さもなければ、悪意ある攻撃が前記送信元ホストから開始されていないと、前記コントローラによって、判定するステップとを含む、請求項1に記載の方法。
【請求項３】
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従い、前記コントローラによって、判定するステップは、
前記トリガ処理カウントがカウント閾値より大きいかどうかを、前記コントローラによって、判定し、前記トリガ処理カウントが前記カウント閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると、前記コントローラによって、判定する、さもなければ、悪意ある攻撃が前記送信元ホストから開始されていないと、前記コントローラによって、判定するステップを含む、請求項1に記載の方法。
【請求項４】
前記第1のスイッチに異常フローエントリを、前記コントローラによって、送信するステップの前に、
前記送信元ホスト識別子によって示されている前記送信元ホストの異常フローエントリが前記第1のスイッチに配信されているかどうかを、前記コントローラによって、判定し、されていない場合には、前記第1のスイッチに異常フローエントリを送信するステップを、前記コントローラによって、行うステップをさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定した場合には、前記第1のスイッチに第1の命令を、前記コントローラによって、送信するステップであって、前記第1の命令は、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記精密照合テーブルを前記送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように前記第1のスイッチに命令するために使用される、ステップをさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが前記第1のスイッチ内に存在していると判定した場合には、前記第1のスイッチに第2の命令を、前記コントローラによって、送信するステップであって、前記第2の命令は、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記最終フローテーブルとなるように送信元ホスト識別子照合領域を含む前記ワイルドカードテーブルを調整するように前記第1のスイッチに命令するために使用される、ステップをさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項７】
前記異常フローエントリの優先度は、前記第1のスイッチ内のフローエントリの最低優先度である、請求項1から6のいずれか一項に記載の方法。
【請求項８】
悪意ある攻撃が前記送信元ホスト識別子によって示されている前記送信元ホストから開始されていると、前記トリガ処理カウントに従って、判定した場合には、前記第1のスイッチに第3の命令を、前記コントローラによって、送信するステップであって、前記第3の命令は、前記送信元ホストからのデータパケットを抑制するように前記第1のスイッチに命令するために使用される、ステップをさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
悪意ある攻撃の検出方法であって、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを、第1のスイッチによって、送信するステップであって、前記Packet-inメッセージは、前記データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、ステップと、
異常フローエントリを、前記第1のスイッチによって、受信して保存するステップであって、前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、前記異常フローエントリが前記コントローラによって送信される、ステップと、
前記異常フローエントリのトリガ処理カウントを、前記異常フローエントリの時効時間内に、前記第1のスイッチによって、受信して、前記コントローラが、悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従って、判定することができるように、前記異常フローエントリがタイムアウトした後に、前記コントローラに前記トリガ処理カウントを送信するステップとを含む、方法。
【請求項１０】
前記コントローラによって送信された第1の命令を、前記第1のスイッチによって、受信するステップと、最終ローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、前記第1の命令に従って、設定するステップをさらに含む、または、
前記コントローラによって送信された第2の命令を、前記第1のスイッチによって、受信するステップと、前記第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するステップをさらに含む、請求項9に記載の方法。
【請求項１１】
異常フローエントリを、前記第1のスイッチによって、保存するステップは、
前記最終フローテーブルに前記異常フローエントリを、前記第1のスイッチによって、保存するステップを含む、請求項10に記載の方法。
【請求項１２】
前記コントローラによって送信された第3の命令を、前記第1のスイッチによって、受信するステップであって、悪意ある攻撃が前記送信元ホスト識別子によって示されている前記送信元ホストから開始されていると、前記トリガ処理カウントに従って、判定した場合には、前記第3の命令が前記コントローラによって送信される、ステップと、
前記送信元ホストからのデータパケットを、前記第3の命令に従い、前記第1のスイッチによって、抑制するステップとをさらに含む、請求項9から11のいずれか一項に記載の方法。
【請求項１３】
悪意ある攻撃の検出装置であって、
第1のスイッチによって送信されたPacket-inメッセージを受信するように構成される、第1の受信ユニットであって、前記Packet-inメッセージは、前記第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第1の受信ユニットと、
前記第1の受信ユニットによって受信した前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定された場合には、前記第1のスイッチに異常フローエントリを送信するように構成される、第1の送信ユニットであって、前記異常フローエントリは、前記送信元ホスト識別子を含み、
前記第1の受信ユニットは、前記第1のスイッチによって送信されたトリガ処理カウントを受信するようにさらに構成され、前記トリガ処理カウントは、前記異常フローエントリがタイムアウトした後に、前記第1のスイッチによって送信され、前記トリガ処理カウントは、前記異常フローエントリがトリガされた回数である、第1の送信ユニットと、
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記第1の受信ユニットによって受信した前記トリガ処理カウントに従って、判定するように構成される、検出ユニットとを備える、装置。
【請求項１４】
前記検出ユニットは、
前記第1の受信ユニットによって受信した前記トリガ処理カウントおよび前記異常フローエントリの時効時間に従って前記異常フローエントリのトリガ処理レートを算出し、
前記トリガ処理レートがレート閾値より大きいかどうかを判定し、前記トリガ処理レートが前記レート閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると判定する、さもなければ、悪意ある攻撃が前記送信元ホストから開始されていないと判定するように特に構成される、請求項13に記載の装置。
【請求項１５】
前記検出ユニットは、
前記トリガ処理カウントがカウント閾値より大きいかどうかを判定し、前記トリガ処理カウントが前記カウント閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると、前記コントローラによって、判定する、さもなければ、悪意ある攻撃が前記送信元ホストから開始されていないと、前記コントローラによって、判定するように特に構成される、請求項13に記載の装置。
【請求項１６】
前記送信元ホスト識別子によって示されている前記送信元ホストの異常フローエントリが前記第1のスイッチに配信されているかどうかを判定し、されていない場合には、異常フローエントリを前記第1のスイッチに送信するように前記送信ユニットをトリガするように構成される、判定ユニットをさらに備える、請求項13から15のいずれか一項に記載の装置。
【請求項１７】
前記第1の送信ユニットは、前記第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定された場合には、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記精密照合テーブルを前記送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように前記第1のスイッチに命令するようにさらに構成される、請求項13から16のいずれか一項に記載の装置。
【請求項１８】
前記第1の送信ユニットは、
前記第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが前記第1のスイッチ内に存在していると判定された場合には、前記第1のスイッチに第2の命令を送信するようにさらに構成され、前記第2の命令は、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記最終フローテーブルとなるように送信元ホスト識別子照合領域を含む前記ワイルドカードテーブルを調整するように前記第1のスイッチに命令するために使用される、請求項13から16のいずれか一項に記載の装置。
【請求項１９】
前記第1の送信ユニットは、
悪意ある攻撃が前記送信元ホスト識別子によって示されている前記送信元ホストから開始されていると、前記トリガ処理カウントに従って、判定された場合には、前記第1のスイッチに第3の命令を送信するようにさらに構成され、前記第3の命令は、前記送信元ホストからのデータパケットを抑制するように前記第1のスイッチに命令するために使用される、請求項13から18のいずれか一項に記載の装置。
【請求項２０】
悪意ある攻撃の検出装置であって、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを送信するように構成される、第2の送信ユニットであって、前記Packet-inメッセージは、前記データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第2の送信ユニットと、
異常フローエントリを受信するように構成される、第2の受信ユニットであって、前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、前記異常フローエントリが前記コントローラによって送信される、第2の受信ユニットと、
前記第2の受信ユニットによって受信した前記異常フローエントリを保存するように構成される、記憶ユニットと、
前記異常フローエントリのトリガ処理カウントを、前記記憶ユニットによって保存されている前記異常フローエントリの時効時間内に、記録するように構成される、カウント記録ユニットとを備え、
前記第2の送信ユニットは、前記コントローラが、悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従って、判定することができるように、前記記憶ユニットによって保存されている前記異常フローエントリがタイムアウトした後に、前記カウント記録ユニットによって記録されている前記トリガ処理カウントを前記コントローラに送信するようにさらに構成される、装置。
【請求項２１】
前記第2の受信ユニットは、前記コントローラによって送信された第1の命令を受信するようにさらに構成され、
前記装置は、最終ローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、前記第1の命令に従って、設定するように構成される、設定ユニットをさらに備える、または、
前記第2の受信ユニットは、前記コントローラによって送信された第2の命令を受信するようにさらに構成され、
前記装置は、前記第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように構成される、設定ユニットをさらに備える、請求項20に記載の装置。
【請求項２２】
前記記憶ユニットは、前記最終フローテーブルに前記異常フローエントリを保存するように特に構成される、請求項21に記載の装置。
【請求項２３】
前記第2の受信ユニットは、前記第1のスイッチによって送信された第3の命令を受信するようにさらに構成され、
前記装置は、前記送信元ホストからのデータパケットを抑制するように構成される、制御ユニットをさらに備える、請求項20から22のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信の分野に関し、詳細には、悪意ある攻撃の検出方法および装置に関する。
【背景技術】
【０００２】
ソフトウェア・デファインド・ネットワーキング(SDN、Software Defined Networking)ネットワークの基本概念は、制御プレーンと転送プレーンとの分離を実施することにある。SDNネットワークは、コントローラ(Controller)、スイッチ(Switch)、およびホスト(Host)を一般的に備える。コントローラは、ネットワーク全体という観点に基づいて、ルーティングポリシーを策定し、スイッチがフローテーブルにフローエントリを保存することができるように、フローエントリの形式でスイッチにルーティングポリシーを配信するように構成され、それによって、コントローラは、スイッチ内のフローテーブルを制御することによってネットワーク全体に関する集中制御を実施しており、スイッチは、スイッチのローカルフローエントリに従ってホストのデータパケットを転送するように構成される。
【０００３】
SDNネットワークにおける、ホストの一般的な通信シナリオを図1に示す。ホストAは、ホストAに接続されているスイッチ1にデータパケットを送信しており、データパケットの宛先ホストは、SDNネットワーク内のホストBであるものとする。スイッチ1は、ローカルフローテーブルからデータパケットのフローエントリを検索し、スイッチ1がデータパケットのフローエントリを見つけた場合には、スイッチ1はフローエントリに従ってデータパケットを転送する、または、スイッチ1がデータパケットのフローエントリを見つけなかった場合には、スイッチ1はコントローラにPacket-inメッセージを送信する。コントローラは、データパケットのための転送経路を選択し、フローエントリの形式で転送経路上のすべてのスイッチに転送経路を配信する。スイッチ1および転送経路上のスイッチは、配信されたフローエントリに従ってデータパケットを転送する。
【０００４】
コントローラが転送経路上のすべてのスイッチにホストAとホストBとの間の通信についてのフローエントリを配信しているので、宛先ホストがホストBであるデータパケットをホストAがそれ以降に送信する場合には、スイッチ1は、フローエントリに従ってデータパケットを直接転送してもよく、スイッチ1は、Packet-inメッセージを再び生成することはしない。
【０００５】
ホストによって送信されたデータパケットの宛先ホストがSDNネットワーク外にあるホストCである場合については、通信シナリオを図2に示す。
ホストAは、ホストAに接続されているスイッチ1にデータパケットを送信しており、データパケットの宛先ホストはホストCであるとともに、SDNネットワークはホストCを含んでいないものとする。
スイッチ1は、スイッチのローカルフローテーブルからデータパケットのフローエントリを検索し、ホストCはSDNネットワーク内にないので、スイッチ1は、データパケットのフローエントリを見つけることができず、コントローラにPacket-inメッセージを送信する。
コントローラは、Packet-inメッセージを受信し、SDNネットワークからホストCを検索する。ホストCはSDNネットワーク内にないので、コントローラは、ホストCを見つけることができず、その後、コントローラは、Packet-inメッセージを破棄し、データパケットについてのフローエントリをスイッチ1に配信しない。
【０００６】
宛先ホストがホストCであるデータパケットをホストAが再びそれ以降に送信する場合には、スイッチ1およびコントローラの双方は前述のステップを繰り返し、最終的にはコントローラがPacket-inメッセージを破棄する。
【０００７】
SDNネットワーク内のホストの前述の通信方法に基づいて、図1に示したシナリオにおけるPacket-inメッセージが正常Packet-inメッセージであるとみなしてもよいし、それに対して、図2に示したシナリオにおけるPacket-inメッセージが無効Packet-inメッセージであるとみなしてもよい。SDNネットワーク内のホストが、コントローラへの悪意ある攻撃を行い、その宛先ホストがSDNネットワーク内にないまたはその宛先ホストが存在すらしていない大量のデータパケットを送信する場合には、ホストに接続されているスイッチは、大量の無効Packet-inメッセージを生成し、コントローラに無効Packet-inメッセージを送信し、コントローラは、SDNネットワーク内にないまたは存在すらしていない宛先ホストを検索するために、これらの無効Packet-inメッセージを処理するための膨大な量の処理リソースを消費することを必要とし、それによって、コントローラによる正常Packet-inメッセージの処理に影響を及ぼしてしまう。
【０００８】
したがって、ホストからコントローラへの悪意ある攻撃の検出をSDNネットワーク内で行う必要がある。現在のところ、ホストからの悪意ある攻撃を検出するための方法は、コントローラが、単位時間内に受信したPacket-inメッセージの数量に関する統計を収集することであって、Packet-inメッセージは送信元ホストとして各ホストによってそれに応じて生成されたものである、収集をし、各ホストが送信元ホストとしてPacket-inメッセージを生成するレートを、その数量を使用して、算出し、レートに従って、各ホストがコントローラへの悪意ある攻撃を行っているかどうかを判定している。
【０００９】
ホストからの悪意ある攻撃を検出するためのそのような方法においては、コントローラは、各スイッチによって報告されたPacket-inメッセージを受信してPacket-inメッセージを処理する必要があり、加えて、コントローラは、単位時間内に受信したPacket-inメッセージの数量に関する統計を独立して収集することであって、Packet-inメッセージは送信元ホストとして各ホストによってそれに応じて生成されたものである、収集をし、その後、各ホストがコントローラへの悪意ある攻撃を行っているかどうかを判定する必要がさらにある。コントローラによって処理されるデータ量が大きくなり、コントローラの性能は低くなる。
【発明の概要】
【課題を解決するための手段】
【００１０】
本発明の実施形態は、悪意ある攻撃の検出方法および装置を提供しており、その結果、ホストからの悪意ある攻撃を検出することを可能とし、コントローラのデータ処理量を低減することを可能とし、コントローラの性能を改善することを可能としている。
【００１１】
第1の態様によれば、悪意ある攻撃の検出方法を提供しており、方法は、
第1のスイッチによって送信されたPacket-inメッセージを、コントローラによって、受信するステップであって、Packet-inメッセージは、第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、ステップと、
宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、第1のスイッチに異常フローエントリを、コントローラによって、送信するステップであって、異常フローエントリが送信元ホスト識別子を含む、ステップと、
第1のスイッチによって送信されたトリガ処理カウントを、コントローラによって、受信するステップであって、異常フローエントリがタイムアウトした後に、トリガ処理カウントが第1のスイッチによって送信され、トリガ処理カウントは異常フローエントリがトリガされた回数である、ステップと、
悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従い、コントローラによって、判定するステップとを含む。
【００１２】
第1の態様に準拠している、第1の態様の第1の可能な実施様態においては、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従い、コントローラによって、判定するステップは、
トリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを、コントローラによって、算出するステップと、
トリガ処理レートがレート閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップとを含む。
【００１３】
第1の態様に準拠している、第1の態様の第2の可能な実施様態においては、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従い、コントローラによって、判定するステップは、
トリガ処理カウントがカウント閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップを含む。
【００１４】
第1の態様、および/または第1の態様の第1の可能な実施様態、および/または第1の態様の第2の可能な実施様態に準拠している、第1の態様の第3の可能な実施様態においては、第1のスイッチに異常フローエントリを、コントローラによって、送信するステップの前に、方法は、
送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを、コントローラによって、判定し、されていない場合には、第1のスイッチに異常フローエントリを送信するステップを、コントローラによって、行うステップをさらに含む。
【００１５】
第1の態様、および/または第1の態様の第1の可能な実施様態、および/または第1の態様の第2の可能な実施様態、および/または第1の態様の第3の可能な実施様態に準拠している、第1の態様の第4の可能な実施様態においては、方法は、
第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定した場合には、第1のスイッチに第1の命令を、コントローラによって、送信するステップであって、第1の命令は、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように第1のスイッチに命令するために使用される、ステップをさらに含む。
【００１６】
第1の態様、および/または第1の態様の第1の可能な実施様態、および/または第1の態様の第2の可能な実施様態、および/または第1の態様の第3の可能な実施様態に準拠している、第1の態様の第5の可能な実施様態においては、方法は、
第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが第1のスイッチ内に存在していると判定した場合には、第1のスイッチに第2の命令を、コントローラによって、送信するステップであって、第2の命令は、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように第1のスイッチに命令するために使用される、ステップをさらに含む。
【００１７】
第1の態様、および/または第1の態様の第1の可能な実施様態、および/または第1の態様の第2の可能な実施様態、および/または第1の態様の第3の可能な実施様態、および/または第1の態様の第4の可能な実施様態、および/または第1の態様の第5の可能な実施様態に準拠している、第1の態様の第6の可能な実施様態においては、異常フローエントリの優先度は、第1のスイッチ内のフローエントリの最低優先度である。
【００１８】
第1の態様、および/または第1の態様の第1の可能な実施様態、および/または第1の態様の第2の可能な実施様態、および/または第1の態様の第3の可能な実施様態、および/または第1の態様の第4の可能な実施様態、および/または第1の態様の第5の可能な実施様態、および/または第1の態様の第6の可能な実施様態に準拠している、第1の態様の第7の可能な実施様態においては、方法は、
悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されていると、トリガ処理カウントに従って、判定した場合には、第1のスイッチに第3の命令を、コントローラによって、送信するステップであって、第3の命令は、送信元ホストからのデータパケットを抑制するように第1のスイッチに命令するために使用される、ステップをさらに含む。
【００１９】
第2の態様によれば、悪意ある攻撃の検出方法を提供しており、方法は、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを、第1のスイッチによって、送信するステップであって、Packet-inメッセージは、データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、ステップと、
異常フローエントリを、第1のスイッチによって、受信して保存するステップであって、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、異常フローエントリがコントローラによって送信される、ステップと、
異常フローエントリのトリガ処理カウントを、異常フローエントリの時効時間内に、第1のスイッチによって、受信して、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することができるように、異常フローエントリがタイムアウトした後に、コントローラにトリガ処理カウントを送信するステップとを含む。
【００２０】
第2の態様に準拠している、第2の態様の第1の可能な実施様態においては、方法は、
コントローラによって送信された第1の命令を、第1のスイッチによって、受信するステップと、最終ローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、第1の命令に従って、設定するステップをさらに含む、または、
コントローラによって送信された第2の命令を、第1のスイッチによって、受信するステップと、第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するステップをさらに含む。
【００２１】
第2の態様の第1の可能な実施様態に準拠している、第2の態様の第2の可能な実施様態においては、異常フローエントリを、第1のスイッチによって、保存するステップは、
最終フローテーブルに異常フローエントリを、第1のスイッチによって、保存するステップを含む。
【００２２】
第2の態様、および/または第2の態様の第1の可能な実施様態、および/または第2の態様の第2の可能な実施様態に準拠している、第2の態様の第3の可能な実施様態においては、方法は、
コントローラによって送信された第3の命令を、第1のスイッチによって、受信するステップであって、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されていると、トリガ処理カウントに従って、判定した場合には、第3の命令がコントローラによって送信される、ステップと、
送信元ホストからのデータパケットを、第3の命令に従い、第1のスイッチによって、抑制するステップとをさらに含む。
【００２３】
第3の態様によれば、悪意ある攻撃の検出装置を提供しており、装置は、
第1のスイッチによって送信されたPacket-inメッセージを受信するように構成される、第1の受信ユニットであって、Packet-inメッセージは、第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第1の受信ユニットと、
第1の受信ユニットによって受信した宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定された場合には、第1のスイッチに異常フローエントリを送信するように構成される、第1の送信ユニットであって、異常フローエントリは、送信元ホスト識別子を含み、
第1の受信ユニットは、第1のスイッチによって送信されたトリガ処理カウントを受信するようにさらに構成され、トリガ処理カウントは、異常フローエントリがタイムアウトした後に、第1のスイッチによって送信され、トリガ処理カウントは、異常フローエントリがトリガされた回数である、第1の送信ユニットと、
悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、第1の受信ユニットによって受信したトリガ処理カウントに従って、判定するように構成される、検出ユニットとを備える。
【００２４】
第3の態様に準拠している、第3の態様の第1の可能な実施様態においては、検出ユニットは、
第1の受信ユニットによって受信したトリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを算出し、
トリガ処理レートがレート閾値より大きいかどうかを判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成される。
【００２５】
第3の態様に準拠している、第3の態様の第2の可能な実施様態においては、検出ユニットは、
トリガ処理カウントがカウント閾値より大きいかどうかを判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するように特に構成される。
【００２６】
第3の態様、および/または第3の態様の第1の可能な実施様態、および/または第3の態様の第2の可能な実施様態に準拠している、第3の態様の第3の可能な実施様態においては、方法は、
送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、されていない場合には、異常フローエントリを第1のスイッチに送信するように送信ユニットをトリガするように構成される、判定ユニットをさらに備える。
【００２７】
第3の態様、および/または第3の態様の第1の可能な実施様態、および/または第3の態様の第2の可能な実施様態、および/または第3の態様の第3の可能な実施様態に準拠している、第3の態様の第4の可能な実施様態においては、第1の送信ユニットは、第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定された場合には、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように第1のスイッチに命令するようにさらに構成される。
【００２８】
第3の態様、および/または第3の態様の第1の可能な実施様態、および/または第3の態様の第2の可能な実施様態、および/または第3の態様の第3の可能な実施様態に準拠している、第3の態様の第5の可能な実施様態においては、第1の送信ユニットは、
第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが第1のスイッチ内に存在していると判定された場合には、第1のスイッチに第2の命令を送信するようにさらに構成され、第2の命令は、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように第1のスイッチに命令するために使用される。
【００２９】
第3の態様、および/または第3の態様の第1の可能な実施様態、および/または第3の態様の第2の可能な実施様態、および/または第3の態様の第3の可能な実施様態、および/または第3の態様の第4の可能な実施様態、および/または第3の態様の第5の可能な実施様態に準拠している、第3の態様の第6の可能な実施様態においては、第1の送信ユニットは、
悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されていると、トリガ処理カウントに従って、判定された場合には、第1のスイッチに第3の命令を送信するようにさらに構成され、第3の命令は、送信元ホストからのデータパケットを抑制するように第1のスイッチに命令するために使用される。
【００３０】
第2の態様によれば、悪意ある攻撃の検出装置を提供しており、装置は、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを送信するように構成される、第2の送信ユニットであって、Packet-inメッセージは、データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第2の送信ユニットと、
異常フローエントリを受信するように構成される、第2の受信ユニットであって、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、異常フローエントリがコントローラによって送信される、第2の受信ユニットと、
第2の受信ユニットによって受信した異常フローエントリを保存するように構成される、記憶ユニットと、
異常フローエントリのトリガ処理カウントを、記憶ユニットによって保存されている異常フローエントリの時効時間内に、記録するように構成される、カウント記録ユニットとを備え、
第2の送信ユニットは、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することができるように、記憶ユニットによって保存されている異常フローエントリがタイムアウトした後に、カウント記録ユニットによって記録されているトリガ処理カウントをコントローラに送信するようにさらに構成される。
【００３１】
第2の態様に準拠している、第2の態様の第1の可能な実施様態においては、第2の受信ユニットは、コントローラによって送信された第1の命令を受信するようにさらに構成され、
装置は、最終ローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、第1の命令に従って、設定するように構成される、設定ユニットをさらに備える、または、
第2の受信ユニットは、コントローラによって送信された第2の命令を受信するようにさらに構成され、
装置は、第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように構成される、設定ユニットをさらに備える。
【００３２】
第2の態様の第1の可能な実施様態に準拠している、第2の態様の第2の可能な実施様態においては、記憶ユニットは、最終フローテーブルに異常フローエントリを保存するように特に構成される。
【００３３】
第2の態様、および/または第2の態様の第1の可能な実施様態、および/または第2の態様の第2の可能な実施様態に準拠している、第2の態様の第3の可能な実施様態においては、第2の受信ユニットは、第1のスイッチによって送信された第3の命令を受信するようにさらに構成され、
装置は、送信元ホストからのデータパケットを抑制するように構成される、制御ユニットをさらに備える。
【００３４】
実施形態では、コントローラは、第1のスイッチによって送信されたPacket-inメッセージであって、第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、Packet-inメッセージを受信し、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、コントローラは、第1のスイッチに異常フローエントリであって、送信元ホスト識別子を含む、異常フローエントリを送信し、コントローラは、異常フローエントリがタイムアウトした後に第1のスイッチによって送信された、異常フローエントリの、トリガ処理カウントを受信し、コントローラは、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定する。実施形態では、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチが、異常フローエントリのトリガ処理カウントを使用して統計を収集する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【００３５】
本発明または従来技術の実施形態における技術的解決手法をより明確に記載するために、実施形態を記載するために必要となる添付の図面を以下に簡単に紹介する。以下の記載における添付の図面が本発明の一部の実施形態を示しているにすぎず、当業者が創造的努力なしにこれらの添付の図面から他の図面をさらに導出し得ることは明らかであろう。
【図面の簡単な説明】
【００３６】
【図１】従来技術における、SDNネットワーク内のホスト通信シナリオ1の概略図である。
【図２】従来技術における、SDNネットワーク内のホスト通信シナリオ2の概略図である。
【図２Ａ】従来技術における、スイッチ内のフローテーブルの概略構造図である。
【図３】本発明による、悪意ある攻撃の検出方法の第1の実施形態の概略フローチャートである。
【図４】本発明による、悪意ある攻撃の検出方法の第2の実施形態の概略フローチャートである。
【図５】本発明による、悪意ある攻撃の検出方法の第3の実施形態の概略フローチャートである。
【図５Ａ】最終精密照合テーブルが本発明に従って設定される前とされた後との比較の図である。
【図５Ｂ】精密照合テーブルとワイルドカードテーブルとの位置を本発明に従って入れ替える前の構造図である。
【図５Ｃ】精密照合テーブルとワイルドカードテーブルとの位置を本発明に従って入れ替えた後の構造図である。
【図５Ｄ】本発明による、異常フローエントリの実施の概略図である。
【図６】本発明による、悪意ある攻撃の検出装置の第1の実施形態の概略構造図である。
【図７】本発明による、悪意ある攻撃の検出装置の第2の実施形態の概略構造図である。
【図８】本発明による、コントローラの概略構造図である。
【図９】本発明による、スイッチの概略構造図である。
【発明を実施するための形態】
【００３７】
まず、スイッチ内のフローテーブルおよびフローテーブル構造を記載する。
【００３８】
一般的に、スイッチは、最小で1個のフローテーブルを、最大で255個のフローテーブルを備える。スイッチは、Pipelineを備え、スイッチのフローテーブルは、シーケンス内のPipelineに配置されている。スイッチは、スイッチ内のすべてのフローテーブルを必ずしも使用するわけではなく、フローテーブルの一部のみを使用し得る。例えば、図2Aのスイッチは、10個のフローテーブルを備えていてもよいが、スイッチは、Pipeline内の最初の7個のフローテーブルtable0からtable6のみを実際に使用し、後の3個のフローテーブルtable7からtable9は、図示しておらず、スイッチによって使用されない。フローエントリは、フローテーブルに記憶されており、2つのホスト間の転送経路を記録するために使用される。
【００３９】
図2Aに示したように、データパケットを受信した場合には、データパケットに一致し得るフローエントリが見つかるまで、またはデータパケットに一致し得るフローエントリが見つからないまま最終フローテーブルが検索されるまで、スイッチは、シーケンス内のPipelineのフローテーブルからデータパケットに一致し得るフローエントリを、データパケットに従って、検索する。
【００４０】
フローテーブルは、スイッチの転送ポリシーの核心部であり、従来のルータのルーティングテーブルに類似するものであり、スイッチのストレージリソースの大半を占有している。フローテーブルは、ワイルドカードテーブルと精密照合テーブルとの2つのタイプに分類され得る。
【００４１】
精密照合テーブルでは、具体的な値をフローエントリのすべての照合領域に与える必要がある。データパケットが精密照合テーブル内のフローエントリと一致している場合には、データパケットのすべての照合領域の値とフローエントリのそれらとが対応部分において等しい場合にのみデータパケットとフローエントリとが一致しているとみなされる。例えば、表1に示したように、精密照合テーブルは、送信元インターネットプロトコル(Src IP)、宛先インターネットプロトコル(Dst IP)、送信元ポート(SrcPort)、宛先ポート(DstPort)、およびIPプロトコル(IP Protocol)といった5つの照合領域と、アクション書き込み(Write Actions)、メタデータ書き込み(Write Metadata)、およびテーブル移動(GoToTable)といった3つの命令(Instructions)とを含む。表1に示したフローエントリ内の各照合領域は、具体的な値を有する。データパケットがフローエントリと一致している場合には、データパケットのSrc IP、Dst IP、SrcPort、DstPort、およびIP Protocolといった5つの照合領域の値とフローエントリのそれらとが対応部分において等しい場合にのみデータパケットがフローエントリに一致しているとみなされる。
【００４２】
【表１】
2016537898.tif 000003
【００４３】
ワイルドカードテーブルでは、値をフローエントリの照合領域の一部のみに与えるだけでよい。データパケットがワイルドカードテーブル内のフローエントリと一致している場合には、データパケットの照合領域の一部の値とフローエントリのそれらとが対応部分において等しいならばデータパケットとフローエントリとが一致しているとみなされる。例えば、表2に示したように、精密照合テーブルは、Src IP、Dst IP、SrcPort、DstPort、およびIP Protocolといった5つの照合領域と、Actions、Write Metadata、およびGoToTableといった3つの命令とを含んでおり、表2に示したフローエントリ内の照合領域Dst IPのみが具体的な値192.168.20.1を有している。データパケットが照合テーブル内のフローエントリに一致している場合には、データパケット内の照合領域Dst IPの値も192.168.20.1であるならばデータパケットと表2に示したフローエントリとが一致しているとみなされる。
【００４４】
【表２】
2016537898.tif 000004
【００４５】
本発明の実施形態における添付の図面を参照して、本発明の実施形態における技術的解決手法を以下に明確かつ完全に記載する。記載した実施形態が本発明の実施形態のすべてのというより一部にすぎないことは明白であろう。創造的努力なしに本発明の実施形態に基づいて当業者によって得られる他の実施形態のすべては、本発明の保護範囲に含まれるものとする。
【００４６】
図3を参照すれば、図3は、本発明による、悪意ある攻撃の検出方法の第1の実施形態の概略図であり、方法は、以下のステップを含む。
【００４７】
ステップ301: コントローラは、第1のスイッチによって送信されたPacket-inメッセージを受信する、ここで、Packet-inメッセージは、第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む。
【００４８】
ステップ302: 宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、コントローラは、第1のスイッチに異常フローエントリを送信する、ここで、異常フローエントリは、送信元ホスト識別子を含む。
【００４９】
ステップ303: コントローラは、第1のスイッチによって送信されたトリガ処理カウントを受信する、ここで、トリガ処理カウントは、異常フローエントリがタイムアウトした後に、第1のスイッチによって送信され、トリガ処理カウントは、異常フローエントリがトリガされた回数である。
【００５０】
ステップ304: コントローラは、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定する。
【００５１】
本実施形態においては、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチに異常フローエントリを送信しており、第1のスイッチが、異常フローエントリのトリガ処理カウントに関する統計を収集して、コントローラにトリガ処理カウントを報告し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、直接判定する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【００５２】
図4を参照すれば、図4は、本発明による、悪意ある攻撃の検出方法の第2の実施形態の概略図であり、方法は、以下のステップを含む。
【００５３】
ステップ401: データパケットに対応するフローエントリが見つからないと判定した場合には、第1のスイッチは、コントローラにPacket-inメッセージを送信する、ここで、Packet-inメッセージは、データパケットの送信元ホスト識別子および宛先ホスト識別子を含む。
【００５４】
ステップ402: 第1のスイッチは、コントローラによって送信された異常フローエントリを受信および保存する、ここで、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、異常フローエントリがコントローラによって送信される。
【００５５】
ステップ403: 第1のスイッチは、異常フローエントリの時効時間内に、異常フローエントリのトリガ処理カウントを記録し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することができるように、異常フローエントリがタイムアウトした後に、コントローラにトリガ処理カウントを送信する。
【００５６】
本実施形態においては、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチが、異常フローエントリのトリガ処理カウントに関する統計を収集して、コントローラにトリガ処理カウントを報告し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、直接判定する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【００５７】
図5を参照すれば、図5は、本発明による、悪意ある攻撃の検出方法の第3の実施形態の概略図であり、方法は、以下のステップを含む。
【００５８】
ステップ501: コントローラは、第1のスイッチ内のフローテーブル構造を取得し、第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定した場合には、第1のスイッチに第1の命令を送信する、ここで、第1の命令は、精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように第1のスイッチに命令するために使用される。
【００５９】
コントローラがTABLE_FEATURESタイプのMultipartメッセージを使用してスイッチ内の各フローテーブルの照合領域タイプを設定してもよいことが、OpenFlow1.3プロトコルに規定されている。したがって、本ステップにおいては、コントローラはまた、本方法を使用して、送信元ホスト識別子照合領域を含む精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定してもよい。
【００６０】
例えば、送信元ホスト識別子が送信元ホストMACアドレスであり、送信元ホスト識別子照合領域がETH_SRC照合領域を使用して実施され、第1のスイッチの最終フローテーブルがEth_type、Eth_src、Eth_dst、およびIn_portといった4つの照合領域を有する精密照合テーブルであることを想定している、図5Aを参照すれば、コントローラは、テーブル特性(TABLE_FEATURES)タイプのMultipartメッセージを配信することによって、精密照合テーブルをEth_src照合領域のみを照合する精密照合テーブルとして設定するように第1のスイッチに命令してもよい。
【００６１】
本ステップの目的は、第1のスイッチ内の最終フローテーブルが、送信元ホスト識別子照合領域を含むワイルドカードテーブル、または、送信元ホスト識別子照合領域のみを照合する精密照合テーブルであることを保証することにある。したがって、ステップ501をさらに、以下のステップと置き換えてもよい。
【００６２】
コントローラは、第1のスイッチ内のフローテーブル構造を取得し、第1のスイッチ内の最終フローテーブルが精密照合テーブルまたは送信元ホスト識別子照合領域を含まないワイルドカードテーブルであると判定した場合には、および送信元ホスト識別子照合領域を含むワイルドカードテーブルが第1のスイッチ内に存在していると判定した場合には、第1のスイッチに第2の命令を送信する、ここで、第2の命令は、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように第1のスイッチに命令するために使用される。
【００６３】
OpenFlow1.2プロトコル以降では、コントローラは、スイッチ内のフローテーブルを再配置するようにスイッチに、カスタムメッセージを使用して、命令し得る、したがって、コントローラは、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するようにスイッチに、カスタムメッセージを使用して、命令し得る。第1のスイッチは、最終精密照合テーブルとワイルドカードテーブルとの位置を直接入れ替えてもよく、それによって、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整している。または、第1のスイッチは、第1のスイッチ内のフローテーブルを再配置してもよく、それによって、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整している。例えば、送信元ホスト識別子が送信元ホストMACアドレスであり、送信元ホスト識別子照合領域がEth_src照合領域を使用して実施されることが想定される。第1のスイッチが5個のフローテーブルを含み、フローテーブルの調整の前には、PipelineのTable2がEth_src照合領域を含むワイルドカードテーブルであり、Table4がEth_src照合領域を含まない精密照合テーブルであることを想定している、図5Bを参照すれば、コントローラは、フローテーブルTable2とTable4とを入れ替えるように第1のスイッチに命令し得る。フローテーブルの調整後の構造については、図5Cを参照してほしい。実際のところは、Table2は、元Table4の精密照合テーブルであり、Table4は、元Table2のワイルドカードテーブルである。
【００６４】
第1のスイッチがコントローラにアクセスする場合には、ステップ501および前述のステップ501の代替ステップを行ってもよい。
【００６５】
ステップ502: 第1のスイッチは、送信元ホストによって送信されたデータパケットを受信し、データパケットのフローエントリがローカルフローテーブル内で見つからなかった場合には、Packet-inメッセージを生成する、ここで、Packet-inメッセージは、データパケットの送信元ホスト識別子および宛先ホスト識別子を含む。
【００６６】
送信元ホスト識別子は、送信元ホストのMACアドレス、IPアドレス、入力インターフェースなどであってもよいが、本明細書ではそれに限定されない。
【００６７】
第1のスイッチがローカルフローテーブル内でデータパケットのフローエントリを見つけた場合には、図1に示したように、第1のスイッチは、フローエントリに従ってデータパケットを転送する。詳細をここでは記載しない。
【００６８】
ステップ503: コントローラは、第1のスイッチによって送信されたPacket-inメッセージを受信し、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、コントローラは、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、されていない場合には、送信元ホスト識別子を含む異常フローエントリを第1のスイッチに送信して、ステップ504を行う、されている場合には、本分岐の処理手続きが終了する。
【００６９】
宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在しているとコントローラが判定した場合のコントローラの処理方法については、図2およびその対応する記載を参照してほしい。詳細をここでは記載しない。
【００７０】
異常フローエントリの実施は、正常フローエントリと同一であってもよく、いわゆる異常フローエントリは、コントローラによって送信された正常フローエントリと区別するために使用され、コントローラが宛先ホストを見つけることができなかった場合にフローエントリが送信されることを表すために使用されているにすぎない。
【００７１】
コントローラにおいて、異常フローエントリ配信フラグが、各ホストに対して設定されていてもよく、コントローラが対応するホストの異常フローエントリを配信するかどうかが、yesおよびnoなどの異なるフラグ値を使用して識別される。本ステップにおいては、コントローラが、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを、送信元ホストに対応する異常フローエントリ配信フラグを使用して、判定してもよい。さらに、本ステップにおいては、第1のスイッチに異常フローエントリを送信した後に、コントローラは、送信元ホストに対応する異常フローエントリ配信フラグのフラグ値をリセット、例えば、noからyesへとフラグ値をリセットする必要がある。ステップ507においては、トリガ処理カウントを受信した後に、コントローラは、送信元ホストに対応する異常フローエントリ配信フラグのフラグ値をリセット、例えば、yesからnoへとフラグ値をリセットする必要がある。
【００７２】
ステップ504: 第1のスイッチは、異常フローエントリを受信し、最終フローテーブルに異常フローエントリを記憶する。
【００７３】
可能な実施様態においては、異常フローエントリは、検出されることになるホストのMACアドレス、すなわち、送信元ホストのMACアドレスを記録するために使用される、ETH_SRC照合領域と、スイッチによって実行される演算を記録するために使用される、actionと、異常フローエントリのアイドル時効時間を記録するために使用される、idle_timeoutと、異常フローエントリの時効時間を記録するために使用される、hard_timeoutと、異常フローエントリの属性を記録するために使用される、flagと、異常フローエントリの優先度を記録するために使用される、priorityとを含んでいてもよい。例えば、図5Dに示した異常フローエントリの実施においては、ETH_SRC照合領域の値は11:22:33:44:55:66であり、actionの値はコントローラに出力され、idle_timeoutの値は0であり、hard_timeoutの値は1であり、flagの値はSEND_FLOW_REM+CHECK_OVERLAPであり、priorityの値は最低優先度の0である。
【００７４】
必要に応じて、コントローラによって配信された異常フローエントリの優先度は、好ましくは、第1のスイッチ内のフローエントリの最低優先度である。
【００７５】
ステップ505: 第1のスイッチは、異常フローエントリの時効時間内に、異常フローエントリのトリガ処理カウントを記録する。
【００７６】
実際の適用においては、異常フローエントリがトリガされた場合には、好ましくは、第1のスイッチは、従来技術などでは、対応するPacket-inメッセージをコントローラに報告し続ける。異常フローエントリの最低優先度と最終フローテーブルに異常フローエントリを記憶する処理とを組み合わせて、本発明の本実施形態は、以下の利点をさらに有する。
【００７７】
送信元ホストAによって第1のスイッチに送信されたデータパケットの宛先ホストBを見つけることができなかった初期理由が、宛先ホストBが電源を投入されていないなどによるものであると想定されるのであれば、コントローラは、異常フローエントリを配信する。
【００７８】
異常フローエントリがトリガされた際に第1のスイッチが対応するPacket-inメッセージをコントローラに報告する場合には、宛先ホストBが異常フローエントリの時効時間内に電源投入されたならば、宛先ホストBが電源投入された後に、送信元ホストAの識別子および宛先ホストBの識別子を搬送するとともに第1のスイッチによって送信されたPacket-inメッセージを受信すると、コントローラは、宛先ホストBを見つけて、第1のスイッチに送信元ホストAおよび宛先ホストBに関する正常フローエントリを配信することが可能となる。
【００７９】
この場合には、異常フローエントリは、最低優先度を有するとともに、最終フローテーブルに記憶されているので、送信元ホストAから宛先ホストBへのデータパケットを再び受信した場合には、第1のスイッチは、正常フローエントリとデータパケットとをまず照合し、異常フローエントリをトリガせずに、正常フローエントリを使用してデータパケットを転送する。
【００８０】
したがって、本発明の本実施形態の前述の処理は、この場合には、異常フローエントリをトリガし続けてしまうことから第1のスイッチを防ぐとともに、トリガ処理カウントに関する統計を収集することが可能であり、この場合には、送信元ホストAから宛先ホストBへのデータパケットを正常に転送することができなくなってしまうことから第1のスイッチを防ぐことがさらに可能であり、第1のスイッチによって報告されたトリガ処理カウントに従って、送信元ホストAが悪意ある攻撃を行っていると誤って判定してしまうことからコントローラを防ぐことが可能であり、それによって、本発明の悪意ある攻撃の検出結果の精度を改善している。
【００８１】
ステップ506: 第1のスイッチは、異常フローエントリがタイムアウトした後に、コントローラにトリガ処理カウントを送信する。
【００８２】
従来技術では、フローエントリがタイムアウトした後に、スイッチが、コントローラにFlow-removedメッセージを送信して、フローエントリが期限切れしたことをコントローラに通知する場合がある。本ステップにおいては、第1のスイッチはまた、Flow-removedメッセージを使用してトリガ処理カウントを送信してもよく、特に、トリガ処理カウントは、Flow-removedメッセージ内のpacket-countフィールドで搬送されてもよい。
【００８３】
ステップ507: コントローラは、トリガ処理カウントを受信し、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定する。
【００８４】
ある可能な実施様態においては、コントローラは、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することが、
トリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを、コントローラによって、算出するステップと、
トリガ処理レートがレート閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップとを含んでいてもよい。
【００８５】
第2の可能な実施様態においては、コントローラは、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することが、
トリガ処理カウントがカウント閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップを含んでいてもよい。
【００８６】
第2の可能な実施様態は、異なるスイッチにコントローラによって配信される異常フローエントリの時効時間が固定されているシナリオにおいて一般的に使用される。
【００８７】
レート閾値およびカウント閾値の具体的な値が実際のアプリケーション環境に従って設定されてもよいが、本発明ではそれに限定されない。
【００８８】
ステップ508: 悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されていると判定した場合には、コントローラは、第1のスイッチに第3の命令を送信する、ここで、第3の命令は、送信元ホストからのデータパケットを抑制するように第1のスイッチに命令するために使用される。
【００８９】
コントローラは、第1のスイッチに特別なフローエントリまたはアクセス制御リスト(ACL、Access Control List)を配信することによって、送信元ホストからのデータパケットを抑制してもよい。
【００９０】
本実施形態においては、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチが、異常フローエントリのトリガ処理カウントに関する統計を収集して、コントローラにトリガ処理カウントを報告し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、直接判定する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【００９１】
加えて、異常フローエントリは、最低優先度を有しており、第1のスイッチは、最終フローテーブルに異常フローエントリを記憶しており、その結果、本発明の本実施形態における悪意ある攻撃の検出の結果はより正確なものとなっている。
【００９２】
図3から図5に示した悪意ある攻撃の検出方法を、指定の時点における指定のホストにおいて悪意ある攻撃の検出を行うために、スイッチおよびコントローラのオプション機能として使用してもよい。具体的な検出タイミングは、以下の事例を含んでいてもよいが、それに限定されない。
【００９３】
1. 連続的な検出はスイッチに接続されているホストで行われる、または、ユーザがどのホストでいつ検出を行うかを設定してもよい。
【００９４】
2. 検出はデフォルト設定ではホストで行わないにしても、各ポートに起因するPacket-inメッセージをスイッチが生成するレートを監視してもよい。レートがあらかじめ設定された上限閾値より大きくなった場合には、ポートに接続されているすべてのホストにおける悪意ある攻撃の検出が有効になる。
【００９５】
3. 検出はデフォルト設定ではホストで行わない。OpenFlow1.3プロトコルは、フローレートを監視するためのMeterを定義しており、Packet-inメッセージをスイッチが送信するレートを監視するためOFPM_CONTROLLERタイプのMeterをさらに定義している。Packet-inレートがMeterの上限レートより大きくなった場合には、スイッチに接続されているホストについての悪意ある攻撃の検出がトリガされる。
【００９６】
前述の方法に対応するように、本発明の実施形態は、悪意ある攻撃の検出装置、コントローラ、およびスイッチをさらに提供する。
【００９７】
図6を参照すれば、図6は、本発明による、悪意ある攻撃の検出装置600の第1の実施形態の概略図である。装置600は、コントローラ内に配置されてもよく、装置600は、
第1のスイッチによって送信されたPacket-inメッセージを受信するように構成される、第1の受信ユニット610であって、Packet-inメッセージは、第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第1の受信ユニット610と、
第1の受信ユニット610によって受信した宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定された場合には、第1のスイッチに異常フローエントリを送信するように構成される、第1の送信ユニット620であって、異常フローエントリは、送信元ホスト識別子を含み、
第1の受信ユニット610は、第1のスイッチによって送信されたトリガ処理カウントを受信するようにさらに構成され、トリガ処理カウントは、異常フローエントリがタイムアウトした後に、第1のスイッチによって送信され、トリガ処理カウントは、異常フローエントリがトリガされた回数である、第1の送信ユニット620と、
悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、第1の受信ユニット610によって受信したトリガ処理カウントに従って、判定するように構成される、検出ユニット630とを備える。
【００９８】
第1の可能な実施様態においては、検出ユニット630は、
第1の受信ユニットによって受信したトリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを算出し、
トリガ処理レートがレート閾値より大きいかどうかを判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成されてもよい。
【００９９】
第2の可能な実施様態においては、検出ユニット630は、
トリガ処理カウントがカウント閾値より大きいかどうかを判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するように特に構成されてもよい。
【０１００】
必要に応じて、装置は、
送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、されていない場合には、異常フローエントリを第1のスイッチに送信するように送信ユニットをトリガするように構成される、判定ユニットをさらに備えていてもよい。
【０１０１】
第1の可能な実施様態においては、第1の送信ユニット620は、第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定された場合には、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように第1のスイッチに命令するようにさらに構成されてもよい。
【０１０２】
第2の可能な実施様態においては、第1の送信ユニット620は、第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが第1のスイッチ内に存在していると判定された場合には、第1のスイッチに第2の命令を送信するようにさらに構成されてもよく、第2の命令は、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように第1のスイッチに命令するために使用される。
【０１０３】
必要に応じて、第1の送信ユニット620は、
悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されていると、トリガ処理カウントに従って、判定された場合には、第1のスイッチに第3の命令を送信するようにさらに構成され、第3の命令は、送信元ホストからのデータパケットを抑制するように第1のスイッチに命令するために使用される。
【０１０４】
本実施形態においては、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチに異常フローエントリを送信しており、第1のスイッチが、異常フローエントリのトリガ処理カウントに関する統計を収集して、コントローラにトリガ処理カウントを報告し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、直接判定する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【０１０５】
図7を参照すれば、図7は、本発明による、悪意ある攻撃の検出装置700の第2の実施形態の概略図である。装置700は、第1のスイッチ内に配置されてもよく、装置700は、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを送信するように構成される、第2の送信ユニット710であって、Packet-inメッセージは、データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第2の送信ユニット710と、
コントローラによって送信された異常フローエントリを受信するように構成される、第2の受信ユニット720であって、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、異常フローエントリがコントローラによって送信される、第2の受信ユニット720と、
第2の受信ユニット720によって受信した異常フローエントリを保存するように構成される、記憶ユニット730と、
異常フローエントリのトリガ処理カウントを、記憶ユニット730によって保存されている異常フローエントリの時効時間内に、記録するように構成される、カウント記録ユニット740とを備え、
第2の送信ユニット710は、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することができるように、記憶ユニットによって保存されている異常フローエントリがタイムアウトした後に、コントローラにトリガ処理カウントを送信するようにさらに構成される。
【０１０６】
必要に応じて、第2の受信ユニット720は、コントローラによって送信された第1の命令を受信するようにさらに構成されてもよく、
装置は、最終ローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、第1の命令に従って、設定するように構成される、設定ユニットをさらに備える、または、
第2の受信ユニット720は、コントローラによって送信された第2の命令を受信するようにさらに構成されてもよく、
装置は、第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように構成される、設定ユニットをさらに備える。
【０１０７】
必要に応じて、記憶ユニット730は、最終フローテーブルに異常フローエントリを保存するように特に構成されてもよい。
【０１０８】
必要に応じて、第2の受信ユニット720は、第1のスイッチによって送信された第3の命令を受信するようにさらに構成されてもよく、
装置は、送信元ホストからのデータパケットを抑制するように構成される、制御ユニットをさらに備えていてもよい。
【０１０９】
本実施形態においては、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチが、異常フローエントリのトリガ処理カウントに関する統計を収集して、コントローラにトリガ処理カウントを報告し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、直接判定する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【０１１０】
図8を参照すれば、図8は、本発明の実施形態による、コントローラ800の概略構造図である。コントローラ800は、プロセッサ810、メモリ820、トランシーバ830、およびバス840を備える。
【０１１１】
プロセッサ810、メモリ820、およびトランシーバ830は、バス840を使用して相互接続されている。バス840は、ISAバス、PCIバス、またはEISAバスであってもよい。バスは、アドレスバス、データバス、または制御バスであってもよい。図を簡潔にするために、バスを図8において太線を使用して表しているが、1つのバスまたは1つのタイプのバスのみが存在していることを意味しているわけではない。
【０１１２】
メモリ820は、プログラムを記憶するように構成される。特に、プログラムは、プログラムコードを含み得るし、プログラムコードは、コンピュータ演算命令を含む。メモリ820は、高速RAMメモリを含んでいてもよいし、不揮発性メモリ(non-volatile memory)、例えば、少なくとも1つの磁気ディスクメモリをさらに含んでいてもよい。
【０１１３】
トランシーバ830は、別のデバイスと接続するとともに、別のデバイスと通信するように構成される。特に、トランシーバ830は、第1のスイッチによって送信されたPacket-inメッセージであって、第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、Packet-inメッセージを受信し、第1のスイッチに異常フローエントリであって、送信元ホスト識別子を含む、異常フローエントリを送信し、第1のスイッチによって送信されたトリガ処理カウントであって、異常フローエントリがタイムアウトした後に第1のスイッチによって送信され、トリガ処理カウントは異常フローエントリがトリガされた回数である、トリガ処理カウントを受信するように構成される。
【０１１４】
プロセッサ810は、プログラムコードを実行して、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在するかどうかを判定し、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定された場合には、異常フローエントリを第1のスイッチに送信するようにトランシーバ830を制御するように構成され、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トランシーバ830によって受信したトリガ処理カウントに従って、判定するようにさらに構成される。
【０１１５】
必要に応じて、プロセッサ810は、トリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを算出し、トリガ処理レートがレート閾値より大きいかどうかを判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成されてもよい。
【０１１６】
必要に応じて、プロセッサ810は、トリガ処理カウントがカウント閾値より大きいかどうかを判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、さもなければ、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するように特に構成されてもよい。
【０１１７】
必要に応じて、プロセッサ810は、トランシーバ830が第1のスイッチに異常フローエントリを送信する前に、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、されていない場合には、異常フローエントリを第1のスイッチに送信するようにトランシーバ830を制御するステップを行うようにさらに構成されてもよい。
【０１１８】
必要に応じて、プロセッサ810は、第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定された場合には、第1のスイッチに第1の命令を送信するようにトランシーバ830を制御するようにさらに構成されてもよい、ここで、第1の命令は、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように第1のスイッチに命令するために使用される。
【０１１９】
トランシーバ830は、第1の命令を第1のスイッチに送信するようにさらに構成されてもよい。
【０１２０】
必要に応じて、プロセッサ810は、第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが第1のスイッチ内に存在していると判定された場合には、第1のスイッチに第2の命令を送信するようにトランシーバ830を制御するようにさらに構成されてもよく、第2の命令は、第1のスイッチが最終フローテーブルに異常フローエントリを記憶することができるように、最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように第1のスイッチに命令するために使用される。
【０１２１】
トランシーバ830は、第2の命令を第1のスイッチに送信するようにさらに構成されてもよい。
【０１２２】
必要に応じて、プロセッサ810は、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されていると、トリガ処理カウントに従って、判定された場合には、第1のスイッチに第3の命令を送信するようにトランシーバ830を制御するようにさらに構成されてもよく、第3の命令は、送信元ホストからのデータパケットを抑制するように第1のスイッチに命令するために使用される。
【０１２３】
トランシーバ830は、第3の命令を第1のスイッチに送信するようにさらに構成されてもよい。
【０１２４】
本実施形態においては、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチに異常フローエントリを送信しており、第1のスイッチが、異常フローエントリのトリガ処理カウントに関する統計を収集して、コントローラにトリガ処理カウントを報告し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、直接判定する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【０１２５】
図9を参照すれば、図9は、本発明の実施形態による、第1のスイッチ900の概略構造図である。第1のスイッチ900は、プロセッサ910、メモリ920、トランシーバ930、およびバス940を備える。
【０１２６】
プロセッサ910、メモリ920、およびトランシーバ930は、バス940を使用して相互接続されている。バス940は、ISAバス、PCIバス、またはEISAバスであってもよい。バスは、アドレスバス、データバス、または制御バスであってもよい。図を簡潔にするために、バスを図9において太線を使用して表しているが、1つのバスまたは1つのタイプのバスのみが存在していることを意味しているわけではない。
【０１２７】
メモリ920は、プログラムを記憶するように構成される。特に、プログラムは、プログラムコードを含み得るし、プログラムコードは、コンピュータ演算命令を含む。メモリ920は、高速RAMメモリを含んでいてもよいし、不揮発性メモリ(non-volatile memory)、例えば、少なくとも1つの磁気ディスクメモリをさらに含んでいてもよい。さらに、メモリ920は、フローテーブルを記憶するようにさらに構成される。
【０１２８】
トランシーバ930は、別のデバイスと接続するとともに、別のデバイスと通信するように構成される。特に、トランシーバ930は、コントローラにPacket-inメッセージであって、データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、Packet-inメッセージを送信し、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、コントローラによって送信された異常フローエントリを受信し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することができるように、コントローラに異常フローエントリのトリガ処理カウントを送信するように構成される、
【０１２９】
プロセッサ910は、プログラムコードを実行して、データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを送信するようにトランシーバ930を制御し、トランシーバ930によって受信した異常フローエントリをメモリ920に保存し、ここで、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、異常フローエントリがコントローラによって送信され、異常フローエントリのトリガ処理カウントを、異常フローエントリの時効時間内に、記録し、異常フローエントリがタイムアウトした後に、コントローラにトリガ処理カウントを送信するようにトランシーバ930を制御するように構成される。
【０１３０】
必要に応じて、トランシーバ930は、コントローラによって送信された第1の命令を受信するようにさらに構成されてもよいし、
プロセッサ910は、トランシーバ930によって受信した第1の命令に従って最終ローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するようにさらに構成されてもよい、または、
トランシーバ930は、コントローラによって送信された第2の命令を受信するようにさらに構成されてもよいし、
プロセッサ910は、トランシーバ930によって受信した第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するようにさらに構成されてもよい。
【０１３１】
必要に応じて、プロセッサ910は、メモリ920内の最終フローテーブルに異常フローエントリを保存するように特に構成されてもよい。
【０１３２】
必要に応じて、トランシーバ930は、コントローラによって送信された第3の命令を受信するようにさらに構成されてもよい、ここで、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されていると、トリガ処理カウントに従って、判定した場合には、第3の命令がコントローラによって送信される。
【０１３３】
プロセッサ910は、送信元ホストからのデータパケットを、トランシーバ930によって受信した第3の命令に従って、抑制するようにさらに構成されてもよい。
【０１３４】
本実施形態においては、コントローラは、各ホストに対応するPacket-inメッセージに関する統計を収集する必要がなくなり、その代わりに、第1のスイッチが、異常フローエントリのトリガ処理カウントに関する統計を収集して、コントローラにトリガ処理カウントを報告し、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、直接判定する。このように、元々はコントローラによって行われていたメッセージ統計収集を実行のために各スイッチに分散しており、それによって、コントローラのデータ処理量を低減し、コントローラの性能を改善している。
【０１３５】
本発明の実施形態の技術がソフトウェアと必要とされる汎用ハードウェアプラットフォームとによって実装されてもよいことは、当業者は明確に理解されよう。そのような理解に基づいて、基本的に、本発明の技術的解決手法、または従来技術に貢献する部分は、ソフトウェア製品の形式で実装されてもよい。ソフトウェア製品は、ROM/RAM、ハードディスク、または光ディスクなどの記憶媒体に記憶され、(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)コンピュータデバイスに本発明の実施形態または実施形態の一部に記載の方法を実行するように命令するためのいくつかの命令を含む。
【０１３６】
本明細書における実施形態はすべて、累加的様式で記載しており、実施形態における同一または同様の部分については、これらの実施形態を参照し、各実施形態は、他の実施形態とは異なる部分に焦点をあてている。特に、システムの実施形態は、方法の実施形態に基本的に類似しており、したがって、簡潔に記載しており、関連部分については、方法の実施形態における記載の一部を参照してほしい。
【０１３７】
前述の記載は、本発明の実施様態であるが、本発明の保護範囲を限定することを意図したものではない。本発明の精神および原理から逸脱することなくなされた任意の変更、均等物による置換、および改善は、本発明の保護範囲に含まれるものとする。
【符号の説明】
【０１３８】
600  悪意ある攻撃の検出装置
610  第1の受信ユニット
620  第1の送信ユニット
630  検出ユニット
700  悪意ある攻撃の検出装置
710  第2の送信ユニット
720  第2の受信ユニット
730  記憶ユニット
740  カウント記録ユニット
800  コントローラ
810  プロセッサ
820  メモリ
830  トランシーバ
840  バス
900  第1のスイッチ
910  プロセッサ
920  メモリ
930  トランシーバ
940  バス
【図２Ａ】
2016537898.tif 000005
【図３】
2016537898.tif 000006
【図４】
2016537898.tif 000007
【図５】
2016537898.tif 000008
【図５Ａ】
2016537898.tif 000009
【図５Ｂ】
2016537898.tif 000010
【図５Ｃ】
2016537898.tif 000011
【図５Ｄ】
2016537898.tif 000012
【図６】
2016537898.tif 000013
【図７】
2016537898.tif 000014
【図８】
2016537898.tif 000015
【図９】
2016537898.tif 000016
【図１】
2016537898.tif 000017
【図２】
2016537898.tif 000018
【手続補正書】
【提出日】平成28年7月20日(2016.7.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
悪意ある攻撃の検出方法であって、
第1のスイッチによって送信されたPacket-inメッセージを、コントローラによって、受信するステップであって、前記Packet-inメッセージは、前記第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、ステップと、
前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、前記第1のスイッチに異常フローエントリを、前記コントローラによって、送信するステップであって、前記異常フローエントリが前記送信元ホスト識別子を含む、ステップと、
前記第1のスイッチによって送信されたトリガ処理カウントを、前記コントローラによって、受信するステップであって、前記異常フローエントリがタイムアウトした後に、前記トリガ処理カウントが前記第1のスイッチによって送信され、前記トリガ処理カウントは前記異常フローエントリがトリガされた回数である、ステップと、
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従い、前記コントローラによって、判定するステップとを含む、方法。
【請求項２】
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従い、前記コントローラによって、判定するステップは、
前記トリガ処理カウントおよび前記異常フローエントリの時効時間に従って前記異常フローエントリのトリガ処理レートを、前記コントローラによって、算出するステップと、
前記トリガ処理レートがレート閾値より大きいかどうかを、前記コントローラによって、判定し、前記トリガ処理レートが前記レート閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると、前記コントローラによって、判定する、または、前記トリガ処理レートが前記レート閾値より大きくない場合には、悪意ある攻撃が前記送信元ホストから開始されていないと、前記コントローラによって、判定するステップとを含む、請求項1に記載の方法。
【請求項３】
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従い、前記コントローラによって、判定するステップは、
前記トリガ処理カウントがカウント閾値より大きいかどうかを、前記コントローラによって、判定し、前記トリガ処理カウントが前記カウント閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると、前記コントローラによって、判定する、または、前記トリガ処理カウントが前記カウント閾値より大きくない場合には、悪意ある攻撃が前記送信元ホストから開始されていないと、前記コントローラによって、判定するステップを含む、請求項1に記載の方法。
【請求項４】
前記第1のスイッチに異常フローエントリを、前記コントローラによって、送信するステップの前に、
前記送信元ホスト識別子によって示されている前記送信元ホストの異常フローエントリが前記第1のスイッチに配信されているかどうかを、前記コントローラによって、判定し、前記送信元ホスト識別子によって示されている前記送信元ホストの前記異常フローエントリが前記第1のスイッチに配信されていない場合には、前記第1のスイッチに異常フローエントリを送信するステップを、前記コントローラによって、行うステップをさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定した場合には、前記第1のスイッチに第1の命令を、前記コントローラによって、送信するステップであって、前記第1の命令は、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記精密照合テーブルを前記送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように前記第1のスイッチに命令するために使用される、ステップをさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが前記第1のスイッチ内に存在していると判定した場合には、前記第1のスイッチに第2の命令を、前記コントローラによって、送信するステップであって、前記第2の命令は、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記最終フローテーブルとなるように送信元ホスト識別子照合領域を含む前記ワイルドカードテーブルを調整するように前記第1のスイッチに命令するために使用される、ステップをさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項７】
前記異常フローエントリの優先度は、前記第1のスイッチ内のフローエントリの最低優先度である、請求項1から6のいずれか一項に記載の方法。
【請求項８】
悪意ある攻撃が前記送信元ホスト識別子によって示されている前記送信元ホストから開始されていると、前記トリガ処理カウントに従って、判定した場合には、前記第1のスイッチに第3の命令を、前記コントローラによって、送信するステップであって、前記第3の命令は、前記送信元ホストからのデータパケットを抑制するように前記第1のスイッチに命令するために使用される、ステップをさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
悪意ある攻撃の検出方法であって、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを、第1のスイッチによって、送信するステップであって、前記Packet-inメッセージは、前記データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、ステップと、
異常フローエントリを、前記第1のスイッチによって、受信して保存するステップであって、前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、前記異常フローエントリが前記コントローラによって送信される、ステップと、
前記異常フローエントリのトリガ処理カウントを、前記異常フローエントリの時効時間内に、前記第1のスイッチによって、受信して、前記コントローラが、悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従って、判定することができるように、前記異常フローエントリがタイムアウトした後に、前記コントローラに前記トリガ処理カウントを送信するステップとを含む、方法。
【請求項１０】
前記コントローラによって送信された第1の命令を、前記第1のスイッチによって、受信するステップと、最終フローテーブルであるローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、前記第1の命令に従って、設定するステップをさらに含む、または、
前記コントローラによって送信された第2の命令を、前記第1のスイッチによって、受信するステップと、前記第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するステップをさらに含む、請求項9に記載の方法。
【請求項１１】
異常フローエントリを、前記第1のスイッチによって、保存するステップは、
前記最終フローテーブルに前記異常フローエントリを、前記第1のスイッチによって、保存するステップを含む、請求項10に記載の方法。
【請求項１２】
前記コントローラによって送信された第3の命令を、前記第1のスイッチによって、受信するステップであって、悪意ある攻撃が前記送信元ホスト識別子によって示されている前記送信元ホストから開始されていると、前記トリガ処理カウントに従って、判定した場合には、前記第3の命令が前記コントローラによって送信される、ステップと、
前記送信元ホストからのデータパケットを、前記第3の命令に従い、前記第1のスイッチによって、抑制するステップとをさらに含む、請求項9から11のいずれか一項に記載の方法。
【請求項１３】
悪意ある攻撃の検出装置であって、
第1のスイッチによって送信されたPacket-inメッセージを受信するように構成される、第1の受信ユニットであって、前記Packet-inメッセージは、前記第1のスイッチがフローエントリを見つけていないデータパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第1の受信ユニットと、
前記第1の受信ユニットによって受信した前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定された場合には、前記第1のスイッチに異常フローエントリを送信するように構成される、第1の送信ユニットであって、前記異常フローエントリは、前記送信元ホスト識別子を含み、
前記第1の受信ユニットは、前記第1のスイッチによって送信されたトリガ処理カウントを受信するようにさらに構成され、前記トリガ処理カウントは、前記異常フローエントリがタイムアウトした後に、前記第1のスイッチによって送信され、前記トリガ処理カウントは、前記異常フローエントリがトリガされた回数である、第1の送信ユニットと、
悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記第1の受信ユニットによって受信した前記トリガ処理カウントに従って、判定するように構成される、検出ユニットとを備える、装置。
【請求項１４】
前記検出ユニットは、
前記第1の受信ユニットによって受信した前記トリガ処理カウントおよび前記異常フローエントリの時効時間に従って前記異常フローエントリのトリガ処理レートを算出し、
前記トリガ処理レートがレート閾値より大きいかどうかを判定し、前記トリガ処理レートが前記レート閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると判定する、または、前記トリガ処理レートが前記レート閾値より大きくない場合には、悪意ある攻撃が前記送信元ホストから開始されていないと判定するように構成される、請求項13に記載の装置。
【請求項１５】
前記検出ユニットは、
前記トリガ処理カウントがカウント閾値より大きいかどうかを判定し、前記トリガ処理カウントが前記カウント閾値より大きい場合には、悪意ある攻撃が前記送信元ホストから開始されていると判定する、または、前記トリガ処理カウントが前記カウント閾値より大きくない場合には、悪意ある攻撃が前記送信元ホストから開始されていないと判定するように構成される、請求項13に記載の装置。
【請求項１６】
前記送信元ホスト識別子によって示されている前記送信元ホストの異常フローエントリが前記第1のスイッチに配信されているかどうかを判定し、前記送信元ホスト識別子によって示されている前記送信元ホストの前記異常フローエントリが前記第1のスイッチに配信されていない場合には、異常フローエントリを前記第1のスイッチに送信するように前記第1の送信ユニットをトリガするように構成される、判定ユニットをさらに備える、請求項13から15のいずれか一項に記載の装置。
【請求項１７】
前記第1の送信ユニットは、前記第1のスイッチ内の最終フローテーブルが送信元ホスト識別子照合領域を含む精密照合テーブルであると判定された場合には、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記精密照合テーブルを前記送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するように前記第1のスイッチに命令するようにさらに構成される、請求項13から16のいずれか一項に記載の装置。
【請求項１８】
前記第1の送信ユニットは、
前記第1のスイッチ内の最終フローテーブルが精密照合テーブルであるとともに、送信元ホスト識別子照合領域を含むワイルドカードテーブルが前記第1のスイッチ内に存在していると判定された場合には、前記第1のスイッチに第2の命令を送信するようにさらに構成され、前記第2の命令は、前記第1のスイッチが前記最終フローテーブルに前記異常フローエントリを記憶することができるように、前記最終フローテーブルとなるように送信元ホスト識別子照合領域を含む前記ワイルドカードテーブルを調整するように前記第1のスイッチに命令するために使用される、請求項13から16のいずれか一項に記載の装置。
【請求項１９】
前記第1の送信ユニットは、
悪意ある攻撃が前記送信元ホスト識別子によって示されている前記送信元ホストから開始されていると、前記トリガ処理カウントに従って、判定された場合には、前記第1のスイッチに第3の命令を送信するようにさらに構成され、前記第3の命令は、前記送信元ホストからのデータパケットを抑制するように前記第1のスイッチに命令するために使用される、請求項13から18のいずれか一項に記載の装置。
【請求項２０】
悪意ある攻撃の検出装置であって、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを送信するように構成される、第2の送信ユニットであって、前記Packet-inメッセージは、前記データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第2の送信ユニットと、
異常フローエントリを受信するように構成される、第2の受信ユニットであって、前記宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、前記異常フローエントリが前記コントローラによって送信される、第2の受信ユニットと、
前記第2の受信ユニットによって受信した前記異常フローエントリを保存するように構成される、記憶ユニットと、
前記異常フローエントリのトリガ処理カウントを、前記記憶ユニットによって保存されている前記異常フローエントリの時効時間内に、記録するように構成される、カウント記録ユニットとを備え、
前記第2の送信ユニットは、前記コントローラが、悪意ある攻撃が前記送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、前記トリガ処理カウントに従って、判定することができるように、前記記憶ユニットによって保存されている前記異常フローエントリがタイムアウトした後に、前記カウント記録ユニットによって記録されている前記トリガ処理カウントを前記コントローラに送信するようにさらに構成される、装置。
【請求項２１】
前記第2の受信ユニットは、前記コントローラによって送信された第1の命令を受信するようにさらに構成され、
前記装置は、最終フローテーブルであるローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、前記第1の命令に従って、設定するように構成される、設定ユニットをさらに備える、または、
前記第2の受信ユニットは、前記コントローラによって送信された第2の命令を受信するようにさらに構成され、
前記装置は、前記第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように構成される、設定ユニットをさらに備える、請求項20に記載の装置。
【請求項２２】
前記記憶ユニットは、前記最終フローテーブルに前記異常フローエントリを保存するように構成される、請求項21に記載の装置。
【請求項２３】
前記第2の受信ユニットは、前記コントローラによって送信された第3の命令を受信するようにさらに構成され、
前記装置は、前記送信元ホストからのデータパケットを抑制するように構成される、制御ユニットをさらに備える、請求項20から22のいずれか一項に記載の装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
第1の態様に準拠している、第1の態様の第1の可能な実施様態においては、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従い、コントローラによって、判定するステップは、
トリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを、コントローラによって、算出するステップと、
トリガ処理レートがレート閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、または、トリガ処理レートがレート閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップとを含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
第1の態様に準拠している、第1の態様の第2の可能な実施様態においては、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従い、コントローラによって、判定するステップは、
トリガ処理カウントがカウント閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、または、トリガ処理カウントがカウント閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップを含む。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
第1の態様、および/または第1の態様の第1の可能な実施様態、および/または第1の態様の第2の可能な実施様態に準拠している、第1の態様の第3の可能な実施様態においては、第1のスイッチに異常フローエントリを、コントローラによって、送信するステップの前に、方法は、
送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを、コントローラによって、判定し、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されていない場合には、第1のスイッチに異常フローエントリを送信するステップを、コントローラによって、行うステップをさらに含む。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
第2の態様に準拠している、第2の態様の第1の可能な実施様態においては、方法は、
コントローラによって送信された第1の命令を、第1のスイッチによって、受信するステップと、最終フローテーブルであるローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、第1の命令に従って、設定するステップをさらに含む、または、
コントローラによって送信された第2の命令を、第1のスイッチによって、受信するステップと、第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するステップをさらに含む。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
第3の態様に準拠している、第3の態様の第1の可能な実施様態においては、検出ユニットは、
第1の受信ユニットによって受信したトリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを算出し、
トリガ処理レートがレート閾値より大きいかどうかを判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、または、トリガ処理レートがレート閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
第3の態様に準拠している、第3の態様の第2の可能な実施様態においては、検出ユニットは、
トリガ処理カウントがカウント閾値より大きいかどうかを判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、または、トリガ処理カウントがカウント閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
第3の態様、および/または第3の態様の第1の可能な実施様態、および/または第3の態様の第2の可能な実施様態に準拠している、第3の態様の第3の可能な実施様態においては、装置は、
送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されていない場合には、異常フローエントリを第1のスイッチに送信するように第1の送信ユニットをトリガするように構成される、判定ユニットをさらに備える。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
第4の態様によれば、悪意ある攻撃の検出装置を提供しており、装置は、
データパケットに対応するフローエントリが見つからないと判定された場合には、コントローラにPacket-inメッセージを送信するように構成される、第2の送信ユニットであって、Packet-inメッセージは、データパケットの送信元ホスト識別子および宛先ホスト識別子を含む、第2の送信ユニットと、
異常フローエントリを受信するように構成される、第2の受信ユニットであって、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、異常フローエントリがコントローラによって送信される、第2の受信ユニットと、
第2の受信ユニットによって受信した異常フローエントリを保存するように構成される、記憶ユニットと、
異常フローエントリのトリガ処理カウントを、記憶ユニットによって保存されている異常フローエントリの時効時間内に、記録するように構成される、カウント記録ユニットとを備え、
第2の送信ユニットは、コントローラが、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することができるように、記憶ユニットによって保存されている異常フローエントリがタイムアウトした後に、カウント記録ユニットによって記録されているトリガ処理カウントをコントローラに送信するようにさらに構成される。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
第4の態様に準拠している、第4の態様の第1の可能な実施様態においては、第2の受信ユニットは、コントローラによって送信された第1の命令を受信するようにさらに構成され、
装置は、最終フローテーブルであるローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、第1の命令に従って、設定するように構成される、設定ユニットをさらに備える、または、
第2の受信ユニットは、コントローラによって送信された第2の命令を受信するようにさらに構成され、
装置は、第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように構成される、設定ユニットをさらに備える。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
第4の態様の第1の可能な実施様態に準拠している、第4の態様の第2の可能な実施様態においては、記憶ユニットは、最終フローテーブルに異常フローエントリを保存するように特に構成される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
第4の態様、および/または第4の態様の第1の可能な実施様態、および/または第4の態様の第2の可能な実施様態に準拠している、第4の態様の第3の可能な実施様態においては、第2の受信ユニットは、コントローラによって送信された第3の命令を受信するようにさらに構成され、
装置は、送信元ホストからのデータパケットを抑制するように構成される、制御ユニットをさらに備える。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
【図１】従来技術における、SDNネットワーク内のホスト通信シナリオ1の概略図である。
【図２】従来技術における、SDNネットワーク内のホスト通信シナリオ2の概略図である。
【図２Ａ】従来技術における、スイッチ内のフローテーブルの概略構造図である。
【図３】本発明による、悪意ある攻撃の検出方法の第1の実施形態の概略フローチャートである。
【図４】本発明による、悪意ある攻撃の検出方法の第2の実施形態の概略フローチャートである。
【図５】本発明による、悪意ある攻撃の検出方法の第3の実施形態の概略フローチャートである。
【図５Ａ】最終フローテーブルである精密照合テーブルが本発明に従って設定される前とされた後との比較の図である。
【図５Ｂ】精密照合テーブルとワイルドカードテーブルとの位置を本発明に従って入れ替える前の構造図である。
【図５Ｃ】精密照合テーブルとワイルドカードテーブルとの位置を本発明に従って入れ替えた後の構造図である。
【図５Ｄ】本発明による、異常フローエントリの実施の概略図である。
【図６】本発明による、悪意ある攻撃の検出装置の第1の実施形態の概略構造図である。
【図７】本発明による、悪意ある攻撃の検出装置の第2の実施形態の概略構造図である。
【図８】本発明による、コントローラの概略構造図である。
【図９】本発明による、スイッチの概略構造図である。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
ワイルドカードテーブルでは、値をフローエントリの照合領域の一部のみに与えるだけでよい。データパケットがワイルドカードテーブル内のフローエントリと一致している場合には、データパケットの照合領域の一部の値とフローエントリのそれらとが対応部分において等しいならばデータパケットとフローエントリとが一致しているとみなされる。例えば、表2に示したように、ワイルドカードテーブルは、Src IP、Dst IP、SrcPort、DstPort、およびIP Protocolといった5つの照合領域と、Actions、Write Metadata、およびGoToTableといった3つの命令とを含んでおり、表2に示したフローエントリ内の照合領域Dst IPのみが具体的な値192.168.20.1を有している。データパケットが照合テーブル内のフローエントリに一致している場合には、データパケット内の照合領域Dst IPの値も192.168.20.1であるならばデータパケットと表2に示したフローエントリとが一致しているとみなされる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
ステップ503: コントローラは、第1のスイッチによって送信されたPacket-inメッセージを受信し、宛先ホスト識別子によって示されているホストがSDNネットワーク内に存在していないと判定した場合には、コントローラは、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されていない場合には、送信元ホスト識別子を含む異常フローエントリを第1のスイッチに送信して、ステップ504を行う、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されている場合には、本分岐の処理手続きが終了する。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
ある可能な実施様態においては、コントローラは、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することが、
トリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを、コントローラによって、算出するステップと、
トリガ処理レートがレート閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、または、トリガ処理レートがレート閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップとを含んでいてもよい。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
第2の可能な実施様態においては、コントローラは、悪意ある攻撃が送信元ホスト識別子によって示されている送信元ホストから開始されているかどうかを、トリガ処理カウントに従って、判定することが、
トリガ処理カウントがカウント閾値より大きいかどうかを、コントローラによって、判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると、コントローラによって、判定する、または、トリガ処理カウントがカウント閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと、コントローラによって、判定するステップを含んでいてもよい。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
第1の可能な実施様態においては、検出ユニット630は、
第1の受信ユニット610によって受信したトリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを算出し、
トリガ処理レートがレート閾値より大きいかどうかを判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、または、トリガ処理レートがレート閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成されてもよい。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
第2の可能な実施様態においては、検出ユニット630は、
トリガ処理カウントがカウント閾値より大きいかどうかを判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、または、トリガ処理カウントがカウント閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成されてもよい。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
必要に応じて、装置は、
送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されていない場合には、異常フローエントリを第1のスイッチに送信するように第1の送信ユニット620をトリガするように構成される、判定ユニットをさらに備えていてもよい。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
必要に応じて、第2の受信ユニット720は、コントローラによって送信された第1の命令を受信するようにさらに構成されてもよく、
装置は、最終フローテーブルであるローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして、第1の命令に従って、設定するように構成される、設定ユニットをさらに備える、または、
第2の受信ユニット720は、コントローラによって送信された第2の命令を受信するようにさらに構成されてもよく、
装置は、第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するように構成される、設定ユニットをさらに備える。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】０１０８
【補正方法】変更
【補正の内容】
【０１０８】
必要に応じて、第2の受信ユニット720は、コントローラによって送信された第3の命令を受信するようにさらに構成されてもよく、
装置は、送信元ホストからのデータパケットを抑制するように構成される、制御ユニットをさらに備えていてもよい。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
必要に応じて、プロセッサ810は、トリガ処理カウントおよび異常フローエントリの時効時間に従って異常フローエントリのトリガ処理レートを算出し、トリガ処理レートがレート閾値より大きいかどうかを判定し、トリガ処理レートがレート閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、または、トリガ処理レートがレート閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成されてもよい。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】０１１６
【補正方法】変更
【補正の内容】
【０１１６】
必要に応じて、プロセッサ810は、トリガ処理カウントがカウント閾値より大きいかどうかを判定し、トリガ処理カウントがカウント閾値より大きい場合には、悪意ある攻撃が送信元ホストから開始されていると判定する、または、トリガ処理カウントがカウント閾値より大きくない場合には、悪意ある攻撃が送信元ホストから開始されていないと判定するように特に構成されてもよい。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】０１１７
【補正方法】変更
【補正の内容】
【０１１７】
必要に応じて、プロセッサ810は、トランシーバ830が第1のスイッチに異常フローエントリを送信する前に、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されているかどうかを判定し、送信元ホスト識別子によって示されている送信元ホストの異常フローエントリが第1のスイッチに配信されていない場合には、異常フローエントリを第1のスイッチに送信するようにトランシーバ830を制御するステップを行うようにさらに構成されてもよい。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】０１２７
【補正方法】変更
【補正の内容】
【０１２７】
メモリ920は、プログラムを記憶するように構成される。特に、プログラムは、プログラムコードを含み得るし、プログラムコードは、コンピュータ演算命令を含む。メモリ920は、高速RAMメモリを含んでいてもよいし、不揮発性メモリ、例えば、少なくとも1つの磁気ディスクメモリをさらに含んでいてもよい。さらに、メモリ920は、フローテーブルを記憶するようにさらに構成される。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】０１３０
【補正方法】変更
【補正の内容】
【０１３０】
必要に応じて、トランシーバ930は、コントローラによって送信された第1の命令を受信するようにさらに構成されてもよいし、
プロセッサ910は、トランシーバ930によって受信した第1の命令に従って最終フローテーブルであるローカル精密照合テーブルを送信元ホスト識別子照合領域のみを照合する精密照合テーブルとして設定するようにさらに構成されてもよい、または、
トランシーバ930は、コントローラによって送信された第2の命令を受信するようにさらに構成されてもよいし、
プロセッサ910は、トランシーバ930によって受信した第2の命令に従って最終フローテーブルとなるように送信元ホスト識別子照合領域を含むワイルドカードテーブルを調整するようにさらに構成されてもよい。
【国際調査報告】
2016537898.tif 000019
2016537898.tif 000020
2016537898.tif 000021
2016537898.tif 000022