IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-545065異常コンテナ特定方法、システム、プログラム
<>
  • 特表-異常コンテナ特定方法、システム、プログラム 図1
  • 特表-異常コンテナ特定方法、システム、プログラム 図2
  • 特表-異常コンテナ特定方法、システム、プログラム 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-05
(54)【発明の名称】異常コンテナ特定方法、システム、プログラム
(51)【国際特許分類】
   G06F 21/55 20130101AFI20241128BHJP
   G06F 21/57 20130101ALI20241128BHJP
【FI】
G06F21/55
G06F21/57
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024533278
(86)(22)【出願日】2022-11-24
(85)【翻訳文提出日】2024-06-04
(86)【国際出願番号】 CN2022134071
(87)【国際公開番号】W WO2023109460
(87)【国際公開日】2023-06-22
(31)【優先権主張番号】17/643,864
(32)【優先日】2021-12-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ロー、ユン-チャン
(72)【発明者】
【氏名】リン、チュン-シュオ
(72)【発明者】
【氏名】シャオ、チー-ウェイ
(72)【発明者】
【氏名】シュン、ウェイ-シャン
(72)【発明者】
【氏名】リュウ、ウェイ-ジー
(57)【要約】
コンピュータ・プロセッサが、第1のコンテナの実行時間フィーチャー・セットを決定し、ここで実行時間フィーチャー・セットは、集約された時間的に配置されたコンテナ動作を含み、コンピュータ・プロセッサは、共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて、対等コンテナまたは対等ポッドで第1のコンテナをクラスタ化し、コンピュータ・プロセッサは、各対等コンテナについて追加の実行時間フィーチャー・セットを決定し、コンピュータ・プロセッサは、第1のコンテナと各対等コンテナとの差異を計算し、コンピュータ・プロセッサは、計算された差異が差異しきい値を超えると、第1のコンテナを異常として特定する。
【特許請求の範囲】
【請求項1】
コンピュータ実装された方法であって、
第1のコンテナの実行時間フィーチャー・セットを、1つまたは複数のコンピュータ・プロセッサによって、決定すること、前記実行時間フィーチャー・セットには、集約された時間的に配置されたコンテナ動作が含まれる、と、
共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて、1つまたは複数の対等コンテナまたは対等ポッドで前記第1のコンテナを、1つまたは複数のコンピュータ・プロセッサによって、クラスタ化することと、
各対等コンテナについて追加の実行時間フィーチャー・セットを、1つまたは複数のコンピュータ・プロセッサによって、決定することと、
前記第1のコンテナと各対等コンテナとの差異を、1つまたは複数のコンピュータ・プロセッサによって、計算することと、
前記計算された差異が差異しきい値を超えると、異常として前記第1のコンテナを、1つまたは複数のコンピュータ・プロセッサによって、特定することとを含む、コンピュータ実装された方法。
【請求項2】
前記第1のコンテナと各対等コンテナとの間の前記差異を計算することが、
特定の期間に、前記クラスタ化された対等コンテナから集約された第2の実行時間フィーチャー・セットに基づいて実行ベースライン実行時間フィーチャー・セットを、1つまたは複数のコンピュータ・プロセッサによって、作成することをさらに含む、請求項1に記載のコンピュータ実装された方法。
【請求項3】
前記実行時間フィーチャー・セットが、ファイル運用、ネットワーク運用、およびプロセス運用を含む、請求項1に記載のコンピュータ実装された方法。
【請求項4】
前記共有コンテナ目的に基づいて対等コンテナまたは対等ポッドで前記第1のコンテナをクラスタ化することが、
前記第1のコンテナおよび1つまたは複数の知られているコンテナのファイル名、フォルダ名、親フォルダ、サブフォルダ、関連許可、作成日、修正日、シンボル・リンク、ファイル・サイズ、フォルダ・サイズ、およびファイル・タイプを、1つまたは複数のコンピュータ・プロセッサによって、比較して前記第1のコンテナの前記コンテナ目的を決定することを含む、請求項1に記載のコンピュータ実装された方法。
【請求項5】
前記差異が、システム・コールのパーセンテージ・ベクトル、集約された配置されたコンテナ動作の数、タッチされたファイルの数、作成されたファイルの数、およびネットワーク接続の数から導出される、請求項1に記載のコンピュータ実装された方法。
【請求項6】
前記クラスタ化された対等コンテナを含むレプリカ・セットに前記第1のコンテナを、1つまたは複数のコンピュータ・プロセッサによって、追加すること
をさらに含む、請求項1に記載のコンピュータ実装された方法。
【請求項7】
前記特定されたコンテナ目的およびエンタープライズ重要度の関連レベルに基づいて前記差異しきい値を、1つまたは複数のコンピュータ・プロセッサによって、調整すること
をさらに含む、請求項1に記載のコンピュータ実装された方法。
【請求項8】
コンピュータ・プログラム製品であって、
1つまたは複数のコンピュータ可読ストレージ・メディアに記憶された1つまたは複数のコンピュータ可読ストレージ・メディアおよびプログラム命令を含み、前記記憶されたプログラム命令が、
第1のコンテナの実行時間フィーチャー・セットを決定するためのプログラム命令、前記実行時間フィーチャー・セットが、集約された時間的に配置されたコンテナ動作を含む、と、
共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて1つまたは複数の対等コンテナまたは対等ポッドで前記第1のコンテナをクラスタ化するためのプログラム命令と、
各対等コンテナの追加の実行時間フィーチャー・セットを決定するためのプログラム命令と、
前記第1のコンテナと各対等コンテナとの間の差異を計算するためのプログラム命令と、
前記計算された差異が差異しきい値を超えると前記第1のコンテナを異常として特定するためのプログラム命令とを含む、コンピュータ・プログラム製品。
【請求項9】
前記第1のコンテナと各対等コンテナとの間の前記差異を計算するための前記プログラム命令が、
特定の期間に、前記クラスタ化された対等コンテナから、集約された第2の実行時間フィーチャー・セットに基づいて、実行ベースライン実行時間フィーチャー・セットを作成するためのプログラム命令を含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項10】
前記実行時間フィーチャー・セットが、ファイル運用、ネットワーク運用、およびプロセス運用を含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項11】
共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて1つまたは複数の対等コンテナまたは対等ポッドで前記第1のコンテナをクラスタ化するための前記プログラム命令が、
前記第1のコンテナおよび1つまたは複数の知られているコンテナのファイル名、フォルダ名、親フォルダ、サブフォルダ、関連許可、作成日、修正日、シンボル・リンク、ファイル・サイズ、フォルダ・サイズ、およびファイル・タイプを比較して前記第1のコンテナの前記コンテナ目的を決定するためのプログラム命令を含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項12】
前記差異が、システム・コールのパーセンテージ・ベクトル、集約された配置されたコンテナ動作の数、タッチされたファイルの数、作成されたファイルの数、およびネットワーク接続の数から導出される、請求項8に記載のコンピュータ・プログラム製品。
【請求項13】
前記1つまたは複数のコンピュータ可読ストレージ・メディアに記憶された、前記プログラム命令が、
前記クラスタ化された対等コンテナを含むレプリカ・セットに前記第1のコンテナを追加するためのプログラム命令をさらに含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項14】
前記1つまたは複数のコンピュータ可読ストレージ・メディアに記憶された、前記プログラム命令が、
前記特定されたコンテナ目的およびエンタープライズ重要度の関連レベルに基づいて前記差異しきい値を調整するためのプログラム命令をさらに含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項15】
コンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読ストレージ・メディアと、
前記1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために前記コンピュータ可読ストレージ・メディアに記憶されたプログラム命令とを含み、前記記憶されたプログラム命令が、
第1のコンテナの実行時間フィーチャー・セットを決定するためのプログラム命令、前記実行時間フィーチャー・セットが、集約された時間的に配置されたコンテナ動作を含む、と、
共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて1つまたは複数の対等コンテナまたは対等ポッドで前記第1のコンテナをクラスタ化するためのプログラム命令と、
各対等コンテナの追加の実行時間フィーチャー・セットを決定するためのプログラム命令と、
前記第1のコンテナと各対等コンテナとの間の差異を計算するためのプログラム命令と、
前記計算された差異が差異しきい値を超えると前記第1のコンテナを異常として特定するためのプログラム命令とを含む、コンピュータ・システム。
【請求項16】
前記第1のコンテナと各対等コンテナとの間の前記差異を計算するための前記プログラム命令が、
特定の期間に、前記クラスタ化された対等コンテナから、集約された第2の実行時間フィーチャー・セットに基づいて、実行ベースライン実行時間フィーチャー・セットを作成するためのプログラム命令を含む、請求項15に記載のコンピュータ・システム。
【請求項17】
前記実行時間フィーチャー・セットが、ファイル運用、ネットワーク運用、およびプロセス運用を含む、請求項15に記載のコンピュータ・システム。
【請求項18】
共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて1つまたは複数の対等コンテナまたは対等ポッドで前記第1のコンテナをクラスタ化するための前記プログラム命令が、
前記第1のコンテナおよび1つまたは複数の知られているコンテナのファイル名、フォルダ名、親フォルダ、サブフォルダ、関連許可、作成日、修正日、シンボル・リンク、ファイル・サイズ、フォルダ・サイズ、およびファイル・タイプを比較して前記第1のコンテナの前記コンテナ目的を決定するためのプログラム命令を含む、請求項15に記載のコンピュータ・システム。
【請求項19】
前記差異が、システム・コールのパーセンテージ・ベクトル、集約された配置されたコンテナ動作の数、タッチされたファイルの数、作成されたファイルの数、およびネットワーク接続の数から導出される、請求項15に記載のコンピュータ・システム。
【請求項20】
前記1つまたは複数のコンピュータ可読ストレージ・メディアに記憶された、前記プログラム命令が、
前記特定されたコンテナ目的およびエンタープライズ重要度の関連レベルに基づいて前記差異しきい値を調整するためのプログラム命令をさらに含む、請求項15に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して仮想化の分野に関し、より詳細にはクラスタ・コンテナ保護に関する。
【背景技術】
【0002】
オペレーティング・システム(OS)仮想化とは、カーネルが複数の分離ユーザー空間インスタンスの存在を許容する、オペレーティング・システム・パラダイムを指す。このようなインスタンスは、コンテナ、ゾーン、仮想パーソナル・サーバー、パーティション、仮想環境、仮想カーネル、またはジェイルと呼ばれ、含まれているプログラムの視点から本物のコンピュータのように見えることがある。通常のオペレーティング・システム上で実行されるコンピュータ・プログラムは、そのコンピュータのすべてのリソース(接続されたデバイス、ファイルおよびフォルダ、ネットワーク共有、CPUパワー、定量化可能なハードウェア能力)を参照することができるが、コンテナの内部で実行されるプログラムは、コンテナの内容とコンテナに割り当てられたデバイスのみを参照することができる。オペレーティング・システム・レベルの仮想化は、仮想ホスティング環境において、多数の独立したユーザー間で有限のハードウェア・リソースを安全に割り当てるために一般に使用される。システム管理者はまた、別々のホストにあるサービスを、単一のホスト(例えば、サーバー)上のコンテナに移動させることによって、サーバー・ハードウェアを統合するために仮想化することもできる。コンテナは一般に、セキュリティの改善、ハードウェア独立性、およびリソース管理機能の追加のために使用される。ライブ・マイグレーションの能力を有するオペレーティング・システム・レベルの仮想化実装もまた、クラスタ内のノード間でコンテナをダイナミック負荷分散するために使用することができる。仮想パーティション内のプログラムは、完全な仮想化および準仮想化での場合のように、オペレーティング・システムの標準のシステム・コール・インターフェースを使用し、エミュレーションを受けるまたは中間仮想機械において実行される必要がないので、オペレーティング・システム・レベルの仮想化は、通常、完全仮想化よりもオーバーヘッドが少なくて済む。この形式の仮想化はまた、効率的なパフォーマンスのためにハードウェア・サポートを必要としない。
【0003】
オペレーション・システム・レベルの仮想化は、ホスト・オペレーティング・システムとは異なるゲスト・オペレーティング・システム、または異なるゲスト・カーネルをホストすることができないので、他の仮想化アプローチ(例えば、コンテナ化)ほど柔軟ではない。いくつかの実装形態は、ファイルレベルのコピー・オン・ライト(CoW)メカニズムを提供する。最も一般的なのは、パーティション間で標準ファイル・システムを共有し、ファイルを変更するパーティションは自動的にコピーを作成する。これは、システム全体の仮想化に関して共通のブロックレベルのコピー・オン・ライト方式よりも、バックアップしやすく、スペース効率に優れ、キャッシュするのが簡単である。しかし、システム全体の仮想化は、非ネイティブのファイル・システムで処理し、システム状態全体のスナップショットを作成し、ロールバックすることができる。
【発明の概要】
【0004】
本発明の実施形態は、コンピュータ実装された方法、コンピュータ・プログラム製品、およびシステムを開示する。コンピュータ実装された方法は、1つまたは複数のコンピュータ・プロセッサが第1のコンテナについて実行時間フィーチャー・セットを決定することを含み、実行時間フィーチャー・セットには時間的に配置されたコンテナ動作が集約されている。1つまたは複数のコンピュータ・プロセッサは、共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて、1つまたは複数の対等コンテナまたは対等ポッドで第1のコンテナをクラスタ化する。1つまたは複数のコンピュータ・プロセッサは、各対等コンテナについて追加の実行時間フィーチャー・セットを決定する。1つまたは複数のコンピュータ・プロセッサは、第1のコンテナと各対等コンテナとの差異を計算する。1つまたは複数のコンピュータ・プロセッサは、計算された差異が差異しきい値を超えると、第1のコンテナを異常として特定する。
【図面の簡単な説明】
【0005】
図1】本発明の一実施形態による、分散データ処理環境を示す機能ブロック図である。
図2】本発明の一実施形態による、ダイナミック・プロファイリングを通したコンテナ保護のための、図1のデータ処理環境内のサーバー・コンピュータ上の、プログラムの動作ステップを示すフローチャートである。
図3】本発明の一実施形態による、コンピューティング・デバイスおよびサーバー・コンピュータの構成要素のブロック図である。
【発明を実施するための形態】
【0006】
現代の企業や組織の大半は、急速に変化する環境やシステム要求に対応するために、重要なエンタープライズ・アプリケーションをコンテナ化する。このようなコンテナ技術の採用の増加は、新しいコンテナ保護技術やテクニックの欠如を悪用するハッカーや悪質な行為者の新しい攻撃ベクトルをもたらした。この問題は、高信頼の利用できる、悪意のある画像シグネチャがないことで、深刻になり、悪質な行為者は、わずかな作業やコストで、コンテナ・ハッシュを変更することで、既存の悪意のある画像シグネチャを迂回することができる。加えて、多くのコンテナが、特定の管理環境で第三者や取引先によって作成され、そのため、正しいコンテキストを特定および決定することなくコンテナの評判や動作プロファイルを構築することが難しくなっている。さらに、第三者のコンテナ作成は、評判プロファイルや動作コンテナ・プロファイルのベースラインを特定する際の計算コストを増加させる。現在のシステムでは、24時間などの固定区間でコンテナ動作をサンプリングするため、固定区間でのセキュリティ・リスクが高まる一方で、計算オーバーヘッドは増加し、コンテナ・デプロイメントが遅れている。
【0007】
本発明の実施形態は、クラスタ化したコンテナの選択的なサブセットから動的ベースラインを維持しながら、コンテナの実行時間動作の動的プロファイリングを通して、コンテナとコンテナ・システムを改善する。本発明の実施形態は、特定された非異常コンテナまたはポッドを対等コンテナのクラスタによって定義されるレプリカ・セットに組み込むことで、コンテナの空き状況、信頼度、安定度を向上させる。本発明の実施形態は、不規則または異常なコンテナまたはポッドを、ベースライン偏差に基づいて特定し、緩和することによって、コンテナまたはポッドのセキュリティを改善する。本発明の実施形態は、共有される特定された目的で対等コンテナまたは対等ポッドのプロファイリングすることのみによって異常なコンテナの計算オーバーヘッドを軽減する。本発明の実施形態の実装は、様々な形をとることができ、例示的な実装の詳細については、図を参照しながら後述する。
【0008】
次に、本発明を図を参照して詳細に説明する。
【0009】
図1は、本発明の一実施形態による、分散データ処理環境(一般に100で示された)を示す機能ブロック図である。本明細書では「分散」という用語は、単一コンピュータ・システムとして共に動作する、物理的に異なる複数のデバイスを含むコンピュータ・システムを表す。図1は、1つの実装形態を例示したものに過ぎず、異なる実施形態が実装される環境に関する制限を意味するものではない。当業者であれば、特許請求の範囲に記載された本発明の範囲から逸脱することなく、描かれた環境に多くの変更を加えることができる。
【0010】
分散データ処理環境100は、ネットワーク102上に接続されたコンテナ110およびサーバー・コンピュータ120を含む。ネットワーク102は、例えば、通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、例えば、インターネット、あるいはこれら3つの組合せとすることができ、有線、ワイヤレス、または光ファイバー接続を含むことができる。ネットワーク102は、音声、データ、およびビデオ情報を含むマルチメディア信号を含む、データ、音声、またはビデオ信号あるいはその組合せを受信および送信することができる1つまたは複数の有線またはワイヤレスあるいはその両方のネットワークを含むことができる。一般に、ネットワーク102は、分散データ処理環境100内の、コンテナ110、サーバー・コンピュータ120、および他のコンピューティング・デバイス(図示せず)の間の通信をサポートする、接続およびプロトコルの任意の組合せとすることができる。各種実施形態では、ネットワーク102は、有線、ワイヤレス、または光接続を介してローカルに動作し、任意の組合せの接続およびプロトコル(例えば、パーソナル・エリア・ネットワーク(PAN)、近距離無線通信(NFC)、レーザー、赤外線、超音波など)とすることができる。
【0011】
コンテナ110は、コードと依存関係をパッケージ化したソフトウェアの単位を表す。例えば、コンテナ110は、パッケージ・ウェブ・サーバーをホストしている。一実施形態では、コンテナ110は、ポッドに含まれる複数のコンテナのうちの1つであり、各コンテナは、タスク(すなわち、コンテナ目的)を完了するために協働する。例えば、例示的なポッドは、ロード・バランサーを含む別のコンテナと連動するウェブ・サーバーを含むコンテナで構成される。別の実施形態では、コンテナ110は、サーバー・コンピュータ120上、またはネットワーク102を介して接続された別のコンピューティング・デバイス(図示せず)上に存在してもよい。
【0012】
サーバー・コンピュータ120は、スタンドアロン・コンピューティング・デバイス、管理サーバー、ウェブ・サーバー、モバイル・コンピューティング・デバイス、あるいは、データを受信、送信、処理することが可能な任意の他の電子デバイスまたはコンピューティング・システムとすることができる。他の実施形態では、サーバー・コンピュータ120は、クラウド・コンピューティング環境のように、サーバー・システムとして複数のコンピュータを使用するサーバー・コンピューティング・システムを表すことができる。別の実施形態では、サーバー・コンピュータ120は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、携帯情報端末(PDA)、スマート・フォン、あるいはコンテナ110および分散データ処理環境100内の他のコンピューティング・デバイス(図示せず)とネットワーク102を介して通信可能な任意のプログラマブル電子デバイスとすることができる。別の実施形態では、サーバー・コンピュータ120は、分散データ処理環境100内でアクセスされたときにシームレス・リソースの単一プールとして機能するクラスタ化されたコンピュータおよびコンポーネント(例えば、データベース・サーバー・コンピュータ、アプリケーション・サーバー・コンピュータなど)を利用するコンピューティング・システムを表す。描かれている実施形態では、サーバー・コンピュータ120は、プロファイル122およびプログラム150を含む。他の実施形態では、サーバー・コンピュータ120は、分散データ処理環境100に描かれていない他のアプリケーション、データベース、プログラムなどを含んでもよい。サーバー・コンピュータ120は、図3に関してさらに詳しく描かれ、説明されているように、内部および外部ハードウェア・コンポーネントを含むことができる。
【0013】
プロファイル122は、プログラム150が使用するデータのためのリポジトリーである。描かれている実施形態では、プロファイル122は、サーバー・コンピュータ120上に存在する。別の実施形態では、プロファイル122は、プログラム150がプロファイル122にアクセスできることを条件として、分散データ処理環境100内の他の場所に存在してもよい。データベースは、プロファイル・データの組織化されたコレクションである。プロファイル122は、データベース・サーバー、ハード・ディスク・ドライブ、またはフラッシュ・メモリなど、プログラム150によってアクセスされ利用されることが可能なデータや設定ファイルを記憶することができる任意のタイプのストレージ・デバイスで実装することができる。一実施形態では、プロファイル122は、1つまたは複数の実行中のコンテナ、ポッド、クラスタ、またはレプリカ・セットからプログラム150によって収集されたデータ(すなわち、実行時間フィーチャー・セット)を記憶する。一実施形態では、プロファイル122は、履歴ベースラインと、システム・コール、アクセスされたファイル、実行中のプロセス、および通信されたネットワーク・エンティティなどのコンテナ動作とを含むことができるが、これらに限定されない。
【0014】
プログラム150は、ダイナミック・プロファリングによるコンテナ保護のためのプログラムである。各種実施形態において、プログラム150は、以下のステップを実装することができる:第1のコンテナの実行時間フィーチャー・セットを決定すること、ここで、実行時間フィーチャー・セットには、集約された時間的に配置されたコンテナ動作が含まれる、と、第1のコンテナを、共有コンテナ目的、類似のコンテナ動作、および類似のコンテナ・ファイル構造に基づいて、1つまたは複数の対等コンテナまたは対等ポッドとクラスタ化することと、各対等コンテナの追加の実行時間フィーチャー・セットを決定することと、第1のコンテナと各対等コンテナとの差異を計算することと、計算された差異が差異しきい値を超えると第1のコンテナを異常として特定すること。描かれている実施形態では、プログラム150は、スタンドアロン・ソフトウェア・プログラムである。別の実施形態では、プログラム150の機能、またはその任意の組合せプログラムは、単一ソフトウェア・プログラムに組み込むことができる。いくつかの実施形態では、プログラム150は、別のコンピューティング・デバイス(図示せず)に配置されていてもよいが、ネットワーク102を介してまだ通信することができる。各種実施形態では、クライアント版プログラム150は、コンテナ110または分散データ処理環境100内の任意の他のコンピューティング・デバイス(図示せず)あるいはその両方に存在する。プログラム150は、図2に関してさらに詳細に描かれ、説明されている。
【0015】
本発明は、様々な利用できるデータ・ソース、例えば、プロファイル122、を含めることができる。このデータ・ソースは、パーソナル・ストレージ・デバイス、データ、内容、またはユーザーが処理を希望しない情報を含むことができる。処理とは、自動化されているか否かを問わず、収集、記録、編成、構造化、保存、適応、変更、取り出し、コンサルテーション、使用や、送信、配布、その他の方法で入手可能にすることによる開示、組合せ、制限、消去、または個人データに関して実行される破棄などの任意の動作または動作のセットを指す。プログラム150は、ユーザーが個人データの処理のオプトインまたはオプトアウトをできるように、個人データのコレクションに関する特記事項とともに、インフォームド・コンセントを提供する。同意にはいくつかの形がある。オプトインの同意は、個人データが処理される前に、肯定的な行動を取ることをユーザーに課すことができる。あるいは、オプトアウトの同意は、データが処理される前に、ユーザーに、個人データの処理を防ぐための肯定的な行動を取ることを課すことができる。プログラム150は、トラッキング情報などの、ユーザー情報、並びに、個人を特定する情報や機密性の高い個人情報などの、個人データの認証されたセキュアな処理を可能にする。プログラム150は、個人データと処理の特質(例えば、タイプ、範囲、目的、持続期間など)に関する情報を提供する。プログラム150は、ユーザーに保管済み個人データのコピーを提供する。プログラム150は、正しくないまたは不十分な個人データの修正または完成を可能にする。プログラム150は、個人データの即時の削除を可能にする。
【0016】
図2は、本発明の一実施形態による、ダイナミック・プロファイリングによるコンテナ保護のためのプログラム150の動作ステップを示すフローチャート200を示す。
【0017】
プログラム150は、コンテナの実行時間フィーチャー・セットを決定する(ステップ202)。一実施形態では、プログラム150は、1つまたは複数のコンテナ(すなわち、第1のコンテナ)の開始またはレプリカ・グループの導入に応答して開始する。別の実施形態では、プログラム150は、コンテナ、クラスタ、またはレプリカ・セット上で保護するためのイベントまたはユーザー要求に応答して開始する。プログラム150は、システム・コール、アクセスされたファイル、実行中のプロセス、および通信されたネットワーク・エンティティについて、第1のコンテナを監視する。一実施形態では、プログラム150は、コンテナの活動の表現を、コンテナがそれぞれのコンテキスト(例えば、環境、設定パラメーター、環境変数など)内でどのように相互作用するかを記録するコンパクトな形式に符号化する。この実施形態では、プログラム150は、コンテナ・コンテキストを提供しながら、コンテナ行動(例えば、ファイル、ネットワーク、プロセス動作)を、ネットワークおよびファイル・アクセスの活動に接続する。さらなる実施形態では、プログラム150は、システム・コールのタイプおよび数、タッチされたファイル、プロセス数、子プロセス数、開いているポートまたはリスニング・ポートの数、インバウンド・ネットワークの数、アウトバウンド接続の数を記録する。
【0018】
一実施形態では、プログラム150は、時間的に配置されたコンテナ動作を、「流れ」と呼ばれる単一相関要素として集約する。例えば、プログラム150は、5分期間内に終了したファイルの開く-書き込む-閉じる、を特定し、この動作を、当該5分期間内の別のファイルの流れ(例えば、ファイルを開く、読み取る/書き込む/切り捨てる、ファイルを閉じる)およびネットワークの流れ(例えば、接続作成、送信/受信、接続のクローズ)と集約する。別の実施形態では、プログラム150は、I/O(入出力)の数、/procへのアクセス、送信されたユーザー・データグラム・プロトコル(UDP)パケットの数など、一般的なコンテナ情報を収集する。一実施形態では、プログラム150は、インターワーキング・ポッド・コンテナのコラボレーション・ポッドにモニタ・コンテナが包含されている場合、ポッド動作を収集する。この実施形態では、ポッド動作は、ポッド内の各コンテナからの集約された、時間的に配置されたコンテナ動作である。別の実施形態では、プログラム150は、コンテナの環境変数もしくは設定、関連レプリカ・セット、または関連ソース画像の名称およびタグなど、コンテナ・メタデータを収集する。
【0019】
プログラム150は、決定された実行時間フィーチャー・セット(ステップ204)を利用して、コンテナをクラスタ化する。プログラム150は、決定されたコンテナを、類似の(すなわち対等な)コンテナまたはポッドとマッチングさせ、クラスタ化する。一実施形態では、ユーザーはコンテナまたはポッド目的を提供する。別の実施形態では、プログラム150は、ステップ202で説明したように、決定された実行時間フィーチャー・セットを利用して、第1のコンテナまたは第1のポッドの目的を特定する。例えば、プログラム150は、ポート80上で転送されるコンテナ・ネットワーク・データの顕著な量を記録し、履歴または既知のコンテナに基づき、そのコンテナがウェブ・サーバーであると判断する(すなわち、そのコンテナの目的が既知である)。別の実施形態では、プログラム150は、コンテナ内に含まれるすべてのフォルダおよびファイルを特定し、特定されたファイルおよびフォルダ情報およびメタデータを潜在的な対等コンテナ(例えば、過去のコンテナ、異なる環境や地域で実行されているコンテナ、公的に実行されているコンテナなど)に関連する情報およびメタデータと比較する。この実施形態では、プログラム150は、ファイル名、フォルダ名、親フォルダ、サブフォルダ、関連する許可、作成日、変更日、シンボル・リンク、ファイル・サイズ、フォルダ・サイズ、およびファイル・タイプのいずれかの属性の組合せを比較して、過去のコンテナについてコンテナ目的が既知である場合に、過去のコンテナと比較してコンテナの目的を決定することができる。一実施形態では、プログラム150は、比較された対等コンテナ・ファイルシステムを利用して類似性スコアを計算し、そこで、より高い類似性スコアは、共有される目的のより高い可能性を示す。一実施形態では、プログラム150は、特定されたコンテナまたはポッド目的に基づいて、第1のコンテナまたは第1のポッドをクラスタ化する。一実施形態では、プログラム150は、1つまたは複数のクラスタリング・アルゴリズムを利用して、第1のコンテナを複数の対等コンテナにクラスタ化する。さらなる実施形態では、プログラム150は、類似した(例えば、類似性しきい値を超える)振る舞いをするコンテナまたはポッドとコンテナをクラスタ化するために、ノイズ(DBSCAN)を有するアプリケーションの密度ベースの空間クラスタ化を利用する。別の実施形態では、プログラム150は、レプリカ・セットで対等コンテナまたは対等ポッドとコンテナまたはポッドをクラスタ化する。
【0020】
プログラム150は、コンテナ・クラスタの各対等コンテナについて、第2の実行時間フィーチャー・セットを決定する(ステップ206)。プログラム150は、ステップ204で説明したように、コンテナ・クラスタ内の各コンテナまたはポッドに対して、ステップ202で説明した方法およびテクニックを実行する。一実施形態では、プログラム150は、対等コンテナのクラスタ内の各コンテナまたはポッドに添付され、各コンテナまたはポッドを動的にプロファイリングする。一実施形態では、プログラム150は、少なくとも最初は、クラスタ(例えば、平均または区間内)から逸脱した対等コンテナを除去する。さらなる実施形態では、プログラム150は、集約された第2の実行時間フィーチャー・セットに基づいて、時間的に配置されたクラスタ動作を集約する。一実施形態では、プログラム150は、特定の期間内の集約された第2の実行時間フィーチャー・セット、例えば、10分間以内の平均の集約されたネットワーク・トラフィック、に基づいて、ベースライン(すなわち、プロファイル)実行時間フィーチャー・セットを導出する。この実施形態では、ベースライン実行時間フィーチャー・セットは、コンテナまたはポッドの標準のまたは健康な動作を表す。これらの実施形態では、プログラム150は、各対等コンテナからの実行時間フィーチャー・セットを記録し続け、新たに記録された実行時間フィーチャー・セットに応じてベースラインを動的に調整する。この実施形態により、プログラム150は、サンプリング率またはサンプリング間隔に関連する任意の制限があるにもかかわらず、動的にベースラインを調整することができる。この実施形態では、プログラム150は、1つまたは複数の決定された実行時間フィーチャー・セットに応じてベースラインを調整する。
【0021】
プログラム150は、異常なコンテナを特定する(ステップ208)。プログラム150は、第1のコンテナからおよびクラスタ内の各対等コンテナから実行時間フィーチャー・セットを連続的に記録する。一実施形態では、プログラム150は、第1のコンテナからの実行時間フィーチャー・セットを、包含するクラスタ内の対等コンテナと連続的に比較する。この実施形態では、プログラム150は、セキュリティの脆弱性(例えば、ゼロデイ攻撃)が発見され、緩和されるように、異常なコンテナ動作を検出し、特定する。一実施形態では、プログラム150は、各対等コンテナ(すなわち、ベースライン)と第1のコンテナとの差異または偏差値(例えば、クラスタ平均からの二乗距離)を計算または導出する。別の実施形態では、分散値は、各タイプのシステム・コールのパーセンテージ・ベクトル、集約された流れの数、事前定義時間間隔にわたる観察された事前定義項目、タッチされたファイルの数、作成されたファイルの数、およびネットワーク接続または接続されたクライアントの数から計算される。一実施形態では、プログラム150は、それぞれの分散値または偏差が事前定義しきい値を超えた場合、第1のコンテナまたは任意の対等コンテナを異常と特定する。一実施形態では、プログラム150は、特定されたコンテナ目的に基づいてしきい値を調整し、そこで、プログラム150は、特定された重要なコンテナ目的、例えば1次顧客データベース、に応答してしきい値を減少させる。
【0022】
プログラム150は、特定された異常なコンテナを修正する(ステップ210)。プログラム150は、特定された異常なコンテナに応答して、1つまたは複数の救済措置または緩和アクションを開始する。一実施形態では、プログラム150は、コンテナ・オーケストレーション・システムを利用して、関連レプリカ・セットに含まれるレプリカ・コンテナで異常なコンテナをリカバリーする、または置き換える。この実施形態では、環境に対する中断なしに異常なコンテナを置き換えるために、新しいコンテナが作成される。一実施形態では、プログラム150は、コンテナ目的の有意性またはエンタープライズ重要度のレベル(例えば、ビジネス・プロセス、レプリカ・セット、またはポッドあるいはその組合せに対するコンテナの有意性または効果)と比較した変動または偏差のレベルに基づいて、コンテナ実行時間リスク・レベルを計算する。一実施形態では、プログラム150は、実行時間リスク・レベルを利用して差異しきい値、類似性しきい値および差異出現頻度しきい値を調整し、そこで、リスクを冒すコンテナは、下げられたしきい値を有する(すなわち、しきい値の起動がより頻繁になる)。一実施形態では、プログラム150は、偏差が出現頻度しきい値を超えるまで、コンテナが1回以上逸脱することを許容する差異出現頻度しきい値を確立する。この実施形態では、プログラム150は、コンテナ目的に基づいて差異出現頻度しきい値を調整する。別の実施形態では、複数の対等コンテナまたはレプリカ・セットの中で、指定された期間内に異常値が繰り返される場合、プログラム150は、異常な繰り返しを減らすように前記しきい値を調整する。
【0023】
一実施形態では、プログラム150は、非特権ユーザーへのダウングレード、リソース使用量の制限、クリティカル・プロセスのサンドボックス、ボリューム・マウントの制限、特権ポートのバインディングなど、異常なコンテナに関するセキュリティ実践を実装する。別の実施形態では、プログラム150は、異常なコンテナの起点と目的に関する情報をプログラム150が発見または特定することを可能にして、異常なコンテナをハニーポットに変換する。別の実施形態では、プログラム150は、サンドボックス・ホストまたはホストのサンドボックス・クラスタに異常なコンテナを自動的に配置する(例えば、重要なシステムへのアクセス権限の除去、読み取り専用の環境、バックアップ率の増加など)。一実施形態では、プログラム150は、決定された実行時間フィーチャー・セットと特定された異常コンテナで、モデル(すなわち、ニューラル・ネットワーク)をトレーニングする。この実施形態では、トレーニング済みモデルは、連続的な実行時間フィーチャー・セットを供給されるので、プログラム150は、トレーニング済みモデルを利用して将来の異常コンテナを特定する。一実施形態では、プログラム150は、レプリカ・セット内の特定された異常なコンテナを1つまたは複数の対等コンテナで置き換え、1つまたは複数の対等コンテナの構造と設定を維持しながら、異常なコンテナの使用可能な資産が1つまたは複数の対等コンテナに転送される。
【0024】
図3は、本発明の例示的実施形態によるサーバー・コンピュータ120の構成要素を示すブロック図300を示す。図3は、1つの実装形態を例示したものに過ぎず、異なる実施形態が実装される環境に関する制限を意味するものではない、ということを理解されたい。描かれた環境には多くの修正が加えられ得る。
【0025】
サーバー・コンピュータ120は、キャッシュ303、メモリ302、永続的ストレージ305、通信ユニット307、および入出力(I/O)インターフェース306の間の通信を提供する、通信ファブリック304を含む。通信ファブリック304は、プロセッサ(例えば、マイクロプロセッサ、通信、およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、およびシステム内の任意の他のハードウェア・コンポーネントの間でデータまたは制御情報あるいはその両方を受け渡すために設計された任意のアーキテクチャで実装することができる。例えば、通信ファブリック304は、1つまたは複数のバスあるいはクロス・バー・スイッチで実装することができる。
【0026】
メモリ302および永続的ストレージ305は、コンピュータ可読ストレージ・メディアである。本実施形態では、メモリ302は、ランダム・アクセス・メモリ(RAM)を含む。一般に、メモリ302は、任意の適切な揮発性または不揮発性コンピュータ可読ストレージ・メディアを含むことができる。キャッシュ303は、メモリ302から、最近アクセスされたデータや、アクセスされたデータの近くのデータを保持することにより、コンピュータ・プロセッサ301のパフォーマンスを向上させる高速メモリである。
【0027】
プログラム150は、キャッシュ303を介してそれぞれのコンピュータ・プロセッサ301のうちの1つまたは複数によって実行するために、永続的ストレージ305およびメモリ302において、記憶され得る。一実施形態では、永続的ストレージ305は磁気ハード・ディスク・ドライブを含む。別法として、または磁気ハード・ディスク・ドライブに加えて、永続的ストレージ305は、ソリッドステート・ハード・ドライブ、半導体ストレージ・デバイス、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、フラッシュ・メモリ、またはプログラム命令やデジタル情報を記憶することができる任意の他のコンピュータ可読ストレージ・メディアを含むことができる。
【0028】
永続的ストレージ305が使用するメディアもまた、取り外し可能であり得る。例えば、取り外し可能なハード・ドライブが、永続的ストレージ305のために使用され得る。他の例としては、光ディスクや磁気ディスク、サム・ドライブ、および、永続的ストレージ305の一部でもある別のコンピュータ可読ストレージ・メディアに転送するためにドライブに挿入されるスマート・カードが含まれる。ソフトウェアおよびデータは、キャッシュ303を介して、それぞれのプロセッサ301の1つまたは複数によって、アクセスまたは実行あるいはその両方を行うために永続的ストレージ305に記憶することができる。
【0029】
通信ユニット307は、これらの例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット307は、1枚または複数のネットワーク・インターフェース・カードを含む。通信ユニット307は、物理およびワイヤレス通信リンクのどちらか一方または両方を使用して、通信を提供することができる。プログラム150は、通信ユニット307を介して永続的ストレージ305にダウンロードすることができる。
【0030】
入出力インターフェース306は、サーバー・コンピュータ120にそれぞれ接続される他のデバイスとのデータの入出力を可能にする。例えば、入出力インターフェース306は、キーボード、キーパッド、タッチ・スクリーンまたは任意の他の適切な入力デバイスあるいはその組合せなど、外部デバイス308への接続を提供することができる。外部デバイス308は、例えば、サム・ドライブ、ポータブル光または磁気ディスク、およびメモリ・カードなどの、ポータブル・コンピュータ可読ストレージ・メディアも含むことができる。本発明の実施形態を実行するために使用されるソフトウェアおよびデータ、例えば、プログラム150、は、このようなポータブル・コンピュータ可読ストレージ・メディアに記憶することができ、入出力インターフェース306を介して永続的ストレージ305にロードすることができる。入出力インターフェース306はまた、ディスプレイ309に接続する。
【0031】
ディスプレイ309は、ユーザーに対してデータを表示するためのメカニズムを提供し、例えば、コンピュータ・モニターでもよい。
【0032】
本明細書で説明するプログラムは、本発明の特定の実施形態でそれらが実装されるアプリケーションに基づいて特定される。しかし、本明細書におけるいかなる特定のプログラム専門用語も、単に便宜上使用されているに過ぎず、したがって、本発明は、そのような専門用語によって特定または暗示されるあるいはその両方の任意の特定のアプリケーションのみにおける使用に限られるべきではない、ということを理解すべきである。
【0033】
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せでもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実施させるためのコンピュータ可読プログラム命令をそこに有する1つまたは複数のコンピュータ可読ストレージ・メディアを含むことができる。
【0034】
コンピュータ可読ストレージ・メディアは、命令実行デバイスによって使用するために命令を保存および記憶することができる有形デバイスとすることができる。コンピュータ可読ストレージ・メディアは、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せでもよいが、これらに限定されない。コンピュータ可読ストレージ・メディアのより具体的な例の非包括的なリストは、以下を含む:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、ディジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、命令を記録したパンチ・カードまたは溝枠内の隆起構造などの機械的に符号化されたデバイス、および前述の任意の適切な組合せ。本明細書では、コンピュータ可読ストレージ・メディアは、無線波や他の自由に伝播する電磁波、導波管や他の伝送メディアを介して伝播する電磁波(例えば、光ファイバー・ケーブルを通過する光パルス)、またはワイヤーを介して伝送される電気信号など、一過性の信号そのものであると解釈されるものではない。
【0035】
本明細書で説明するコンピュータ可読プログラム命令は、コンピュータ可読ストレージ・メディアから各コンピューティング/処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくはワイヤレス・ネットワークまたはその組合せ、を介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバーあるいはその組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプター・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、各コンピューティング/処理デバイス内のコンピュータ可読ストレージ・メディアに記憶するためにコンピュータ可読プログラム命令を転送する。
【0036】
本発明の運用を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、「C」プログラミング言語もしくは類似のプログラミング言語などの従来のプロシージャー型プログラミング言語、および、「Q」プログラミング言語、Q#、量子計算言語(QCL)もしくは類似のプログラミング言語などの量子プログラミング言語、アセンブリ言語もしくは類似のプログラミング言語などの低レベルのプログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードかオブジェクト・コードのいずれかでもよい。コンピュータ可読プログラム命令は、ユーザーのコンピュータで完全に、ユーザーのコンピュータで部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザーのコンピュータで部分的におよびリモート・コンピュータで部分的に、あるいはリモート・コンピュータまたはサーバーで完全に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザーのコンピュータに接続することができ、あるいは、その接続は、外部コンピュータに(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)行うことができる。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む、電子回路は、本発明の態様を実行するために、電子回路をパーソナライズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0037】
本発明の態様を、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートの図解またはブロック図あるいはその両方を参照して説明する。フローチャートの図解またはブロック図あるいはその両方の各ブロック、並びにフローチャートの図解またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができるものと理解されたい。
【0038】
コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する、命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行動を実装するための手段を作成するように、これらのコンピュータ可読プログラム命令は、機械を生産するために、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供することができる。命令が記憶されたコンピュータ可読ストレージ・メディアが、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行動の態様を実装する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令は、特定のやり方で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに指示することができるコンピュータ可読ストレージ・メディアに記憶することもできる。
【0039】
コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行動を実装するように、コンピュータ可読プログラム命令はまた、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイスで実行させてコンピュータ実装されたプロセスを生み出すために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードすることができる。
【0040】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能プログラム命令を含む、モジュール、セグメント、または命令の一部を表すことができる。いくつかの代替実装形態では、ブロックに示された機能は、図に示された順番以外で発生する可能性がある。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されることがあり、関係する機能によっては、ブロックが逆順に実行されることもある。また、ブロック図またはフローチャートの図解あるいはその両方の各ブロックと、ブロック図またはフローチャートの図解あるいはその両方のブロックの組合せとは、指定された機能または行動を実行するあるいは特殊目的ハードウェアおよびコンピュータ命令の組合せを実施する特殊目的ハードウェアベースのシステムによって実装することができることに留意されたい。
【0041】
本発明の様々な実施形態の説明は、図解の目的で提示されたものであるが、開示された実施形態をカバーするまたは限定することを意図したものではない。本発明の範囲から逸脱することなく、多くの修正形態および変更形態が当業者には明らかとなろう。本明細書で使用される用語は、実施形態の原理、実際の適用例または市場で見つかる技術の技術的改良を最もよく説明するために、あるいは本明細書で開示される実施形態を当業者が理解することを可能にするために、選択された。
図1
図2
図3
【国際調査報告】