(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-10
(54)【発明の名称】人工知能でセキュリティ問題を自動修復するための技術
(51)【国際特許分類】
G06F 21/50 20130101AFI20231227BHJP
【FI】
G06F21/50
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023538131
(86)(22)【出願日】2021-01-11
(85)【翻訳文提出日】2023-08-18
(86)【国際出願番号】 US2021012890
(87)【国際公開番号】W WO2022139858
(87)【国際公開日】2022-06-30
(32)【優先日】2020-12-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】クパーマン,レオニード
(72)【発明者】
【氏名】アップパーラパティ,ラーマクリシュナ・ラジュ
(72)【発明者】
【氏名】ヤムナ,プラカシュ
(72)【発明者】
【氏名】モディ,バルドハマン・パラスマル
(72)【発明者】
【氏名】ベーグ,ムカーラム
(72)【発明者】
【氏名】シュリーバスタバ,ロイット
(57)【要約】
人工知能でセキュリティ問題を自動修復するための技術。一技術は、ユーザに関連するエミッターからの信号内で検出された問題を取得することと、セキュリティアーキテクチャを利用してすべてのユーザの嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを有するグローバルモデルを用いて、第1対応を推論することと、ユーザの嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを有するローカルモデルを用いて、第2対応を推論することと、基準を用いて第1対応と第2対応とを評価することと、第1対応および第2対応の評価に基づいて、問題に対する最終対応を決定することと、最終対応に基づいて、対応部のセットの中から対応部を選択することとを含む。対応部は、問題に対応するために1つ以上の措置を講じるように適合される。
【特許請求の範囲】
【請求項1】
方法であって、
セキュリティアーキテクチャの対応システムが、ユーザに関連するエミッターからの信号内で検出された問題を取得することと、
前記問題を入力として取る前記対応システムの一部として実装されるグローバルモデルを用いて、第1対応を推論することとを含み、前記グローバルモデルは、前記セキュリティアーキテクチャを利用してすべてのユーザの嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを含み、前記方法は、さらに、
前記問題を入力として取る前記対応システムの一部として実装されるローカルモデルを用いて、第2対応を推論することを含み、前記ローカルモデルは、前記ユーザの嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを含み、前記方法は、さらに、
前記対応システムが、基準を用いて前記第1対応および前記第2対応を評価することを含み、前記基準は、(1)前記第1対応および前記第2対応の各々に対応付けられた信頼スコアと、(2)前記グローバルモデルおよび前記ローカルモデルの各々に対応付けられた重みとを含み、前記方法は、さらに、
前記対応システムが、前記第1対応および前記第2対応の前記評価に基づいて、前記問題に対する最終対応を決定することと、
前記対応システムが、前記最終対応に基づいて、対応部のセットの中から対応部を選択することとを含み、前記対応部は、前記問題に対応するために1つ以上の措置を講じるように適合される、方法。
【請求項2】
前記対応部を選択する前に、前記対応システムを用いて前記最終対応の正解率を評価することをさらに含み、前記正解率は、前記最終対応と、前記問題に対して前記ユーザが好むであろうグラウンドトゥルース対応との比較に基づいて評価され、前記比較に基づいて前記最終対応が前記グラウンドトゥルース対応と一致した場合、前記最終対応の前記正解率は容認できると判断され、前記比較に基づいて前記最終対応が前記グラウンドトゥルース対応と一致しない場合、前記正解率は容認できないと判断され、
前記方法は、さらに、前記正解率が容認できないと判断されたことに応じて、
前記問題のラベルを生成することを含み、前記ラベルは、前記グラウンドトゥルース対応を含み、
前記方法は、さらに、前記正解率が容認できないと判断されたことに応じて、
前記グラウンドトゥルースと前記問題とを含む前記ラベルをローカルデータストアに格納することと、
前記最終対応ではなく前記グラウンドトゥルースに基づいて、前記対応部のセットの中から前記対応部を選択することとを含み、
前記方法は、さらに、前記正解率が容認できると判断されたことに応じて、
前記問題のラベルを生成することを含み、前記ラベルは、前記最終対応を含み、
前記方法は、さらに、前記正解率が容認できると判断されたことに応じて、
前記最終対応と前記問題とを含む前記ラベルを前記ローカルデータストアおよび前記グローバルデータストアに格納することと、
前記最終対応に基づいて、前記対応部のセットの中から前記対応部を選択することとを含む、請求項1に記載の方法。
【請求項3】
前記正解率が容認できないと判断されたことに応じて、
前記グラウンドトゥルースと問題とを含む前記ラベルを、管理者による評価のために全体的なデータストアに格納するまたはデータキューに入れることと、
前記グラウンドトゥルースと前記問題とを含む前記ラベルについて何ら措置を講じないという対応、または前記グラウンドトゥルースと前記問題とを含む前記ラベルを用いて前記グローバルモデルを訓練するという対応のいずれかを前記管理者から受けることと、
対応が何ら措置を講じないという対応であることに応じて、前記データストアまたは前記データキューから前記グラウンドトゥルースと前記問題とを含む前記ラベルを削除することと、
前記対応が前記グローバルモデルを訓練するという対応であることに応じて、前記グラウンドトゥルースと前記問題とを含む前記ラベルを前記グローバルリポジトリに格納することとをさらに含む、請求項2に記載の方法。
【請求項4】
前記最終対応と前記問題とを含む前記ラベルを含む、前記グローバルリポジトリからのグローバル訓練データで前記グローバルモデルを訓練することと、
前記最終対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することとをさらに含む、請求項2に記載の方法。
【請求項5】
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することをさらに含む、請求項2に記載の方法。
【請求項6】
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記グローバルリポジトリからのグローバル訓練データで前記グローバルモデルを訓練することと、
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することとをさらに含む、請求項3に記載の方法。
【請求項7】
前記対応システムが、前記問題に応じるために前記1つ以上の措置を講じることをさらに含む、請求項1に記載の方法。
【請求項8】
1つ以上のプロセッサによって実行可能な複数の命令を記憶した非一時的なコンピュータ読み取り可能なメモリであって、前記複数の命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに処理を実行させる命令を含み、前記処理は、
セキュリティアーキテクチャの対応システムが、ユーザに関連するエミッターからの信号内で検出された問題を取得することと、
前記問題を入力として取る前記対応システムの一部として実装されるグローバルモデルを用いて、第1対応を推論することとを含み、前記グローバルモデルは、前記セキュリティアーキテクチャを利用してすべてのユーザの嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを含み、前記処理は、さらに、
前記問題を入力として取る前記対応システムの一部として実装されるローカルモデルを用いて、第2対応を推論することを含み、前記ローカルモデルは、前記ユーザの嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを含み、前記処理は、さらに、
前記対応システムが、基準を用いて前記第1対応および前記第2対応を評価することを含み、前記基準は、(1)前記第1対応および前記第2対応の各々に対応付けられた信頼スコアと、(2)前記グローバルモデルおよび前記ローカルモデルの各々に対応付けられた重みとを含み、前記処理は、さらに、
前記対応システムが、前記第1対応および前記第2対応の前記評価に基づいて、前記問題に対する最終対応を決定することと、
前記対応システムが、前記最終対応に基づいて、対応部のセットの中から対応部を選択することとを含み、前記対応部は、前記問題に対応するために1つ以上の措置を講じるように適合される、非一時的なコンピュータ読み取り可能なメモリ。
【請求項9】
前記処理は、さらに、
前記対応部を選択する前に、前記対応システムを用いて前記最終対応の正解率を評価することを含み、前記正解率は、前記最終対応と、前記問題に対して前記ユーザが好むであろうグラウンドトゥルース対応との比較に基づいて評価され、前記比較に基づいて前記最終対応が前記グラウンドトゥルース対応と一致した場合、前記最終対応の前記正解率は容認できると判断され、前記比較に基づいて前記最終対応が前記グラウンドトゥルース対応と一致しない場合、前記正解率は容認できないと判断され、
前記処理は、さらに、前記正解率が容認できないと判断されたことに応じて、
前記問題のラベルを生成することを含み、前記ラベルは、前記グラウンドトゥルース対応を含み、
前記処理は、さらに、前記正解率が容認できないと判断されたことに応じて、
前記グラウンドトゥルースと前記問題とを含む前記ラベルをローカルデータストアに格納することと、
前記最終対応ではなく前記グラウンドトゥルースに基づいて、前記対応部のセットの中から前記対応部を選択することとを含み、
前記処理は、さらに、前記正解率が容認できると判断されたことに応じて、
前記問題のラベルを生成することを含み、前記ラベルは、前記最終対応を含み、
前記処理は、さらに、前記正解率が容認できると判断されたことに応じて、
前記最終対応と前記問題とを含む前記ラベルを前記ローカルデータストアおよび前記グローバルデータストアに格納することと、
前記最終対応に基づいて、前記対応部のセットの中から前記対応部を選択することとを含む、請求項8に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項10】
前記処理は、さらに、
前記正解率が容認できないと判断されたことに応じて、
前記グラウンドトゥルースと問題とを含む前記ラベルを、管理者による評価のために一般的なデータストアに格納するまたはデータキューに入れることと、
前記グラウンドトゥルースと前記問題とを含む前記ラベルについて何ら措置を講じないという対応、または前記グラウンドトゥルースと前記問題とを含む前記ラベルを用いて前記グローバルモデルを訓練するという対応のいずれかを前記管理者から受けることと、
対応が何ら措置を講じないという対応であることに応じて、前記データストアまたは前記データキューから前記グラウンドトゥルースと前記問題とを含む前記ラベルを削除することと、
前記対応が前記グローバルモデルを訓練するという対応であることに応じて、前記グラウンドトゥルースと前記問題とを含む前記ラベルを前記グローバルリポジトリに格納することとを含む、請求項9に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項11】
前記処理は、さらに、
前記最終対応と前記問題とを含む前記ラベルを含む、前記グローバルリポジトリからのグローバル訓練データで前記グローバルモデルを訓練することと、
前記最終対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することを含む、請求項9に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項12】
前記処理は、さらに、
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することを含む、請求項9に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項13】
前記処理は、さらに、
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記グローバルリポジトリからのグローバル訓練データで前記グローバルモデルを訓練することと、
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することとを含む、請求項10に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項14】
前記処理は、さらに、
前記対応システムが、前記問題に応じるために前記1つ以上の措置を講じることを含む、請求項8に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項15】
システムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに連結されたメモリとを備え、前記メモリは、前記1つ以上のプロセッサによって実行可能な複数の命令を記憶し、前記複数の命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに処理を実行させる命令を含み、前記処理は、
セキュリティアーキテクチャの対応システムが、ユーザに関連するエミッターからの信号内で検出された問題を取得することと、
前記問題を入力として取る前記対応システムの一部として実装されるグローバルモデルを用いて、第1対応を推論することとを含み、前記グローバルモデルは、前記セキュリティアーキテクチャを利用してすべてのユーザの嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを含み、前記処理は、さらに、
前記問題を入力として取る前記対応システムの一部として実装されるローカルモデルを用いて、第2対応を推論することを含み、前記ローカルモデルは、前記ユーザの嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを含み、前記処理は、さらに、
前記対応システムが、基準を用いて前記第1対応および前記第2対応を評価することを含み、前記基準は、(1)前記第1対応および前記第2対応の各々に対応付けられた信頼スコアと、(2)前記グローバルモデルおよび前記ローカルモデルの各々に対応付けられた重みとを含み、前記処理は、さらに、
前記対応システムが、前記第1対応および前記第2対応の前記評価に基づいて、前記問題に対する最終対応を決定することと、
前記対応システムが、前記最終対応に基づいて、対応部のセットの中から対応部を選択することとを含み、前記対応部は、前記問題に対応するために1つ以上の措置を講じるように適合される、システム。
【請求項16】
前記処理は、さらに、
前記対応部を選択する前に、前記対応システムを用いて前記最終対応の正解率を評価することを含み、前記正解率は、前記最終対応と、前記問題に対して前記ユーザが好むであろうグラウンドトゥルース対応との比較に基づいて評価され、前記比較に基づいて前記最終対応が前記グラウンドトゥルース対応と一致した場合、前記最終対応の前記正解率は容認できると判断され、前記比較に基づいて前記最終対応が前記グラウンドトゥルース対応と一致しない場合、前記正解率は容認できないと判断され、
前記処理は、さらに、前記正解率が容認できないと判断されたことに応じて、
前記問題のラベルを生成することを含み、前記ラベルは、前記グラウンドトゥルース対応を含み、
前記処理は、さらに、前記正解率が容認できないと判断されたことに応じて、
前記グラウンドトゥルースと前記問題とを含む前記ラベルをローカルデータストアに格納することと、
前記最終対応ではなく前記グラウンドトゥルースに基づいて、前記対応部のセットの中から前記対応部を選択することとを含み、
前記処理は、さらに、前記正解率が容認できると判断されたことに応じて、
前記問題のラベルを生成することを含み、前記ラベルは、前記最終対応を含み、
前記処理は、さらに、前記正解率が容認できると判断されたことに応じて、
前記最終対応と前記問題とを含む前記ラベルを前記ローカルデータストアおよび前記グローバルデータストアに格納することと、
前記最終対応に基づいて、前記対応部のセットの中から前記対応部を選択することとを含む、請求項15に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項17】
前記処理は、さらに、
前記正解率が容認できないと判断されたことに応じて、
前記グラウンドトゥルースと問題とを含む前記ラベルを、管理者による評価のために一般的なデータストアに格納するまたはデータキューに入れることと、
前記グラウンドトゥルースと前記問題とを含む前記ラベルについて何ら措置を講じないという対応、または前記グラウンドトゥルースと前記問題とを含む前記ラベルを用いて前記グローバルモデルを訓練するという対応のいずれかを前記管理者から受けることと、
対応が何ら措置を講じないという対応であることに応じて、前記データストアまたは前記データキューから前記グラウンドトゥルースと前記問題とを含む前記ラベルを削除することと、
前記対応が前記グローバルモデルを訓練するという対応であることに応じて、前記グラウンドトゥルースと前記問題とを含む前記ラベルを前記グローバルリポジトリに格納することとを含む、請求項16に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項18】
前記処理は、さらに、
前記最終対応と前記問題とを含む前記ラベルを含む、前記グローバルリポジトリからのグローバル訓練データで前記グローバルモデルを訓練することと、
前記最終対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することを含む、請求項16に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項19】
前記処理は、さらに、
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することを含む、請求項16に記載の非一時的なコンピュータ読み取り可能なメモリ。
【請求項20】
前記処理は、さらに、
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記グローバルリポジトリからのグローバル訓練データで前記グローバルモデルを訓練することと、
前記グラウンドトゥルース対応と前記問題とを含む前記ラベルを含む、前記ローカルリポジトリからのローカル訓練データで前記ローカルモデルを訓練することとを含む、請求項17に記載の非一時的なコンピュータ読み取り可能なメモリ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年12月22日に出願され、「TECHNIQUES FOR AUTO-REMEDIATING SECURITY ISSUES WITH ARTIFICIAL INTELLIGENCE(人工知能でセキュリティ問題を自動修復するための技術)」と題された米国特許出願第17/130,867号の利益および優先権を主張するものであり、そのすべての記載内容を引用により本明細書に援用する。
【0002】
発明の分野
本開示は、概して、サイバーセキュリティに関し、特に、人工知能でセキュリティ問題を自動修復するための技術に関する。
【背景技術】
【0003】
背景
SIEM(セキュリティ情報イベント管理)とは、ソフトウェアソリューションおよびソフトウェアツールによってSIM(セキュリティ情報管理)とSEM(セキュリティイベント管理)とが組み合わされた、サイバーセキュリティ分野の下位区分である。これらのソフトウェアソリューションおよびソフトウェアツールは、アプリケーションおよびネットワークハードウェアによって生成されたセキュリティ通知のリアルタイム解析を行う。SIEMソフトウェアは、組織のインフラストラクチャ全体にあるホストシステム、セキュリティデバイスおよびセキュリティアプリケーションが生成するログおよびイベントデータを収集し、ログおよびイベントデータを集中プラットフォーム上で整理することによって機能する。SIEMソフトウェアソリューションおよびソフトウェアツールは、分類ルールに基づいてこのデータ(たとえば、アンチウイルスイベントおよびファイアウォールログ)内の様々なアクティビティを識別し、これらのアクティビティをマルウェアアクティビティ、ログイン失敗およびログイン成功、ならびにその他の悪意のある可能性のあるアクティビティなどのカテゴリーに振り分ける。組織に対する脅威を示し得るアクティビティをソフトウェアが識別した場合、潜在的なセキュリティ問題を示すための通知が生成される。予め規定されたルールのセットを用いて、これらの通知に様々な優先順位を設定できる。たとえば、ユーザアカウントが一定期間にわたって複数回のログイン試行の失敗を生じさせた場合、怪しいアクティビティとしてフラグを立てられる可能性もあるが、ユーザがログイン内容を忘れてしまっている可能性が最も高いため、最も低い優先順位に設定される。しかしながら、短い一定期間にわたるアカウントへの大量のログイン試行の失敗があった場合、ブルートフォース攻撃が実行中である可能性のほうが高く、非常に重大なインシデントとしてフラグが立てられる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
SIEMソフトウェアソリューションおよびソフトウェアツールは、複数のソースから関連性のあるデータを集約しており、このデータ収集は有意義である一方で、SIEM内のこれらの工程は、その有効性を維持しつつ、セキュリティチームが対応すると想定し得る通知よりも多くの通知を生成する傾向がある。これらのタスクについてセキュリティチームを支援するために、SOAR(Security Orchestration,Automation,and Response(セキュリティのオーケストレーション、自動化、および対応))と称されるソフトウェアソリューションとソフトウェアツールの集まりにより、セキュリティチームは、脅威および脆弱性を管理でき、インシデントやセキュリティイベントに対応できるようになる。オーケストレーションコンポーネントは、様々なソフトウェアソリューションおよびソフトウェアツール同士を協調させてシームレスに統合して互いに通信させ、反復可能、実施可能、測定可能、かつ有効なインシデント対応プロセスおよびワークフローを構築する。自動化コンポーネントは、ルールやポリシーを使用したシステムを利用して直線ベースのタスクおよび工程に半自動的に対処して、実行しなければならないありきたりな操作を減らしたりなくしたりする。対応コンポーネントは、トリアージ、封じ込め、修復、公式化されたワークフロー、報告、および共同作業を含む通知が確認されると、セキュリティインシデントに対処および管理する。従って、大容量のデータの取り込みおよび通知の生成というSIEMの機能を活用すると、各通知に対応するインシデント対応プロセスをより良く管理するためにSOARソリューションを利用してSIEMソリューションを強化することができ、本来であれば完了するのにセキュリティチームが何時間もかかってしまうありきたりなタスクおよび反復性のあるタスクを自動化およびオーケストレーションできるようにする。
【0005】
概要
人工知能でセキュリティ問題を自動修復するための技術(たとえば、方法、システム、1つ以上のプロセッサによって実行可能なコードまたは命令を記憶した非一時的なコンピュータ読み取り可能な媒体)を提供する。
【課題を解決するための手段】
【0006】
様々な実施の形態では、方法を提供する。この方法は、セキュリティアーキテクチャの対応システムが、ユーザに関連するエミッターからの信号内で検出された問題を取得することと、問題を入力として取る対応システムの一部として実装されるグローバルモデルを用いて、第1対応を推論することとを含み、グローバルモデルは、セキュリティアーキテクチャを利用してすべてのユーザの嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを含み、方法は、さらに、問題を入力として取る対応システムの一部として実装されるローカルモデルを用いて、第2対応を推論することを含み、ローカルモデルは、ユーザの嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを含み、方法は、さらに、対応システムが、基準を用いて第1対応および第2対応を評価することを含み、基準は、(1)第1対応および第2対応の各々に対応付けられた信頼スコアと、(2)グローバルモデルおよびローカルモデルの各々に対応付けられた重みとを含み、方法は、さらに、対応システムが、第1対応および第2対応の評価に基づいて、問題に対する最終対応を決定することと、対応システムが、最終対応に基づいて、対応部のセットの中から対応部を選択することとを含み、対応部は、問題に対応するために1つ以上の措置を講じるように適合される。
【0007】
いくつかの実施の形態では、方法は、対応部を選択する前に、対応システムを用いて最終対応の正解率を評価することをさらに含み、正解率は、最終対応と、問題に対してユーザが好むであろうグラウンドトゥルース対応との比較に基づいて評価され、比較に基づいて最終対応がグラウンドトゥルース対応と一致した場合、最終対応の正解率は容認できると判断され、比較に基づいて最終対応がグラウンドトゥルース対応と一致しない場合、正解率は容認できないと判断され、方法は、さらに、正解率が容認できないと判断されたことに応じて、問題のラベルを生成することを含み、ラベルは、グラウンドトゥルース対応を含み、方法は、さらに、正解率が容認できないと判断されたことに応じて、グラウンドトゥルースと問題とを含むラベルをローカルデータストアに格納することと、最終対応ではなくグラウンドトゥルースに基づいて、対応部のセットの中から対応部を選択することとを含み、方法は、さらに、正解率が容認できると判断されたことに応じて、問題のラベルを生成することを含み、ラベルは、最終対応を含み、方法は、さらに、正解率が容認できると判断されたことに応じて、最終対応と問題とを含むラベルをローカルデータストアおよびグローバルデータストアに格納することと、最終対応に基づいて、対応部のセットの中から対応部を選択することとを含む。
【0008】
いくつかの実施の形態では、方法は、正解率が容認できないと判断されたことに応じて、グラウンドトゥルースと問題とを含むラベルを、管理者による評価のために一般的なデータストアに格納するまたはデータキューに入れることと、グラウンドトゥルースと問題とを含むラベルについて何ら措置を講じないという対応、またはグラウンドトゥルースと問題とを含むラベルを用いてグローバルモデルを訓練するという対応のいずれかを管理者から受けることと、対応が何ら措置を講じないという対応であることに応じて、データストアまたはデータキューからグラウンドトゥルースと問題とを含むラベルを削除することと、対応がグローバルモデルを訓練するという対応であることに応じて、グラウンドトゥルースと問題とを含むラベルをグローバルリポジトリに格納することとをさらに含む。
【0009】
いくつかの実施の形態では、方法は、最終対応と問題とを含むラベルを含む、グローバルリポジトリからのグローバル訓練データでグローバルモデルを訓練することと、最終対応と問題とを含むラベルを含む、ローカルリポジトリからのローカル訓練データでローカルモデルを訓練することとをさらに含む。
【0010】
いくつかの実施の形態では、方法は、グラウンドトゥルース対応と問題とを含むラベルを含む、ローカルリポジトリからのローカル訓練データでローカルモデルを訓練することをさらに含む。
【0011】
いくつかの実施の形態では、方法は、グラウンドトゥルース対応と問題とを含むラベルを含む、グローバルリポジトリからのグローバル訓練データでグローバルモデルを訓練することと、グラウンドトゥルース対応と問題とを含むラベルを含む、ローカルリポジトリからのローカル訓練データでローカルモデルを訓練することとをさらに含む。
【0012】
いくつかの実施の形態では、方法は、対応システムが、問題に対応するために1つ以上の措置を実行することをさらに含む。
【図面の簡単な説明】
【0013】
【
図1】様々な実施の形態に係る、潜在的なセキュリティ問題の通知を生成し、人工知能でセキュリティ問題を自動修復するためのコンピューティングシステムを示すブロック図を示す。
【
図2】様々な実施の形態に係る、アクティブラーニングを有する対応システムを示すブロック図を示す。
【
図3】様々な実施の形態に係る、人工知能でセキュリティ問題を自動修復するための工程を説明するフローチャートを示す。
【
図4】様々な実施の形態に係る、アクティブラーニングを有して実装された2つ以上の予測モデルでセキュリティ問題を自動修復するための工程を説明するフローチャートを示す。
【
図5】様々な実施の形態に係る、クラウドインフラストラクチャをサービスシステムとして実装するための1つのパターンを示すブロック図を示す。
【
図6】様々な実施の形態に係る、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図を示す。
【
図7】様々な実施の形態に係る、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図を示す。
【
図8】様々な実施の形態に係る、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図を示す。
【
図9】様々な実施の形態に係る、例示的なコンピュータシステムを示すブロック図を示す。
【発明を実施するための形態】
【0014】
詳細な説明
以下の説明において、様々な実施形態について説明する。説明の便宜上、実施形態を十分に理解してもらうために具体的な構成および詳細を説明する。しかしながら、これらの実施形態が具体的な詳細なしに実施され得ることは、当業者に明らかになるだろう。さらに、説明する実施形態を曖昧にしてしまわないように、周知の特徴は省略されたり、簡略化されたりする場合がある。
【0015】
はじめに
様々な実施の形態では、クラウドコンピューティング内など分散型コンピューティング環境内で顧客が強力なセキュリティ体制を維持するのに役立つスタンドアロンシステムとして、SIEMソリューションとその上に重ねられたSOARソリューションから構成されるセキュリティアーキテクチャを提供する。顧客は、セキュリティアーキテクチャを用いて顧客のテナンシを監視し、分散型コンピューティング環境のリソースのセキュリティが脆弱な状態にあるかどうかを判断したり、リソースが攻撃されているかどうかを判断したりする。検出すると、セキュリティアーキテクチャは、訂正措置を講じる。いろいろな意味で、SOARソリューションは、SIEMソリューションにとってうってつけの補完的役割となる。SIEMは、ネットワーク全体からセキュリティデータを集約するには有効であるが、通常、そのデータすべてに対するコンテキスト(状況)を提供する機能がない。その結果、SIEMのユーザは、依然として多くの時間を費やしてタスクに対して手作業でトリアージおよび調査を実行しなければならない。これは、数え切れない数のアラートと溢れる程のデータを前にして益々困難になりつつある。必要な手作業を減らすには、オーケストレーションと自動化が必要であり、SOARソリューションは、脅威データを集めた後に反復可能なインシデント対応タスクを自動化することができるので、従業員の負担を取り除くことができる。しかし、SOARソリューションが有効に機能するためには、脅威とそれにどのように対処するかについてを記述するように設計された、反復可能で自動化されたセキュリティワークフローであるルールやポリシーが必要である。ここで問題なのは、これらのルールやポリシーが、それらを構築するために使われたデータと同じ程度しか有効でないことであり、脅威の修復全体およびそれにどのように対処するかを依然として人間が指揮する必要がある。これに加えて、SIEMのように、SOARは、データの過負荷、内部システムからのコンテキストの欠如、外部からの脅威が限られた部分しか見えない、などの問題に悩まされる可能性がある。
【0016】
これらの課題およびその他の課題を克服するために、様々な実施の形態は、人工知能でセキュリティインシデントを自動修復するために利用できるSOARソリューションを有するセキュリティアーキテクチャを対象とする。セキュリティインシデント(本明細書では、単に、「問題」と称する)とは、セキュリティアーキテクチャが対応して修復するように適合される、起こりうるセキュリティイベントである。問題は、信号の集まりから導き出される。時間をかけて反復される同じ信号は、1つの問題を示している可能性があり、複数の信号は、同じ問題を示している可能性がある。「アリスのユーザクレデンシャルが侵害されました」は、問題の一例である。様々な実施の形態では、セキュリティ問題を自動修復するためのセキュリティアーキテクチャによって実装される技術は、セキュリティアーキテクチャの対応システムが、ユーザに関連するエミッターからの信号内で検出された問題を取得することと、問題を入力として取る対応システムの一部として実装されるグローバルモデルを用いて、第1対応を推論することとを含み、グローバルモデルは、セキュリティアーキテクチャを利用してすべてのユーザの嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを含み、当該技術は、さらに、問題を入力として取る対応システムの一部として実装されるローカルモデルを用いて、第2対応を推論することを含み、ローカルモデルは、ユーザの嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを含み、当該技術は、さらに、対応システムが、基準を用いて第1対応および第2対応を評価することを含み、基準は、(1)第1対応および第2対応の各々に対応付けられた信頼スコアと、(2)グローバルモデルおよびローカルモデルの各々に対応付けられた重みとを含み、当該技術は、さらに、対応システムが、第1対応および第2対応の評価に基づいて、問題に対する最終対応を決定することと、対応システムが、最終対応に基づいて、対応部のセットの中から対応部を選択することとを含み、対応部は、問題に対応するために1つ以上の措置を講じるように適合される。
【0017】
場合によっては、セキュリティ問題を自動修復するためのセキュリティアーキテクチャによって実現される技術は、アクティブラーニングをさらに備え、当該アクティブラーニングは、対応部を選択する前に、対応システムを用いて最終対応の正解率を評価することを含み、正解率は、最終対応と、問題に対してユーザが好むであろうグラウンドトゥルース対応との比較に基づいて評価され、比較に基づいて最終対応がグラウンドトゥルース対応と一致した場合、最終対応の正解率は容認できると判断され、比較に基づいて最終対応がグラウンドトゥルース対応と一致しない場合、正解率は容認できないと判断される。
【0018】
正解率が容認できないと判断されたことに応じて、問題のラベルを生成し、ラベルは、グラウンドトゥルース対応を含み、正解率が容認できないと判断されたことに応じて、グラウンドトゥルースと問題とを含むラベルをローカルデータストアに格納し、最終対応ではなくグラウンドトゥルースに基づいて、対応部のセットの中から対応部を選択する。
【0019】
正解率が容認できないと判断されたことに応じて、グラウンドトゥルースと問題とを含むラベルを、管理者による評価のために一般的なデータストアに格納するまたはデータキューに入れ、グラウンドトゥルースと問題とを含むラベルについて何ら措置を講じないという対応、またはグラウンドトゥルースと問題とを含むラベルを用いてグローバルモデルを訓練するという対応のいずれかを管理者から受け、対応が何ら措置を講じないという対応であることに応じて、データストアまたはデータキューからグラウンドトゥルースと問題とを含むラベルを削除し、対応がグローバルモデルを訓練するという対応であることに応じて、グラウンドトゥルースと問題とを含むラベルをグローバルリポジトリに格納した後、グローバルリポジトリからのグローバル訓練データでグローバルモデルを訓練し、グローバル訓練データは、グラウンドトゥルースと問題とを含むラベルを含む。
【0020】
正解率が容認できると判断されたことに応じて、問題のラベルを生成し、ラベルは、最終対応を含み、さらに、正解率が容認できると判断されたことに応じて、最終対応と問題とを含むラベルをローカルデータストアおよびグローバルデータストアに格納し、最終対応に基づいて、対応部のセットの中から対応部を選択し、最終対応と問題とを含むラベルを含む、グローバルリポジトリからのグローバル訓練データでグローバルモデルを訓練し、最終対応と問題とを含むラベルを含む、ローカルリポジトリからのローカル訓練データでローカルモデルを訓練する。
【0021】
アクティブラーニングを有するセキュリティアーキテクチャ
図1は、様々な実施の形態に係る、潜在的なセキュリティ問題の通知を生成するおよび人工知能でセキュリティ問題を自動修復するためのコンピューティングシステム100を示すブロック図である。
図1に示すように、コンピューティングシステム100は、1つ以上のエミッター105と、SIEMソリューションおよびその上に重ねられたSOARソリューションから構成されるセキュリティアーキテクチャ110とを備える。コンピューティングシステム100は、図示した構成要素の各々がその他の構成要素と通信するように構成されるようにコンピュータ化され得る。構成要素が同じコンピューティングデバイス上に存在する場合、通信は、様々な種類のバスなど内部の通信システムを経由して行われ得る。構成要素が異なるサーバなど異なるコンピューティングデバイス上に存在する場合、通信は、ネットワーク115を経由して行われ得る。ネットワーク115は、TCP/IP、SNA、IPX、AppleTalkなど(これらに限定されない)を含む各種市販のプロトコルのいずれかを用いたデータ通信をサポートできる、当業者にとってなじみのある任意の種類のネットワークであり得る。単に一例として、ネットワーク115は、Ethernet(登録商標)ネットワーク、トークンリングネットワークなど、LAN(ローカルエリアネットワーク)であってもよく、WAN(ワイドエリアネットワーク)であってもよく、VPN(仮想プライベートネットワーク)、インターネット、イントラネット、エクストラネット、PSTN(Public Switched Telephone Network)、赤外線ネットワーク、ワイヤレスネットワーク(たとえば、IEEE802.1Xスイートのプロトコル、当技術分野において知られているBluetooth(登録商標)プロトコル、および/もしくはその他のワイヤレスプロトコルのうちいずれかの下で動作するネットワーク)を含む(これに限定されない)、仮想ネットワークであってもよく、ならびに/または、これらのおよび/もしくはその他のネットワークの任意の組合せであり得る。安全なネットワーク通信および安全でないネットワーク通信を含む任意のその他の組合せのネットワークが本明細書に記載のシステムにおいて使用されると考えられる。3つのエミッター105と1つのセキュリティアーキテクチャ110とを有する例示的なコンピューティングシステム100が図示されているが、その他の実施の形態では、任意の数のエミッター105および/またはセキュリティアーキテクチャ110がサポートされ得る(たとえば、別個のセキュリティアーキテクチャがクラウドコンピューティング環境などの各分散型コンピューティング環境上に存在してもよい)。
【0022】
エミッター105は、RAWデータの生成部(データのソース)である。例として、Operating System Management Service、OCI(Oracle Cloud Infrastructure)Audit Service、VM(仮想マシン)上で動作するエージェント、RAWのSNMP(Simple Network Management Protocol)、および/またはOCI Flow Logsなどが挙げられる。セキュリティアーキテクチャ110は、アダプター120(データ変換器)を用いて、エミッター105が生成したRAWデータを消費して信号に変換する。この信号は、内部のAPI(アプリケーションプログラミングインターフェイス)信号呼び出しによって信号プロセッサ125に伝送される。信号は、セキュリティアーキテクチャ110のRAWデータ点である。信号は、分類されてもよく、分類されなくてもよい。分類済み信号は、よく分かっているソースからのRAWデータ点であり、既知のスキーマを有する。セキュリティアーキテクチャ110は、分類済み信号を、「誰が、何を、いつ、どこで?」をキャプチャする強く型付けされた内部JSONオブジェクトに変換してもよい。例えば、構成変更信号(たとえば、Object Storageバケットが公開された)、主要なアクティビティ信号(たとえば、「ユーザのアリスがタイからログインした」)、ネットワーク信号、およびCVE(Common Vulnerabilities and Exposures)信号(CVEは、一般に知られており分類されている脆弱性のタイプである)などが挙げられる。未分類信号は、よく分かっていないソースからのRAWデータ点、またはRAWデータ点のセットである。このソースは、Cloud Guardがこれまで確認したことのないソースである可能性がある。たとえば、顧客のアプリケーションログは、未分類信号のソースである可能性がある。セキュリティアーキテクチャ110は、「誰が、何を、いつ、どこで?」についての推論、および通常の信号パターンと異常な信号パターンとの関係についての推論を試みてもよい。セキュリティアーキテクチャ110は、未分類信号とは何であるかの学習を試みたり、学習プロセスを助けるための顧客入力を求めたりし得る。場合によっては、アダプター120は、エミッター105のポーリングによって外部APIを介してRAWデータを取得する。その他の場合では、エミッター105は、アダプター120にRAWデータをプッシュする。場合によっては、アダプター120は、McAfee、Qualys、Rapid7などのようなサードパーティベンダーと統合してそこからRAWデータを取得するために用いられる。
【0023】
信号プロセッサ125は、アダプターからの信号データおよび信号ヒント情報を消費して、受信信号が分類済み信号130であるか、未分類信号135であるかを判断する。分類済み信号130であるか、未分類信号135であるかについての判断は、信号ヒントに基づいて行われ得る。本明細書において使用するとき、措置が何かに「基づく」場合、これは、措置が、何かの少なくとも一部に少なくとも一部基づくことを意味する。信号ヒントとは、考えられている信号の種別についての提言であり、通常、アダプター120によって提供される。信号ヒントは、SQL Queryのヒント、または「keywords」および「description」など、HTMLのMetaタグと同様である。信号ヒントは、処理中であるとアダプター120が信じている信号の種別が何であるかを信号プロセッサ125に伝える。信号プロセッサ125にはヒントを使用する義務は全くない。判断された信号の種別に基づいて、信号プロセッサ125は、強く型付けされた内部API140、または、未分類信号処理ストリーム145にこの信号を送る。
【0024】
分類済み信号130は、強く型付けされた内部API140を用いて、ネットフロー、構成、およびアクティビティなど、対応する以前に学習されたまたはプログラムされた信号種別(または検出部トピック)にマッピングされる。ネットフロー信号は、ポート、プロトコル、宛先のIP(インターネットプロトコル)アドレス、送信元のIPアドレスなど、デバイス間の接続を知らせるIP情報である。構成信号は、コントロールプレーンを用いてコンピューティングシステム上で様々な構成要素がセットアップされるのに用いられる構成パラメータである(たとえば、パブリックまたはプライベートに指定されたオブジェクトバケットの可視性フラグ構成)。アクティビティ信号は、コントロールプレーンやデータプレーン上で行われているAPI呼び出しなどのアクティビティの監査ログである。未分類信号135は、信号処理ストリーム145に入力されて、別個の学習プロセスに通される。先ず、学習プロセスは、未分類信号135についての基本的事項を判断するように適合される。この基本的事項には、入力フォーマット、レコードデリミタ、フィールド種別、およびセマンティクスが含まれる。その後、基本的事項に基づいて専用の未分類信号検出部およびトピックが構築され、教師なし機械学習などの学習プロセスを用いて、未分類信号135内にある通常の挙動と異常な挙動との関係を判断する。異常な挙動とは、学習済みまたはよく分かっているパターンから逸脱したアクティビティである。また、場合によっては、未分類信号135についての学習プロセスは、教師あり学習を支援および提供するためのラベル形式の入力を顧客に求め得る。また、学習プロセスは、未分類信号ターゲットについての学習を試みる。ターゲットは、セキュリティアーキテクチャ110構成の対象であるインフラストラクチャのコンパートメントまたはリソースを識別する。セキュリティアーキテクチャ110構成は、インフラストラクチャテナンシ内のどのコンパートメントをセキュリティアーキテクチャ110が監視するかについての情報と、どのコンパートメントにどの検出部を適用するかについての情報をキャプチャする。また、ターゲットは、たとえば、Human Capital Management Cloudのインスタンスなど、特定のSaaSインスタンスであり得る。ターゲットは、OCID(Oracle Cloud ID)などの識別子を有さなければならない。学習プロセスによって、対応推薦部は、検出された問題に対する正しい対応部を選択できるようになる。
【0025】
分類済み信号130および/または未分類信号135が型付けされると、または検出部トピックが判断されると、この信号はリアルタイム解析のためにストリームプロセッサ150に転送される。検出部155は、ストリームプロセッサ150に送られる様々な信号種別や検出部トピックをサブスクライブする。サブスクライブすることによって、本質的に、検出部155と様々な信号種別や検出部トピックとの間にマッピングが作成される。マッピングは、特定の複数の検出部が特定の複数のデータまたは複数のデータの特定の複数の組合せに関心がある複数と複数とのマッピング、または、複数の検出部が同じ複数のデータまたは複数のデータの同じ複数の組合せを消費する複数と複数とのマッピングであり得る。検出部155は、信号から問題160を導出するように適合される。たとえば、セキュリティアーキテクチャ110は、ネットフロー信号をサブスクライブし、かつ、問題を示すネットフロー信号内の異常な挙動を検出するように適合された、ネットワーク動作のアノマリー検出部と、構成信号をサブスクライブし、かつ、問題を示す構成信号内の異常な挙動を検出するように適合された、構成の変化検出部とをサポートしてもよい。検出部155は、ヒューリスティクス、機械学習、またはヒューリスティクスと機械学習技術との組合せを用いて異常な挙動を検出し、信号から問題160を導出する。検出部155は、ステートレスであってもよく、ステートフルであり得る。
【0026】
従来、問題160がセキュリティチームのメンバー(複数可)に送られる通知をトリガーし、このメンバー(複数可)が問題を確認し、問題の修復を指揮する。しかしながら、この従来の処理フローは、多くの時間を必要とし、たくさんのリソースを消費する(たとえば、与えられた時間にすべての問題に対処するために十分なメンバー(複数可)が得られない)ので、問題に対する対応または修復が遅延して問題の原因から切り離されてしまう。これらの課題およびその他の課題を克服するために、様々な実施の形態は、人工知能で問題160を自動修復するために利用できる対応システム165を対象とする。問題160には複数の方法で対処することができ、問題160に対する具体的な措置175(たとえば、緩和措置、訂正措置、または予防措置)を講じるように適合された対応部170のセットが設けられる。たとえば、検出部155のうち1つがコンピュートインスタンスに問題を検出した場合、対応部170のうち1つがそのインスタンスを隔離する措置175を講じ得る。与えられた問題に対してどの対応部を選択するか(すなわち、どの措置を講じるか)について判断するために、セキュリティアーキテクチャ110の一部として対応勧告が実装される。対応部170は、問題の種別、問題のターゲット、問題の深刻さ、およびその他の属性に基づいて対応推薦部180によって選択される。場合によっては、与えられた問題160に対して対応推薦部180が何を勧告できるかを限定するためのガイドラインを用いて、ユーザが対応推薦部180を構成できる。たとえば、ユーザは、次のように指示したい。「多要素認証にN回失敗し、かつ、以前確認されたIPアドレスからのユーザでない限り、ユーザを一時的に停止しない」。これに代えて、深刻さが低い警告の場合、ユーザは、簡単な通知を選択してもよい。
【0027】
対応推薦部180がその間違いから学習できることは重要であることを理解されたい。そのために、対応システム165は、アクティブラーニングとしても知られているフィードバックループを提供する。フィードバックループは、対応システム165が講じた措置175をユーザが訂正できるようにし、訂正から学習する。アクティブラーニングは、人工知能を用いて実装される。具体的には、対応推薦部180は、与えられた問題に対して取る最良の対応を推論するために2つ以上の予測モデルを利用する。第1のモデル(本明細書において、ローカル(局所的)モデルとして説明する)は、(たとえば、所与のエンティティまたは組織に固有の)固有のユーザテナンシに対する対応部の嗜好を学習する。一般に、ローカルモデルは、強力なモデルであり、ローカルモデルは、高い信頼度を示した場合、優先されることになる。第2のモデル(本明細書において、グローバル(大域的)モデルとして説明する)は、(たとえば、すべてのエンティティまたは組織間の)すべてのユーザが概して何を好むかを学習するインフラストラクチャ規模のモデルであり、ローカルモデルが最初に学習される場合に早い段階で使用される。場合によっては、アクティブラーニングによって追加の対応推薦部ラベルが収集されると、ローカルモデルがグローバルモデルに取って代わる。これに代えて、アクティブラーニングによって追加の対応推薦部ラベルが収集されると、ローカルモデルがグローバルモデルと組み合わせて使用される。オプションである第3のモデル(本明細書において、中間レベルモデル(複数可)として説明する)がユーザのサブセット(たとえば、医療関連のエンティティまたは金融機関など、類似するエンティティまたは組織)に対する対応部の嗜好を学習し、ローカルモデルおよび/またはグローバルモデルと組み合わせて使用される。
【0028】
図2は、様々な実施の形態に係る、アクティブラーニングを有する対応システム200を示すブロック図である。
図1で説明したように、この例では、対応システム200によって行われるアクティブラーニング対応は、問題取得段階205、モデル訓練段階210、アクティブラーニングを伴う対応勧告段階215、および対応部段階220、といういくつかの段階を含む。
【0029】
問題取得段階205は、エミッターから送られてくるデータの信号から問題225を導出するための1つ以上の検出部(たとえば、
図1で説明した検出部155)と、問題を格納するための1つ以上のリポジトリまたはデータストアとを備える。検出部によって提起された問題225を相関付けおよびグループ化して重複を減らし、関連性が改善され得る。たとえば、1人の行為者が怪しいIPから2つのアクティビティを実行した場合、対応システム200は、これらのアクティビティをグループ化して1つの問題にし得る。インフラストラクチャ、エミッター、リソースタイプ、タグなどによって複数の問題が互いに相関付けられ得る。
【0030】
新しいモデル230a~230n(「n」は、自然数を表す)(本明細書において、新しいモデル230として個々に称される場合、または、モデル230としてまとめて称される場合がある)がデプロイされる前に訓練される場合、モデル訓練段階210によって問題取得段階205から問題225が取得されて新しいモデル230を訓練するために使われる。モデル訓練段階210は、ランタイム時にその他の段階で使われる1つ以上の新しいモデル230を訓練し得る。たとえば、モデル訓練段階は、人工的に作られた問題225、または互いに類似したローカルモデルがランタイム時に遭遇した過去の問題225を用いて、ローカルモデルをデプロイされる前に訓練し得る。新しいモデル230a~230nがデプロイされる前に訓練されていない場合、対応勧告段階215によって問題取得段階205から問題225が取得されて、グローバルモデル235、ローカルモデル240a~240n、および/または中間モデル245a~245nのアクティブラーニングと、対応部とを選択するためにランタイム時に使われる。様々なモデル(モデル230;235;240;245)は、勾配ブースティング、ランダムフォレスト、SVM(サポートベクターマシン)、畳み込みニューラルネットワーク(「CNN」)、たとえば、inceptionニューラルネットワーク、残差ニューラルネットワーク(「Resnet」)、U-Net、V-Net、Single Shot Multibox Detector(「SSD」)ネットワーク、もしくは再帰型ニューラルネットワーク(「RNN」)、または、任意のそれらの組合せなど、任意の機械学習(「ML」)モデルであり得る。対応システム200は、対応を予測および勧告するために同じタイプのモデルを採用してもよいし、それぞれ異なるタイプのモデルを採用してもよい。
【0031】
この例では、新しいモデル230を訓練するために、問題225を取得して訓練用の問題225aのサブセット(たとえば、90%)と、検証/テスト用の画像225bのサブセット(たとえば、10%)とに分類する。問題225aのサブセットは、検出部から取得され得る。場合によっては、問題225aのサブセットは、1つ以上の検出部に対応付けられたデータベース、SIEM、またはSOARソリューションなどのデータストレージ構造から取得される。場合によっては、新しいモデル230を訓練するための問題を用意するために、問題225aのサブセットを前処理および/または拡張する。たとえば、問題内にあるデータを正規化して、データセットにある値を、値の範囲における差を歪めることなく、共通のスケールに変更してもよい、および/または問題内にあるデータを人工的に拡張して、新しいデータを実際に収集することなく、モデルを訓練するために利用可能なデータの多様性を増やしてもよい。場合によっては、問題225aのサブセットには、ラベル250がアノテーションされる。アノテーションは、1人以上の人間(セキュリティチームのメンバーなど、アノテーター)が問題225aのサブセット内の各問題に応答して実行すべき対応を確認して問題にラベル250を与えることによって、手動で行われてもよい。新しいモデル230のラベル付けおよび訓練の主な目的は、対応勧告段階215内でモデルをデプロイする前に問題に対する対応の推論を改善することである。
【0032】
訓練工程は、新しいモデル230のハイパーパラメータを選択することと、問題225aのサブセットの中からの問題を新しいモデル230に入力して新しいモデル230の目的関数を最小化するモデルパラメータ(たとえば、重みおよび/またはバイアス)のセットを見つける反復演算を実行することとを含む。ハイパーパラメータは、新しいモデル230の挙動を制御するために調整または最適化可能な設定である。ほとんどのモデルは、メモリまたは実行コストなど、モデルの様々な態様を制御するハイパーパラメータを明示的に定義している。しかしながら、具体的なシナリオにモデルを適合させるための追加のハイパーパラメータが定義され得る。たとえば、ハイパーパラメータは、モデルの隠れユニットの数、モデルの学習率、損失項間の重み付け、畳み込み核の幅、モデルのカーネルの数、学習率、バッチサイズ、およびバッチ組成を含む。
【0033】
訓練の各イテレーションは、モデルパラメータセットを用いた目的関数の値が前回のイテレーションにおいて異なるモデルパラメータセットを用いた目的関数の値よりも小さくなるように、(定義されたハイパーパラメータセットで構成された)新しいモデル230のモデルパラメータセットを見つけることを含み得る。目的関数は、新しいモデル230を用いて推論された出力とラベル250を用いて問題に注釈付けされたグラウンドトゥルースとの間の違いを測定するように構成され得る。モデルパラメータセットが特定されると、新しいモデル230を訓練し、画像225bのサブセット(テストデータセットまたは検証データセット)を用いて検証し得る。検証工程は、K分割交差検証、一個抜き交差検証、1グループ抜き交差検証、ネスト交差検証などの検証技術を用いて、問題225bのサブセットの中から問題を新しいモデル230に入力し、ハイパーパラメータを調整し、最適なハイパーパラメータセットを最終的に見つける反復演算を含む。最適なハイパーパラメータセットを取得すると、予約済みのテスト用画像セットを問題225bのサブセットから新しいモデル230に入力して出力(この例では、推論対応または対応部の選択)を取得し、ブランド‐アルトマン法およびスピアマンの順位相関係数などの相関付け技術を用いてグラウンドトゥルース対応に対してこの出力を評価し、エラー、正解率、適合率、再現率、ROC(Receiver Operating Characteristic Curve)などのパフォーマンスメトリックを算出する。
【0034】
その他の訓練/検証メカニズムが考えられ、対応システム200内に実装され得ることを理解されたい。たとえば、問題225aのサブセットの中からの問題に合わせて、新しいモデル230を訓練し得、ハイパーパラメータを調整し得、問題225bのサブセットの中からの問題は、モデルのパフォーマンスをテストおよび評価するためだけに使われ得る。また、モデル230について説明する訓練メカニズムは新しいモデルを訓練することに焦点を当てているが、これらの訓練メカニズムは、その他のデータセットから訓練された既存のモデル235;240;245や、デプロイする前に一部のみが訓練されたモデルや全く訓練されていないモデルを細かく調整するために利用され得る。たとえば、場合によっては、その他のエンティティまたは対応システムから検出された問題を用いてモデル235;240;245を予め訓練してもよく、デプロイ中にリアルタイムで検出された問題を用いてモデル235;240;245を継続的に訓練してもよい。このような場合、フィードバックループ工程またはアクティブラーニング工程(詳細については、本明細書において後述する)の一部としてモデル230;235;240;245は、継続的に再訓練され(オプションで、再テスト/検証され)てもよい。
【0035】
モデル訓練段階210は、対応勧告段階215によって使用される訓練済みの新しいモデル230、訓練されていないモデル235;240;245、または再訓練されたモデル235;240;245を出力する。対応勧告段階215は、与えられた問題225に対する対応の推論または予測を生成するように適合された対応推薦部255を備える。対応推薦部255は、グローバルモデル235、1つ以上のローカルモデル240a~240n、1つ以上の中間モデル245a~245n(オプション)、ディスクリミネータ260、および監視部/解析部265を備える。対応推薦部255は、与えられた問題225に対して取る最良の対応を推論するために、2つ以上の予測モデル(すなわち、グローバルモデル235、ローカルモデル240、および中間モデル245の中から選択された2つ以上のモデル)を使用する。ローカルモデル240は、(たとえば、所与のエンティティまたは組織に固有の)固有のユーザテナンシに対する対応部の嗜好を学習済みである、または学習するように適合される。一般に、ローカルモデル240は、強力なモデルであり、ローカルモデル240がより高い信頼スコアを示した場合、ローカルモデル240が優先されるべきである。グローバルモデル235は、(たとえば、すべてのエンティティまたは組織間の)すべてのユーザが概して何を好むかを学習済みである、または学習するように適合されたインフラストラクチャ規模のモデルであり、ローカルモデル240が最初に学習される場合に早い段階で使用される。アクティブラーニングによって追加の対応推薦部ラベルが収集されてローカルモデル240を(モデル訓練段階210によって)訓練するために使われると、ローカルモデル240がグローバルモデル235に取って代わり得る。これに代えて、アクティブラーニングによって追加の対応推薦部ラベルが収集されて(モデル訓練段階210によって)ローカルモデル240を訓練するために使われると、ローカルモデル240は、グローバルモデル235と組み合わせて用いられてもよい。任意の中間レベルのモデル245は、ユーザのサブセット(たとえば、医療関連のエンティティまたは金融機関など、類似するエンティティまたは組織)に対する対応部の嗜好を学習済みであり、または学習するように適合され、そして、ローカルモデル240および/またはグローバルモデル235と組み合わせて使用され得る。
【0036】
本明細書において説明したように、2つ以上の予測モデル(すなわち、グローバルモデル235、ローカルモデル240、および中間モデル245)の中から選択された2つ以上のモデルに問題225を入力し、各モデルが問題の特徴量(たとえば、発見された特徴量のパターン)に基づいて推論対応を生成し、複数の推論対応の中から、与えられた問題225に対する最終対応(たとえば、最良の対応)がディスクリミネータ260によって決定される。最終対応は、1つ以上の基準を用いて決定され得る。場合によっては、1つ以上の基準は、2つ以上の予測モデルの重み付けを含む。2つ以上の予測モデルの重みは、モデルの状態が変化すると動的に変更され得る(たとえば、ローカルモデルが訓練および検証されると、モデルの重みが増やされ得る)。たとえば、新しいユーザが最初にオンラインになったときには、そのユーザのローカルモデル240は、ほとんどまたは全く訓練されていない可能性があるので、グローバルモデル235には、ローカルモデル240よりも大きな重みが割り当てられ得る(オプションで、中間モデル245には、中間の値の重みまたは最も大きな値の重みが割り当てられ得る)。この結果、各モデルからの重み付けされた対応の順位付けに基づいて、グローバルモデル235および/または中間モデル245の推論対応が最終対応となり得る。
【0037】
場合によっては、1つ以上の基準は、2つ以上の予測モデルの各々からの推論対応の信頼スコアを含む。たとえば、グローバルモデル235は、信頼スコアが80%である推論対応を提供し得、ローカルモデル240は、信頼スコアが85%である推論対応を提供し得る。この結果、各モデルからの推論対応の信頼スコアの順位付けに基づいて、ローカルモデル240の推論対応が最終対応となり得る。場合によっては、1つ以上の基準は、2つ以上の予測モデルの重み付けと、2つ以上の予測モデルの各々からの推論対応の信頼スコアとを含む。たとえば、ローカルモデル240が訓練を開始して、そのモデルパラメータが学習された場合、ローカルモデル240に適用される重み付けは、グローバルモデル235の重み付けと同等またはそれを超える重み付けまで大きくされ得る。さらには、グローバルモデル235は、信頼スコアが87%である推論対応を提供し得、ローカルモデル240は、87%が信頼スコアである推論対応を提供し得る。この結果、個々のモデルの重みを考慮するために因数分解される信頼スコアの順位付けに基づいて、ローカルモデル240の推論対応が最終対応となり得る。
【0038】
対応推薦部255は、(1)対応推薦部255が与えられた問題225に対する対応を推論し、推論対応に基づいて対応部を選択する通常モードと、(2)対応推薦部255がアクティブラーニング環境内で対応推薦部255が与えられた問題225に対する対応を推論するテストモードという、2つのモードで動作するように適合される。アクティブラーニング環境では、対応部が選択される前に、対応推薦部255が推論対応を許可するか拒否するかをユーザ(たとえば、セキュリティチームのメンバー)および/または監視部/解析部265に問い合わせる(オプションで、推論対応が拒否された場合、正しい対応またはグラウンドトゥルース対応を提供する)。推論対応(オプションで、提供された正しい対応またはグラウンドトゥルース対応)の許可または拒否を利用して、モデル235;240;245を再訓練するまたは継続的に訓練するためのラベル250が生成および提供される。対応システム200のユーザが2つのモードをオン/オフにしてもよい(たとえば、テストモードをオン/オフにする)。場合によっては、与えられたモデルのテスト/検証が成功した場合(たとえば、モデルが所定のしきい値を超える推論の正解率を達成した場合)、モデル(複数可)の訓練を停止または一旦停止するために、対応システム200は、テストモードをオフにする(代わりに、通常モードをオンにする)よう、ユーザを促してもよく、自動的にテストモードをオフにしてもよい(代わりに、通常モードをオフにしてもよい)。場合によっては、与えられたモデルのモデルドリフトを検出した(たとえば、モデルのパフォーマンスが容認できる基準を超えてドリフトした)場合、モデル(複数可)の再訓練を開始するために、対応システム200は、テストモードをオンにする(代わりに通常モードをオフにする)よう、ユーザを促してもよく、自動的にテストモードをオン(代わりに通常モードをオフ)にしてもよい。場合によっては、対応システム200は、常時テストモードに留まって、継続的なアクティブラーニングおよびモデル(複数可)の訓練を可能にしてもよい。
【0039】
モデル235;240;245は、グローバル(大域的)な状況、ローカル(局所的)な状況、地域的な状況、という3つの状況において訓練され、積極的に学習する。(1)グローバル。これは、セキュリティアーキテクチャを利用して、グローバルモデル235がすべての組織またはエンティティの嗜好についての問題と対応とのマッピングをどのように大域的に学習したか、である。(2)ローカル。これは、セキュリティアーキテクチャを利用して、ローカルモデル240が各組織または各エンティティの嗜好についての問題と対応とのマッピングをどのように学習したか、である。(3)地域的。これは、セキュリティアーキテクチャを利用して、中間モデル245が組織またはエンティティのサブグループの嗜好についての問題と対応とのマッピングをどのように地域的に学習したか、である。ユーザまたは監視部/解析部265から正しい対応またはグラウンドトゥルース対応を取得するアクティブラーニング中のこれらの状況の各状況内で、正しい対応またはグラウンドトゥルース対応を用いて、モデル235;240;245を再訓練または継続的に訓練するためのラベル250が生成および提供される。アクティブラーニングから生成されたラベル250は、グローバルリポジトリ270、ローカルリポジトリ275、および中間リポジトリ280にそれぞれ格納され得る。よって、アクティブラーニングによって、(1)対応部を選択するために使われ得る、問題に対する対応(モデルによって生成されるかユーザによって訂正されるかのいずれかである)と、(2)モデル235;240;245を再訓練または継続的に訓練するためのラベル付けされたデータという、2つのものが得られる。
【0040】
たとえば、新しいユーザがオンラインになったときには、当該ユーザは、すべてのエンティティまたは組織間の問題と対応について継続的に訓練されているグローバルモデル235と、ローカルモデル240とを実行している対応推薦部255から開始し得る。ローカルモデル240は、(1)最初のモデルパラメータセットを学習するために当該新しいユーザについて必ずしも固有でない訓練データ(たとえば、人工的に作られた訓練データセット225a)について予め訓練済みである、または、(2)予め選択されており学習できる状態になっているモデルパラメータで訓練されていないかのいずれかである。先ず、セキュリティアーキテクチャによって問題が検出され始めると、新しいユーザの対応推薦部255がテストモードで構成され得る。各問題は、グローバルモデル235およびローカルモデル240に入力され、モデル235;240のいずれも、各モデルのモデルパラメータを用いて、問題に対応付けられた特徴量に基づいて推論対応を生成する。ディスクリミネータ260が推論対応を評価し、最終の推論対応と判断された推論対応を提供する(この例では、グローバルモデル235からの推論対応である可能性が最も高い)。監視部/解析部265は、ディスクリミネータ260の出力を監視し、テストモードでは、正解率を評価するために最終の推論対応をユーザに提供する、または、最終の推論対応の正解率について自動的に評価する。新しいユーザの嗜好についての最終の推論対応が正確であると新しいユーザおよび/または監視部/解析部265によって判断された場合、対応推薦部255は、最終の推論対応を含んだ、問題のラベル250の生成を開始する。問題および対応付けられたラベル250は、モデル235;240の両方に対して正の強化訓練をするためにグローバルリポジトリ270およびローカルリポジトリ275の両方に格納される。
【0041】
これに代えて、新しいユーザの嗜好についての最終の推論対応が新しいユーザおよび/または監視部/解析部265によって不正確であると判断された場合、新しいユーザおよび/または監視部/解析部265が正しい対応またはグラウンドトゥルース対応を提供し、対応推薦部255が問題に対する正しい対応またはグラウンドトゥルース対応を含んだラベル250の生成を開始する。ローカルモデル240を訂正訓練するために、問題および対応付けられたラベル250がローカルリポジトリ275に格納される。これに加えて、問題および対応付けられたラベル250は、セキュリティアーキテクチャの管理者が評価するために、一般リポジトリに格納される、および/またはデータキューに入れられる。管理者は、問題および対応付けられたラベル250を評価して、グローバルモデル235を訂正訓練(corrective training)するためにグローバルリポジトリ270に含めるべきかどうかを判断する。たとえば、グローバルモデル235がこれまで見たことのない特徴量セットが問題に含まれていた場合、第一印象で、推論対応は不正確である可能性が高く、管理者は、グローバルモデル240を訂正訓練するために問題および対応付けられたラベル250をグローバルリポジトリ270に含めるべきであると判断し得る。一方、グローバルモデル235が以前見たことのある特徴量セットが問題に含まれており、少なくともエンティティまたは組織のグローバルコミュニティについての推論対応が正確である場合、新しいユーザの嗜好(たとえば、新しいユーザは、ユーザの状況に固有の対応がある)を理由に推論対応が不正確である可能性が高く、管理者は、グローバルモデル235を訂正訓練するために問題および対応付けられたラベル250をグローバルリポジトリ270に含めるべきではないと判断し得る。よって、グローバルモデルは、訓練およびその利用にノイズを生じさせないよう、人間の管理者によって高度に整理(curate)される。
【0042】
場合によっては、新しいユーザおよび/または監視部/解析部265による最終対応の正解率の評価は、その問題に対してユーザが好むであろうグラウンドトゥルース対応と、最終対応とを比較することを含む。比較に基づいて最終対応がグラウンドトゥルース対応と一致した場合、最終対応の正解率は容認できると判断される。比較に基づいて最終対応がグラウンドトゥルース対応に一致しない場合、最終対応の正解率は容認できないと判断される。グラウンドトゥルースは、ユーザによって手動で提供されてもよく、および/または監視部/解析部265によって自動的に提供され得る(たとえば、リポジトリから取得)。一致については、たとえば、完全一致、実質的に完全一致、または部分一致/マッチなど、いくつかの判断方法がある。場合によっては、一致は、完全一致である。たとえば、「多要素認証を引き上げる」という最終対応は、「多要素認証を引き上げる」というグラウンドトゥルースに一致/マッチすると判断される。さらなる例または別の例では、一致とは、実質的に完全一致/マッチする、または少なくとも部分一致/マッチすることである。本明細書において使用するとき、「実質的に」、「およそ」、および「約」という用語は、当業者であれば理解できる、ほとんど明記されている通りであるが必ずしも完全に明記されている通りではない、と定義される(完全に明記されている通り、を含む)。開示の実施の形態では、「実質的に」、「およそ」、または「約」という用語は、明記されている通り「の[パーセント]範囲」に置き換えられてもよい。ここで、パーセントは、0.1、1、5、および10パーセントを含む。たとえば、「認証レベルを引き上げる」という最終対応は、「多要素認証を引き上げる」というグラウンドトゥルースに一致/マッチすると判断される。これに代えて、「認証レベルを引き上げる」という最終対応は、「多要素認証を引き上げる」というグラウンドトゥルースおよび/または「ユーザアカウントを一時停止する」と一致/マッチすると判断される。
【0043】
場合によっては、新しいユーザおよび/または監視部/解析部265による最終対応の正解率の評価は、最終対応についての説明を解析することをさらに含む。場合によっては、モデル235;340;245の各々は、推論を簡単な用語で説明するように適合される。たとえば、「このユーザはN個のMFA問題を生じさせました、また、これらのタイプの場合のほとんどの場合、これまであなたは一旦停止することが正しい対応(ラベル)であると言い表しているので、私は、このユーザを一旦停止することを勧告します」と説明する。決定を説明できないまたはほとんど説明できないブラックボックスになっていているMLモデルもあるが、その他のアルゴリズムは、実際には、説明可能である。たとえば、浅い決定木のセットとして勾配ブースティングマシンを構築してもよい。モデルに含まれるツリーの数を減らし、ツリーを横断して説明を作成することにより、説明を提供するための推定部が作成され得る。SVM(サポートベクターマシン)など、その他のモデルも、特徴量の重要度という形態で説明を裏付ける。
【0044】
対応推薦部255は、ディスクリミネータ260の出力(すなわち、最終の推論対応)またはユーザおよび/もしくは監視部/解析部265の出力(すなわち、正しい対応またはグラウンドトゥルース対応)に基づいて、対応部段階220の中から対応部285を選択するようにさらに適合される。対応部段階220は、対応推薦部255によって選択される複数の対応部285を備える。各対応部は、セキュリティアーキテクチャが自動的に講ずる、与えられた問題に対する対応または修復を行うための1つ以上の措置290a~290nに対応付けられる。対応部285は、隔離対応部と、シャットダウンおよびスナップショット対応部と、バケット無効化対応部と、MFA(多要素認証)引き上げ対応部と、ユーザアカウント停止対応部と、構成復帰対応部と、ブラックリストへの追加対応部と、パブリックIP無効化対応部などを含むアクティブ対応部を備える。対応部285は、通知対応部と、イベント対応部と、ログ対応部とを含む、複数のパッシブ対応部を備え得る。
【0045】
隔離対応部は、計算リソースなど特定のインフラストラクチャのリソースへのネットワークアクセスを無効化する手段によってこれらのリソースを隔離する措置を講ずる。シャットダウンおよびスナップショット対応部は、計算リソースを停止する措置を講じ、この事例のスナップショットを直ちに撮る。この対応部は、問題を検出した時点の状態をユーザがキャプチャできるようにしつつ、計算リソースに関連する脅威を停止する。バケット無効化対応部は、構成に誤りがあるオブジェクトストアバケットを無効化する措置を講ずる(削除はしない)。たとえば、パブリックアクセスが与えられたバケットがこの対応部を通じて無効化され得る。MFA対応部は、エンドユーザに、強制的に多要素認証によって認証を行わせる措置を講ずる。ユーザアカウント停止対応部は、OCIユーザアカウントを一旦停止する措置を講ずる。構成復帰対応部は、ユーザが行った構成に対する変更をロールバックする措置を講ずる。ブラックリストへの追加対応部は、送信元IPアドレスをユーザCP/DPブラックリストに追加する措置を講ずる。パブリックIP無効化対応部は、計算リソースなどインフラストラクチャのリソースからパブリックIPアドレスを削除する措置を講ずる。通知対応部は、利用可能な通知方法によって問題を届けるためのインフラストラクチャ通知サービスを構成する措置を講ずる。イベント対応部は、通知、ストリーム、関数など、標準のイベント出力を可能にするクラウドイベントを発する措置を講ずる。ログ対応部は、インフラストラクチャロギングサービスによって問題をログとして届ける措置を講ずる。
【0046】
人工知能を用いてセキュリティ問題を自動修復すること
図3および
図4は、人工知能でセキュリティ問題を自動修復するための工程および動作を示す図である。個々の実施形態を工程として説明している場合もあり、当該工程は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されている。フローチャートは、動作を逐次工程として示している場合もあるが、動作の多くは並列または同時に実行され得る。これに加えて、動作の順序が並び替えられてもよい。工程は、その動作が完了したときに終了されるが、図面に含まれていないステップをさらに有し得る。工程は、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに相当し得る。プロセスが関数に相当する場合、その終了は、この関数が呼び出し関数またはメイン関数にリターンすることに相当し得る。
【0047】
図3および
図4に示す工程および/または動作は、1つ以上の処理装置(たとえば、プロセッサコア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合せで実現され得る。ソフトウェアは、(たとえば、メモリ素子上、非一時的なコンピュータ読み取り可能な記憶媒体上の)メモリに記憶され得る。
図3および
図4の特定の一連の処理は、限定を意図したものではない。また、他の一連のステップが別の実施形態に従って実行され得る。たとえば、別の実施形態では、概要を上述したステップを異なる順序で実行してもよい。また、
図3および
図4に示す個々のステップは、個々のステップに応じて様々な順序で実行され得る複数のサブステップを含んでもよい。さらに、特定のアプリケーションに応じてさらなるステップが追加されたり、削除されたりしてもよい。当業者であれば、多くの変形例、変更例、および代替例が分かるであろう。
【0048】
図3は、2つ以上の予測モデルでセキュリティ問題を自動修復するための工程を説明するフローチャート300を示す。いくつかの実施の形態では、フローチャート300に示す工程は、
図1および
図2に示したアーキテクチャ、システム、および技術によって実装され得る。たとえば、これらの工程は、セキュリティアーキテクチャ内で検出した問題に対する対応として対応部を自動的に選択するために、アクティブラーニングを有する対応システムにおいて実装され得る。対応システムは、グローバルな状況およびローカルな状況という少なくとも2つ状況で積極的に学習する少なくとも2つモデルを実装する。(1)グローバル。これは、セキュリティアーキテクチャを利用して、グローバルモデルがすべてのユーザの嗜好についての問題と対応とのマッピングをどのように大域的に学習したか、である。(2)ローカル。これは、セキュリティアーキテクチャを利用して、ローカルモデルが各ユーザの嗜好についての問題と対応とのマッピングをどのように学習したか、である。
【0049】
ステップ305では、セキュリティアーキテクチャの対応システムによって問題が取得される。この問題は、ユーザに関連するエミッターからの信号内で検出部によって検出され得る。問題は、セキュリティアーキテクチャが対応して修復するように適合される、起こり得るセキュリティイベントである。
【0050】
ステップ310では、問題を入力として取る対応システムの一部として実装されるグローバルモデルを用いて、第1対応を推論する。グローバルモデルは、セキュリティアーキテクチャを利用してすべてのユーザ(たとえば、エンティティまたは組織のすべて)の嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを含む。すなわち、大域的モデルパラメータセットは、セキュリティアーキテクチャを利用するすべてのユーザの嗜好を複製するグラウンドトゥルース対応を含むラベルと問題とを含む訓練データから学習される(すなわち、教師あり学習)。嗜好とは、問題に対して講じられるとユーザが想定する対応である。与えられた問題の一例は、「アリスのユーザクレデンシャルが侵害されました」であり、ユーザのグローバルコミュニティが好む対応の一例は、「ユーザアカウントを一時停止する」および/または「シャットダウンしてスナップショットを撮る」である。
【0051】
ステップ315では、問題を入力として取る対応システムの一部として実装されるローカルモデルを用いて、第2対応を推論する。ローカルモデルは、ユーザ(たとえば、エンティティまたは組織)の嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを含む。すなわち、局所的モデルパラメータセットは、セキュリティアーキテクチャを利用するユーザの嗜好を複製するグラウンドトゥルース対応を含むラベルと問題とを含む訓練データから学習される(すなわち、教師あり学習)。嗜好とは、問題に対して講じられるとユーザが想定する対応である。与えられた問題の一例は、「アリスのユーザクレデンシャルが侵害されました」であり、ユーザが好む対応の一例は、「多要素認証を引き上げる」である。
【0052】
オプションのステップ320では、問題を入力として取る対応システムの一部として実装される中間モデルを用いて、第3応答を推論する。第3応答は、第1対応の代わりに、または第1対応および第2対応に加えて推論され得る。中間モデルは、セキュリティアーキテクチャを利用するユーザのサブグループ(たとえば、所与の産業内のエンティティまたは組織)の嗜好についての問題と対応とのマッピングから地域的に学習された地域的モデルパラメータセットを含む。すなわち、地域的モデルパラメータセットは、セキュリティアーキテクチャを利用してユーザのサブグループの嗜好を複製するグラウンドトゥルース対応を含むラベルと問題とを含む訓練データから学習される(すなわち、教師あり学習)。嗜好とは、問題に対して講じられるとユーザのサブグループが想定する対応である。与えられた問題の一例は、「アリスのユーザクレデンシャルが侵害されました」であり、ユーザの地域コミュニティが好む対応の一例は、「ユーザアカウントを一時停止する」および/または「多要素認証を引き上げる」である。
【0053】
ステップ325では、基準を用いて第1対応および第2対応(オプションで、第3応答)を評価する。場合によっては、基準は、グローバルモデルおよびローカルモデル(オプションで、中間モデル)の重み付けを含む。モデルの重みは、モデルの状態が変化すると動的に変更され得る(たとえば、ローカルモデルが訓練および検証されると、モデルの重みが増やされ得る)。たとえば、新しいユーザが最初にオンラインになったときには、そのユーザのローカルモデルは、ほとんどまたは全く訓練されていない可能性があるので、グローバルモデルには、ローカルモデルよりも大きな重みが割り当てられ得る(オプションで、中間モデルには、中間の値の重みまたは最も大きな値の重みが割り当てられ得る)。この結果、各モデルからの重み付けされた対応の順位付けに基づいて、グローバルモデルおよび/または中間モデルの推論対応が最終対応となり得る。
【0054】
場合によっては、基準は、グローバルモデルおよびローカルモデル(オプションで、中間モデル)の各々からの推論対応の信頼スコアを含む。信頼スコアは、任意の既知の工程に従って演算され得る(たとえば、ソフトマックス、予測関数/演算、ベイジアンネットワークなどは、すべて、モデルの予測の信頼度を推定するために実装できる既知の工程である)。たとえば、グローバルモデルは、信頼スコアが80%である推論対応を提供し得、ローカルモデルは、信頼スコアが85%である推論対応を提供し得る。この結果、各モデルからの推論対応の信頼スコアの順位付けに基づいて、ローカルモデルの推論対応が最終対応となり得る。場合によっては、基準は、(1)第1対応および第2対応(オプションで、第3応答)の各々に対応付けられた信頼スコアと、(2)グローバルモデルおよびローカルモデル(オプションで、中間モデル)の各々に対応付けられた重みとを含む。
【0055】
ステップ330では、第1対応および第2対応(オプションで、第3応答)の評価に基づいて、問題に対する最終対応が対応システムによって決定される。たとえば、重みによるモデルの順位付けが、グローバルモデル対応が最良の対応(たとえば、重み付けに基づいた、順位付けが最も高いモデル)であると示す場合、第1対応が最終対応であると判断される。これに代えて、信頼スコアによるモデルの順位付けが、ローカルモデル対応が最良の対応(たとえば、信頼スコアに基づいた、順位付けが最も高い対応)であると示す場合、第2対応が最終対応であると判断される。これに代えて、重みで因数分解された信頼スコアによるモデルの順位付けが、ローカルモデル対応が最良の対応(たとえば、重み付けで因数分解された信頼スコアに基づいた、順位付けが最も高い対応/モデル)であると示す場合、第2対応が最終対応であると判断される。
【0056】
ステップ335では、最終対応に基づいて、対応システムによって対応部のセットの中から対応部が選択される。この対応部は、問題に対応するために1つ以上の措置を講じるように適合される。たとえば、最終対応が「ユーザアカウントを一時停止する」である場合、対応システムは、ユーザアカウント停止対応部を選択してユーザアカウントを一旦停止する措置を講じ、「アリスのユーザクレデンシャルが侵害されました」という問題を解決する。
【0057】
ステップ340では、対応システムが、選択した対応部に基づいて、問題に対して対応するための1つ以上の措置を講ずる。たとえば、ユーザアカウント停止対応部は、ユーザアカウントを一旦停止する措置を講じ、「アリスのユーザクレデンシャルが侵害されました」という問題を解決する。
【0058】
図4は、アクティブラーニングを有して実装される2つ以上の予測モデルでセキュリティ問題を自動修復するための工程を説明するフローチャート400を示す。いくつかの実施の形態では、フローチャート400に示す工程は、
図1および
図2に示したアーキテクチャ、システム、および技術によって実装され得る。たとえば、これらの工程は、セキュリティアーキテクチャ内で検出した問題に対する対応として対応部を自動的に選択するために、アクティブラーニングを有する対応システムにおいて実装され得る。対応システムは、グローバルな状況およびローカルな状況という少なくとも2つ状況で積極的に学習する少なくとも2つモデルを実装する。(1)グローバル。これは、セキュリティアーキテクチャを利用して、グローバルモデルがすべてのユーザの嗜好についての問題と対応とのマッピングをどのように大域的に学習したか、である。(2)ローカル。これは、セキュリティアーキテクチャを利用して、ローカルモデルが各ユーザの嗜好についての問題と対応とのマッピングをどのように学習したか、である。
【0059】
ステップ405では、セキュリティアーキテクチャの対応システムによって問題が取得される。この問題は、ユーザに関連するエミッターからの信号内で検出部によって検出され得る。問題は、セキュリティアーキテクチャが対応して修復するように適合される、起こり得るセキュリティイベントである。
【0060】
ステップ410では、問題を入力として取る対応システムの一部として実装されるグローバルモデルを用いて、第1対応を推論する。グローバルモデルは、セキュリティアーキテクチャを利用してすべてのユーザ(たとえば、エンティティまたは組織のすべて)の嗜好についての問題と対応とのマッピングから大域的に学習された大域的モデルパラメータセットを含む。すなわち、大域的モデルパラメータセットは、セキュリティアーキテクチャを利用してすべてのユーザの嗜好を複製するグラウンドトゥルース対応を含むラベルと問題とを含む訓練データから学習される(すなわち、教師あり学習)。嗜好とは、問題に対して講じられるとユーザが想定する対応である。与えられた問題の一例は、「アリスのユーザクレデンシャルが侵害されました」であり、ユーザのグローバルコミュニティが好む対応の一例は、「ユーザアカウントを一時停止する」および/または「シャットダウンしてスナップショットを撮る」である。
【0061】
ステップ415では、問題を入力として取る対応システムの一部として実装されるローカルモデルを用いて、第2対応を推論する。ローカルモデルは、ユーザ(たとえば、エンティティまたは組織)の嗜好についての問題と対応とのマッピングから局所的に学習された局所的モデルパラメータセットを含む。すなわち、局所的モデルパラメータセットは、セキュリティアーキテクチャを利用してユーザの嗜好を複製するグラウンドトゥルース対応を含むラベルと問題とを含む訓練データから学習される(すなわち、教師あり学習)。嗜好とは、問題に対して講じられるとユーザが想定する対応である。与えられた問題の一例は、「アリスのユーザクレデンシャルが侵害されました」であり、ユーザが好む対応の一例は、「多要素認証を引き上げる」である。
【0062】
オプションのステップ420では、問題を入力として取る対応システムの一部として実装される中間モデルを用いて、第3応答を推論する。第3応答は、第1対応の代わりに、または第1対応および第2対応に加えて推論され得る。中間モデルは、セキュリティアーキテクチャを利用してユーザのサブグループ(たとえば、所与の産業内のエンティティまたは組織)の嗜好についての問題と対応とのマッピングから地域的に学習された地域的モデルパラメータセットを含む。すなわち、地域的モデルパラメータセットは、セキュリティアーキテクチャを利用してユーザのサブグループの嗜好を複製するグラウンドトゥルース対応を含むラベルと問題とを含む訓練データから学習される(すなわち、教師あり学習)。嗜好とは、問題に対して講じられるとユーザのサブグループが想定する対応である。与えられた問題の一例は、「アリスのユーザクレデンシャルが侵害されました」であり、ユーザの地域コミュニティが好む対応の一例は、「ユーザアカウントを一時停止する」および/または「多要素認証を引き上げる」である。
【0063】
ステップ425では、基準を用いて第1対応および第2対応(オプションで、第3応答)を評価する。場合によっては、基準は、グローバルモデルおよびローカルモデル(オプションで、中間モデル)の重み付けを含む。モデルの重みは、モデルの状態が変化すると動的に変更され得る(たとえば、ローカルモデルが訓練および検証されると、モデルの重みが増やされ得る)。たとえば、新しいユーザが最初にオンラインになったときには、そのユーザのローカルモデルは、ほとんどまたは全く訓練されていない可能性があるので、グローバルモデルには、ローカルモデルよりも大きな重みが割り当てられ得る(オプションで、中間モデルには、中間の値の重みまたは最も大きな値の重みが割り当てられ得る)。この結果、各モデルからの重み付けされた対応の順位付けに基づいて、グローバルモデルおよび/または中間モデルの推論対応が最終対応となり得る。
【0064】
場合によっては、基準は、グローバルモデルおよびローカルモデル(オプションで、中間モデル)の各々からの推論対応の信頼スコアを含む。信頼スコアは、任意の既知の工程に従って演算され得る(たとえば、ソフトマックス、予測関数/演算、ベイジアンネットワークなどは、すべて、モデルの予測の信頼度を推定するために実装できる既知の工程である)。たとえば、グローバルモデルは、信頼スコアが80%である推論対応を提供し得、ローカルモデルは、信頼スコアが85%である推論対応を提供し得る。この結果、各モデルからの推論対応の信頼スコアの順位付けに基づいて、ローカルモデルの推論対応が最終対応となり得る。場合によっては、基準は、(1)第1対応および第2対応(オプションで、第3応答)の各々に対応付けられた信頼スコアと、(2)グローバルモデルおよびローカルモデル(オプションで、中間モデル)の各々に対応付けられた重みとを含む。
【0065】
ステップ430では、第1対応および第2対応(オプションで、第3応答)の評価に基づいて、問題に対する最終対応が対応システムによって決定される。たとえば、重みによるモデルの順位付けが、グローバルモデル対応が最良の対応(たとえば、重み付けに基づいた、順位付けが最も高いモデル)であると示す場合、第1対応が最終対応であると判断される。これに代えて、信頼スコアによるモデルの順位付けが、ローカルモデル対応が最良の対応(たとえば、信頼スコアに基づいた、順位付けが最も高い対応)であると示す場合、第2対応が最終対応であると判断される。これに代えて、重みで因数分解された信頼スコアによるモデルの順位付けが、ローカルモデル対応が最良の対応(たとえば、重み付けで因数分解された信頼スコアに基づいた、順位付けが最も高い対応/モデル)であると示す場合、第2対応が最終対応であると判断される。
【0066】
ステップ435では、最終対応の正解率が対応システムによって評価される。正解率は、その問題に対してユーザが好むであろうグラウンドトゥルース対応と、最終対応との比較に基づいて評価される。比較に基づいて最終対応がグラウンドトゥルース対応と一致した場合、最終対応の正解率は容認できると判断される。比較に基づいて最終対応がグラウンドトゥルース対応に一致しない場合、最終対応の正解率は容認できないと判断される。グラウンドトゥルースは、ユーザによって手動で提供されてもよく、および/または対応システムの監視/解析部によって自動的に提供され得る(たとえば、リポジトリから取得)。一致については、たとえば、完全一致、実質的に完全一致、または部分一致/マッチなど、いくつかの判断方法がある。場合によっては、一致は、完全一致である。さらなる例または別の例では、一致とは、実質的に完全一致/マッチする、または少なくとも部分一致/マッチすることである。
【0067】
ステップ440では、正解率が容認できないと判断されたことに応じて、対応システムは、(1)問題のラベルを生成し(ラベルは、グラウンドトゥルース対応を含む)、(2)グラウンドトゥルースと問題とを含むラベルをローカルデータストア(リポジトリ)に格納し、(3)ステップ475において、最終対応ではなくグラウンドトゥルースに基づいて、対応部のセットの中から対応部を選択する。この対応部は、問題に対応するために1つ以上の措置を講じるように適合される。たとえば、グラウンドトゥルースが「ユーザアカウントを一時停止する」である場合、対応システムは、ユーザアカウント停止対応部を選択してユーザアカウントを一旦停止する措置を講じ、「アリスのユーザクレデンシャルが侵害されました。」という問題を解決する。
【0068】
ステップ445では、対応システムは、ローカルリポジトリからのローカル訓練データでローカルモデルの訓練(すなわち、アクティブラーニング)を開始する。ローカル訓練データは、グラウンドトゥルースと問題とを含むラベルを含む。ローカルモデルのローカルモデルパラメータがローカル訓練データから継続的に学習するよう、訓練は、継続的に開始され得る。これに代えて、ローカルモデルのローカルモデルパラメータが定期的にローカル訓練データから学習するよう、訓練は、再訓練のためにバッチ処理または予定された処理で開始され得る。
【0069】
ステップ450では、正解率が容認できないと判断されたことに応じて、対応システムは、(1)管理者が評価するために、グラウンドトゥルースと問題とを含むラベルを一般的なデータストアに格納する、またはグラウンドトゥルースと問題とを含むラベルをデータキューに入れ、(2)グラウンドトゥルースと問題とを含むラベルについて何ら措置を講じないという対応か、グラウンドトゥルースと問題とを含むラベルを用いてグローバルモデルを訓練するという対応のいずれかを管理者から受け、(3)何ら措置を講じないという対応であったことに応じて、データストアまたはデータキューからグラウンドトゥルースと問題とを含むラベルを削除し、(4)グローバルモデルを訓練するという対応であったことに応じて、グラウンドトゥルースと問題とを含むラベルをグローバルリポジトリに格納する。
【0070】
ステップ455では、対応システムは、グローバルリポジトリからのグローバル訓練データでグローバルモデルの訓練(すなわち、アクティブラーニング)を開始する。グローバル訓練データは、グラウンドトゥルースと問題とを含むラベルを含む。グローバルモデルのグローバルモデルパラメータがグローバル訓練データから継続的に学習するよう、訓練は、継続的に開始され得る。これに代えて、グローバルモデルのグローバルモデルパラメータが定期的にグローバル訓練データから学習するよう、訓練は、再訓練のためにバッチ処理または予定された処理で開始され得る。
【0071】
ステップ460では、正解率が容認できると判断されたことに応じて、対応システムは、(1)問題のラベルを生成し(ラベルは、最終対応を含む)、(2)最終対応と問題とを含むラベルをローカルデータストアおよびグローバルデータストアに格納する。
【0072】
ステップ465では、対応システムは、グローバルリポジトリからのグローバル訓練データでグローバルモデルの訓練(すなわち、アクティブラーニング)を開始する。グローバル訓練データは、グラウンドトゥルースと問題とを含むラベルを含む。グローバルモデルのグローバルモデルパラメータがグローバル訓練データから継続的に学習するよう、訓練は、継続的に開始され得る。これに代えて、グローバルモデルのグローバルモデルパラメータが定期的にグローバル訓練データから学習するよう、訓練は、再訓練のためにバッチ処理または予定された処理で開始され得る。
【0073】
ステップ470では、対応システムは、ローカルリポジトリからのローカル訓練データでローカルモデルの訓練(すなわち、アクティブラーニング)を開始する。ローカル訓練データは、グラウンドトゥルースと問題とを含むラベルを含む。ローカルモデルのローカルモデルパラメータがローカル訓練データから継続的に学習するよう、訓練は、継続的に開始され得る。これに代えて、ローカルモデルのローカルモデルパラメータが定期的にローカル訓練データから学習するよう、訓練は、再訓練のためにバッチ処理または予定された処理で開始され得る。
【0074】
ステップ475では、最終対応に基づいて、対応システムによって対応部のセットの中から対応部が選択される。この対応部は、問題に対応するために1つ以上の措置を講じるように適合される。たとえば、最終対応が「ユーザアカウントを一時停止する」である場合、対応システムは、ユーザアカウント停止対応部を選択してユーザアカウントを一旦停止する措置を講じ、「アリスのユーザクレデンシャルが侵害されました」という問題を解決する。
【0075】
ステップ480では、問題に対して対応するための1つ以上の措置を講ずる。たとえば、ユーザアカウント停止対応部は、ユーザアカウントを一旦停止する措置を講じ、「アリスのユーザクレデンシャルが侵害されました」という問題を解決する。
【0076】
例示的なシステム
上述したように、IaaS(Infrastructure as a Service)は、1つの特殊な種類のクラウドコンピューティングである。仮想化されたコンピューティングリソースをパブリックネットワーク(たとえば、インターネット)で提供するようにIaaSを構成できる。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャの構成要素(たとえば、サーバ、記憶装置、ネットワークノード(たとえば、ハードウェア)、導入ソフトウェア、プラットフォームの仮想化(たとえば、ハイパーバイザー層)など)をホスティングできる。場合によっては、IaaSプロバイダは、これらのインフラストラクチャの構成要素に付随する多種多様なサービス(たとえば、請求、監視、ログ記録、セキュリティ、負荷分散およびクラスタリングなど)も供給してもよい。よって、これらのサービスはポリシーベースのサービスであり得るので、IaaSユーザは、負荷分散を駆動するポリシーを実施して、アプリケーションの可用性および性能を維持できるようになるであろう。
【0077】
場合によっては、IaaS顧客は、インターネットなどのWAN(ワイドエリアネットワーク)を通じてリソースおよびサービスにアクセスしてもよく、クラウドプロバイダのサービスを利用してアプリケーションスタックの残りの要素をインストールできる。たとえば、ユーザは、IaaSプラットフォームにログインして、VM(仮想マシン)を作成、各VM上にOS(オペレーティングシステム)をインストール、データベースなどのミドルウェアをデプロイ、ワークロードやバックアップ用のストレージバケットを作成、さらにはそのVMに企業向けソフトウェアをインストールすることができる。そして、顧客は、プロバイダのサービスを利用して、ネットワークトラフィックの負荷分散、アプリケーションの問題のトラブルシューティング、パフォーマンスの監視、ディザスタリカバリの管理などを含む様々な機能を実行できる。
【0078】
ほとんどの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSを提供(たとえば、オファー、レンタル、販売)することに特化したサードパーティサービスであり得るが、そうである必要はない。また、エンティティがプライベートクラウドをデプロイすることを選択して、エンティティ自体のインフラストラクチャサービスのプロバイダになってもよい。
【0079】
いくつかの例では、IaaSのデプロイメントとは、準備したアプリケーションサーバなどに新しいアプリケーションまたは新しいバージョンのアプリケーションを載せる処理である。サーバを準備する処理も含み得る(たとえば、ライブラリ、デーモンなどをインストールすること)。これは、ハイパーバイザー層(たとえば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)よりも下の層でクラウドプロバイダによって管理されることが多い。よって、顧客には、((たとえば、要求に基づいてスピンアップされ得る)セルフサービス仮想マシンなどの上の)(OS)、ミドルウェア、および/またはアプリケーションの導入に対処する責任があるであろう。
【0080】
いくつかの例では、IaaSプロビジョニングとは、使用するためのコンピュータまたは仮想ホストを取得すること、さらには、それらの上に必要なライブラリまたはサービスをインストールすることを指し得る。ほとんどの場合、導入にはプロビジョニングは含まれず、プロビジョニングは最初に行われる必要があり得る。
【0081】
場合によっては、IaaSプロビジョニングには2つの異なる課題がある。先ず、何かを実行する前に初期のインフラストラクチャ一式をプロビジョニングするという初期段階の課題である。次に、すべてがプロビジョニングされてから既存のインフラストラクチャを進化させていく(たとえば、新しいサービスを追加する、サービスを変更する、サービスを削除するなど)という課題がある。場合によっては、インフラストラクチャの構成を宣言的に定義することを可能にすることによってこれらの2つの課題に対処してもよい。すなわち、1つ以上の設定ファイルでインフラストラクチャ(たとえば、どの構成要素が必要で、それらがどのようにやり取りするか)を定義できる。よって、インフラストラクチャのトポロジー全体(たとえば、どのリソースがどのリソースに依存しているのか、それらのリソースがどのように連携するのか)を宣言的に定義できる。場合によっては、トポロジーが定義されると、設定ファイルに記述されている異なる構成要素を作成および/または管理するワークフローを生成できる。
【0082】
いくつかの例では、インフラストラクチャには、互いに接続された多くの要素があり得る。たとえば、コアネットワークとしても知られる1つ以上のVPC(仮想プライベートクラウド)(たとえば、コンフィギャラブルなコンピューティングリソースおよび/または共有コンピューティングリソースの、おそらくオンデマンドのプール)があり得る。いくつかの例では、ネットワークのセキュリティをどのように設置するか、および1つ以上のVM(仮想マシン)を定義する1つ以上のセキュリティグループルールもプロビジョニングされ得る。ロードバランサ、データベースなど、その他のインフラストラクチャの要素もプロビジョニングされ得る。求められるおよび/または追加されるインフラストラクチャの要素が増えると、インフラストラクチャは漸進的に進化するであろう。
【0083】
場合によっては、様々な仮想コンピューティング環境間でインフラストラクチャのコードをデプロイすることを可能にするための断続的デプロイ技術が採用され得る。これに加えて、説明した技術によって、これらの環境内でのインフラストラクチャの管理が可能になる。いくつかの例では、サービスチームは、1つ以上の、多くの場合、多くの異なる本番環境(たとえば、様々な異なる地理的位置にまたがる、時として、全世界に及ぶ)にデプロイされることが求められるコードを書くことができる。しかしながら、いくつかの例では、コードがデプロイされるインフラストラクチャを最初に設置しなければならない。場合によっては、プロビジョニングは手作業で行われ得、インフラストラクチャがプロビジョニングされると、プロビジョニングツールを利用してリソースがプロビジョニングされてもよく、および/または開発ツールを利用してコードがデプロイされ得る。
【0084】
図5は、少なくとも1つの実施の形態に係る、IaaSアーキテクチャのパターンの例を示すブロック
図500である。サービスオペレータ502は、セキュアなホストテナンシ504に通信可能に連結される。セキュアなホストテナンシ504は、VCN(仮想クラウドネットワーク)506と、セキュアなホストサブネット505とを備え得る。いくつかの例では、サービスオペレータ502は、1つ以上のクライアントコンピューティングデバイスを使用していてもよい。クライアントコンピューティングデバイスは、Microsoft Windows Mobile(登録商標)などのソフトウェアおよび/またはiOS、Windows Phone、Android、BlackBerry10、PalmOSなどのいろいろなモバイルオペレーティングシステムを実行し、かつ、インターネット、電子メール、SMS(Short Message Service)、Blackberry(登録商標)、または他の通信プロトコルに対応する手のひらサイズのポータブルデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、PDA(Personal Digital Assistant))またはウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)であり得る。あるいは、クライアントコンピューティングデバイスは、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータならびに/またはラップトップコンピュータを含む、汎用パーソナルコンピュータであり得る。クライアントコンピューティングデバイスは、たとえば、Google Chrome OSなどいろいろなGNU/Linuxオペレーティングシステムを含む各種市販のUNIX(登録商標)またはUNIXに似たオペレーティングシステムを実行するワークステーションコンピュータであり得るが、これに限定されない。これに代えて、またはこれに加えて、クライアントコンピューティングデバイスは、シンクライアントコンピュータ、インターネット対応のゲーミングシステム(たとえば、Kinect(登録商標)ジェスチャ入力装置付きまたは無しのMicrosoft Xboxのゲーミングコンソール)、および/もしくはパーソナルメッセージングデバイスなど、VCN506にアクセスできるネットワークならびに/またはインターネットで通信可能なその他の電子機器であり得る。
【0085】
VCN506は、LPG(ローカルピアリングゲートウェイ)510を含み得る。LPG510は、SSH VCN512に含まれるLPG510を介してSSH(セキュアシェル)VCN512に通信可能に連結できる。SSH VCN512は、SSHサブネット514を含み得、SSH VCN512は、コントロールプレーンVCN516に含まれるLPG510を介してコントロールプレーンVCN516に通信可能に連結できる。また、SSH VCN512は、LPG510を介してデータプレーンVCN518に通信可能に連結できる。コントロールプレーンVCN516およびデータプレーンVCN518は、サービステナンシ519に含まれ得る。サービステナンシ519は、IaaSプロバイダに所有および/または操作され得る。
【0086】
コントロールプレーンVCN516は、境界ネットワーク(たとえば、企業のイントラネットと外部ネットワークとの間の企業ネットワークの一部)として機能するコントロールプレーンDMZ(Demilitarized Zone)ティア520を含み得る。DMZベースのサーバの仕事には制限があり得、セキュリティ侵害を抑えるのに役立ち得る。これに加えて、DMZティア520は、1つ以上のLB(ロードバランサ)サブネット(複数可)522を含み得、コントロールプレーンアプリティア(App Tier)524は、アプリサブネット(複数可)526を含み得、コントロールプレーンデータティア528は、DB(データベース)サブネット(複数可)530を含み得る(たとえば、フロントエンドDBサブネット(複数可)および/またはバックエンドDBサブネット(複数可))。コントロールプレーンDMZティア520に含まれるLBサブネット(複数可)522は、コントロールプレーンアプリティア524に含まれるアプリサブネット(複数可)526と、コントロールプレーンVCN516に含まれ得るインターネットゲートウェイ534とに通信可能に連結でき、アプリサブネット(複数可)526は、コントロールプレーンデータティア528に含まれるDBサブネット(複数可)530と、サービスゲートウェイ536およびNAT(ネットワークアドレス変換)ゲートウェイ538とに通信可能に連結できる。コントロールプレーンVCN516は、サービスゲートウェイ536と、NATゲートウェイ538とを含み得る。
【0087】
コントロールプレーンVCN516は、データプレーンミラーアプリティア540を含み得る。データプレーンミラーアプリティア540は、アプリサブネット(複数可)526を含み得る。データプレーンミラーアプリティア540に含まれるアプリサブネット(複数可)526は、VNIC(仮想ネットワークインターフェイスコントローラ)542を含み得る。VNIC542は、コンピューティングインスタンス544を実行できる。コンピューティングインスタンス544は、データプレーンミラーアプリティア540のアプリサブネット(複数可)526をアプリサブネット(複数可)526に通信可能に連結できる。アプリサブネット526は、データプレーンアプリティア546に含まれ得る。
【0088】
データプレーンVCN518は、データプレーンアプリティア546と、データプレーンDMZティア548と、データプレーンデータティア550とを含み得る。データプレーンDMZティア548は、LBサブネット(複数可)522を含み得る。LBサブネット522は、データプレーンアプリティア546のアプリサブネット(複数可)526と、データプレーンVCN518のインターネットゲートウェイ534とに通信可能に連結できる。アプリサブネット(複数可)526は、データプレーンVCN518のサービスゲートウェイ536およびデータプレーンVCN518のNATゲートウェイ538に通信可能に連結され得る。また、データプレーンデータティア550は、DBサブネット(複数可)530も備える。DBサブネット530は、データプレーンアプリティア546のアプリサブネット(複数可)526に通信可能に連結できる。
【0089】
コントロールプレーンVCN516のインターネットゲートウェイ534およびデータプレーンVCN518のインターネットゲートウェイ534は、メタデータ管理サービス552に通信可能に連結できる。メタデータ管理サービス552は、パブリックインターネット554に通信可能に連結できる。パブリックインターネット554は、コントロールプレーンVCN516のNATゲートウェイ538およびデータプレーンVCN518のNATゲートウェイ538に通信可能に連結できる。コントロールプレーンVCN516のサービスゲートウェイ536およびデータプレーンVCN518のサービスゲートウェイ536は、クラウドサービス556に通信可能に連結できる。
【0090】
いくつかの例では、コントロールプレーンVCN516のサービスゲートウェイ536またはデータプレーンVCN518のサービスゲートウェイ536は、パブリックインターネット554を通過せずにクラウドサービス556にAPI(アプリケーションプログラミングインターフェイス)呼び出しを行うことができる。サービスゲートウェイ536からクラウドサービス556へのAPI呼び出しは、一方通行であり得る。すなわち、サービスゲートウェイ536はクラウドサービス556にAPI呼び出しを行うことができ、クラウドサービス556はサービスゲートウェイ536に要求されたデータを送信できる。しかし、クラウドサービス556は、サービスゲートウェイ536に対するAPI呼び出しを開始しないであろう。
【0091】
いくつかの例では、本来であれば隔離されているであろうサービステナンシ519に、セキュアなホストテナンシ504を直接接続できる。セキュアなホストサブネット508は、LPG510を通じてSSHサブネット514と通信できる。LPG510は、さもなければ隔離されているシステムを通した双方向通信を可能にし得る。セキュアなホストサブネット508をSSHサブネット514に接続することにより、セキュアなホストサブネット508には、サービステナンシ519内のその他のエンティティへのアクセスが与えられ得る。
【0092】
コントロールプレーンVCN516により、サービステナンシ519のユーザは、所望のリソースを設置またはプロビジョニングできるようになり得る。コントロールプレーンVCN516においてプロビジョニングされた所望のリソースは、データプレーンVCN518においてデプロイまたは使用され得る。いくつかの例では、データプレーンVCN518からコントロールプレーンVCN516を隔離でき、コントロールプレーンVCN516のデータプレーンミラーアプリティア540は、データプレーンミラーアプリティア540に含まれ得るVNIC542およびデータプレーンアプリティア546に含まれ得るVNIC542を介して、データプレーンVCN518のデータプレーンアプリティア546と通信できる。
【0093】
いくつかの例では、システムのユーザ、または顧客は、パブリックインターネット554を通して要求を行うことができる、たとえば、CRUD(生成、読み取り、更新、および削除)操作を行うことができる。パブリックインターネット554は、メタデータ管理サービス552に要求を通信できる。メタデータ管理サービス552は、インターネットゲートウェイ534を通してコントロールプレーンVCN516に要求を通信できる。要求は、コントロールプレーンDMZティア520に含まれるLBサブネット(複数可)522によって受信され得る。LBサブネット(複数可)522は、有効な要求であると判断し得、この判断に応じて、LBサブネット(複数可)522は、コントロールプレーンアプリティア524に含まれるアプリサブネット(複数可)526に要求を送信できる。要求が検証され、パブリックインターネット554への呼び出しを必要とする場合、パブリックインターネット554への呼び出しは、パブリックインターネット554への呼び出しを行うことができるNATゲートウェイ538に送信され得る。格納されるのが望ましいと要求によって求められているメモリを、DBサブネット(複数可)530に格納できる。
【0094】
いくつかの例では、データプレーンミラーアプリティア540は、コントロールプレーンVCN516とデータプレーンVCN518との直接通信を容易にできる。たとえば、構成に対する変更、更新、またはその他の適した修正を、データプレーンVCN518に含まれるリソースに適用することが望まれる場合がある。VNIC542を介して、コントロールプレーンVCN516は、データプレーンVCN518に含まれるリソースに直接通信することにより、当該リソースに対する構成に対してこれらの変更、更新、またはその他の適した修正を行うことができる。
【0095】
いくつかの実施の形態では、コントロールプレーンVCN516およびデータプレーンVCN518をサービステナンシ519に含めることができる。この場合、ユーザまたはシステムの顧客は、コントロールプレーンVCN516もデータプレーンVCN518も所有または操作しなくてもよい。その代わりに、IaaSプロバイダは、サービステナンシ519に含まれ得るコントロールプレーンVCN516およびデータプレーンVCN518の両方を所有または操作し得る。本実施の形態によって、ネットワークの隔離が可能になり、ユーザまたは顧客がその他のユーザのリソースまたはその他の顧客のリソースとやり取りさせないようにする。また、本実施の形態によって、ユーザまたはシステムの顧客は、希望するレベルのストレージセキュリティではない可能性のあるパブリックインターネット554に頼る必要なく、データベースを内密に格納できるようになる。
【0096】
その他の実施の形態では、コントロールプレーンVCN516に含まれるLBサブネット(複数可)522を、サービスゲートウェイ536からの信号を受信するように構成できる。本実施の形態では、コントロールプレーンVCN516およびデータプレーンVCN518は、IaaSプロバイダの顧客によって、パブリックインターネット554を呼び出すことなく呼び出されるように構成され得る。パブリックインターネット554から隔離されて、顧客が利用するデータベース(複数可)がIaaSプロバイダによって制御され得、サービステナンシ519に格納され得るので、IaaSプロバイダの顧客は、本実施の形態を望むであろう。
【0097】
図6は、少なくとも1つの実施の形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図600である。サービスオペレータ602(たとえば、
図5のサービスオペレータ802)は、セキュアなホストテナンシ604(たとえば、
図5のセキュアなホストテナンシ804)に通信可能に連結できる。セキュアなホストテナンシ604は、VCN(仮想クラウドネットワーク)606(たとえば、
図5のVCN506)と、セキュアなホストサブネット608(たとえば、
図5のセキュアなホストサブネット508)とを備えることができる。VCN606は、LPG(ローカルピアリングゲートウェイ)610(たとえば、
図5のLPG510)を備えることができる。LPG610は、SSH VCN612に含まれるLPG510を介してSSH(セキュアシェル)VCN612(たとえば、
図5のSSH VCN512)に通信可能に連結できる。SSH VCN612は、SSHサブネット614(たとえば、
図5のSSHサブネット514)を備えることができ、SSH VCN612は、コントロールプレーンVCN616に含まれるLPG610を介してコントロールプレーンVCN616(たとえば、
図5のコントロールプレーンVCN516)に通信可能に連結できる。コントロールプレーンVCN616は、サービステナンシ619(たとえば、
図5のサービステナンシ519)に含めることができ、データプレーンVCN618(たとえば、
図5のデータプレーンVCN518)は、ユーザまたはシステムの顧客が所有または操作し得る顧客テナンシ621に含めることができる。
【0098】
コントロールプレーンVCN616は、LBサブネット(複数可)622(たとえば、
図5のLBサブネット(複数可)822)を含み得るコントロールプレーンDMZティア620(たとえば、
図5のコントロールプレーンDMZティア820)と、アプリサブネット(複数可)626(たとえば、
図5のアプリサブネット(複数可)826)を含み得るコントロールプレーンアプリティア624(たとえば、
図5のコントロールプレーンアプリティア824)と、(たとえば、
図5のDBサブネット(複数可)830と同様の)DB(データベース)サブネット(複数可)630を含み得るコントロールプレーンデータティア628(たとえば、
図5のコントロールプレーンデータティア828)とを備えることができる。コントロールプレーンDMZティア620に含まれるLBサブネット(複数可)622は、コントロールプレーンアプリティア624に含まれるアプリサブネット(複数可)626と、コントロールプレーンVCN616に含めることができるインターネットゲートウェイ634(たとえば、
図5のインターネットゲートウェイ834)とに通信可能に連結でき、アプリサブネット(複数可)626は、コントロールプレーンデータティア628に含まれるDBサブネット(複数可)630と、サービスゲートウェイ636(たとえば、
図5のサービスゲートウェイ)と、NAT(ネットワークアドレス変換)ゲートウェイ638(たとえば、
図5のNATゲートウェイ838)とに通信可能に連結できる。コントロールプレーンVCN616は、サービスゲートウェイ636と、NATゲートウェイ638とを備えることができる。
【0099】
コントロールプレーンVCN616は、データプレーンミラーアプリティア640(たとえば、
図5のデータプレーンミラーアプリティア840)を備えることができる。データプレーンミラーアプリティア640は、アプリサブネット(複数可)626を備えることができる。データプレーンミラーアプリティア640に含まれるアプリサブネット(複数可)626は、コンピューティングインスタンス644を実行できる(たとえば、
図5のコンピューティングインスタンス544と同様の)VNIC(仮想ネットワークインターフェイスコントローラ)642(たとえば、542のVNIC)を備えることができる。コンピューティングインスタンス644は、データプレーンミラーアプリティア640のアプリサブネット(複数可)626と、データプレーンアプリティア646(たとえば、
図5のデータプレーンアプリティア546)に含めることができるアプリサブネット(複数可)626との、データプレーンミラーアプリティア640に含まれるVNIC642およびデータプレーンアプリティア646に含まれるVNIC642を介した通信を容易にできる。
【0100】
コントロールプレーンVCN616に含まれるインターネットゲートウェイ634は、メタデータ管理サービス652(たとえば、
図5のメタデータ管理サービス552)に通信可能に連結できる。メタデータ管理サービス652は、パブリックインターネット654(たとえば、
図5のパブリックインターネット554)に通信可能に連結できる。パブリックインターネット654は、コントロールプレーンVCN616に含まれるNATゲートウェイ638に通信可能に連結できる。コントロールプレーンVCN616に含まれるサービスゲートウェイ636は、クラウドサービス656(たとえば、
図5のクラウドサービス556)に通信可能に連結できる。
【0101】
いくつかの例では、データプレーンVCN618は、顧客テナンシ621に含めることができる。この場合、IaaSプロバイダは、顧客ごとにコントロールプレーンVCN616を提供してもよく、IaaSプロバイダは、顧客ごとに、サービステナンシ619に含まれる一意のコンピューティングインスタンス644を設置してもよい。各コンピューティングインスタンス644は、サービステナンシ619に含まれるコントロールプレーンVCN616と、顧客テナンシ621に含まれるデータプレーンVCN618との通信を可能にし得る。コンピューティングインスタンス644によって、サービステナンシ619に含まれるコントロールプレーンVCN616においてプロビジョニングされるリソースを、顧客テナンシ621に含まれるデータプレーンVCN618においてデプロイまたは使用できるようになる。
【0102】
その他の例では、IaaSプロバイダの顧客は、顧客テナンシ621に収められているデータベースを有してもよい。この例では、コントロールプレーンVCN616は、アプリサブネット(複数可)626を備えることができるデータプレーンミラーアプリティア640を備えることができる。データプレーンミラーアプリティア640は、データプレーンVCN618に存在できるが、データプレーンミラーアプリティア640は、データプレーンVCN618に収められていなくてもよい。すなわち、データプレーンミラーアプリティア640は、顧客テナンシ621へのアクセスを有してもよいが、データプレーンミラーアプリティア640は、データプレーンVCN618に存在していなくてもよく、または、IaaSプロバイダの顧客によって所有または操作されなくてもよい。データプレーンミラーアプリティア640は、データプレーンVCN618を呼び出すように構成されていればよく、コントロールプレーンVCN616に含まれるエンティティを呼び出すように構成されなくてもよい。顧客は、コントロールプレーンVCN616にプロビジョニングされたデータプレーンVCN618にあるリソースをデプロイまたは使用することを望み得、データプレーンミラーアプリティア640は、顧客がリソースを所望にデプロイまたは利用することを容易にできる。
【0103】
いくつかの実施の形態では、IaaSプロバイダの顧客は、データプレーンVCN618にフィルタを適用できる。本実施の形態では、顧客は、どのデータプレーンVCN618にアクセスできるかを決定でき、顧客は、データプレーンVCN618からパブリックインターネット654へのアクセスを制限し得る。IaaSプロバイダは、任意の外部ネットワークまたはデータベースへのデータプレーンVCN618のアクセスにフィルタを適用できなくてもよく、または制御できなくてもよい。顧客テナンシ621に含まれるデータプレーンVCN618に顧客がフィルタを適用することおよび制御することで、データプレーンVCN618をその他の顧客およびパブリックインターネット654から隔離するのに役立てることができる。
【0104】
いくつかの実施の形態では、パブリックインターネット654、コントロールプレーンVCN616、またはデータプレーンVCN618上に存在しない可能性のあるサービスにアクセスするために、サービスゲートウェイ636によってクラウドサービス656を呼び出すことができる。クラウドサービス656とコントロールプレーンVCN616またはデータプレーンVCN618との接続は、繋がっていなかったり、継続していなかったりしてもよい。クラウドサービス656は、IaaSプロバイダが所有または操作する異なるネットワーク上に存在していてもよい。クラウドサービス656は、サービスゲートウェイ636からの呼び出しを受信するように構成されてもよく、パブリックインターネット654からの呼び出しを受信しないように構成され得る。クラウドサービス656は、その他のクラウドサービス656から隔離されていてもよく、コントロールプレーンVCN616は、コントロールプレーンVCN616と同じリージョンにないクラウドサービス656から隔離されていてもよい。たとえば、コントロールプレーンVCN616が「リージョン1」に位置し、クラウドサービス「デプロイメント5」が、リージョン1および「リージョン2」に位置してもよい。リージョン1に位置するコントロールプレーンVCN616に含まれるサービスゲートウェイ636によってデプロイメント5の呼び出しが行われた場合、この呼び出しは、リージョン1にあるデプロイメント5に送信され得る。この例では、コントロールプレーンVCN616、またはリージョン1にあるデプロイメント5は、リージョン2にあるデプロイメント5に通信可能に連結または通信していなくてもよい。
【0105】
図7は、少なくとも1つの実施の形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図700である。サービスオペレータ702(たとえば、
図5のサービスオペレータ502)は、セキュアなホストテナンシ704(たとえば、
図5のセキュアなホストテナンシ504)に通信可能に連結できる。セキュアなホストテナンシ704は、VCN(仮想クラウドネットワーク)706(たとえば、
図5のVCN506)と、セキュアなホストサブネット708(たとえば、
図5のセキュアなホストサブネット508)とを備えることができる。VCN706は、SSH VCN712に含まれるLPG710を介してSSH VCN712(たとえば、
図5のSSH VCN512)に通信可能に連結できるLPG710(たとえば、
図5のLPG510)を備えることができる。SSH VCN712は、SSHサブネット714(たとえば、
図5のSSHサブネット514)を備えることができ、SSH VCN712は、コントロールプレーンVCN716に含まれるLPG710を介してコントロールプレーンVCN716(たとえば、
図5のコントロールプレーンVCN516)に通信可能に連結でき、データプレーンVCN718に含まれるLPG710を介してデータプレーンVCN718(たとえば、
図5のデータプレーン518)に通信可能に連結できる。コントロールプレーンVCN716およびデータプレーンVCN718は、サービステナンシ719(たとえば、
図5のサービステナンシ519)に含めることができる。
【0106】
コントロールプレーンVCN716は、LB(ロードバランサ)サブネット(複数可)722(たとえば、
図5のLBサブネット(複数可)522)を含めることができるコントロールプレーンDMZティア720(たとえば、
図5のコントロールプレーンDMZティア520)と、(たとえば、
図5のアプリサブネット(複数可)526と同様の)アプリサブネット(複数可)726を含めることができるコントロールプレーンアプリティア724(たとえば、
図5のコントロールプレーンアプリティア524)と、DBサブネット(複数可)730を含めることができるコントロールプレーンデータティア728(たとえば、
図5のコントロールプレーンデータティア528)とを備えることができる。コントロールプレーンDMZティア720に含まれるLBサブネット(複数可)722は、コントロールプレーンアプリティア724に含まれるアプリサブネット(複数可)726と通信可能に連結でき、コントロールプレーンVCN716に含めることができるインターネットゲートウェイ734(たとえば、
図5のインターネットゲートウェイ534)と通信可能に連結でき、アプリサブネット(複数可)726は、コントロールプレーンデータティア728に含まれるDBサブネット(複数可)730と通信可能に連結でき、サービスゲートウェイ736(たとえば、
図5のサービスゲートウェイ)およびNAT(ネットワークアドレス変換)ゲートウェイ738(たとえば、
図5のNATゲートウェイ538)と通信可能に連結できる。コントロールプレーンVCN716は、サービスゲートウェイ736およびNATゲートウェイ738を備えることができる。
【0107】
データプレーンVCN718は、データプレーンアプリティア746(たとえば、
図5のデータプレーンアプリティア546)と、データプレーンDMZティア748(たとえば、
図5のデータプレーンDMZティア548)と、データプレーンデータティア750(たとえば、
図5のデータプレーンデータティア550)とを備えることができる。データプレーンDMZティア748は、LBサブネット(複数可)722を備えることができる。LBサブネット722は、データプレーンアプリティア746の信頼できるアプリサブネット(複数可)760および信頼できないアプリサブネット(複数可)762に通信可能に連結でき、データプレーンVCN718に含まれるインターネットゲートウェイ734に通信可能に連結できる。信頼できるアプリサブネット(複数可)760は、データプレーンVCN718に含まれるサービスゲートウェイ736と、データプレーンVCN718に含まれるNATゲートウェイ738と、データプレーンデータティア750に含まれるDBサブネット(複数可)730とに通信可能に連結できる。信頼できないアプリサブネット(複数可)762は、データプレーンVCN718に含まれるサービスゲートウェイ736と、データプレーンデータティア750に含まれるDBサブネット(複数可)730に通信可能に連結できる。データプレーンデータティア750は、DBサブネット(複数可)730を含み得る。DBサブネット730は、データプレーンVCN718に含まれるサービスゲートウェイ736に通信可能に連結できる。
【0108】
信頼できないアプリサブネット(複数可)762は、1つ以上の主要VNIC764(1)~(N)を備えることができる。VNIC764(1)~(N)は、テナントVM(仮想マシン)766(1)~(N)に通信可能に連結できる。各テナントVM766(1)~(N)は、各アプリサブネット767(1)~(N)に通信可能に連結できる。アプリサブネット767(1)~(N)は、それぞれのコンテナエグレスVCN768(1)~(N)に含めることができる。コンテナエグレスVCN768(1)~(N)は、それぞれの顧客テナンシ770(1)~(N)に含めることができる。それぞれの補助VNIC772(1)~(N)は、データプレーンVCN718に含まれる信頼できないアプリサブネット(複数可)762とコンテナエグレスVCN768(1)~(N)に含まれるアプリサブネットとの通信を容易にできる。各コンテナエグレスVCN768(1)~(N)は、パブリックインターネット754(たとえば、
図5のパブリックインターネット554)に通信可能に連結できるNATゲートウェイ738を備えることができる。
【0109】
コントロールプレーンVCN716に含まれるインターネットゲートウェイ734およびデータプレーンVCN718に含まれるインターネットゲートウェイ734は、メタデータ管理サービス752(たとえば、
図5のメタデータ管理システム552)に通信可能に連結できる。メタデータ管理サービス752は、パブリックインターネット754に通信可能に連結できる。パブリックインターネット754は、コントロールプレーンVCN716に含まれるNATゲートウェイ738およびデータプレーンVCN718に含まれるNATゲートウェイ738に通信可能に連結できる。コントロールプレーンVCN716に含まれるサービスゲートウェイ736およびデータプレーンVCN718に含まれるサービスゲートウェイ736は、クラウドサービス756に通信可能に連結できる。
【0110】
いくつかの実施の形態では、データプレーンVCN718を顧客テナンシ770と一体化することができる。この一体化は、コードを実行する場合にサポートを希望する場合など、場合によっては、IaaSプロバイダの顧客にとって有用または望ましいであろう。顧客は、破壊的であるかもしれない実行用コードを提供する可能性があり、その他の顧客リソースと通信する可能性があり、または、望ましくない作用効果を生じさせる可能性がある。これに応じて、IaaSプロバイダは、顧客がIaaSプロバイダに提供したコードを実行するかどうかを判断し得る。
【0111】
いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダに一時的なネットワークアクセスを付与して、データプレーンティアアプリ746にアタッチする機能を要求し得る。この機能を実行するためのコードは、VM766(1)~(N)において実行され得、コードは、データプレーンVCN718上のその他の場所で動作するように構成されなくてもよい。各VM766(1)~(N)は、1つの顧客テナンシ770に接続され得る。VM766(1)~(N)に含まれるそれぞれのコンテナ771(1)~(N)は、このコードを実行するように構成され得る。この場合、2つの隔離がある可能性がある(たとえば、信頼できないアプリサブネット(複数可)762に含まれる少なくともVM766(1)~(N)に含まれ得るコンテナ771(1)~(N)がコードを実行している。)。隔離が2つあることで、誤ったコードもしくは望ましくないコードがIaaSプロバイダのネットワークに損害を与えないように、または、異なる顧客のネットワークに損害を与えないようにすることに役立つであろう。コンテナ771(1)~(N)は、顧客テナンシ770に通信可能に連結され得、顧客テナンシ770からデータを送信または受信するように構成され得る。コンテナ771(1)~(N)は、データプレーンVCN718にあるその他のエンティティからデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaSプロバイダは、コンテナ771(1)~(N)を強制終了または廃棄し得る。
【0112】
いくつかの実施の形態では、信頼できるアプリサブネット(複数可)760は、IaaSプロバイダが所有または操作し得るコードを実行し得る。本実施の形態では、信頼できるアプリサブネット(複数可)760は、DBサブネット(複数可)730に通信可能に連結され得、DBサブネット(複数可)730においてCRUD操作を行うように構成され得る。信頼できないアプリサブネット(複数可)762は、DBサブネット(複数可)730に通信可能に連結され得るが、本実施の形態では、信頼できないアプリサブネット(複数可)は、DBサブネット(複数可)730において読み取り操作を行うように構成され得る。各顧客のVM766(1)~(N)に含めることができ、顧客からのコードを実行し得るコンテナ771(1)~(N)は、DBサブネット(複数可)730に通信可能に連結されなくてもよい。
【0113】
その他の実施の形態では、コントロールプレーンVCN716とデータプレーンVCN718とは、直接通信可能に連結されなくてもよい。本実施の形態では、コントロールプレーンVCN716とデータプレーンVCN718との間に直接の通信がなくてもよい。しかしながら、通信は、少なくとも1つの方法を通して間接的に発生し得る。LPG710は、コントロールプレーンVCN716とデータプレーンVCN718との通信を容易にできるIaaSプロバイダによって確立され得る。別の例では、コントロールプレーンVCN716またはデータプレーンVCN718は、サービスゲートウェイ736を経由してクラウドサービス756を呼び出すことができる。たとえば、コントロールプレーンVCN716からクラウドサービス756に対する呼び出しは、データプレーンVCN718と通信できるサービスを求める要求を含めることができる。
【0114】
図8は、少なくとも1つの実施の形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図800である。サービスオペレータ802(たとえば、
図5のサービスオペレータ502)は、セキュアなホストテナンシ804(たとえば、
図5のセキュアなホストテナンシ504)に通信可能に連結できる。セキュアなホストテナンシ804は、VCN(仮想クラウドネットワーク)806(たとえば、
図5のVCN506)と、セキュアなホストサブネット808(たとえば、
図5のセキュアなホストサブネット508)とを備えることができる。VCN806は、SSH VCN812に含まれるLPG810を介してSSH VCN812(たとえば、
図5のSSH VCN512)に通信可能に連結できるLPG810(たとえば、
図5のLPG510)を備えることができる。SSH VCN812は、SSHサブネット814(たとえば、
図5のSSHサブネット514)を備えることができ、SSH VCN812は、コントロールプレーンVCN816に含まれるLPG810を介してコントロールプレーンVCN816(たとえば、
図5のコントロールプレーンVCN516)に通信可能に連結でき、データプレーンVCN818に含まれるLPG810を介してデータプレーンVCN818(たとえば、
図5のデータプレーン518)に通信可能に連結できる。コントロールプレーンVCN816およびデータプレーンVCN818は、サービステナンシ819(たとえば、
図5のサービステナンシ519)に含めることができる。
【0115】
コントロールプレーンVCN816は、LBサブネット(複数可)822(たとえば、
図5のLBサブネット(複数可)522)を含めることができるコントロールプレーンDMZティア820(たとえば、
図5のコントロールプレーンDMZティア520)と、アプリサブネット(複数可)826(たとえば、
図5のアプリサブネット(複数可)526)を含めることができるコントロールプレーンアプリティア824(たとえば、
図5のコントロールプレーンアプリティア524)と、DBサブネット(複数可)830(たとえば、
図10のDBサブネット(複数可)1030)を含めることができるコントロールプレーンデータティア828(たとえば、
図5のコントロールプレーンデータティア528)とを備えることができる。コントロールプレーンDMZティア820に含まれるLBサブネット(複数可)822は、コントロールプレーンアプリティア824に含まれるアプリサブネット(複数可)826と通信可能に連結でき、コントロールプレーンVCN816に含めることができるインターネットゲートウェイ834(たとえば、
図5のインターネットゲートウェイ534)と通信可能に連結でき、アプリサブネット(複数可)826は、コントロールプレーンデータティア828に含まれるDBサブネット(複数可)830と通信可能に連結でき、サービスゲートウェイ836(たとえば、
図5のサービスゲートウェイ)およびNAT(ネットワークアドレス変換)ゲートウェイ838(たとえば、
図5のNATゲートウェイ538)と通信可能に連結できる。コントロールプレーンVCN816は、サービスゲートウェイ836およびNATゲートウェイ838を備えることができる。
【0116】
データプレーンVCN818は、データプレーンアプリティア846(たとえば、
図5のデータプレーンアプリティア546)と、データプレーンDMZティア848(たとえば、
図5のデータプレーンDMZティア548)と、データプレーンデータティア850(たとえば、
図5のデータプレーンデータティア550)とを備えることができる。データプレーンDMZティア848は、LBサブネット(複数可)822を備えることができる。LBサブネット822は、データプレーンアプリティア846の信頼できるアプリサブネット(複数可)860(たとえば、
図10の信頼できるアプリサブネット(複数可)1060)および信頼できないアプリサブネット(複数可)862(たとえば、
図10の信頼できないアプリサブネット(複数可)1062)に通信可能に連結でき、データプレーンVCN818に含まれるインターネットゲートウェイ834に通信可能に連結できる。信頼できるアプリサブネット(複数可)860は、データプレーンVCN818に含まれるサービスゲートウェイ836と、データプレーンVCN818に含まれるNATゲートウェイ838と、データプレーンデータティア850に含まれるDBサブネット(複数可)830とに通信可能に連結できる。信頼できないアプリサブネット(複数可)862は、データプレーンVCN818に含まれるサービスゲートウェイ836と、データプレーンデータティア850に含まれるDBサブネット(複数可)830とに通信可能に連結できる。データプレーンデータティア850は、DBサブネット(複数可)830を含み得る。DBサブネット830は、データプレーンVCN818に含まれるサービスゲートウェイ836に通信可能に連結できる。
【0117】
信頼できないアプリサブネット(複数可)862は、主要VNIC864(1)~(N)を備えることができる。VNIC864(1)~(N)は、信頼できないアプリサブネット(複数可)862に存在するテナントVM(仮想マシン)866(1)~(N)に通信可能に連結できる。各テナントVM866(1)~(N)は、それぞれのコンテナ867(1)~(N)においてコードを実行でき、アプリサブネット826に通信可能に連結できる。アプリサブネット826は、データプレーンアプリティア846に含めることができる。データプレーンアプリティア846は、コンテナエグレスVCN868に含めることができる。それぞれの補助VNIC872(1)~(N)は、データプレーンVCN818に含まれる信頼できないアプリサブネット(複数可)862とコンテナエグレスVCN868に含まれるアプリサブネットとの通信を容易にできる。コンテナエグレスVCN868は、パブリックインターネット854(たとえば、
図5のパブリックインターネット554)に通信可能に連結できるNATゲートウェイ838を備えることができる。
【0118】
コントロールプレーンVCN816に含まれるインターネットゲートウェイ834およびデータプレーンVCN818に含まれるインターネットゲートウェイ834は、メタデータ管理サービス852(たとえば、
図5のメタデータ管理システム552)に通信可能に連結できる。メタデータ管理サービス852は、パブリックインターネット854に通信可能に連結できる。パブリックインターネット854は、コントロールプレーンVCN816に含まれるNATゲートウェイ838およびデータプレーンVCN818に含まれるNATゲートウェイ838に通信可能に連結できる。コントロールプレーンVCN816に含まれるサービスゲートウェイ836およびデータプレーンVCN818に含まれるサービスゲートウェイ836は、クラウドサービス856に通信可能に連結できる。
【0119】
いくつかの例では、
図8のブロック
図800のアーキテクチャが示すパターンは、
図7のブロック
図700のアーキテクチャが示すパターンに対する例外であると考えら得、IaaSプロバイダが顧客と直接通信できない(たとえば、リージョンが切り離されている)場合、IaaSプロバイダの顧客にとってブロック
図800のアーキテクチャが示すパターンは望ましいであろう。顧客ごとにVM866(1)~(N)に含まれるそれぞれのコンテナ867(1)~(N)には、顧客はリアルタイムにアクセスできる。コンテナ867(1)~(N)は、コンテナエグレスVCN868に含めることができるデータプレーンアプリティア846のアプリサブネット(複数可)826に含まれるそれぞれの補助VNIC872(1)~(N)を呼び出すように構成され得る。補助VNIC872(1)~(N)は、NATゲートウェイ838に呼び出しを送信できる。NATゲートウェイ838は、当該呼び出しをパブリックインターネット854に送信し得る。この例では、顧客がリアルタイムでアクセスできるコンテナ867(1)~(N)をコントロールプレーンVCN816から隔離でき、データプレーンVCN818に含まれるその他のエンティティから隔離できる。また、コンテナ867(1)~(N)は、その他の顧客のリソースから隔離され得る。
【0120】
その他の例では、顧客は、コンテナ867(1)~(N)を使用してクラウドサービス856を呼び出すことができる。この例では、顧客は、クラウドサービス856にサービスを要求するコードをコンテナ867(1)~(N)において実行し得る。コンテナ867(1)~(N)は、この要求を補助VNIC872(1)~(N)に送信できる。補助VNIC872(1)~(N)は、NATゲートウェイに要求を送信できる。NATゲートウェイは、パブリックインターネット854に要求を送信できる。パブリックインターネット854は、コントロールプレーンVCN816に含まれるLBサブネット(複数可)822にインターネットゲートウェイ834を介して要求を送信できる。要求が有効であると判断されたことに応答して、LBサブネット(複数可)は、アプリサブネット(複数可)826に要求を送信できる。アプリサブネット(複数可)826は、サービスゲートウェイ836を介してクラウドサービス856に要求を送信できる。
【0121】
図示したIaaSアーキテクチャ500、600、700、800が、図示された構成要素以外の構成要素を有し得ることを理解されたい。さらに、図示した実施の形態は、本開示の実施の形態を組み込み得るクラウドインフラストラクチャシステムのいくつかの例に過ぎない。いくつかのその他の実施の形態では、IaaSシステムは、図示した構成要素よりも多い数の構成要素を有してもよく、図示した構成要素よりも少ない数の構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の構成もしくは配置が異なっていてもよい。
【0122】
特定の実施の形態では、IaaSシステムは、アプリケーション一式、ミドルウェア、および、セルフサービスの、サブスクリプション方式で伸縮自在にスケーラブルであり信頼性があり、かつ高い可用性を有するセキュアな方法で顧客に届けられるデータベースサービス提供物を含み得る。このようなIaaSシステムの例として、本願の譲受人が提供するOCI(オラクル・クラウド・インフラストラクチャ)がある。
【0123】
図9は、本開示の様々な実施の形態が実施され得るコンピュータシステム900の例を示す図である。システム900を使用して、上述したコンピュータシステムのいずれかを実現し得る。図に示すように、コンピュータシステム900は、バス・サブシステム902を介していくつかの周辺サブシステムと通信する処理装置904を備える。これらの周辺サブシステムは、処理高速化装置906と、I/Oサブシステム908と、ストレージサブシステム918と、通信サブシステム924とを含んでもよい。ストレージサブシステム918は、有形のコンピュータ読み取り可能な記憶媒体922と、システムメモリ910とを含む。
【0124】
バス・サブシステム902は、コンピュータシステム900の様々な構成要素およびサブシステムを互いに意図した通りに通信させるためのメカニズムを提供する。バス・サブシステム902は、1つのバスとして図示されているが、バス・サブシステムの別の実施の形態は、複数のバスを利用してもよい。バス・サブシステム902は、各種のバスアーキテクチャを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかの種類のバス構造のうちのいずれかであり得る。たとえば、このようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびPCI(Peripheral Component Interconnect)バスを含んでもよく、これらは、IEEE P1386.1標準規格に準拠して製造されるMezzanineバスとして実現され得る。
【0125】
1つ以上の集積回路(たとえば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現され得る処理装置904は、コンピュータシステム900の動作を制御する。処理装置904には、1つ以上のプロセッサが含まれてもよい。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含んでもよい。特定の実施の形態では、処理装置904は、シングルコアプロセッサまたはマルチコアプロセッサを各々が含んだ1つ以上の独立した処理装置932および/または934として実現され得る。また、その他の実施の形態では、処理装置904は、2つのデュアルコアプロセッサを1つのチップに組み込むことによって形成されるクアッドコア処理装置として実現され得る。
【0126】
様々な実施の形態では、処理装置904は、プログラムコードに応答していろいろなプログラムを実行でき、複数の同時に実行しているプログラムまたはプロセスを維持することができる。いつでも、実行されるプログラムコードの一部またはすべては、プロセッサ(複数可)904に、および/またはストレージサブシステム918に存在し得る。適したプログラミングによって、プロセッサ(複数可)904は、上述した様々な機能を提供できる。コンピュータシステム900は、処理高速化装置906をさらに備えてもよい。処理高速化装置906は、DSP(デジタル・シグナル・プロセッサ)および/または専用プロセッサなどを含み得る。
【0127】
I/Oサブシステム908は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含み得る。ユーザインターフェイス入力装置は、キーボード、マウスもしくはトラックボールなどのポインティングデバイス、タッチパッドもしくはディスプレイに組み込まれたタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、ボイスコマンド認識システムを有する音声入力装置、マイクロホン、および他の種類の入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえば、ジェスチャコマンドおよび音声コマンドを用いた自然なユーザインターフェイスによってユーザがMicrosoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御およびそれとやり取りすることを可能にするMicrosoft Kinect(登録商標)モーションセンサなどの動き検知デバイスおよび/またはジェスチャ認識デバイスを含み得る。また、ユーザインターフェイス入力装置は、ユーザの目の活動(たとえば、写真を撮影しているおよび/またはメニュー選択を行っている間の「まばたき」)を検出し、目の仕草(eye gesture)を変換して入力装置(たとえば、Google Glass(登録商標))への入力とするGoogle Glass(登録商標)まばたき検出装置などのアイジェスチャ認識デバイスを含み得る。これに加えて、ユーザインターフェイス入力装置は、ユーザがボイスコマンドによって音声認識システム(たとえば、Siri(登録商標)ナビゲータ)とやり取りすることを可能にする音声認識検知デバイスを含み得る。
【0128】
また、ユーザインターフェイス入力装置は、3D(3次元)マウス、ジョイスティックもしくはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルカムコーダー、ポータブルメディアプレーヤ、ウェブカム、イメージスキャナ、指紋スキャナ、バーコードリーダー3Dスキャナ、3Dプリンタ、レーザー測距器、および視線追跡装置などのオーディオ/ビジュアル装置を含むが、これに限定されない。これに加えて、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影法、磁気共鳴画像、陽電子放出断層撮影装置、超音波検査デバイスなど、医用画像入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえば、MIDIキーボード、デジタル楽器などのオーディオ入力装置を含み得る。
【0129】
ユーザインターフェイス出力装置は、表示サブシステム、インジケーターライト、または音声出力装置などの非視覚的表示装置などを含み得る。表示サブシステムは、CRT(ブラウン管)、LCD(液晶ディスプレイ)またはプラズマディスプレイを使用するものなどのフラットパネル表示装置、投影装置、タッチスクリーンなどであり得る。一般に、「出力装置」という用語の使用は、コンピュータシステム900からユーザまたは他のコンピュータに情報を出力するためのあらゆる種類のデバイスおよびメカニズムを含むことを意図する。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車ナビゲーションシステム、作図装置、音声出力装置、およびモデムなど、文字、図形、および音声/映像情報を視覚的に伝えるいろいろな表示装置を含み得るが、これらに限定されない。
【0130】
コンピュータシステム900は、システムメモリ910内に現在位置していると図示されているソフトウェア要素を含むストレージサブシステム918から構成され得る。システムメモリ910は、処理装置904上でロード可能かつ実行可能なプログラム命令、およびこれらのプログラムの実行中に生成されるデータを格納してもよい。
【0131】
コンピュータシステム900の構成および種類によっては、システムメモリ910は、揮発性メモリであってもよく(RAM(ランダムアクセスメモリ)など)、および/または不揮発性メモリ(ROM(読み出し専用メモリ)、フラッシュメモリなど)であり得る。RAMは、通常、処理装置904がすぐにアクセスできる、ならびに/または現在操作および実行しているデータおよび/もしくはプログラムモジュールを含む。いくつかの実装形態において、システムメモリ910は、SRAM(スタティックRAM)またはDRAM(ダイナミックRAM)など、複数の異なる種類のメモリを含み得る。いくつかの実装形態において、起動中などで、コンピュータシステム900内の要素間で情報を転送することを助ける基本ルーチンを含むBIOS(Basic Input/Output System)は、通常、ROMに格納され得る。また、一例として、システムメモリ910は、クライアントアプリケーション、ウェブブラウザ、ミッドティア・アプリケーション、RDBMS(リレーショナルデータベース管理システム)などを含み得るアプリケーションプログラム912と、プログラムデータ914と、オペレーティングシステム916とを含む。一例として、オペレーティングシステム916は、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinuxオペレーティングシステム、いろいろな市販のUNIX(登録商標)もしくはUNIXに似たオペレーティングシステム(いろいろなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これに限定されない)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)9OS、およびPalm(登録商標)OSオペレーティングシステムなど、モバイルオペレーティングシステムを含み得る。
【0132】
また、ストレージサブシステム918は、いくつかの実施の形態の機能を提供する基本プログラミング構成およびデータ構成を格納するための有形のコンピュータ読み取り可能な記憶媒体を提供し得る。プロセッサによって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)がストレージサブシステム918に格納され得る。これらのソフトウェアモジュールまたは命令は、処理装置904によって実行され得る。また、ストレージサブシステム918は、本開示に従って使用されるデータを格納するためのリポジトリを提供し得る。
【0133】
また、ストレージサブシステム900は、コンピュータ読み取り可能な記憶媒体922にさらに接続され得るコンピュータ読み取り可能な記憶媒体リーダー920を含み得る。システムメモリ910と合わせて、必要に応じてシステムメモリ910と組み合わせて、コンピュータ読み取り可能な記憶媒体922は、遠隔の記憶装置、ローカル記憶装置、固定記憶装置、および/またはリムーバブル記憶装置、ならびにコンピュータ読み取り可能な情報を一時的におよび/またはさらに永続して含み、格納し、送信し、および取り出すための記憶媒体を包括的に表してもよい。
【0134】
コードまたはコードの一部を含んだコンピュータ読み取り可能な記憶媒体922は、情報の格納および/または伝送のための任意の方法および技術で実現される揮発性媒体および不揮発性媒体、取り外し可能な媒体および固定型媒体などの記憶媒体および通信媒体を含む、当技術分野で知られているまたは使われている任意の適切な媒体も含み得るが、これらに限定されない。これは、RAM、ROM、EEPROM(Electronically Erasable Programmable ROM)、フラッシュメモリ、もしくは他のメモリテクノロジー、CD-ROM、DVD(デジタル多目的ディスク)、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置などの有形のコンピュータ読み取り可能な記憶媒体、またはその他の有形のコンピュータ読み取り可能な媒体を含み得る。これは、データ信号、データ伝送など無形のコンピュータ読み取り可能な媒体、または所望の情報を伝送するために使用され得るその他の媒体、およびコンピューティングシステム900によってアクセスされ得るその他の媒体なども含み得る。
【0135】
一例として、コンピュータ読み取り可能な記憶媒体922は、固定型不揮発性磁気媒体から読み出しまたは書き込みを行うハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読み出しまたは書き込みを行う磁気ディスクドライブ、ならびに、CD ROM、DVD、およびBlu-Ray(登録商標)ディスクなどの取外し可能な不揮発性光ディスクもしくは他の光学媒体から読み出しまたは書き込みを行う光ディスクドライブを含んでもよい。コンピュータ読み取り可能な記憶媒体922は、Zip(登録商標)ドライブ、フラッシュメモリーカード、USB(Universal Serial Bus)フラッシュドライブ、SD(Secure Digital)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これに限定されない。また、コンピュータ読み取り可能な記憶媒体922は、フラッシュメモリベースのSSD(Solid-State Drives)、エンタープライズフラッシュドライブ、ソリッドステートROMなど、不揮発性メモリに基づくSSD(Solid-State Drives)と、ソリッドステートRAM、動的RAM、静的RAM、DRAMベースのSSDなど、揮発性メモリに基づくSSDと、MRAM(Magnetoresistive RAM)SSDと、DRAMとフラッシュメモリとの組合せベースのSSDを使用するハイブリッドSSDとを含んでもよい。これらのディスクドライブおよびそれらの関連するコンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、およびその他のコンピュータシステム900用データの不揮発性ストレージを提供し得る。
【0136】
通信サブシステム924は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム924は、コンピュータシステム900からデータを受信し、コンピュータシステム900から他のシステムにデータを送信するためのインターフェイスとして機能する。たとえば、通信サブシステム924は、コンピュータシステム900がインターネットを介して1つ以上のデバイスに接続することを可能にし得る。いくつかの実施の形態では、通信サブシステム924は、(たとえば、携帯電話技術、3G、4G、もしくはEDGE(Enhanced Data Rates For Global Evolution)などの次世代データネットワークテクノロジー、WiFi(IEEE802.28ファミリー標準規格)、他の移動体通信技術、またはそれらの任意の組合せを使用する)ワイヤレス音声ネットワークもしくは/またはデータネットワークにアクセスするためのRF(Radio Frequency)トランシーバコンポーネント、GPS(Global Positioning System)レシーバコンポーネント、および/または他の構成要素を含み得る。いくつかの実施の形態では、通信サブシステム924は、ワイヤレスインターフェイスに加えて、またはワイヤレスインターフェイスの代わりに、有線ネットワーク接続性(たとえば、Ethernet)を提供できる。
【0137】
いくつかの実施の形態では、通信サブシステム924は、コンピュータシステム900を利用し得る1人以上のユーザに代わって、構造化データフィードおよび/または非構造化データフィード926、イベントストリーム928、イベント更新930などの形で入力通信文を受信し得る。
【0138】
一例として、通信サブシステム924は、Twitter(登録商標)フィード、Facebook(登録商標)の更新、RSS(Rich Site Summary)フィードなどのwebフィード、および/もしくは1つ以上のサードパーティ情報ソースからのリアルタイム更新など、ソーシャルネットワークならびに/または他のコミュニケーションサービスのユーザからデータフィード926をリアルタイムで受信するように構成され得る。
【0139】
また、これに加えて、通信サブシステム924は、連続したデータストリームの形でデータを受信するように構成されてもよく、連続したデータストリームは、本質的にはっきりとした終端がない、連続または無限の、リアルタイムイベントおよび/またはイベント更新930のイベントストリーム928を含んでもよい。連続データを生成するアプリケーションとして、たとえば、センサーデータアプリケーション、チッカー、ネットワークパフォーマンス測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通量監視などが挙げられ得る。
【0140】
また、通信サブシステム924は、コンピュータシステム900に連結された1つ以上のストリーミングデータソースコンピュータと通信中であり得る1つ以上のデータベースに、構造化データフィードおよび/または非構造化データフィード926、イベントストリーム928、イベント更新930などを出力するように構成され得る。
【0141】
コンピュータシステム900は、手のひらサイズのポータブルデバイス(たとえば、IPhone(登録商標)携帯電話、IPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバーラック、またはその他のデータ処理システムを含む、様々な種類のうちの1つであり得る。
【0142】
変わり続けるというコンピュータおよびネットワークの性質のため、図に示すコンピュータシステム900の説明は、具体例にすぎない。図に示すシステムよりも多いまたは少ない数の構成要素を有する多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアが使用されてもよく、および/または、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、もしくはそれらの組合せで特定の要素が実現され得る。さらに、ネットワーク入出力装置など、他のコンピューティングデバイスへの接続が採用され得る。本明細書に記載の開示および教示に基づいて、当業者であれば、様々な実施の形態を実現するための他のやり方および/または方法が分かるであろう。
【0143】
具体的な実施の形態を説明したが、様々な変更例、代替例、代替的な構成、および均等物も本開示の範囲内に包含される。実施の形態は、ある特定のデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作することができる。これに加えて、特定の一続きのトランザクションおよびステップを使用して実施の形態を説明したが、本開示の範囲は、記載の一続きのトランザクションおよびステップに限られないことは、当業者に明らかであるはずである。上述の実施の形態の様々な特徴および態様は、個々に、または共同で使用され得る。
【0144】
さらに、ハードウェアとソフトウェアとの特定の組合せを用いて実施の形態を説明したが、ハードウェアとソフトウェアとの他の組合せも、本開示の範囲内であることを認識されたい。実施の形態は、ハードウェアのみ、もしくは、ソフトウェアのみで実現されてもよく、またはそれらの組合せを用いて実現され得る。本明細書に記載の様々なプロセスは、同じプロセッサまたは任意の組合せのそれぞれ異なるプロセッサ上で実現できる。よって、コンポーネントまたはモジュールが特定の動作を実行するように構成されると説明されている箇所では、このような構成は、たとえば、この動作を実行するように電子回路を設計することによって、この動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組合せによって達成できる。プロセスは、プロセス間通信のための従来技術を含む、いろいろな技術を使用して通信できるが、これに限定されず、それぞれ異なるペアプロセスは、異なる技術を使用してもよく、プロセスの同じペアは、異なる技術を別々のタイミングで使用し得る。
【0145】
明細書および図面は、厳密ではなく一例にすぎないと適宜みなされるべきである。しかしながら、添付の特許請求の範囲に記載された広義の趣旨および範囲から逸脱することなく、追加したり、減らしたり、削除したり、他の変更ならびに変形をそれらに対して行ってもよいことは明白であろう。したがって、具体的な本開示の実施の形態を説明したが、これらは限定ではない。様々な変更例および均等物も、添付の特許請求の範囲に含まれる。
【0146】
開示した実施の形態を説明する文脈(特に、添付の特許請求の範囲での文脈)における「a」、「an」および「the」という用語、ならびに同様の指示対象の用語の使用は、矛盾のない限り、単数および複数の両方を含むと解釈されるべきである。「comprising」、「having」、「including」、および「containing」という用語は、特に記されていない限り、非限定的な用語であると解釈されるべきである(すなわち、「including,but not limited to(これらを含むが、これらに限定されない)」ことを意味する)。「connected」という用語は、何かが介在している場合であっても、一部または全体が含まれている、取り付けられている、つなぎ合わされていると解釈されるべきである。本明細書において値を範囲で記載していることは、本明細書に特に示されていない限り、その範囲内の個別の各値を個々に参照することを省く手段に過ぎず、個別の各値は、個々に記載されているかの如く明細書に含まれる。本明細書に記載の方法は、すべて、矛盾のない限り、任意の適切な順序で実行できる。本明細書に設けた如何なる例、または例示的な言い回し(たとえば、「such as」)は、実施の形態をより鮮明にするために過ぎず、特にクレームされていない限り、本開示の範囲を限定しない。本明細書におけるすべての言い回しは、クレームされていない要素が本開示を実施するために必須な要素であることを示す言い回しである、と解釈されるべきでない。
【0147】
「X、Y、またはZのうち少なくとも1つ」というフレーズなど、選言的な言い回しは、特に具体的に明示されていない限り、項目や用語などが、X、Y、もしくはZのいずれか、または任意のそれらの組合せ(たとえば、X、Y、および/またはZ)であり得ることを提示するために一般的に使われる範囲内の言い回しであると理解されたい。よって、このような選言的な言い回しは、通常、Xのうち少なくとも1つ、Yのうち少なくとも1つ、またはZのうち少なくとも1つを特定の実施の形態が提示する必要があると、意味する意図はなく、そのように提示する必要はない。
【0148】
本開示を実施するために最良であると知られている実施の形態を含む本開示の好ましい実施の形態について、本明細書において説明している。当業者には、上記の説明を読むと、これらの好ましい実施の形態の変形例が明らかになるであろう。当業者であれば、このような変形例を適宜用いることができるはずであり、本開示は、本明細書に具体的に説明した以外の方法で実施され得る。したがって、本開示は、適用法によって認められている本明細書に添付の特許請求の範囲に記載の主題の変更例および均等物のすべてを含む。また、それらの想定される変形例における上述した要素の任意の組合せも、本明細書に特に示されていない限り、本開示に含まれる。
【0149】
本明細書において引用する刊行物、特許出願文書、および特許文書を含むすべての参考文献は、各参考文献が個々に具体的に引用により本明細書に援用されると示されてその全体が本明細書に記載された場合と同程度に引用により本明細書に援用する。
【0150】
上記の明細書において、本開示の態様について、その具体的な実施の形態を参照しながら説明したが、当業者であれば本開示がこれに限定されないことが分かるだろう。上述した開示のさまざまな特徴および態様は、個々または共同で用いられ得る。さらに、実施の形態は、本明細書のより広義の趣旨および範囲から逸脱することなく、本明細書において記載した環境およびアプリケーションの数よりも多い任意の数の環境およびアプリケーションにおいて利用され得る。したがって、明細書および添付の図面は、限定ではなく例示とみなされるべきである。
【国際調査報告】