(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-11
(54)【発明の名称】コンテナ化されたアプリケーションのセキュリティ
(51)【国際特許分類】
H04L 12/22 20060101AFI20240604BHJP
H04L 12/66 20060101ALI20240604BHJP
G06F 9/455 20180101ALI20240604BHJP
【FI】
H04L12/22
H04L12/66
G06F9/455 150
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023572885
(86)(22)【出願日】2022-05-24
(85)【翻訳文提出日】2024-01-23
(86)【国際出願番号】 US2022030734
(87)【国際公開番号】W WO2022251220
(87)【国際公開日】2022-12-01
(32)【優先日】2021-05-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517392861
【氏名又は名称】パロ アルト ネットワークス,インコーポレイテッド
【氏名又は名称原語表記】Palo Alto Networks,Inc.
【住所又は居所原語表記】3000 Tannery Way,Santa Clara,California 95054,United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】マクダウェル,ジョン,エドワード
(72)【発明者】
【氏名】サハ,シャラド
(72)【発明者】
【氏名】バンサル,ナイルシュ
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA15
5K030HC14
5K030HD03
5K030JA10
5K030LC13
5K030MA04
(57)【要約】
コンテナ化されたアプリケーションをセキュアにするための技法が開示される。いくつかの実施形態において、コンテナ化されたアプリケーションをセキュアにするためのシステム、プロセス、及び/又は、コンピュータプログラム製品は、新しいアプリケーションコンテナ(例えば、アプリケーションポッド)を検出すること、アプリケーションコンテナに対するセキュリティエンティティ(例えば、ファイアウォール)を配備すること、および、ポリシを実施するために、セキュリティエンティティを使用して、アプリケーションコンテナとの間の全てのトラフィック(例えば、アプリケーションコンテナに関連付けられた全てのレイヤ7の入口、出口、および東西トラフィック)をモニタリングすること、を含む。
【特許請求の範囲】
【請求項1】
プロセッサおよびメモリを含む、システムであって、
前記プロセッサは、
新しいアプリケーションコンテナを検出し
前記アプリケーションコンテナに対するセキュリティエンティティを配備し、かつ、
ポリシを実施するために、前記セキュリティエンティティを使用して、前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングする、
ように構成されており、
前記メモリは、
前記プロセッサに結合されており、かつ、
前記プロセッサに命令を提供するように構成されている、
システム。
【請求項2】
前記セキュリティエンティティは、ファイアウォールである、
請求項1に記載のシステム。
【請求項3】
前記ポリシは、セキュリティポリシである、
請求項1に記載のシステム。
【請求項4】
前記セキュリティエンティティは、ファイアウォールであり、かつ、
前記ポリシは、ファイアウォールポリシである、
請求項1に記載のシステム。
【請求項5】
前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングすることは、
前記アプリケーションコンテナに関連付けられた全てのレイヤ7の入口、出口、および、東西トラフィックをモニタリングすること、を含む、
請求項1に記載のシステム。
【請求項6】
前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングすることは、
ディープパケットインスペクションを使用して決定されたフローに関連付けられたアプリケーション識別を含む、
請求項1に記載のシステム。
【請求項7】
前記アプリケーションコンテナは、クラウドベースのコンテナサービスにおいて実行される、
請求項1に記載のシステム。
【請求項8】
前記アプリケーションコンテナは、パブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項1に記載のシステム。
【請求項9】
前記アプリケーションコンテナは、複数のパブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項1に記載のシステム。
【請求項10】
前記プロセッサは、さらに、
前記セキュリティエンティティからセキュリティ管理エンティティに、トラフィックログデータを送信する、ように構成されている、
請求項1に記載のシステム。
【請求項11】
方法であって、
新しいアプリケーションコンテナを検出するステップと、
前記アプリケーションコンテナに対するセキュリティエンティティを配備するステップと、
ポリシを実施するために、前記セキュリティエンティティを使用して、前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングするステップと、
を含む、方法。
【請求項12】
前記セキュリティエンティティは、ファイアウォールであり、かつ、
前記ポリシは、ファイアウォールポリシである、
請求項11に記載の方法。
【請求項13】
前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングするステップは、
前記アプリケーションコンテナに関連付けられた全てのレイヤ7入口、出口、および、東西トラフィックをモニタリングすること、を含む、
請求項11に記載の方法。
【請求項14】
前記アプリケーションコンテナは、クラウドベースのコンテナサービスにおいて実行される、
請求項11に記載の方法。
【請求項15】
前記アプリケーションコンテナは、パブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項11に記載の方法。
【請求項16】
前記アプリケーションコンテナは、複数のパブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項11に記載の方法。
【請求項17】
前記方法は、さらに、
前記セキュリティエンティティからセキュリティ管理エンティティに、トラフィックログデータを送信するステップ、を含む、
請求項11に記載の方法。
【請求項18】
コンピュータプログラムであって、
前記コンピュータプログラムは、コンピュータ命令を含み、かつ、有形のコンピュータ可読記憶媒体に保管されており、前記命令が実行されると、
新しいアプリケーションコンテナを検出するステップと、
前記アプリケーションコンテナに対するセキュリティエンティティを配備するステップと、
ポリシを実施するために、前記セキュリティエンティティを使用して、前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングするステップと、
を実施させる、コンピュータプログラム。
【請求項19】
前記セキュリティエンティティは、ファイアウォールであり、かつ、
前記ポリシは、ファイアウォールポリシである、
請求項18に記載のコンピュータプログラム。
【請求項20】
前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングするステップは、
前記アプリケーションコンテナに関連付けされた全てのレイヤ7の入口、出口、および、東西トラフィックをモニタリングすること、を含む、
請求項18記載のコンピュータプログラム。
【請求項21】
プロセッサおよびメモリを含む、システムであって、
前記プロセッサは、
新しいアプリケーションコンテナを検出し、
全てのネットワークトラフィックタイプをセキュアにするために、前記アプリケーションコンテナに対するセキュリティエンティティを、コンテナ環境内のアプリケーションレイヤネットワークトラフィックの経路の中へ配備し、
前記セキュリティエンティティは、
前記コンテナ環境内のノードにおいて前記セキュリティエンティティに関連付けられた新しいネットワーク名前空間を生成すること、および、
前記ノードのサイドインターフェイスを前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間に移動し、かつ、前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられたネットワーク名前空間との間に新しいインターフェイスのペアを作成することであり、前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられた前記ネットワーク名前空間との間の前記新しいインターフェイスのペアは、名前空間境界間を移動している脅威を検出し、かつ、防止するために、前記コンテナ環境においてインラインセキュリティの実行を促進すること、
を実行することによって、
フローの修正なしに、かつ、サイドカーコンテナまたはIPテーブルを使用することなく、入口フロー、出口フロー、および、東西フローについて全てのアプリケーションレイヤネットワークトラフィックの前記経路の中へ透過的に挿入されており、
ポリシを実施するために、前記セキュリティエンティティを使用して、前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングし、かつ、
トラフィックログデータを、前記セキュリティエンティティからセキュリティ管理エンティティに送信し、前記トラフィックのログデータは、周期的に、かつ、前記アプリケーションコンテナが破壊される以前に、前記セキュリティ管理エンティティに送信される、
ように構成されており、
前記メモリは、
前記プロセッサに結合されており、かつ、
前記プロセッサに命令を提供するように構成されている、
システム。
【請求項22】
前記セキュリティエンティティは、前記アプリケーションコンテナが作成および破棄される際に、前記アプリケーションコンテナとのユーザ介入なしで、動的に前記アプリケーションコンテナに配備される、
請求項21に記載のシステム。
【請求項23】
前記ポリシは、ファイアウォールポリシであり、
前記プロセッサは、さらに、
前記セキュリティエンティティを使用して、パケットを検査し、
セキュリティポリシに違反しないと判定された場合には、前記パケットを変更することなく送信し、かつ、前記ファイアウォールポリシに違反すると判定された場合には、前記パケットをドロップする、
ように構成されている、
請求項21に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
ファイアウォールは、一般的に、不正アクセス(unauthorized access)からネットワークを保護し、一方で、承認された(authorized)通信がファイアウォールを通過するのを許可している。ファイアウォールは、典型的には、デバイスまたは一式のデバイス、または、ネットワークアクセスのためのファイアウォール機能を提供する、デバイス上で実行されソフトウェアである。例えば、ファイアウォールは、デバイス(例えば、コンピュータ、スマートフォン、または、他のタイプのネットワーク通信可能デバイス)のオペレーティングシステムの中へ統合することができる。ファイアウォールは、また、コンピュータサーバ、ゲートウェイ、ネットワーク/ルーティングデバイス(例えば、ネットワークルータ)、および、データアプライアンス(例えば、セキュリティ装置または他のタイプの特殊目的のデバイス)上のソフトウェアとして、統合され、もしくは、実行することもできる。
【0002】
ファイアウォールは、典型的に、ルールのセット(set of rules)に基づいて、ネットワーク送信を拒否または許可する。これらのルールのセットは、しばしば、ポリシ(policy)と称される。例えば、ファイアウォールは、ルールまたはポリシのセットを適用することによって、インバウンド(inbound)トラフィックをフィルタリングすることができる。ファイアウォールは、また、ルールまたはポリシのセットを適用することによって、アウトバウンド(outbound)トラフィックをフィルタリングすることもできる。ファイアウォールは、また、基本的なルーティング機能を実行することもできる。
【図面の簡単な説明】
【0003】
本発明の様々な実施形態が、以下の詳細な説明および添付の図面において開示されている。
【
図1A】
図1Aは、いくつかの実施形態に従った、単一のファイアウォールクラスタのためのセキュリティコンテナ配備(deployment)に係るブロック図である。
【
図1B】
図1Bは、いくつかの実施形態に従った、2つのファイアウォールクラスタのためのセキュリティコンテナ配備に係るブロック図である。
【
図1C】
図1Cは、いくつかの実施形態に従った、2つのファイアウォールクラスタおよび管理プレーン高可用性(HA)リンクのためのセキュリティコンテナ配備に係るブロック図である。
【
図2】
図2は、いくつかの実施形態に従った、コンテナ化されたアプリケーションをセキュアにする(securing)ためのシステムアーキテクチャに係るブロック図である。
【
図3A】
図3Aは、いくつかの実施形態に従った、アプリケーションポッドにおいてデータプレーン(DP)コンテナを作成するためのシーケンス図である。
【
図3B】
図3Bは、いくつかの実施形態に従った、クバネテス(Kubernetes)を使用して、ノードにおけるデータプレーン(DP)デーモンセット(daemonset)をシャットダウンするためのシーケンス図である。
【
図4A】
図4Aは、データアプライアンスの一つの実施形態を示している。
【
図4B】
図4Bは、データアプライアンスの一つの実施形態の論理コンポーネントに係る機能図である。
【
図5】
図5は、いくつかの実施形態に従った、コンテナ化されたアプリケーションをセキュアにするためのプロセスを示すフローチャートである。
【
図6】
図6は、いくつかの実施形態に従った、コンテナ化されたアプリケーションをセキュアにするためのプロセスを示す別のフローチャートである。
【発明を実施するための形態】
【0004】
本発明は、プロセス、装置、システム、物質の組成、コンピュータ読取り可能記憶媒体上に具現化されたコンピュータプログラム製品、及び/又は、プロセッサに結合されたメモリに保管され、かつ/あるいは、それによって提供される命令を実行するように構成されたプロセッサといった、プロセッサを含む、多数の方法で実施することができる。この明細書において、これらの実施形態、または本発明が採用し得るその他の形態は、技法(technique)と称される。一般的に、開示されたプロセスのステップの順序は、本発明の範囲内で変更することができる。特に指示のない限り、タスクを実行するように構成されているものと記載されたプロセッサまたはメモリといったコンポーネントは、所与の時間にタスクを実行するように一時的に構成されている一般的なコンポーネント、または、タスクを実行するように製造されている特定のコンポーネントとして実装することができる。ここにおいて使用されるように、用語「プロセッサ(“processor”)」は、コンピュータプログラム命令といった、データを処理するように構成された1つ以上のデバイス、回路、及び/又は、処理コアを指す。
【0005】
本発明の1つ以上の実施形態の詳細な説明は、本発明の原理を説明する添付の図面と共に以下で提供される。本発明は、そうした実施形態に関連して説明されるが、本発明は、任意の実施形態に限定されるものではない。本発明の範囲は、請求項(claims)によってのみ限定されるものであり、そして、本発明は、多数の代替、変形、および均等物を含んでいる。本発明の完全な理解を提供するために、以下の説明に多数の具体的な詳細が記載されている。これらの詳細は、例示のために提供されるものであり、そして、本発明は、これらの特定の詳細の一部または全部を伴うことなく、請求項に従って実施することができる。明瞭にするために、発明に関連する技術分野において知られている技術資料は、発明が不必要に不明瞭にならないように、詳細には説明していない。
【0006】
先進的または次世代ファイアウォール(Advanced or Next Generation Firewall)
【0007】
マルウェアは、通常、悪意のあるソフトウェア(例えば、様々な敵対的、侵入的、及び/又は、他の望まれない(unwanted)ソフトウェアを含んでいる)を指すために使用される、一般的な用語である。マルウェアは、コード、スクリプト、アクティブコンテンツ、及び/又は、他のソフトウェアの形態であり得る。マルウェアの実施例は、コンピュータ及び/又はネットワーク動作(operation)を中断すること、専有情報(例えば、アイデンティティ、金融、及び/又は、知的財産関連情報といった、機密情報)を盗むこと、及び/又は、プライベート/専用コンピュータシステム及び/又はコンピュータネットワークに対するアクセスを獲得することを含んでいる。残念ながら、マルウェアの検出および軽減を助けるための技法が開発される際に、邪悪な(nefarious)著者は、そうした努力を回避する方法を見出している。従って、マルウェアを識別し、そして、鎮静するための技法に対する改善が引き続き必要とされている。
【0008】
ファイアウォールは、一般的に、不正アクセスからネットワークを保護し、一方で、承認された通信がファイアウォールを通過するのを許可している。ファイアウォールは、典型的には、デバイスまたは一式のデバイス、または、ネットワークアクセスのためのファイアウォール機能を提供する、デバイス上で実行されソフトウェアである。例えば、ファイアウォールは、デバイス(例えば、コンピュータ、スマートフォン、または、他のタイプのネットワーク通信可能デバイス)のオペレーティングシステムの中へ統合することができる。ファイアウォールは、また、コンピュータサーバ、ゲートウェイ、ネットワーク/ルーティングデバイス(例えば、ネットワークルータ)、および、データアプライアンス(例えば、セキュリティ装置または他のタイプの特殊目的のデバイス)上のソフトウェアとして、統合され、もしくは、実行することもできる。そして、いくつかの実装においては、所定の動作が、ASICまたはFPGAといった、特定目的ハードウェア内に実装され得る。
【0009】
ファイアウォールは、典型的に、ルールのセットに基づいてネットワーク送信を拒否または許可する。これらルールのセットは、しばしば、ポリシとして参照される。例えば、ファイアウォールは、望まれない外部トラフィックが保護されるデバイスに到達するのを妨げるために、ルールのセットまたはポリシを適用することによって、インバウンドトラフィックをフィルタリングすることができる。ファイアウォールは、また、ルールのセットまたはポリシ(例えば、許可、ブロック、モニタリング、通知またはログ、及び/又は、他のアクションは、ここにおいて説明されるような、様々なクライテリアに基づいて、トリガされ得る、ファイアウォール/セキュリティルールまたはファイアウォール/セキュリティポリシにおいて指定することができる)を適用して、アウトバウンドトラフィックをフィルタリングすることもできる。ファイアウォールは、また、ルールのセットまたはポリシを同様に適用することによって、ローカルネットワーク(例えば、イントラネット)のトラフィックをフィルタリングすることもできる。
【0010】
セキュリティデバイス(例えば、セキュリティ装置、セキュリティゲートウェイ、セキュリティサービス、他のセキュリティデバイス)は、様々なセキュリティ機能(例えば、ファイアウォール、マルウェア対策、侵入防止/検出、プロキシ、及び/又は、他のセキュリティ機能)、ネットワーク機能(例えば、ルーティング、クオリティ・オブ・サービス(QoS)、ネットワーク関連リソースのワークロードバランス、他のネットワーク機能)、及び/又は、他のセキュリティ及び/又はネットワーク関連機能を含むことができる。例えば、ルーティング機能は、送信元情報(例えば、セキュアIPアドレスとポート)、宛先情報(例えば、宛先IPアドレスとポート)、および、プロトコル情報(例えば、レイヤ3 IPベースのルーティング)に基づいて実行され得る。
【0011】
基本的パケットフィルタリングファイアウォールは、ネットワーク(例えば、ステートレスパケットフィルタリングファイアウォールである、パケットフィルタリングファイアウォールまたは第一世代ファイアウォール)を介して送信される個々のパケットを検査することによって、ネットワーク通信トラフィックをフィルタリングする。ステートレスパケットフィルタリングファイアウォールは、典型的に、個々のパケット自体を検査し、そして、検査されたパケットに基づいて、ルールを適用する(例えば、パケットの送信元と宛先のアドレス情報、プロトコル情報、および、ポート番号の組み合わせを使用する)。
【0012】
アプリケーションファイアウォールは、また、アプリケーション層フィルタリングを(例えば、TCP/IPスタックのアプリケーションレベルで動作する、アプリケーション層フィルタリングファイアウォールまたは第二世代ファイアウォールを使用して)実行することもできる。アプリケーション層フィルタリングファイアウォールまたはアプリケーションファイアウォールは、一般的に、所定のアプリケーションおよびプロトコル(例えば、ハイパーテキスト転送プロトコル(HTTP)を使用したWebブラウジング、ドメインネームシステム(DNS)要求、ファイル転送プロトコル(FTP)を使用したファイル転送、および、Telnet、DHCP、TCP、UDP、およびTFTP(GSS)といった、他の様々なタイプのアプリケーションや他のプロトコル)を識別することができる。例えば、アプリケーションファイアウォールは、標準ポートを介して通信しようとする不正なプロトコルをブロックできる(例えば、そのプロトコルの非標準ポートを使用して忍び込もうとしている無許可/ポリシ外のプロトコルは、一般的に、アプリケーションファイアウォールを使用して識別することができる)。
【0013】
ステートフルファイアウォールは、また、ステートフルベースのパケット検査を実行することもでき、この検査では、各パケットが、そのネットワーク伝送のパケット/パケットフロー(例えば、ステートフルファイアウォールまたは第三世代ファイアウォール)に係るフローに関連付けられた一式のパケットのコンテキスト内で検査される。このファイアウォール技法は、ファイアウォールを通過する全ての接続の記録を保持し、かつ、パケットが新しい接続の開始であるか、既存の接続の一部であるか、または、無効なパケットであるかを判断できるため、一般的に、ステートフルパケット検査と称される。例えば、接続の状態自体が、ポリシ内のルールをトリガするクライテリアの1つになり得る。
【0014】
先進的または次世代ファイアウォールは、上述のように、ステートレスおよびステートフルパケットフィルタリングおよびアプリケーション層フィルタリングを実行することができる。次世代ファイアウォールは、また、追加的なファイアウォール技法を実行することもできる。例えば、先進的ファイアウォールまたは次世代ファイアウォールとして、ときどき、称される所定の新しいファイアウォールは、ユーザおよびコンテンツを識別することもできる。特に、所定の次世代ファイアウォールは、これらのファイアウォールが自動的に識別できるアプリケーションのリストを数千のアプリケーションに拡大している。そうした次世代ファイアウォールの実施例は、パルアルトネットワークス社から市販されている(例えば、パルアルトネットワークス社のPAシリーズ次世代ファイアウォール)。
【0015】
例えば、パルアルトネットワークス社の次世代ファイアウォールは、企業およびサービスプロバイダが、様々な識別テクノロジーを使用して、-単なるポート、IPアドレス、およびパケットだけでなく-アプリケーション、ユーザ、およびコンテンツを識別および制御するのを可能にする。正確なアプリケーション識別のためのAPP-ID、ユーザ識別(例えば、ユーザまたはユーザグループ)のためのUser-ID、および、リアルタイムコンテンツスキャン(例えば、ウェブサーフィンの制御およびデータやファイル転送の制限)のためのContent-ID、といったものである。これらの識別テクノロジーにより、企業は、従来のポートブロックファイアウォールによって提供される従来のアプローチに従う代わりに、ビジネスに関連する概念を使用して、アプリケーションの使用をセキュアに可能にする。また、例えば、専用装置などとして実装されている次世代ファイアウォール用の特殊目的ハードウェアも、一般的に、アプリケーション検査について、汎用ハードウェアにおいて実行されるソフトウェアよりも高いパフォーマンスレベルを提供する(例えば、パルアルトネットワークス社により提供されるセキュリティ装置といったものであり、シングルパスソフトウェアエンジンと緊密に統合された専用の、機能固有の処理を利用し、ネットワークスループットを最大化し、一方で、レイテンシを最小限に抑えている)。
【0016】
先進的または次世代のファイアウォールも、また、仮想化ファイアウォールを使用して実装され得る。そうした次世代ファイアウォールの例は、パルアルトネットワークス社から市販されている(例えば、パルアルトネットワークス社のファイアウォールであり、VMware(R)ESXiTMおよびNSXTM、Citrix(R)Netscaler SDXTM、KVM/OpenStack(Centos/RHEL、Ubuntu(R))、および、Amazon Web Services(AWS)を含む、様々な商用仮想化環境をサポートする)。例えば、仮想化ファイアウォールは、物理的なフォームファクタアプライアンスにおいて利用可能な、類似の、または、全く同じ次世代ファイアウォールおよび先進的な脅威防止機能をサポートすることができ、企業は、アプリケーションが、そのプライベート、パブリック、および、ハイブリッドクラウドコンピューティング環境へと、かつ、それらにわたり流れることを安全に可能にすることができる。VMモニタリング、動的アドレスグループ、および、RESTベースのAPIといった自動化機能は、企業は、そのコンテキストをセキュリティポリシへと動的に供給するVM変更を事前にモニタリングすることができ、それによって、VM変更のときに生じ得るポリシラグを排除している。
【0017】
仮想化コンピューティング環境のためのセキュリティソリューションの技術的課題
【0018】
セキュリティサービスプロバイダは、様々なファイアウォール、VPN、および他のセキュリティ関連サービスを含む、様々な市販のセキュリティソリューションを提供している。例えば、いくつかのセキュリティサービスプロバイダは、様々なファイアウォール、VPN、および、他のセキュリティ関連サービスを含んでいる、そうしたセキュリティソリューションを顧客に提供している。しかしながら、コンテナ環境(例えば、コンテナ化されたアプリケーションとも呼ばれる、コンテナベースの環境におけるアプリケーションを実行している、企業ネットワーク環境およびサービス)の増加する普及は、そうしたセキュリティソリューションについて、新たな技術的課題を提示している。
【0019】
具体的には、コンテナ環境(例えば、クバネテスクラスタ、または、別の市販のコンテナ環境)におけるコンテナ化されたアプリケーションレイヤ7(Layer-7)トラフィックをセキュアにすることは、セキュリティプラットフォーム/ソリューション(例えば、カリフォルニア州、サンタクララに本社がある、パルアルトネットワークス社といった、市販のファイアウォール、または、別の市販のセキュリティプラットフォーム/ソリューション)を、コンテナ化されたアプリケーションのネットワークトラフィックの経路(path)へと効果的かつ効率的に挿入することの複雑性に起因して、技術的な課題である。
【0020】
従って、必要とされるものは、コンテナ環境において、コンテナ化されたアプリケーションレイヤ7(L7)トラフィックをセキュアにする(securing)ための効果的かつ効率的なセキュリティプラットフォーム/ソリューションを促進するための新規かつ改善されたソリューションである。
【0021】
コンテナ化されたアプリケーションをセキュアにするための技法の概要
【0022】
多くの企業ネットワーク環境は、管理の複雑性および運用上のオーバーヘッドを一般的に低減するので、管理されたコンテナサービス提供に移行している。例えば、その責任の多くをパブリッククラウドプロバイダにオフローディング(offloading)することによるクバネテスクラスタである。様々な管理されたコンテナプラットフォームが、異なるクラウドサービスプロバイダによって提供されている。Google Kubernetes Engine(GKE)、Microsoft Azure Container Service(AKS)、Microsoft Azure Container Instances(ACI)、Amazon Elastic Container Service for Kubernetes(Amazon EKS)、およびAmazon Fargateといったものである。
【0023】
しかしながら、企業は、一般的に、これらの管理されたコンテナサービス内のポッド間およびサービス間トラフィックについて完全な可視性および保護を望んでいる。各クラウドサービスプロバイダは、典型的に、セキュリティが実施される必要がある自分自身のネットワーキングインフラストラクチャおよびメカニズム(例えば、コンテナネットワークインターフェイス(CNI)プラグインといった、インターフェイスまたは他のソリューション)を有するので、それらは、さらに、ネットワークセキュリティオプションによって制限される。かくして、セキュリティ(例えば、ファイアウォール)ライフサイクルおよびセキュリティポリシプロビジョニングを様々な管理されたコンテナサービス環境(例えば、および、コンテナ統合/コンテナ配備(CI/CD)パイプライン)に統合して、そうしたコンテナ環境におけるアプリケーションライフサイクルと共に自動化されたセキュリティソリューションを促進することができる、そうした環境のためのセキュリティソリューションが提供され得ることが望ましい。
【0024】
従って、コンテナ化されたアプリケーションをセキュアにするための様々な技術が開示される。
【0025】
いくつかの実施形態において、コンテナ化されたアプリケーションをセキュアにするためのシステム、プロセス、及び/又はコンピュータプログラム製品は、新しいアプリケーションコンテナ(例えば、アプリケーションポッド)を検出すること、セキュリティエンティティ(例えば、ファイアウォール)を新しいアプリケーションコンテナに配備すること、および、ポリシ(例えば、セキュリティ/ファイアウォールポリシ)を実施するためのセキュリティエンティティを使用して、アプリケーションコンテナに対する、および、それからの全てのトラフィック(例えば、アプリケーションコンテナに関連付けられた全てのレイヤ7入口(ingress)、出口(egress)、および、東西トラフィック)をモニタリングすること、を含んでいる。
【0026】
いくつかの実施形態において、コンテナ化されたアプリケーションをセキュアにするためのシステム、プロセス、及び/又はコンピュータプログラム製品は、さらに、セキュリティエンティティからセキュリティ管理エンティティにトラフィックログデータを送信すること、を含む。
【0027】
例えば、コンテナ化されたアプリケーションをセキュアにするための開示された技法は、セキュリティプラットフォーム/ソリューションを、コンテナ環境(例えば、クバネテスクラスタまたは別の市販のコンテナ環境の中といった、コンテナ環境におけるコンテナ化されたアプリケーションレイヤ7(L7)トラフィックを含む)におけるアプリケーションレイヤネットワークトラフィックのパスへと透過的に挿入することを促進することができる。具体的に、ファイアウォールといったセキュリティプラットフォーム/ソリューションは、以下でさらに説明されるように、例えば、アプリケーション識別(APP ID)及び/又は完全脅威検査(例えば、ネットワークトラフィックのディープパケットインスペクション(DPI)を使用する)を適用するように、フローに対するポリシ(例えば、ネットワーク/セキュリティポリシ)を実装および実施するためのサポートを含んでいるフローの修正なしに、入口、出口、および東西フローのための全てのトラフィックの経路へと透過的に挿入され得る。
【0028】
一つの例示的な実装において、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、クラスタの中の入口フロー、出口フロー、および東西トラフィックを含いんでいる、クバネテスクラスタといった、コンテナ環境内のポッドのネットワークトラフィックについてインラインセキュリティソリューションを提供することができる。かくして、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、そうしたフローおよび異なるタイプのネットワークトラフィックのセキュリティカバレッジをシームレスに提供する。クバネテスといったコンテナ環境が、一般的に、寿命の長い(long-lived)アプリケーションではなく、使い捨て(throe away)ポッドとして効果的に処理され得るアプリケーションの単純な配備を可能にするように意図されているとすれば、開示される技法は、全てのそうしたフローへのシームレスな挿入を促進するだけでなく、以下でさらに説明されるように、それらが作成され、そして、破壊されると際に、ポッドとのユーザ介入(user intervention)なしで、動的に実行することもできる(例えば、アプリケーションポッドを伴うファイアウォールの動的配備および除去)。
【0029】
かくして、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、シームレスな挿入を促進することができる。例えば、アプリケーションポッドは、必ずしも、実行の最中に(例えば、ランタイムに)実行されているセキュリティの可視性を有するとは限らない。なぜなら、以下でさらに説明されるように、サイドカーコンテナ、IPテーブル、または、アプリケーションポッドの内側から見える任意の修正が存在しないからである。
【0030】
また、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、厳密なインラインセキュリティを促進することができる。例えば、クバネテスノードのネットワーク/ブリッジ接続(インターフェイス)に対するアプリケーションが、ファイアウォール/セキュリティソリューション(例えば、PAN-OS)インターフェイスを通過するとすれば、以下でさらに説明されるように、アプリケーションポッドは、一般的に、セキュリティをバイパスすることができない。
【0031】
さらに、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、一般的に、全てのネットワークトラフィックフローをカバーすることができる。例えば、開示されるセキュリティソリューションは、以下でさらに説明されるように、コンテナ環境内の入口、出口、および東西トラフィックフロー(例えば、クバネテスインフラストラクチャを変更する必要のないクバネテスクラスタといった、コンテナ環境内のフローの修正のない入口、出口、および東西フローに係るAPP IDおよび脅威検査)をカバーする。開示されるセキュリティソリューションは、また、クラウドネイティブであり、そして、以下でさらに説明されるように、全てのコンテナ環境配備(例えば、クバネテス配備)を用いて機能することができる。
【0032】
さらに、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、一般的に、全てのネットワークトラフィックタイプをカバーすることができる。例えば、ホストのネットフィルタおよび特定のプロトコル特徴に、典型的に、依存しており、かつ、それによって、それらのタイプのトラフィックプロトコルのみをセキュアにする(すなわち、典型的には、TCPオプション、UDPカバレッジなし)、種々の他のセキュリティアプローチとは対照的に、インターフェイスレベルのプラミング(plumbing)は、以下でさらに説明されるように、全てのタイプのネットワークトラフィックについてセキュリティカバレッジを可能にする。
【0033】
加えて、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、一般的に、セッションのための全てのパケットを検査することができる。例えば、ファイアウォール(例えば、PAN-OSファイアウォール)がアプリケーションポッドを出る/入る(leaving/entering)全てのトラフィックに対して厳密にインラインであるとすれば、以下でさらに説明されるように、それは、開示されるセキュリティソリューションが、セッション/フローのための全てのパケットを検査ことを可能にし、かつ、TCPSYNパケット等、に依存するだけではない。
【0034】
また、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、コンテナ環境のための強化されたセキュリティ性能を促進することができる。他のアプローチは、典型的には、エンヴォイ(envoy)といったネットワークプロキシとして実装される。これらのアプローチは、一般的に、全てのトラフィックフローが終了され、かつ、再確立されることを必要とし、これは、トラフィックに対して著しいオーバーヘッドを追加する。対照的に、開示されるセキュリティソリューションは、RAWソケットを使用し、そして、かくして、レイテンシの低減およびより良好なスループットが存在する。
【0035】
さらに、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、各ノードにおいて単一のファイアウォールエージェントを利用することができる。かくして、他のいくつかのサイドカーベースのアプローチとは異なり、以下でさらに説明されるように、ノードごとに実行されるファイアウォールが1つだけ存在する。
【0036】
コンテナ環境のための現在のセキュリティアプローチの大部分は、また、ネットワークポリシを実装するために、ノードにおけるIPテーブル/ネットフィルタまたはバークレーパケットフィルタ(BPF)フィルタにも依存している。このソリューションは、これらのいずれとも干渉せず、かつ、そうした既存のソリューションと共に機能することができる。また、開示されるセキュリティソリューションは、トラフィックをリダイレクトするためのIPテーブル/ネットフィルタまたはBPFフィルタに依存せず、そして、かくして、IPテーブルに対する変更の追加/削除のための被爆半径(blast radius)は、新しいポッド/サービスが配備されるにつれて増加しない。
【0037】
従って、以下でさらに説明されるように、コンテナ化されたアプリケーションをセキュアにするための様々な技法が開示される。
【0038】
コンテナ化されたアプリケーションをセキュアにするための例示的なシステムの実施形態
【0039】
図1Aは、いくつかの実施形態に従った、単一のファイアウォールクラスタのためのセキュリティコンテナ配備に係るブロック図である。この実施例において、セキュリティソリューションは、クバネテスマスタ110およびクューブレット(Kubelets)112A-Dを含むクバネテスクラスタにおいて配備されている。
図1Aを参照すると、管理ポッド104として示される単一の管理プレーンを伴うクバネテスクラスタ102が、選択された保護ポッド(Protected Pod)106A-Gをセキュアにするために提供されており、そして、残りのポッド108A-Cは、示されるように保護されない。
【0040】
一つの例示的な実装において、現在の仮想マシン(VM)イメージに係るセキュリティ管理プレーンおよびセキュリティデータプレーンは、分離されており、そして、別個のコンテナに配備されている。管理プレーン(Management Plane、MP)コンテナ(例えば、ステートフルサービスとして配備されているもの)は、(例えば、32(または、それ以上)の別個のデータプレーンコンテナをサポートすることができる)いくつかのデータプレーン(Data Plane、DP)コンテナを管理することができる。管理プレーンコンテナおよびデータプレーンコンテナは、セキュアトンネル(例えば、IPSecトンネル、または、別のセキュアトンネル/通信メカニズム)を介して通信することができる。管理コンテナにアタッチされた(attached)各データプレーンコンテナは、任意の他のデータプレーンコンテナから完全に独立して動作し、そして、別個のライフサイクルを有することができる。この実施例において、管理プレーンコンテナにアタッチされた全てのデータプレーンコンテナは、同じポリシ(例えば、それらにプッシュされた(pushed)ファイアウォール/セキュリティポリシ)を有している。管理コンテナは、ファイアウォール/セキュリティ管理プラットフォームによって(例えば、仮想マシン(VM)または物理アプライアンスとして配備された、カリフォルニア州サンタクララに本社を置くパルアルトネットワークス社から市販されているPanoramaを使用して、または、別の市販のファイアウォール/セキュリティ管理プラットフォームを使用して)によって管理することができる。そして、そのファイアウォール/セキュリティ管理プラットフォームの各インスタンスは、この実施例において、最大1000個(または、それ以上)の管理サービス(例えば、1個または2個(または、それ以上)の管理プレーンポッドを持つことができる)を管理することができる。
【0041】
この例示的な実装において、クバネテスクラスタは、セキュリティ管理プレーンコンテナをサポートするサービスを配備する。ユーザは、単一の管理ポッドをステートフルサービスとして(例えば、
図1Aおよび
図1Bの104に示されるように)配備し、または、フォールトトレラントペア(fault tolerant pair)を管理ポッド上に配備することができる。管理ポッドは、一般的に、任意のデータプレーンポッドの前に配備されている。クラスタの管理者(例えば、セキュリティ管理者)は、
図1Aに示されるように、選択されたポッドに対してセキュリティを選択的に挿入することができ、または、
図1Bに示されるように、セキュリティを、異なるセキュリティ管理ドメインへと分割することができる。
【0042】
例えば、全てのトラフィック、URL、および、脅威ログは、DPコンテナによって、IPSecトンネルを介して登録されたMPコンテナに転送され得る。DPは、MPに対して転送する前に、そのスロットを、データプレーンログ内の入口および出口インターフェイスに挿入することができる。全てのトラフィックログは、セキュリティ管理プラットフォーム(例えば、Panorama、または、ファイアウォールのための別の市販のセキュリティ管理プラットフォーム、等)に転送されるようにMPコンテナにおいて維持され得る。この実施例において、DPコンテナにはログが格納されていない。代替的に、ログは、DPコンテナにおいてキャッシュされ、そして、次いで、上記と同様に、MPコンテナに対して周期的に転送され得る。
【0043】
図1Bは、いくつかの実施形態に従った、2つのファイアウォールクラスタのためのセキュリティコンテナ配備に係るブロック図である。この実施例において、セキュリティソリューションは、クバネテスマスタ110およびクューブレット112A-Dを含むクバネテスクラスタにおいて配備されている。
図1Bを参照すると、管理ポッド104Aおよび104Bを含む、単一の管理プレーンを伴うクバネテスクラスタ120が、ポッドを保護するために提供されており、そこで、ポッドは、保護ポッド122A-Eおよび保護ポッド124A-Eによって示されるように、異なるセキュリティ管理ドメインへと分割されている。この実施形態において、MP/DPコンテナの各別個のセットは、異なるポリシドメイン(PCIまたは非PCI)、または、開発対生産(development versus production)といった、CI/CDパイプラインにおける異なる段階のいずれかに適用され得る。配備構成は、ユーザ(例えば、ネットワーク/セキュリティ管理者)が異なるシナリオを設計することを可能にするようにフレキシブルである。
【0044】
図1Cは、いくつかの実施形態に従った、2つのファイアウォールクラスタおよび管理プレーン高可用性(HA)リンクのためのセキュリティコンテナ配備に係るブロック図である。この実施例において、セキュリティソリューションは、クバネテスマスタ110およびクューブレット112A-Dを含むクバネテスクラスタにおいて配備されている。
図1Cを参照すると、HAリンク134によって接続された管理ポッド104Aおよび別の管理ポッド104Bを含む管理プレーンサービス132を伴うクバネテスクラスタ130が、ポッドをセキュアにするために提供されており、そこで、ポッドは、保護ポッド122A-Fおよび保護ポッド124A-Eによって示されるように、異なるセキュリティ管理ドメインへと分割されている。
【0045】
管理プレーンフェイルオーバ(failover)のための一つの例示的なシナリオは、MPサービスとして配備された2つの管理ポッドが存在する場合である。この実施例において、管理ポッドのそれぞれは、アクティブであり、そして、
図1Cに示されるように、各々が、データプレーンコンテナのセットを管理している。例えば、MPポッド104Aが故障した場合、サービスは、それを再起動し、そして、MPポッド104Aが利用可能でない間は、この実施例において保護ポッド122A-Fを含む、MPポッド104Aによって以前に管理されていたDPコンテナが、MPポッド104Bに接続する。一旦、MPポッド104Aが戻って稼働すると、システムは、最終的に、ロードバランスを定常状態に戻す。コンテナ化された環境のための開示されたHAセキュリティソリューションを使用して、追加的な障害シナリオが、同様に処理され得る。第1に、データプレーンインスタンスは、事前構成されたタイムアウトウィンドウを超えて、その管理プレーンに対するハートビート(heartbeat)を失うことがある。例えば、タイムアウトは、10秒に設定されてよく、または、管理者によって別のタイムアウト設定に構成され得る。第2に、2つのMP間のHAリンクは、MPのうち1つにおける障害を検出することができる。第3に、クバネテスは、MPポッドのうち1つにおけるヘルスチェック障害を検出することができる。これら及び他の障害シナリオは、以下でさらに説明されるように、コンテナ化された環境のための開示されたHAセキュリティソリューションを使用して、同様に処理され得る。
【0046】
第1実施例において、データプレーンが障害を検出した場合には、MPサービスへの再接続を実行しようと試みる。MPポッドのうち1つが利用可能である場合には、再接続が成功し、そして、システムは動作し続ける。MPポッドのいずれも利用可能でない場合には、DPコンテナはシャットダウンし、そして、アプリケーションポッドはクバネテスヘルスチェックに不合格(fail)となる。このことは、結果として生じるサービス停止を生じ得る。しかしながら、MPサービス全体が利用不能になることを必要とするので、このことは、非常にまれにしか発生しないはずである。
【0047】
第2実施例において、MPポッドのうち1つが故障した場合に、結果は、第1実施例の事案に関して上述のものと同じになり、そして、システムは、上述のものと同様に回復する。
【0048】
第3実施例において、クバネテスが第2実施例の事案のように故障を検出した場合に、クバネテスは、サービスのための新しいポッドを配備しようと試みる。一旦、新しいMPポッドが利用可能になると、MPサービスへの新しい要求(例えば、および、潜在的には再接続要求)の処理を開始する。
【0049】
技術的課題は、これらのイベント全てが異なるタイムラインで発生し、かつ、競合(conflict)の可能性が存在することである。一つの例示的な実装において、ソリューションは、DPがシャットダウンすることを防止するためにDP-MP接続の平均回復時間(MTTR)を最小化し、そして、また、トラフィックロギング情報の損失を最小化するように、実装され得る。
【0050】
第2実施例および第3実施例の事案についてヘルスチェック結果が同じである場合には、問題が、より単純になり得る。第2実施例の事案が障害を検出した場合に、クバネテスは、サービスのための新しいMPポッドを作成するために、再始動プロセスを開始する。これが実行されている間に、故障したMPポッドに接続されている既存のDPポッドは、一般的に、新しいMPポッドが利用可能になるまで、アクティブなMPポッドに再接続することができる。
【0051】
図2は、いくつかの実施形態に従った、コンテナ化されたアプリケーションをセキュアにするためのシステムアーキテクチャに係るブロック図である。この実施例において、セキュリティソリューションは、クバネテスクラスタのアプリケーションポッドにおいて配備されている。
【0052】
図2を参照すると、2つのデーモンセット(DaemonSets)は、セキュリティが(例えば、仮想ネットワークゲートウェイファイアウォール(NGFW)セキュリティソリューションを使用して)配備されるべき各ノードに配備されている。NGFW OS(例えば、この例示的な実装におけるPAN-OS)データプレーン(DP)デーモンセット204およびコンテナネットワーキングインターフェイス(CNI)デーモンセット206によって、ノード202に示されるようなものである。PAN-OS DP デーモンセット204は、208において示されるように、(例えば、この実施例におけるPAN NSを使用して)Linux(登録商標)ネットワーク名前空間と通信するように示されている。図示されるように、また、vethインターフェイスのペア(pair)214aおよび214bを含むPAN NS208は、アプリケーションコンテナ210と通信する。具体的に、PAN NS208は、PAN NS208のvethインターフェイス214aおよびアプリケーションコンテナ210のeth0インターフェイス212(例えば、イーサネット(登録商標)インターフェイス)を介して、アプリケーションコンテナ210と通信する。PAN NS208はまた、cbr0 216(例えば、全てのコンテナポッドを接続するノード内のソフトウェアブリッジである、コンテナブリッジ)を介して、ノード202のeth0インターフェイス218と通信する。
【0053】
この例示的な実装において、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、既存のコンテナネットワーキングインターフェイス(CNI)(例えば、CNIは、オープン規格であり、https://github.com/containernetworking/cni/blob/master/SPEC.md#container-network-interface-cni-sepcificationにおいて利用可能であり、コンテナへの、より具体的には、クバネテスコンテナへのプラグ可能なネットワーキング実装を可能にする。そして、CNIは、GKE、AWS、Azure、およびOpenShiftといった、様々な市販のクラウドベースのコンテナ環境上でサポートされている)を拡張して、ファイアウォール(例えば、パルアルトネットワークスから市販されているPAN-OSベースのファイアウォール、または、別の市販のファイアウォール)、もしくは、任意の他のコンテナネットワーキング機能(CNF)により、アプリケーションポートに出入りする(entering and leaving)全てのトラフィックの検査を実装することによって、セキュリティプラットフォーム/ソリューション(例えば、パルアルトネットワークスのCNシリーズプラットフォーム、または、他の市販のセキュリティプラットフォーム/ソリューション)の能力を実質的に増加させることができる。具体的には、他のCNIの後にPAN-CNIプラグインを追加するために、CNIチェーン化(chaining)を利用することができる。PAN-CNIプラグインは、クバネテスノード上に別個のLinuxネットワーク名前空間(PAN-NS)を作成し、そして、新しいアプリケーションポッドが起動する際に、アプリケーションポッドのvethインターフェイスをPAN-NS名前空間(NS)に移動させ、かつ、PAN-NSとアプリケーションポッドのネットワーク名前空間との間に新しいvethインターフェイスのペア(pair of interfaces)を作成する。PAN-NS内のこれら2つのvethインターフェイスは、次いで、以下でさらに説明されるように、厳密なインラインセキュリティを挿入するために使用され得る。この例示的な実装において、これらは、市販のPAN-OSファイアウォール仮想ワイヤ技術を使用して接続されており、そして、かくして、PAN-OSファイアウォールは、アプリケーションポッドとクバネテスノードネットワークとの間の全てのトラフィックの厳密なインラインセキュリティ検査になる。結果として、アプリケーションポッドとクバネテスノードのネットワークとの間の全てのトラフィックは、PAN-OSファイアウォールを通過する。
【0054】
さらに、これらの変更は、一般的に、アプリケーションポッドには見えず、さらに、開示されるセキュリティソリューション技法のセキュリティおよび透明性を強化している。アプリケーションポッドが除去されるとき、vethのインターフェイスのペア(veth pair of interfaces)のインターフェイスが除去され、それによって、コンテナ環境におけるセキュリティソリューションの自動クリーンアップを促進している。
【0055】
別の例示的な実装において、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、ノード/ブリッジのサイドvethをパルアルトネットワーク(PAN)NS名前空間(NS)(PAN NS)に移動すること、そして、PANNSとノードのブリッジとの間に新しいvethインターフェイスのペアを作成することによって、実装される。そうしたメカニズムは、ポッドの全てのインターフェイスに効果的に適用されて、マルチインターフェイスポッドの全てのインターフェイストラフィックについて厳密なセキュリティを同様に挿入することができる。
【0056】
一つの実施形態において、ノード202にセキュリティを追加するためのプロセスは、以下のように実行され得る。第1に、クバネテスノード上の標準CNIチェーン化においてCNIプラグインを追加する。第2に、クバネテスノード上に新しいLinuxネットワーク名前空間を(例えば、この実施例においてPAN-NSを使用して)作成する(例えば、この実施例においてDPコンテナは、以下でさらに説明されるように、ポッドのアドレス空間内で実行されているけれども、別個のネットワーク名前空間で実行され、そして、依然としてポッドに対して実際上は透過的でありながら、ポッド内/ポッドからの全ての入口および出口トラフィックをモニタリングすることができるように構成されている)。第3に、新しいアプリケーションポッドが起動すると、PAN-CNIプラグインは、アプリケーションポッドのvethインターフェイスをPAN-NS名前空間(ethN)に移動し、そして、PAN-NS(eth(n)/eth(n+1))と、アプリケーションポッドのネットワーク名前空間との間に新しいvethインターフェイスのペアを作成する。第4に、PAN-NS内のこれら2つのvethインターフェイスは、次いで、上述したのと同様に、厳密なインラインセキュリティを挿入するために使用され得る。第5に、PAN-OSファイアウォール仮想ワイヤペアを使用して、これらの2つのインターフェイスを接続することが実行される(例えば、VWireは、基本的に、ファイアウォールがパケットを決して変更しないワイヤ内のバンプであり、パケットは、一方のインターフェイスに入り、そして、ファイアウォールによって検査されて、それが許可される場合には、変更されずに他方のインターフェイスに送信される。しかしながら、それがポリシに違反する場合には、ドロップされる。例えば、https://en.wikipedia.org/wiki/Bump-in-the-wireを参照のこと)。第6に、アプリケーションポッドと、クバネテスノードのネットワークとの間の全てのトラフィックは、PAN-OSファイアウォールを通過する。具体的には、
図2に示されるように、全てのトラフィック(例えば、管理プレーンおよびデータプレーンの入口および出口トラフィック)はeth0インターフェイス212を通過し、そして、かくして、全てのトラフィックは、
図2に示されるように、ここで、また、204に設けられたPAN-OSファイアウォールも通過する。
【0057】
例えば、開示される技術を使用して、機械学習(ML)搭載(powered)の次世代ファイアウォール(例えば、カリフォルニア州サンタクララに本社を置くパルアルトネットワークス社から市販されているCNシリーズファイアウォールといった、PAN-OSファイアウォール)を提供することができ、コンテナ環境(例えば、クバネテスまたは他の市販のコンテナ環境)のために特別に構築されている。具体的に、開示されるセキュリティソリューションは、名前空間境界間を移動する脅威を検出し、かつ、防止するために、アウトバウンドトラフィックのコンテナソースIPを含む、レイヤ7トラフィック可視性を提供する。さらに、開示されるセキュリティソリューションは、コンテナ(例えば、クバネテス)コンテキスト情報を他のセキュリティエンティティ(例えば、企業/コンテナ環境内の他のファイアウォール)と共有することによって、ユーザが全体的なセキュリティ態勢を高めるのを助けるために、コンテナトラフィックにおいて企業レベルのネットワークセキュリティおよび脅威保護を実施する。
【0058】
一つの例示的なユースケースのシナリオとして、上述のセキュリティソリューションを使用して、顧客は、特定のラベルおよびタグを有するセキュリティ管理者によって承認されたコンテナポッドとサービスとの間のトラフィックのみを許可するホワイトリストモデルを利用することができる。
【0059】
別の例示的なユースケースのシナリオとして、L7ユースケースは、全てのトラフィックの検査をカバーすることができ、そして、従って、実際のL7アプリケーションタイプを識別し、それにより、ファイアウォールによって実施される構成されたセキュリティポリシに基づいて、どのタイプのアプリケーションが、例えば、特定のポッドに入り、かつ、出ることができるかに関するルールが構築されるのを可能にする。加えて、L7フローのコンテンツが、悪意のある挙動についてアプリケーションを保護するために、脅威およびマルウェアについて検査され得る。当業者にとって、今や、明らかであるように、コンテナ化されたアプリケーションをセキュアにするための開示される技法は、様々な他のユースケースのシナリオに対して同様に適用され得る。
【0060】
一つの例示的な実装において、構成されたCNIプラグインチェーン内の各CNIプラグインは、コンテナオーケストレーション環境によって、順番に実行される。クバネテスについて、チェーン内の各CNIプラグインは、ノード上でクューブレット(kubelet)プロセスによって実行され、ここで、ポッドは、クューブレットのプロセス空間内でスケジュールされている。一つの例示的な実装において、Istio CNIプラグインは、ポート追加アクションを処理し、そして、ポートのネットワーク名前空間においてトラフィックリダイレクトセットアップを作成することができる。各ノードのクューブレットがIstio CNIプラグインを実行するので、Istio CNIプラグインのインストールは、一般的に、ノードごとの構成およびプラグイン実行可能ファイルの配備を伴う。Istioノードのデーモンセットは、Istio CNIプラグインのノードごとのインストールを実行する。CNIアーキテクチャは、また、JSONメッセージにおいて以前の構成ステップを返す。このことは、vethおよびブリッジ操作を実行するために利用される情報が“CMD_ADD”方法に対して利用可能なので、ネットワークを再配線(re-wiring)するために非常に有用である。一旦、ポッドが作成され、かつ、ネットワーク名前空間が作成されると、ネットワークプロキシが、新しいネットワーク名前空間において実行され得る。
【0061】
この例示的な実装において、コンテナ化されたアプリケーションをセキュアにするための開示された技術を使用して、そうしたセキュリティが提供されるべき場合、ラベルが、そのYAML AIN’T MARKUP LANGUAGE(YAML)ファイルに追加され得る。そして、以下でさらに説明されるように、CNIは、ポッドをPAN-OS DPデーモンセットに接続する(wires)(例えば、このプロセスは、アプリケーションポートに対して透過的に実行され得る。そして、この実施例においては、コード変更がアプリケーションポートに追加されない(YAMLラベルのみ追加))。
【0062】
この例示的な実装において、ユーザは、これらのYAMLを使用して、そのセットアップから、これらのフィールドだけを記入(filling in)した後で、迅速に、所与のクラウドプラットフォーム上にセキュリティソリューション/ファイアウォール(例えば、上述のCNシリーズファイアウォール)を配備することができる。
【0063】
【0064】
【0065】
【0066】
一つの例示的なプロダクション配備について、ユーザは、以下のように、YAMLをカスタマイズすることができる。pan-cn-mgmt.yamlおよびpan-cn-ngfw.yamlにおけるリソース(例えば、CPU、メモリ)フィールドは、デフォルトパラメータを用いて事前にポピュレートされるが(pre-populated)、本明細書で同様に説明されるように、配備シナリオにより良く適合するようにカスタマイズされ得る。また、ユーザが追加することができる、いくつかのオプションのフィールドがconfigmaps内に存在している。HAにおけるパノラマのためのPAN_PANORAMA_IP2、または、同じパノラマの下で複数のクバネテスクラスタを管理する場合に、より容易な識別のためのCLUSTER_NAME(例えば、カリフォルニア州サンタクララに本社を置くパルアルトネットワークス社から利用可能な、市販されているセキュリティ管理プラットフォーム)、といったものである。
【0067】
一旦、YAMLが望まれるように修正されると、これらのYAMLは、以下の実施例に示されるように、配備され得る。
【表4】
【0068】
アプリケーションポッドについてセキュリティを有効にする(enable)ために、以下の注釈を、それらのYAMLに適用することができる。または、所与の名前空間における全てのポッドについてセキュリティを有効にするために、この注釈を、名前空間に適用することができる。例えば「デフォルト(“default”)」名前空間について、paloaltonetworks.com/firewall:pan-fwである。
【表5】
【0069】
OpenShiftは、他のCNIプラグインをコール(call)する、「メタプラグイン(“meta-plugin”)」として動作するmultus CNIを有している。上述の例示的なPAN-CNIプラグインをOpenShiftコンテナ環境内のそうしたmultusと統合するために、これら2つの追加のステップがアプリケーションポッドに対して実行され得る。第1に、NetworkAttachmentDefinition “pan-cni”が、kubectl apply-f pan-cni-net-attach-def.yaml-n<target-namespace>を使用して、あらゆるアプリケーションポッドの名前空間に配備され得る。第2に、アプリケーションポッドのYAMLにおいて、注釈k8s.v1.cni.cncf.io/networks: pan-cniが追加され得る。
【0070】
図3Aは、いくつかの実施形態に従った、アプリケーションポッドにおいてデータプレーン(DP)コンテナを作成するためのシーケンス図である。クバネテスコンテナ環境においてDPコンテナを開始するためには、これから説明されるように、クバネテスCNIネットワークプラグインが使用され得る。具体的には、リソースを公開するために、CNIプラグインを作成する。ここでのリソースは、主に、上述したのと同様に、DPアプリケーションがアタッチされ得る新しいネットワーク名前空間である。
【0071】
図3Aを参照すると、シーケンス図は、クバネテスコンテナ環境において新しいDP Daemonsetを開始するフローを全般的に示している。一般的には、新しいDP Daemonsetを作成する以前に、利用可能なMPポッド/サービスが既に配備されているべきであり、そして、サービス名および証明書は、DP Daemonsetについてのconfigmapの一部であるべきである。
図3Aのステージ1で示されるように、新しいDP Daemonsetを作成するKubectl 302が呼び出される(invoked)。ステージ2では、containerd 304を使用して、CNI Daemonset 306が作成される。ステージ3において、CNIDaemonset306は、示されるように、DP Daemonset 308についての新しいネットワーク名前空間を割り当てる。ステージ4では、新しいDP Daemonsetを割り当てるためにKubectl 302 containerdが使用される。ステージ5で、DP Daemonsetは、そのMP Container 310に接続し、そして、MP Containerで登録する(例えば、MP Containerに対して、割り当てられたコア、containerID、ポッド名、および、おそらくは他のラベル/メタデータを渡す)。ステージ6で、MP Containerは、MP通信において識別子として使用される、一意のスロット番号をDP Containerに返す。最終的に、ステージ7で、DP Daemonsetは、クバネテスアプリケーションポッドからの新しいインターフェイス作成要求をモニタリングする。
【0072】
図3Bは、いくつかの実施形態に従った、クバネテスを使用して、ノードにおけるデータプレーン(DP)デーモンセット(daemonset)をシャットダウンするためのシーケンス図である。クバネテスを使用するアプリケーションポッドにおけるDP Daemonsetのシャットダウンプロセスが、これから、
図3Bに関して説明される。ステージ1で、kubectl302は、破壊要求(destroy request)を発行する。ステージ2では、シャットダウンのために、containerd304からの要求がDP Daemonsetに送信される。ステージ3では、このスロットが除去された場合、通知がMPコンテナ310に送信される。そうでなければ、MP Containerは、ポッドが除去されたと、クバネテスから判定することができる。このことは、MP Containerがポッドを除去することを含み、そして、ライセンス供与サービス(licensing service)においてリソースをフリーにマーク付ける。ステージ4で、CNI Daemonset 306は、containerd 304から、シャットダウン要求を受信する。ステージ5で、CNI Daemonset 306は、ファイアウォールのために作成されたネットワーク名前空間を削除し、かつ、CNI Daemonsetをシャットダウンし、そして、CNIプラグインは、DPコンテナに割り当てられたリソースを割り振り解除する。
【0073】
データアプライアンス400の一つの実施形態が
図4Aに示されている。示される実施例は、様々な実施形態において、ネットワークゲートウェイがデータアプライアンスとして実装される場合に、ネットワークゲートウェイ400に含まれ得る、物理的なコンポーネントの表現である。具体的に、データアプライアンスは、高性能マルチコア中央処理装置(CPU)402、および、ランダムアクセスメモリ(RAM)404を含んでいる。データアプライアンスは、また、ストレージ410(1つ以上のハードディスクまたはソリッドステートストレージユニット、といったもの)を含んでいる。様々な実施形態において、データアプライアンスは、企業ネットワークをモニタリングすること、および、開示された技術を実装することにおいて使用される情報を(RAM404、ストレージ410、及び/又は、他の適切な場所のいずれかに)保管する。そうした情報の例は、アプリケーション識別子、コンテンツ識別子、ユーザ識別子、要求されたURL、IPアドレスマッピング、ポリシおよび他の構成情報、署名、ホスト名/URL分類情報、マルウェアプロファイル、および、機械学習モデルを含んでいる。データアプライアンスは、また、1つ以上の任意のハードウェアアクセラレータも含むことができる。例えば、データアプライアンスは、暗号化および復号動作を実行するように構成された暗号エンジン406、および、マッチングを実行し、ネットワークプロセッサとして動作し、かつ/あるいは、他のタスクを実行するように構成された、1つ以上のフィールドプログラマブルゲートアレイ(FPGA)408を含むことができる。
【0074】
データアプライアンスによって実行されるものとして本明細書に記載される機能性は、様々な方法で提供され/実装され得る。例えば、データアプライアンスは、一つの専用デバイス、または、デバイスのセットであり得る。データアプライアンスによって提供される機能性は、また、汎用コンピュータ、コンピュータサーバ、ゲートウェイ、及び/又は、ネットワーク/ルーティングデバイスにおいて統合されてもよく、もしくは、ソフトウェアとして実行されてもよい。いくつかの実施形態においては、データアプライアンスによって提供されるものとして説明される少なくともいくつかのサービスが、代わりに(または追加で)、クライアントデバイス上で実行されるソフトウェアによって、クライアントデバイス(例えば、ラップトップ、スマートフォン、等といった、エンドポイントデバイス)に提供される。
【0075】
データアプライアンスがタスクを実行すると記載されているときはいつでも、データアプライアンスの単一のコンポーネント、コンポーネントのサブセット、または、全てのコンポーネントが、協働してタスクを実行し得る。同様に、データアプライアンスのコンポーネントがタスクを実行すると記載されているときはいつでも、サブコンポーネントはタスクを実行することができ、かつ/あるいは、コンポーネントは、他のコンポーネントと共にタスクを実行することができる。様々な実施形態において、データアプライアンスの一部は、1つ以上の第三者によって提供されている。データアプライアンスに利用可能なコンピューティングリソースの量といった要因に応じて、データアプライアンスの種々の論理コンポーネント及び/又は機能は、省略されてよく、そして、本明細書に説明される技法は、適宜、適合され得る。同様に、追加の論理コンポーネント/機能が、適用可能な場合に、データアプライアンスの実施形態に含まれ得る。様々な実施形態において、データアプライアンスに含まれるコンポーネントの一つの例は、(例えば、パケットフロー分析に基づいてアプリケーションを識別するための様々なアプリケーションシグネチャを使用して)アプリケーションを識別するように構成されたアプリケーション識別エンジンである。例えば、アプリケーション識別エンジンは、ウェブブラウジング-ソーシャルネットワーキング、ウェブブラウジング-ニュース、SSHなど、といった、セッションが含むトラフィックのタイプを判定することができる。
【0076】
開示されたシステム処理アーキテクチャは、以下のような異なる配備シナリオにおいて、異なるタイプのクラウドと共に使用され得る。(1)パブリッククラウド、(2)構内(on-premises)プライベートクラウド、および、(3)ハイエンド物理ファイアウォール内、といったものである。プライベートクラウドを実行するために、(例えば、パルアルトネットワークス社PA-520シリーズのファイアウォールアプライアンスにおける管理プレーン(MP)を使用して)いくらかの処理能力を割り当てることができる。
【0077】
図4Bは、データアプライアンスの一つの実施形態の論理コンポーネントに係る機能図である。示される実施例は、様々な実施形態において、ネットワークゲートウェイ400に含まれ得る論理コンポーネントの表現である。別段の指定がない限り、ネットワークゲートウェイ400の様々な論理コンポーネントは、一般的に、様々な方法で実装可能であり、(例えば、適用可能な場合、Java(登録商標)、python、等で書かれた)1つ以上のスクリプトのセットとして含んでいる。
【0078】
図示されるように、ネットワークゲートウェイ400は、ファイアウォールを備え、そして、管理プレーン432およびデータプレーン434を含んでいる。管理プレーンは、ポリシを構成し、かつ、ログデータを閲覧するためのユーザインターフェイスを提供することなどによって、ユーザインタラクションを管理することを担う。データプレーンは、パケット処理およびセッション処理を実行することなどによって、データを管理することを担う。
【0079】
ネットワークプロセッサ436は、パケットを受信し、そして、処理のために、それらをデータプレーン434に提供するように構成されている。フローモジュール438は、パケットを新しいセッションの一部であると識別するときはいつでも、新しいセッションフローを作成する。後続のパケットは、フロールックアップに基づいて、そのセッションに属するものとして識別される。適用可能な場合には、SSL復号が、SSL復号エンジン440によって適用される。そうでなければ、SSL復号エンジン440による処理は省略される。復号エンジン440は、ネットワークゲートウェイ400がSSL/TLSおよびSSH暗号化トラフィックを検査および制御するのを助けることができ、そして、従って、そうでなければ暗号化トラフィックに隠されたままになり得る、脅威を停止するのを助けることができる。復号エンジン440は、また、機密コンテンツが企業/セキュアな顧客のネットワークから離れることを防止するのにも役立つことができる。復号は、URLカテゴリ、トラフィックソース、トラフィック宛先、ユーザ、ユーザグループ、および、ポートといった、パラメータに基づいて、選択的に制御(例えば、イネーブルまたはディセーブル)することができる。復号ポリシ(例えば、どのセッションを復号するかを指定する)に加えて、復号プロファイルは、ポリシによって制御されるセッションについて種々のオプションを制御するように割り当てられる得る。例えば、特定の暗号スイートおよび暗号化プロトコルバージョンの使用が、必要とされることがある。
【0080】
アプリケーション識別(APP-ID)エンジン442は、セッションが何のタイプのトラフィックを伴うかを判定するように構成されている。一つの例として、アプリケーション識別エンジン442は、受信されたデータ内のGET要求を認識し、そして、セッションがHTTPデコーダを必要とすると結論付けることができる。いくつかの事例において、例えば、ウェブブラウジングセッションでは、識別されたアプリケーションは変更することができ、そして、そうした変更はネットワークゲートウェイ400によって通知される。例えば、ユーザは、最初に企業Wikiをブラウズし(訪問したURLに基づいて「ウェブブラウジング-生産性(“Web Browsing - Productivity”)」として分類される)、そして、次いで、それに続いて、ソーシャルネットワーキングサイトをブラウズすることができる(訪問したURLに基づいて「ウェブブラウジング-ソーシャルネットワーキング(“Web Browsing ‐ Social Networking”)」として分類される)。異なるタイプのプロトコルは、対応するデコーダを有している。
【0081】
アプリケーション識別(APP-ID)エンジン442によって行われた判定に基づいて、パケットが、脅威エンジン444によって、パケット(順序が乱れて受信され得るもの)を正しい順序へと組み立て、トークン化を実行し、そして、情報を抽出するように構成された適切なデコーダに送信される。脅威エンジン444は、また、パケットに何が起こるべきかを判定するために、シグネチャマッチング(signature matching)を実行する。必要に応じて、SSL暗号化エンジン446は、復号されたデータを再暗号化することができる。パケットは、(例えば、宛先への)送信のために、転送モジュール448を使用して転送される。
【0082】
図4Bにも、また、示されるように、ポリシ452が、管理プレーン432において受信され、そして、保管される。ポリシは、ドメイン、及び/又は、ホスト/サーバ名を使用して指定され得る、1つ以上のルールを含むことができ、そして、ルールは、モニタリングされたセッショントラフィックフローからの様々な抽出されたパラメータ/情報に基づいて、加入者/IPフローのためのセキュリティポリシ実施のためといった、1つ以上のシグネチャ、もしくは、他のマッチング基準またはヒューリスティクスを適用することができる。インターフェイス(I/F)通信器450が、(例えば、(REST)API、メッセージ、もしくは、ネットワークプロトコル通信または他の通信メカニズムを介した)管理通信のために提供される。
【0083】
ここで明らかになるように、セキュリティ/ファイアウォールポリシ実施を実行するためのそうした一つの例示的なデータアプライアンスの実施形態に係る上述の論理コンポーネントは、コンテナ化されたアプリケーションをセキュアにするために本明細書で同様に説明されるような仮想またはコンテナベースのファイアウォール実装といった、ソフトウェアにおいて同様に実装され得る。
【0084】
コンテナ化されたアプリケーションをセキュアにするための例示的なプロセスの実施形態が、これから、以下でさらに説明される。
【0085】
コンテナ化されたアプリケーションを保護するための例示的なプロセスの実施形態
【0086】
図5は、いくつかの実施形態に従った、コンテナ化されたアプリケーションをセキュアにするためのプロセスを示すフローチャートである。一つの実施形態において、プロセス500が、上述のシステムアーキテクチャ(例えば、
図1A-
図4Bに関して上述したようなもの)を使用して実行される。
【0087】
プロセスは、新しいアプリケーションコンテナが検出されると、502で開始する。例えば、アプリケーションコンテナは、上記と同様に、クラウドベースのコンテナサービスにおいて実行されているコンテナ化されたアプリケーションであってよい。
【0088】
504では、セキュリティエンティティが、新しいアプリケーションコンテナに配備される。例えば、セキュリティエンティティは、上記と同様に、アプリケーションコンテナの全てのトラフィック(例えば、入口、出口、および、東西トラフィック)をモニタリングするために、アプリケーションコンテナ内にシームレスに配備されているファイアウォールを含むことができる。
【0089】
506で、セキュリティエンティティは、ポリシを実施するために、アプリケーションコンテナとの間の(to and from)の全てのトラフィックをモニタリングする。例えば、アプリケーションコンテナに配備されたファイアウォールは、上記と同様に、(例えば、ネットワークトラフィックに関連付けられたAPP-ID及び/又は他のメタ情報に基づいて)セキュリティ/ファイアウォールポリシを実施するために、(例えば、ディープパケットインスペクション(DPI)を使用して)トラフィックを検査することによって、アプリケーションコンテナの全てのトラフィック(例えば、入口、出口、および、東西トラフィック)を検査することができる。
【0090】
図6は、いくつかの実施形態に従った、コンテナ化されたアプリケーションをセキュアにするためのプロセスを示す別のフローチャートである。一つの実施形態において、プロセス600は、上述のシステムアーキテクチャ(例えば、
図1A-
図4Bに関して上記で説明されたようなもの)を使用して、実行される。
【0091】
プロセスは、新しいアプリケーションコンテナが検出されると、602で開始する。例えば、アプリケーションコンテナは、上記と同様に、クラウドベースのコンテナサービスにおいて実行されているコンテナ化されたアプリケーションであってよい。
【0092】
604では、セキュリティエンティティが、新しいアプリケーションコンテナに配備される。例えば、セキュリティエンティティは、上記と同様に、アプリケーションコンテナの全てのトラフィック(例えば、入口、出口、および、東西トラフィック)をモニタリングするために、アプリケーションコンテナ内にシームレスに配備されているファイアウォールを含むことができる。
【0093】
606で、セキュリティエンティティは、アプリケーションコンテナについて全てのレイヤ7(L7)の入口および出口トラフィックをシームレスに検査する。例えば、セキュリティエンティティは、上記と同様に、アプリケーションコンテナ(例えば、アプリケーションポッド)についてL7アプリケーショントラフィックを含む全てのトラフィックをシームレスに検査するために、アプリケーションコンテナ内に透過的に配備され得る。
【0094】
608で、セキュリティエンティティは、検査されたトラフィックに基づいてセキュリティポリシを実施する。例えば、アプリケーションコンテナに配備されたファイアウォールは、上記と同様に、(例えば、脅威検査/実施のためといった、ネットワークトラフィックに関連付けられたAPP-ID及び/又は他のメタ情報に基づいて)セキュリティ/ファイアウォールポリシを実施するために、(例えば、ディープパケットインスペクション(DPI)を使用して)トラフィックを検査することによって、アプリケーションコンテナの全てのトラフィック(例えば、入口、出口、および、東西トラフィック)を検査することができる。
【0095】
610において、セキュリティエンティティは、トラフィックログデータを、セキュリティエンティティからセキュリティ管理エンティティに送信する。例えば、セキュリティエンティティは、トラフィックログデータを、セキュリティ管理エンティティに定期的に送信し、または、上記と同様に、アプリケーションコンテナ/ポッドが破壊される以前に、そうしたトラフィックログデータを、セキュリティ管理エンティティに送信することができる。
【0096】
前述の実施形態は、理解を明確にする目的で、いくらか詳細に説明されてきたが、本発明は、提供される詳細に限定されるものではない。本発明を実施する多くの代替方法が存在している。開示された実施形態は、例示的であり、かつ、限定的ではない。
【手続補正書】
【提出日】2024-01-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサおよびメモリを含む、システムであって、
前記プロセッサは、
新しいアプリケーションコンテナを検出し、
全てのネットワークトラフィックタイプをセキュアにするために、前記アプリケーションコンテナに対するセキュリティエンティティを、コンテナ環境内のアプリケーションレイヤネットワークトラフィックの経路の中へ配備し、
前記セキュリティエンティティは、
前記コンテナ環境内のノードにおいて前記セキュリティエンティティに関連付けられた新しいネットワーク名前空間を生成すること、および、
前記ノードのサイドインターフェイスを前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間に移動し、かつ、前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられたネットワーク名前空間との間に新しいインターフェイスのペアを作成することであり、前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられた前記ネットワーク名前空間との間の前記新しいインターフェイスのペアは、名前空間境界間を移動している脅威を検出し、かつ、防止するために、前記コンテナ環境においてインラインセキュリティの実行を促進すること、
を実行することによって、
フローの修正なしに、かつ、サイドカーコンテナまたはIPテーブルを使用することなく、入口フロー、出口フロー、および、東西フローについて全てのアプリケーションレイヤネットワークトラフィックの前記経路の中へ透過的に挿入されており、
ポリシを実施するために、前記セキュリティエンティティを使用して、前記アプリケーションコンテナとの間の全てのトラフィックをモニタリング
し、かつ、
トラフィックログデータを、前記セキュリティエンティティからセキュリティ管理エンティティに送信し、前記トラフィックのログデータは、周期的に、かつ、前記アプリケーションコンテナが破壊される以前に、前記セキュリティ管理エンティティに送信される、
ように構成されており、
前記メモリは、
前記プロセッサに結合されており、かつ、
前記プロセッサに命令を提供するように構成されている、
システム。
【請求項2】
前記セキュリティエンティティは、ファイアウォールである、
請求項1に記載のシステム。
【請求項3】
前記ポリシは、セキュリティポリシである、
請求項1に記載のシステム。
【請求項4】
前記セキュリティエンティティは、ファイアウォールであり、かつ、
前記ポリシは、ファイアウォールポリシである、
請求項1に記載のシステム。
【請求項5】
前記セキュリティエンティティは、前記アプリケーションコンテナが作成および破棄される際に、前記アプリケーションコンテナとのユーザ介入なしで、動的に前記アプリケーションコンテナに配備される、
請求項1に記載のシステム。
【請求項6】
前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングすることは、
ディープパケットインスペクションを使用して決定されたフローに関連付けられたアプリケーション識別を含む、
請求項1に記載のシステム。
【請求項7】
前記アプリケーションコンテナは、クラウドベースのコンテナサービスにおいて実行される、
請求項1に記載のシステム。
【請求項8】
前記アプリケーションコンテナは、パブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項1に記載のシステム。
【請求項9】
前記アプリケーションコンテナは、複数のパブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項1に記載のシステム。
【請求項10】
前記ポリシは、ファイアウォールポリシであり、
前記プロセッサは、さらに、
前記セキュリティエンティティを使用して、パケットを検査し、
セキュリティポリシに違反しないと判定された場合には、前記パケットを変更することなく送信し、かつ、前記ファイアウォールポリシに違反すると判定された場合には、前記パケットをドロップする、
ように構成されている、
請求項1に記載のシステム。
【請求項11】
方法であって、
新しいアプリケーションコンテナを検出するステップと、
全てのネットワークトラフィックタイプをセキュアにするために、前記アプリケーションコンテナに対するセキュリティエンティティを、コンテナ環境内のアプリケーションレイヤネットワークトラフィックの経路の中へ配備するステップであり、
前記セキュリティエンティティは、
前記コンテナ環境内のノードにおいて前記セキュリティエンティティに関連付けられた新しいネットワーク名前空間を生成すること、および、
前記ノードのサイドインターフェイスを前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間に移動し、かつ、前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられたネットワーク名前空間との間に新しいインターフェイスのペアを作成することであり、前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられた前記ネットワーク名前空間との間の前記新しいインターフェイスのペアは、名前空間境界間を移動している脅威を検出し、かつ、防止するために、前記コンテナ環境においてインラインセキュリティの実行を促進すること、を実行することによって、
フローの修正なしに、かつ、サイドカーコンテナまたはIPテーブルを使用することなく、入口フロー、出口フロー、および、東西フローについて全てのアプリケーションレイヤネットワークトラフィックの前記経路の中へ透過的に挿入されている、ステップと、
ポリシを実施するために、前記セキュリティエンティティを使用して、前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングするステップと、
トラフィックログデータを、前記セキュリティエンティティからセキュリティ管理エンティティに送信するステップであり、
前記トラフィックのログデータは、周期的に、かつ、前記アプリケーションコンテナが破壊される以前に、前記セキュリティ管理エンティティに送信される、
ステップと、
を含む、方法。
【請求項12】
前記セキュリティエンティティは、ファイアウォールであり、かつ、
前記ポリシは、ファイアウォールポリシである、
請求項11に記載の方法。
【請求項13】
前記セキュリティエンティティは、前記アプリケーションコンテナが作成および破棄される際に、前記アプリケーションコンテナとのユーザ介入なしで、動的に前記アプリケーションコンテナに配備される、
請求項11に記載の方法。
【請求項14】
前記アプリケーションコンテナは、クラウドベースのコンテナサービスにおいて実行される、
請求項11に記載の方法。
【請求項15】
前記アプリケーションコンテナは、パブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項11に記載の方法。
【請求項16】
前記アプリケーションコンテナは、複数のパブリッククラウドサービスプロバイダを使用して提供される、クラウドベースのコンテナサービスにおいて実行される、
請求項11に記載の方法。
【請求項17】
前記ポリシは、ファイアウォールポリシであり、
前記方法は、さらに、
前記セキュリティエンティティを使用して、パケットを検査するステップと、
セキュリティポリシに違反しないと判定された場合に、前記パケットを変更することなく送信するステップ、および、前記ファイアウォールポリシに違反すると判定された場合に、前記パケットをドロップするステップと、
を含む、
請求項11に記載の方法。
【請求項18】
コンピュータプログラムであって、
前記コンピュータプログラムは、コンピュータ命令を含み、かつ、有形のコンピュータ可読記憶媒体に保管されており、前記命令が実行されると、
新しいアプリケーションコンテナを検出するステップと、
全てのネットワークトラフィックタイプをセキュアにするために、前記アプリケーションコンテナに対するセキュリティエンティティを、コンテナ環境内のアプリケーションレイヤネットワークトラフィックの経路の中へ配備するステップであり、
前記セキュリティエンティティは、
前記コンテナ環境内のノードにおいて前記セキュリティエンティティに関連付けられた新しいネットワーク名前空間を生成すること、および、
前記ノードのサイドインターフェイスを前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間に移動し、かつ、前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられたネットワーク名前空間との間に新しいインターフェイスのペアを作成することであり、前記セキュリティエンティティに関連付けられた前記新しいネットワーク名前空間と、前記アプリケーションコンテナに関連付けられた前記ネットワーク名前空間との間の前記新しいインターフェイスのペアは、名前空間境界間を移動している脅威を検出し、かつ、防止するために、前記コンテナ環境においてインラインセキュリティの実行を促進すること、を実行することによって、
フローの修正なしに、かつ、サイドカーコンテナまたはIPテーブルを使用することなく、入口フロー、出口フロー、および、東西フローについて全てのアプリケーションレイヤネットワークトラフィックの前記経路の中へ透過的に挿入されている、ステップと、
ポリシを実施するために、前記セキュリティエンティティを使用して、前記アプリケーションコンテナとの間の全てのトラフィックをモニタリングするステップと、
トラフィックログデータを、前記セキュリティエンティティからセキュリティ管理エンティティに送信するステップであり、
前記トラフィックのログデータは、周期的に、かつ、前記アプリケーションコンテナが破壊される以前に、前記セキュリティ管理エンティティに送信される、
ステップと、
を実施させる、コンピュータプログラム。
【請求項19】
前記セキュリティエンティティは、ファイアウォールであり、かつ、
前記ポリシは、ファイアウォールポリシである、
請求項18に記載のコンピュータプログラム。
【請求項20】
前記セキュリティエンティティは、前記アプリケーションコンテナが作成および破棄される際に、前記アプリケーションコンテナとのユーザ介入なしで、動的に前記アプリケーションコンテナに配備される、
請求項18記載のコンピュータプログラム。
【国際調査報告】