Cisco Open SDN Controller

イベント ベースのソフトウェア定義型ネットワーキング:セキュアなサイエンス DMZ の構築

ホワイトペーパー





イベント ベースのソフトウェア定義型ネットワーキング:セキュアなサイエンス DMZ の構築


概要

大規模なデータ セットを世界中で効率的にやり取りする必要性が増すにつれ、サイエンス DMZ をネットワーク エッジに構築し、ファイアウォールなどの従来のセキュリティ デバイスによるパフォーマンス制限に縛られることのないセキュアな環境を整えることが不可欠になってきています。このドキュメントでは、従来のサイエンス DMZ のセキュリティと効率の両方を向上させるイベント ベースのソフトウェア定義型ネットワーキング(SDN)ソリューションを紹介します。内容は次のとおりです。

  • 現在のサイエンス DMZ の実装と弱点
  • セキュアなサイエンス DMZ に必要なネットワーク機能
  • イベント ベースの SDN の概念
  • リファレンス実装の詳細

このドキュメントは、大量のデータをやり取りするネットワーク向けのソリューションを設計および開発する方を対象としています。

背景

科学研究の分野においては、ますます多くのデータ フローに頼るようになり、多くの研究者の間で大規模な協力関係が形成され、実験やシミュレーションで得られたデータが世界中でやり取りされています。膨大なデータ転送を必要とするこの独特な特徴により、ネットワーキングに関する新たな課題が生まれています。

  • 従来のキャンパス ネットワークは、企業の事業運営を想定して設計されています。通常、大量の小規模なフローを処理することを前提としており、少数の非常に大規模なフローを特徴とする科学データのバルク転送にはあまり適していません。
  • 科学データを共有する場合、フローが大規模であるという特徴を考慮すると、従来のキャンパス ネットワークには大きな欠点があります。一般的なデータ トラフィックであれば、キャンパス LAN でパケット損失が発生しても多くの場合は許容されます。しかし、たとえ非常に少量のパケット損失であっても、WAN で遅延が発生すれば、TCP のパフォーマンスが桁違いに低下する可能性があります。したがって、そのようなソリューションでは、科学データのやり取りに求められる厳しい要件には対応できません。
  • ネットワーク トラフィックの負荷が大きいビッグ データ フローをファイアウォール ルールに基づく複雑な制約の下で管理しようとすると、通常、ファイアウォールのハードウェアの制限が問題になります。そのような大規模なフローにおいては、古い光ファイバもパフォーマンスの制約になります。
  • 従来のキャンパス ネットワークは、セキュリティを重視して最適化されているため、パフォーマンスはある程度犠牲になっています。このセキュリティ重視の最適化のために、従来のネットワークでは、キャンパスのファイアウォール ポリシーによって、さまざまなデータ集約型の実験に必要なポートがブロックされたりフローが制限されたりしていることがあります。
  • 従来のキャンパス ネットワークのトラフィック エンジニアリング手法では、ビッグ データの帯域幅プロビジョニングに関するポリシーを適用するのに必要な詳細なフローの分類を実行できません。

サイエンス DMZ

従来のキャンパス インフラストラクチャではオンデマンドの科学アプリケーションやビッグデータ アプリケーションに対応できないため、新しいアプローチが必要になります。「サイエンス DMZ」とは、ネットワークの分類を表す用語で、組織のファイアウォールの外に構築された、従来のセキュリティ デバイス(インラインのファイアウォールや侵入防御システム(IPS))に共通するパフォーマンスへの影響を排除したセキュアな構造のネットワークを指します。

  • 高性能アプリケーション向けに明確に設計された、科学ネットワークと汎用ネットワークが分けられたネットワーク アーキテクチャに基づきます。
  • 通常、組織のエッジまたはその近くに配置され、多数の汎用のビジネス システム フローやエンタープライズ コンピューティング フローではなく、適度な数の高速フロー向けに最適化されています。
  • 高パフォーマンスの科学環境向けに調整されたインフラストラクチャとセキュリティ ポリシーおよび適用メカニズムを提供します。
  • アプリケーションのニーズに応じてカスタマイズが可能で、データ集約型の科学フローを高速な WAN バックボーン(米国の Internet2 など)へと移行できます。
  • ビッグ データ アプリケーション トラフィックの動的な識別およびオーケストレーションにより、キャンパス エンタープライズ ファイアウォールをバイパスできます。
  • フロー アクセラレーションを促進する専用のデータ転送システム(データ伝送ネットワーク(DTN))を使用します。
  • パフォーマンス測定およびネットワーク テスト用のシステムが用意されており、ネットワークの特性を示すために定期的に使用されるほか、トラブルシューティングにも使用できます。

