(57)【要約】  データセンターのネットワークトラフィックを監視して、セキュリティの脅威を報告するのに用いられるシステム、方法、及び装置が説明される。例えば、１つの実施形態が、セキュリティシステム内のマイクロサービスの階層をスケールアウトする。具体的には、当該実施形態は、そのようなセキュリティシステム内のマイクロサービスの階層をスケールアウトすることを要求し、第１の階層の新規のマイクロサービスを作成し、新規のマイクロサービスと第２の上位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成し、新規のマイクロサービスと第３の下位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成し、第１の階層に対する負荷分散決定に新規のマイクロサービスを含めるように第３のレベルの階層のマイクロサービスを構成する。
2019523949.tif 000002
【特許請求の範囲】
【請求項１】
第１の階層の新規のマイクロサービスを作成する段階と、
前記新規のマイクロサービスと第２の上位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、
前記新規のマイクロサービスと第３の下位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、
前記第１の階層に対する負荷分散決定に前記新規のマイクロサービスを含めるように前記第３の下位レベルの階層の前記マイクロサービスを構成する段階と
を備えた、コンピュータ実装方法。
【請求項２】
前記新規のマイクロサービスは既存のマイクロサービスによって作成される、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記既存のマイクロサービスはコンフィギュレーションマイクロサービスである、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記新規及び既存のマイクロサービスはバックプレーンを介して通信する、請求項２又は３に記載のコンピュータ実装方法。
【請求項５】
前記新規のマイクロサービスは前記データプレーン接続を用いるように構成される、請求項２から４のいずれか一項に記載のコンピュータ実装方法。
【請求項６】
前記新規のマイクロサービスを作成する前に、前記新規のマイクロサービスと同じ階層レベルのマイクロサービスが存在する、請求項５に記載のコンピュータ実装方法。
【請求項７】
前記負荷分散決定は、前記第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する、請求項１から６のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
データプレーン接続がバックプレーンによる通信によって構成される、請求項１から７のいずれか一項に記載のコンピュータ実装方法。
【請求項９】
バックプレーン及びデータプレーンは管理されたネットワークを含む、請求項１から８のいずれか一項に記載のコンピュータ実装方法。
【請求項１０】
ある方法をハードウェアプロセッサに実行させるためのプログラムであって、
前記方法は、
第１の階層の新規のマイクロサービスを作成する段階と、
前記新規のマイクロサービスと第２の上位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、
前記新規のマイクロサービスと第３の下位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、
前記第１の階層に対する負荷分散決定に前記新規のマイクロサービスを含めるように前記第３の下位レベルの階層の前記マイクロサービスを構成する段階と
を備える、プログラム。
【請求項１１】
前記新規のマイクロサービスは既存のマイクロサービスによって作成される、請求項１０に記載のプログラム。
【請求項１２】
前記既存のマイクロサービスはコンフィギュレーションマイクロサービスである、請求項１１に記載のプログラム。
【請求項１３】
前記新規及び既存のマイクロサービスはバックプレーンを介して通信する、請求項１１又は１２に記載のプログラム。
【請求項１４】
前記新規のマイクロサービスは前記データプレーン接続を用いるように構成される、請求項１１から１３のいずれか一項に記載のプログラム。
【請求項１５】
前記新規のマイクロサービスを作成する前に、前記新規のマイクロサービスと同じ階層レベルのマイクロサービスが存在する、請求項１４に記載のプログラム。
【請求項１６】
前記負荷分散決定は、前記第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する、請求項１０から１５のいずれか一項に記載のプログラム。
【請求項１７】
データプレーン接続がバックプレーンによる通信によって構成される、請求項１０から１６のいずれか一項に記載のプログラム。
【請求項１８】
命令を実行するハードウェアプロセッサと、
前記ハードウェアプロセッサに結合されたメモリと
を備え、
前記メモリは、前記ハードウェアプロセッサによって実行された場合に、
第１の階層の新規のマイクロサービスを作成することと、
前記新規のマイクロサービスと第２の上位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成することと、
前記新規のマイクロサービスと第３の下位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成することと、
前記第１の階層に対する負荷分散決定に前記新規のマイクロサービスを含めるように前記第３の下位レベルの階層の前記マイクロサービスを構成することと
を行わせる命令を格納する、装置。
【請求項１９】
前記新規及び既存のマイクロサービスは仮想バックプレーンを介して通信する、請求項１８に記載の装置。
【請求項２０】
前記負荷分散決定は、前記第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する、請求項１８又は１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明される実施形態は概して、ネットワークセキュリティに関する。具体的には、説明される実施形態は概して、ネットワークセキュリティマイクロサービスを負荷に基づいて動的に自動スケーリングするアーキテクチャに関する。
【背景技術】
【０００２】
現代のデータセンターを標的とした、ネットワークセキュリティの脅威の広さと複雑性は、広い範囲にわたっており常に増え続けている。ネットワークセキュリティの脅威をいくつか挙げると、そのリストには、ワーム、スプーフィング、スニッフィング、ハイジャック、トロイの木馬、サービス拒否（ＤｏＳ）攻撃、及びフィッシングが含まれる。
【０００３】
ネットワークセキュリティ機器をデータセンター全体にわたってデプロイすることに頼るネットワークセキュリティソリューションは、複数の欠点に悩まされている。高いトラフィック量を監視するのに必要とされる複数のそのような機器を設けることは、経済的にも管理上も実現可能とは言えないかもしれない。これらの機器の数を増やしたり減らしたりすることも、複雑で時間がかかることがある。これらの機器がデータセンターネットワークの様々な構成要素にアクセスすることを可能にするのに十分なネットワークポート密度を提供することも、実現可能とは言えないかもしれない。これらの機器を最新の脅威シグネチャに応じて絶えず刷新し続けることも、難しいかもしれない。そのような機器を、特に、例えばクラウドコンピューティング環境を保護するためにデプロイするのは難しいかもしれない。
【図面の簡単な説明】
【０００４】
本明細書に開示される実施形態の様々な利点は、以下の明細書及び添付の特許請求の範囲を読み、以下の図面を参照することによって、当業者には明らかになるであろう。
【０００５】
【図１】ネットワークセキュリティシステムのマイクロサービスをメモリからロードし、それらのマイクロサービスをプロセッサで実行するためのコンピュータハードウェアを例示するブロック図である。
【０００６】
【図２】データセンター内にセキュリティサービスをデプロイするための方法に関する一実施形態を例示している。
【０００７】
【図３】物理サーバ又は物理セキュリティ機器をホストするためのデータセンターラックを含むデータセンターの一実施形態を例示している。
【０００８】
【図４】仮想セキュリティ機器の一実施形態を例示している。
【０００９】
【図５】物理サーバ又は仮想セキュリティ機器をホストするデータセンターラックを含むデータセンターの一実施形態を例示している。
【００１０】
【図６】３倍のスケールアウト要件を満たすようにスケールアウトしたデータセンターの一実施形態を例示している。
【００１１】
【図７】本発明の一実施形態に従って３倍のスケールアウト要件を満たすことを例示している。
【００１２】
【図８】一実施形態に従って任意のスケールアウト要件を満たすことを例示している。
【００１３】
【図９】一実施形態に従ってマイクロサービスをスケールアウトすることにより、任意のスケールアウト要件を満たすことを例示している。
【００１４】
【図１０】セキュリティシステム内のマイクロサービスの階層をスケールアウトする方法を例示するフロー図である。
【００１５】
【図１１】セキュリティシステム内のマイクロサービスの階層をスケールインする方法を例示するフロー図である。
【００１６】
【図１２】セキュリティシステム内のマイクロサービスの階層を最適化する方法を例示するフロー図である。
【００１７】
【図１３】１つの実施形態によるネットワークセキュリティシステムを例示する別のブロック図である。
【００１８】
【図１４】一実施形態によるネットワークセキュリティシステムを例示する別のブロック図である。
【００１９】
【図１５】いくつかの実施形態によるマイクロサービスをサポートするのに用いられる複数の異なるデータベースタイプを例示している。
【００２０】
【図１６】一実施形態に従って、管理プレーンからネットワークセキュリティシステムの全てのマイクロサービスに送られる制御パケットを例示するフロー図である。
【００２１】
【図１７】一実施形態に従って、脅威イベントへのネットワークセキュリティシステムの対応を例示するブロックフロー図である。
【００２２】
【図１８】一実施形態に従って、セキュリティポリシーを受け取り、セキュリティポリシーをセキュリティ言語に変換し、セキュリティポリシーをバイナリにコンパイルし、セキュリティポリシーを各マイクロサービスにロードすることを例示するフロー図である。
【００２３】
【図１９】一実施形態に従って、サードパーティのセキュリティツールとインタフェースで接続したネットワークセキュリティシステムを例示するブロック図である。
【００２４】
【図２０】一実施形態に従って、データパケットのマイクロサービスキューへのロードスタックを例示するフロー図である。
【００２５】
【図２１】一実施形態によるシステム内データ通信を例示するブロック図である。
【００２６】
【図２２】一実施形態による管理マイクロサービス及びデータパスマイクロサービスを含むネットワークセキュリティシステムのブロック図を例示している。
【００２７】
【図２３】デプロイメント仕様に従って、ネットワークセキュリティシステムをインストールして構成し、ネットワークセキュリティをデータセンターに提供するプロセスを例示するフロー図である。
【００２８】
【図２４】一実施形態に従って、ネットワークセキュリティシステムを通るデータフローを処理するプロセスを例示するフロー図である。
【００２９】
【図２５】一実施形態に従って、実行時にネットワークセキュリティシステムの電源を切ることなく、マイクロサービスセキュリティポリシーをアップグレードするプロセスを例示するフロー図である。
【００３０】
【図２６】一実施形態に従って、ネットワークセキュリティシステムの電源を切ることなく、負荷状態に応じてマイクロサービスを動的にスケールアウトするプロセスを例示するフロー図である。
【００３１】
【図２７】一実施形態に従って、ネットワークセキュリティシステムとローカルに又はリモートに対話形式でやり取りするプロセスを例示するフロー図である。
【発明を実施するための形態】
【００３２】
以下の説明では、多数の具体的な詳細が記載される。しかしながら、本開示の実施形態はこれらの具体的な詳細がなくても実施され得ることを理解されたい。他の例では、この説明の理解を不明瞭にしないように、回路、構造、及び技術が詳細に示されてはいないことがある。
【００３３】
本明細書において、「１つの実施形態」、「一実施形態」、「代表的な実施形態」などへの言及は、説明された実施形態が特定の特徴、構造、又は特性を含み得るが、その特定の特徴、構造、又は特性を全ての実施形態が必ずしも含む必要がないことを示している。さらに、そのような表現は必ずしも同じ実施形態を指してはいない。さらに、特定の特徴、構造、又は特性が一実施形態に関連して説明される場合、他の実施形態に関連してそのような特徴、構造、又は特性に影響を与えることは、明示的に記載されているかどうかにかかわらず、当業者の知識の範囲内であることを申し述べておく。
【００３４】
コンフィギュレーション、トラフィック負荷に応じたスケールアウト若しくはスケールイン、容易なデプロイメント、及び／又は新規のセキュリティポリシーによる自動更新を可能にする、データセンターネットワークセキュリティ検知及び保護に関する実施形態が本明細書で詳述される。
【００３５】
図２は、一実施形態による、データセンターへの各セキュリティサービスのデプロイメントを例示する。データセンターは、セキュリティサービスの階層を物理サーバに提供するデプロイされたセキュリティ機器で構成される。図示するように、データセンターラック２０２が、物理セキュリティ機器２０４と３つの物理サーバ２０６、２１０、及び２１４とを含み、これらの物理サーバは仮想アプリケーションサーバ２０８、２１２、及び２１６を含み、各仮想アプリケーションサーバは、仮想アプリケーション１〜ｎをホストする。物理セキュリティ機器２０４は、限定されないが、インタフェースサービス２３２、ＴＣＰ／ＩＰ（Ｌ３−Ｌ４プロトコル）サービス２３０、ＳＳＬ／ＴＬＳ（暗号化／復号）サービス２２８、ＤＰＩ（ディープパケットインスペクション）サービス２２６、ＮＯＸ（ネットワークオブジェクトエクストラクション）サービス２２４、ＤＬＰ（データ漏洩防止）サービス２２２、及びコンフィギュレーションサービス２２０を含むサービス２１８を提供する。電子メール処理サービス、侵入検知サービス、及び他のサービスなどの追加サービスがデプロイされてもよい。
【００３６】
図３は、データセンターラックを含むデータセンターの一実施形態に関する別の説明図である。図示するように、データセンター３００は、可変数のデータセンターラックを含むが、示されているのは２つ、３０２及び３０４だけである。例示するようにデータセンターラック３０２は、物理セキュリティ機器３０６、並びにそれぞれ３１０、３１４、及び３１８とラベル付けされた３つの物理サーバＡ、Ｂ、及びＣを含む。同様に、データセンターラック３０４は、物理セキュリティ機器３０８、並びに３１２、３１６、及び３２０とラベル付けされた３つの物理サーバＸ、Ｙ、及びＺを含む。
【００３７】
セキュリティサービスの接続は、実行される逐次分析と、上位レベルの分析の前に下位レベルの分析を行う一般要件とを考慮すると、セキュリティ階層であると考えられ得る。この概念は、ネットワークスイッチ及び他の機器が上位レベル（例えばＩＰ）に進む前にＯＳＩスタックの１つのレベル（例えばイーサネット（登録商標））で処理を行うという要件と同様である。一例として、ＴＣＰ／ＩＰ処理がアプリケーションによって運ばれるストリームをリアセンブルする。ＮＯＸ処理は、リアセンブルされたストリームの出力に依存し、一般に単一のパケットを処理しない。同様に、暗号化された又は圧縮されたストリームは、ＮＯＸ処理の前に、それぞれ復号されるか又は解凍されなければならない。同じソースデータに対して行われ得る複数の分析は、同時に行われる必要も、任意の特定の順序で行われる必要もない。
【００３８】
このセキュリティ階層の一般特性は、階層構造の各レイヤが下位の階層レベルから提供されたデータを受け入れ、受け入れたデータを処理して、処理されたデータを階層構造の上位レベルに送るというものである。いくつかの実施形態では、階層構造の各レベルで、ルールによって、特定のネットワークトラフィックがセキュリティポリシーに従っているか又は違反しているかを判定することと、「承諾」応答又は「拒否」応答を下位レベルの階層に返すことによって処理を終了することとが行われ得る。そのようなルールが構成されてよく、また複数のポリシーにグループ化されてもよい。いくつかの状況（暗号化が用いられていないことが検知されたなど）の下では、階層構造のレイヤを飛び越えて、階層構造の上位レベルにデータが提供されてよい。一例として、２つのネットワーク間の暗号化されたトラフィックを拒否するようにルールが構成されてよい。リアセンブルされたＴＣＰ／ＩＰパケットの処理結果が、暗号化されたペイロードの存在を示す場合、「拒否」メッセージがＴＣＰ／ＩＰレイヤに伝送されて、トラフィックが中断されることになる。
【００３９】
図４は、一実施形態による、データセンターラックへの各セキュリティサービスのデプロイメントを例示する。仮想セキュリティ機器４００のデータセンターラック４０２は、セキュリティサービスの階層を物理サーバに提供するデプロイされたセキュリティ機器で構成される。図示するように、データセンターラック４０２は、仮想セキュリティ機器１（４０６）と仮想アプリケーションサーバＡ（４０８）とを提供する物理サーバ４０４を含む。データセンターラック４０２はまた、仮想アプリケーションサーバＢ（４１２）を提供する物理サーバＢ（４１０）と、仮想アプリケーションサーバＣ（４１６）を提供する物理サーバＣ（４１４）とを提供する。物理サーバＡ（４０４）は、限定されないが、インタフェースサービス４３２、ＴＣＰ／ＩＰ（Ｌ３−Ｌ４プロトコル）サービス４３０、ＳＳＬ／ＴＬＳ（暗号化／復号）サービス４２８、ＤＰＩ（ディープパケットインスペクション）サービス４２６、ＮＯＸ（ネットワークオブジェクトエクストラクション）サービス４２４、ＤＬＰ（データ漏洩防止）サービス４２２、及びコンフィギュレーションサービス４２０を含むセキュリティ機器サービス４１８を提供する。電子メール処理サービス、侵入検知サービス、及び他のサービスなどの追加サービスもデプロイされてよい。
【００４０】
図５は、物理サーバ又は仮想セキュリティ機器をホストするデータセンターラックを含むデータセンターの一実施形態である。図示するように、データセンター５００は複数のデータセンターラック５０２及び５１２を含み、これらのデータセンターラックは、物理サーバ５０４、５０８、５１０、５１４、５１８、及び５２０を含む。物理サーバ５０４及び５１４は仮想セキュリティ機器５０６及び５１６を含むように示されている。デプロイされたセキュリティ機器が、物理機器であっても、又はデータセンター内のサーバ上にデプロイされた仮想機器であってもよい。いずれの場合でも、機器内で実行されるセキュリティサービスの階層は、その機器自体の領域内でスケーリングする。結果として、需要の増加を満たすようにセキュリティサービスをスケーリング（スケールアウト）することは、１つ又は複数の追加のセキュリティ機器（セキュリティ専用の追加の物理サーバ、又は仮想セキュリティ機器を含む物理サーバのいずれか）をデプロイすることを意味する。これらの複数の機器はインタフェースレベル（ルーティング又は物理インタフェース）で負荷分散される。これは、ＩＰアドレス範囲などのレイヤ２〜４の特性に基づいて、トラフィックが複数の機器の間で分割されることを意味する。各機器にはコンフィギュレーションインタフェースがあるので、この複数の機器の全てのコンフィギュレーションは同期されて、一貫性が保たれている。
【００４１】
追加機器を加えることによってセキュリティサービスをスケーリングすると、データセンターの管理に問題が生じることがある。例えば、追加性能を必要とするサービス又は階層レベルだけではなく、機器全体を複製するので、データセンターのリソースが無駄になる。
【００４２】
図６は、３倍のスケールアウト要件を満たすようにスケールアウトしたデータセンターの一実施形態を例示している。図示するように、セキュリティ機器６００は、コンフィギュレーションサービス６０２、ＤＬＰサービス６０４、ＮＯＸサービス６０６、ＤＰＩサービス６０８、ＳＳＬ／ＴＬＳサービス６１０、ＴＣＰ／ＩＰサービス６１２、及びインタフェース６１４を含むようにプロビジョニングされている。例示するように、３倍のスケールアウト要件は、追加セキュリティ機器６１６と第２の追加セキュリティ機器６３２とをプロビジョニングすることによって満たされる。追加セキュリティ機器６１６は、コンフィギュレーションサービス６１８、ＤＬＰサービス６２０、ＮＯＸサービス６２２、ＤＰＩサービス６２４、ＳＳＬ／ＴＬＳサービス６２６、ＴＣＰ／ＩＰサービス６２８、及びインタフェース６３０を含み、第２の追加セキュリティ機器６３２は、コンフィギュレーションサービス６３４、ＤＬＰサービス６３６、ＮＯＸサービス６３８、ＤＰＩサービス６４０、ＳＳＬ／ＴＬＳサービス６４２、ＴＣＰ／ＩＰサービス６４４、及びインタフェース６４６を含む。
【００４３】
残念ながら、図６に例示するスケールアウトには複数の欠点があり得る。例えば、複数のマイクロサービス６２０、６２２、６２６、６２８、６３６、６３８、６４２、及び６４４がプロビジョニングされているが使用されないので、これらのリソースが無駄になり得る。したがって、２つの余分なＤＬＰサービス、ＮＯＸサービス、ＳＳＬ／ＴＬＳサービス、及びＴＣＰ／ＩＰサービスのリソースが、使用されるように構成されているが無駄になる。また、３つのコンフィギュレーションサービス６０２、６１８、及び６３４は、同期して状態情報を共有する必要がある。さらに、図６に従ってスケールアウトされたシステムの負荷分散がインタフェースレベルで行われる。これが望ましくないのは、トラフィックストリームをインタフェースレベルでパーティションして、セキュリティサービスの負荷のバランスをもたらすことは不可能な場合が多いからである。一例として、トラフィックストリームを３分の１ずつ分割しても、セキュリティサービスの特定のレイヤによる著しく多くの処理を必要とする特定の３分の１をもたらすことがある。トラフィックの各部分が必要とする処理量も絶えず変化し得る。
【００４４】
物理機器の挿入及び除去は概して、急速に変化する需要又は変化するネットワークトラフィックプロファイルに対して、この形態のスケーリングを不向きにする複雑なプロセスである。全ての機器コンフィギュレーションの一貫性を維持することは、データセンターの管理者にさらなる負担を負わせる。複数の機器の負荷分散をどのように構成するかを決定することは、各セキュリティサービスの階層における異なるトラフィックストリームの需要が容易に認識できないかもしれないので、可能ではないかもしれない。例えば、暗号化されたどのトラフィックストリームがより多くのＤＬＰサービスを必要としているかを、これらのストリームを最初に復号することなく予測するのは不可能であるが、負荷分散決定は復号が行われる前になされる。
【００４５】
図７は、本発明の一実施形態に従い、マイクロサービスを用いて、３倍のスケールアウト要件を満たすことを例示している。この例では、単一のマイクロサービス（ＤＰＩ）だけが、追加リソースを必要としている。図示するように、ＤＬＰマイクロサービス７０４、ＮＯＸマイクロサービス７０６、ＤＰＩマイクロサービス７０８、ＳＳＬ／ＴＬＳマイクロサービス７１０、ＴＣＰ／ＩＰマイクロサービス７１２、及びセグメントマイクロサービス７１４を含むスケーラブルなマイクロサービスアーキテクチャ７００を利用して、セキュリティサービス階層の各レイヤはスケーリングされ、次の階層レベルへの処理データの供給を負荷分散するように個別に構成される。図示するように、コンフィギュレーションマイクロサービス７０２及びＤＬＰマイクロサービス７０４はそれぞれ、マイクロサービス１及び２として物理サーバＡ（７２０）で実行されるように割り当てられている。ＮＯＸマイクロサービス７０６は、マイクロサービス３として物理サーバＢ（７２２）で実行されるように割り当てられている。ＤＰＩマイクロサービス７０８は３倍にスケールアウトされており、この例では、マイクロサービス４〜６として物理サーバＢ（７２２）及び物理サーバＣ（７２４）で実行されるように割り当てられている。スケーラブルなセキュリティアーキテクチャの残りのマイクロサービスは、物理サーバＸ（７２８）、物理サーバＹ（７３０）、及び物理サーバＺ（７３２）を含むデータセンターラック７１８及び７２６によってデータセンター７１６に実装されているものとして示されている。コンフィギュレーションマイクロサービス７０２は、セキュリティサービスを受け取る各物理サーバにソフトウェアコンポーネントとしてデプロイされるコンフィギュレーションバックプレーン及びデータプレーンを作成する。この作成プロセスは、ルーティングルールを構成し、ネットワークアドレススペース（サブネットなど）を予約し、仮想環境を構成して、セキュアなサーバの内外でネットワーク通信のゲートウェイとして、予約されたアドレススペースの一部を利用するという形態を取る。したがって、バックプレーン及びデータプレーンは両方とも、セキュリティシステムによって管理される仮想ネットワークとみなされてよい。次に、全てのセキュリティマイクロサービスはこれらのネットワークを利用して、互いの間でパケット、コンテンツ情報、状態情報、及び他の情報を伝送してよい。バックプレーン及びデータプレーンの特性は、セキュリティシステムの外部からのパケットトラフィックを拒否し、物理サーバ及び仮想環境のコンフィギュレーションにかかわらず、マイクロサービス間で情報をルーティングするように構成される。
【００４６】
図８は、一実施形態に従って任意のスケールアウト要件を満たすことを例示している。図示するように、スケーラブルなセキュリティアーキテクチャ８００は、コンフィギュレーションマイクロサービス８０２、ＤＬＰマイクロサービス８０４（２倍のスケールアウトを必要とする）、ＮＯＸマイクロサービス８０６、ＤＰＩマイクロサービス８０８（３倍のスケールアウトを必要とする）、ＳＳＬ／ＴＬＳマイクロサービス８１０、ＴＣＰ／ＩＰマイクロサービス８１２（３倍のスケールアウトを必要とする）、及びセグメントマイクロサービス８１４を含む。図示するように、コンフィギュレーションマイクロサービス８１６は、最下位の階層から最上位の階層まで、１１個のマイクロサービスをプロビジョニングし（８１８、８２０、８２２、８２４、８２６、及び８２８）、これらのマイクロサービスをバックプレーンを介して互いに通信するように構成する。
【００４７】
図９は、一実施形態に従ってマイクロサービスをスケールアウトすることにより、任意のスケールアウト要件を満たすことを例示している。図示するように、スケーラブルなセキュリティアーキテクチャ９００は、コンフィギュレーションマイクロサービス９０２、ＤＬＰマイクロサービス９０４（２倍のスケールアウトを必要とする）、ＮＯＸマイクロサービス９０６、ＤＰＩマイクロサービス９０８（３倍のスケールアウトを必要とする）、ＳＳＬ／ＴＬＳマイクロサービス９１０、ＴＣＰ／ＩＰマイクロサービス９１２（３倍のスケールアウトを必要とする）、及びセグメントマイクロサービス９１４を含む。図示するように、コンフィギュレーションマイクロサービス９１６は、最下位の階層から最上位の階層まで、１１個のマイクロサービスをプロビジョニングし（９１８、９２０、９２２、９２４、９２６、及び９２８）、これらのマイクロサービスをデータプレーン９３０と接続するように構成する。
【００４８】
異なるセキュリティサービスの性能をスケーリングすると、通常、バランスを欠くことになる。すなわち、ほとんどの場合、セキュリティ階層の異なるレベルの性能要件は異なり、１つのレベルの要件の増加によって、相当する性能増加要件が伴うことは稀である。
【００４９】
図１０は、セキュリティシステム内のマイクロサービスの階層の中のマイクロサービスをスケールアウトする方法を例示するフロー図である。通常、この方法の実施形態は、ハードウェアプロセッサでコンフィギュレーションマイクロサービスを実行することによって行われる。しかしながら、他のマイクロサービス又はアクターが、この方法の実施形態の１つ又は複数の態様を実行し得る。例示するように、コンフィギュレーションマイクロサービスが、特定の階層の既存のマイクロサービスが過剰なリソースを消費しているか、又はそうでなければセキュリティシステムの性能を制限していることを検知すると、特定のセキュリティサービス（階層）をスケールアウトする。検知方法は、マイクロサービスの負荷及びレイテンシの統計値、仮想サーバ及び物理サーバの性能特性、又は他の利用可能な指標を監視することと、これらの監視指標を閾値と比較して評価することとを含み得る。１００４で、コンフィギュレーションマイクロサービスは次に、サーバにおいて特定の階層のセキュリティサービスを行うように構成された新規のマイクロサービスを初期設定する。１００６で、コンフィギュレーションマイクロサービスは、新規のマイクロサービスと上位の階層レベル及び下位の階層レベルのマイクロサービスとの間のデータ接続を有効にするようにデータプレーンを構成する。１００８で、コンフィギュレーションマイクロサービスは、下位の階層レベルのマイクロサービスを、上位レベルのセキュリティサービスへの負荷分散を目的に、新規のマイクロサービスを選択メカニズムに含めるように構成する。
【００５０】
図１１は、セキュリティシステム内のマイクロサービスの階層の中のマイクロサービスをスケールインする方法を例示するフロー図である。通常、この方法の実施形態は、ハードウェアプロセッサでコンフィギュレーションマイクロサービスを実行することによって行われる。しかしながら、他のマイクロサービス又はアクターが、この方法の実施形態の１つ又は複数の態様を実行し得る。１１０４で、コンフィギュレーションマイクロサービスは、第１の階層の第１の特定のセキュリティサービス（階層）を選択してスケールインする。一実施形態において、コンフィギュレーションマイクロサービスは、特定の階層の既存のマイクロサービスが十分に利用されていないか、又はそうでなければセキュリティシステム内のリソースを無駄にしていることを検知すると、特定のセキュリティサービスを選択する。１１０６で、コンフィギュレーションマイクロサービスは、第２の下位の階層レベル（特定のセキュリティサービスに対して）のマイクロサービスを、上位レベルのセキュリティサービスへの負荷分散を目的に、選択メカニズムから特定のマイクロサービスを除外するように構成する。１１０８で、コンフィギュレーションマイクロサービスは、特定のマイクロサービスと上位の階層レベル及び下位の階層レベルのマイクロサービスとの間のデータ接続を無効にする（又は除去する）ようにデータプレーンを構成する。１１１０で、コンフィギュレーションマイクロサービスは特定のマイクロサービスを終了する（又は終わらせる）。
【００５１】
図１２は、セキュリティシステム内のマイクロサービスの階層を最適化する方法を例示するフロー図である。通常、この方法の実施形態は、ハードウェアプロセッサでコンフィギュレーションマイクロサービスを実行することによって行われる。しかしながら、他のマイクロサービス又はアクターが、この方法の実施形態の１つ又は複数の態様を実行し得る。１２０４で、第１の階層の第１のマイクロサービスが選択される。一実施形態において、特定のセキュリティマイクロサービスのリソース利用効率を高めるために、第１の階層の選択された第１のマイクロサービスが動作しているサーバが（メモリ、ＩＯ、ディスク、又は他の利用指標によって）当該マイクロサービスをサポートするのに適していないことを、コンフィギュレーションマイクロサービスが検知する。１２０６で、コンフィギュレーションマイクロサービスは、下位の階層レベル（特定のセキュリティサービスに対して）のマイクロサービスを、上位レベルのセキュリティサービスへの負荷分散を目的に、選択メカニズムから特定のマイクロサービスを無効にするように構成する。１２０８で、コンフィギュレーションマイクロサービスは、当該マイクロサービスを別のサーバに移動させる。１２１０で、コンフィギュレーションマイクロサービスは、データプレーンコンフィギュレーションを変更して、新規のサーバを反映させる。１２１２で、コンフィギュレーションマイクロサービスは、下位の階層レベルのマイクロサービスを、上位レベルのセキュリティサービスへの負荷分散を目的に、移動したマイクロサービスを選択メカニズムに含めるように構成する。このプロセスは１２１４で終わる。
【００５２】
［ネットワークセキュリティシステム］
図１は、複数のマイクロサービスを用いるスケーラブルなマイクロサービスアーキテクチャのコンポーネントの一実施形態を例示するブロック図である。ネットワークセキュリティシステムのマイクロサービスはメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリ及び／又はディスクなどの不揮発性メモリ）に格納されており、１つ又は複数のハードウェアプロセッサ若しくはプロセッサコアによって実行される。特定のセキュリティサービスを行うための実行可能命令で構成される、ネットワークセキュリティシステムのマイクロサービスは、利用可能な物理サーバ全体のコンフィギュレーションに基づいてデプロイされる。通常、各マイクロサービスは仮想シャーシ１０６のバックプレーンを介してコンフィギュレーション及びタスクを受け取り、ステータス、統計値、及び他の情報をバックプレーンに返す。マイクロサービスの一般的な特性は、他のマイクロサービスからのメモリの分離及び保護である。この方式では、個々のマイクロサービスが、他のマイクロサービスに大きな影響を与えることなく、別の物理サーバに移動するか又は異常に終了することがある。
【００５３】
セキュリティシステムによって処理されたデータは、あるマイクロサービスから別の（上位の階層の）マイクロサービスにデータプレーンを用いて転送される。いくつかの実施形態において、そのような転送の間に、下位のマイクロサービスは（コンフィギュレーション、現在の統計値、及び他の情報に基づいて）上位階層のマイクロサービスのどれを利用するかに関しての決定を行う。そのような決定は、負荷分散決定を構成し、確実に上位階層のマイクロサービスが効率的に利用されるようにし得る。他の実施形態では、どのマイクロサービスを利用するかについての決定は、より中心のエンティティによって行われる。
【００５４】
例示するように、ネットワークセキュリティシステムはハードウェアプロセッサ１０２（中央演算処理装置（ＣＰＵ）又はＣＰＵの１つ若しくは複数のコア、画像処理装置（ＧＰＵ）又はＧＰＵの１つ若しくは複数のコア、あるいは加速演算処理装置（ＡＰＵ）又はＡＰＵの１つ若しくは複数のコアなど）を利用して、メモリ１０４（例えば、ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリ及び／又はディスクなどの不揮発性メモリ）に格納されたマイクロサービスを実行する。ネットワークインタフェース１２８（例えば、有線又は無線のファブリック又は相互接続）がデータセンターと通信するための手段を提供する。ネットワークセキュリティシステムが、以下でさらに説明されるように、マイクロサービスを用いてトラフィックを検査し、脅威を検知し、また別の方法でデータセンターを保護し得る。
【００５５】
上記の能力を提供するネットワークセキュリティシステムの実施形態が、ここでより詳細に論じられる。ネットワークセキュリティシステムがデータセンターにセキュリティを追加するか、又はデータセンターのセキュリティを強化する。一実施形態において、ネットワークセキュリティシステムがシードソフトウェアアプリケーションの形態で提供される（例えばダウンロードされる）。シードソフトウェアアプリケーションは、ネットワークセキュリティシステムのマイクロサービスをデータセンターのホストにインスタンス化する。本明細書で使用されるとき、マイクロサービスコンテナとは、マイクロサービスが動作する場所、最も顕著には仮想マシンのことを指す。ネットワークセキュリティシステムは、デプロイされると、（先に詳述したように）利用可能な処理能力１０２、メモリ１０４、及びネットワーク接続１２８を利用する。多くのシナリオにおいて、既存のハードウェアを用いて及び／又は特定の機能用の特殊なラックデバイスを購入する必要もなく、セキュリティが追加／構成され得る。シードソフトウェアアプリケーションは、多岐にわたるホスト、すなわち、低速若しくは高速のホスト、低コスト若しくは高コストのホスト、汎用品若しくはカスタマイズ品のホスト、地理的に分散されたホスト、冗長方式の一部であるホスト、又は定期的なバックアップを行うシステムの一部であるホストのうちのいずれかにインストールされ得る。
【００５６】
以下でもさらに説明されるが、いくつかの実施形態において、ネットワークセキュリティシステムは、起動すると、物理ネットワークインタフェース１２８を利用してデータセンターを探索し、存在するネットワークセグメントの種類、様々なネットワークセグメントのセキュリティ要件、及び利用可能なホストやハードウェアリソースの種類、並びに必要に応じて追加のコンフィギュレーション情報を見つける。一実施形態において、データセンター自体には、ハイパーバイザを備えたいくつかのマシン、又は物理ハードウェアが含まれ、またネットワークセキュリティシステム１００はマイクロサービスを提供して、内部の仮想マシン又は物理ハードウェアのうち１つ又は複数と通信し、それらを保護する。いくつかの実施形態において、データセンターディスカバリを行った後に、ネットワークセキュリティシステムは次に、ユーザインタフェースを通じて、又は既存の企業用管理ソフトウェアとの接続によってのいずれかで選択される利用可能なセキュリティツールを提供又は提案する。１つの実施形態において、ネットワークセキュリティシステムは、構成されると、「インライン」でデプロイされ、データセンターに向かう実質的に全てのパケットを受け取り、ネットワークセキュリティシステムが疑わしいトラフィックをデータセンターに到達する前に捕捉して阻止することを可能にする。データセンターを理解すると、ネットワークセキュリティシステム１００はマイクロサービスをデプロイして、トラフィックを進入時だけではなくデータセンター全体にわたって検査することが分かる。いくつかの実施形態において、ネットワークセキュリティシステムが「コピーのみ」のコンフィギュレーションでデプロイされ、この場合、ネットワークセキュリティシステムは、トラフィックを監視し、脅威を検知してアラートを発するが、トラフィックをデータセンターに到達する前に捕捉することはない。
【００５７】
再度図１を参照すると、図示されていないが、１つの実施形態におけるハードウェアプロセッサ１０２は１つ又は複数のレベルのキャッシュメモリを含む。図示するように、メモリ１０４は内部にマイクロサービス１０８、１１０、１１２、１１４、１１６、１１８、１２０、及び１２２並びに仮想シャーシ１０６を格納している。仮想シャーシ１０６は、それ自体がマイクロサービスである。一実施形態において、マイクロサービスはサイズが小さく、比較的少数の命令で構成されている。一実施形態において、マイクロサービスは互いに独立している。例示するように、マイクロサービス１０８〜１２２は、メモリからロードされてハードウェアプロセッサ１０２によって実行されるマイクロサービスである。これらのマイクロサービスは、データパスセキュリティマイクロサービス、例えば、ＴＣＰ／ＩＰ、ＳＳＬ、ＤＰＩ、又はＤＰＬ検査マイクロサービスを含み、これについては、図１４、図１７、及び図１９に関して以下でさらに説明される。マイクロサービスは管理マイクロサービスも含んでよく、図１４、図１７、及び図１９に関して以下でさらに説明される例をいくつか挙げると、例えば、マイクロサービスを管理するためのシャーシコントローラ、コンフィギュレーションマイクロサービス、インフラストラクチャディスカバリマイクロサービス、データを格納するためのデータベースマイクロサービス、及び外部のセキュリティクラウドからポリシーの最新情報を受け取るためのポリシー更新マイクロサービス、及び様々なソースからポリシーデータを受け取り、マイクロサービスによって用いられるバイナリのポリシー出力を生成するためのコンパイラである。
【００５８】
ネットワークセキュリティシステムは、インタフェース１２８を介してデータセンターとの間でトラフィックの受け渡しを行う。１つの実施形態において、ネットワークセキュリティシステムはインラインで配置されてトラフィックを検査し、場合によっては、トラフィックがデータセンターに到達する前に又はデータセンターを出る前に脅威を捕捉する。代替実施形態において、ネットワークセキュリティシステムが、データセンターに向かう又はデータセンターを出るトラフィックを監視する。この場合、ネットワークセキュリティシステムは脅威を検知してアラートを発するがデータを阻止することはない。ハードウェアプロセッサ１０２は次に、様々なデータセキュリティマイクロサービスをデータに対して実行する。例えば、図１４、図１７、及び図１９に関して以下でさらに説明されることになるが、トラフィックは通常、最初にセグメントマイクロサービスに入ってそこを通り、次にＴＣＰ／ＩＰ検査マイクロサービスを通り、次にＳＳＬマイクロサービスを通り、次にＤＰＩマイクロサービスを通り、次にＮＯＸマイクロサービスを通り、そして次にＤＬＰマイクロサービスを通る。しかしながら、これらのサービスのうち１つ又は複数は有効でなくてもよい。いくつかの実施形態において、セグメントマイクロサービスがネットワークセグメント内に存在し、データパケットのエントリポイントとしての役割を果たし、パケットをさらなる分析のために適切なマイクロサービスに転送する。本明細書で使用されるデータパスマイクロサービスは、ネットワークトラフィックを検査し分析する様々なマイクロサービス、例えば、ＴＣＰ、ＴＬＳ、ＤＰＩ、ＮＯＸ、又はＤＬＰなどのことを指す。ＴＣＰマイクロサービスは、例えば、レイヤ４〜６の任意のネットワークパケットを処理可能なパケット処理マイクロサービスのことを指し、ファイアウォールの一部を含む。ＴＬＳマイクロサービスは、例えば、接続の復号／再暗号化を行うトランスポートレイヤセキュリティマイクロサービスのことを指す。ＤＰＩマイクロサービスは、例えば、ディープパケットインスペクションマイクロサービスのことを指し、レイヤ７の検査を扱う。ＮＯＸマイクロサービスは、例えば、ネットワークオブジェクトエクストラクタマイクロサービスのことを指し、ＤＰＩと共に働いて、個々のパケットのオブジェクトを組み立て、組み立てたオブジェクトを他のサービスに提供する。ＤＬＰマイクロサービスは、例えば、データ漏洩防止マイクロサービスのことを指し、データ漏洩を検知して防止する。これに対して、制御パスマイクロサービスは、ファクトリ、コンパイラ、コンフィギュレーション、インフラストラクチャディスカバリ、データベース、メッセンジャー、スケーラー、及びシャーシコントローラなどの様々なマイクロサービスであり、これらは、管理プレーンにインスタンス化されて、管理プレーンを構成する。前述のマイクロサービスによって検知された脅威は、１つの実施形態において、改善策を講じるシャーシコントローラマイクロサービスに報告されることになる。
【００５９】
一実施形態において、マイクロサービス１０８〜１２２は、インタフェース１２８を介してインターネットからロードされる。例えば、一実施形態において、マイクロサービスはウェブサイト又はオンラインストアのサイトからダウンロードされる。いくつかの実施形態において、マイクロサービス１０８〜１２２は、メモリ１０４にロードされる。様々な実施形態において、マイクロサービスは非一時的コンピュータ可読媒体にロードされ、非一時的コンピュータ可読媒体から受け取られる。非一時的コンピュータ可読媒体とは、別のディスクドライブ、ＣＤ、ＣＤＲＯＭ、ＤＶＤ、ＵＳＢフラッシュドライブ、フラッシュメモリ、セキュアデジタル（ＳＤ）メモリカード、メモリカードを含むデジタルメディアなどであるが、これらに限定されるものではない。一例として、デジタルメディアから受け取ったマイクロサービスはメモリ１０４に格納される。これらの実施形態はこの文脈に限定されない。さらなる実施形態において、デジタルメディアは、プロセッサ及びメモリなどのハードウェア要素の組み合わせを構成するデータソースである。
【００６０】
大部分の実施形態において、ネットワークセキュリティシステムはデータセンターのコンピュータで動作する。しかしながら代替実施形態では、ネットワークセキュリティシステムは、低コストなものから高コストなものまで、また低性能なものから高性能なものまで多岐にわたる代替的なコンピューティングプラットフォームのうちのいずれかにインストールされて、そこで動作する。いくつかの実施形態において、ネットワークセキュリティシステムが、低コストの汎用サーバコンピュータに、又はいくつかの実施形態において、低コストのラックマウント式のサーバにインストールされて、そこで動作する。例示するように、ハードウェアプロセッサ１０２はシングルコアプロセッサである。代替実施形態において、ハードウェアプロセッサ１０２はマルチコアプロセッサである。代替実施形態において、ハードウェアプロセッサ１０２は超並列プロセッサである。
【００６１】
いくつかの実施形態において、仮想シャーシ１０６及びマイクロサービス１０８〜１２２は、データセンターで用いられる多岐にわたるハードウェアプラットフォームのいずれかにホストされ、保護され得る。以下の表１は、複数の代表的なデータセンター環境を列挙して説明している。これらのうちのいずれかが、仮想シャーシ１０６及びマイクロサービス１０８〜１２２をホストする。
【表１】
2019523949.tif 000003
【００６２】
いくつかの例において、ネットワークセキュリティシステムは、利用可能なリソースを用いてスケールアウトし、より高いトラフィック又は負荷に対応する。代表的な実施形態において、ＣＰＵ１０２及びメモリ１０４は、必要に応じて動的にスケールアウト又はスケールインが行われ、スケールアウトの場合はさらにＣＰＵ及びメモリが追加され、スケールインの場合はいくつかのＣＰＵ及び／又はメモリの電源を切る。このスケールアウトは、追加のＣＰＵ及びメモリが必要とされるセキュリティ階層の部分に追加のＣＰＵ及びメモリを割り当てるが、既存の割り当てを利用して上位のトラフィックに対応できるセキュリティ階層の部分には追加のＣＰＵ及びメモリを割り当てないように行われる。
【００６３】
図１３は、一実施形態によるネットワークセキュリティシステムの一部を例示するブロック図である。例示するように、ネットワークセキュリティシステムが、仮想シャーシ１３０１、管理プレーン１３０２、データパスプレーン１３０４、及びバックプレーン１３０６（このソフトウェアを格納し実行するための基本的なハードウェアは図示されていない）を含む。図１３は、ネットワークセキュリティシステムの論理システムアーキテクチャを例示しており、その各コンポーネントは、図１のネットワークセキュリティシステムと同様のネットワークセキュリティシステムによって実装される。
【００６４】
［マイクロサービスに基づくアーキテクチャ］
マイクロサービスに基づくアーキテクチャによって、各コンポーネント及びネットワークセキュリティツール（例えば、ＩＰ処理、ＴＣＰ処理、ＳＳＬ復号、ディープパケットインスペクション）を別個のマイクロサービスとして実装することが可能になる。個々のコンポーネントを分離することで、各コンポーネントは、それぞれの性能要件を満たすためにスケールアウト又はスケールインを行うことが可能である。また、一実施形態において、これらのコンポーネントは互いとは無関係に、別個の地理的位置にさえ配置される。
【００６５】
一実施形態によれば、仮想シャーシ１３０１内の各マイクロサービスは、同様のＨＴＴＰメソッド（ＧＥＴ（取得）、ＰＯＳＴ（作成）、ＰＵＴ（更新）、ＤＥＬＥＴＥ（削除）など）を用いてＨＴＴＰリクエストをやり取りすることによって通信する。いくつかの実施形態において、仮想シャーシ１３０１内の各マイクロサービスは、バックプレーンマイクロサービス１３０６を用いて通信し、メッセージが送信元のマイクロサービスによってバックプレーン１３０６にパブリッシュされ、宛先のマイクロサービスによってバックプレーン１３０６から消費される。いくつかの実施形態において、バックプレーン１３０６は、仮想シャーシ１３０１内のマイクロサービス同士の通信、及びネットワークセキュリティシステムのマイクロサービスと企業用ソフトウェア１３５０との間の通信をサポートし、ＲＥＳＴアーキテクチャを用いる。いくつかの実施形態において、ＲＥＳＴに準拠したソフトウェアであるＲＥＳＴｆｕｌなソフトウェアとの通信は、例をいくつか挙げると、ＨＴＴＰ、ＵＲＩ、ＪＳＯＮ、及びＸＭＬのような構造に従って、構造化データをやり取りする。ＲＥＳＴｆｕｌなアーキテクチャは、複数の変数値を示す階層を有する多変数フィールドとしてユニバーサルリソースインジケータ（ＵＲＩ）を用いることによって、デベロップメント、デバッギング、及びオペレーションのフレキシビリティを可能にする。
【００６６】
例示するように、ネットワークセキュリティシステムは、仮想シャーシ１３０１、管理プレーン１３０２、バックプレーン１３０６、及びデータパスプレーン１３０４を備え、これらのそれぞれは仮想マシン又はコンテナとして実装されたマイクロサービスであり、コンピューティングハードウェアにデプロイされる。一実施形態によれば、ホストマシンはハイパーバイザを搭載している。ハイパーバイザは、仮想マシンを起動したり無効にしたりするコンピュータソフトウェア、ファームウェア、又はハードウェアである。いくつかの実施形態において、ホストマシンは、マイクロカーネルをマイクロカーネル命令と共に提供する。
【００６７】
管理プレーン１３０２は、マイクロサービス１３０８、１３１０、１３１２、１３１４、１３１６、１３１８、１３２０、１３２２、及び１３２４を有し、それぞれはコンピュータシステムにデプロイされた仮想マシン又はコンテナとして実装される。
【００６８】
図１３に例示するように、管理プレーン１３０２はファクトリ１３１０を利用する。一実施形態において、ファクトリ１３１０は、インフラストラクチャディスカバリマイクロサービス１３１２、スケーラーマイクロサービス１３１４、及びシャーシコントローラマイクロサービス１３１６を含み、いくつかの実施形態では、ポリシーマイクロサービス及びリソースグループマイクロサービスといったマイクロサービスの組み合わせのことを指し、弾力的にスケールイン又はスケールアウトを行う。本明細書で使用されるとき、ポリシーはシャーシをどのようにスケーリングするかを規定するものであり、以下で説明されるように、消極的（ｌａｚｙ）スケーリング又は積極的（ａｇｇｒｅｓｓｉｖｅ）スケーリングがある。いくつかの実施形態において、シャーシコントローラマイクロサービス１３１６は、アテステーション、シャーシ、レジストリ、スケーリング、及びインフラストラクチャディスカバリマイクロサービスを含む新規のマイクロサービスを要求に応じて生成し、負荷に従って新規のマイクロサービスをスケールアウト又はスケールインする。いくつかの実施形態において、ファクトリ１３１０は、ファクトリモデルに従って規定されるマイクロサービス仮想化環境を含む。構造レベルでは、一実施形態によるファクトリは、サーバ及びコンピューティングデバイスを含む。いくつかの実施形態において、ファクトリは一箇所に配置される。他の実施形態において、ファクトリは様々な場所に分散される。さらに他の実施形態において、ファクトリは、サードパーティのインフラストラクチャサプライヤのマイクロサービスを仮想化する。論理レベルでは、ファクトリは、１つ又は複数の仮想ＣＰＵ、仮想メモリ、及び仮想ストレージで構成された仮想化プラットフォームである。ファクトリは、マイクロサービスの商品化を可能にし、多数の多岐にわたるマイクロサービスが提供されて他のマイクロサービスと区別なく動作することを可能にし、サードパーティのインフラストラクチャサプライヤからのマイクロサービスを含む。
【００６９】
１つの実施形態におけるインフラストラクチャディスカバリマイクロサービス１３１２は、保護されるべきデータセンター１３４２とのインタフェースをとり、データセンター１３４２を探索する。いくつかの実施形態で言及されるように、インフラストラクチャとは、計算リソース、ストレージリソース、及びネットワークリソースの形態で顧客などのエンティティによって提供されるリソースのことを指す。いくつかの実施形態において、双方向通信のために、インフラストラクチャリンクがファクトリ１３１０とインフラストラクチャとを接続する。そのような実施形態におけるインフラストラクチャディスカバリマイクロサービス１３１２は、インタフェース１３２６を介してデータセンター１３４２を探索し、存在するネットワークセグメントの種類、様々なネットワークセグメントのセキュリティ要件、利用可能なホスト及びハードウェアリソースの種類、及び／又は必要に応じて追加のコンフィギュレーション情報を確定する。
【００７０】
１つの実施形態におけるスケーラー１３１４は、複数のマイクロサービスのうちの少なくとも１つから負荷統計値を受け取るマイクロサービスであり、各マイクロサービスはそれぞれの負荷統計値を監視して、その負荷統計値をスケーラー１３１４に報告する。個々のマイクロサービスによって監視される統計値には、例えば、処理されたパケットの数、処理されたリクエストの数、処理するパケット及び／又はリクエストのキューデプス、並びにプロセッサ及びメモリの利用率が含まれる。スケーラー１３１４は、マイクロサービスの負荷情報を分析し、シャーシコントローラ１３１６に特定のマイクロサービスをスケールアウト又はスケールインするよう要求するかどうかを判定する。１つの実施形態において、スケーラー１３１４は、あるマイクロサービスから受け取った負荷統計値をスケールアウト閾値と比較して、シャーシコントローラ１３１６が追加のマイクロサービスを立ち上げることを提案するかどうか判定する。いくつかの実施形態において、スケーラー１３１４は、あるマイクロサービスから受け取った負荷統計値をスケールイン閾値と比較して、シャーシコントローラ１３１６が当該マイクロサービスのインスタンスを停止することを提案するかどうか判定する。
【００７１】
一実施形態におけるシャーシコントローラ１３１６は、ネットワークセキュリティシステム１３００の全てのマイクロサービスをインスタンス化してデプロイする。いくつかの実施形態において、例えばリブート時、電源投入時、又は停電後に、立ち上げられたシャーシコントローラ１３１６は複数の第１のマイクロサービスの中に入っており、残りのマイクロサービスをインスタンス化してデプロイする。いくつかの実施形態において、ネットワークセキュリティシステム１３００がリブート中であるか、又は別の方法で破局的な故障から回復中である場合、シャーシコントローラ１３１６が、立ち上がる最初のマイクロサービスではないとしても、最初に立ち上がるマイクロサービスがどれであれ、シャーシコントローラ１３１６が動いているかどうかを確認し、動いていない場合は、シャーシコントローラ１３１６を立ち上げるようにトリガする。シャーシコントローラ１３１６が動いているかどうかを確認することは、１つの実施形態において、所定のアドレスにピング（ｐｉｎｇ）を送ることによって行われる。代替実施形態において、シャーシコントローラ１３１６が動いているかどうかを確認することは、シャーシコントローラ１３１６及び場合によっては他のマイクロサービスのステータスを保持するステータスレジスタを確認することを含む。代替実施形態において、シャーシコントローラ１３１６が自身のステータスを仮想シャーシ１３００内のマイクロサービスにブロードキャストして、シャーシコントローラ１３１６が動いていることをこれらのマイクロサービスに知らせる。
【００７２】
１つの実施形態におけるコンフィギュレーションマイクロサービス１３０８は、ユーザインタフェースを通じてユーザからコンフィギュレーション情報を受け取る。代替実施形態において、コンフィギュレーションマイクロサービス１３０８は、インタフェース１３４８を介して企業用ソフトウェア１３５０と通信し、企業用ソフトウェア１３５０からコンフィギュレーション情報を受け取る。一実施形態におけるコンフィギュレーションマイクロサービス１３０８は、上述したＲＥＳＴアーキテクチャを用いて企業用ソフトウェア１３５０と通信する。いくつかの実施形態において、コンフィギュレーションマイクロサービス１３０８は、データセンターのコンフィギュレーション（例えば、インフラストラクチャディスカバリマイクロサービス１３１２から得られる）を用い、ユーザが選択するセキュリティポリシー及びツールを提案する。
【００７３】
１つの実施形態におけるコンパイラマイクロサービス１３２４は、インタフェース１３４６を介してポリシー更新クラウド１３３０からセキュリティポリシー更新情報を受け取る。一実施形態において、ポリシー更新クラウド１３３０は、潜在的なセキュリティの脅威の識別と、それらの脅威に対応するためのポリシーの考案とを常に行うネットワークセキュリティの専門家集団を備えている。新たに考案されたポリシーは、コンパイラマイクロサービス１３２４によって受け取られ、必要であれば、様々なマイクロサービスが理解できる言語に変換され、それらのマイクロサービスに伝達される。
【００７４】
様々な追加の管理マイクロサービス１３１８、１３２０、及び１３２２は、ネットワークセキュリティシステムにデプロイされるために利用可能である。例示するように、管理プレーン１３０２は９個のマイクロサービスを有するが、マイクロサービスの数はそのように限定されず、その数はより多くても又はより少なくてもよく、限定されるものではない。
【００７５】
データパスプレーン１３０４は、セグメントマイクロサービス１３３２（単に「フロントエンド」又は「ＦＥ」と呼ばれることがある）とデータセキュリティマイクロサービス１３３４、１３３６、及び１３３８とを実装するマイクロサービスを有する。例示するように、データパスプレーン１３０４は、双方向インタフェース１３４４を介して、外部セキュリティツール１３４０と通信する。データセキュリティマイクロサービスの様々な実施形態がデプロイされるために利用可能であり、その一部が以下でさらに説明される。例示するように、データパスプレーン１３０４は、４個のマイクロサービスを有するが、マイクロサービスの数はそのように限定されていない。いくつかの実施形態において、データパスプレーン１３０４は４個を超えるマイクロサービスを含み、別の実施形態において、データパスプレーン１３０４は４個より少ないマイクロサービスを含む。
【００７６】
いくつかの実施形態において、セグメントマイクロサービス１３３２はデータセンター１３４２とデータをやり取りする。セグメントマイクロサービス１３３２はインタフェース１３２８を介して双方向に動作し、データセンター１３４２から受け取ったパケットを適切なデータパスマイクロサービスに転送し、またデータパスマイクロサービスから受け取った戻りパケットをデータセンター１３４２に転送する。一実施形態において、セグメントマイクロサービス１３３２によって受け取られたトラフィックを供給する接続は、当業者が理解しているように、５−タプルを有する接続が特徴のＴＣＰ／ＩＰプロトコルに従う。そのような５−タプルは一般に、送信元のＩＰアドレス及びＴＣＰポート、宛先のＩＰアドレス及びＴＣＰポート、並びにインタフェースで構成されている。インタフェース１３２８は、名前、イーサネット（登録商標）のＭＡＣアドレス、又は他の手段で指定され得る。一実施形態において、セグメントマイクロサービス１３３２は、パケットをデータパスマイクロサービスに転送する前に、６番目のタプルをパケット追加する。いくつかの実施形態において、この６番目のタプルは、どのデータパスマイクロサービスがパケットを受け取るべきかについてのルーティング情報を搬送する。一実施形態における６番目のタプルは、特定の接続を一意に識別する識別子も搬送する。データパスマイクロサービスが脅威又はマルウェアを検知した場合、当該データパスマイクロサービスは識別子及び５−タプル情報を用いて、そのイーサネット（登録商標）接続を中断するようセグメントマイクロサービスに要求する。
【００７７】
バックプレーン１３０６は、データパスプレーン１３０４のデータパスマイクロサービス１３３２〜１３３８の間での通信、管理プレーン１３０２の管理マイクロサービスとデータパスプレーン１３０４との間の通信、及び管理マイクロサービス１３０８〜１３２４の間での間接通信を可能にする通信マイクロサービスを有する。１つの実施形態において、管理マイクロサービス１３０８〜１３２４は互いに直接通信しないので、これらのマイクロサービスのうち１つ又はその他が働かなくなったときに、ゾンビ接続を防ぐことができる。その代わり、１つの実施形態において、管理マイクロサービスは、これらの管理マイクロサービスの間でメッセージを伝達する仲介者としてバックプレーン１３０６に頼る。
【００７８】
いくつかの実施形態において、マイクロサービス１３０１〜１３３８は別個の仮想マシン又はコンテナであり、それぞれは汎用のサーバハードウェアで動作する。この設計を構成要素である複数のマイクロサービスに分けることで、ネットワークセキュリティシステム１３００は、必要に応じてこれらの機能のいずれかをスケールアウトする能力を有する。いくつかの実施形態におけるこのスケールアウト能力によって、利用可能な追加のハードウェアを用いることが可能になる。
【００７９】
例示するように、ネットワークセキュリティシステム１３００を構成するマイクロサービス１３０１〜１３３８は、まとめて単一のエンティティにグループ化され、仮想シャーシ１３０１として識別される。１つの実施形態において、マイクロサービス１３０４〜１３３２は、単一の環境（データセンター、プライベートクラウド、又はパブリッククラウド）に配置される。いくつかの実施形態において、仮想シャーシ１３０１及びマイクロサービス１３０４〜１３３２は、単一のサーバ、コンピュータ、又はラックマウントシステムに収容される。いくつかの実施形態において、仮想シャーシ１３０１及びマイクロサービス１３０４〜１３３０は、複数のハードウェア環境に収容される。その上さらなる実施形態において、仮想シャーシ１３０１及びマイクロサービス１３０４〜１３３２は、地理的に異なった環境に収容される。
【００８０】
動作に際しては、ネットワークセキュリティシステム１３００が、ネットワークセキュリティをデータセンター１３４２に提供する。第１の実施形態において、ネットワークセキュリティシステム１３００がデータセンターのＥａｓｔ／Ｗｅｓｔデプロイメントでデプロイされる。この場合、ネットワークセキュリティシステム１３００は、データセンター（仮想化された計算を備える）にデプロイされ、トラフィックを検査して当該トラフィックにポリシーを守らせる。ここで、フローの送信元及び宛先は両方ともデータセンター内に配置されている。第２の実施形態において、ネットワークセキュリティシステムがデータセンターのＮｏｒｔｈ／Ｓｏｕｔｈデプロイメントでデプロイされる。この場合、ネットワークセキュリティシステムはデータセンターにデプロイされ、トラフィックを検査して当該トラフィックにポリシーを守らせる。ここで、フローの送信元又は宛先のいずれかは（両方ではない）データセンターの外部に配置されている。第３の実施形態において、ネットワークセキュリティシステムがパブリッククラウドのデプロイメントでデプロイされる。この場合、ネットワークセキュリティシステムはパブリッククラウドにデプロイされ、当該クラウド内の特定のテナントのパーティションに入るトラフィック又はそこを出るトラフィックのいずれかを検査して当該トラフィックにポリシーを守らせる。さらに第４の代替実施形態において、ネットワークセキュリティシステムが、これらの代替形態のうち１つ又は複数の組み合わせに従ってデプロイされる。
【００８１】
さらに、オペレーション中に、１つの実施形態において、マイクロサービス１３０２〜１３３８のいずれかのスケールアウト及びスケールイン機能が、リソース消費ポリシーに従って、他のマイクロサービスとは無関係に使われる。具体的には、１つの実施形態における各マイクロサービスは、各マイクロサービスが処理しているデータパケットの数、各マイクロサービスが担当しているリクエストの数、各マイクロサービスの内部キューの深さ、又は他の手段といった形態で、各マイクロサービスが処理しているトラフィックの量を監視する。１つの実施形態において、各マイクロサービスはそれぞれの負荷統計値をスケーラー１３１４に転送し、スケーラー１３１４は新規のマイクロサービスをインスタンス化するのか又は古い方のマイクロサービスを停止するのかを判定する。
【００８２】
１つの実施形態において、シャーシコントローラ１３１６はマイクロサービス１３０２〜１３３８を管理する。具体的には、１つの実施形態においてシャーシコントローラ１３１６はスケーラー１３１４から提案を受け取り、様々なマイクロサービスをスケールアウトするのか又はスケールインするのかを判定する。１つの実施形態において、マイクロサービス１３０２〜１３３８を管理することは、物理シャーシと同じように、シャーシコントローラ１３１６を単一のエンティティとして管理することで簡略化される。１つの実施形態において、シャーシコントローラ１３１６は、１つ又は複数のマイクロサービス１３０２〜１３３８に適用される一般リソース制御ポリシーでプログラムされる。したがって、１つの実施形態において、機器が非常に大きくなったとしても、又は機器が複数の環境に広がったとしても、又は機器が複数の地理的位置に広がったとしても、シャーシコントローラ１３１６は単一で存在し、ネットワーク管理者がアクセスするための管理インタフェースを提供する。
【００８３】
１つの実施形態において、マイクロサービス１３０２〜１３３８は組み込み冗長性を提供するが、その理由は、マイクロサービスのそれぞれ個々のインスタンスが同じマイクロサービスの追加のインスタンスによって支えられているからである。単一のインスタンスが働かなくなった場合、その他のマイクロサービスが動作を続け、その間に代替品が立ち上げられる。所与のマイクロサービスのより多くのインスタンスをプロビジョニングして、ｎ＋１冗長性を提供することも可能である。
【００８４】
１つの実施形態において、セキュリティ制御マイクロサービスの新規のインスタンス、既存のマイクロサービス用の新規のセキュリティポリシー、又はセキュリティマイクロサービスの新規タイプを追加することは、新規ハードウェアの追加又は既存ハードウェアの変更を必要とせずに行われる。具体的には、そのような実施形態において、セキュリティ制御マイクロサービスの新規のインスタンスが、仮想シャーシ１３１６のマイクロサービスをホストするコンピュータハードウェアに既存のマイクロサービスの別のインスタンスをインスタンス化することによって作成される。こうして、新規タイプのマイクロサービスが、ネットワークセキュリティシステム１３００の性能に大きな影響を与えることなく、シャーシコントローラ１３１６によってデプロイされる。
【００８５】
図１４は、一実施形態によるネットワークセキュリティシステムを例示するブロック図である。例示するように、ネットワークセキュリティシステムは、管理プレーン１４０２と、データパスプレーン１４０４と、バックプレーン１４０６とを含む。図１４は、ネットワークセキュリティシステムの論理システムアーキテクチャを例示しており、その各コンポーネントはコンピューティングハードウェアによって実装される。
【００８６】
ネットワークセキュリティシステムは、ネットワークセキュリティ機器を分解したマイクロサービスに基づくアーキテクチャを用い、ネットワークセキュリティシステムを一連の構成要素に分け、それぞれはマイクロサービスとして実装される。
【００８７】
管理プレーン１４０２は、マイクロサービス１４０８、１４１０、１４１２、１４１４、１４１６、１４１８、１４２０、１４２２、及び１４２４を含み、それぞれはコンピュータシステムにデプロイされた仮想マシン又はコンテナとして実装される。
【００８８】
図１４に例示するように、管理プレーン１４０２はファクトリ１４１０を利用する。ファクトリ１４１０は、インフラストラクチャディスカバリマイクロサービス１４１２と、スケーラーマイクロサービス１４１４と、シャーシコントローラマイクロサービス１４１６とを有する。いくつかの実施形態において、管理プレーン１４０２は、ファクトリモデルに従って規定されるマイクロサービス仮想化環境を利用する。構造レベルでは、ホスティング環境はサーバ及びコンピューティングデバイスを含む。いくつかの実施形態において、ホスティング環境は一箇所に位置しているが、他の実施形態では、ホスティング環境は様々な場所に分散している。他の実施形態において、ホスティング環境はサードパーティのインフラストラクチャサプライヤを含む。論理レベルでは、ホスティング環境は複数のファクトリに分割される。ファクトリは、１つ又は複数の仮想プロセッサ、仮想メモリ、及び仮想ストレージで構成された仮想化プラットフォームである。ファクトリは、マイクロサービスの商品化を可能にし、そのことによって多岐にわたるマイクロサービスが提供されて他のマイクロサービスと区別なく動作することを可能にし、サードパーティのインフラストラクチャサプライヤからのマイクロサービスを含む。
【００８９】
いくつかの実施形態におけるコンフィギュレーションマイクロサービス１４０８、シャーシコントローラ１４１６、スケーラー１４１４、コンパイラ１４２４、及びインフラストラクチャディスカバリマイクロサービス１４１２は、図１３に例示され図１３に関して論じられ、同様の名前が付けられ、同様の番号が付けられた、対応するマイクロサービスと同様に動作する。
【００９０】
例示するように、データパスプレーン１４０４のセグメントマイクロサービス１４３２は、インタフェース１４２８を介してデータセンターと結合する。図示するように、データパスプレーン１４０４は、マイクロサービス１４３４、１４３６、１４３８、１４４０、及び１４４２を含み、トラフィックの様々な側面を検査して様々な脅威に注目しており、またインタフェース１４４４を介してバックプレーン１４０６と通信する。データパスサービスによって検知される特定の脅威は当業者が認識しているので、網羅的なリストはここで提供しない。以下の表２は、ネットワークセキュリティシステムのデータパスマイクロサービスが関係しているセキュリティの脅威の例を列挙している。これらの脅威及び他の潜在的な脅威を防ぐために、セキュリティポリシーが図１４の各マイクロサービスにロードされる。セキュリティポリシーの受け取り、変換、コンパイル、及び配布は、例えば、以下の図１８に関して例示される。さらに、ポリシー更新クラウド１４３０のサポートに取り組む専門家チームが、識別された最新の脅威シグネチャ、疑わしいＴＣＰ／ＩＰ  ５−タプルマルウェア、及び脅威挙動に従って最新情報をセキュリティポリシーに提供する。一実施形態において、更新されたセキュリティポリシーが、コンパイラ１４２４によって自動的にロードされ、一般的なネットワークセキュリティシステムの言語に変換され、バイナリデータにコンパイルされ、各マイクロサービスに配布される。こうしたことは、例えば、以下の図１８に関して例示され説明される。マイクロサービスの既存セキュリティポリシーをシステムの電源を切ることなくアップグレードすることが、以下の図２５に例示される。
【表２】
2019523949.tif 000004
【００９１】
データベース１４１８（図１４）は、図１５にさらに例示するように、マイクロサービスが用いるデータを格納する。１つの実施形態において、データベース１４１８は、マイクロサービスが必要に応じて読み出すために、最近使用され更新されたセキュリティポリシーを保管している。いくつかの実施形態におけるデータベース１４１８は、１つ又は複数のマイクロサービスの状態情報を保持し、当該マイクロサービスが故障から回復し、自身の状態を必要なときに再設定することを可能にする。いくつかの実施形態におけるデータベース１４１８は検索可能なデータベースを含み、ネットワークトラフィックから抽出されたオブジェクトを保管し、これらのオブジェクトの検索を可能にする。一実施形態において、データベース１４１８は、データベースエントリをフロー識別子と関連付けて、同じフローに関連したデータを共に関連付ける。本明細書で使用されるとき、ストリームコンテキストという用語は、中に含まれる特性にもかかわらず、フローを一意に識別するのに用いられる追加フィールドのことを指す。一実施形態において、ポリシーが当該追加フィールドから抽出される。データベース１４１８は、１つの実施形態において、認証されたマイクロサービス用の識別子を保持するキーバリューペアを保管した高性能な小型データベースであるキーバリューストア１５０８を含み、なりすましを検知する。
【００９２】
図１５は、いくつかの実施形態によるマイクロサービスをサポートするのに用いられる複数の異なるデータベースタイプを例示している。特定の状況に用いる特定のデータベースタイプの選択は、データベースの所望の速さ及び機能に従って選択される。例示するように、データベース１５００は、ＳＱＬデータベース１５０２、ＮｏＳＱＬデータベース１５０４、検索可能なデータベース１５０６、及びキーバリューストア１５０８を含む。いくつかの実施形態におけるＳＱＬデータベース１５０２、ＮｏＳＱＬデータベース１５０４、及び検索可能なデータベース１５０６は、様々なネットワークセキュリティマイクロサービスによって用いられているファイル、中間データ、抽出されたオブジェクト、又は部分的に抽出されたオブジェクトを保管する。データベースの数及びタイプは、そのように限定されるものではなく、異なる実施形態がより多くの又はより少ないデータベースを用いる。異なる実施形態が異なるタイプのデータベースを用いる。
【００９３】
一実施形態におけるＳＱＬデータベース１５０２は、リレーショナルデータベース管理システム（ＲＤＢＭＳ）を実装する。
【００９４】
ＮｏＳＱＬデータベース１５０４は、自身の特定の性能又は使いやすい特徴に従って選択される。一実施形態において、ＮｏＳＱＬデータベース１５０４はキーバリューストアを提供し、これにより、マイクロサービスがレコードデータを取得するのに用いるキーによって、レコードにインデックスが設けられる。いくつかの実施形態において、ＮｏＳＱＬデータベース１５０４は、カウンターをインクリメントするなどのアトミック操作を可能にする。一実施形態によれば、ＮｏＳＱＬデータベース１５０４は、世代数（データ変更）を追跡するためにメタデータも含んだレコードと、読み出しオペレーション中にマイクロサービスに返す数字とを含み、書き込まれるデータが最後に読み出してから変更されていなかったことを保証するのに用いられ得る。いくつかの実施形態において、ＮｏＳＱＬデータベース１５０４は負荷分散機能を含み、データベースリクエストを複数のデータベースインスタンスに分散させる。
【００９５】
一実施形態における検索可能なデータベース１５０６は、抽出されたネットワークファイルに対して文字認識を行い、これらのネットワークファイルが検索可能なデータベースで検索されることを可能にする。いくつかの実施形態において、検索可能なデータベース１５０６は、ネットワークデータを、実質的にリアルタイムで閲覧し分析するのに利用できるようにする。一実施形態において、検索可能なデータベース１５０６はスケーラブルであり、追加のデータベースノードを自動的にインスタンス化して、トラフィック負荷の増加に対応することができる。いくつかの実施形態において、検索可能なデータベース１５０６は、追加のコンピューティングリソースが利用可能になるように、水平方向にスケーリングしてこれらのコンピューティングリソースを活用する。一実施形態において、検索可能なデータベース１５０６は、自身のハードウェアノードのうち１つ又は複数が故障した場合、残りの１つ又は複数の利用可能なノードを認識して、それらのノードの間でデータを再分散することによって対応する。
【００９６】
キーバリューストア１５０８は、マイクロサービスを認証する識別子への高速アクセスを提供し、なりすましを検知するキーバリューペアを保持している。
【００９７】
一実施形態において、データベース１５０２〜１５０８のうちいずれか１つ又は複数が、フォールトトレランスをサポートする冗長性を含む。いくつかの実施形態において、データベース１５０２〜１５０８のうちいずれか１つ又は複数が、性能要件を満たすために動的にスケールアウト又はスケールインすることを可能にする。一実施形態において、データベース１５０２〜１５０８のうちいずれか１つ又は複数が、削除されるか又は用いられない。いくつかの実施形態において、データベース１５０２〜１５０８のうち１つ又は複数を用いる代わりに、レジスタファイル、フラッシュメモリ、スタティックＲＡＭ又はダイナミックＲＡＭなどのメモリが、そのようなデータを格納するのに用いられる。データベース１５０２〜１５０８は、他のマイクロサービスと同様に、複数のマイクロサービスで構成され、マイクロサービスアーキテクチャに従って実装され、デプロイされる。
【００９８】
再度図１４を参照すると、１つの実施形態におけるメッセンジャー１４２０は、ポリシー最新情報を含むメッセージをコンパイラ１４２４及びシャーシコントローラ１４１６から受け取って格納する。１つの実施形態における関係のあるマイクロサービスが、ポリシー最新情報を含むメッセージをメッセンジャー１４２０から受け取るためにサブスクライブする。いくつかの実施形態において、リソースグループとは、リソースグループへのポリシーの義務付けと呼ばれることがあるプロセスによってポリシーをサブスクライブする、インフラストラクチャからのオブジェクトの集合である。いくつかの実施形態において、マイクロサービスプールとは、ポリシー及びコンフィギュレーションからなる一般的なセットを有するマイクロサービスの集合である。次に、メッセンジャー１４２０は、サブスクライブするマイクロサービスにポリシー最新情報をパブリッシュする。１つの実施形態におけるメッセンジャー１４２０は、サブスクライブするマイクロサービスにポリシー最新情報を一定の時間間隔でパブリッシュする。いくつかの実施形態において、メッセンジャー１４２０は、新規又は更新済みのポリシーをコンパイラ１４２４から受け取ると、サブスクライブするマイクロサービスにポリシーをパブリッシュする。いくつかの実施形態において、メッセンジャー１４２０からのパブリケーションをサブスクライブする代わりに、ポリシー最新情報に関係するマイクロサービスが、メッセンジャー１４２０、コンパイラ１４２４、又はデータベース１５０２〜１５０８のうち１つ又は複数をポーリングして、最新情報の存在を検知する。ポリシー最新情報に関係するマイクロサービスは、例えば、脅威を識別するＴＣＰ／ＩＰ  ５−タプルを含むポリシー最新情報を受け取ることに関係があるＴＣＰ／ＩＰマイクロサービス１４３４などのデータパスマイクロサービスを含む。１つの実施形態におけるインフラストラクチャディスカバリマイクロサービス１４１２は、インタフェース１４２６を介してデータセンターのディスカバリを行う。１つの実施形態におけるインフラストラクチャディスカバリマイクロサービス１４１２は、新規のセキュリティポリシーをメッセンジャー１４２０から受け取る。セキュリティポリシーはまだ新しいので、ユーザも企業用ソフトウェアもこのセキュリティポリシーを有効にする機会を持ったことがない。したがって、インフラストラクチャディスカバリマイクロサービス１４１２は、接続１４４８を介してコンフィギュレーションマイクロサービス１４０８に、新規のセキュリティポリシーをユーザ又は企業用ソフトウェアに提案させる。一実施形態において、ディスカバリマイクロサービスは、コンフィギュレーションマイクロサービス１４０８に、ユーザが任意のポリシー更新情報を更新することを提案させる。
【００９９】
図１６は、一実施形態に従って、管理プレーンからネットワークセキュリティシステムの複数のマイクロサービスのうち１つ又は複数に送られる制御パケットを例示するブロック図である。本明細書で使用されるとき、マイクロサービスの特性は、ポリシーに応じて変更可能である。例えば、ＤＰＩマイクロサービスは、例をいくつか挙げると、脅威検知、ＵＲＬ分類、又はアプリケーション識別用のエンジンになり得る。本明細書で使用されるとき、アプリケーション挙動プロファイルは、アプリケーションによって示される典型的な挙動を規定し、異常を抽出するのに用いられる。例示し且つ上述したように、いくつかの実施形態におけるネットワークセキュリティシステムは、データセンターに組み込まれる。ここで、ネットワークセキュリティシステムは、データセンターのいくつかの仮想環境に組み込まれる。具体的には、ＮｅｔＸエージェント１６１２ＡがＶＭｗａｒｅ（ＥＳＸ）ハイパーバイザ１６１４Ａによって管理され、ＳＤＮエージェント１６１２ＢがＯｐｅｎＳｔａｃｋ（ＫＶＭ）１６１４Ｂによって管理され、ＷＦＰエージェント１６１２ＣがＭｉｃｒｏｓｏｆｔ（Ｈｙｐｅｒ−Ｖ）１６１４Ｃによって管理され、ＮＡＴ１６１２ＤがＡｍａｚｏｎ（ＥＣ−２）１６１４Ｄによって管理され、ＡＣＩエージェント１６１２ＥがＣｉｓｃｏ（ＡＣＩ）１６１４Ｅによって管理され、ネットワークエージェント１６１２Ｆがベアメタル１６１４Ｆによって管理される。例示されたネットワークセキュリティシステムは、２つの仮想シャーシ１６０８及び１６０９を含む。一実施形態における管理プレーン１６０２は、仮想シャーシ１６０８及び１６０９並びにデータセンターの仮想環境１６１４Ａ〜１６１４Ｆと制御パケットをやり取りする。
【０１００】
一実施形態によれば、ネットワークセキュリティシステムは、既存の仮想システム及び物理システムと対話形式でやり取りするようにそれぞれがカスタマイズされた複数のセグメントマイクロサービスを提供する。ここで、特別に設計されたセグメントマイクロサービス１６１０Ａが、ＶＭｗａｒｅ（ＥＳＸ）１６１４Ａ及びＮｅｔＸエージェント１６１２Ａと対話形式でやり取りし、特別に設計されたセグメントマイクロサービス１６１０Ｂが、ＳＤＮ１６１２Ｂ及びＫＶＭ１６１４Ｂと対話形式でやり取りするように設計され、特別に設計されたセグメントマイクロサービス１６１０Ｃが、ＷＦＰ１６１２Ｃ及びＨｙｐｅｒ−Ｖ１６１４Ｃと対話形式でやり取りするように設計され、特別に設計されたセグメントマイクロサービス１６１０Ｄが、ＮＡＴ１６１２Ｄ及びＡｍａｚｏｎ（ＥＣ−２）１６１４Ｄと対話形式でやり取りするように設計され、特別に設計されたセグメントマイクロサービス１６１０Ｅが、ＡＣＩ１６１２Ｅ及びＣｉｓｃｏ（ＡＣＩ）１６１４Ｅと対話形式でやり取りするように設計され、特別に設計されたセグメントマイクロサービス１６１０Ｆが、ベアメタル１６１４Ｆで動作するネットワークエージェント１６１２Ｆと対話形式でやり取りするように設計される。動作に際しては、ネットワークセキュリティシステムがインラインでデプロイされている場合、特別に設計されたセグメントマイクロサービス１６１０Ａ〜１６１０Ｆのそれぞれが、パケットを捕捉し、これらのパケットをデータパスマイクロサービスを通じてルーティングし、次にこれらのパケットを対応するデータセンター環境に転送するように構成される。「コピーのみ」のコンフィギュレーションでデプロイされている場合、ネットワークセキュリティシステムはトラフィックを監視し、どんな脅威でも検知されるか又は疑われる場合にはアラートを発する。
【０１０１】
例示するように、管理プレーン１６０２は、仮想シャーシ１（１６０８）及び仮想シャーシ２（１６０９）内の複数のマイクロサービスのうちの少なくとも１つ、並びにデータセンター環境１６１０Ａ〜−Ｆ、１６１２Ａ〜Ｆ、及び１６１４Ａ〜Ｆのうちの少なくとも１つに制御メッセージを伝える。したがって、ネットワークセキュリティシステムの管理プレーン１６０２は、コンフィギュレーション中にそうすることが有効である場合、管理プレーン１６０２のデプロイメント前に配置されたものであっても、任意のデータセンター環境に制御メッセージを送る。動作に際しては、いくつかの実施形態においてセグメントマイクロサービス１６１０Ａ−Ｆによって捕捉されたトラフィックが、仮想シャーシ１（１６０８）又は仮想シャーシ２（１６０９）のデータセキュリティマイクロサービスに転送される。仮想シャーシ１（１６０８）又は仮想シャーシ２（１６０９）は、脅威を検知した場合、関連するデータセンター環境に通知する。いくつかの実施形態におけるそのようなシナリオでは、管理プレーン１６０２が「停止」メッセージを関連するデータセンター環境に送る。代替実施形態において、そのようなシナリオでは、管理プレーン１６０２がハイパーバイザ１６１４Ａ〜１６１４Ｆのうち１つ又は複数に命令して、自身の関連するマイクロサービスをリブート又は再起動させる。
【０１０２】
図１７は、一実施形態に従って、脅威イベントへのネットワークセキュリティシステムの対応を例示するブロックフロー図である。例示するように、数字「１」で示されるセキュリティの脅威が仮想シャーシ２（１７０９）のあるマイクロサービスによって検知される。この脅威は、数字「１」で示される矢印を経てイベント結果ＢｉｇＤＢ１７１８に転送され、そこに格納される。この脅威は次に、ラベル「２」で示される矢印を経て管理プレーン１７０２に転送される。管理プレーン１７０２は次に、自身のセキュリティポリシーを確認して、検知された脅威への対応として、ネットワークセキュリティシステムの１つ又は複数のマイクロサービスを停止して再起動するために、「４」とラベルが付いた矢印を経てオーケストレータ１７２０に通知することを要求するかどうかを判定する。オーケストレータ１７２０は、「５」とラベルが付いた矢印を経て、１７１０Ａ〜Ｆ、１７１２Ａ〜Ｆ、及び１７１４Ａ〜Ｆの中の１つ又は複数のマイクロサービスの停止及び再起動を要求することで対応する。管理プレーン１７０２は、いくつかの実施形態において、「３」とラベルが付いた矢印を経て、１７１０Ａ〜Ｆ、１７１２Ａ〜Ｆ、及び１７１４Ａ〜Ｆ並びに仮想シャーシ１（１７０８）及び仮想シャーシ２（１７０９）のマイクロサービスの中の少なくとも１つのマイクロサービスを停止、再起動、又は別の状況では変更することによって、検知された脅威に対応する。
【０１０３】
図１８は、一実施形態に従って、セキュリティポリシーを受け取り、セキュリティポリシーをセキュリティ言語に変換し、セキュリティポリシーをバイナリにコンパイルし、セキュリティポリシーを各マイクロサービスにロードすることを例示するフロー図である。例示するように、ネットワークセキュリティシステムは、ＡＣＬ１８０２（アクセス制御リスト：ＴＣＰ／ＩＰ  Ｎ−タプルに基づくシグネチャ）、ＵＲＬ１８０４（ユニフォームリソースロケータ）、ＡｐｐＩＤ１８０６（アプリケーションＩＤ）、ＩＰＲｅｐ１８０８（インターネットプロトコル表現）、ファイルＲｅｐ１８１０（ファイル表現）、エクスプロイトシグネチャ１８１２、及びポリシー１８１４Ａを含む新規又は更新済みのセキュリティポリシーを受け取る。いくつかの実施形態において、ネットワークセキュリティシステム１８００は、異なるメッセージ形式のメッセージを受け取って変換するようにカスタマイズされた変換器１８１４Ｂ〜１８１４Ｇを提供する。変換器１８１４Ｂ〜Ｇは、入ってくるシグネチャをＳＬコンパイラ１８１８が理解できる共通言語に変換する。ＳＬコンパイラ１８１８は、マイクロサービス１８２８〜１８３８が理解できるバイナリ表現又は他の表現にシグネチャをコンパイルする。いくつかの実施形態において、新規又は更新済みのシグネチャは、コンパイルされると、メッセンジャー１４２０（図１４）などのメッセンジャーに配置されて、関係のあるマイクロサービスによって消費される。いくつかの実施形態において、ＳＬコンパイラ１８１８は、メッセンジャー１４２０（図１４）などのメッセンジャーを迂回して、新規又は更新済みのポリシーを関係のあるマイクロサービスに直接パブリッシュする。いくつかの実施形態において、新規又は更新済みのシグネチャは、コンパイルされると、データベース１４１８（図１４）などのデータベースに配置される。
【０１０４】
図１９は、一実施形態に従って、サードパーティのセキュリティツールとインタフェースで接続したネットワークセキュリティシステムを例示するブロック図である。例示するように、ネットワークセキュリティシステムは、管理プレーン１９０２と、バックプレーン１９０６と、データパスプレーン１９０４とを含む。例示するように、管理プレーン１９０２は、インフラストラクチャディスカバリマイクロサービス１９１２と、スケーラーマイクロサービス１９１４と、シャーシコントローラマイクロサービス１９１６とを含むファクトリ１９１０、及びデータベース１９１８を利用する。いくつかの実施形態において、ファクトリ１９１０は、上述したように、ファクトリモデルに従って規定されたマイクロサービス仮想化環境を有する。管理プレーン１９０２は、コンフィギュレーションマイクロサービス１９０８も含み、これはいくつかの実施形態において、図１４に関して例示され説明されたコンフィギュレーションマイクロサービス１４０８と同様に機能する。例示するように、管理プレーン１９０２及びデータパスプレーン１９０４は、データセンターと通信するためのインタフェース１９２６及び１９２８を含む。
【０１０５】
データパスプレーン１９０４は、例示するように、セグメントマイクロサービス１９３２、ＴＣＰ／ＩＰマイクロサービス１９３４、ＳＳＬマイクロサービス１９３６、ＤＰＩマイクロサービス１９３８、ＮＯＸマイクロサービス１９４０、及びＤＬＰマイクロサービス１９４２を含む。これらのマイクロサービスは図１４に関して上述されたので、その説明はここで繰り返さない。図１９は、サードパーティのスレットインテリジェンスツール１９４４、サンドボックス１９４６、及びダイナミックスレットインテリジェンス１９４８を例示している。一実施形態において、サードパーティのスレットインテリジェンスツール１９４４は、ＤＰＩマイクロサービス１９３８、ＮＯＸマイクロサービス１９４０、又はＤＬＰマイクロサービス１９４２から、これらのマイクロサービスのいずれかが、あるファイルタイプ、ファイルコンテンツ、シグネチャ、ＴＣＰ／ＩＰの５−タプル特性、疑わしいバイナリ、又は疑わしいコードシーケンスに遭遇したがどのセキュリティポリシーにも認識されていない場合に、電子通信リンクを介して連絡を受ける。そのような状況において、データパスプレーン１９０４は、データを分析のためにサードパーティのスレットインテリジェンスツール１９４４に転送する。
【０１０６】
一実施形態において、サードパーティのインテリジェンスツール１９４４は、通信リンクを提供し、データパスプレーン１９０４がサードパーティのインテリジェンスツール１９４４と通信するのに用いるＡＰＩを規定する。いくつかの実施形態において、サードパーティのスレットインテリジェンスツール１９４４は、サードパーティのスレットインテリジェンスツール１９４４が認識している脅威と一致する、サードパーティのスレットインテリジェンスツール１９４４が認識している挙動パターンと、転送されたデータとを比較する。一実施形態において、サードパーティのスレットインテリジェンスツール１９４４は、サードパーティの脅威情報を定期的にやり取りするネットワークセキュリティツール及びサービスのグローバルネットワークと関連している。例示された実施形態において、サードパーティのスレットインテリジェンスツール１９４４は、４つの仮想マシンをインスタンス化して４つのオペレーティングシステムを動作させ、これらの仮想マシンはハイパーバイザによって管理される。
【０１０７】
次に、サードパーティのスレットインテリジェンスツール１９４４が脅威を検知して解決した場合、サードパーティのスレットインテリジェンスツール１９４４は、この新たな脅威を取り扱う新規のセキュリティポリシーをダイナミックスレットインテリジェンス１９４８に通知する。１つの実施形態において、ダイナミックスレットインテリジェンス１９４８は、更新情報を受け取って当該更新情報をセキュリティマイクロサービスにパブリッシュする有人又は自動化されたセキュリティオフィスで構成される。一実施形態において、ダイナミックスレットインテリジェンス１９４８は次に、更新されたセキュリティポリシーをＳＬコンパイラ１９５０に転送し、ＳＬコンパイラ１９５０は、一実施形態において、図１８に関して説明されたように、ポリシーフィードを共通言語に変換し、変換されたポリシーフィードをバイナリにコンパイルして、コンパイルされたポリシーフィードをマイクロサービスに配布させる。
【０１０８】
いくつかの実施形態において、サンドボックス１９４６は、ＤＰＩマイクロサービス１９３８、ＮＯＸマイクロサービス１９４０、又はＤＬＰマイクロサービス１９４２が、疑わしいがどのセキュリティポリシーにも認識されていないファイルタイプ、シグネチャ、ＴＣＰ／ＩＰの５−タプル特性、バイナリ、又はコードシーケンスに遭遇した場合に連絡を受ける。そのようなシナリオにおいて、疑わしいが認識されていないデータ及びパケットがサンドボックス１９４６に転送され、ここで、未検証のサードパーティやサプライヤ、信頼できないユーザ、及び信頼できないＵＲＬからの、未検査のコード又は信頼できないプログラムが検査を受ける。サンドボックス１９４６で分かったことは何であれ、ダイナミックスレットインテリジェンス１９４８に提供され、その後ＳＬコンパイラ１９５０に提供される。ＳＬコンパイラ１９５０は、一実施形態において、図１８に関して説明されたように、ポリシーフィードを共通言語に変換し、変換されたポリシーフィードをバイナリにコンパイルして、コンパイルされたポリシーフィードをマイクロサービスに配布させる。
【０１０９】
図２０は、一実施形態に従って、データパケットのマイクロサービスキューへのロードスタックを例示するフロー図である。いくつかの実施形態が、コンテキストに基づく負荷のロードスタックを行う。ロードスタックは、複数のマイクロサービスの間で負荷を分散する手法のことを指す。セグメントマイクロサービス２０３２、ＴＣＰ／ＩＰマイクロサービス２０３４Ａ〜Ｂという２つのインスタンス、ＤＰＩマイクロサービス２０３６Ａ〜Ｄという４つのインスタンスが例示されている。ＤＰＩデータキュー２０４０Ａ〜Ｄに注目すると、各ＤＰＩマイクロサービスは、データを保持するための４つの「バケット」又は「スロット」を含むキューを持っている。合計１６個のバケットが２０１０としてラベル付けされている。一実施形態において、入ってくるデータパケット２０１２が、利用できる第１のマイクロサービスキューにロードスタックされる。本明細書で使用されるとき、ロードスタックとは、パケットを第２のキューにロードする前に、第１のキューに閾値レベルまで積み上げることを指す。ロードスタックには、未使用のマイクロサービスの電源を切って節電するように、使用されるマイクロサービスの数を最小限に抑えるという利点がある。ロードスタックには、マイクロサービスのスケールアウトをサポートするのに利用できる実質的に空のキューがあるという利点もある。いくつかの実施形態において、入ってくる４つのパケットが、４つ全てのマイクロサービスキューに均等に分散されることでバランスを保つ。負荷分散手法によって、ネットワークセキュリティシステムがより低い性能のマイクロサービスで済ますことが可能になる。
【０１１０】
図２１は、一実施形態によるシステム内データ通信を例示するブロック図である。例示するように、データセンターは、４つの仮想ネットワークインタフェースカードである２１０４Ａ〜Ｄに分割されており、様々なマイクロサービスである２１０２、２１０４Ａ〜Ｄ、２１０６、２１０８、２１１０、２１１２、２１１４、２１１６、２１１８、２１２０、２１２２、２１２４、２１２６、及び２１２８を含む。一実施形態において、一実施形態における仮想ラインカード間の通信は直接的ではなく、通信は最初にバックプレーン２１０２に行き、次に宛先ラインカードに行く。図２１は、３つの通信パス、すなわち、２１０６を中継点として利用したＶＭ１（２１０２）からセグメントマイクロサービス２１０８までのパス、２１０６を中継点として利用したセグメントマイクロサービス２１０８からＤＰＩ２１１８までのパス、及び２１０６を中継点として利用したＤＰＩ２１１８からＶＭ３（２１１２）までのパスを例示している。他の実施形態において、ある管理マイクロサービスから別の管理マイクロサービスへの通信はどれも、バックプレーン２１０６を中継点として利用した、この同じ２段階プロセスを用いる。
【０１１１】
図２２は、一実施形態に従って、ネットワークセキュリティをデータセンターに提供するためにインストールするマイクロサービスの選択プロセスを例示するフロー図である。例示するように、開始した後に２２０２で、仮想マシン（ＶＭ）がインターネット又はコンピュータ可読媒体からダウンロードされ、次いでインストールされ、起動される。２２０４で、ファクトリ１４１０（図１４）などのファクトリがインスタンス化され、管理プレーン１４０２（図１４）などの管理プレーン、バックプレーン１４０６（図１４）などのバックプレーン、及びデータベースマイクロサービス１４１８（図１４）などのデータベースマイクロサービスが同様にインスタンス化される。２２０４の後に、これらのマイクロサービスは、個別ではなく、集合体として連絡を受ける。次に、２２０６で、ディスカバリマイクロサービス１４２２（図１４）などのディスカバリマイクロサービスが、データセンター８３０（図８）などのデータセンターに接続してディスカバリを行う。この状態でのディスカバリは、セキュリティサービスのデプロイメントの候補であるネットワーク及びサーバを識別することと、これらの要素の間の接続をマッピングすることとで構成される。２２０８で、コンフィギュレーションマイクロサービス１４０８（図１４）などのコンフィギュレーションマイクロサービスが、ユーザインタフェースを用いるか、又はＲＥＳＴｆｕｌな命令を企業用ソフトウェアから受け取って、所望のマイクロサービスを選択する。２２１０で、選択されたセグメントマイクロサービス及び様々なデータパスマイクロサービスがインスタンス化される。２２１１で、ポリシーがコンパイルされ、キー／バリューストア型データベースに配布される。２２１２で、ポリシーは、マイクロサービスが自動的にインスタンス化されスケーリングされるということであり、複数のポリシーがインストールイメージなどの最新のソース、製品ウェブサイト若しくはアプリケーションストア、又は他の場所から取得される。図２２には図示されていないが、２２１２がマイクロサービスをそのセキュリティポリシーで構成するように実行されるので、ネットワークセキュリティシステムもキーバリューストア１５０８（図１５）を更新して、暗号化通信に用いられる全てのキーをセキュアに格納し、これらのキーへの高速アクセスを提供する。２２１３で、脅威ポリシーがコンフィギュレーションマイクロサービスによってコンパイルされ、全てのマイクロサービスに配布される。最後に２２１４で、標準的な検査オペレーションが始まり継続する。
【０１１２】
ネットワークセキュリティシステムのマイクロサービスをインストールし、構成し、実行するプロセスを完了した後に、コンパイラマイクロサービス１４１８（図１４）は、１つの実施形態において、更新済みポリシー又は新規のマイクロサービスが存在するかどうかポリシー更新クラウド１４３０（図１４）を定期的に確認する。いくつかの実施形態において、ポリシー更新クラウド１４３０（図１４）は、新規のポリシー又は新規のマイクロサービスをコンパイラマイクロサービス１４１８（図１４）にプッシュする。いずれの場合でも、ネットワークセキュリティシステムは、自身のマイクロサービスを更新する。このことは、図２５を参照して以下に例示され、説明される。
【０１１３】
図２３は、デプロイメント仕様に従って、ネットワークセキュリティシステムをインストールして構成し、ネットワークセキュリティをデータセンターに提供するプロセスの一実施形態を例示するフロー図である。本明細書で使用されるとき、デプロイメント仕様は、マイクロサービスをインスタンス化するためのパラメータ（場所、データストア、ネットワークなど）を規定する。２３０２で、仮想マシンがダウンロードされ、ハイパーバイザにデプロイされ、起動し、自身のユーザインタフェースがアクセスされる。２３０４で、データセンターの仮想化環境に対する認証情報がＶＭに提供される。２３０６で、インフラストラクチャディスカバリサービス１３１２（図１３）などのインフラストラクチャディスカバリマイクロサービスが、データセンターを探索し、ネットワーク、ホスト、ＶＭ、及びデータストアを識別する。ディスカバリマイクロサービス１３１２（図１３）によって発見されたプロファイルによって、コンフィギュレーションマイクロサービス１３１４（図１３）がデプロイメントオプションを提案し、マイクロサービスを構成することが可能になる。本明細書で使用されるとき、マイクロサービスのコンフィギュレーションは、マイクロサービスの挙動をポリシーから独立して規定する一組の可変データを規定する。提案されたデプロイメントオプションは、任意の利用可能な新規のセキュリティポリシー及び利用可能なマイクロサービスタイプも含む。２３０８で、マイクロサービスデプロイメント仕様が作成される。この仕様には、マイクロサービスをどこにどれだけデプロイするかを指定することが含まれる。一実施形態において、マイクロサービスデプロイメント仕様は、仕様を確認して提案されたマイクロサービスアップグレードを受け入れるユーザインタフェース又は企業用ソフトウェアに伝達される。ユーザ又は企業用ソフトウェアは、マイクロサービスをどこにどれだけデプロイするかに関する制約の遵守を含めた、デプロイメント仕様の管理を行う。２３１０で、セキュリティグループが作成され、セキュリティポリシーと関連付けられる。２３１２で、マイクロサービスは自動的にスケーリングされる。次に、マイクロサービスはセキュリティ結果の保護及び抽出を開始する。２３１４で、結果が生成されて提供され、カスタマイズ可能応答で応答される。
【０１１４】
図２４は、一実施形態に従って、ネットワークセキュリティシステムを通るデータフローを処理するプロセスを例示するフロー図である。２４０２で、ネットワークセキュリティシステムは、データセンター内のＶＭが外部から切り離されていること、次にログインされていることを検知する。ソーシャルエンジニアリングを利用して、一実施形態における外部のハッカーが、データセンターの仮想マシンマネージャにログインする方法を見つける。２４０４で、ＳＳＨトラフィック（すなわち、データセンター内のリソースにアクセスするセキュアシェルコマンド）が検知される。２４０６で、悪性バイナリのダウンロード若しくは作成、又は悪性バイナリにコンパイルされるソースコードの作成さえも検知される。２４０８で、バイナリを用いて他のＶＭホストを調査する偵察（上記の表２を参照）が検知される。同様に、２４１０で、他の利用可能なホストを探すホストスイープが検知される。そのようなホストスイープは、データセンターに組み込まれているネットワークセキュリティシステムからは認識できるが、データセンターの外部からは認識できない。２４１２で、攻撃が検知される。この攻撃は悪性バイナリを他の利用可能なＶＭに横展開する企てである。ネットワークセキュリティシステムは既に２４０８で偵察を確認したので、誰か（ハッカー）が別の利用可能なＶＭを探していることが分かっている。２４１４で、攻撃及び関連した横展開が防止され、このことは以前に経験したことがないため、報告が生成される。さらに、複数のＶＭの間を動き回る未知のバイナリを観察することで、ゼロデイ攻撃が検知される。例示されるように、ネットワークセキュリティシステムは、２４０２、２４０４、２４０６、２４０８、２４１０、及び２４１２で疑わしいイベントを検知する。しかしながら、こうしたイベントのサブセットが検知された場合は、いくつかの実施形態において対応策が取られる。これがゼロデイ攻撃である。
【０１１５】
図２５は、一実施形態に従って、実行時にネットワークセキュリティシステムの電源を切ることなく、マイクロサービスセキュリティポリシーをアップグレードするプロセスを例示するフロー図である。２５０２で、コンパイラ（図１９に要素１９５０として示されている）が新規のマイクロサービスを検知して、それをダウンロードする。２５０４で、ディスカバリマイクロサービスが、その新規のマイクロサービスをインスタンス化するようにオーケストレータに命令する。２５０６で、新規のマイクロサービスが顧客のデータセンターにインストールされる。２５０８で、セキュリティポリシーが取得され、新規のマイクロサービスに適用される。これで、新規のマイクロサービスはトラフィックに対応する準備が整う。２５１０で、シャーシコントローラ１４１６（図１４）は、これまで使われていたマイクロサービスを新規のマイクロサービスに割り当てる。例えば、新規のＴＣＰ／ＩＰマイクロサービスをインストールする場合、これまで使われていたものはセグメントマイクロサービスである。さらなる例として、新規のＳＳＬマイクロサービスをインストールする場合、これまで使われていたものはＴＣＰ／ＩＰマイクロサービスである。２５１２で、シャーシコントローラは、古い方のマイクロサービスに自身の状態を保存するように命令し、新規のマイクロサービスにその保存された状態を受け取るように命令する。２５１４で、これまで使われていたマイクロサービスは、自身のロードスタックアルゴリズムを調整して、パケットを新規のマイクロサービスに転送する。新規のマイクロサービスは引き続きトラフィックを受け取るが、古い方のマイクロサービスは受け取るトラフィックが次第に少なくなる。その結果、あるマイクロサービスが、残りのマイクロサービスに影響を与えることなく又は残りのマイクロサービスを必要とすることさえもなく、アップグレードされる。これによって、特定のマイクロサービスがシステムの電源を切ることなくアップグレードされることも可能になる。
【０１１６】
図２６は、一実施形態に従って、ネットワークセキュリティシステムの電源を切ることなく、負荷状態に応じてマイクロサービスを動的にスケールアウトするプロセスを例示するフロー図である。２６０２で、マイクロサービスが自身の負荷を監視して、その負荷をスケーラーマイクロサービスに報告する。１つの実施形態において、マイクロサービスの負荷が、これまで使われていたマイクロサービスから受け取るパケットの数を反映する。いくつかの実施形態において、マイクロサービスの負荷が、当該マイクロサービス内のデータキューの現在の深さを反映する。２６０４で、スケーラーマイクロサービスが、各マイクロサービスの負荷を監視して、その負荷を閾値と比較する。２６０６で、閾値を超えている場合には、スケーラーマイクロサービス１４１４（図１４）は、新規のマイクロサービスにとって最適な場所を識別する。一実施形態において、新規のマイクロサービスにとって最適な場所を識別する際には、他の関連するマイクロサービス又は関連のないマイクロサービスにかかる負荷、データパスプレーン又はネットワークセキュリティシステム全体のスループット、データパスプレーンを通って移動するパケットのレイテンシ、及び機能又はリソースの可用性を考慮に入れる。ユーザ又は企業用ソフトウェアによってコンフィギュレーション中に提供されるサービス品質の要件が、例えばブロック２２０８（図２２）で、新規のマイクロサービスをインストールするかどうか、また新規のマイクロサービスをどこにインストールするかを判定する場合に考慮される。１つの実施形態において、スケーラー１４１４（図１４）は「消極的」ポリシーを適用し、新規のマイクロサービスをインスタンス化するのにより多くのサポートを必要とする。例えば、「消極的」ポリシーを適用する際に、スケーラー１４１４（図１４）は、新規のマイクロサービスをインスタンス化する前に、追加のマイクロサービスの必要性を示唆する最小数の高負荷マイクロサービス、又は最小継続時間の過負荷状態、又は潜在的な障害、又は他の根拠を必要とする。いくつかの実施形態において、スケーラー１４１４（図１４）は「積極的（ｖｉｖａｃｉｏｕｓ）」ポリシーを適用して、追加のマイクロサービスを自由にインスタンス化し、マイクロストラクチャの負荷統計値を分析し、追加のマイクロサービスのインスタンス化に向かう傾向がある。２６０８で、新規のマイクロサービスインスタンスが必要であるとスケーラー１４１４が判定した場合、スケーラー１４１４は、インフラストラクチャディスカバリマイクロサービス１４１２（図１４）に新規のマイクロサービスインスタンスをインスタンス化するよう命令する。２６１０で、インフラストラクチャディスカバリマイクロサービス１４１２（図１４）が、新規のマイクロサービスを仮想化環境に通知する。本明細書で使用されるとき、保護されているデータセンターの顧客側でのマイクロサービスのインスタンス化及びデプロイメントを、仮想化環境が管理する。２６１２で、シードコンフィギュレーションデータが、新規のマイクロサービスが用いるために用意されるので、新規のマイクロサービスはどのデータバスを用いるか、及びどのデータベースを用いるかを認識する。２６１４で、新規のマイクロサービスが起動し、シードデータを利用して新規のマイクロサービス自体を構成する。２６１６で、制御が図２５の２５０８に転送される。
【０１１７】
図２７は、一実施形態に従って、ネットワークセキュリティシステムとローカルに又はリモートに対話形式でやり取りするプロセスを例示するフロー図である。例示するように、プロセス２７００は、ネットワークセキュリティシステムとインタフェースで接続する３つの異なる方法を試みる。２７０２で、ユーザインタフェースの存在を確認する。ユーザインタフェースは、顧客が対話形式でやり取りするローカルＵＩである。２７０４で、ユーザがＲＥＳＴｆｕｌなＡＰＩを用いて伝達される選択肢をＵＩに、そしてＡＰＩゲートウェイに、次に他のマイクロサービスに入力する。２７０６で、ＲＥＳＴｆｕｌなＡＰＩとやり取りするＯＳＳ（Ｏｐｅｒａｔｉｏｎａｌ  Ｓｕｐｐｏｒｔ  Ｓｙｓｔｅｍｓ：オペレーションサポートシステム）又はＢＳＳ（Ｂｕｓｉｎｅｓｓ  Ｓｕｐｐｏｒｔ  Ｓｙｓｔｅｍｓ：ビジネスサポートシステム）ソフトウェアの存在が判定される。２７０８で、ＯＳＳ／ＢＳＳソフトウェアはＲＥＳＴｆｕｌな通信を用いて、所望のコンフィギュレーションをＲＥＳＴｆｕｌなＡＰＩに、次にＡＰＩゲートウェイに、次いで他のマイクロサービスに提供する。２７１０で、コマンドラインインタフェース（ＣＬＩ）の存在が判定される。２７１２で、ＣＬＩコマンドが用意され、ＲＥＳＴｆｕｌなＡＰＩに、次にＡＰＩゲートウェイに、次いで他のマイクロサービスに送られる。
【０１１８】
前述の明細書には、特定の代表的な実施形態が開示されている。しかしながら、添付の特許請求の範囲に記載されるような本発明の広範な意図及び範囲から逸脱することなく、様々な修正及び変更がこれらの実施形態に施され得ることは明らかである。したがって、本明細書及び図面は、限定的な意味ではなく、例示的なものとみなされることになる。
【０１１９】
本明細書に開示されたいくつかの実施形態は、ハードウェア実行ユニット及び論理回路の文脈で、データ処理及びデータ配布を含むが、他の実施形態は、マシンによって実行された場合に少なくとも１つの実施形態に適合した機能をマシンに実行させる、非一時的な有形のマシン可読媒体に格納されたデータ又は命令によって実現され得る。１つの実施形態において、本開示の実施形態と関連する機能がマシン実行可能命令で具現化される。これらの命令は、当該命令でプログラムされた汎用プロセッサ又は専用プロセッサに、少なくとも１つの実施形態の各段階を実行させるのに用いられ得る。本発明の実施形態は、コンピュータ（又は、他の電子デバイス）をプログラムして、少なくとも１つの実施形態による１つ又は複数のオペレーションを実行するのに用いられ得る命令を格納したマシン可読媒体又はコンピュータ可読媒体を含み得る、コンピュータプログラム製品又はソフトウェアとして提供され得る。あるいは、これらの実施形態の各段階は、これらの段階を実行するための固定機能ロジックを含む特定のハードウェアコンポーネントによって、又はプログラムされたコンピュータコンポーネントと固定機能ハードウェアコンポーネントとの任意の組み合わせによって実行されてもよい。
【０１２０】
回路をプログラムして少なくとも１つの実施形態を実行するのに用いられる命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ、又は他の記憶装置などの、システム内のメモリに格納され得る。さらに、これらの命令は、ネットワークを介して、又は他のコンピュータ可読媒体によって配布され得る。したがって、コンピュータ可読媒体は、マシン（例えばコンピュータ）が可読な形態で情報を格納又は伝送するための任意のメカニズムを含んでよく、限定されないが、フロッピー（登録商標）ディスケット、光ディスク、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、光磁気ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能型リードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能型リードオンリメモリ（ＥＥＰＲＯＭ）、磁気カード若しくは光カード、フラッシュメモリ、又は電気的、光学的、音響的、若しくは他の形態の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号など）によってインターネットを介して情報を伝送するのに用いられる有形のマシン可読記憶装置などである。したがって、非一時的コンピュータ可読媒体は、電子命令又は情報をマシン（例えばコンピュータ）が可読な形態で格納又は伝送するのに適した任意のタイプの有形なマシン可読媒体を含む。
【０１２１】
いくつかの実施形態において、第１の階層の新規のマイクロサービスを作成する段階と、新規のマイクロサービスと第２の上位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、新規のマイクロサービスと第３の下位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、第１の階層に対する負荷分散決定に新規のマイクロサービスを含めるように第３の下位レベルの階層のマイクロサービスを構成する段階とのうち１つ又は複数の段階を行うことを含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、新規のマイクロサービスが既存のマイクロサービスによって作成される。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、新規及び既存のマイクロサービスはバックプレーンを介して通信する。いくつかの実施形態において、新規のマイクロサービスはデータプレーンを用いるように構成される。いくつかの実施形態において、新規のマイクロサービスを作成する前に、新規のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、管理されたネットワークを含む。
【０１２２】
いくつかの実施形態において、命令を実行するハードウェアプロセッサと、ハードウェアプロセッサによって実行された場合にある方法を実行させる命令を格納するメモリとのうち１つ又は複数を含むシステム、装置、コンピュータ実装方法が説明される。本方法は、第１の階層の第１のマイクロサービスを選択する段階と、第１のマイクロサービスを第１の階層に対する負荷分散決定から除外するように第２の下位レベルの階層のマイクロサービスを構成する段階と、第１のマイクロサービスと第２の階層のマイクロサービスとの間のデータプレーン接続を無効にする段階と、第１のマイクロサービスを終了させる段階とを含む。いくつかの実施形態において、第１のマイクロサービスは既存のマイクロサービスによって終了する。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、第１及び既存のマイクロサービスはバックプレーンを介して通信する。いくつかの実施形態において、第１のマイクロサービスを終了させる間に、第１のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、管理されたネットワークを含む。
【０１２３】
いくつかの実施形態において、第１の階層の第１のマイクロサービスを選択する段階と、第１の階層に対する負荷分散決定から第１のマイクロサービスを除外するように第２の下位レベルの階層のマイクロサービスを構成する段階と、第１のマイクロサービスを別のサーバに移動させる段階と、サーバの変更を反映させるように第１のマイクロサービスへのデータプレーン接続を構成する段階と、第１の階層に対する負荷分散決定に第１のマイクロサービスを含めるように第２の階層のマイクロサービスを構成する段階とのうち１つ又は複数の段階を行うことを含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、第１のマイクロサービスは既存のマイクロサービスによって作成された。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、第１のマイクロサービス及び第２の下位レベルの階層のマイクロサービスは、バックプレーンを介して通信する。いくつかの実施形態において、第１のマイクロサービスはデータプレーンを用いるように構成される。いくつかの実施形態において、第１のマイクロサービスを別のサーバに移動させる前に、第１のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、管理されたネットワークを含む。
【０１２４】
いくつかの実施形態において、第１の階層の新規のマイクロサービスを作成する段階と、新規のマイクロサービスと第２の上位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、新規のマイクロサービスと第３の下位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、第１の階層に対する負荷分散決定に新規のマイクロサービスを含めるように第３のレベルの階層のマイクロサービスを構成する段階とのうち１つ又は複数の段階を行うことを含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、新規のマイクロサービスは既存のマイクロサービスによって作成される。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、新規及び既存のマイクロサービスはバックプレーンを介して通信する。いくつかの実施形態において、新規のマイクロサービスはデータプレーンを用いるように構成される。いくつかの実施形態において、新規のマイクロサービスを作成する前に、新規のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、管理されたネットワークを含む。
【０１２５】
いくつかの実施形態において、第１の階層の第１のマイクロサービスを選択する段階と、第１のマイクロサービスを第１の階層に対する負荷分散決定から除外するように第２の下位レベルの階層のマイクロサービスを構成する段階と、第１のマイクロサービスと第２の階層のマイクロサービスとの間のデータプレーン接続を無効にする段階と、第１のマイクロサービスを終了させる段階とのうち１つ又は複数の段階を行うことを含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、第１のマイクロサービスは既存のマイクロサービスによって終了する。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、第１及び既存のマイクロサービスはバックプレーンを介して通信する。いくつかの実施形態において、第１のマイクロサービスを終了させる間に、第１のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、管理されたネットワークを含む。
【０１２６】
いくつかの実施形態において、第１の階層の第１のマイクロサービスを選択する段階と、第１の階層に対する負荷分散決定から第１のマイクロサービスを除外するように第２の下位レベルの階層のマイクロサービスを構成する段階と、第１のマイクロサービスを別のサーバに移動させる段階と、サーバの変更を反映させるように第１のマイクロサービスへのデータプレーン接続を構成する段階と、第１の階層に対する負荷分散決定に第１のマイクロサービスを含めるように第２の階層のマイクロサービスを構成する段階とのうち１つ又は複数の段階を行うことを含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、第１のマイクロサービスは既存のマイクロサービスによって作成された。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、第１のマイクロサービス及び第２の下位レベルの階層のマイクロサービスは、バックプレーンを介して通信する。いくつかの実施形態において、第１のマイクロサービスはデータプレーンを用いるように構成される。いくつかの実施形態において、第１のマイクロサービスを別のサーバに移動させる前に、第１のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、管理されたネットワークを含む。
【０１２７】
いくつかの実施形態において、第１の階層の新規のマイクロサービスを作成する段階と、新規のマイクロサービスと第２の上位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、新規のマイクロサービスと第３の下位レベルの階層のマイクロサービスとの間にデータプレーン接続を構成する段階と、第１の階層に対する負荷分散決定に新規のマイクロサービスを含めるように第３のレベルの階層のマイクロサービスを構成する段階とのうち１つ又は複数の段階をプロセッサに実行させる非一時的コンピュータ可読媒体に含まれるコンピュータ実行可能命令を実行する段階を含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、新規のマイクロサービスは既存のマイクロサービスによって作成される。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、新規及び既存のマイクロサービスはバックプレーンを介して通信する。いくつかの実施形態において、新規のマイクロサービスはデータプレーンを用いるように構成される。いくつかの実施形態において、新規のマイクロサービスを作成する前に、新規のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、プロセッサによって管理されるネットワークを含む。
【０１２８】
いくつかの実施形態において、第１の階層の第１のマイクロサービスを選択する段階と、第１のマイクロサービスを第１の階層に対する負荷分散決定から除外するように第２の下位レベルの階層のマイクロサービスを構成する段階と、第１のマイクロサービスと第２の階層のマイクロサービスとの間のデータプレーン接続を無効にする段階と、第１のマイクロサービスを終了させる段階とのうち１つ又は複数の段階をプロセッサに実行させる非一時的コンピュータ可読媒体に含まれるコンピュータ実行可能命令を実行する段階を含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、第１のマイクロサービスは既存のマイクロサービスによって終了する。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、第１及び既存のマイクロサービスはバックプレーンを介して通信する。いくつかの実施形態において、第１のマイクロサービスを終了させる間に、第１のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、プロセッサによって管理されるネットワークを含む。
【０１２９】
いくつかの実施形態において、第１の階層の第１のマイクロサービスを選択する段階と、第１の階層に対する負荷分散決定から第１のマイクロサービスを除外するように第２の下位レベルの階層のマイクロサービスを構成する段階と、第１のマイクロサービスを別のサーバに移動させる段階と、サーバの変更を反映させるように第１のマイクロサービスへのデータプレーン接続を構成する段階と、第１の階層に対する負荷分散決定に第１のマイクロサービスを含めるように第２の階層のマイクロサービスを構成する段階とのうち１つ又は複数の段階をプロセッサに実行させる非一時的コンピュータ可読媒体に含まれるコンピュータ実行可能命令を実行する段階を含む、システム、装置、コンピュータ実装方法が説明される。いくつかの実施形態において、第１のマイクロサービスは既存のマイクロサービスによって作成された。いくつかの実施形態において、既存のマイクロサービスはコンフィギュレーションマイクロサービスである。いくつかの実施形態において、第１のマイクロサービス及び第２の下位レベルの階層のマイクロサービスは、バックプレーンを介して通信する。いくつかの実施形態において、第１のマイクロサービスはデータプレーンを用いるように構成される。いくつかの実施形態において、第１のマイクロサービスを別のサーバに移動させる前に、第１のマイクロサービスと同じ階層レベルのマイクロサービスが存在する。いくつかの実施形態において、負荷分散決定は、第１の階層より上位レベルの階層のマイクロサービスからの情報を利用する。いくつかの実施形態において、データプレーン接続がバックプレーンによる通信によって構成される。いくつかの実施形態において、バックプレーン及びデータプレーンは、プロセッサによって管理されるネットワークを含む。
【図１】
2019523949.tif 000005
【図２】
2019523949.tif 000006
【図３】
2019523949.tif 000007
【図４】
2019523949.tif 000008
【図５】
2019523949.tif 000009
【図６】
2019523949.tif 000010
【図７】
2019523949.tif 000011
【図８】
2019523949.tif 000012
【図９】
2019523949.tif 000013
【図１０】
2019523949.tif 000014
【図１１】
2019523949.tif 000015
【図１２】
2019523949.tif 000016
【図１３】
2019523949.tif 000017
【図１４】
2019523949.tif 000018
【図１５】
2019523949.tif 000019
【図１６】
2019523949.tif 000020
【図１７】
2019523949.tif 000021
【図１８】
2019523949.tif 000022
【図１９】
2019523949.tif 000023
【図２０】
2019523949.tif 000024
【図２１】
2019523949.tif 000025
【図２２】
2019523949.tif 000026
【図２３】
2019523949.tif 000027
【図２４】
2019523949.tif 000028
【図２５】
2019523949.tif 000029
【図２６】
2019523949.tif 000030
【図２７】
2019523949.tif 000031
【国際調査報告】
2019523949.tif 000032
2019523949.tif 000033
2019523949.tif 000034