(57)【特許請求の範囲】
【請求項１】
第１ネットワークのために固有に設定された第１検知ルールと、前記第１ネットワークとは異なる第２ネットワークのために固有に設定された第２検知ルールを参照して不正侵入を検知する第１セキュリティ機器において所定の第１条件が満たされた場合に、前記第１セキュリティ機器とは異なる仮想化された第２セキュリティ機器を生成する生成部と、
前記第１及び第２検知ルールのうち前記第２検知ルールを前記第１セキュリティ機器による参照対象から削除するとともに、前記第２検知ルールを前記第２セキュリティ機器による参照対象として設定する第１ルール設定部と、
前記第１セキュリティ機器と直接的又は間接的に接続され、転送制御情報に基づいてパケットを転送する転送装置によって前記第１ネットワーク宛てのパケットと前記第２ネットワーク宛てのパケットとが前記第１セキュリティ機器に転送されている場合に、前記第２ネットワーク宛てのパケットが前記第２セキュリティ機器に転送されるように前記転送制御情報を更新する第１更新部と
を備える制御装置。
【請求項２】
前記第１セキュリティ機器は、前記第１及び第２検知ルールに加えて、前記第１ネットワークと前記第２ネットワークのために共通に設定された第３検知ルールを参照して不正侵入を検知し、
前記第１ルール設定部は、前記第２検知ルールに加えて前記第３検知ルールを前記第２セキュリティ機器による参照対象として設定する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記第１条件は、前記複数の検知ルールの数が所定の閾値を超えることであることを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記第１条件は、前記第１検知ルールの数と前記第２検知ルールの数の比率が所定の閾値を超えることであることを特徴とする請求項１又は２に記載の制御装置。
【請求項５】
前記生成部は、前記第２検知ルールの数の方が前記第１検知ルールの数よりも多い場合に、前記第１セキュリティ機器よりもスループットが高い前記第２セキュリティ機器を生成することを特徴とする請求項４に記載の制御装置。
【請求項６】
前記第１検知ルールと前記第２検知ルールとが所定の第２条件を満たすようになった場合に、前記第２セキュリティ機器を削除する削除部と、
前記第２セキュリティ機器が削除される場合に、前記第２検知ルールを前記第１ネットワークによる参照対象として再設定する第２ルール設定部と、
前記第２セキュリティ機器が削除される場合に、前記第２ネットワーク宛てのパケットが前記第１セキュリティ機器に転送されるように前記転送制御情報を更新する第２更新部と
をさらに備えることを特徴とする請求項１乃至５のいずれか１項に記載の制御装置。
【請求項７】
第１ネットワークのために固有に設定された第１検知ルールと、前記第１ネットワークとは異なる第２ネットワークのために固有に設定された第２検知ルールを参照して不正侵入を検知する第１セキュリティ機器において所定の第１条件が満たされた場合に、前記第１セキュリティ機器とは異なる仮想化された第２セキュリティ機器を生成するステップと、
前記第１及び第２検知ルールのうち前記第２検知ルールを前記第１セキュリティ機器による参照対象から削除するとともに、前記第２検知ルールを前記第２セキュリティ機器による参照対象として設定するステップと、
前記第１セキュリティ機器と直接的又は間接的に接続され、転送制御情報に基づいてパケットを転送する転送装置によって前記第１ネットワーク宛てのパケットと前記第２ネットワーク宛てのパケットとが前記第１セキュリティ機器に転送されている場合に、前記第２ネットワーク宛てのパケットが前記第２セキュリティ機器に転送されるように前記転送制御情報を更新するステップと
を備える制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上を転送されるパケットの経路を制御する技術に関する。
【背景技術】
【０００２】
従来、ＩａａＳ（Infrastructure as a Service）サービスを提供する事業者が、ユーザ顧客からセキュリティ機器の導入の申請を受け付けてから、そのサービス提供を開始するまでには、機器調達、機器設置、機器設定、ネットワーク構成変更、等の人手を介した作業が発生するため、週〜月の時間がかかるという問題があった。さらに、一度導入された後に、ユーザ顧客が契約途中で一定期間だけ契約を停止したり、再開したりしようとする場合、その都度、機器設定やネットワーク構成変更、等の人手を介した作業が発生するため、迅速に変更できないという問題があった。この点、ＳＤＮ（Software-Defined Networking）は、ソフトウェアでネットワーク構成を動的に変更できる技術であり、上記の問題を解決する技術の一つとして期待されている。例えば、特許文献１には、OpenFlowを利用して、複数のユーザでサーバ装置等のハードウェアを共有するマルチテナントシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１３／１７２３９１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術において複数のユーザ間で共有されている機器は、サーバ装置やスイッチやストレージであって、セキュリティ機器を共有する場合については想定されていない。例えば、セキュリティ機器は、不正通信を検知するためのルール群（シグネチャ）を有しており、セキュリティ機器を通過するパケットはシグネチャを走査することとなるが、セキュリティ機器が共有されている場合、ある利用者にとって不要なシグネチャを走査する必要が出てくるため、通信速度に影響を及ぼすことが考えられる。そのため、セキュリティ機器が備えるシグネチャは、各利用者にとって必要最低限であることが望ましい。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、ＳＤＮ環境において、セキュリティ機器を共有する場合において、ネットワーク通信が最適化されるよう、セキュリティ機器のリソースを最適化することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明は、第１ネットワークのために固有に設定された第１検知ルールと、前記第１ネットワークとは異なる第２ネットワークのために固有に設定された第２検知ルールを参照して不正侵入を検知する第１セキュリティ機器において所定の第１条件が満たされた場合に、前記第１セキュリティ機器とは異なる仮想化された第２セキュリティ機器を生成する生成部と、前記第１及び第２検知ルールのうち前記第２検知ルールを前記第１セキュリティ機器による参照対象から削除するとともに、前記第２検知ルールを前記第２セキュリティ機器による参照対象として設定する第１ルール設定部と、前記第１セキュリティ機器と直接的又は間接的に接続され、転送制御情報に基づいてパケットを転送する転送装置によって前記第１ネットワーク宛てのパケットと前記第２ネットワーク宛てのパケットとが前記第１セキュリティ機器に転送されている場合に、前記第２ネットワーク宛てのパケットが前記第２セキュリティ機器に転送されるように前記転送制御情報を更新する第１更新部とを備える制御装置を提供する。
【０００７】
好ましい態様において、前記第１セキュリティ機器は、前記第１及び第２検知ルールに加えて、前記第１ネットワークと前記第２ネットワークのために共通に設定された第３検知ルールを参照して不正侵入を検知し、前記第１ルール設定部は、前記第２検知ルールに加えて前記第３検知ルールを前記第２セキュリティ機器による参照対象として設定してもよい。
【０００８】
さらに好ましい態様において、前記第１条件は、前記複数の検知ルールの中で矛盾が発生することであってもよい。
【０００９】
別の好ましい態様において、前記第１条件は、前記複数の検知ルールの数が所定の閾値を超えることであってもよい。
【００１０】
また別の好ましい態様において、前記第１条件は、前記第１検知ルールの数と前記第２検知ルールの数の比率が所定の閾値を超えることであってもよい。
【００１１】
さらに好ましい態様において、前記生成部は、前記第２検知ルールの数の方が前記第１検知ルールの数よりも多い場合に、前記第１セキュリティ機器よりもスループットが高い前記第２セキュリティ機器を生成してもよい。
【００１２】
さらに好ましい態様において、前記第１検知ルールと前記第２検知ルールとが所定の第２条件を満たすようになった場合に、前記第２セキュリティ機器を削除する削除部と、前記第２セキュリティ機器が削除される場合に、前記第２検知ルールを前記第１ネットワークによる参照対象として再設定する第２ルール設定部と、前記第２セキュリティ機器が削除される場合に、前記第２ネットワーク宛てのパケットが前記第１セキュリティ機器に転送されるように前記転送制御情報を更新する第２更新部とをさらに備えてもよい。
【００１３】
また、本発明は、第１ネットワークのために固有に設定された第１検知ルールと、前記第１ネットワークとは異なる第２ネットワークのために固有に設定された第２検知ルールを参照して不正侵入を検知する第１セキュリティ機器において所定の第１条件が満たされた場合に、前記第１セキュリティ機器とは異なる仮想化された第２セキュリティ機器を生成するステップと、前記第１及び第２検知ルールのうち前記第２検知ルールを前記第１セキュリティ機器による参照対象から削除するとともに、前記第２検知ルールを前記第２セキュリティ機器による参照対象として設定するステップと、前記第１セキュリティ機器と直接的又は間接的に接続され、転送制御情報に基づいてパケットを転送する転送装置によって前記第１ネットワーク宛てのパケットと前記第２ネットワーク宛てのパケットとが前記第１セキュリティ機器に転送されている場合に、前記第２ネットワーク宛てのパケットが前記第２セキュリティ機器に転送されるように前記転送制御情報を更新するステップとを備える制御方法を提供する。
【発明の効果】
【００１４】
本発明によれば、ＳＤＮ環境において、セキュリティ機器を共有する場合において、ネットワーク通信が最適化されるよう、セキュリティ機器のリソースを最適化することができる。
【図面の簡単な説明】
【００１５】
【図１】マルチテナントシステム１００の構成の一例を示す図である。
【図２】ＯＦＣ６の構成の一例を示す図である。
【図３】分割要否判断処理の一例を示すフローチャートである。
【図４】シグネチャの記述例と矛盾の例とを示す図である。
【図５】分割処理の一例を示すフローチャートである。
【図６】分割処理の一例を説明する説明図である。
【図７】マージ要否判断処理の一例を示すフローチャートである。
【図８】マージ処理の一例を示すフローチャートである。
【図９】マージ処理の一例を説明する説明図である。
【発明を実施するための形態】
【００１６】
１．実施形態
１−１．マルチテナントシステム１００の構成
図１は、本発明の一実施形態に係るマルチテナントシステム１００の構成の一例を示す図である。このマルチテナントシステム１００は、クラウドコンピューティングにより、複数の利用者に１つのシステムを共有させるシステムである。リソースの共有レベルに応じて、ＩａａＳ、ＰａａＳ（Platform as a Service）、ＳａａＳ（Software as a Service）といった利用形態があるが、本実施形態ではＩａａＳが想定されている。ここで、ＩａａＳとは、情報システムの稼動に必要な機材や回線などの基盤をインターネット上のサービスとして遠隔から利用できるようにしたもの、または、そのようなサービスや事業モデルのことである。
【００１７】
このマルチテナントシステム１００は、図１に示されるように、データセンタ１０と、このデータセンタ１０とインターネット２を介して接続されるＡ社端末１Ａと、Ｂ社端末１Ｂとにより構成される。データセンタ１０は、利用者に貸し出すためのリソースを管理する施設である。Ａ社端末１Ａと、Ｂ社端末１Ｂとは、データセンタ１０により貸し出されるリソースを利用するコンピュータ装置である。なお、図１に示される例では、説明の便宜上、Ａ社とＢ社の２社のみを利用者として想定しているが、３社以上の利用者によりリソースが共有されてもよい。
【００１８】
データセンタ１０は、図１に示されるように、ルータ３と、OpenFlowスイッチ（以下、「ＯＦＳ」という。）４Ａ及び４Ｂと、ＩＰＳ（Intrusion Prevention System、侵入防止システム）５と、OpenFlowコントローラ（以下、「ＯＦＣ」という。）６と、Ａ社テナントネットワーク（以下、「Ａ社テナントＮＷ」という。）７Ａと、Ｂ社テナントネットワーク（以下、「Ｂ社テナントＮＷ」という。）７Ｂとにより構成される。
【００１９】
ルータ３は、インターネット２とＯＦＳ４Ａとを接続するネットワーク機器である。ＯＦＳ４Ａ及び４Ｂ（以下、特に区別する必要がない場合には「ＯＦＳ４」と総称する。）は、OpenFlow仕様に準拠したＬ２スイッチである。ＩＰＳ５は、テナントネットワーク７Ａ及び７Ｂへの不正侵入を防止するセキュリティ機器である。ＯＦＣ６は、OpenFlow仕様に準拠した、ＯＦＳ４の制御装置である。テナントＮＷ７Ａ及び７Ｂ（以下、特に区別する必要がない場合には「テナントＮＷ７」と総称する。）は、それぞれＡ社、Ｂ社に貸し出されるネットワークである。各ネットワークは、例えば、スイッチと、複数のサーバと、データベースにより構成される。なお、図１に示される例では、説明の便宜上、ＯＦＳ４が２つしか登場していないが、３以上のＯＦＳ４によりルータ３とテナントＮＷ７の間のネットワークが構成されてもよい。
【００２０】
１−２．ＯＦＳ４の構成
ＯＦＳ４は、OpenFlow仕様に準拠した伝送装置（又は中継装置、転送装置）であって、ハードウェアで行われるパケット伝送処理を行う伝送装置である。ＯＦＳ４は、通信ケーブルが接続される複数のポート（接続口）を備え、いずれかのポートを介して他の機器と接続される。なおここで、OpenFlowとは、通信ネットワークを構成するネットワーク機器を１つの制御装置で集中管理し、複雑な転送制御を行ったり柔軟にネットワーク構成を変更したりすることができる技術である。このOpenFlowでは、これまで１つのネットワーク機器の内部に同居していた経路制御の機能とデータ転送の機能をそれぞれ別の機器に分離し、OpenFlowコントローラと呼ばれる制御装置が複数の転送装置（OpenFlowスイッチ）の振る舞いを一括して管理する。
【００２１】
OpenFlowは、ＳＤＮを実現するプロトコルの１つである。ここで、ＳＤＮとは、コンピュータネットワークを構成する通信機器を単一のソフトウェアによって集中的に制御し、ネットワークの構造や構成、設定などを柔軟かつ動的に変更することを可能とする技術の総称、または、そのような技術によって構築されたネットワークのことである。
【００２２】
ＯＦＳ４は、複数の装置間で経路制御情報（又は中継制御情報、転送制御情報）に基づいて通信パケットを中継する。具体的には、記憶するフローテーブルを参照して、通信パケットの転送制御を行う。ここで、フローテーブルとは、ＯＦＣ６により計算された経路情報を保存するテーブルであって、ＯＦＳ４がパケット転送を処理する際に参照されるテーブルである。このフローテーブルは１以上のフローエントリにより構成され、各フローエントリは、データ転送の条件（Match）と、条件合致時の動作指示（Instructions）とにより構成される。
【００２３】
フローエントリの条件部分には、例えば、送信元又は宛先ＩＰ（Internet Protocol）アドレスや、送信元又は宛先ＭＡＣ（Media Access Control）アドレスや、ネットワークＩＤや、入力ポート番号等の、パケットのヘッダ情報が指定される。または、１以上のヘッダフィールド（Type of Service（Ｔｏｓ）フィールドや、Class of Service（Ｃｏｓ）フィールドも含む。）に設定される任意のビット値や複数の異なるビットが指定される。一方、動作指示部分には、例えば、データの転送（Output命令）、データの破棄（Drop命令）、データのヘッダ情報の書き換え（Set-Field命令）が指定される。ＯＦＳ４は、パケットを受信すると、フローテーブル内に当該パケットのヘッダ情報と合致する条件が存在するか否かを調べ、存在する場合には当該条件に対応する動作指示に従って処理を実行する。なお、フローエントリには、優先度（Priority）や、カウンタ（Counters）や、有効期間（Timeouts）や、クッキー（Cookie）が指定されてもよい。
【００２４】
ＯＦＳ４は、図示せぬOpenFlowチャネル（セキュアチャネル）を介して、OpenFlowプロトコルに従ってＯＦＣ６との間で通信を行う。ＯＦＳ４は、ＯＦＣ６からフローエントリ変更メッセージ（Flow Modifyメッセージ）を受信すると、当該メッセージに従って、フローエントリの追加、更新、削除等の処理を行う。また、ＯＦＳ４は、パケット受信時に、当該パケットのヘッダ情報と合致する条件がフローテーブルに存在しない場合には、ＯＦＣ６に対してPacketInメッセージを送信する。このPacketInメッセージは、受信したパケットに合致するフローエントリが存在しない場合に、ＯＦＣ６にパケットの処理方法を問い合わせるために送信されるメッセージである。このメッセージに対する応答としてＯＦＣ６からフローエントリ変更メッセージが送られてくると、ＯＦＳ４は当該メッセージに従ってフローエントリの追加処理を行う。
【００２５】
１−３．ＩＰＳ５の構成
ＩＰＳ５は、複数の検知ルールを参照してテナントＮＷ７に対する不正侵入を検知するセキュリティ機器である。より具体的には、ＩＰＳ５は、不正侵入を識別する方法を定義するシグネチャを予め記憶しておき、受信したパケットをシグネチャとマッチング（照合）することにより不正侵入を検知する。
【００２６】
ＩＰＳ５にはネットワーク型とホスト型とがあり、ネットワーク型のＩＰＳ５は、侵入を検知するＩＤＳ（Intrusion Detection System、侵入検知システム）の機能を拡張し、侵入を検知したら接続の遮断などの防御をリアルタイムに行う機能を持っている。ワームやサービス拒否攻撃（ＤｏＳ）などのパケットが持つ特徴的なパターンが記憶されており、該当する接続を検知するとこれを遮断し、管理者へ通知（アラート）したり記録（ログ）を取ったりする。
【００２７】
一方、ホスト型のＩＰＳ５は、サーバにインストールするソフトウェアの形で提供され、バッファオーバーフローを利用した不正侵入をＯＳ（Operating System）レベルで防いだり、一般ユーザによる管理者権限の取得ができないようにしたり、アクセスログの改ざんを防止するなどの機能を持っている。ＯＳが提供するよりも細かいレベルでのアクセス制御を実現したり、サーバ管理者とセキュリティ管理者を分離して万能の権限を持った管理者を存在させないことで侵入された際の被害の拡大を抑える機能を持つことも可能である。
【００２８】
なお、ＩＰＳ５は、ネットワークの境界などに設置する専用の機器（アプライアンス、すなわち物理ＩＰＳ）として実現されてもよいし、サーバに導入するソフトウェアなどの形でサーバの仮想化環境において仮想ＩＰＳとして実現されてもよい。
【００２９】
１−４．ＯＦＣ６の構成
ＯＦＣ６は、OpenFlow仕様に準拠した制御装置であって、複数のＯＦＳ４の振る舞いを一括して管理する制御装置である。ＯＦＣ６は、ＯＦＳ４により構成されるネットワークにおけるデータ転送の経路計算を行って、計算した経路に沿ってデータ転送が行われるように各ＯＦＳ４を制御する。
【００３０】
図２は、ＯＦＣ６の構成の一例を示す図である。ＯＦＣ６は、同図に示されるように、シグネチャテーブル６１と、トポロジ情報テーブル６２と、フローエントリテーブル６３とを備える。また、ＯＦＣ６は、分割要否判断部６４と、分割部６５と、マージ要否判断部６６と、マージ部６７という機能を備える。これらの機能は、例えば、ＣＰＵ等の演算装置によりプログラムが実行されることにより実現される。
【００３１】
分割部６５は、より具体的には、生成部６５１と、第１ルール設定部６５２と、第１更新部６５３とにより構成される。マージ部６７は、より具体的には、削除部６７１と、第２ルール設定部６７２と、第２更新部６７３とにより構成される。
【００３２】
シグネチャテーブル６１は、ＩＰＳ５により記憶されるシグネチャを管理するテーブルである。このシグネチャテーブル６１には、本実施形態においては、Ａ社テナントＮＷ７Ａに固有に設定されたシグネチャ（以下、「Ａ社テナントＮＷ７Ａ向けのシグネチャ」という。）と、Ｂ社テナントＮＷ７Ｂに固有に設定されたシグネチャ（以下、「Ｂ社テナントＮＷ７Ｂ向けのシグネチャ」という。）と、Ａ社テナントＮＷ７ＡとＢ社テナントＮＷ７Ｂとに共通に設定されたシグネチャ（以下、「Ａ社Ｂ社共通シグネチャ」という。）とが保存される。シグネチャがＡ社テナントＮＷ７Ａ向けであるかＢ社テナントＮＷ７Ｂ向けであるかは、例えば、シグネチャに設定されるＩＰアドレスを参照することにより判断される。または、シグネチャごとにテナントＮＷ７の識別情報を対応付けて記憶しておき、この識別情報を参照することによりいずれのテナントＮＷ７向けのシグネチャであるかを判断するようにしてもよい。このシグネチャテーブル６１は、ＩＰＳ５により記憶されるシグネチャの更新と連動して更新される。
【００３３】
トポロジ情報テーブル６２は、ＯＦＳ４により構成されるネットワークの構成図を示す情報を保存するテーブルである。言い換えると、ＯＦＳ４間の物理リンクを示す物理リンク情報を保存するテーブルである。このトポロジ情報テーブル６２を構成する各レコードは、例えば、送信元ＯＦＳ４のＤＰＩＤと、送信元ＯＦＳ４の送信ポート番号と、宛先ＯＦＳ４のＤＰＩＤと、宛先ＯＦＳ４の受信ポート番号の各フィールドにより構成される。ここで、ＤＰＩＤ（Datapath ID）は、ＯＦＳ４を一意に識別するための識別情報である。トポロジ情報テーブル６２は、ＯＦＳ４がネットワークに追加されると新たなレコードが追加され、ＯＦＳ４が故障したりネットワークから除去されるとレコードが削除される。また、ＯＦＳ４間の物理リンクが追加されると新たなレコードが追加され、物理リンクが切断されるとレコードが削除される。
【００３４】
ＯＦＣ６は、死活監視パケットによりＯＦＳ４の故障等を検知する。具体的な手順としては、まずＯＦＣ６は、全てのＯＦＳ４に対して一定の間隔で死活監視メッセージを送信する。ＯＦＳ４は、当該メッセージを受信すると即座にＯＦＣ６に対して応答する。しかし、故障しているＯＦＳ４については、ＯＦＣ６は応答メッセージを受信できないため、当該ＯＦＳ４が故障していることを認識することができる。ＯＦＣ６は、逆に、死活監視パケットによりＯＦＳ４の追加を検知することもできる。
【００３５】
また、ＯＦＣ６は、トポロジ検出用パケットを利用してＯＦＳ４間のリンクが切断されたことを認識する。具体的な手順としては、まずＯＦＣ６は、全てのＯＦＳ４に対して一定の間隔でトポロジ検出用パケットを送信する。ＯＦＳ４は、トポロジ検出用パケットを受信すると隣接するＯＦＳ４に転送しようとする。しかし、リンクが切断されている場合には、隣接するＯＦＳ４にパケットを転送することができない。その結果、パケットの転送はそこで止まってしまい、ＯＦＣ６はトポロジ検出用パケットを受信できないため、リンクが切断されたことを認識することができる。ＯＦＣ６は、逆に、トポロジ検出用パケットを利用してＯＦＳ４間のリンクが追加されたことも認識することができる。
【００３６】
次に、フローエントリテーブル６３は、各ＯＦＳ４により記憶されるフローエントリを管理するテーブルである。このフローエントリテーブル６３は、ＯＦＳ４により記憶されるフローエントリの更新と連動して更新される。
【００３７】
分割要否判断部６４は、ＩＰＳ５の分割の要否を判断する。換言すると、ＩＰＳ５に記憶されるシグネチャの分割の要否を判断する。具体的には、ＩＰＳ５は、シグネチャテーブル６１を参照して、後述する分割要否判断処理を実行する。この分割要否判断処理は、例えば、ＩＰＳ５に記憶されるシグネチャの更新時や、所定の周期で実行される。
【００３８】
分割部６５は、ＩＰＳ５において所定の条件が満たされた場合に、ＩＰＳ５の分割処理を実行する。具体的には、分割要否判断部６４によりＩＰＳ５の分割が必要であると判断された場合に、ＩＰＳ５のシグネチャの分割処理を実行する。
【００３９】
この分割処理において、生成部６５１は、ＩＰＳ５とは異なる仮想化されたＩＰＳ５Ａを生成する。具体的には、ＩＰＳ５で動作する仮想マシン（Virtual Machine）上にＩＰＳ５Ａのインスタンスを生成するようＩＰＳ５に指示する。なおここで、仮想マシンとは、ソフトウェアによって、擬似的、仮想的に構築されたハードウェア環境である。また、インスタンスとは、物理的な１台のコンピュータ上で、ソフトウェアとして実装された仮想的なコンピュータを起動したものを指す。ＩＰＳ５を無尽蔵に分割するとリソースの枯渇が考えられるため、分割の上限数はリソースに応じて定まる。
【００４０】
第１ルール設定部６５２は、ＩＰＳ５に記憶される複数のシグネチャのうちの少なくとも一部のシグネチャを、生成部６５１により生成されたＩＰＳ５Ａに設定する。本実施形態においては、例えば、Ｂ社テナントＮＷ７Ｂ向けのシグネチャをＩＰＳ５から削除し、当該シグネチャをＩＰＳ５Ａに設定する。また、Ａ社Ｂ社共通シグネチャをＩＰＳ５Ａに設定する。
【００４１】
第１更新部６５３は、ＯＦＳ４ＡによってＩＰＳ５に対して転送されている複数のパケットのうち一部のパケットが、生成部６５１により生成されたＩＰＳ５Ａに転送されるようにＯＦＳ４Ａのフローエントリを更新する。本実施形態においては、例えば、ＯＦＳ４ＡによってＩＰＳ５に対して転送されているＡ社テナントＮＷ７Ａ宛てのパケットとＢ社テナントＮＷ７Ｂ宛てのパケットのうち、Ｂ社テナントＮＷ７Ｂ宛てのパケットがＩＰＳ５Ａに転送されるようにＯＦＳ４Ａのフローエントリを更新する。第１更新部６５３は、当該更新をトポロジ情報テーブル６２とフローエントリテーブル６３とを参照して実行する。
【００４２】
マージ要否判断部６６は、ＩＰＳ５とＩＰＳ５Ａのマージ（併合、統合）の要否を判断する。換言すると、ＩＰＳ５に記憶されるシグネチャとＩＰＳ５Ａに記憶されるシグネチャのマージの要否を判断する。具体的には、ＩＰＳ５は、シグネチャテーブル６１を参照して、後述するマージ要否判断処理を実行する。このマージ要否判断処理は、例えば、ＩＰＳ５又はＩＰＳ５Ａに記憶されるシグネチャの更新時や、所定の周期で実行される。
【００４３】
マージ部６７は、ＩＰＳ５に記憶されるシグネチャとＩＰＳ５Ａに記憶されるシグネチャとが所定の条件を満たすようになった場合に、ＩＰＳ５とＩＰＳ５Ａのマージ処理を実行する。具体的には、マージ要否判断部６６によりＩＰＳ５とＩＰＳ５Ａのマージが必要であると判断された場合に、ＩＰＳ５とＩＰＳ５Ａのマージ処理を実行する。
【００４４】
このマージ処理において、削除部６７１は、ＩＰＳ５Ａを削除する。具体的には、ＩＰＳ５で動作する仮想マシン上に生成されたＩＰＳ５Ａのインスタンスを削除するようＩＰＳ５に指示する。
【００４５】
第２ルール設定部６７２は、ＩＰＳ５Ａに設定されたシグネチャをＩＰＳ５に再設定する。本実施形態においては、例えば、Ｂ社テナントＮＷ７Ｂ向けのシグネチャをＩＰＳ５に再設定する。
【００４６】
第２更新部６７３は、ＯＦＳ４ＡによってＩＰＳ５Ａに対して転送されているパケットがＩＰＳ５に転送されるようにＯＦＳ４Ａのフローエントリを更新する。本実施形態においては、例えば、ＯＦＳ４ＡによってＩＰＳ５Ａに対して転送されているＢ社テナントＮＷ７Ｂ宛てのパケットがＩＰＳ５に転送されるようにＯＦＳ４Ａのフローエントリを更新する。第２更新部６７３は、当該更新をトポロジ情報テーブル６２とフローエントリテーブル６３とを参照して実行する。
【００４７】
１−５．ＯＦＣ６の動作
ＯＦＣ６の動作について説明する。具体的には、分割要否判断処理と、分割処理と、マージ要否判断処理と、マージ処理とについて説明する。
【００４８】
１−５−１．分割要否判断処理
図３は、分割要否判断処理の一例を示すフローチャートである。同図に示される処理において分割要否判断部６４は、まず、シグネチャテーブル６１を参照して、ＩＰＳ５のシグネチャの項目数が分割要否判断用上限値を超えているか否かについて判断する（ステップＳａ１）。この判断の結果、ＩＰＳ５のシグネチャの項目数が分割要否判断用上限値を超えている場合には（ステップＳａ１；ＹＥＳ）、分割要否判断部６４は、分割部６５に対して分割指示を出力して（ステップＳａ３）、本処理を終了する。一方、この判断の結果、ＩＰＳ５のシグネチャの項目数が分割要否判断用上限値を超えていない場合には（ステップＳａ１；ＮＯ）、分割要否判断部６４はステップＳａ２を実行する。
【００４９】
ステップＳａ２において分割要否判断部６４は、シグネチャテーブル６１を参照して、ＩＰＳ５のシグネチャの任意の２項目の間に矛盾があるか否かについて判断する。この判断の結果、ＩＰＳ５のシグネチャの任意の２項目の間に矛盾がある場合には（ステップＳａ２；ＹＥＳ）、分割要否判断部６４は、分割部６５に対して分割指示を出力して（ステップＳａ３）、本処理を終了する。一方、この判断の結果、ＩＰＳ５のシグネチャの任意の２項目の間に矛盾がない場合には（ステップＳａ２；ＮＯ）、分割要否判断部６４は、ＩＰＳ５の分割は不要と判断し、本処理を終了する。
【００５０】
ここで、シグネチャの任意の２項目間の矛盾のチェック方法について説明する。本実施形態においては、ＩＰＳ５に記憶されるシグネチャのうち、Ａ社Ｂ社共通シグネチャとＡ社テナントＮＷ７Ａ向けシグネチャとの間と、Ａ社Ｂ社共通シグネチャとＢ社テナントＮＷ７Ｂ向けシグネチャとの間には矛盾はないものと仮定し、Ａ社テナントＮＷ７Ａ向けシグネチャとＢ社テナントＮＷ７Ｂ向けシグネチャとの間に矛盾が発生する可能性があると仮定している。
【００５１】
ここで、Ａ社テナントＮＷ７Ａ向けシグネチャの集合を、Ａ＝｛ａ＿１，ａ＿２，…ａ＿ｍ｝とし、Ｂ社テナントＮＷ７Ｂ向けシグネチャの集合を、Ｂ＝｛ｂ＿１，ｂ＿２，…ｂ＿ｋ｝とすると、互いの集合の要素同士を総当りで比較して矛盾をチェックする。言い換えると、ａ＿ｉとｂ＿ｊを比較して矛盾をチェックし、矛盾がある場合にはｉとｊのペアを出力する処理を、ｉ＝１からｉ＝ｍまでの範囲の各値について、ｊ＝１からｊ＝ｋの範囲で繰り返し実行する。
【００５２】
図４は、シグネチャの記述例と矛盾の例とを示す図である。同図に示される例では、各シグネチャは、ルールヘッダとルールオプションにより構成される。ルールヘッダは、アクションと、プロトコルと、ＩＰアドレス、ポート番号及びその方向とにより構成される。アクションは、そのルールにマッチしたときに起こす行動を指定し、「alert」を含め、「log」、「pass」、「activate」、「dynamic」の５種類がある。alertは、マッチしたイベントを検出すると、指定されたアラートを出力し、パケットの内容をログに記録する。プロトコルは、「tcp」と「udp」と「icmp」が指定可能である。ＩＰアドレス、ポート番号及びその方向は、パケットの送信元と送信先とを指定する。ＩＰアドレスとポート番号を指定するときには、「!」を前に付けることで否定を表現できる。ルールオプションは、同図に示される例では、アラートとして出力されるメッセージが指定される。
【００５３】
図４に示される１番目のシグネチャは、「IPアドレスxxx.yyy.10.1のホストの80/TCP宛てについては、送信元を限定せずに検出する」という検知ルールである。２番目のシグネチャは、「IPアドレスxxx.yyy.10.1のホストの22/TCP宛てのアクセスで、送信元がネットワークzzz.www.vvv.0/24上の端末からのものは検出する」という検知ルールである。３番目のシグネチャは、「IPアドレスxxx.yyy.10.1のホストの22/TCPあてのアクセスで、送信元がネットワークzzz.www.vvv.0/24上の端末からのものは検出しない」という検知ルールである。以上の３つのシグネチャのうち、２番目のシグネチャと３番目のシグネチャとは、同一の条件において一方は「検出する」と規定されており、他方は「検出しない」と規定されており、両者は矛盾していると言える。
【００５４】
１−５−２．分割処理
図５は、分割処理の一例を示すフローチャートである。図６は、分割処理の一例を説明する説明図である。これらの図に示される分割処理は、分割要否判断部６４から分割部６５に対して分割指示が出力されると実行される。この分割処理において生成部６５１は、ＩＰＳ５で動作する仮想マシン上にＩＰＳ５Ａのインスタンスを生成するようＩＰＳ５に指示する（ステップＳｂ１）。
【００５５】
次に、第１ルール設定部６５２は、シグネチャテーブル６１を参照して、ＩＰＳ５に記憶されているシグネチャのコピーをＩＰＳ５Ａに設定する（ステップＳｂ２）。次に、第１ルール設定部６５２は、ＩＰＳ５からＢ社テナントＮＷ７Ｂ向けのシグネチャを削除する（ステップＳｂ３）。次に、第１ルール設定部６５２は、ＩＰＳ５Ａに設定されたシグネチャのコピーのうち、Ａ社テナントＮＷ７Ａ向けのシグネチャを削除する（ステップＳｂ４）。
【００５６】
次に、第１更新部６５３は、Ａ社テナントＮＷ７Ａ宛てのパケットがＩＰＳ５に転送され、Ｂ社テナントＮＷ７Ｂ宛てのパケットがＩＰＳ５Ａに転送されるようにＯＦＳ４Ａのフローエントリを更新する（ステップＳｂ５）。また、第１更新部６５３は、ＩＰＳ５から送信されたＡ社テナントＮＷ７Ａ宛てのパケットがＡ社テナントＮＷ７Ａに転送され、ＩＰＳ５Ａから送信されたＢ社テナントＮＷ７Ｂ宛てのパケットがＢ社テナントＮＷ７Ｂに転送されるようにＯＦＳ４Ｂのフローエントリを更新する。第１更新部６５３は、これらの更新を、トポロジ情報テーブル６２とフローエントリテーブル６３を参照して実行する。
以上が、分割処理についての説明である。
【００５７】
１−５−３．マージ要否判断処理
図７は、マージ要否判断処理の一例を示すフローチャートである。同図に示される処理においてマージ要否判断部６６は、まず、シグネチャテーブル６１を参照して、ＩＰＳ５のシグネチャの項目数とＩＰＳ５Ａのシグネチャの項目数の合計がマージ要否判断用下限値より小さいか否かについて判断する（ステップＳｃ１）。この判断の結果、両シグネチャの項目数の合計がマージ要否判断用下限値より小さい場合には（ステップＳｃ１；ＹＥＳ）、マージ要否判断部６６はステップＳｃ２を実行する。一方、この判断の結果、両シグネチャの項目数の合計がマージ要否判断用下限値以上である場合には（ステップＳｃ１；ＮＯ）、マージ要否判断部６６は、マージは不要であると判断し、本処理を終了する。
【００５８】
ステップＳｃ２においてマージ要否判断部６６は、シグネチャテーブル６１を参照して、ＩＰＳ５とＩＰＳ５Ａに記憶されるシグネチャの任意の２項目の間に矛盾があるか否かについて判断する。より具体的には、ＩＰＳ５に記憶されるＡ社テナントＮＷ７Ａ向けシグネチャと、ＩＰＳ５Ａに記憶されるＢ社テナントＮＷ７Ｂ向けシグネチャの間に矛盾があるか否かについて判断する。この判断の結果、ＩＰＳ５に記憶されるＡ社テナントＮＷ７Ａ向けシグネチャと、ＩＰＳ５Ａに記憶されるＢ社テナントＮＷ７Ｂ向けシグネチャの間に矛盾がない場合には（ステップＳｃ２；ＹＥＳ）、マージ要否判断部６６は、マージ部６７に対してマージ指示を出力して（ステップＳｃ３）、本処理を終了する。一方、この判断の結果、ＩＰＳ５に記憶されるＡ社テナントＮＷ７Ａ向けシグネチャと、ＩＰＳ５Ａに記憶されるＢ社テナントＮＷ７Ｂ向けシグネチャの間に矛盾がある場合には（ステップＳｃ２；ＮＯ）、マージ要否判断部６６は、ＩＰＳ５とＩＰＳ５Ａのマージは不要と判断し、本処理を終了する。
【００５９】
ここで、シグネチャの任意の２項目間の矛盾のチェック方法について説明する。本実施形態においては、ＩＰＳ５とＩＰＳ５Ａに記憶されるシグネチャのうち、Ａ社Ｂ社共通シグネチャとＡ社テナントＮＷ７Ａ向けシグネチャとの間と、Ａ社Ｂ社共通シグネチャとＢ社テナントＮＷ７Ｂ向けシグネチャとの間には矛盾はないものと仮定し、Ａ社テナントＮＷ７Ａ向けシグネチャとＢ社テナントＮＷ７Ｂ向けシグネチャとの間に矛盾が発生する可能性があると仮定している。
【００６０】
ここで、Ａ社テナントＮＷ７Ａ向けシグネチャの集合を、Ａ＝｛ａ＿１，ａ＿２，…ａ＿ｍ｝とし、Ｂ社テナントＮＷ７Ｂ向けシグネチャの集合を、Ｂ＝｛ｂ＿１，ｂ＿２，…ｂ＿ｋ｝とすると、互いの集合の要素同士を総当りで比較して矛盾をチェックする。言い換えると、ａ＿ｉとｂ＿ｊを比較して矛盾をチェックし、矛盾がある場合にはｉとｊのペアを出力する処理を、ｉ＝１からｉ＝ｍまでの範囲の各値について、ｊ＝１からｊ＝ｋの範囲で繰り返し実行する。なお、シグネチャの矛盾の例については、上記の分割要否判断処理に関連して説明した通りである。
【００６１】
１−５−４．マージ処理
図８は、マージ処理の一例を示すフローチャートである。図９は、マージ処理の一例を説明する説明図である。これらの図に示されるマージ処理は、マージ要否判断部６６からマージ部６７に対してマージ指示が出力されると実行される。このマージ処理において第２ルール設定部６７２は、シグネチャテーブル６１を参照して、ＩＰＳ５Ａに設定されているＢ社テナントＮＷ７Ｂ向けのシグネチャをＩＰＳ５に再設定する（ステップＳｄ１）。
【００６２】
次に、削除部６７１は、ＩＰＳ５で動作する仮想マシン上に生成されたＩＰＳ５Ａのインスタンスを削除するようＩＰＳ５に指示する（ステップＳｄ２）。
【００６３】
次に、第２更新部６７３は、Ｂ社テナントＮＷ７Ｂ宛てのパケットがＩＰＳ５に転送されるようにＯＦＳ４Ａのフローエントリを更新する（ステップＳｄ３）。また、第２更新部６７３は、ＩＰＳ５から送信されたＢ社テナントＮＷ７Ｂ宛てのパケットがＢ社テナントＮＷ７Ｂに転送されるようにＯＦＳ４Ｂのフローエントリを更新する。第２更新部６７３は、これらの更新を、トポロジ情報テーブル６２とフローエントリテーブル６３を参照して実行する。
以上が、マージ処理についての説明である。
なお、以上説明したマージ処理の例では、ＩＰＳ５Ａを削除して、ＩＰＳ５ＡのシグネチャをＩＰＳ５に再設定するようにしたが、逆に、ＩＰＳ５の方を削除して、ＩＰＳ５Ａの方にＩＰＳ５のシグネチャを設定するようにしてもよい。
【００６４】
以上説明した本実施形態に係るマルチテナントシステム１００によれば、ＩａａＳ上での機器共有サービスに単純にＳＤＮを適用した場合に生じる以下の課題が解決される。まず、ＩａａＳ上での機器共有サービスにおいて、各社テナントによりＩＰＳが共有された場合には、Ａ社テナント向けのシグネチャがＢ社テナント向けには不必要である場合に、Ｂ社にとってはパケット検査に余計な時間がかかってしまうという問題がある。また、Ａ社とＢ社との間でシグネチャの矛盾が生じてしまうという問題がある。しかし、本実施形態に係るマルチテナントシステム１００によれば、ＩＰＳ５のシグネチャの項目数が分割要否判断用上限値を超えた場合や、ＩＰＳ５のシグネチャの任意の２項目の間に矛盾が生じた場合には、ＩＰＳ５が分割され、テナントＮＷ７ごとにパケット検査が行われるため、他社固有のシグネチャに基づくパケット検査に余計な時間がかかってしまうという問題や、利用者間でシグネチャの矛盾が生じてしまうという問題に対処できる。
また、本実施形態に係るマルチテナントシステム１００によれば、パケットの通過量がＩＰＳ５の処理量を超えた場合に、ＩＰＳ５Ａにより処理を補完することができる。
【００６５】
２．変形例
上記の実施形態は、以下に示すように変形してもよい。また、以下の変形例は互いに組み合わせてもよい。
【００６６】
２−１．変形例１
上記の実施形態に係る分割処理においてＩＰＳ５を分割する際、ＩＰＳ５とＩＰＳ５Ａに割り当てるリソース（計算機資源）を、Ａ社テナントＮＷ７Ａ向けパケットとＢ社テナントＮＷ７Ｂ向けパケットの発生比に基づいて決定してもよい。これは、Ａ社テナントＮＷ７Ａ向けパケットとＢ社テナントＮＷ７Ｂ向けパケットの発生比が例えば１００：１のように著しく大きい場合、ＩＰＳ５とＩＰＳ５Ａとに等しいリソースを割り当てることは非効率だからである。
【００６７】
そこで、上記の実施形態に係るＯＦＣ６は、リソース割当部をさらに備え、このリソース割当部により、Ａ社テナントＮＷ７Ａ向けパケットとＢ社テナントＮＷ７Ｂ向けパケットの発生比に応じて、ＩＰＳ５とＩＰＳ５Ａとに割り当てるリソースを決定するようにしてもよい。具体的には、リソース割当部は、ＯＦＳ４Ａに記憶されるフローテーブルの統計情報（Counters）を参照してＡ社テナントＮＷ７Ａ向けパケットとＢ社テナントＮＷ７Ｂ向けパケットの発生比を特定し、この発生比（すなわち、統計情報の比）とリソースの割り当ての比が同等となるように最適化を行ってもよい。例えば、当初、使用可能メモリとして「５０ＧＢ」ずつＩＰＳ５とＩＰＳ５Ａとに割り当てていたところ、分割処理後の所定期間経過後に、Ａ社テナントＮＷ７Ａ向けパケットの転送を定義するフローエントリの統計情報が「２０，０００」となり、Ｂ社テナントＮＷ７Ｂ向けパケットの転送を定義する統計情報が「１０，０００」となった場合には、ＩＰＳ５とＩＰＳ５Ａとに割り当てる使用可能メモリを「６６ＧＢ」と「３３ＧＢ」とに調整するようにしてもよい。
【００６８】
２−２．変形例２
上記の実施形態では、シグネチャベースのセキュリティ機器の例としてＩＰＳ５が使用されているが、ＩＰＳ５に代えてＩＤＳやＷＡＦ（Web Application Firewall）が使用されてもよい。
【００６９】
２−３．変形例３
上記の実施形態に分割処理の例では、ＩＰＳ５が２つに分割されているが、分割数は２に限られず、３以上に分割されてもよい。この際、分割数は、分割されるＩＰＳ５にシグネチャが記憶されているテナントＮＷ７の数に応じて決定されてもよい。同様に、上記の実施形態に係るマージ処理の例では、２つのＩＰＳ５が１つにマージされているが、３以上のＩＰＳ５が１つにマージされてもよい。
【００７０】
２−４．変形例４
上記の実施形態に係る分割要否判断処理において、ステップＳａ１及びＳａ２に加えて又は代えて、分割要否判断部６４は、Ａ社テナントＮＷ７Ａ向けシグネチャの項目数とＢ社テナントＮＷ７Ｂ向けシグネチャの項目数の比率が所定の閾値を超えるか否かを判断してもよい。そして、当該比率が所定の閾値を超えた場合に、分割部６５に対して分割指示を出力するようにしてもよい。また、当該判断の結果が肯定的となった結果、分割部６５により分割処理が実行された場合に、項目数の多いシグネチャを、性能の高いＩＰＳ５に割り当てるようにしてもよい。例えば、上記の実施形態に係る分割処理において、Ｂ社テナントＮＷ７Ｂ向けシグネチャの項目数の方がＡ社テナントＮＷ７Ａ向けシグネチャの項目数よりも多い場合には、生成部６５１は、ＩＰＳ５よりもスループットの高いＩＰＳ５Ａを生成して、第１ルール設定部６５２は、このＩＰＳ５ＡにＢ社テナントＮＷ７Ｂ向けシグネチャを設定するようにしてもよい。
【００７１】
同様に、上記の実施形態に係るマージ要否判断処理において、ステップＳｃ１及びＳｃ２に加えて又は代えて、マージ要否判断部６６は、Ａ社テナントＮＷ７Ａ向けシグネチャの項目数とＢ社テナントＮＷ７Ｂ向けシグネチャの項目数の比率が所定の閾値を超えるか否かを判断してもよい。そして、当該比率が所定の閾値を超えない場合に、マージ部６７に対してマージ指示を出力するようにしてもよい。
【００７２】
２−５．変形例５
上記の実施形態では、ＯＦＣ６に、分割要否判断部６４と、分割部６５と、マージ要否判断部６６と、マージ部６７の各機能を備えさせているが、これらの機能は、ＯＦＣ６とは異なる他の制御装置に備えさせてもよい。その場合、当該制御装置に備えられる第１更新部６５３は、ＯＦＳ４Ａ及び４Ｂのフローエントリを更新する際、当該更新をＯＦＣ６に指示してもよい。同様に、当該制御装置に備えられる第２更新部６７３は、ＯＦＳ４Ａ及び４Ｂのフローエントリを更新する際、当該更新をＯＦＣ６に指示してもよい。
【００７３】
２−６．変形例６
上記の実施形態に係る分割処理では、ＩＰＳ５で動作する仮想マシン上にＩＰＳ５Ａのインスタンスが生成されているが、このＩＰＳ５Ａのインスタンスは、ＩＰＳ５とは異なる他のＩＰＳ５Ｂで動作する仮想マシン上に生成されてもよい。そして、当該ＩＰＳ５Ｂ上に生成されたＩＰＳ５ＡとＩＰＳ５との間でシグネチャが分割されてもよい。
【００７４】
２−７．変形例７
上記の実施形態に係るＯＦＳ４及びＯＦＣ６は、OpenFlow仕様に準拠するものとなっているが、ＳＤＮを実現するものであれば他のプロトコルに準拠するものであってもよい。
【００７５】
２−８．変形例８
上記の実施形態又は変形例においてＯＦＣ６において実行されるプログラムは、コンピュータ装置が読み取り可能な記録媒体を介して提供されてもよい。ここで、記録媒体とは、例えば、磁気テープや磁気ディスクなどの磁気記録媒体や、光ディスクなどの光記録媒体や、光磁気記録媒体や、半導体メモリ等である。また、このプログラムは、インターネット等のネットワークを介して提供されてもよい。
【符号の説明】
【００７６】
１…端末、２…インターネット、３…ルータ、４…ＯＦＳ、５…ＩＰＳ、６…ＯＦＣ、７…テナントＮＷ、６１…シグネチャテーブル、６２…トポロジ情報テーブル、６３…フローエントリテーブル、６４…分割要否判断部、６５…分割部、６６…マージ要否判断部、６７…マージ部、１００…マルチテナントシステム、６５１…生成部、６５２…第１ルール設定部、６５３…第１更新部、６７１…削除部、６７２…第２ルール設定部、６７３…第２更新部
【図１】
0006476034.tif 000002
【図２】
0006476034.tif 000003
【図３】
0006476034.tif 000004
【図４】
0006476034.tif 000005
【図５】
0006476034.tif 000006
【図６】
0006476034.tif 000007
【図７】
0006476034.tif 000008
【図８】
0006476034.tif 000009
【図９】
0006476034.tif 000010