図 1 に、キャンパス アクセス ネットワーク内における中継の仕組みを示します。キャンパスの境界に備えられたインテリジェンスにより、研究データ フローはキャンパス ファイアウォールをバイパスして特定の研究ネットワーク パスにルーティングされます。一方、Web ブラウジングや電子メールなどのエンタープライズ トラフィックは、同じキャンパス アクセス ネットワークを通じて、ファイアウォール ポリシーで設定されたパスに従ってインターネットにルーティングされます。

図 1.     サイエンス DMZ の概要



サイエンス DMZ を保護するソリューションの構築

このドキュメントでは、ほとんどの機関のポリシーの要件に対応するように設計された、実稼働環境のサイエンス DMZ を保護するソリューションを紹介します。

Cisco® のソリューションは、Cisco Nexus 3000 シリーズ スイッチと Cisco Nexus Data Broker ソフトウェアという 2 つの要素で構成されています。互換性のあるスイッチは次のとおりです。

SDN コントローラは、ネットワークの状況の変化に迅速に対応できます。サイエンス DMZ の場合は、コントローラにより、企業の境界で攻撃をアクティブにブロックし、大量のデータ フローをステアリングしてファイアウォールや侵入検知システム(IDS)を迂回させることができます。このステアリングがなければ、負荷が高くなったり、パフォーマンスが制限されたりすることになります。

Cisco Nexus 3000 シリーズ スイッチは、その柔軟なポート オプション(1、10、40 Gbps)と手頃な価格により選ばれています。金融、高等教育、企業、サービス プロバイダーといった分野のお客様が、Cisco Nexus Data Broker を導入しています。

図 2 に、このソリューションの概要を示します。

図 2.     セキュアなサイエンス DMZ の概要



このソリューションでは、Cisco® Open SDN Controller でネットワーク内の変更を一元管理します。このコントローラは、Representational State Transfer(REST)コマンドを受け取り、コントローラ内で該当する状態を更新した後、デバイス固有の適切なアクションをコンフィギュレーションし、デバイスに応じた適切なプロトコル(OpenFlow や NETCONF など)を使用して送信します。

Splunk は、任意の Python コードを処理できる機能を備えた強力なイベント集約データベースであり、サイエンス DMZ では、すべてのセキュリティ イベントとアプリケーション イベントの処理センターとして機能する優れたプラットフォームです。このソリューションでは、Splunk は、Open SDN Controller にアプリケーションとして論理的に配置され、主に Cisco FireSIGHT® Management Center、Cisco 適応型セキュリティ アプライアンス(ASA)ファイアウォール、および Globus の 3 つのソースから情報を取り込みます。それ以外にも、ホスト ベースの IDS、Web セキュリティ アプライアンス、アイデンティティ サービスなど、ネットワーク上の他のさまざまなデバイスからイベントを収集できるため、より確かな状況認識が可能になっています。その後、Splunk は収集したイベントを関連付けてパターンやしきい値を特定し、それらに従って REST コマンドを Open SDN Controller に送ります。

この設計においては、Splunk は 2 種類のアクションを開始します。セキュリティに対する脅威のブロッキングと、IDS やファイアウォールを迂回させる大量のデータ フローのステアリングです。

  • セキュリティに対する脅威のブロッキングは、データ フローのアウトオブバンドにある Cisco FirePOWER? IPS アプライアンスからの情報と、ネットワーク内のそれ以外の場所にある ASA ファイアウォールからの情報に基づいて行われます。
  • ステアリングは、Globus からのアクティブ フロー通知に基づいて大量のデータ フローを検出することで行われます。Splunk は、Globus GridFTP 制御メカニズムのイベント ログをモニタして、特定のデータ転送フロー情報を入手します。

トラフィックのブロッキングとステアリングのどちらを行う場合も、Splunk は Open SDN Controller のノースバウンド REST API を使用してそれらのアクションを実行します。これについては、以降のセクションで説明します。

サイエンス DMZ のデータ転送ツール

