JP6435695B2 - コントローラ,及びその攻撃者検知方法 - Google Patents

コントローラ,及びその攻撃者検知方法 Download PDF

Info

Publication number
JP6435695B2
JP6435695B2 JP2014158611A JP2014158611A JP6435695B2 JP 6435695 B2 JP6435695 B2 JP 6435695B2 JP 2014158611 A JP2014158611 A JP 2014158611A JP 2014158611 A JP2014158611 A JP 2014158611A JP 6435695 B2 JP6435695 B2 JP 6435695B2
Authority
JP
Japan
Prior art keywords
message
controller
inspection
switch
communication partner
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014158611A
Other languages
English (en)
Other versions
JP2016036095A (ja
Inventor
翔 清水
翔 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014158611A priority Critical patent/JP6435695B2/ja
Priority to US14/797,601 priority patent/US9800593B2/en
Publication of JP2016036095A publication Critical patent/JP2016036095A/ja
Application granted granted Critical
Publication of JP6435695B2 publication Critical patent/JP6435695B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection

Landscapes

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

Description

本開示は、コントローラ,及びその攻撃者検知方法に関する。
近年、ネットワークの分野ではSoftware Defined Networking(SDN)が注目されて
いる。SDNでは、ネットワーク全体をコントローラと呼ばれるソフトウェアが集中的に制御、管理する。これによって、ネットワークのプログラマビリティを高め、制御の自動化を達成することを目的としている。
SDNを実現する技術の一つとして、OpenFlowがある。OpenFlowの主たる特徴は、既存のネットワーク機器に実装されていたネットワークの経路制御機能とデータ転送機能とを分離したことである。
OpenFlowは、経路制御を司る“OpenFlowコントローラ”(以下「コントローラ」又は「OFC」と表記)と、データ転送機能を備える“OpenFlowスイッチ”(以下「スイッチ」又は「OFS」と表記)とを含む。コントローラとスイッチとのコミュニケーションは、
“OpenFlowプロトコル”によって行われる。
OpenFlowが適用されたOpenFlowネットワークでは、ネットワーク全体の制御をコントローラが集中的に行う。ネットワーク全体の制御の一環として、コントローラは、コントローラとセッションを確立した複数のスイッチのそれぞれの動作を制御する。これによって、ネットワークの管理や制御を効率的に行うことができる。
特開2007−122749号公報 特開2008−211464号公報
上述したように、OpenFlowネットワークでは、コントローラが集中的な管理及び制御を行う。このため、クラッカーなどの不正ユーザ(攻撃者)の端末がスイッチになりすましてコントローラの制御下に入り、コントローラに対してDoS攻撃(Denial of Service attack)を行う可能性がある。コントローラが攻撃によって動作を停止すると、その影響がネットワーク全体に及ぶ虞がある。
従来のOpenFlowネットワークでは、コントローラの制御下にある通信相手がスイッチか攻撃者かを判定することができない。本開示の一側面は、コントローラの制御下にある通信相手がスイッチか攻撃者かを判定することができる技術を提供することを目的とする。
本開示の一つの側面は、制御下にあるスイッチにパケットに対する動作を示す制御メッセージを送信するコントローラであって、制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信する処理と、スイッチが前記検査メッセージに基づく処理を行うことで生じる事象が前記通信相手について生じないときに前記通信相手をスイッチではなく攻撃者と判定する処理とを行う制御装置を含む。
本開示の一側面によれば、コントローラの制御下にある通信相手がスイッチか攻撃者かを判定することができる。
図1は、実施形態1におけるOpenFlowネットワークシステムの構成例を模式的に示す図である。 図2Aは、第1の攻撃者の検知方法の説明図である。 図2Bは、第1の攻撃者の検知方法の説明図である。 図3Aは、第2の攻撃者の検知方法の説明図である。 図3Bは、第2の攻撃者の検知方法の説明図である。 図4は、コントローラとして動作可能な情報処理装置(コンピュータ)のハードウェア構成例を示す図である。 図5は、攻撃者の検知処理の例を示すフローチャートである。 図6は、検知処理に際して使用される情報を示すテーブルの例を示す。 図7は、図5に示した検査フェーズの詳細の一例である第1の検査方法(PI検査)を示すフローチャートである。 図8Aは、Packet Inメッセージを模式的に示す図である。 図8Bは、FlowModメッセージを模式的に示す図である。 図9は、図7に示したPI検査に係る処理の変形例を示すフローチャートである。 図10は、図5に示した検査フェーズの詳細の一例である第2の検査方法(FR検査)を示すフローチャートである。 図11は、FR検査で使用される有効期間付きのFMメッセージの例を模式的に示す図である。 図12は、図10に示したFR検査の変形例1を示すフローチャートである。 図13は、図10に示したFR検査の変形例2を示すフローチャートである。 図14は、図5に示した検査フェーズの詳細の一例である第3の検査方法(複合検査)を示すフローチャートである。 図15は、実施形態2に係るOpenFlowネットワークシステムの例を示す。 図16は、実施形態2におけるコントローラ(CPU)の処理例を示すフローチャートである。
以下、図面を参照して本発明の実施形態について説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
〔実施形態1〕
<OpenFlowネットワークシステムの構成例>
以下に説明する実施形態1及び2では、SDNを実現する制御プロトコルのうち、最も実装が進んだプロトコルであるOpenFlowを対象とする。以下の説明において、OpenFlow
を「OF」と表記することもある。
図1は、実施形態1におけるOFネットワークシステムの構成例を模式的に示す図である。図1において、OFネットワークシステムは、コントローラ(OFC)1と、コントローラ1の制御下にある(コントローラ1によって制御される)少なくとも1つのスイッチ(OFS)2とを含む。図1の例では、各スイッチ2はネットワークを介してコントローラ1に接続されている。
図1の例では、複数のスイッチ2A,2B,2Cが例示されている。スイッチ2Aはスイッチ2Bと接続され、スイッチ2Bはスイッチ2Cと接続されている。以下の説明において、スイッチ2A,2B,2Cを区別しない場合には、スイッチ2と表記する。各スイッチ2は、1以上のホスト(端末)3を収容している(但し、スイッチ2がホスト3を収容しない場合もある)。
スイッチ2Aは、非OFネットワーク4(4A)と接続されており、スイッチ2Cは、非OFネットワーク4(4B)と接続されている。非OFネットワーク4は、OpenFlowと異なる規格で構築されたネットワークであり、例えば、インターネットやイントラネットのようなInternet Protocol(IP)パケットを転送するパケット網である。
上記構成によって、例えば、非OFネットワーク4Aから各スイッチ2A,2B,2Cを通って非OFネットワーク4Bへ至るパケットの転送が行われる。或いは、各非OFネットワーク4A,4Bからのパケットが所定のスイッチ2を介して端末3へ転送される。もちろん、スイッチ2に接続された端末3間のパケット通信もスイッチ2を介してなされる。
コントローラ1は、各スイッチ2との間でOFプロトコルに基づくメッセージを送受信するためのセッションを確立する。セッションの確立手順は、例えば以下の通りである。最初に、スイッチ2は、コントローラ1との間でTransmission Control Protocol(TC
P)のハンドシェイク手順(3ウェイハンドシェイク)を行い、TCPセッションを確立する。TCPセッションは、「セッション」の一例である。
次に、スイッチ2は、コントローラ1との間でOF規格に基づくハンドシェイク手順を行う。ハンドシェイク手順の中で、スイッチ2とコントローラ1とは、Hellowメッセージと呼ばれるメッセージを相互に交換する。続いて、スイッチ2は、“features request”と呼ばれるスイッチ2の情報を含んだメッセージを送り、コントローラ1は、“features
request”の応答メッセージ(“features reply”と呼ばれる)を返信する。これによって、OF規格に基づくハンドシェイクが成立する。その後、スイッチ2とコントローラ1とは、echoメッセージを相互に送り、セッションを維持する。
コントローラ1は、各スイッチ2で受信されるパケットに対する経路制御を行い、各スイッチ2が受信したパケットに対して行う動作(アクション)を定義した制御情報を生成する。制御情報は、OFにおいて「フロー」と呼ばれる。
フローは、“マッチ条件(「ルール」とも呼ばれる)”,“アクション(Action)”,及び“統計情報(Statistics)”の組で形成される。“マッチ条件”は、スイッチ2に入力されるパケットの識別条件(フローの定義条件)を示す情報であり、主にパケットのヘッダフィールドに設定されるパラメータの組み合わせで表現される。
“アクション”には、マッチ条件に合致するパケットに対する動作(処理)内容が定義される。“アクション”として複数の動作を定義することができる。また、“アクション”の定義がないときには、“Drop:パケットの廃棄”が行われるようにすることもできる。
“統計情報”として、“マッチ条件”に合致するパケット数やパケット量がカウントされる。このような統計情報は、“アクション”を実行するための条件として使用することができる。
コントローラ1は、1つのフローを1エントリとしたエントリ(「フローエントリ」と呼ばれる)の集合体(「フローテーブル」と呼ばれる)をスイッチ2毎に作成する。コントローラ1は、スイッチ2に対応するフローエントリを含むメッセージ(「FlowModメッ
セージ」と呼ばれる)を作成する。FlowModメッセージ(以下、「FMメッセージ」とも
表記する)は、各スイッチ2との間で確立したセッションを用いて各スイッチ2に送信される。FMメッセージは、「制御メッセージ」の一例である。
スイッチ2(各スイッチ2A,2B,2C)は、FMメッセージを受信すると、当該FMメッセージ中のフローエントリを記憶装置に記憶する。すなわち、スイッチ2は、コントローラ1で生成されたフローエントリの集合体、すなわちフローテーブルを記憶装置に記憶する。
スイッチ2は、パケットを受信すると、フローテーブルを参照し、パケットと合致する(マッチする)マッチ条件を有するフローエントリを検索する。マッチ条件と合致するフローエントリが見つかると、スイッチ2は、当該エントリ中の“アクション”に示された動作を行う。例えば、アクションの内容が“Output:port1”であれば、スイッチ2は、パケットを“出力ポート1”から送出する。
このように、スイッチ2は、自身が受信するパケットについて、コントローラ1から受信するフロー(フローエントリ)の内容に従った動作を行う。すなわち、スイッチ2の動作は、コントローラ1が作成するフローによって制御される。
FMメッセージに含まれるフロー(フローエントリ)には、有効期限(有効期間)を設定することができる。有効期限付きのフローエントリも、有効期限のないフローエントリと同様にスイッチ2のフローテーブルに登録される。但し、当該フローエントリは、有効期限が到来、すなわち、有効期間が満了すると、フローテーブルから削除される。
有効期限付きのフローエントリを削除したスイッチ2は、該当フローの削除(当該フローの有効期間の満了)を示すメッセージ(FlowRemovedメッセージと呼ばれる)をコント
ローラ1へ送信する。コントローラ1は、FRメッセージの受信によって、当該FRメッセージで示されたフローの削除(無効)を検知することができる。
上述したように、スイッチ2は、パケットを受信する毎に、フローテーブルを参照し、パケットと合致するマッチ条件を含むフローエントリを検索する。検索の結果、マッチ条件に合致するフローエントリが発見されない場合には、スイッチ2は、当該パケットを含むメッセージ(「Packet Inメッセージ」と呼ばれる)をコントローラ1へ送信する。Packet Inメッセージ(以下「PIメッセージ」と表記する)は、パケットに対する動作が決定(規定)されていないパケットの受信を示すメッセージである。
PIメッセージを受信したコントローラ1は、当該PIメッセージ中のパケットを参照し、当該パケットに対するフロー(フローエントリ)を作成する。このとき、コントローラ1は、当該パケットのヘッダ情報などを参照し、当該パケットと同タイプの(同じ属性情報を有する)パケットを識別するためのマッチ条件をフローエントリに含める。
コントローラ1は、作成したフローエントリをPIメッセージの送信元のスイッチ2へ送る。スイッチ2は、フローエントリをフローテーブルに登録する。当該登録によって、スイッチ2は、上記PIメッセージに含めたパケットと同タイプのパケットに合致するマッチ条件を有するフローエントリをフローテーブルから見つけることができる。これによって、スイッチ2は、当該フローエントリの“アクション”に従った動作(処理)を行うことができる。
<コントローラに対する攻撃>
不正なユーザ(攻撃者)によるコントローラ1への攻撃方法としては、以下が考えられる。図1に示すように、攻撃者の端末5がスイッチ2になりすましてコントローラ1とセッションを確立し、当該端末5からDoS攻撃を行うことが考えられる。DoS攻撃として、端末5が大量のメッセージをコントローラ1に送信し、コントローラ1を高負荷状態にする。
このとき、メッセージがOFに従ったフォーマットで作成されていると、コントローラ1で大量に受信されたメッセージが通常の(正規の)スイッチ2からの正常メッセージであるのか、攻撃者の意図的な攻撃によるメッセージであるのかを判断することが難しい。
<攻撃者の検知方法>
本実施形態では、コントローラ1は、所定の開始トリガが発生したときに、セッションの確立相手(通信相手:「接続相手」、「クライアント」ともいう)の検査を開始する。開始トリガは、例えば、或るクライアントから大量のメッセージを受信したことである。メッセージの種類は問わない。但し、特定のメッセージについての集計を行っても良い。特定のメッセージは、PIメッセージを含む。
また、開始トリガは大量のメッセージ受信に限定されない。例えば、或るクライアントとのOF規格に基づくハンドシェイクの成功が開始トリガとされても良い。また、所定のアルゴリズムに従って、開始トリガが定期的又は周期的に発生するようにしても良い。また、開始トリガは、セッションを確立している或るクライアントについて発生してもよく、複数のクライアントを対象として発生するようにしても良い。
クライアントの検査として、コントローラ1は、クライアントのOF規格適合(準拠)性を検査し、クライアントの振る舞い(挙動)がOF規格に適合又は準拠するか否かを判定する。クライアントの挙動がOF規格に適合又は準拠する場合には、コントローラ1は、クライアントが正規のスイッチ2と判定する。これに対し、クライアントの挙動がOF規格に適合又は準拠しない場合には、コントローラ1は、クライアントが攻撃者(攻撃プログラム)であると判定する。
<<OF規格適合(準拠)性検査>>
OF規格適合性の検査及び判断として、コントローラ1は、以下のような処理を行う。コントローラ1は、所定の開始トリガの発生を機に検査を開始する。すなわち、コントローラ1は、検査対象のクライアントを被疑攻撃者とし、被疑攻撃者に検査用のFMメッセージを送信する。検査用のFMメッセージは、「検査メッセージ」の一例である。
このとき、検査用のFMメッセージを受信した被疑攻撃者がOF規格に適合又は準拠しない挙動を示すことがある。この場合、検査用のFMメッセージの受信者が正規のスイッチ2であれば生じる事象が被疑攻撃者について生じない。このとき、コントローラ1は被疑攻撃者を攻撃者と判定する。すなわち、コントローラ1は、被疑攻撃者とのセッションが不正なセッションと判定する。以下、OF規格適合性の検査方法(FMメッセージを用いた攻撃者の検知方法)の例について説明する。
[第1の攻撃者の検知方法]
図2A及び図2Bは、第1の攻撃者の検知方法の説明図である。図2Aは、クライアントが通常の(正規の)スイッチ2であるケースを示し、図2Bは、クライアントが攻撃者の端末5であるケースを示している。
図2Aにおいて、コントローラ1は、スイッチ2を被疑攻撃者とする場合、スイッチ2から受信されたPIメッセージ中のパケットに対するマッチ条件及びアクション(例えば、所定ポートから送出)を規定したフローエントリを作成する。コントローラ1は、フローエントリを含む検査用のFMメッセージをスイッチ2へ送信する(図2A<1>)。当該検査用のFMメッセージは、「第1の検査メッセージ」の一例である。
被疑攻撃者は正規のスイッチ2であるので、検査用のFMメッセージ中のフローエントリをフローテーブルに登録する。その後、スイッチ2は、PIメッセージに含めたパケットと同タイプのパケットを受信した場合には、PIメッセージを送信することなく、当該パケットを対応するフローエントリ中の“アクション”に従って処理する。すなわち、スイッチ2は、アクションの内容に従ってパケットを所定ポートから送出する(図2A<2>)。
このように、被疑攻撃者が正規のスイッチ2であれば、PIメッセージに含まれたパケットに対するFMメッセージを送信した後には、同タイプのパケットに係るPIメッセージはスイッチ2から送信されない。従って、コントローラ1から見て、同タイプのパケットについてのPIメッセージが受信されないという事象が生じる。
図2Bにおいて、被疑攻撃者が攻撃者の端末5である場合には、端末5で実行される攻撃プログラムは、コントローラ1に負荷をかけるメッセージをコントローラ1へ送り込むことを目的として作成されている。このため、攻撃プログラムは、スイッチ2本来の動作をカバーしていないと考えられる。すなわち、攻撃プログラムは、FMメッセージの受信時における処理を含んでいないと考えられる。
従って、図2Aを用いて説明したのと同様に、コントローラ1が検査用のFMメッセージを端末5に送信しても(図2B<1>)、端末5においてフローエントリの登録処理は実行されない。このため、端末5は、DoS攻撃に係るPIメッセージをコントローラ1へ送信することを継続する(図2B<2>)。
このため、コントローラ1は、FMメッセージを送信したにも拘わらず、同タイプのパケット(検査用のFMメッセージで送信したマッチ条件にマッチするパケット)を含むPIメッセージを受信する。すなわち、コントローラ1から見て、被疑攻撃者がスイッチ2であれば生じる事象(同タイプのパケットのPIメッセージが受信されない)が生じない。
換言すれば、被疑攻撃者がFMメッセージの受信時に予定される挙動と異なる挙動を示す結果、スイッチ2がFMメッセージを受信した場合では生じない事象が発生する。コントローラ1は、PIメッセージの受信を契機に、被疑攻撃者(端末5)が攻撃者である(端末5とのセッションが不正セッションである)と判定する。このようにして、OF規格に基づくFMメッセージ及びFMメッセージに対するスイッチ2の処理を用いて攻撃者(不正セッション)が検知される。
[第2の攻撃者の検知方法]
図3A及び図3Bは、第1の攻撃者の検知方法の説明図である。図3Aは、クライアントが通常の(正規の)スイッチ2であるケースを示し、図3Bは、クライアントが攻撃者の端末5であるケースを示している。
図3Aにおいて、コントローラ1は、スイッチ2を被疑攻撃者とする場合、スイッチ2に対して検査用のFMメッセージを送信する(図3A<1>)。当該検査用のFMメッセージは、有効期限(有効期間)が設定された所定のフローエントリを含む。フローエント
リの内容は適宜設定可能である。当該検査用のFMメッセージは、「第2の検査メッセージ」の一例である。
スイッチ2は、検査用のFMメッセージを受信すると、FMメッセージ中のフローエントリをフローテーブルに登録する。その後、スイッチ2は、当該フローエントリの有効期間が満了すると、当該フローエントリをフローテーブルから削除する(図3A<2>)。そして、スイッチ2は、フローエントリの削除(有効期間の満了)を示すFRメッセージをコントローラ1へ送信する(図3A<3>)。FRメッセージは、「応答メッセージ」の一例である。
このように、検査用のFMメッセージがスイッチ2に送信された場合には、コントローラ1から見て、有効期間満了後にFRメッセージがスイッチ2から送信(コントローラ1で受信)されるという事象が生じる。
図3Bに示すように、被疑攻撃者が攻撃者の端末5である場合、端末5が実行する攻撃プログラムは、FMメッセージ受信時の処理、或いは、有効期限付きのFMメッセージを受信したときの処理を含んでいないと考えられる。
このため、端末5は、コントローラ1から送信された検査用のFMメッセージ(有効期限付き)を受信し(図3B<1>)、有効期間が満了しても、FRメッセージを送信しない(図3B<2>)。すなわち、コントローラ1から見て、有効期間が満了してもFRメッセージが受信されないという事象が生じる。
コントローラ1は、例えば、検査用のFMメッセージを送信した被疑攻撃者からFRメッセージを受信できなければ、コントローラ1は、被疑攻撃者(端末5)が攻撃者である(端末5のセッションが不正セッションである)と判定する。このようにして、OFに規定されたFMメッセージを用いて攻撃者(不正セッション)が検知される。
上記した第1及び第2の検知方法によって、コントローラ1は、クライアントが攻撃者(攻撃プログラム)であると判定した場合には、コントローラ1は、典型的には、当該クライアント(端末5)とのセッションを切断し、以後の当該クライアントからのアクセスを遮断する。これによって、攻撃者からの攻撃を回避することができる。但し、クライアントが攻撃者と判定したときの処理は、上記例に限定されない。
上記した第1及び第2の検知方法(攻撃者(不正セッション)の判定方法)が有効である背景としては、以下が考えられる。攻撃者がコントローラ1を攻撃する際に用いる攻撃プログラムは、コントローラ1の動作を模擬するものである一方、OF規格への適合又は準拠性が必ずしも高くないと考えられる。
すなわち、攻撃プログラムは、OF規格に従ったコントローラ1とのセッションを確立及び維持する機能、並びに、攻撃に要するメッセージ送受信機能を備える。しかし、攻撃プログラムは攻撃と関係しない動作及び処理は備えない(作り込みが甘い)と考えられる。
OF規格に完全に適合した攻撃プログラムを作成すると、実際のスイッチ(OFS)2を作成するのとほぼ等しい作業量が要求され、攻撃プログラムの開発コストが非常に高くなるからである。また、コントローラ1を攻撃する(コントローラ1に負荷をかける)ための動作として、PIメッセージなどのスイッチ2からコントローラ1へ送信可能な非同期メッセージを発生させることが考えられる。この場合、フローテーブルなどの通常のスイッチ2が管理するステートの実装は攻撃に直接関係しないため、作成を省略すると考え
られるからである。
実施形態1では、コントローラ1に対して大量のアクセス(メッセージ受信)があった時に、クライアントが正規のスイッチ2であるのか攻撃プログラムであるのかを、FMメッセージを用いた簡便な処理の追加によって判断することができる。すなわち、情報処理装置(コンピュータ)をコントローラ1として動作させるプログラムに、上記した攻撃者の検知方法(被攻撃者の検査)を行うプログラム部分を追加する。これによって、コントローラ1が攻撃者の検出機構を備えることができる。
上述した攻撃者の検出機構(攻撃者の検知方法)は、コントローラ1への攻撃を防ぐための他の手法と組み合わせることができる。他の手法は、例えば、クライアントとコントローラ1との接続時にクライアントの認証を行い、認証が成功しない場合にはコントローラ1とクライアントとのセッションの確立を行わない手法である。
<実施形態1の詳細>
以下、実施形態1の詳細について説明する。
<<情報処理装置の構成例>>
図4は、上述したコントローラ1として動作可能な情報処理装置(コンピュータ)10のハードウェア構成例を示す図である。情報処理装置10は、例えば、パーソナルコンピュータ(PC),ワークステーション(WS),サーバマシンのような専用又は汎用のコンピュータを適用することができる。但し、情報処理装置10の種類は、上記の例示に制限されない。
図4において、情報処理装置10は、バスBを介して相互に接続されたCentral Processing Unit(CPU)11と、Random Access Memory(RAM)12と、Read Only Memory(ROM)13とを備えている。また、情報処理装置10は、バスBに接続されたハー
ドディスクドライブ(HDD)14と、ネットワークインタフェース(NWI/F)15とを備えている。さらに、情報処理装置10は、バスBに接続された入力インタフェース(入力I/F)16と、出力インタフェース(出力I/F)17とを備えている。
RAM12は、CPU11の作業領域として使用される。ROM13及びHDD14のそれぞれは、プログラムやプログラムの実行に際して使用されるデータを記憶する。RAM12及びHDD14は、プログラムの実行結果として生成されたデータを記憶することもできる。HDD14の代わりに、又はHDD14に加えて、Solid State Drive(SS
D)が設けられていても良い。RAM12,ROM13,HDD14などは、「記憶部」、「記憶媒体」,「メモリ」,或いは「記憶装置」の一例である。
入力I/F16には、入力装置18が接続される。入力装置18は、例えば、ボタン、キー,ポインティングデバイス(マウスなど),タッチパネルの少なくとも1つを含む。入力装置18は、情報やデータの入力に使用される。
出力I/F17には、表示装置(ディスプレイ装置)19が接続される。表示装置19は、各種の情報を表示する。NWI/F15は、通信機能を司るインタフェース回路を含み、スイッチ2(クライアント)などとネットワークを介して接続される。NWI/F15は、例えば、LANカードのようなネットワークインタフェースカードを適用することができる。NWI/F15は、「送信装置」、「受信装置」、「通信装置」の一例である。
CPU11は、ROM13やHDD14に記憶されたプログラムをRAM12にロードして実行する。これによって、情報処理装置10は、コントローラ1として動作する。C
PU11は、「プロセッサ」或いは「制御装置」の一例である。
プログラムの実行によって、CPU11は、コントローラ1が実行する様々な処理を行う。CPU11が実行する処理は、クライアント(スイッチ2)とのセッション(コネクション)を確立及び切断する処理、フローエントリを作成(算出)する処理、OFプロトコルを用いてスイッチ2とコミュニケーション(メッセージ交換)する処理などを含む。
各スイッチ2向けに作成されたフローエントリ(フローテーブル)は、各スイッチ2へFMメッセージを用いて送信されるとともに、RAM12及びHDD14の少なくとも一方に記憶される。さらに、CPU11は、上述した攻撃者を検知する(被疑攻撃者を検査する)処理(図2)を実行する。
また、情報処理装置10は、CPU11がスイッチ2用のプログラムを実行することによって、スイッチ2として動作することもできる。スイッチ2として動作する情報処理装置10のCPU11は、例えば、以下の処理を実行する。
CPU11は、NWI/F15で受信されるコントローラ1からのFMメッセージ中のフローエントリをRAM12やHDD14の記憶領域に記憶されたフローテーブルに登録する処理を行う。また、CPU11は、NWI/F15で受信されたパケットに対応するフローエントリをフローテーブルから検索し、発見されたフローエントリの“アクション”で定義された動作をパケットについて行う。
また、CPU11は、パケットに対応するフローエントリが発見されないときに、PIメッセージをコントローラ1へ送信する処理を行う。さらに、CPU11は、有効期間付きのフローエントリをフローテーブルから削除した場合に、FRメッセージを生成しコントローラ1へ送る処理を行う。これらのスイッチ2で行われる処理は、いずれもOF規格に適合又は準拠した処理である。
<<CPUによる処理>>
図5は、攻撃者の検知処理(クライアントが攻撃プログラムであるか否かのチェック処理)の例を示すフローチャートである。図5に示す処理は、コントローラ1として動作する情報処理装置10のCPU11によって実行される。図5に示す処理は、一例として、セッションを確立している(制御下の)クライアントから大量のPIメッセージをコントローラ1が受信したことを契機(開始トリガ)として開始される。
図6は、検知処理に際して使用される情報を示すテーブルの例を示す。テーブルは、RAM12やHDD14に記憶される。但し、テーブルに含まれた情報の保存形式はテーブルに限定されない。図6の例において、テーブルは、クライアント毎に、クライアントの識別情報と、クライアントとの間で確立されたセッションの識別情報と、単位時間と、メッセージ受信数とを含む。
クライアントの識別情報は、コントローラ1とセッションを確立した通信相手の識別情報であり、本来的にはスイッチ2の識別情報である。クライアントの識別情報としては、例えば、Data Path ID(DPI)と呼ばれるOF規格に従った識別子が適用される。DPIは、例えば、クライアントとコントローラ1とのハンドシェイク手順時に、所定のメッセージに含まれてコントローラ1に伝達される。所定のメッセージは、“features request”を含む。但し、クライアント間を識別できる限り、DPI以外の情報を適用可能である。
セッションの識別情報は、セッションを用いて通信相手との間でメッセージを送受信す
るための情報を含む。セッションの識別情報は、典型的には、TCPセッションで使用される識別子(IPアドレスとポート番号との組み合わせ)である。但し、セッションの識別情報は、上記に限定されない。
単位時間として、所定の時間長の時間を設定可能である。図6の例では、クライアント間で同一の単位時間(x)が設定されている例を示しているが、クライアント間で異なる時間長の単位時間が設定されても良い。単位時間は、図示しないタイマによって計時される。
受信メッセージ数として、単位時間内にクライアントから受信されたメッセージの数が記憶される。計数されるメッセージの種別に制限はなく、あらゆる種類のメッセージの合計数を計数しても良い。或いは、特定の種別のメッセージの数が計数されても良い。特定の種別のメッセージは、PIメッセージを含む。
閾値は、クライアントを被疑攻撃者と判断する程度のメッセージが受信されたことを判定するための閾値である。閾値として、適宜の数値が設定される。図6の例では、閾値として同じ値“y”が設定されているが、クライアント間で異なる閾値が設定される場合もあり得る。
図5に示す処理は、適宜のタイミングで開始される。最初の01の処理では、CPU11は、図示しないタイマを用いて単位時間“x”の計時を行い、単位時間が経過(タイマが満了)すると(01,Y)、処理が02に進む。単位時間中に、CPU11は、各クライアントから受信されるメッセージの数をカウントし、テーブルに記憶する処理を行う。
次の02の処理では、CPU11は、テーブルのメッセージ受信数と閾値とを比較し、単位時間内に受信されたメッセージの数が閾値を上回っているか否かを判定する。メッセージ数が閾値以下(02,No)であれば、処理が01に戻り、タイマがリセットされて、次の単位時間が計時される。これに対し、メッセージ数が閾値を上回っている場合(02,Yes)には、処理が次の03へ進む。
02の処理は、各クライアントについて実行される。02の処理において全てのクライアントについてNoの判定がなされた場合に処理が01に戻る。02の処理においてYesの判定がなされたクライアントがある場合には、CPU11は、当該クライアントを被疑攻撃者として03以降の処理を実行する。なお、受信メッセージ数と閾値との比較判定は、受信メッセージ数が閾値以上か否かによってなされても良い。
次の03の処理では、CPU11は、クライアントのOF規格適合性の検査を行う。すなわち、CPU11は、クライアントの振る舞い(挙動)がOF規格に適合又は準拠するか否かを検査する。
検査の結果、クライアントの挙動がOF規格に適合又は準拠する場合には(04,Yes)、CPU11は、クライアントが正規のスイッチ2であるとの判断を以て、処理を01に戻す。これに対し、クライアントの挙動がOF規格に適合又は準拠しない場合には(04,No)、CPU11は、クライアントが攻撃者(攻撃プログラム)であるとの判断を以て、クライアントとのセッションを切断(05)し、当該クライアントからの以後のアクセスを拒否する設定を行う(06)。その後、CPU11は、処理を01へ戻す。
セッションの切断処理としては、積極的なセッションの切断(終了)シーケンスを攻撃者(端末5)との間で行うことや、攻撃者からのechoメッセージへの応答を禁止する、といった手法を採ることができる。但し、セッションの切断方法は上記手法に限定されない
アクセスを拒否する設定としては、例えば、以下の手法がある。すなわち、CPU11は、クライアントのDPI,IPアドレス,或いはDPIとIPアドレスとの組み合わせをRAM12やHDD14に記憶しておく。その後のセッション確立処理(ハンドシェイク)において、記憶したDPIやIPアドレスがクライアントから提示されたときに、CPU11は、ハンドシェイクを拒絶する。なお、DPIやIPアドレスの組み合わせに加えて、以前のハンドシェイクに用いたソケット番号を用いる場合もあり得る。アクセス拒否の設定は、上記手法に限定されない。
<<第1の検知方法(PI検査)>>
図7は、図5に示した03の処理(検査フェーズ)の詳細の一例である第1の検査方法(「PI検査」とも呼ぶ)を示すフローチャートである。PI検査は、図2A及び図2Bを用いて説明した第1の攻撃者の検知方法を実行する処理である。
図7に示す処理は、例えば、クライアントのOF規格適合性検査フェーズ(図5の03)で呼び出されるサブルーチンである(以下、「サブルーチン10」と称する)。サブルーチン10では、最初の11の処理において、CPU11は、コントローラ1がクライアント(被疑攻撃者)から受信したPIメッセージにマッチする検査用のフローの設定処理を行う。
すなわち、CPU11は、被疑攻撃者のクライアントからのPIメッセージ受信を待ち、PIメッセージが受信されると、PIメッセージ中のパケットを解析する。CPU11は、パケットの解析を通じて、PIメッセージ中のパケットに合致する被疑攻撃者向けの検査用のフロー(フローエントリ)を新規に作成する。
具体的には、CPU11は、PIメッセージ中のパケットのヘッダに設定されたパラメータなどを用い、当該パケットにマッチ(合致)する“マッチ条件(ルール)”を作成するとともに、マッチ条件に対応するアクションを決定する。アクションの内容は、マッチ条件に合致したパケットを検出可能である限り、適宜決定可能である。アクションとして、ダミーのアクションを設定することもあり得る。
CPU11は、新規に作成したマッチ条件及びアクションを含む検査用のフロー(フローエントリ)をクライアント(PIメッセージの送信元)向けのFMメッセージに含める。CPU11は、検査用のFMメッセージを検査メッセージ(第1の検査メッセージ)として、被疑攻撃者のクライアントに送信する(12)。
その後、CPU11は、当該クライアントからのPIメッセージ受信を監視する状態となる(13)。PIメッセージが受信されると(13,Yes)、CPU11は、当該PIメッセージ中のパケットが検査用のフローとマッチするか否かを判定する(14)。パケットが検査用のフローとマッチしない場合(14,No)には、CPU11は、クライアントの挙動がOF規格に適合又は準拠すると判断する。すなわち、CPU11は、クライアントが正規のスイッチ2であると判断する。その後、CPU11はサブルーチン10を終了させて処理を01(図5)へ戻す。
これに対し、パケットが検査用のフローとマッチする場合(14,Yes)には、CPU11は、被疑攻撃者のクライアントの挙動がOF規格に適合(準拠)しない、すなわちクライアントが攻撃者(攻撃プログラム)であると判断する。その後、CPU11は、サブルーチン10を終了し、処理を05(図5)へ戻す。
[PI検査の具体例]
図7に示したPI検査の具体例について説明する。図8Aは、PIメッセージを模式的に示す図である。図8Aに示すように、PIメッセージは、PIヘッダとペイロードとを含む。ペイロードには、クライアントで受信されたとされるフローが未設定のパケットが含まれる。
CPU11は、図7の11の処理で、当該パケットの解析を行う。PIメッセージ中のパケットには、図8Aに示すように、送信元MACアドレス(Src MAC)“A”と、宛先
MACアドレス(Dest MAC)“B”とが設定されていたと仮定する。このため、CPU11は、MACアドレス“A”からMACアドレス“B”宛てのパケットフローの経路計算を行い、クライアントの出力ポートを決定する。このとき、出力ポート“1”が求められたと仮定する。
従って、CPU11は、受信パケットが送信元MACアドレス“A”及び宛先MACアドレス“B”を有することをパケットの“マッチ条件”として決定する。また、CPU11は、マッチ条件に対応する“アクション”として、「パケットを出力ポート“1”から出力する(Output: Port 1)」ことを決定する。そして、上記マッチ条件及びアクションを含む検査用のフローエントリを作成する。
CPU11は、検査用のフローエントリをクライアント(PIメッセージの送信元)向けのFMメッセージに含める。図8Bは、FMメッセージを模式的に示す図である。図8Bに示すように、FMメッセージは、OFヘッダとFM情報の格納領域とを含む。当該格納領域には、クライアント向けの検査用のフローエントリが格納される。すなわち、マッチ条件(Match: (Src MAC==A) AND (Dest MAC==B)及びアクション(Action: Output: Port 1)が格納領域に設定される。
CPU11は、図7の12の処理において、図8Bに示すような検査用のフローエントリを含むFMメッセージを被疑攻撃者のクライアントに送信する。FMメッセージの送信後に、上記マッチ条件とマッチするパケットを含んだPIメッセージがコントローラ1で受信された場合、CPU11は、当該クライアントを攻撃者と判定する。
上述した第1の検査方法(PI検査)では、受信したPIメッセージのペイロード中のパケットとのマッチ条件を含む検査用のフローを含むFMメッセージがクライアントに送信される。その後、検査用のフローとマッチするパケットを含むPIメッセージが受信された場合、CPU11は、クライアントを不正な攻撃プログラムと判断する。
OF規格に適合したスイッチ2では、FMメッセージを受信した場合、FMメッセージ中のフローエントリをフローテーブルに登録(フローを設定)する。その後、当該フローとマッチするパケットがスイッチ2に到着した場合には、スイッチ2は、パケットにマッチするフローエントリを検出し、当該フローエントリ中のアクションに従った動作を行う。このため、スイッチ2は、コントローラ1へ当該パケットを含むPIメッセージを送信しない。これがOF規格に適合又は準拠した正しい挙動である。
攻撃プログラムは、攻撃対象のコントローラ1に負荷をかけるための機能として、PIメッセージをコントローラ1へ送る機能を有する。これに対し、フローテーブルの状態を管理することは必ずしも攻撃に要する動作ではない。このため、攻撃プログラムは、コントローラ1から受信されたFMメッセージを無視し、当該FMメッセージ中のフローとマッチするパケットを含むPIメッセージを送信することが考えられる。従って、PI検査によって不正な攻撃プログラムを検出することができる。
[PI検査の変形例]
図9は、図7に示したPI検査に係る処理の変形例を示すフローチャートである。図9に示す11及び12の処理では、コントローラ1(CPU11)は、有効期間が設定された検査用のフローエントリを含むFMメッセージをクライアントへ送信する。次の12Aの処理では、CPU11は、有効期間のタイマ(図示せず)の計時を開始する。その後、タイマの満了を監視する(12B)。
タイマが満了する前に(12B,No)受信されたPIメッセージ中のパケットが検査用のフローのマッチ条件とマッチするとき(13及び14)、CPU11は、クライアントを攻撃者と判定する。これに対し、PIメッセージが受信されることなくタイマが満了したとき(12B,Yes)、CPU11は、クライアントを正規のスイッチ2と判定する。
当該変形例では、検査の期間(長さ)をフローの有効期間で調整することができる。すなわち、同タイプのPIメッセージが受信されるまで検査が徒に継続することを回避することができる。また、有効期間が満了すれば、スイッチ2内でフローエントリが削除されるので、検査用のFMメッセージの送信後、コントローラ1側で検査用のフローを意識した動作を行うことを回避することができる。例えば、検査用に設定したアクション(ダミーのアクション)を有効期間内にとどめることができる。
<<第2の検査方法>>
図10は、図5に示した03の処理(検査フェーズ)の詳細の一例である第2の検査方法(「FR検査」とも呼ぶ)を示すフローチャートである。FR検査は、図3A及び図3Bを用いて説明した第2の攻撃者の検知方法を実行する処理である。
図10に示す処理は、例えば、図5の03の処理で呼び出されるサブルーチンである(以下、「サブルーチン20」と称する)。サブルーチン20では、最初の21の処理において、CPU11は、被疑攻撃者のクライアントに対して、一定時間有効な(有効期間付きの)検査用のフローを設定する(フローエントリを作成する)。
次の22の処理では、CPU11は、21で作成したフローエントリを含む検査用のFMメッセージを被疑攻撃者のクライアントへ送信する。次の23の処理では、CPU11は、検査用のFMメッセージで送ったフローに対するFRメッセージを待ち受ける状態となる。
FRメッセージが受信された場合には(23,Yes)、CPU11は、クライアントの挙動がOF規格に適合又は準拠すると判断する。すなわち、CPU11は、クライアントが正規のスイッチ2であると判断する。その後、CPU11はサブルーチン10を終了させて処理を01(図5)へ戻す。
これに対し、FRメッセージが受信されない場合(23,No)には、CPU11は、被疑攻撃者のクライアントの挙動がOF規格に適合又は準拠しない、すなわちクライアントが攻撃者(攻撃プログラム)であると判断する。その後、CPU11は、サブルーチン10を終了し、処理を05(図5)へ戻す。
上述したように、FR検査では、CPU11(コントローラ1)が一定時間だけ有効なフローの設定を行うFMメッセージをクライアントに対して発行する。クライアントがOF規格に適合している場合では、クライアントは、FMメッセージ中のフローエントリを指定された時間以降に削除し、削除に伴いFRメッセージをコントローラ1へ送信する。
上記スイッチ2の動作に鑑み、CPU11は、発行したFMメッセージに従って一定時間後にFRメッセージが発行されているか否かをチェックする。これによって、クライアントの挙動がOF規格に適合するか否かをチェックすることができる。従って、FRメッセージが受信できなかった場合、CPU11は、クライアントを不正な攻撃プログラムと判断する。
FMメッセージに対する振る舞いは、攻撃に直接必要な機能ではない。また、FRメッセージに関するOF規格に適合した挙動は、フローの状態管理の実装によってなされる。このため、実装には工数(手間)がかかる。従って、攻撃プログラムは、フロー管理及びFRメッセージ送信に係る処理を有していないと考えられるため、FR検査によって攻撃者を検知することができる。
[FR検査の具体例]
図11は、FR検査で使用される有効期間付きのFMメッセージの例を模式的に示す図である。或るクライアントを被疑攻撃者と仮定したコントローラ1(CPU11)は、当該被疑攻撃者に対して設定した既存のフローと異なる有効期間付きのフローを設定する。
図11に示す例では、送信元MACアドレスが“C”で、且つ宛先MACアドレス“D”であることをマッチ条件とし、“マッチ条件にマッチするパケットを出力ポート1から出力する”とのアクションを有するフローを含むFMメッセージが図示されている。そして、当該FMメッセージには、フローの有効期間が5秒(Hard timeout: 5sec)であることが設定されている。
CPU11は、図11に示すような検査用のFMメッセージを被疑攻撃者に送り、被疑攻撃者の挙動を観測する。すなわち、CPU11は、FMメッセージの送信から5秒以上が経過した後にFRメッセージが被疑攻撃者から受信されるかをチェックすることで、OF規格適合性を検査する。FRメッセージが受信されなければ、CPU11は、被疑攻撃者を不正な攻撃プログラム(攻撃者)と判断する。
[FR検査の変形例1]
図12は、図10に示したFR検査の変形例1を示すフローチャートである。図12に示す処理は、22以降の処理が次のように図10の処理と異なっている。すなわち、CPU11は、22の処理で検査用のFMメッセージを送信した後に、図示しない監視タイマの設定を行う(23A)。
監視タイマの計時時間は、FMメッセージに設定された有効期間に所定時間を加えた時間長である。CPU11は、監視タイマが満了する前に(25,No)FRメッセージが受信された場合には(24,Yes)、クライアントがOF規格に適合するスイッチ2であると判断する。これに対し、FRメッセージが受信されることなく(24,No)、監視タイマが満了したとき(25,Yes)には、CPU11は、クライアントがOF規格に適合しない攻撃プログラムであると判断する。FR検査の変形例1によれば、監視タイマでFRメッセージの受信期限が設定されることにより、検査時間が徒に長期化するのを回避することができる。
[FR検査の変形例2]
コントローラ1と正規のスイッチ2との間のネットワークに障害が発生している場合においてFR検査が実行されると、ネットワーク障害を起因とするFRメッセージのコントローラ1への未達がコントローラ1にて適合性なしと判断される可能性がある。
図13は、図10に示したFR検査の変形例2を示すフローチャートである。図13に
示す処理では、23においてFRメッセージが受信されないと判定されたときに、CPU11が以下の処理を行う。すなわち、CPU11は、RAM12に予め設定したFRの未達回数を示す変数i(初期値=0)の値をインクリメントする(26)。続いて、CPU11は、現在のiの値が予め用意された閾値(第2の閾値)以上か否かを判定する(27)。
iの値が閾値以上であれば、複数のFR検査においてFRメッセージの未達が一定回数連続して発生したことになる。このため、CPU11は、クライアントを攻撃者と判定する。iの値が閾値未満であれば、処理が21に戻る。
このように、変形例2では、クライアントに対してFR検査(第2の検査メッセージの送信)を所定回数行い、いずれの送信についてもFRメッセージ(応答メッセージ)が受信されないときに、クライアントを攻撃者と判定する。従って、FR検査の変形例2によれば、FRメッセージの未達によって正規のスイッチ2が攻撃者と判定されるのを回避することができる。なお、図13の処理において、FR検査回数に上限が設けられるようにしても良い。
<<第3の検査方法>>
図14は、図5に示した03の処理(検査フェーズ)の詳細の一例である第3の検査方法(「複合検査」とも呼ぶ)を示すフローチャートである。複合検査は、PI検査とFR検査との双方を実行する処理である。
図14において、CPU11は、検査を開始すると、最初の31の処理でFR検査(サブルーチン20,図10)を実行する。次の32の処理で、CPU11は、FR検査の結果においてクライアントがOF規格に適合(準拠)するか否かを判定する。OF規格に適合しない場合には(32,No)、CPU11は、クライアントが攻撃者であると判断し、処理を05(図5)へ進める。
これに対し、OF規格に適合する場合には(32,Yes)、次の33の処理で、CPU11は、PI検査(サブルーチン10,図7)を実行する。次の34の処理で、PI検査の結果においてクライアントがOF規格に適合(準拠)するか否かを判定する。OF規格に適合しない場合には(34,No)、CPU11は、クライアントが攻撃者であると判断し、処理を05(図5)へ進める。これに対し、OF規格に適合する場合には(34,Yes)、CPU11は、クライアントが正規のスイッチ2であると判断し、処理を01(図5)へ戻す。
図14に示したように、複数の検査を組み合わせた複合検査を実施することも可能である。図14に示す例では、PI検査とFR検査のうち、PI検査に比べてフローの設定に影響を与えにくいFR検査を先に行い、スイッチ2におけるフローの状態が変化しないようにしてある。すなわち、FR検査は有効期間満了でフローが削除されるので、被疑攻撃者が正規のスイッチ2である場合において、フローに従った動作を行うことによる影響が少ない。但し、FR検査とPI検査との順序が逆である場合も適用し得る。また、PI検査として図9に示した変形例が適用されても良く、FR検査として図12に示した変形例1や図13に示した変形例2が適用されても良い。
<実施形態1の効果>
実施形態1によれば、FMメッセージを用いた検査によって、DoS攻撃を行う端末5(攻撃者)を検知することができる。このとき、端末5とのセッション切断によって、DoS攻撃を停止することができる。また、アクセス拒否によって、今後のDoS攻撃の排除を行うことができる。
検査機構は、フロー作成及びFMメッセージ発行というOF規格に従った既存のアルゴリズムに検査用の短いルーチン(プログラム)を加えることで実装することができる。検査機構の搭載に当たり、情報処理装置10のハードウェアを改変したり、ハードウェアを加えたりすることを要しない。このため、実施が容易である。
〔実施形態2〕
以下、実施形態2について説明する。実施形態2における構成は、実施形態1の構成と共通点を有している。このため、主として相違点について説明し、共通点については説明を省略する。
図15は、実施形態2に係るOFネットワークシステムの例を示す。図1に示したOFネットワークシステムとの比較において、コントローラ1(OFC)及びスイッチ2(OFS)の構成について変更はない。但し、図15では、或る攻撃者が複数の端末5とコントローラ1とのセッションをそれぞれ確立し、これらの端末5を用いてDDoS攻撃(Distributed Denial of Service attack)を行うケースが図示されている。
実施形態2として、実施形態1に示した単独の端末5を用いたDoS攻撃ではなく、複数の端末5を用いたDDoS攻撃に対する攻撃者の検知方法について説明する。DDoS攻撃では、攻撃者は、単独のDoS攻撃の場合におけるメッセージ送信量より少ない送信量で、各端末5からメッセージをコントローラ1へ送信することが考えられる。しかし、コントローラ1では、単独のDoS攻撃と同等、或いはそれ以上のメッセージを受信することになる。
この場合において、実施形態1では、各端末5から受信されたメッセージの数が閾値を超えないため、各端末5を被疑攻撃者とする検査が実行されない可能性がある。そこで、実施形態2では、単位時間における全クライアントから受信されたメッセージの総数(総メッセージ数)を計数し、当該メッセージ受信数が閾値(所定値)を超える場合に、全クライアントを対象とする検査を実行する。これによって、クライアントに含まれる攻撃者(複数の端末5)をあぶり出すことができる。
図16は、実施形態2におけるコントローラ1(CPU11)の処理例を示すフローチャートである。最初の101において、CPU11は、タイマを用いて単位時間の計時を行う。タイマの計時時間として、例えば、図6に示したテーブルにある個別のクライアント用の単位時間“x”を適用することができる。
101にて、単位時間が経過すると(101,Yes)、CPU11は、次の102の処理において、総メッセージ数が閾値を超えているか否かを判定する。すなわち、CPU11は、テーブル(図6)に記憶されている各クライアントの受信メッセージ数を合算して総メッセージ数を算出し、閾値(例えば閾値“y”)と比較する。このとき、総メッセージ数が閾値を超えていなければ(102,No)、処理が101に戻る。これに対し、総メッセージ数が閾値を超えていれば(102,Yes)、処理が103に進む。
なお、単位時間として、個別のクライアント用の単位時間“x”と異なる時間を適用することもできる。また、単位時間の長さの相違に合わせて、各クライアントの受信メッセージ数とは別に、総メッセージ受信数がカウントされるようにしても良い。また、閾値として、閾値“y”と異なる閾値がテーブル又は他の記憶領域に予め記憶されていても良い。
103では、CPU11は、全クライアントを検査済みであるか否かを判定する。全ク
ライアントの検査が済んでいる場合には(103,Yes)、CPU11は、図16の処理を終了する。或いは、101へ処理を戻すこともできる。
全クライアントの検査が済んでいない場合には(103,No)、CPU11は、未検査のクライアントを1つ選択し(104)、選択したクライアントを対象とするOF規格適合性検査を実行する(105)。105の処理は、上記した第1〜第3の検査方法のいずれが適用されても良い。
106では、CPU11は、105における検査結果がクライアントのOF規格適合性を示すか否かを判定する。クライアントが規格に適合又は準拠しない場合には(106,No)、CPU11は、当該クライアントとのセッションを切断し(107)、以降のアクセスを拒絶する設定を行う(108)。その後、CPU11は、処理を103へ戻す。
実施形態2によれば、実施形態1と同様の効果を得ることができる。また、実施形態2では、コントローラ1(CPU11)は、全クライアントの検査を行い、攻撃者と判定されたクライアントに対し、セッション切断及びアクセス拒否を行う。これによって、DDoS攻撃を回避することができる。実施形態1で説明した個々のクライアントを対象とする処理と、実施形態2でした処理との双方は、1つのコントローラ1として動作する情報処理装置10で実行することができる。
なお、上記した実施形態では、OpenFlowをプロトコルの一例として挙げたが、OpenFlowに限定されない。すなわち、コントローラがOpenFlowにおけるFlowModメッセージに類似
したメッセージを配下の(制御下にある)スイッチへ送り、スイッチがFlowModメッセー
ジ受信時におけるOpenFlowに適合又は準拠した挙動を示すネットワークに適用可能である。この場合、ネットワークはSDNを含む。
以上説明した実施形態の構成は、適宜組み合わせることができる。上述した実施形態は、以下の付記を開示する。
(付記1) 制御下にあるスイッチにパケットに対する動作を示す制御メッセージを送信するコントローラであって、
制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信する処理と、スイッチが前記検査メッセージに基づく処理を行うことで生じる事象が前記通信相手について生じないときに前記通信相手をスイッチではなく攻撃者と判定する処理とを行う制御装置
を含むコントローラ。(1)
(付記2) 前記制御装置は、スイッチが前記検査メッセージに基づく処理によって送信を停止する所定のメッセージが前記通信相手から受信されたときに前記通信相手を攻撃者と判定する
付記1に記載のコントローラ。(2)
(付記3) 前記制御装置は、スイッチが前記検査メッセージに基づく処理によって前記コントローラに送信する所定のメッセージが前記通信相手から受信されないときに前記通信相手を攻撃者と判定する
付記1に記載のコントローラ。(3)
(付記4) 前記制御装置は、或るパケットに対する動作の決定の要求を前記通信相手から受信したときに前記検査メッセージとして前記或るパケットに合致するパケットの識別条件を含む第1の検査メッセージを前記通信相手に送信し、前記第1の検査メッセージの
送信後に前記識別条件に合致するパケットに対する動作の決定の要求が前記通信相手から受信されたときに前記通信相手を攻撃者と判定する
付記1に記載のコントローラ。(4)
(付記5) 前記制御装置は、前記検査メッセージとして或るパケットに対する動作の有効期間を含む第2の検査メッセージを前記通信相手に送信し、前記第2の検査メッセージの送信後に前記有効期間の満了を示す応答メッセージが前記通信相手から受信されないときに前記通信相手を攻撃者と判定する
付記1又は4に記載のコントローラ。(5)
(付記6) 前記制御装置は、前記第1の検査メッセージを前記通信相手に送信する第1の検査と前記第2の検査メッセージを前記通信相手に送信する第2の検査とを前記通信相手に対して続けて行うときに前記第2の検査を前記第1の検査より先に行う
付記5に記載のコントローラ。
(付記7) 前記制御装置は、所定期間有効な第1の検査メッセージを前記通信相手に送信し、前記所定期間の満了前に前記識別条件に合致するパケットに対する動作の決定の要求が前記通信相手から受信されたときに前記通信相手を攻撃者と判定する
付記4から6に記載のコントローラ。
(付記8) 前記制御装置は、前記第2の検査メッセージを前記通信相手へ送信するときに、前記有効期間の満了後に満了するタイマを設定し、前記タイマの満了前に前記応答メッセージが受信されないときに前記通信相手を攻撃者と判定する
付記6から7のいずれか一項に記載のコントローラ。
(付記9) 前記制御装置は、前記通信相手に対する前記第2の検査メッセージの送信を所定回数行い、いずれの送信についても前記応答メッセージが受信されないときに、前記通信相手を攻撃者と判定する
付記5から8のいずれか一項に記載のコントローラ。(6)
(付記10) 前記制御装置は、単位時間内に前記通信相手から受信されたメッセージの数が閾値を超えたときに、前記通信相手に前記検査メッセージを送信する
付記1から9のいずれか一項に記載のコントローラ。(7)
(付記11) 前記制御装置は、制御下にある複数の通信相手から単位時間内に受信されたメッセージの数が所定値を超えるときに、前記複数の通信相手のそれぞれに前記検査メッセージを送信する
付記1から10のいずれか一項に記載のコントローラ。(8)
(付記12) 前記コントローラは、OpenFlowコントローラであり、
前記要求がOpenFlowのPacketInメッセージであり、
前記第1の検査メッセージは、前記通信相手から受信されたPacketInメッセージに含まれたパケットに合致する識別条件と当該識別条件に合致するパケットに対する動作を定めたFlowModメッセージである
付記4に記載のコントローラ。
(付記13) 前記コントローラは、OpenFlowコントローラであり、
前記第2の検査メッセージは、有効期間付きのOpenFlowのFlowModメッセージであり、
前記応答メッセージは、OpenFlowのFlowRemovedメッセージである
付記5に記載のコントローラ。
(付記14) 制御下にあるスイッチで受信されるパケットに関して当該スイッチが行う動作を示す制御メッセージを当該スイッチに送信するコントローラの攻撃者検知方法であって、
前記コントローラが、
制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信し、
スイッチが前記検査メッセージに基づく処理を行うことで生じる事象が前記通信相手について生じないときに前記通信相手をスイッチではなく攻撃者と判定する
ことを含むコントローラの攻撃者検知方法。(9)
1・・・OpenFlowコントローラ(OFC)
2・・・OpenFlowスイッチ(OFS)
10・・・情報処理装置(コンピュータ)
11・・・CPU(プロセッサ)
12・・・RAM(メモリ、記憶装置)
14・・・HDD(記憶装置)
15・・・通信インタフェース

Claims (8)

  1. 制御下にあるスイッチにパケットに対する動作を示す制御メッセージを送信するコントローラであって、
    制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信する処理と、スイッチが前記検査メッセージに基づく処理によって送信を停止する所定のメッセージが前記通信相手から受信されたときに前記通信相手をスイッチではなく攻撃者と判定する処理とを行う制御装置を含む
    コントローラ。
  2. 前記制御装置は、スイッチが前記検査メッセージに基づく処理によって前記コントローラに送信する所定のメッセージが前記通信相手から受信されないときに前記通信相手を攻撃者と判定する
    請求項1に記載のコントローラ。
  3. 制御下にあるスイッチにパケットに対する動作を示す制御メッセージを送信するコントローラであって、
    制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信する処理と、
    或るパケットに対する動作の決定の要求を前記通信相手から受信したときに前記検査メッセージとして前記或るパケットに合致するパケットの識別条件を含む第1の検査メッセージを前記通信相手に送信し、前記第1の検査メッセージの送信後に前記識別条件に合致するパケットに対する動作の決定の要求が前記通信相手から受信されたときに前記通信相手をスイッチではなく攻撃者と判定する処理とを行う制御装置を含む、
    コントローラ。
  4. 前記制御装置は、前記検査メッセージとして或るパケットに対する動作の有効期間を含む第2の検査メッセージを前記通信相手に送信し、前記第2の検査メッセージの送信後に前記有効期間の満了を示す応答メッセージが前記通信相手から受信されないときに前記通信相手を攻撃者と判定する
    請求項に記載のコントローラ。
  5. 前記制御装置は、前記通信相手に対する前記第2の検査メッセージの送信を所定回数行い、いずれの送信についても前記応答メッセージが受信されないときに、前記通信相手を攻撃者と判定する
    請求項に記載のコントローラ。
  6. 制御下にあるスイッチにパケットに対する動作を示す制御メッセージを送信するコントローラであって、
    制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信する処理と、スイッチが前記検査メッセージに基づく処理を行うことで生じる事象が前記通信相手について生じないときに前記通信相手をスイッチではなく攻撃者と判定する処理とを行う制御装置を含み、
    前記制御装置は、単位時間内に前記通信相手から受信されたメッセージの数が閾値を超えたときに前記通信相手に前記検査メッセージを送信する
    コントローラ。
  7. 制御下にあるスイッチにパケットに対する動作を示す制御メッセージを送信するコントローラであって、
    制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信する処理と、スイッチが前記検査メッセージに基づく処理を行うことで生じる事象が前記通信相手について生じないときに前記通信相手をスイッチではなく攻撃者と判定する処理とを行う制御装置を含み、
    前記制御装置は、制御下にある複数の通信相手から単位時間内に受信されたメッセージの総数が所定値を超えるときに前記複数の通信相手のそれぞれに前記検査メッセージを送信する
    コントローラ。
  8. 制御下にあるスイッチにパケットに対する動作を示す制御メッセージを送信するコントローラの攻撃者検知方法であって、
    前記コントローラが、
    制御下にある通信相手に検査用の前記制御メッセージである検査メッセージを送信し、
    スイッチが前記検査メッセージに基づく処理によって送信を停止する所定のメッセージが前記通信相手から受信されたときに前記通信相手を攻撃者と判定する
    ことを含むコントローラの攻撃者検知方法。
JP2014158611A 2014-08-04 2014-08-04 コントローラ,及びその攻撃者検知方法 Active JP6435695B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014158611A JP6435695B2 (ja) 2014-08-04 2014-08-04 コントローラ,及びその攻撃者検知方法
US14/797,601 US9800593B2 (en) 2014-08-04 2015-07-13 Controller for software defined networking and method of detecting attacker

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014158611A JP6435695B2 (ja) 2014-08-04 2014-08-04 コントローラ,及びその攻撃者検知方法

Publications (2)

Publication Number Publication Date
JP2016036095A JP2016036095A (ja) 2016-03-17
JP6435695B2 true JP6435695B2 (ja) 2018-12-12

Family

ID=55181278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014158611A Active JP6435695B2 (ja) 2014-08-04 2014-08-04 コントローラ,及びその攻撃者検知方法

Country Status (2)

Country Link
US (1) US9800593B2 (ja)
JP (1) JP6435695B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181424A1 (en) * 2015-05-11 2016-11-17 Nec Corporation Communication apparaus, system, method, and program
KR101914831B1 (ko) * 2016-10-25 2018-11-02 숭실대학교산학협력단 호스트 추적 서비스에 대한 공격을 방지할 수 있는 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러
KR101948984B1 (ko) * 2016-10-26 2019-02-15 숭실대학교산학협력단 스위치 손상을 감지할 수 있는 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러
US10681177B2 (en) * 2017-04-18 2020-06-09 Igor Tarasenko Self-driving content distribution
CN107438066B (zh) * 2017-06-21 2020-04-17 浙江大学 一种基于SDN控制器的DoS/DDoS攻击防御模块及方法
US11055411B2 (en) * 2018-05-10 2021-07-06 Acronis International Gmbh System and method for protection against ransomware attacks
CN109274673B (zh) * 2018-09-26 2021-02-12 广东工业大学 一种网络流量异常检测和防御方法
JP2020072427A (ja) * 2018-11-01 2020-05-07 日本電気株式会社 ネットワークへの脅威の感染拡大を防ぐ制御装置、制御方法、システム、およびプログラム
US11201887B1 (en) * 2021-03-23 2021-12-14 Lookingglass Cyber Solutions, Inc. Systems and methods for low latency stateful threat detection and mitigation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3584877B2 (ja) * 2000-12-05 2004-11-04 日本電気株式会社 パケット転送制御装置、パケット転送制御方法およびパケット転送制御システム
JP2007122749A (ja) 2002-06-28 2007-05-17 Oki Electric Ind Co Ltd 警戒システム、不正アクセス追跡方法、不正アクセス検知システム、セキュリティ管理方法及び攻撃防護方法
KR100828372B1 (ko) * 2005-12-29 2008-05-08 삼성전자주식회사 서비스 거부 공격으로부터 서버를 보호하는 방법 및 장치
JP4380710B2 (ja) 2007-02-26 2009-12-09 沖電気工業株式会社 トラフィック異常検出システム、トラフィック情報観測装置、及び、トラフィック情報観測プログラム
US7937586B2 (en) * 2007-06-29 2011-05-03 Microsoft Corporation Defending against denial of service attacks
JP5222096B2 (ja) * 2008-10-30 2013-06-26 京セラ株式会社 無線通信装置および無線通信方法
KR101077135B1 (ko) * 2009-10-22 2011-10-26 한국인터넷진흥원 웹 서비스 대상 응용계층 디도스 공격 탐지 및 대응 장치
WO2012090355A1 (en) * 2010-12-28 2012-07-05 Nec Corporation Communication system, forwarding node, received packet process method, and program
US20130046612A1 (en) * 2011-08-15 2013-02-21 Andrew PRIHODKO Attention assurance method and system
JP6248929B2 (ja) * 2012-05-01 2017-12-20 日本電気株式会社 通信システム、アクセス制御装置、スイッチ、ネットワーク制御方法及びプログラム
WO2014055400A1 (en) * 2012-10-05 2014-04-10 Nec Laboratories America, Inc. Network management
US8966586B2 (en) * 2013-01-27 2015-02-24 International Business Machines Corporation Authentication within OpenFlow network
US20140337674A1 (en) * 2013-05-10 2014-11-13 Nec Laboratories America, Inc. Network Testing
US9350632B2 (en) * 2013-09-23 2016-05-24 Intel Corporation Detection and handling of virtual network appliance failures

Also Published As

Publication number Publication date
US9800593B2 (en) 2017-10-24
JP2016036095A (ja) 2016-03-17
US20160036839A1 (en) 2016-02-04

Similar Documents

Publication Publication Date Title
JP6435695B2 (ja) コントローラ,及びその攻撃者検知方法
US20220045990A1 (en) Methods and systems for api deception environment and api traffic control and security
US8347383B2 (en) Network monitoring apparatus, network monitoring method, and network monitoring program
US7536552B2 (en) Upper-level protocol authentication
CN108521408B (zh) 抵抗网络攻击方法、装置、计算机设备及存储介质
US7440406B2 (en) Apparatus for displaying network status
WO2016006520A1 (ja) 検知装置、検知方法及び検知プログラム
WO2017088326A1 (zh) Tcp连接的处理方法、装置及系统
KR102088299B1 (ko) 분산 반사 서비스 거부 공격 탐지 장치 및 방법
US10257213B2 (en) Extraction criterion determination method, communication monitoring system, extraction criterion determination apparatus and extraction criterion determination program
JP2019021294A (ja) DDoS攻撃判定システムおよび方法
US10263975B2 (en) Information processing device, method, and medium
US11909606B2 (en) Systems and methods for determining flow and path analytics of an application of a network using sampled packet inspection
CN103347016A (zh) 一种攻击的防御方法
CN105812318B (zh) 用于在网络中防止攻击的方法、控制器和系统
JP2018026747A (ja) 攻撃検知装置、攻撃検知システムおよび攻撃検知方法
JP4259183B2 (ja) 情報処理システム、情報処理装置、プログラム、及び通信ネットワークにおける通信の異常を検知する方法
Huang et al. Detecting stepping-stone intruders by identifying crossover packets in SSH connections
CN101888296A (zh) 一种影子用户检测方法、装置、设备和系统
JP7222260B2 (ja) 試験装置
JP5531064B2 (ja) 通信装置、通信システム、通信方法、および、通信プログラム
JP2003258795A (ja) コンピュータ集合体運用方法及びその実施システム並びにその処理プログラム
KR20180102884A (ko) 방화벽 및 이의 패킷 처리 방법
KR101231801B1 (ko) 네트워크 상의 응용 계층 보호 방법 및 장치
JP2007166154A (ja) 攻撃検出装置、攻撃検出方法および攻撃検出プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180618

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181016

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181029

R150 Certificate of patent or registration of utility model

Ref document number: 6435695

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150