GridFTP は、Globus ファイル転送に使用される基盤となるテクノロジーです。GridFTP プロトコルは FTP を拡張したプロトコルであり、広域分散ネットワークで安全性と信頼性に優れた効率的なデータ転送を実現します。GridFTP の特に注目すべき拡張機能としては、パラレリズム(データ ムーバーのペア間での複数のソケット接続の使用)、リスタート マーカー、データ チャネル セキュリティなどがあります。GridFTP は、アルゴンヌ国立研究所とシカゴ大学が中心となって開発されたオープン ソース実装です。

広域でのファイル転送には、各種の複雑なリソースやプロトコルを最適に使用することが必要になります。これは本質的に複雑なタスクです。実際、GridFTP や同様のツールはますます複雑になり、エンド ユーザが制御したり完全に理解したりするのは難しくなっています。さらに、大規模なデータ転送では、完了までに長い時間がかかることがあります。この転送時間により、本来であればエンド ユーザが直接対処する必要はない信頼性やリカバリに関する問題が発生します。このような問題に対処するために、アルゴンヌ国立研究所とシカゴ大学は、転送を管理するための Globus 転送サービスという Software as a Service(SaaS)ソリューションを開発しました。2 つの拠点間でファイルやディレクトリの転送または同期を行う場合、ユーザはこのサービスを通じて直接要求することができます。Globus は、透過的に GridFTP の転送を取りまとめ、セキュリティへの対応、転送のモニタリング、障害発生時の転送の再開を行います。2015 年 4 月現在、Globus は、10,000 を超えるアクティブなエンドポイントの研究ネットワーク エコシステムにおいて重要な役割を担っています。

Globus は、科学サイト間のデータのやり取りに世界で最も広く採用されているプラットフォームの 1 つであり、サイエンス DMZ の最適化の魅力的なターゲットとなります。しかし、このソリューションには汎用性があるため、少しの労力で他のデータ転送アプリケーションにも対応できます。

Cisco Open SDN Controller

Open SDN Controller(図 3)は、標準に準拠したネットワーク インフラストラクチャの自動化を通じてビジネスの俊敏性を向上させる OpenDaylight の商用ディストリビューションです。これにより、異種ネットワーク環境の管理にかかわる複雑さが解消され、サービス品質の改善と運用コストの削減が実現します。Open SDN Controller は、オープン ソース ベースのソフトウェアとして、継続的なイノベーションと OpenDaylight コミュニティのサポートにより絶えず進化を続けています。

図 3.     Cisco Open SDN Controller の概要



Splunk によるイベントの検出と関連付け

一般に、サイバーセキュリティの完全性はイベントの量と質に伴って向上します。しかし、それぞれのイベントが孤立していては全体像を把握できません。イベントの関連付けでは、すべてのイベントを考慮に入れ、それらをサイト固有のヒューリスティックと組み合わせることで、特定のアクションをいつ行えばよいかを判断します。このアプローチにより、システムの有効性を制限したりセキュリティを脅かしたりする可能性があるイベントの誤検出や見逃しが大幅に減少します。このドキュメントで紹介しているソリューションでは、イベントの関連付けと格納の両方に Splunk を使用しています。

このソリューションでは、Splunk を使用して 3 種類のイベントを検出します。FirePOWER IDS センサーからのイベント、ASA ファイアウォールからの拒否通知、Globus からのフロー通知の 3 つです(図 2 を参照)。これらのイベントは、Splunk のリアルタイム検索とスケジュール検索の組み合わせで検出されます。

リアルタイム検索

リアルタイム検索は、すぐに対処が必要なイベントや、重大度または明確さの観点から関連付けを必要としないイベントに使用されます。このようなイベントの例の 1 つに、FirePOWER IDS からの優先度の高いイベントがあります。

index=estreamer sourcetype=estreamer rec_type_simple="IPS EVENT" priority="high" src_ip | eval action="block" | eval reason="IDS-HIGH"

この検索では、FireSIGHT Event Streamer(eStreamer)から、Splunk アプリケーションの優先度の高いセキュリティ イベントを探します。このようなイベントに対しては、通常、ブロックするように自動的に設定して、送信元 IP アドレスをブロックするために必要な REST 呼び出しを送信する Python コードを呼び出します。

もう 1 つの例は、ファイル転送の要求時に Globus で生成されるフロー イベントです。

sourcetype=globus-netmgr event=flow action | eval params="event=flow"

この検索では、globus-netmgr ログから、event パラメータが flow に設定されたイベントを探します。その後、Splunk は、イベント通知に含まれる詳細な 5 組をピックアップし、それらの既知のフローをステアリングしてセキュリティ デバイスを迂回させるために必要な REST 呼び出しを送信する Python コードを呼び出します。

スケジュール検索

スケジュール検索は、定期的に評価する必要があるイベントのうち、必ずしもリアルタイムで処理されないイベントに使用されます。このサイエンス DMZ ソリューションでは、次のスケジュール検索を使用して、ブロックされてから 24 時間動きがなかった送信元 IP アドレスを自動的にクリアしています。

sourcetype=splunk_odl_action action=block earliest=-48h | stats count by src_ip | table src_ip | search NOT [ search sourcetype=splunk_odl_action action=block earliest=-24h | stats count by src_ip | table src_ip ] | eval params="action=unblock,event=block_timeout".

アーキテクチャ オプション

このソリューションは、組織の目的や優先事項に応じて 2 種類の方法で導入できます。可能な限り高速にデータ転送を行うことを優先する場合は、IDS をアウトオブバンドに配置し、Border Gateway Protocol(BGP)にヌル ルートを挿入して攻撃者をブロックできます。保護しているポートの速度が IDS の能力よりも高ければ、Globus またはその他のデータ転送ユーティリティで記録されたイベントを使用して大量のデータ フローをステアリングできます。大量のフローの開始が記録されていないと IDS の負荷が高くなることがありますが、データ転送が妨げられることはありません。これらの 2 つの導入シナリオの主な違いは、Cisco Nexus® スイッチでのフローの初期設定にあります。

図 4 に、2 つの初期フローを示します。一方のフロー(オレンジの線)は入力ポートが「外部」で出力ポートが「内部」および「IDS」、もう一方のフロー(青の線)は入力ポートが「内部」で出力ポートが「外部」および「IDS」です。実際の実装には、イーサネットおよび Address Resolution Protocol(ARP)の両方のパケットに対するフローのペアが含まれます。

図 4.    アウトオブバンドの侵入検知システム



一方、セキュリティを優先する場合は、ファイアウォールをインバンドに配置して大量のデータ フローをステアリングするという反対のアプローチをとることができます。この場合は、大量のデータ フローが検出されないため、フローのパフォーマンスは低下することがありますが、組織のセキュリティ ポスチャには影響しません。図 5 に、インバンド セットアップの初期フローを示します。この場合は、「外部」ポートから「ファイアウォールまたは IPS」ポートへのフローが作成された後、「ファイアウォールまたは IPS」ポートから「内部」ポートへのフローが作成されます。さらに、それとは反対のフローが作成されます。実際の実装には、イーサネットおよび ARP の両方のパケットに対するフローのペアが含まれます。

図 5.    インバンドのファイアウォールまたは侵入防御システム



インバンドおよびアウトオブバンドのどちらの使用例でも、初期設定は異なりますがバイパスは同じです。図 4 と図 5 で緑の線で示しているように、「外部」ポートから「内部」ポートに直接送られる特定のデータ転送フロー用に、優先的にバイパス フローが作成されます。

アウトオブバンドの侵入検知によるアクティブなブロッキング

従来の IDS は、ネットワークやシステムをモニタして不正なアクティビティやポリシー違反を検出し、管理ステーションにアラートを生成する役割だけを担っています。通常、テスト アクセス ポイント(TAP)またはシスコ スイッチド ポート アナライザ(SPAN)のポートを介して接続されており、それらがパスにないため、それらの脅威にアクティブに対処することはありません。ただし、アウトオブバンドのトラフィックであれば、パフォーマンスへの影響が軽減されます。IDS をイベント ベースの SDN で強化することにより、パフォーマンスとセキュリティの向上を実現できます。

図 6 に、TAP または境界上の Cisco ASR 9000 シリーズ アグリゲーション サービス ルータからのミラーリングを介して送信されるトラフィックを収集するシステムを示します。ミラーリングは、静的に実行することも、イベント ベースの SDN を使用して動的に実行することもできます。これについては、このドキュメントで後ほど説明します。ミラーリングされたトラフィックは、Cisco SourcefireR センサーに送られ、そこから FireSIGHT Management Center を介して Splunk にセキュリティ イベントが記録されます。Splunk は、アラート率や他のイベントまたはデータ ソースから得た攻撃ホストのレピュテーションなどの要因に基づいてアクションを生成できます。

図 6.    アクティブなブロッキングを使用したアウトオブバンドの IDS 向けのイベント ベースの SDN



このアクションは、攻撃者の送信元アドレスのヌル ルートを追加する REST 呼び出しを Open SDN Controller に送信する Python スクリプトです。このヌル ルートが、コントローラのサウスバウンド NETCONF インターフェイスを使用して ASR 9000 シリーズ境界ルータに送られます。コントローラにはサウスバウンド プロトコルのオプションが複数あるため、より詳細なブロッキング(レイヤ 3 およびレイヤ 4 の情報)が必要な場合は、OpenFlow や BGP のフロー仕様など、他のサウスバウンド API を使用してアドレスをブロックすることもできます。

Globus の入力を使用した、アウトオブバンドの IDS を迂回する大量のデータ フローのステアリング

大量のデータ フローを動的に検出するのは簡単ではありません。認識されない形式のデータが、いくつものポートでやり取りされるからです。したがって、境界を必要以上に通過させてセキュリティが低下することがないように、ポート、時刻、送信元アドレスなど、さまざまな変数を使用してフローを分類する必要があります。さらに、大規模なデータ フローの検出で遅延が発生すると、IDS の負荷が高くなって他の脅威が見逃されたり、データ フローの開始に悪影響を及ぼしたりする可能性があります。そうなれば、WAN を使用する TCP の特性上、パフォーマンスが大幅に低下することになります。

Globus には、データ フローが開始された時点で検出してステアリングする独自のメカニズムがあります。GridFTP を使用してファイルを転送するには、まず Globus で認証する必要があります。認証に成功すると、Globus によって、転送が独立したフローとして設定され、 そのフローに関する情報が Splunk に記録されます。その後、Splunk で、IDS またはファイアウォールをバイパスする REST コマンドを Open SDN Controller に送信するアクションが呼び出されます。このフローは最初に認証されているため、追加のセキュリティ レベルを提供しながら、妨げのないデータ フローのパスを確保できます。図 7 に、Globus を使用した場合のトラフィック ステアリングのプロセスを示します。

図 7.     Globus のデータ フロー通知と入力を使用した、IDS およびファイアウォールを迂回する大量のデータ フローのステアリング



図 8 に、すべてのトラフィックをデフォルトでファイアウォール経由で送信するセキュリティ重視のシナリオを示します。Globus で大量のフローが開始されると、それらのフローがファイアウォールを迂回して送られ、ファイアウォールによって発生する可能性があるパフォーマンスの低下が回避されます。システムで大量のデータ フローを検出できないと、ファイアウォールがバイパスされず、転送のパフォーマンスに影響することがありますが、組織のセキュリティ ポスチャには影響しません。

図 8.     Globus のデータ フロー通知を使用した、ファイアウォールを迂回する大量のデータ フローのステアリング



まとめ

サイエンス DMZ は、科学データの大規模なフローを世界中でやり取りするのに欠かせないアーキテクチャです。しかし、従来のネットワーク プロトコルおよびハードウェアではセキュアな実装は困難でした。SDN は、このようなサイエンス DMZ のセキュリティとパフォーマンスを向上させる方法として注目されています。このソリューションでは、Cisco Open SDN Controller、REST API、および OpenFlow や NETCONF のようなプロトコルの形で SDN を使用していますが、これは SDN が価値を提供する部分でのみ SDN を採用していることを意味します。このサイエンス DMZ ソリューションのその他の部分では、Splunk、BGP、従来の境界ルーティング設計、および Cisco Nexus スイッチ、ASR ルータ、ASA ファイアウォールなどのプラットフォームといった、実証済みの製品とテクノロジーを使用しています。

このソリューションでは、Python コードを少しだけ使って、ブロッキングとステアリングという速度およびセキュリティの向上に必要な 2 つの機能を実装しています。Splunk を利用することで、ほぼあらゆるソースからイベント データを収集し、それらのイベントを関連付け、Open SDN Controller で特定のインターフェイス(REST API)を使用することが可能になっています。これにより、コントローラで物理ネットワーク デバイスに対する適切なアクションを開始できます。このモデルは、コンポーネント間のインターフェイスが明確で、柔軟性と拡張性に優れています。

サイエンス DMZ にはトラフィックのブロッキングとステアリングが必要ですが、これらのアクションは、現在のネットワークが直面する他のさまざまな課題にも広く応用できます。イベント ベースのアプローチで、スケーラブルに特定のコンポーネントを使用することで、このソリューションを他の多くのニーズにも対応させることができます。


関連情報