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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許7539408アウトライアアクションに関するクラウドユーザの行動異常の検出
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-15
(45)【発行日】2024-08-23
(54)【発明の名称】アウトライアアクションに関するクラウドユーザの行動異常の検出
(51)【国際特許分類】
   G06F 21/55 20130101AFI20240816BHJP
【FI】
G06F21/55 320
【請求項の数】 20
(21)【出願番号】P 2021561804
(86)(22)【出願日】2020-04-14
(65)【公表番号】
(43)【公表日】2022-06-23
(86)【国際出願番号】 US2020028108
(87)【国際公開番号】W WO2020214587
(87)【国際公開日】2020-10-22
【審査請求日】2023-04-06
(31)【優先権主張番号】62/835,980
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/835,983
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/835,993
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/750,874
(32)【優先日】2020-01-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】シュ,ブライアン・エイチ
(72)【発明者】
【氏名】フォン,チャオ
【審査官】上島 拓也
(56)【参考文献】
【文献】米国特許出願公開第2018/0114016(US,A1)
【文献】特開2018-081655(JP,A)
【文献】米国特許第06671811(US,B1)
【文献】米国特許出願公開第2018/0248895(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
クラウド環境における異常なユーザ行動を検出する方法であって、
クラウド環境において現在の時間間隔中に取られたアクションのカウントを受取るステップと、
ピアグループにわたって取られたアクションについての前のカウントの履歴にアクセスし、前記ピアグループにわたる前記アクションの前のカウントの前記履歴についてのスライディング窓に基づいて、前記アクションの前記前のカウントの統計的特徴付けを生成するステップと、
前記現在の時間間隔中に取られた前記アクションの前記カウントが、前記ピアグループにわたって取られた前記アクションの前記前のカウントの前記統計的特徴付けよりも閾値量を超える分だけ大きいかどうかに関する第1の判断を実行するステップと、
スケールファクタを、アクションカウントのグローバル平均に対するアクションカウントのローカル平均の比として算出するステップと、
前記アクションの前記カウントが、前記アクションについての前記スケールファクタを乗じた前記アクションカウントのグローバル平均よりも大きいかどうかに関する第2の判断を実行するステップと、
前記第1の判断および前記第2の判断に基づいて前記アクションがアウトライアを表わすことを判断するステップと、
前記アクションがアウトライアを表わすという判断に基づいてアラートを生成するステップとを含む、方法。
【請求項2】
前記現在の時間間隔中に取られる前記アクションの前記カウントは、単一のユーザによって実行される単一のアクションタイプのカウントを含む、請求項1に記載の方法。
【請求項3】
前記現在の時間間隔中に取られる前記アクションの前記カウントは、単一のリソースに対して実行される単一のアクションタイプのカウントを含む、請求項1または2に記載の方法。
【請求項4】
前記現在の時間間隔中に記録されたアクションログから、単一のユーザにより、または単一のリソース上で、複数のアクションを集計することによって、前記現在の時間間隔中に取られた前記アクションの前記カウントを生成するステップをさらに含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記閾値量は、前記アクションが前記ピアグループにわたって取られた場合、前記前の時間の前記統計的特徴付けを上回る予め定められた数の標準偏差を含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記第1の判断を実行するステップは、
前記アクションの前記カウントおよび前記アクションのタイプをニューラルネットワークに提供するステップと、
前記アクションがアウトライアを表わすかどうかを示す出力を前記ニューラルネットワークから受取るステップとを含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記ニューラルネットワークは、前記アクションの前記カウント、前記アクションの前記タイプ、および前記アラートに対する応答を用いてトレーニングされる、請求項6に記載の方法。
【請求項8】
1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに動作を実行させる命令を含むコンピュータプログラムであって、前記動作は、
クラウド環境において現在の時間間隔中に取られたアクションのカウントを受取ることと、
ピアグループにわたって取られたアクションについての前のカウントの履歴にアクセスし、前記ピアグループにわたる前記アクションの前のカウントの前記履歴についてのスライディング窓に基づいて、前記アクションの前記前のカウントの統計的特徴付けを生成することと、
前記現在の時間間隔中に取られた前記アクションの前記カウントが、前記ピアグループにわたって取られた前記アクションの前記前のカウントの前記統計的特徴付けよりも閾値量を超える分だけ大きいかどうかに関する第1の判断を実行することと、
スケールファクタを、アクションカウントのグローバル平均に対するアクションカウントのローカル平均の比として算出することと、
前記アクションの前記カウントが、前記アクションについての前記スケールファクタを乗じた前記アクションカウントのグローバル平均よりも大きいかどうかに関する第2の判断を実行することと、
前記第1の判断および前記第2の判断に基づいて前記アクションがアウトライアを表わすことを判断することと、
前記アクションがアウトライアを表わすという判断に基づいてアラートを生成することとを含む、コンピュータプログラム。
【請求項9】
前記動作はさらに、
前記クラウド環境における複数の前の時間間隔中に取られたアクションを表わす第1のベクトルを算出することと、
前記第1のベクトルと、現在の時間間隔中に取られたアクションのカウントを含む第2のベクトルとの間の類似度を算出することとを含み、前記第2のベクトルは前記アクションの前記カウントも含み、前記動作はさらに、
1つ以上の異常アクションが発生したかどうかを判断するために、前記類似度をベースライン閾値と比較することと、
前記1つ以上の異常アクションが前記クラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成することとを含む、請求項8に記載のコンピュータプログラム。
【請求項10】
前記類似度はコサイン類似度を用いて算出される、請求項9に記載のコンピュータプログラム。
【請求項11】
前記第1のベクトルにおける各エントリは、前記複数の前の時間間隔中の平均イベントスコアを含む、請求項9または10に記載のコンピュータプログラム。
【請求項12】
前記複数の前の時間間隔の各々は1日を含む、請求項9~11のいずれか1項に記載のコンピュータプログラム。
【請求項13】
前記複数の前の時間間隔は複数の日のスライディング窓を含み、前記複数の日のスライディング窓は、各時間間隔の後に、前記現在の時間間隔を前記複数の日のスライディング窓に追加し、前記複数の日のスライディング窓から最も古い時間間隔を除去する、請求項9~12のいずれか1項に記載のコンピュータプログラム。
【請求項14】
前記第1のベクトルは、前記複数の前の時間間隔の各々に関するイベントカウントのヒストグラムを格納することによって、前記複数の前の時間間隔中に取られたアクションを表わす、請求項9~13のいずれか1項に記載のコンピュータプログラム。
【請求項15】
システムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに動作を実行させる命令を含む1つ以上のメモリデバイスとを含み、前記動作は、
クラウド環境において現在の時間間隔中に取られたアクションのカウントを受取ることと、
ピアグループにわたって取られたアクションについての前のカウントの履歴にアクセスし、前記ピアグループにわたる前記アクションの前のカウントの前記履歴についてのスライディング窓に基づいて、前記アクションの前記前のカウントの統計的特徴付けを生成することと、
前記現在の時間間隔中に取られた前記アクションの前記カウントが、前記ピアグループにわたって取られた前記アクションについての前記前のカウントの前記統計的特徴付けよりも閾値量を超える分だけ大きいかどうかに関する第1の判断を実行することと、
スケールファクタを、アクションカウントのグローバル平均に対するアクションカウントのローカル平均の比として算出することと、
前記アクションの前記カウントが、前記アクションについての前記スケールファクタを乗じた前記アクションカウントのグローバル平均よりも大きいかどうかに関する第2の判断を実行することと、
前記第1の判断および前記第2の判断に基づいて前記アクションがアウトライアを表わすことを判断することと、
前記アクションがアウトライアを表わすという判断に基づいてアラートを生成することとを含む、システム。
【請求項16】
前記アクションがアウトライアを表わすかどうかを判断することは、
前記スケールファクタが前記アクションについての既存のスケールファクタよりも大きい場合、前記既存のスケールファクタを置換することを含む、請求項1に記載のシステム。
【請求項17】
前記アクションは、特定のユーザによって送信されるいくつかの電子メールを含む、請求項15または16に記載のシステム。
【請求項18】
前記アクションは、特定のユーザによって作成されるいくつかのフォルダを含む、請求項15~17のいずれか1項に記載のシステム。
【請求項19】
前記動作はさらに、
前記クラウド環境における複数の前の時間間隔中に取られたアクションを表わす第1のベクトルを算出することと、
前記第1のベクトルと、現在の時間間隔中に取られたアクションのカウントを含む第2のベクトルとの間の類似度を算出することとを含み、前記第2のベクトルは前記アクションの前記カウントも含み、前記動作はさらに、
1つ以上の異常アクションが発生したかどうかを判断するために、前記類似度をベースライン閾値と比較することと、
前記1つ以上の異常アクションが前記クラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成することとを含む、請求項15~18のいずれか1項に記載のシステム。
【請求項20】
前記第1の判断を実行することは、
前記アクションの前記カウントおよび前記アクションのタイプをニューラルネットワークに提供することと、
前記アクションがアウトライアを表わすかどうかを示す出力を前記ニューラルネットワークから受取ることとを含む、請求項15~19のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、各々が引用により本明細書中に援用されている以下の米国仮出願の利益を主張するものである。
【0002】
・2019年4月18日に出願され「クラウドユーザの行動異常の検出(DETECTING BEHAVIOR ANOMALIES OF CLOUD USERS)」と題された米国仮出願第62/835,980号、
・2019年4月18日に出願され「人およびデジタルエンティティについてのエントロピーベースの分類(ENTROPY-BASED CLASSIFICATION OF HUMAN AND DIGITAL ENTITIES)」と題された米国仮出願第62/835,993号、ならびに、
・2019年4月18日に出願され「アウトライアアクションに関するクラウドユーザの行動異常の検出(DETECTING BEHAVIOR ANOMALIES OF CLOUD USERS FOR OUTLIER ACTIONS)」と題された米国仮出願第62/835,983号。
【0003】
本願はまた、引用により本明細書中に援用されている以下の同一出願人による米国非仮出願に対する優先権を主張する。
【0004】
・2020年1月23日に出願され「アウトライアアクションに関するクラウドユーザの行動異常の検出(DETECTING BEHAVIOR ANOMALIES OF CLOUD USERS FOR OUTLIER ACTIONS)」と題された米国非仮出願第16/750,852号。
【0005】
本願はまた、各々が引用により本明細書中に援用されている以下の同一出願人による米国非仮出願に関するものである。
【0006】
・2020年1月23日に出願され「クラウドユーザの行動異常の検出(DETECTING BEHAVIOR ANOMALIES OF CLOUD USER)」と題された米国非仮出願第16/750,852号、ならびに、
・2020年1月23日に出願され「人およびデジタルエンティティについてのエントロピーベースの分類(ENTROPY-BASED CLASSIFICATION OF HUMAN AND DIGITAL ENTITIES)」と題された米国非仮出願第16/750,863号。
【背景技術】
【0007】
背景
クラウドセキュリティは、クラウドコンピューティングに関連付けられた顧客データ、アプリケーション、およびインフラストラクチャの保護を要する。クラウド環境に関するセキュリティの多くの局面は、オンプレミスのハードウェアおよびソフトウェアに関する局面と同様である。これは、パブリッククラウド、プライベートクラウド、および/またはハイブリッドクラウドにも当てはまる。クラウド環境において特に関心をもたれているセキュリティ問題は、不正なデータ曝露および漏洩、脆弱なアクセス制御、攻撃され易さ、利用可能性の阻害、サービス妨害攻撃等を含む。しかしながら、クラウドセキュリティシステムは、物理サーバおよびストレージデバイスを管理する代わりに、クラウドリソースに出入りする情報の流れを監視および保護するためにソフトウェアベースのセキュリティツールに依拠することが多い。したがって、クラウドコンピューティングセキュリティIPは、ポリシー、技術、アプリケーション、サービス、データ、および他の関連付けられたクラウドコンピューティングインフラストラクチャの広範囲のセットを含み得る。
【0008】
クラウドコンピューティングについてのセキュリティ問題は、(1)アプリケーションをホストするとともにクラウド上にデータを格納する顧客が直面するセキュリティ問題、および、(2)クラウドプロバイダ自体が直面するセキュリティ問題といった2つの広範なカテゴリに大まかに分離することができる。クラウドの顧客のセキュリティ問題は、ユーザ特権の段階的拡大を防止することを目的とし得る。このユーザ特権の段階的拡大とは、或るクラウドユーザに1セットの限られた許可しか割当てられていないにも関わらず、このクラウドユーザがセキュリティ保護されていないAPIを使用したり、システムおよび/またはアプリケーション脆弱性を悪用したり、ガードの弱い個人情報を利用したり、信用証明アクセス管理に潜入したりするなどの悪意ある目的で許可の範囲を超えて自身のアクティビティを段階的に拡充していく状況を説明するものである。
【発明の概要】
【課題を解決するための手段】
【0009】
概要
いくつかの実施形態では、クラウド環境における異常なユーザ行動を検出する方法は、クラウド環境において現在の時間間隔中に取られたアクションのカウントを受取るステップと、ピアグループにわたって当該アクションが取られた場合、当該アクションの当該カウントが、前の時間の統計的特徴付けよりも閾値量を超える分だけ大きいかどうかを判断するステップと、当該アクションがアウトライアを表わすかどうかを判断するステップと、当該アクションがアウトライアを表わすかどうかの判断に基づいてアラートを生成するステップとを含む。
【0010】
いくつかの実施形態では、非一時的なコンピュータ可読媒体は、1つ以上のプロセッサによって実行されると当該1つ以上のプロセッサに動作を実行させる命令を含み得る。当該動作は、クラウド環境において現在の時間間隔中に取られたアクションのカウントを受取る動作と、ピアグループにわたって当該アクションが取られた場合、当該アクションの当該カウントが、前の時間の統計的特徴付けよりも閾値量を超える分だけ大きいかどうかを判断する動作と、当該アクションがアウトライアを表わすかどうかを判断する動作と、当該アクションがアウトライアを表わすかどうかの判断に基づいてアラートを生成する動作とを含む。
【0011】
いくつかの実施形態では、システムは、1つ以上のプロセッサと、当該1つ以上のプロセッサによって実行されると当該1つ以上のプロセッサに動作を実行させる命令を含む1つ以上のメモリデバイスとを含み得る。当該動作は、クラウド環境において現在の時間間隔中に取られたアクションのカウントを受取る動作と、ピアグループにわたって当該アクションが取られた場合、当該アクションの当該カウントが、前の時間の統計的特徴付けよりも閾値量を超える分だけ大きいかどうかを判断する動作と、当該アクションがアウトライアを表わすかどうかを判断する動作と、当該アクションがアウトライアを表わすかどうかの判断に基づいてアラートを生成する動作とを含む。
【0012】
いずれの実施形態においても、以下の特徴のいずれかが限定なしに任意の組合わせで含まれ得るか、以下の特徴がいずれも限定無しに如何なる組合せでも含まれ得ないか、または、以下のすべての特徴が限定なしに任意の組合わせで含まれ得る。当該現在の時間間隔中に取られた当該アクションの当該カウントは、単一のユーザによって実行される単一のアクションタイプのカウントを含み得る。当該現在の時間間隔中に取られた当該アクションの当該カウントは、単一のリソースに対して実行される単一のアクションタイプのカウントを含み得る。当該方法/動作はまた、当該現在の時間間隔中に記録されたアクションログから、単一のユーザにより、または単一のリソース上で、複数のアクションを集計することによって、当該現在の時間間隔中に取られた当該アクションの当該カウントを生成するステップ/動作を含み得る。閾値量は、当該アクションが当該ピアグループにわたって実行された場合、当該前の時間の当該統計的特徴付けを上回る予め定められた数の標準偏差を含み得る。当該アクションの当該カウントが閾値量を超える分だけ大きいかどうかを判断するステップ/動作は、当該アクションの当該カウントおよび当該アクションのタイプをニューラルネットワークに提供するステップ/動作と、当該アクションがアウトライアを表わすかどうかを示す出力を当該ニューラルネットワークから受取るステップ/動作とを含み得る。当該ニューラルネットワークは、当該アクションの当該カウント、当該アクションの当該タイプ、および当該アラートに対する応答を用いてトレーニングされ得る。当該方法/動作はまた、当該クラウド環境における複数の前の時間間隔中に取られたアクションを表わす第1のベクトルを算出するステップ/動作と、当該第1のベクトルと、現在の時間間隔中に取られたアクションのカウントを含む第2のベクトルとの間の類似度を算出するステップ/動作とを含み得る。当該第2のベクトルは当該アクションの当該カウントも含み得る。当該方法/動作はさらに、1つ以上の異常アクションが発生したかどうかを判断するために、当該類似度をベースライン閾値と比較するステップ/動作と、当該1つ以上の異常アクションが当該クラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成するステップ/動作とを含み得る。当該類似度はコサイン類似度を用いて算出され得る。当該第1のベクトルにおける各エントリは、当該複数の前の時間間隔中の平均イベントスコアを含み得る。当該複数の前の時間間隔の各々は1日を含み得る。当該複数の前の時間間隔は複数の日のスライディング窓を含み得る。当該複数の日のスライディング窓は、各時間間隔の後に、当該現在の時間間隔を当該複数の日のスライディング窓に追加し得るととにもに当該複数の日のスライディング窓から最も古い時間間隔を除去し得る。当該第1のベクトルは、当該複数の前の時間間隔の各々に関するイベントカウントのヒストグラムを格納することによって、当該複数の前の時間間隔中に取られたアクションを表わし得る。当該アクションがアウトライアを表わすかどうかを判断するステップ/動作は、当該アクションの当該カウントが、当該アクションについてのスケールファクタを乗じたアクションカウントのグローバル平均よりも大きいかどうかに関する第2の判断を実行するステップ/動作を含み得る。当該アクションがアウトライアを表わすかどうかを判断するステップ/動作は、当該スケールファクタを、アクションカウントの当該グローバル平均に対するアクションカウントのローカル平均の比として算出するステップ/動作を含み得る。当該アクションがアウトライアを表わすかどうかを判断するステップ/動作は、当該スケールファクタが当該アクションについての既存のスケールファクタよりも大きい場合、当該既存のスケールファクタを置換するステップ/動作を含み得る。当該アクションは、特定のユーザによって送信されるいくつかの電子メールを含み得る。当該アクションは、特定のユーザによって作成されるいくつかのフォルダを含み得る。
【0013】
図面の簡単な説明
さまざまな実施形態の性質および利点は、明細書および添付の図面の残りの部分を参照することによってさらに理解され得る。添付の図面においては、いくつかの図全体を通じて同様の構成要素を指すために同様の参照番号が用いられている。場合によっては、複数の同様の構成要素のうちの1つを示すためにサブラベルが参照番号に関連付けられている。既存のサブラベルを指定せずに参照符号に言及する場合、そのような複数の同様の構成要素のすべてを指すことが意図されている。
【図面の簡単な説明】
【0014】
図1A】いくつかの実施形態に従った、いくつかの異なるクラウド顧客についてユーザの行動異常を識別するために用いられ得るクラウドアクセスセキュリティブローカ(Cloud Access Security Broker:CASB)を示す図である。
図1B】いくつかの実施形態に従った、サービスとしてのインフラストラクチャ(Infrastructure as a Service:IaaS)システムにおいてCASBを実現するための代替的なアーキテクチャを示す図である。
図1C】いくつかの実施形態に従った、CASBによって監視され得るさまざまな構成制御のうちのいくつかを示す図である。
図2】いくつかの実施形態に従った、データが特定のクラウド環境からCASBにどのように渡されるかを示す図である。
図3A】特定のユーザによって取られるアクションがCASBによって格納されて時間の経過とともに分析されるのを示す図である。
図3B】いくつかの実施形態に従った、イベントによってインクリメントされ得るヒストグラムメモリの例を示す図である。
図4】いくつかの実施形態に従った、現在の日と比較したアクティビティ窓の平均を示す図である。
図5A】いくつかの実施形態に従った、クラウド環境における異常なユーザ行動を検出する方法についてのフローチャートである。
図5B】いくつかの実施形態に従った、疑わしいイベントスコアを生成するためのフローチャートである。
図6A】いくつかの実施形態に従った、ユーザアクションを記述する2つのデータベクトルを示す図である。
図6B】いくつかの実施形態に従った、単一のオブジェクトに関するスライディングアクティビティ窓と比較して個々のアウトライアを検出するための方法を示す図である。
図7A】いくつかの実施形態に従った、より大きいピアグループに基づいて閾値を調整するために使用され得る式を示す図である。
図7B】いくつかの実施形態に従った、アウトライアを検出するための方法のフローチャートである。
図8】実施形態のいくつかを実現するための分散システムを示す簡略ブロック図である。
図9】一実施形態のシステムのコンポーネントによって提供されるサービスがクラウドサービスとして提供され得るシステム環境のコンポーネントを示す簡略ブロック図である。
図10】さまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0015】
詳細な説明
本明細書では、コサイン類似度スコアをサイバーセキュリティドメインの専門知識と組合わせることによってクラウドユーザの行動異常を検出するための実施形態を説明する。この技術は、プロダクションクラウド環境においてテストされるように、ラベル付けされたデータセットなしでもクラウドユーザの行動異常を検出することができる。この教師なし機械学習アプローチでは、正常および/または異常な行動またはアクションを事前に知っておく必要はない。このアプローチはまた、特権レベル、ジョブ機能、またはアクション許可などのユーザ情報を必要としない。このアプローチは、(1)ユーザ特権の段階的拡大行動を含むクラウドユーザの異常アクションと、(2)さまざまなクラウドアプリケーションまたはサービスにおけるすべてのクラウドテナントにわたる過度の特権アクションとの検出に成功するように設計されている。以下でより詳細に説明するように、ピアグループ分析を用いて行動異常が識別され得る。
【0016】
図1Aは、いくつかの実施形態に従った、いくつかの異なるクラウド顧客についてユーザの行動異常を識別するために用いられ得るクラウドアクセスセキュリティブローカ(CASB)100を示す。CASB100は、クラウドスタック全体に可視性をもたらし得るとともにセキュリティ自動化ツールとして機能し得るクラウドサービスである。CASB100は、複数の異なるクラウド環境にわたってアクティビティを同時にリアルタイムで連続的に監視できるようにするものであり得る。これは、クラウドアプリケーションにわたる不正行為または違反についての行動異常および行動パターンを識別する構成およびトランザクションを監視することを含み得る。セキュリティポリシーのセットを用いることで、クラウド環境における機密コンテンツに対する不所望なアクションを発見して防止することができる。これらのセキュリティポリシーは、検出されたセキュリティの脅威に応じて、アドミニストレータが、リアルタイムでのコンテンツの監査、警告、暗号化、および/または隔離を実行するようにCASB100を構成することを可能にする。脅威を検出することに加えて、CASB100はまた、予測されたアクティビティの傾向と共に現在のアクティビティを示すダッシュボードを設けることによって、セキュリティ脅威の発生前にこれらセキュリティ脅威を予測および視覚化するように構成されてもよい。異常がCASB100によって検出されると、システムは、既知のセキュリティ脅威を隔離し、分析し、かつ封じ込めるために対策を講じるとともに科学捜査を実行することができる。
【0017】
CASB100は複数の異なるクラウド環境を監視し得る。たとえば、CASB100は、計算インスタンス、ネットワーキング、データストレージ、データベース、クラウド相互接続、エッジサービス、ロードバランシング、ガバナンスポリシー、データストリーミング、リソース管理、および他のクラウドベースのサービスを提供することができるオラクルクラウドインフラストラクチャ(登録商標)(Oracle cloud Infrastructure:OCI)102とインターフェイスを取り得る。加えて、CASB100はまた、オラクル社のヒューマンキャピタルマネジメント(登録商標)(Human Capital Management:HCI)104一式、アマゾンウェブサービス(登録商標)(Amazon Web Services:AWS)108、マイクロソフトオフィス(登録商標)365(Microsoft Office 365:MSO365)106などの他のクラウド環境と対話し得る。
【0018】
これらのさまざまなクラウド環境を監視するために、CASB100は、何千もの個々のユーザについてのリアルタイムデータ監視ストリームを受取るように構成され得る。CASB100によって監視されているQ個のさまざまなクラウド環境があり、Q個の環境の各々がN個のテナントを含むと仮定すると、これにより、Q×N個のテナントが同時に監視され得る。さらに、各テナントが少なくともM人のユーザを含む場合、CASB100は、少なくともQ×N×M人のユーザを同時に監視し得る。
【0019】
図1Bは、いくつかの実施形態に従った、サービスとしてのインフラストラクチャ(IaaS)システムにおいてCASB100を実現するための代替的なアーキテクチャを示す。図1Aとは対照的に、このアーキテクチャは、CASB100を特定のクラウドサービスのインフラストラクチャ内に配置する。CASB100をインフラストラクチャの一部とすると、CASB100は、インフラストラクチャ内で起こる特定のタイプのアクションに対してより多くアクセスし得る。
【0020】
たとえば、図1Aのマルチクラウド環境においては、CASB100は、さまざまなクラウド環境の各々においてアプリケーションレベルで発生したイベントを監視した。図1Bのインフラストラクチャベースのアーキテクチャでは、CASB100は、代わりに、リソースレベルで発生するイベントを受取り得る。たとえば、CASB100は、インフラストラクチャ内の特定の計算オブジェクト130に関連して発生するイベントを受取り得る。CASB100はまた、インフラストラクチャ内の特定のネットワークオブジェクト132との関連で発生するイベントを受取り得る。加えて、CASB100は、アーキテクチャ内の特定のストレージオブジェクト134に関連するイベントを受取り得る。このアーキテクチャは、リソースが特定のユーザによってプロビジョニングされるか初期化されるか用いられるかまたは対話されるときに発生するイベントをCASB100が監視することを可能にする。当該アーキテクチャは、加えて、CASB100が、インフラストラクチャ内のユーザ、リソース、アプリケーション、オブジェクト、および/または他の任意のエンティティに基づいてイベントを監視することを可能にする。したがって、ユーザごとに監視されるイベントは、本開示では、単に例として用いられるに過ぎない。ユーザごとにイベントを監視するための以下に記載の技術はいずれも、リソースごとに監視され得る。たとえば、イベントは、特定の計算オブジェクトについて監視されてもよい。計算オブジェクトが悪意ある異常を示すイベントスコアを生成すると、計算リソースが停止されてもよく、または、リソースに対する認識される脅威を最小限にするために他の改善アクションが取られてもよい。以下に示される表1は、CASB100によって監視され得るクラウドインフラストラクチャ制御のいくつかを列挙している。
【0021】
【表1-1】

【0022】
【表1-2】

【0023】
【表1-3】

【0024】
【表1-4】

【0025】
【表1-5】

【0026】
いくつかの実施形態では、図1Bにおけるアーキテクチャはまた、イベントのリソース-構成レベルをカバーし得る。たとえば、何らかのオブジェクトまたはリソースがアーキテクチャに格納され得るバケットインスタンスが生成され得る。或るアクション(たとえば、初期化、使用、削除など)がバケット内のそのオブジェクトまたはリソースに対して取られると、以下でより詳細に説明するように、そのイベントに関して既知のベースライン(たとえば、業界ベースライン、ユーザごとのベースライン、テナントごとのベースラインなど)と比較することができるイベントが生成され得る。これによっても、CASB100が、個々のリソースの状態を監視することが可能となる。たとえば、或るバケットオブジェクトが作成され、所定の時間窓(たとえば、90日)の間にわたって特定の状態に留まる場合、状態自体が監視されて所定のベースラインと比較され得る。加えて、状態変化は、以下で説明するように、監視されてベースラインおよび閾値と比較され得る。
【0027】
図1Cは、いくつかの実施形態に従った、CASB100によって監視され得るさまざまな構成制御160のいくつかを示す。構成制御160は、図1Cに示す制御条件が満たされたときにイベントを発生させ得る構成および状態または特定のリソースを監視する。たとえば、次の45日以内にロードバランサSSL証明が満了すると、アラートが生成されてもよい。別の例では、所定の期限満了間隔内でKMSキーを回転させていなかった場合、アラートが生成される可能性がある。別の例では、アドミニストレータのグループが所定の閾値よりも多くのメンバーを含む場合、アラートが生成される可能性がある。図1Cに示されるこれらの構成の各々は、図示されるようにアラートを生成するために監視および使用されてもよい。
【0028】
図2は、いくつかの実施形態に従って、データが特定のクラウド環境からCASBにどのように渡されるかを示す図である。この例では、OCI環境102などの特定の環境が、分析のためにアクティブテーブル202をCASB100に定期的に渡し得る。OCI環境102は、図1Aに示されるようにCASB100によって同時に監視される多くのクラウド環境のうちの1つであり得る。代替的または付加的には、OCI環境102は、図1Bに示されるように、CASB100と同じIaaSアーキテクチャの一部であり得る。アクティビティテーブル202は、特定のユーザによって取られたアクションを記述する複数のアクティビティベクトルまたはデータ行を含み得る。各行または各ベクトルは、テナントID、ユーザID、時間、および/または取られたアクションを、特定のアクションに関連する他のデータとともに含み得る。たとえば、アクティビティテーブル202は、「電子メール送信」アクションのための第1の行204を含む。このアクションは12:34:56PMに行なわれ、テナント#10002のクラウド環境においてユーザ#12442によって実行された。アクティビティテーブル202における各行は単一のアクションを表わし得るので、アクティビティテーブル202は、各ユーザごとにアクションのすべてを記述するために、時間窓にわたって何千ものエントリを含み得る。
【0029】
データテーブル202は、さまざまな間隔で環境からCASB100に定期的に送信されてもよい。たとえば、いくつかの実施形態は、1時間などの所定の時間間隔中に環境102においてアクションのリストを格納し得る。所定の時間間隔の満了時に、アクションのリストは、毎時ごとに分析するべきアクションの新しいバッチをCASB100が受取るように、アクティビティテーブル202として一緒にCASB100に送信され得る。いくつかの実施形態は、時間の経過とともに連続的にアクティビティテーブル202内の行をストリームし得る。これらの実施形態では、CASB100は、アクティビティテーブル202内の行が環境102において生成されると、アクティブテーブル202内のこれらの行をリアルタイムで連続的に受取り得る。Cassandra(登録商標)またはKafka(登録商標)などのソフトウェアアプリケーションを用いて、これらのデータをCASB100にストリームしてもよい。いくつかの実施形態は、通常の動作条件中に、行のバッチをCASB100に定期的に送信し得るとともに、CASB100におけるデータの分析結果に基づいて送信が行なわれる頻度を動的に調整し得る。たとえば、アクティビティテーブル202は、ユーザのうち1人に関して深刻な行動異常が検出されるまで、1時間に1回送信されてもよい。異常を検出した後、アクティビティテーブル202の送信の時間間隔をたとえば50%だけ短くして、30分毎に送信してもよい。別の例では、異常が検出されなかった所定の時間間隔の後、1時間というデフォルトの時間間隔を長くしてもよい。いくつかの実施形態は、予め定められた数の行が環境102に蓄積されると、アクティビティテーブル202内の行を送信し得る。たとえば、データ行は、100個のこのような行が蓄積されるまで環境102に格納されていてもよい。このとき、アクティビティテーブル202においてこれらの100の行がCASB100に送信され得る。
【0030】
アクティビティテーブル202内のデータがラベル付けされる必要がないことに留意されたい。言い換えれば、「正常」または「異常」とラベル付けされる必要のある行は1つもない。むしろ、CASB100は、アクションが許可されるべきか否かについての特徴付けなしに、アクションが取られたという表示を受取るだけである。さらに、CASB100は、どのアクションタイプが許可されるべきか、どの特権レベルがそれらの環境において有効であるのか、または異常がどのように検出されるべきかに関して基準またはガイダンスの形式でクラウド環境のいずれからも情報を受取る必要はない。クラウド環境は、単にアクションのリストをCASB100に送信し、次いで、CASB100に依拠して、如何なる情報も追加することなく異常を識別する。このプロセスは、世界中で監視される可能性のあるテナントおよびユーザが多数存在することで複雑になる。
【0031】
本明細書で説明する実施形態は、すべてのクラウドユーザの行動異常を検出するとともに行動を異常と分類するようにユーザピアグループを策定することによって、これらの課題を克服する。この新しい方法では、クラウドユーザの行動のコサイン類似度スコアが、いくつかのアクティビティに関して内部で生成されたスコアリングシステムと組合わされ得る。これらの方法は、ラベル付けされた入力またはトレーニングデータセットをいずれも必要としないので、教師なし機械学習方法として説明されてもよい。これは、コサイン類似度スコアをさまざまなベースラインおよび閾値を表わすモデルへの入力として用いて各ユーザ、イベント、イベントのベクトルなどについての「異常」および/または「正常」出力を生成する機械学習アルゴリズムとして説明され得る。
【0032】
ピアグループ分析は、ユーザの個人的特徴および/またはデジタル特徴によってユーザをカテゴリ化するプロセスを含む。このクラウドセキュリティ環境では、これは、アクティブディレクトリ属性(すなわち、タイトル、ジョブ機能、ビジネスユニット、マネージャ等)、所与のクラウドアプリケーション/サービスにおいてユーザに割当てられた許可のタイプ、彼/彼女の地理的位置、会社に対する彼/彼女の関係(契約者、従業員など)、人対ボットの関係などを含む。ユーザとピアグループとの間の典型的な関係は1:Nである(すなわち、1人の人は、不確定な量のピアグループに関連付けることができる)。以下で説明するように、閾値およびベースラインを生成するためにさまざまなピアグループが割当てられ得る。上述のこれらのピアグループのいずれかおよび全ては、このようなベースラインおよび閾値を算出するのに用いられ得る。
【0033】
特権の段階的拡大のプロセスは、限定された許可のセットが正当に割当てられているユーザが何らかの形で許可されており、悪意ある目的のために特権の段階的拡大を悪用することとして定義することができる。内部および外部の悪意ある人は、セキュリティ保護されていないAPI、システム/アプリケーション脆弱性、根拠の薄弱なアイデンティティ、信用証明アクセス管理、および/または悪意ある内部者を通じて特権の段階的拡大を利用することで何らかの予め計画された目的を達成し得る。内部の悪意ある人は、通常の信用証明を用いて特権の段階的拡大を利用するが、それらの信用証明によって可能となる許可を超えるアクションを実行する可能性がある。
【0034】
ピアグループ分析は、特定のユーザについてのインテリジェントな仮定を行うために履歴データセットを使用するいくつかの実施形態によって実行されるプロセスである。たとえば、システムは、ユーザを管理ユーザまたは非管理ユーザとしてカテゴリ化するための手段として、特定のユーザの事前のアクションを判断し得る。スコアテーブルは、それぞれのリソースアクションペアが相対的な特権によってランク付けされて、以下に説明されるように特権の段階的拡大に関連する機械学習およびデータ科学モデルについてのラベル付けされたデータセットとして格納された後、作成され得る。アクションは、特定のクラウドイベントを完了するのに必要な特権レベルをカテゴリ化するための手段として、クラウドアプリケーションおよび/またはサービスデフォルトIAM規格/ポリシーを用いることによって効果的にランク付けすることができる。たとえば、OCIでは、作成および/または編集ポリシーは、個人および/またはグループの両方に管理許可を動的に割当てるので、管理許可を必要とする可能性があるという基準が存在する。別の例では、追加設定なしの(out-of-the-box)許可により、AWSにおける固有のテナントルートアドミニストレータに対して排他的に何らかのアクションが提供され得る。
【0035】
CASB100は、上述のように、特定のユーザによって実行されたアクションのリストを受取り得る。次いで、CASB100は、ユーザごとにこれらのアクションの各々を格納して分析し得る。図3Aは、時間の経過とともにCASB100によって格納されて分析される、特定のユーザによって取られるアクションを示す。たとえば、図3に示されるアクションは、図2のユーザ#12442に関連付けられてもよい。第1の時間間隔は、第1の時間間隔中に取られるアクションのヒストグラム300のセットを生成するために用いられ得る。たとえば、第1の時間間隔は、各アクションのインスタンスすべてが各日ごとにまとめて集計されるように、1日であってもよい。ヒストグラム300におけるビンは別個のアクティビティを表わし得る。したがって、新しいアクティビティ記録が受取られると、そのアクティビティについてのメモリビンがインクリメントされ得る。新しい日が始まると、当該新しい日のヒストグラムについてのメモリ位置の新しい配列が割当てられ得るかまたはリセットされ得る。この場合、各メモリ位置は特定のユーザアクションについてのビンを表わしている。当該新しい日の間にアクションが受取られると、新しいメモリ位置がインクリメントされ得るが、前のメモリ位置は前の日のアクションの履歴記録として変更されないままであり得る。
【0036】
図3Aでは、各々の垂直列は、特定の日に取られたユーザアクションのヒストグラムを表わす。水平行の各々は、各日ごとのヒストグラム300におけるビンを表わす。たとえば、1日目にユーザ#12442は22個の電子メールを送信していたかもしれず、2日目にユーザ#12442は25個の電子メールを送信していたかもしれない。これらの値はヒストグラム300のビンに格納されるので、これらの電子メールが送信された特定の時刻が格納される必要がないことに留意されたい。代わりに、その日についてのアクションビンだけは、アクションが起こったことを示すためにインクリメントされる必要がある。他の実施形態では、1時間毎、2時間毎、6時間毎、12時間毎等のさまざまな時間間隔が用いられてもよい。加えて、いくつかの実施形態は、昼間の時間対夜中の時間、さらには平日対週末などについてさまざまなヒストグラムを用いてもよい。
【0037】
ヒストグラム300は、いくつかの異なる時間間隔に関するヒストグラムを含み得る。たとえば、いくつかのヒストグラム300は、90日間、120日間、30日間、45日間等のヒストグラムを含み得る。いくつかの実施形態は、現在の日308についてのヒストグラムと比較するために、いくつかの前の日のヒストグラムを選択する分析窓306を用い得る。いくつかの実施形態は、分析窓306内のすべての時間間隔ごとにヒストグラムを格納する必要はない。代わりに、これらの実施形態は、分析窓306内の時間間隔に関するヒストグラムを、時間間隔のすべてを表わす単一のヒストグラムに組合わせてもよい。たとえば、いくつかの実施形態は、現在の日308と比較するために、分析窓306内の時間間隔に関するヒストグラムの各ビンの値を平均化してもよい。
【0038】
たとえば、分析窓306は、現在の日308との比較に用いられる90日のスライディング窓を含み得る。分析窓306において90日にわたって取られたアクションは、前の90日を表わす単一の平均ヒストグラムを生成するためにまとめて平均化され得る。次の日に関しては、分析窓306において最も古い日のアクションカウントを差し引いて現在の日付308のアクションを加えることによって平均値を再算出することができる。分析窓306の長さは、14日、21日、30日、45日、60日、75日、90日、120日、6ヶ月、1年などの任意の日数を含み得る。長い分析窓はまた、少なくとも14日、少なくとも30日、少なくとも45日、少なくとも60日、少なくとも75日、少なくとも90日、14日と30日との間、30日と45日との間、45日と60日との間、6ヶ月と1年との間、少なくとも1年、1年と2年との間などの日数の範囲を含み得る。
【0039】
図3Bは、いくつかの実施形態に従った、イベントによってインクリメントされ得るヒストグラムメモリの例を示す。この例では、90日の分析窓は単なる例として用いられるに過ぎない。90日窓354は、90日窓354内の各時間間隔の各イベントごとにメモリ位置を含み得る。たとえば、各々の日は、各イベントに対応するメモリ位置を含み得る。
【0040】
現在の日における新しいイベントを記録するために、多数のさまざまな方法を用いて、来たるべきイベントを受取って処理し得る。いくつかの実施形態では、システムは、さまざまなユーザ、リソース、アプリケーションなどによってトリガされたイベントのリストを含むログ360を定期的に受取り得る。ログ360は、各イベントに関連付けられた特定のユーザ/リソースを識別するために解析され得る。次いで、関連付けられたユーザ/リソースについてのヒストグラムメモリが識別され得るともに、ログ360に記録される各イベントごとに、その日のそのイベントについてのメモリ位置に格納されたイベントカウンタがインクリメントされ得る。処理される各イベントと共にメモリ位置の値をインクリメントするために単純なインクリメント関数364が用いられてもよい。
【0041】
いくつかの実施形態では、システムは、イベントがシステムによって生成されるのに応じて受取られるリアルタイムイベントストリーム362を受取り得る。これは、特に上述した図1BのIaaSアーキテクチャにおいて用いられ得る。メモリ位置は、リソース、ユーザ、および/またはイベントタイプに関する特定のイベントストリームにサブスクライブしてもよい。新しいイベントが受取られると、既存の値をインクリメントするために、それらの新しいイベントを特定のメモリ位置に導くことができる。インクリメントされる値は、現在の日付358を表わすレジスタのセットであり得る。
【0042】
90日窓354が、各間隔の終わり(たとえば、各日ごとの終わり)に処理されて、現在の90日窓354についての平均が算出され得る。平均化関数366は、イベントタイプごとにヒストグラムメモリ内の日ごとのイベント合計を集計し得る。次いで、平均化関数366は、この集計を90日窓354の長さで割って、各イベントタイプごとに平均値356を生成し得る。次いで、平均値356を現在の日358についてのイベントカウントと比較して、イベントが処理されるのに応じてリアルタイムアラートを生成し得る。上述したように、いくつかの実施形態は、窓から外れた最終日352(たとえば、91日目)を差引いて、最新の日を現在の平均値356に加え得る。これにより、90日窓354において多数の日を集計する際にシステムによって実行される数学的演算が最小限にされ得る。
【0043】
後続の時間間隔に移動すると、たとえば次の暦日に移動すると、システムは、現在の日付358から90日窓354に値をシフトし得るとともに、現在の日付358についての値をリセットし得る。システムはまた、91日目352を差引くとともに90日窓354の長さで割った現在の日付358を加えることによって、前の90日窓についての平均値356をアップデートし得る。
【0044】
図4は、いくつかの実施形態に従った、現在の日308と比較したアクティビティ窓408の平均を示す。上述したように、アクティビティ窓408の平均は、各アクションタイプごとに毎日のヒストグラムの各々に関する時間ビンの各々における値を集計することによって算出され得る。次いで、この値を分析窓306の長さで割って、図4に示される平均値を生成し得る。次いで、アクティビティ窓408の平均を現在の日付308のアクションカウントと比較することによって異常を部分的に検出することができる。本明細書で用いられる場合、「アクション」および「イベント」という語は同義で用いられ得る。アクションは、ユーザによって、または特定のリソースに対して取られた特定のアクションを指し得るものであり、イベントは、それらのアクションについて生成された表示を表わし得る。しかしながら、本開示および特許請求の範囲はこれら2つの語を同義で用いる可能性もある。
【0045】
アクティビティ窓408の平均を現在の日付308のアクションと比較するために、さまざまな統計方法を実行することができる。いくつかの実施形態は、各エントリ間のユークリッド(Euclidean)距離を算出し得る。他の実施形態はハミング(Hamming)距離を算出し得る。図4の実施形態は、アクティビティ窓408および現在の日308の平均についてのヒストグラムをデータベクトルとして扱う。この例は、2つのベクトル402と404との間の多次元コサイン値をそれらの類似度の推定値として算出する。この算出は、2つのベクトルのドット積を算出することと、結果を2つのベクトルの大きさの積で割ることとを含み得る。第1のベクトルは、上述の分析窓の平均などの、複数の前の時間間隔中に取られたアクションを表わし得る。第2のベクトルは、現在の日の間など、現在の時間間隔中に、特定のユーザによって、特定のリソース上で、特定のアプリケーションを用いるなどして取られたアクションのカウントを含み得る。サンプル式406を図4に示す。2つのベクトルの類似度を算出するための擬似コードを以下に示す。
【0046】
【数1】
【0047】
2つのベクトル402と404との間の類似度の基準を算出することは、日ごとにユーザの行動の異常を特徴付けるのに用いることができる。別の言い方をすれば、現在の日にユーザによって取られたアクティビティが前の日に取られた平均アクティビティとは有意に異なっている場合、これは異常な行動を表わしている可能性がある。この特徴付けは、個々のアクションがユーザによって実行可能であるか否かを知ることなく行なわれてもよい。ユーザには、典型的には、本明細書では「特権レベル」と称される許可または特権のセットが与えられる。ユーザの特権レベルは、結果に関係なく特定のアクションを取ることを可能にする。しかしながら、「特権の段階的拡大」は、ユーザが、彼らの特権レベルによって許可されるアクションを超えるアクションを取ったときに起こる。しかしながら、CASB100は、各ユーザの特権レベルを認識しておらず、どのアクションが各特権レベルに関連付けられているかを認識していない。したがって、CASB100は、現在のユーザアクションと前のユーザアクションとの比較を用いて、ユーザが許可レベルの範囲外で何かを行なっていることを示し得るアクションを識別する。このことは、ユーザらが顧客についての特定のクラウド環境に捕らわれることなく時間の経過に応じて自身らの特権レベルの範囲を過度に超えて行動することはないという前提で機能する。CASB100は、大部分の内部顧客クラウド制御をトリガするのに十分なパターンになるかまたはトリガするのに十分なほど過剰になる前に、そのような行動を識別してフラグを立てることができる。結果は、第1のベクトルと第2のベクトルとの間の類似度として特徴付けられ得る。
【0048】
図5Aは、いくつかの実施形態に従った、クラウド環境における異常なユーザ行動を検出する方法についてのフローチャート500を示す。ステップ502では、前の分析窓で起こるアクションのタイプごとの平均イベントスコアなどのアクティビティ窓に関して平均アクションヒストグラムが算出され得る。これは、1つ以上のクラウド環境におけるユーザ、リソース、アプリケーション、および/または他のオブジェクト/エンティティに特有のイベントを受取って処理することによって算出され得る。システムは、図1Aで上述したように多くのクラウド環境を同時に監視し得るか、または図1Bで上述したようにIaaSクラウドインフラストラクチャの一部であり得る。平均イベントスコアは、分析窓内の個々の時間間隔からのイベントスコアを集計し、これを窓の長さで割ることによって算出され得る。他の実施形態では、平均スコアに加えて、さまざまな統計方法を用いてイベントスコアを生成してもよい。たとえば、いくつかの実施形態は、中央値またはモード値を用いてもよい。いくつかの実施形態は、イベントスコアを算出する際に平均の閾値を超えるさまざまなアウトライア(外れ値)を除去してもよい。いくつかの実施形態では、分析窓内のいくつかの日のイベントスコアは他の日のイベントスコアよりも重く重み付けされ得る(たとえば、週末に起こるイベントは、仕事日に起こるイベントよりも疑わしいものである可能性がある)。いくつかの実施形態では、分析窓についてのこのイベントスコアは、次の日にイベントが起こったときにこれらイベントと連続的に比較され得るように、分析窓内の各間隔の終わり(たとえば、各々の日の終わり)に生成され得る。分析窓は、上述の図3Bに示されるように、新しい値が窓の反対側の端に追加されると、ヒストグラム内の値が当該窓の後端から落ちて外れるスライディング窓であってもよい。
【0049】
ステップ504では、アクティビティ窓についての平均イベントスコアと現在の日のイベントスコアとの間の類似度を算出することができる。この類似度は、上述のコサイン類似度関数を含み得る。しかしながら、コサイン類似度は、例としてのみ用いられるものであって、限定を意図したものではない。他の実施形態は、他の類似度基準または類似度関数を用いて、平均イベントスコアと現在のイベントスコアとの間の類似度を算出し得る。いくつかの実施形態はユークリッド距離またはマンハッタン(Manhattan)距離を用い得る。いくつかの実施形態はミンコフスキー(Minkowski)距離を用い得る。いくつかの実施形態はジャッカード(Jaccard)類似度を用い得る。要約すれば、これらの2つの値を比較する際にいずれかの類似度測定を用いてもよい。
【0050】
ステップ506では、類似度スコアをベースライン閾値と比較して、ユーザ行動を異常と分類することができる。ベースライン閾値は、現在の日についてのイベントスコアを評価するための最小閾値を表わし得る。たとえば、ベースライン閾値を超えることは、このユーザ/リソース/アプリケーションなどについてのこのタイプのイベントに関して異常が発生したという最初の表示を表わし得る。このベースライン閾値は、いくつかの異なる方法を用いて算出され得る。いくつかの実施形態では、ベースライン閾値は、アクティビティ窓についてのイベントスコアからの所定の統計差として算出され得る。たとえば、ベースライン閾値は、平均値算出に基づいたアクティビティ窓の平均値から離れたいくつかの統計偏差であり得る。いくつかの実施形態では、ベースライン閾値は、ユーザに関して、特定のテナントに関して、業界のユーザに関して、システムによって複数のクラウド環境において監視されるユーザに関して、および/またはピアグループ分析のための上述した他の任意のピアグループに関して、集計される平均値を用いて算出され得る。しかしながら、これらの実施形態では、「ピアグループ」は、同じユーザからのアクション、または前の時間間隔で実行された同じリソースに対するアクションを含み得る。したがって、「ピアグループ」は、上述のスライディングアクティビティ窓において同じユーザによって取られたアクションを含み得る。
【0051】
いくつかの実施形態では、ベースライン閾値は、機械学習アルゴリズムを用いて動的に算出および調整されてもよい。たとえば、機械学習アルゴリズムは、現在の日およびアクティビティ窓に関するイベントスコアについてのイベントスコアを受取るニューラルネットワークを含み得る。ニューラルネットワークは、これらの2つのイベントスコア間で算出された類似度スコアを受取ることもできる。次いで、ニューラルネットワークは、「正常」または「異常」の表示を出力し得る。ニューラルネットワークによって表わされるベースライン閾値は、データがネットワークに連続的に提供されてネットワークをトレーニングするために用いられるときに時間の経過に応じて調整され得る。たとえば、アラートが生成されると、そのアラートに対する応答をトレーニング入力として用いて、ニューラルネットワークの対応する出力が正しかったかどうか(たとえば、アラートが応答アクションを生成したか、またはそれが抑制されたか)が判断され得る。
【0052】
いくつかの実施形態は、ここで分析を停止し、単に行動異常を顧客クラウド環境に報告するだけでもよい。しかしながら、いくつかの実施形態は、異常行動を許容可能な異常行動または許容できない異常行動としてより適切に分類するために、さらに別の分析ステップを実行してもよい。具体的には、いくつかの異常行動は、考慮すべき問題にならない可能性があり、むしろ、単にほとんどのユーザによって頻繁には実行されない行動であるかもしれない。たとえば、ユーザ特権レベルなどの第1の特権レベルは、ユーザが許容可能なドメインを設定することを可能にし得る。このアクションは、ユーザ特権レベルで許可されてもよいが、1ヶ月に1回など、まれにしか実行されない可能性もある。したがって、このアクションの実行はいずれも、顧客クラウド環境に対して完全に許容可能であるものの、異常であるように見える可能性がある。
【0053】
本方法はまた、異常が上限閾値を超えるかどうかを判断するステップ(510)を含み得る。上限閾値は、上述したようにベースライン閾値を算出した方法と同様の態様で算出されてもよい。上限閾値は、イベントスコアを明確に認証されないものとして特徴付け得る。これらの2つの閾値はともに、イベントスコアのロバストな特徴付けを可能にする。イベントスコアがベースライン閾値を超えると、当該イベントは、害がないものであるとの特徴付けから少なくとも疑わしいものであるとの特徴付けに移行する。そのイベントスコアが上限閾値に向かって上昇し続けると、そのイベントスコアに関する疑いが増大する可能性がある。そのイベントスコアが最終的に上限閾値を超えると、当該イベントスコアがそのユーザ、リソース、アプリケーションおよび/または他のオブジェクトに関連する既知の異常を表わしていることを示すためにアラートが生成され得る(512)。
【0054】
上限閾値上のベースライン閾値の間に収まるイベントスコアの場合、疑わしいイベントスコアがアラートを発生させるべきかどうかを判断するために、追加の処理が実行されてもよい。図5Bは、いくつかの実施形態に従った、疑わしいイベントスコアを生成するためのフローチャート550を示す。フローチャート550は上述のフローチャート500の続きであり得る。プロセスをさらに改良するために、いくつかの実施形態は、アクションヒストグラムにおける各アクションごとの数値スコアを提供する内部スコアテーブルを生成してもよく、および/または当該内部スコアテーブルにアクセスしてもよい。たとえば、スコアは1~100の範囲であり得る。スコアが高ければ高いほど、想定される特権レベルは、許可されるべきアクションに対してより高くする必要があるかもしれない。たとえば、電子メールの送信は2のスコアを有し得るのに対して、新しい企業エンティティのインスタンス化は95のスコアを有し得る。概して、異常アクションに関するスコアは、異常アクションを正常または異常と分類するために用いられ得る。
【0055】
フローチャート500に続いて、ステップ520において、スコアデータベースがアクセスされ得る。スコアデータベースは、他のアクションに対するアクションについて認識された重大度を示すアクティビティスコアのリストを含み得る。上述の類似度測定を用いても、モデルをトレーニングするための履歴使用に基づいてイベントの発生頻度がベースライン頻度と比較されるだけである。しかしながら、このスコアはより主観的なものであり、イベントの発生頻度ではなくイベントのタイプに特に関連し得る。より高いレベルの認可を必要とするイベントまたは誤用のためにより深刻な結果を伴うイベントは概してより高いスコアになり得る。これらのイベントは通常のユーザによって実行される可能性が低い。
【0056】
アクティビティスコアデータベースは、いくつかのイベントを特徴付けるアドミニストレータ入力に少なくとも部分的に基づき得る。たとえば、新しい仮想クラウドネットワーク(virtual cloud network:VCN)の開始に関連するイベントは、このようなイベントがまれにしか用いられず認可されたユーザによってのみ実行されるべきであるというアドミニストレータの知識に基づいて、より高いスコアを有し得る。いくつかの実施形態では、アクティビティスコアデータベースはまた、機械学習アルゴリズムを用いて自動的に生成および改良され得る。アラートを生成した後に受取ったフィードバックに基づいて、アクティビティスコアデータベースは、イベントスコアを正確に特徴付ける可能性が高くなるように調整され得る。たとえば、イベントスコアに基づいて偽のアラートが生成される場合、アクティビティスコアデータベース内の対応するアクティビティスコアが高くなり得るのに対して、異常が検出されないままであれば、結果としてイベントスコアが小さくなり得る。ニューラルネットワークは、アクティビティスコアの値を表わすために用いられてよく、この場合、ニューラルネットワークの出力は、そのアクティビティの現在の特徴付けに合わせて動的に調整するために時間の経過とともに改良される。
【0057】
スコアデータベースはスコアテーブルとして格納されてもよい。スコアは、複数のユーザにわたってアクティビティの相対的頻度に基づいてこれらアクティビティをスコア化する機械学習アルゴリズムによって内部で生成され得る。いくつかの実施形態はまた、アドミニストレータによって割当てられたスコアを受取り得る。いくつかの実施形態では、スコアは、上述したベースライン閾値に関するベースラインスコアを表わす0の値、および、上述した上限閾値を表わす100の値、からの範囲であり得る。したがって、アクティビティスコアデータベースにおけるアクティビティスコアはさらに、イベントスコアを、これら2つの閾値間の起こり得る異常として特徴付ける。スコアデータベースまたはスコアテーブルの例を以下の表1に示す。これがスコアテーブル内に存在し得る実現可能なアクションの小さなサブセットであることに留意されたい。実際には、スコアテーブルは、スコアが関連付けられたより多くのアクションを含む可能性がある。
【0058】
【表2】
【0059】
特定の異常アクションのスコアがアクティビティスコアデータベースによって判断されるステップ510における所定の閾値を超える場合、ステップ512においてアラートが生成され得る。所定の閾値は、いくつかの異なる方法で生成されてもよい。いくつかの実施形態では、閾値は静的に設定されてもよい。たとえば、75を超えるスコアを伴う任意の異常アクションは、アラートを生成するためにフラグが立てられてもよい。いくつかの実施形態では、アクションのスコアは、過去に実行された他のアクションのスコアと比較されてもよい。たとえば、異常アクションが90のスコアを有していたが、ユーザは、同様の高いスコアで過去に定期的にアクションを実行する場合、ユーザは、それらの高スコアのアクションの実行を可能にするより高い特権レベルを有するものと想定され得る。したがって、これらの高スコアのアクションは、めったに実行されない場合であっても、そのユーザのために以前に低頻度であっても定期的に実行されていたので、アラートを発生させる必要がない。
【0060】
ステップ512では、取られたアクションを異常として記述するとともに、追加情報を顧客クラウド環境に提供し得るアラートが生成され得る。たとえば、本方法は、クラウド内でUbuntu 16以上を用いてLinux(登録商標)ノード上で実行されるPythonおよびさまざまなコードライブラリを用いて実行され得る。これらのコードファイルは、シェルスクリプトによってトリガされて、ユーザアクションのディクショナリファイルおよびさまざまな顧客クラウド環境から受取った日毎の入力ファイルを読込み得る。これらの日毎の入力セットは、たとえばCSVフォーマットで異常アラートおよび説明ファイルを生成するために上記のように分析され得る。加えて、ユーザインターフェイスは、クラウド環境アドミニストレータに関するアラートおよび/または説明を表示し得る。アラートが生成されない場合、ステップ514において、次の時間間隔にわたって分析を続けることができる。
【0061】
図5Aおよび図5Bに示される特定のステップが、本発明のさまざまな実施形態に従ったクラウド環境における異常なユーザ行動を検出する特定の方法を提供することを理解されたい。ステップの他のシーケンスも、代替的な実施形態に従って実行され得る。たとえば、本発明の代替的な実施形態は、上で概説したステップを異なる順序で実行し得る。さらに、図5Aおよび図5Bに示される個々のステップは、個々のステップに応じて適宜さまざまな順序で実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて付加的なステップが追加または削除されてもよい。当業者であれば、多くの変形例、変更例および代替例を認識するだろう。
【0062】
低スコアレベルでのアウトライア
いくつかの実施形態では、方法は、知識ベースのフィルタを、クラウドテナント全体にわたるすべてのクラウドユーザ間のすべての対応するアクションカウントの平均偏差値および標準偏差値の計算スコアと組合わせ得る。この方法はさらに、既存のクラスタリング法(K平均、最近傍など)からそれ自体を区別するために、上述の教師なし学習技術を含む。この技術は、上述のアルゴリズムを用いる場合に異常とは見なさないであろうアウトライアを識別するように構成される。たとえば、ユーザが取ったアクションのうち、十分にユーザの特権レベルの想定範囲内にあるアクションは異常として識別されない。しかしながら、ユーザらの特権レベルの範囲内で取られるアクションであっても、クライアントにとって懸念すべき問題となる可能性がある。ユーザが特定のタイプのアクションを通常よりもはるかに多く取った場合、これは懸念の原因となる可能性がある。たとえば、通常よりも多くの何千もの電子メールを送るユーザは、企業スパイ活動またはサービス妨害攻撃を示す可能性がある。
【0063】
図6Aは、いくつかの実施形態に従った、ユーザアクションを記述する2つのデータベクトルを示す。第1のベクトル402は、前の90日窓408にわたって取られた平均アクションを表わす。第2のベクトル604は、現在の日602の間に取られたアクションを表わす。現在の日602からのアクションカウントは全て、電子メールアクション604を除いて、90日窓408からの平均アクションカウントの許容範囲内にあることに留意されたい。現在の日602では、送信される電子メールの数は10倍以上に増加している。電子メールアクション604が通常このユーザの特権レベルのために承認されているので、上述のアルゴリズムはこれらの電子メールアクション604をアウトライアとして識別する可能性はないが、アウトライアとしての総数が問題となる可能性がある。
【0064】
図5Aおよび図5Bのフローチャートに関連付けて上述したプロセスにおいて、当該方法が、現在の時間間隔からのアクションのベクトルを、スライディングアクティビティ窓に関して平均されるアクションのベクトルと比較したことを想起されたい。上述の類似度スコアは、単一のユーザからの疑わしい行動または単一のリソース/アプリケーションに対する疑わしい行動の全体的パターンを検出することができる。当該プロセスは、ベクトルにおける各アクションカウントをN度空間における座標として処理し、次いで、2つのベクトルの類似度を判断するために類似度基準(たとえば、コサイン類似度基準)を用いた。このベクトル類似度は、アクションを全体的にまとめて考慮するためのプロキシとして機能した。したがって、このプロセスは、個々のアクションを平均または閾値と比較することによって、見逃される可能性のあるアクションの全体的パターンにおけるずれを検出することができる。
【0065】
しかしながら、図5Aおよび図5Bのフローチャートに関連付けて上述したプロセスは、単一のアクションカテゴリにおける疑わしい行動を知らせる個々のアウトライアを見逃す可能性がある。類似度基準は、2つのベクトルの類似度を全体的に比較するので、アクションの集合内の個々のアクションを表わすベクトルにおける個々の座標が見逃される可能性がある。たとえば、図6における電子メールアクション604などの単一のアウトライアアクションは、アクションベクトルにおけるアクションの残りの類似度と混ぜ合わされると「平滑化」され得る。したがって、いくつかの実施形態は、アクションベクトルにおける全体的な類似度を検出することに加えて、個々のアウトライアアクションを検出し得る。個々のアウトライアは、スライディングアクティビティ窓と比較することによって、単一のテナントにわたる平均アクションカウントと比較することによって、複数のテナントにわたる平均アクションカウントと比較することによって、複数のクラウド環境にわたって平均アクションカウントと比較することによって、および/または、他の任意のピアグループと比較することによって、検出され得る。
【0066】
図6Bは、いくつかの実施形態に従った、単一のオブジェクトに関するスライディングアクティビティ窓と比較して個々のアウトライアを検出するための方法を示す。上述したように、この方法における単一のオブジェクトは、ユーザ、リソース、アプリケーション、および/または、クラウド環境におけるアクションの帰属先であり得る他の任意のオブジェクトを表わし得る。フローチャート600の方法は、現在の時間間隔におけるアクションがそのオブジェクトに関するスライディングアクティビティ窓からの平均アクションと如何に比較され得るかを示す。
【0067】
当該方法は、図5Aおよび図5Bのフローチャートにおける任意の時点で開始するステップ(620)を含み得る。たとえば、フローチャート600におけるこの方法は、類似度が算出される(504)前に、ベースライン閾値との比較(506)の前もしくは後に、上限閾値との比較(510)の前もしくは後に、アラートが生成される(512)前もしくは後に、アクティビティスコアデータベースにアクセスする(520)および/もしくはアクティビティスコアをデータベースからのスコアと比較する(522)前もしくは後に、ならびに/または、これらのフローチャートにおける他のいずれかの時点において、実行されてもよい。フローチャート600はまた、図5Aおよび図5Bのフローチャートの前または後に実行されてもよい。
【0068】
当該方法はまた、現在の時間間隔からのアクションをスライディングアクティビティ窓からの対応するアクションと比較するステップ(622)を含み得る。いくつかの実施形態では、スライディングアクティビティ窓からのアクションは、スライディングアクティビティ窓におけるアクションカウントの平均、モード、中央値、および/または他の任意の統計的特徴を表わし得る。簡潔にするために、本開示は、この特徴付けを「平均」と称することもある。しかしながら、「平均」が一例として用いられている本開示のどこであっても、他の実施形態は、スライディングアクティビティ窓におけるアクションカウントの他の任意の統計基準または特徴付けの代わりに平均を代入し得る。この比較は、アクションが現在の時間間隔のアクションカウントに追加されるのに応じてリアルタイムで行なわれてもよい。加えて、この比較は、現在の時間間隔の終わり(たとえば、日の終わり)に、またはアクションログ内のアクションのバッチを受取るときに、行なわれてもよい。
【0069】
当該方法は、付加的には、現在の時間間隔におけるアクションカウントが閾値量を超える分だけ、スライディングアクティビティ窓からのアクションカウントの統計的特徴付けを超えているかどうかを判断するステップ(624)を含み得る。たとえば、平均アクションカウントからのわずかなずれは通常のアクティビティ範囲内であり得る。ユーザがスライディングアクティビティ窓の間に1日当たり平均25個の電子メールを送信する場合、現在の日中に45個の電子メールを送信するのに、アクション可能なアラートアイテムのレベルにまで引き上げる必要はない。しかしながら、ユーザが現在の日中に245個の電子メールを送信する場合、これは、アラートをトリガするのに十分に、スライディングアクティビティ窓の平均アクションカウントを超える可能性がある。
【0070】
現在の日に関するアクションカウントがスライディングアクティビティ窓からの平均アクションカウントを超える可能性のある閾値は、アクションタイプごとに個別に設定され得るとともに、実行時に動的にアップデートされ得る。たとえば、いくつかの実施形態は、さまざまなアクションタイプにさまざまな閾値を割当て得る。さまざまな閾値が、アクション誤用の結果の深刻度に基づいて判断されてもよい。たとえば、当該システムは、図5Bのアクティビティスコアデータベース(520)からのスコアを用いて、このスコアデータベースからのスコアに基づき、各アクティビティごとに用いられる閾値を逆にスケーリングしてもよい。より高い結果アクションを表わすより高いスコアの場合には、平均アクションカウントからのずれがより小さい場合であってもアラートを引起こし得るように、閾値を下げてもよい。
【0071】
いくつかの実施形態では、閾値は、各アクションタイプごとに個々のニューラルネットワークによって表わされ得る。ニューラルネットワークは、現在の時間間隔についてのアクションタイプおよびアクションカウントを入力として受取り得る。ニューラルネットワークの出力は、現在の日からのアクションカウントがアラートを引起こすべきかどうかを示す少なくとも2つの出力を含み得る。加えて、ニューラルネットワークは、これらのアクションカウントをトレーニングデータセットとして用いてトレーニングされ得る。これらのデータセットは、生成されるアラートに対する応答に基づいて後でラベル付けされてもよい。たとえば、アラートが生成され、アドミニストレータによって当該アラートが抑制される場合、このデータセットは、ニューラルネットワークをトレーニングするために「アラートなし(no alert)」データセットとして自動的にラベル付けされてもよい。加えて、ニューラルネットワークによって検出されないときにアラートが生成される場合、このデータセットは、ニューラルネットワークをトレーニングするために「アラート(alert)」データセットとしてラベル付けされてもよい。正しく判断されるアラートを用いて、ニューラルネットワークをトレーニングすることもできる。
【0072】
当該方法は、追加のアクションがアクションベクトル内に残っているかどうかを判断するステップ(626)をさらに含み得る。追加のアクションが残っている場合、システムは、次のアクションに移行し得るとともに、アクションベクトルにおける各アクションタイプごとのアクションカウントがアウトライアについて分析されるまで、アクションの各々を反復し得る。たとえば、現在の時間間隔からの個々のアクションカウントは、アクティビティ窓内のアクションカウントと比較され得る(622)。
【0073】
いくつかの実施形態では、現在の時間間隔からの単一のアクションカウントがその対応する閾値を超える場合、システムはアラートを生成し得る(628)。アラートが生成された後、システムは、次いで、追加のアクションがアクションベクトル内に残っているかどうかを判断し(626)得るとともに、さらに、各アクションを個々に処理するステップに進み得る。他の実施形態では、処理は、アラートが生成された後に終了させてもよい。たとえば、ユーザ/リソース/アプリケーションがセキュリティ脅威として識別される場合、そのユーザ/リソース/アプリケーションに関連付けられるアクションは停止されてもよく、これにより、アウトライア異常に関してアクションベクトルを分析し続ける必要をなくし得る。他の実施形態では、アラートは、その対応する閾値を超えるオブジェクトに関するアクションカウントごとに生成されてもよい。各アクションは、特定のタイプのアラートまたはさまざまなアラートのスケールに関連付けられ得るので、いくつかのアラートは最小限の結果で生成され得る一方で、他のアラートはシステムをシャットダウンし得るかまたは他の徹底的な改善対策を実行し得る。したがって、アラートが生成されて、さらなる処理が不要になるように改善アクションが取られるまで、処理が続き得る(630)。
【0074】
図6Bに示される特定のステップがさまざまな実施形態に従ってクラウド環境におけるアウトライア行動を検出する特定の方法を提供することを認識されたい。ステップの他のシーケンスも代替的な実施形態に従って実行され得る。たとえば、本発明の代替的な実施形態は、上記で概説したステップを異なる順序で実行してもよい。さらに、図6Bに示される個々のステップは、個々のステップに適したさまざまな順序で実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて追加のステップが追加または削除されてもよい。当業者であれば、多くの変形例、変更例、および代替例を認識するだろう。
【0075】
フローチャート600において上述した方法は、あるオブジェクト(たとえば、ユーザ、リソース、アプリケーション)からのアクションを、その同じオブジェクトからの前のアクションと比較することによってアウトライアを識別する。しかしながら、いくつかの実施形態はまた、知識ベースのフィルタを、さまざまなピアグループの中から対応するアクションカウントの値についての平均偏差および標準偏差から計算されたスコアと組合わせてもよい。上述したように、これらのピアグループは、或るユーザタイプにわたるものであってもよく、単一のテナントにわたるものであってもよく、或るクラウド環境にわたるものであってもよく、複数のクラウド環境にわたるものであってもよく、および/または、他の業界標準を比較ベースラインとして用いてもよい。本開示で論じた上述の方法と同様に、この方法は、教師なし学習法として特徴付けられ得るとともに、既存のクラスタリング法からも区別され得る。上述したように、閾値は、各アクションおよび/または各ユーザ/リソース/アプリケーションごとに個々に判断され得る。これらの実施形態はまた、これらの閾値を、これらのさまざまなピアグループの統計的特徴付けの基とする。
【0076】
図7Aは、いくつかの実施形態に従った、より大きいピアグループに基づいて閾値を調整するのに使用され得る式を例示する。これらの式は、ピアグループにわたる特定のアクションに関するアクションカウントのベクトルを用いてもよい。閾値Tの各々は式702を用いて動的に算出され得る。たとえば、ベクトルにおける各エントリがピアグループ内の特定のユーザからのアクションカウントを表わす場合、アクション(i)は単一のアクションタイプに関するアクションカウントのベクトルを表わし得る。アクションについての平均は、複数の値のベクトルから平均を算出するための標準的な数学的演算を用いる平均関数を用いて算出され得る。この関数は、ピアグループ内のすべてのユーザi=1,2,…,Mにわたる同じアクションについてのグローバル平均を算出し得る。
【0077】
平均を算出することに加えて、特定のアクションについてピアグループにわたって標準偏差も算出され得る。式704は、標準偏差を算出する方法を示しており、ここで、Nはピアグループ内のユーザの数を表わし、zはアクション(i)に関するすべてのアクションカウントの平均を表わし得る。これは、前のD日間にわたって同じアクションを行なったすべてのユーザのアクションカウントについて算出され得る(90をデフォルトとして、D=60~120)。
【0078】
閾値を算出するための式702は、データ分布特徴、データバイアス、および共分散に基づいて動的に調整され得る調整可能値Nを含む。いくつかのビタミン(vitamins)では、この調節可能なファクタNについての値は3と6との間で異なり得る。
【0079】
次いで、知識ベースのフィルタ値が、以下のように定義されるアクションスケール値によって定量化され得る。
【0080】
S(i,action(i)) = globalmean(action(i))・scalevalue(action(i))
式中、i=1,2,…,Mである。スケール値は以下の表に基づき得る。次いで、これらの条件によってアクションアウトライアが検出され得る。
【0081】
IF Count(action(i)) > Threshold(i, action(i)) AND
Count(action(i)) > S(i, action(i))
THEN action(i)はアウトライアとしてラベル付けされ得る。
【0082】
式中、T(i,action(i))およびS(i,action(i))は、さまざまなピアグループ、クラウドアプリケーション、リソースなどからの生データ入力に基づいて動的に計算され得る。
【0083】
知識ベースのフィルタは、スケールまたは数値重みを用いて、すべての既知のアクションのリスクレベルを測定し得る。これらの数値重みは、クラウドリアルタイムデータおよび/またはアドミニストレータ専門知識によって自動的に修正することができる。スコアおよび重みの例を以下の表2に示す。
【0084】
【表3】
【0085】
重みを用いて、以下の2つの条件を満たす場合にアウトライアを検出することができる。すなわち、(1)検出された値が(アクションリスクレベルを表わす)数値と、すべてのクラウドテナントおよびユーザにわたる同じアクションのグローバル平均値とを乗じたものよりも大きい場合、ならびに、(2)表2のアウトライアフィルタ値を満たす場合、という2つの条件である。この方法は、所与の期間および任意の1日にユーザアクションアウトライアを検出することができる。
【0086】
図7Bは、いくつかの実施形態に従った、アウトライアを検出するための方法のフローチャート700を示す。当該方法は、クラウド環境全体および/またはシステムによって監視されている他の環境全体からアクションを受取るステップ(710)を含み得る。上述したように、単一のテナント内のユーザ、単一のクラウド環境内のユーザ、単一のアプリケーションを有するユーザ、特定のリソースに対して実行されるアクション、クラウド環境にわたって特定のリソースに対して実行されるアクション、および/または、利用可能であり得る他の任意の業界標準もしくはグループに関してこれらのアクションが受取られるように、さまざまなピアグループが選択され得る。
【0087】
当該方法はさらに、第1の層フィルタが満たされているかどうかを判断するステップ(712)を含み得る。たとえば、第1の層フィルタは、アクションカウントがそのアクションカウントについてのグローバル平均を上回る少なくともXの標準偏差だけグローバル平均以上であるかどうかを判断することによって実現され得る。Xについての値は、さまざまな実施形態において任意の値に設定され得る。これは、アウトライアアクションを検出するための第1レベルの粗フィルタとして作用し得る。このフィルタが適合されない場合(たとえば、アクションカウントが少なくともXの標準偏差だけグローバル平均以下である場合)、当該アクションカウントがアラートを必要とするアウトライアを表わさないと最初に判断することができる(722)。
【0088】
しかしながら、閾値を超えてしまい、アクションカウントが指定された量だけグローバル平均を超える場合、さらなる処理が行なわれてもよい。この場合、当該方法はさらに、グローバル平均に対するアクションローカル平均の比を用いて新しいスケールテーブルを算出するステップ(714)を含み得る。上述のスケール値は、ローカルピアグループからのローカル平均を用いることによって再算出され得る。ローカル平均はまた、この特定のユーザ/リソースに関するアクションのローカル平均を用いて算出され得る。グローバル平均は、より大きいピアグループにわたるものであってもよく、たとえば、テナントにわたるものであってもよく、アプリケーションにわたるものであってもよく、クラウド環境にわたるものであってもよく、業界にわたるものなどであってもよい。
【0089】
当該方法はまた、再算出されたスケールが閾値を超える場合、新しいアクションスケールを組合わせることによって新しいスケールテーブルを構築するステップ(716)を含み得る。これにより、再算出によってスケールが増加する場合に、さまざまなアクションのスケールレベルを引上げる。しかしながら、閾値を下回る場合に元のアクションスケールが用いられてもよい。
【0090】
新しいスケールテーブルを再算出して構築した後、当該方法は、第2の層フィルタが満たされているかどうかを判断するステップ(718)を含み得る。第2の層フィルタは、ユーザ/リソースに関するアクションカウントを、新しいアクションスケールを乗じたグローバル平均と比較し得る。アクションカウントがこの閾値を超える場合、当該方法はアウトライアユーザおよび/またはアクションのリストを出力し得る(720)とともに、適切なアラートが必要に応じて生成され得る。
【0091】
図7Bに示される特定のステップが、さまざまな実施形態に従ってクラウド環境におけるアウトライア行動を検出する特定の方法を提供することが認識されるはずである。他の順序のステップが代替的な実施形態に従って実行されてもよい。たとえば、本発明の代替的な実施形態は、上記で概説したステップを異なる順序で実行してもよい。さらに、図7Bに示される個々のステップは、個々のステップに適したさまざまな順序で実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて、付加的なステップが追加または削除されてもよい。当業者であれば、多くの変形例、変更例、および代替例を認識するだろう。
【0092】
図7に示されるフローチャート700に加えて、以下の擬似コードは、このアルゴリズムがどのように実現され得るかについての例を提供する。この擬似コードは、Pythonプログラミング言語で書かれており、この多層フィルタアプローチをどのように実行してアウトライアアクションを識別するかについての一例を示す。
【0093】
擬似コード例
【0094】
【数2】
【0095】
以下の2つの例は、上述に列挙した擬似コードを用いて、Microsoft(登録商標)O365クラウドアプリケーションからの実際のデータからの真の出力を示す。これらの例では、ユーザデータは「evntactor」とラベル付けされている。以下に列挙される出力は、各アウトライアアクション(たとえば、送信された電子メール、作成されたフォルダなど)について個々の出力を提供し、各アウトライアは、選択されたピアグループについての履歴行動を示す。最後に、両方のフィルタレベル(たとえば、方法[1]および方法[2])の出力が与えられる。なお、第2の例では、ボットによってもたらされたアクションである可能性が非常に高い。なぜなら、人が1日に2,968個のフォルダを作成した可能性は低いからである。
【0096】
出力例1:
…evntaction、リソース,カウント,count_per_day,レベル,クラス,日
アウトライア:(電子メール)送信,Exchange~MailFlow,5724.0, 5724.0, 5.0, All_user, 1.0…(当日)
履歴行動:447818.0, 4975.8, 5.0, All_user, 90.0…(前の90日)
理由:
方法[1]5724アクション>Global action_mean + 3*action_std = 13.868 + 3*204.887
方法[2]5724アクション>Global action_mean * Scale = 13.868*239.326
出力例2:
…evntaction,リソース,カウント,count_per_day,レベル,クラス,日
アウトライア:FolderCreated, SharePoint/OneDrive~Folder, 2968.0, 2968.0, 7.0, All_user,1.0…(当日)
履歴行動:SharePoint/OneDrive~Folder, 2918.0, 32.4, 7.0, All_user, 90.0,…(前の90日)
理由:
方法[1]2968アクション>Global action_mean + 3*action_std =1.924 + 3*22.366
方法[2]2968アクション>Global action_mean * Scale =1.924*885.518
本明細書で説明される方法の各々はコンピュータシステムによって実現され得る。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および/または、ユーザが関与する入力/出力が提供されてもよい。たとえば、ユーザは、方法の各ステップに関する入力を提供し得るとともに、これらの入力の各々は、そのような入力を要求する特定の出力に応答し得る。この場合、その出力はコンピュータシステムによって生成される。各入力は、対応する要求出力に応答して受取られてもよい。さらに、入力は、ユーザから受取られてもよく、別のコンピュータシステムからデータストリームとして受取られてもよく、メモリ位置から検索されてもよく、ネットワークを介して検索されてもよく、ウェブサービスから要求されてもよい、等々であり得る。同様に、出力は、ユーザに提供されてもよく、データストリームとして別のコンピュータシステムに提供されてもよく、メモリ位置に保存されてもよく、ネットワークを介して送信されてもよく、ウェブサービスに提供されてもよい、等々であり得る。要約すれば、本明細書に記載される方法の各ステップは、コンピュータシステムによって実行されてもよく、ユーザが関与し得るかまたは関与し得ないコンピュータシステムに対する任意の数の入出力、および/またはコンピュータシステムに対する要求を含んでもよい。ユーザが関与しないこれらのステップは、人の介入なしにコンピュータシステムによって自動的に実行されると言える。したがって、本開示に照らして、本明細書で説明される各方法の各ステップは、ユーザへの入力およびユーザからの出力を含むように変更され得るか、または任意の判断がプロセッサによって行なわれる場合に人の介入なしにコンピュータシステムによって自動的に行なわれ得るものと理解されるだろう。さらに、本明細書で説明する各方法のいくつかの実施形態は、有形のソフトウェアプロダクトを形成するために有形の非一時的記憶媒体に格納された命令のセットとして実現され得る。
【0097】
図8は、実施形態のうちの1つを実現するための分散システム800の簡略図を示す。図示した実施形態では、分散システム800は、1つ以上のネットワーク810を介して、ウェブブラウザ、プロプラエタリクライアント(たとえば、オラクル・フォームズ(Oracle Forms))などのクライアントアプリケーションを実行するとともに動作させるように構成される1つ以上のクライアントコンピューティングデバイス802、804、806、および808を含む。サーバ812は、ネットワーク810を介してリモートクライアントコンピューティングデバイス802、804、806、および808と通信可能に結合され得る。
【0098】
さまざまな実施形態では、サーバ812は、システムのコンポーネントのうちの1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。いくつかの実施形態では、これらのサービスは、ウェブベースもしくはクラウドサービスとして、またはサービスとしてのソフトウェア(Software as a Service:SaaS)モデルの下で、クライアントコンピューティングデバイス802、804、806、および/または808のユーザに提供され得る。クライアントコンピューティングデバイス802、804、806、および/または808を操作するユーザは、次に、サーバ812と対話するために1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを利用し得る。
【0099】
図に示される構成では、システム800のソフトウェアコンポーネント818、820および822は、サーバ812上で実現されるものとして示されている。他の実施形態では、システム800のコンポーネントのうちの1つ以上および/またはこれらのコンポーネントによって提供されるサービスは、クライアントコンピューティングデバイス802、804、806、および/または808のうちの1つ以上によって実現されてもよい。次いで、クライアントコンピューティングデバイスを操作するユーザは、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用い得る。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現され得る。なお、分散システム800とは異なり得るさまざまな異なるシステム構成が実現可能であることを理解されたい。したがって、図に示される実施形態は、実施形態システムを実現するための分散システムの一例であり、限定することを意図するものではない。
【0100】
クライアントコンピューティングデバイス802、804、806、および/または808は、携帯型ハンドヘルドデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(personal digital assistant:PDA))、またはウェアラブルデバイス(たとえば、グーグル・グラス(Google(登録商標) Glass)(登録商標)頭部装着型ディスプレイ)であってもよく、マイクロソフト・ウィンドウズ(登録商標)モバイル(Microsoft Windows Mobile)(登録商標)などのソフトウェア、および/または、iOS、ウィンドウズフォン、アンドロイド(登録商標)、ブラックベリー(登録商標)10、パームOSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(short message service:SMS)、ブラックベリー(登録商標)、または他の通信プロトコルに対応していてもよい。クライアントコンピューティングデバイスは、マイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、および/またはリナックス(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを例として含む、汎用パーソナルコンピュータであり得る。クライアントコンピューティングデバイスは、たとえばグーグル・クローム(Google Chrome)OSなどのさまざまなGNU/リナックスオペレーティングシステムを何ら限定されることなく含む、商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX様オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであり得る。代替的または付加的には、クライアントコンピューティングデバイス802、804、806および808は、ネットワーク810を介して通信可能である、シンクライアントコンピュータ、インターネット対応ゲーミングシステム(たとえば、Kinect(登録商標)ジェスチャー入力デバイス付きまたは無しのマイクロソフトXboxゲーミングコンソール)、および/またはパーソナルメッセージングデバイスなどの任意の他の電子デバイスであってもよい。
【0101】
4つのクライアントコンピューティングデバイスを有する例示的な分散型システム800が示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスがサーバ812と対話し得る。
【0102】
分散型システム800におけるネットワーク810は、伝送制御プロトコル/インターネットプロトコル(transmission control protocol/Internet protocol:TCP/IP)、システムネットワークアーキテクチャ(systems network architecture:SNA)、インターネットパケット交換(Internet packet exchange:IPX)、アップル・トーク(Apple Talk)などを何ら限定されることなく含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであり得る。単なる例として、ネットワーク810は、イーサネット(登録商標)、トークンリング(Token-Ring)などに基づくものといった、ローカルエリアネットワーク(local area network:LAN)であってもよい。ネットワーク810はワイドエリアネットワークおよびインターネットであり得る。それは、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、電気電子技術者協会(the Institute of Electrical and Electronics:IEEE)802.11プロトコルスイート、Bluetooth(登録商標)、および/もしくは任意の他の無線プロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/または、これらのおよび/もしくは他のネットワークの任意の組合せを何ら限定されることなく含む、仮想ネットワークを含み得る。
【0103】
サーバ812は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを例として含む)、サーバファーム、サーバクラスタ、または、任意の他の適切な構成および/もしくは組合せで構成されてもよい。さまざまな実施形態では、サーバ812は、前述の開示で説明された1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。たとえば、サーバ812は、本開示の一実施形態に従った上述の処理を行なうためのサーバに対応していてもよい。
【0104】
サーバ812は、上述のもののうちのいずれかを含むオペレーティングシステム、および商業的に入手可能な任意のサーバオペレーティングシステムを実行してもよい。サーバ812はまた、さまざまな追加のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行してもよく、ハイパーテキスト伝送プロトコル(hypertext transport protocol:HTTP)サーバ、ファイル転送プロトコル(file transfer protocol:FTP)サーバ、コモンゲートウェイインターフェイス(common gateway interface:CGI)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース(Sybase)、IBM(International Business Machines:インターナショナル・ビジネス・マシーンズ)などから商業的に入手可能なものを何ら限定されることなく含む。
【0105】
いくつかの実現例では、サーバ812は、クライアントコンピューティングデバイス802、804、806、および808のユーザから受取ったデータフィードおよび/またはイベントアップデートを分析して統合するための1つ以上のアプリケーションを含んでいてもよい。一例として、データフィードおよび/またはイベントアップデートは、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る、1つ以上の第三者情報源および連続データストリームから受取ったツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含み得るが、それらに限定されない。サーバ812はまた、クライアントコンピューティングデバイス802、804、806、および808の1つ以上のディスプレイデバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含んでいてもよい。
【0106】
分散型システム800はまた、1つ以上のデータベース814および816を含んでいてもよい。データベース814および816は、さまざまな位置に存在していてもよい。例として、データベース814および816のうちの1つ以上は、サーバ812に対してローカルな(および/または、サーバ812内にある)非一時的記憶媒体上に存在していてもよい。代替的には、データベース814および816は、サーバ812からリモートであってもよく、ネットワークベースの接続または専用接続を介してサーバ812と通信してもよい。一組の実施形態では、データベース814および816は、ストレージエリアネットワーク(storage-area network:SAN)に存在していてもよい。同様に、サーバ812に帰する機能を実行するための任意の必要なファイルが適宜、サーバ812上にローカルに格納されてもよく、および/またはリモートに格納されてもよい。一組の実施形態では、データベース814および816は、SQLフォーマット化されたコマンドに応答してデータを格納し、アップデートし、検索するように適合された、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでいてもよい。
【0107】
図9は、本開示の一実施形態に従った、実施形態システムの1つ以上のコンポーネントによって提供されるサービスをクラウドサービスとして提供し得るシステム環境900の1つ以上のコンポーネントの簡略ブロック図である。図示された実施形態では、システム環境900は、クラウドサービスを提供するクラウドインフラストラクチャシステム902と対話するためにユーザによって使用され得る1つ以上のクライアントコンピューティングデバイス904、906、および908を含む。これらのクライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム902によって提供されるサービスを使用するためのクラウドインフラストラクチャシステム902と対話するためにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専用クライアントアプリケーション(たとえば、オラクル・フォームズ)、または何らかの他のアプリケーションなどのクライアントアプリケーションを動作させるように構成されてもよい。
【0108】
図に示すクラウドインフラストラクチャシステム902が図示したもの以外のコンポーネントを有し得ることが理解されるべきである。さらに、図に示す実施形態は、本発明の一実施形態を組込み得るクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム902は、図示されたものよりも多いかまたは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組合せてもよく、または、異なる構成もしくは配置のコンポーネントを有していてもよい。
【0109】
クライアントコンピューティングデバイス904、906、および908は、802、804、806、および808について上述したものと同様のデバイスであってもよい。
【0110】
3つのクライアントコンピューティングデバイスを有する例示的なシステム環境900が示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスがクラウドインフラストラクチャシステム902と対話してもよい。
【0111】
ネットワーク910は、クライアント904、906、および908とクラウドインフラストラクチャシステム902との間のデータの通信および交換を容易にし得る。各ネットワークは、ネットワーク810について上述したものを含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。
【0112】
クラウドインフラストラクチャシステム902は、サーバ812について上述したものを含み得る1つ以上のコンピュータおよび/またはサーバを含んでいてもよい。
【0113】
特定の実施形態では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザにとってオンデマンドで利用可能にされる多数のサービスを含んでいてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすために動的にスケール変更可能である。クラウドインフラストラクチャシステムによって提供されるサービスの特定のインスタンス化は、本明細書中では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能とされる任意のサービスは「クラウドサービス」と称される。典型的には、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドでアプリケーションをオーダーして用いてもよい。
【0114】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダーによってユーザに提供されるかまたは当該技術分野において他の態様で公知であるようなストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、または他のサービスへの、保護されたコンピュータネットワークアクセスを含み得る。たとえば、サービスは、インターネットを介した、クラウド上のリモートストレージへの、パスワードで保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化されたデベロッパによる私的使用のための、ウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダーのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
【0115】
ある実施形態では、クラウドインフラストラクチャシステム902は、セルフサービスで、サブスクリプションベースで、弾力的にスケーラブルで、確実に、可用性高く、かつ安全な態様で顧客に配信される、アプリケーション、ミドルウェアおよびデータベースサービスが提供する物一式を含んでいてもよい。このようなクラウドインフラストラクチャシステムの一例として、本譲受人によって提供されるオラクル・パブリック・クラウド(Oracle Public Cloud)がある。
【0116】
さまざまな実施形態では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステム902によって提供されるサービスへの顧客のサブスクリプションを自動的にプロビジョニングし、管理し、追跡するように適合されてもよい。クラウドインフラストラクチャシステム902は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、サービスは、クラウドインフラストラクチャシステム902がクラウドサービスを販売する組織によって所有され(たとえば、オラクルによって所有され)るとともにサービスが一般大衆またはさまざまな産業企業にとって利用可能とされる、パブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム902が単一の組織のためにのみ稼働されるとともにその組織内の1つ以上のエンティティのためのサービスを提供し得る、プライベートクラウドモデルの下で提供されてもよい。クラウドサービスはまた、クラウドインフラストラクチャシステム902、およびクラウドインフラストラクチャシステム902によって提供されるサービスが或る関連するコミュニティにおけるいくつかの組織によって共有されているコミュニティクラウドモデルの下で提供されてもよい。クラウドサービスはまた、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルの下で提供されてもよい。
【0117】
いくつかの実施形態では、クラウドインフラストラクチャシステム902によって提供されるサービスは、サービスとしてのソフトウェア(SaaS)カテゴリ、サービスとしてのプラットフォーム(Platform as a Service:PaaS)カテゴリ、サービスとしてのインフラストラクチャ(IaaS)カテゴリ、または、ハイブリッドサービスを含むサービスの他のカテゴリの下で提供される、1つ以上のサービスを含んでいてもよい。顧客は、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスを、サブスクリプションオーダーを介してオーダーしてもよい。クラウドインフラストラクチャシステム902は次に、顧客のサブスクリプションオーダーでサービスを提供するために処理を行なう。
【0118】
いくつかの実施形態では、クラウドインフラストラクチャシステム902によって提供されるサービスは、アプリケーションサービス、プラットフォームサービス、およびインフラストラクチャサービスを、何ら限定されることなく含んでいてもよい。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに該当するクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、統合された開発およびデプロイメントプラットフォーム上にオンデマンドアプリケーション一式を構築して配信するための能力を提供してもよい。SaaSプラットフォームは、SaaSサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なしにアプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。例として、大型組織のための販売実績管理、企業統合、およびビジネス柔軟性についてのソリューションを提供するサービスが、限定なしに含まれる。
【0119】
いくつかの実施形態では、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに該当するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスの例は、(オラクルなどの)組織が共有の共通アーキテクチャ上で既存のアプリケーションを統合できるようにするサービスと、プラットフォームによって提供される共有のサービスを活用する新しいアプリケーションを構築するための能力とを、何ら限定されることなく含み得る。PaaSプラットフォームは、PaaSサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例は、オラクルJava(登録商標)クラウドサービス(Java Cloud Service:JCS)、オラクル・データベース・クラウド・サービス(Database Cloud Service:DBCS)などを、何ら限定されることなく含む。
【0120】
PaaSプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを採用するとともに、デプロイされたサービスを制御することもできる。いくつかの実施形態では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(たとえば、オラクル・フュージョン・ミドルウェア(Oracle Fusion Middleware)サービス)、およびJavaクラウドサービスを含んでいてもよい。一実施形態では、データベースクラウドサービスは、組織がデータベースリソースをプールし、データベースクラウドの形態でサービスとしてのデータベース(Database as a Service)を顧客に提供することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発してデプロイするためのプラットフォームを提供してもよく、Javaクラウドサービスは、顧客がクラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイするためのプラットフォームを提供してもよい。
【0121】
クラウドインフラストラクチャシステムにおいて、さまざまな異なるインフラストラクチャサービスがIaaSプラットフォームによって提供されてもよい。これらのインフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための、ストレージ、ネットワーク、および他の基礎的コンピューティングリソースなどの基本コンピューティングリソースの管理および制御を容易にする。
【0122】
特定の実施形態では、クラウドインフラストラクチャシステム902はまた、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために用いられるリソースを提供するためのインフラストラクチャリソース930を含んでいてもよい。一実施形態では、インフラストラクチャリソース930は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためのサーバ、ストレージ、およびネットワーキングリソースなどのハードウェアの予め統合され最適化された組合せを含んでいてもよい。
【0123】
いくつかの実施形態では、クラウドインフラストラクチャシステム902におけるリソースは、複数のユーザによって共有されてもよく、要望ごとに動的に再配分されてもよい。加えて、リソースは、さまざまな時間帯にユーザに配分されてもよい。たとえば、クラウドインフラストラクチャシステム930は、第1の時間帯における第1のセットのユーザが、特定数の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし、次に、異なる時間帯に位置する別のセットのユーザに同じリソースを再配分することを可能にし、これによりリソースの利用を最大化し得る。
【0124】
特定の実施形態では、クラウドインフラストラクチャシステム902のさまざまなコンポーネントまたはモジュールによって共有されるとともに、クラウドインフラストラクチャシステム902が提供するサービスによって共有される、いくつかの内部共有サービス932が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウィルススキャニングおよびホワイトリストサービス、高可用性、バックアップおよび復旧サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを、何ら限定されることなく含み得る。
【0125】
特定の実施形態では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえば、SaaSサービス、PaaSサービス、およびIaaSサービス)の包括的管理を提供し得る。一実施形態では、クラウド管理機能は、クラウドインフラストラクチャシステム902などが受取った顧客のサブスクリプションをプロビジョニングし、管理し、追跡するための能力を含んでいてもよい。
【0126】
一実施形態では、図に示すように、クラウド管理機能は、オーダー管理モジュール920、オーダーオーケストレーションモジュール922、オーダープロビジョニングモジュール924、オーダー管理および監視モジュール926、ならびにアイデンティティ管理モジュール928などの1つ以上のモジュールによって提供されてもよい。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、または任意の他の適切な構成および/もしくは組合せであり得る、1つ以上のコンピュータおよび/またはサーバを含んでいてもよく、またはそれらを用いて提供されてもよい。
【0127】
例示的な動作934では、クライアントデバイス904、906または908などのクライアントデバイスを使用する顧客は、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスを要求するとともに、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスについてサブスクリプションオーダーを出すことにより、クラウドインフラストラクチャシステム902と対話してもよい。特定の実施形態では、顧客は、クラウドユーザインターフェイス(User Interface:UI)、クラウドUI912、クラウドUI914および/またはクラウドUI916にアクセスし、これらのUIを介してサブスクリプションオーダーを出してもよい。顧客がオーダーを出したことに応答してクラウドインフラストラクチャシステム902が受取ったオーダー情報は、顧客と、顧客が加入するつもりでありクラウドインフラストラクチャシステム902によって提供される1つ以上のサービスとを識別する情報を含んでいてもよい。
【0128】
顧客がオーダーを出した後、オーダー情報がクラウドUI912、914、および/または916を介して受取られる。
【0129】
動作936では、オーダーがオーダーデータベース918に格納される。オーダーデータベース918は、クラウドインフラストラクチャシステム918によって動作されるとともに他のシステム要素とともに動作される、いくつかのデータベースのうちの1つであり得る。
【0130】
動作938では、オーダー情報がオーダー管理モジュール920へ転送されてもよい。場合によっては、オーダー管理モジュール920は、オーダーを検証し、検証後にオーダーを予約するといった、オーダーに関連する請求機能および課金機能を実行するように構成されてもよい。
【0131】
動作940では、オーダーに関する情報がオーダーオーケストレーションモジュール922へ通信される。オーダーオーケストレーションモジュール922は、顧客によって出されたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレーションするために、オーダー情報を利用してもよい。場合によっては、オーダーオーケストレーションモジュール922は、オーダープロビジョニングモジュール924のサービスを用いて加入済みサービスをサポートするために、リソースのプロビジョニングをオーケストレーションしてもよい。
【0132】
特定の実施形態では、オーダーオーケストレーションモジュール922は、各オーダーに関連付けられたビジネスプロセスの管理を可能にして、オーダーがプロビジョニングへ進むべきかどうかを判断するためにビジネスロジックを適用する。動作942では、新規サブスクリプションについてのオーダーを受取ると、オーダーオーケストレーションモジュール922は、リソースを配分してサブスクリプションオーダーの遂行に必要とされるそれらのリソースを構成することを求める要求を、オーダープロビジョニングモジュール924に送信する。オーダープロビジョニングモジュール924は、顧客によってオーダーされたサービスのためのリソースの配分を可能にする。オーダープロビジョニングモジュール924は、クラウドインフラストラクチャシステム900によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために用いられる物理実現層との間の抽象化のレベルを提供する。オーダーオーケストレーションモジュール922はこのため、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか否か、または予めプロビジョニングされて要求時にのみ配分/割当てがなされるか否かといった実現例の詳細から切り離されてもよい。
【0133】
動作944では、サービスおよびリソースが一旦プロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム902のオーダープロビジョニングモジュール924によってクライアントデバイス904、906、および/または908上の顧客へ送信されてもよい。
【0134】
動作946では、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール926によって管理および追跡されてもよい。場合によっては、オーダー管理および監視モジュール926は、用いられるストレージの量、転送されるデータの量、ユーザの数、システムアップタイムおよびシステムダウンタイムの量などの、サブスクリプションオーダーにおけるサービスについての使用率統計を収集するように構成されてもよい。
【0135】
特定の実施形態では、クラウドインフラストラクチャシステム900はアイデンティティ管理モジュール928を含み得る。アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム900においてアクセス管理および認証サービスなどのアイデンティティサービスを提供するように構成されてもよい。いくつかの実施形態では、アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム902によって提供されるサービスを利用したい顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報と、さまざまなシステムリソース(たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してそれらの顧客がどのアクションを行なうことが認可されているかを記述する情報とを含み得る。アイデンティティ管理モジュール928はまた、各顧客についての記述的情報と、その記述的情報が誰によってどのようにアクセスされて修正され得るかについての記述的情報との管理を含んでいてもよい。
【0136】
図10は、本発明のさまざまな実施形態が実現され得る例示的なコンピュータシステム1000を示す。システム1000は、上述のコンピュータシステムのうちのいずれかを実現するために使用されてもよい。図に示すように、コンピュータシステム1000は、バスサブシステム1002を介していくつかの周辺サブシステムと通信する処理部1004を含む。これらの周辺サブシステムは、処理加速部1006と、I/Oサブシステム1008と、ストレージサブシステム1018と、通信サブシステム1024とを含み得る。ストレージサブシステム1018は、有形のコンピュータ可読記憶媒体1022とシステムメモリ1010とを含む。
【0137】
バスサブシステム1002は、コンピュータシステム1000のさまざまなコンポーネントおよびサブシステムを意図通りに互いに通信させるためのメカニズムを提供する。バスサブシステム1002は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。バスサブシステム1002は、さまざまなバスアーキテクチャのうちのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであり得る。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、強化ISA(EISA)バス、ビデオエレクトロニクス標準組織(Video Electronics Standards Association:VESA)ローカルバス、および周辺コンポーネント相互接続(Peripheral Component Interconnect:PCI)バスを含んでいてもよく、それは、IEEE P1386.1規格で製造されるメザニンバスとして実現可能である。
【0138】
1つ以上の集積回路(たとえば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現され得る処理部1004は、コンピュータシステム1000の動作を制御する。処理部1004には1つ以上のプロセッサが含まれていてもよい。これらのプロセッサはシングルコアまたはマルチコアプロセッサを含んでいてもよい。特定の実施形態では、処理部1004は1つ以上の独立した処理部1032および/または1034として実現されてもよく、各処理部にはシングルプロセッサまたはマルチコアプロセッサが含まれ得る。他の実施形態では、処理部1004はまた、2つのデュアルコアプロセッサをシングルチップへと集積することによって形成されるクアッドコア処理部として実現されてもよい。
【0139】
さまざまな実施形態では、処理部1004は、プログラムコードに応答してさまざまなプログラムを実行できるとともに、同時に実行される複数のプログラムまたはプロセスを維持できる。任意の所与の時間において、実行されるべきプログラムコードのうちのいくつかまたはすべては、プロセッサ1004および/またはストレージサブシステム1018に常駐し得る。好適なプログラミングを通して、プロセッサ1004は、上述のさまざまな機能を提供できる。コンピュータシステム1000は加えて、デジタル信号プロセッサ(digital signal processor:DSP)、専用プロセッサなどを含み得る処理加速部1006を含んでいてもよい。
【0140】
I/Oサブシステム1008は、ユーザインターフェイス入力デバイスとユーザインターフェイス出力デバイスとを含み得る。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付き音声入力デバイス、マイクロホン、および他のタイプの入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスは、たとえば、ジェスチャーおよび口頭コマンドを使用するナチュラルユーザインターフェイスを介してマイクロソフトXbox(登録商標)360ゲームコントローラなどの入力デバイスをユーザが制御し、それと対話することを可能にする、マイクロソフトKinect(登録商標)運動センサなどの運動感知および/またはジェスチャー認識デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、ユーザから目の活動(たとえば、写真撮影中および/またはメニュー選択中の「まばたき」)を検出し、アイジェスチャーを入力デバイス(たとえば、グーグル・グラス(登録商標))への入力として変換する、グーグル・グラス(登録商標)まばたき検出器などのアイジェスチャー認識デバイスを含んでいてもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえば、Siri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでいてもよい。
【0141】
ユーザインターフェイス入力デバイスはまた、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、音声/視覚デバイス、たとえば、スピーカ、デジタルカメラ、デジタルビデオカメラ、携帯型メディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザー測距器、および視線追跡デバイスなどを、何ら限定されることなく含んでいてもよい。加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン放出断層撮影装置、医療用超音波検査装置などの医療用撮像入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含んでいてもよい。
【0142】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、表示灯、または、音声出力デバイスなどの非視覚的ディスプレイを含んでいてもよい。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するディスプレイなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム1000からユーザまたは他のコンピュータへ情報を出力するためのあらゆる可能なタイプのデバイスおよびメカニズムを含むよう意図されている。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドホン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイスを、何ら限定されることなく含んでいてもよい。
【0143】
コンピュータシステム1000は、現在システムメモリ1010内に位置するように示されているソフトウェア要素を含むストレージサブシステム1018を含んでいてもよい。システムメモリ1010は、処理部1004上でロード可能および実行可能なプログラム命令、ならびに、これらのプログラムの実行中に生成されたデータを格納してもよい。
【0144】
コンピュータシステム1000の構成およびタイプに応じて、システムメモリ1010は、揮発性(ランダムアクセスメモリ(random access memory:RAM)など)および/または不揮発性(読取り専用メモリ(read-only memory:ROM)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理部1004に直ちにアクセス可能である、および/または、処理部1004によって現在操作および実行されている、データおよび/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1010は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含んでいてもよい。いくつかの実現例では、起動中などにコンピュータシステム1000内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、典型的にはROMに格納されてもよい。限定ではなく例示のために、システムメモリ1010はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management systems:RDBMS)などを含み得るアプリケーションプログラム1012と、プログラムデータ1014と、オペレーティングシステム1016とを示す。例として、オペレーティングシステム1016は、マイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、および/またはリナックスオペレーティングシステムのさまざまなバージョン、商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX様オペレーティングシステム(さまざまなGNU/リナックスオペレーティングシステム、グーグル・クローム(登録商標)OSなどを何ら限定されることなく含む)、および/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10OS、パーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含んでいてもよい。
【0145】
ストレージサブシステム1018はまた、いくつかの実施形態の機能を提供するデータ構造および基本プログラミングを格納するための有形のコンピュータ可読記憶媒体を提供し得る。プロセッサによって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム1018に格納されてもよい。これらのソフトウェアモジュールまたは命令は、処理部1004によって実行されてもよい。ストレージサブシステム1018はまた、本発明に従って用いられるデータを格納するためのリポジトリを備えてもよい。
【0146】
ストレージサブシステム1000はまた、コンピュータ可読記憶媒体1022にさらに接続され得るコンピュータ可読記憶媒体リーダ1020を含んでいてもよい。コンピュータ可読記憶媒体1022は、システムメモリ1010とともに、およびオプションでシステムメモリ1010と組合わされて、リモート、ローカル、固定および/またはリムーバブルの記憶装置に加えて、コンピュータ可読情報を一時的におよび/またはより永続的に含み、格納し、伝送し、検索するための記憶媒体を包括的に表わし得る。
【0147】
コードまたはコードの一部を含むコンピュータ可読記憶媒体1022はまた、情報の格納および/または伝送のための任意の方法または技術において実現された揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体などを含むがこれらに限定されない記憶媒体および通信媒体を含む、当該技術分野において公知であるかまたは当該技術分野において使用されている任意の適切な媒体を含み得る。これは、RAM、ROM、電子的消去可能プログラマブルROM(electronically erasable programmable ROM:EEPROM)、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(digital versatile disk:DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体といった、有形のコンピュータ可読記憶媒体を含み得る。これはまた、所望の情報を伝送するために使用可能であり得るとともにコンピューティングシステム1000によってアクセス可能であるデータ信号、データ伝送、または任意の他の媒体などの非有形のコンピュータ可読媒体を含み得る。
【0148】
例として、コンピュータ可読記憶媒体1022は、非リムーバブルな不揮発性磁気媒体との間で読出および書込を行なうハードディスクドライブ、リムーバブルな不揮発性磁気媒体との間で読出および書込を行なう磁気ディスクドライブ、ならびに、CD ROM、DVD、Blu-Ray(登録商標)ディスク、または他の光学媒体などのリムーバブルな不揮発性光ディスクとの間で読出および書込を行なう光ディスクドライブを含んでいてもよい。コンピュータ可読記憶媒体1022は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るがこれらに限定されない。コンピュータ可読記憶媒体1022はまた、フラッシュメモリベースのソリッドステートドライブ(solid-state drive:SSD)、エンタープライズフラッシュドライブ、ソリッドステートROMなどの、不揮発性メモリに基づいたSSD、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSDなどの、揮発性メモリに基づいたSSD、および、DRAMベースのSSDとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含んでいてもよい。ディスクドライブおよびそれらの関連するコンピュータ可読媒体は、コンピュータシステム1000のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを備えてもよい。
【0149】
通信サブシステム1024は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム1024は、コンピュータシステム1000とは別のシステムからデータを受取り、別のシステムにデータを送信するためのインターフェイスとして機能する。たとえば、通信サブシステム1024は、コンピュータシステム1000がインターネットを介して1つ以上のデバイスに接続できるようにしてもよい。いくつかの実施形態では、通信サブシステム1024は、(たとえば、3G、4G、またはEDGE(enhanced data rates for global evolution:エンハンスト・データレート・フォー・グローバル・エボリューション)、WiFi(IEEE802.11ファミリー規格)、もしくは他のモバイル通信技術、もしくはそれらの任意の組合せといった携帯電話技術、高度なデータネットワーク技術を使用した)無線音声および/もしくはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバコンポーネント、全地球測位システム(global positioning system:GPS)受信機コンポーネント、ならびに/または他のコンポーネントを含み得る。いくつかの実施形態では、通信サブシステム1024は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえば、イーサネット(登録商標))を提供することができる。
【0150】
いくつかの実施形態では、通信サブシステム1024はまた、入力通信を構造化および/または非構造化データフィード1026、イベントストリーム1028、イベントアップデート1030などの形態で、コンピュータシステム1000を使用し得る1人以上のユーザのために受取ってもよい。
【0151】
例として、通信サブシステム1024は、ツイッター(登録商標)フィード、フェースブック(登録商標)アップデート、リッチ・サイト・サマリー(Rich Site Summary:RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイムアップデートなどの、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード1026をリアルタイムで受取るように構成されてもよい。
【0152】
加えて、通信サブシステム1024はまた、リアルタイムイベントのイベントストリーム1028および/またはイベントアップデート1030を含み得る、明確な終わりがなく本質的に連続的または無限であり得る連続データストリームの形態でデータを受取るように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などを含んでいてもよい。
【0153】
通信サブシステム1024はまた、構造化および/または非構造化データフィード1026、イベントストリーム1028、イベントアップデート1030などを、コンピュータシステム1000に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
【0154】
コンピュータシステム1000は、ハンドヘルド携帯デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグル・グラス(登録商標)頭部装着型ディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、さまざまなタイプのうちの1つであり得る。
【0155】
コンピュータおよびネットワークが絶えず変化するという性質を持っているため、図に示されるコンピュータシステム1000の説明は特定の一例として意図されるものに過ぎない。図に示されるシステムよりも多いかまたは少ないコンポーネントを有する多くの他の構成が実現可能である。たとえば、カスタマイズされたハードウェアが使用されてもよく、および/または、特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)または組合せて実現されてもよい。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が採用されてもよい。ここに提供される開示および教示に基づくと、当業者であれば、さまざまな実施形態を実現するための他のやり方および/または方法を理解するであろう。
【0156】
前述の記載では、本発明のさまざまな実施形態の完全な理解を提供するために、説明の目的で、多くの特定の詳細が述べられた。しかしながら、これらの特定の詳細のうちのいくつかがなくても本発明の実施形態が実施され得ることは、当業者には明らかであるだろう。他の例では、周知の構造およびデバイスはブロック図の形で示される。
【0157】
前述の記載は例示的な実施形態のみを提供しており、この開示の範囲、利用可能性、または構成を限定するようには意図されていない。むしろ、例示的な実施形態の前述の記載は、例示的な実施形態を実現するための実施可能な説明を当業者に提供するだろう。添付の特許請求の範囲で述べられるような本発明の精神および範囲から逸脱することなく、要素の機能および配置にさまざまな変更がなされ得ることが理解されるはずである。
【0158】
前述の記載では、実施形態の完全な理解を提供するために具体的な詳細が与えられる。しかしながら、これらの具体的な詳細がなくても実施形態が実施され得ることが当業者に理解されるだろう。たとえば、実施形態を必要以上に詳細に記して不明瞭にすることがないように、回路、システム、ネットワーク、プロセス、および他のコンポーネントはブロック図の形のコンポーネントとして示されていることもある。他の例では、実施形態を不明瞭にしないように、周知の回路、プロセス、アルゴリズム、構造、および技術は不要な詳細なしで示されている可能性もある。
【0159】
また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されている可能性もあることに留意されたい。フローチャートでは動作が順次プロセスとして説明されている可能性もあるが、動作の多くは並行にまたは同時に行なうことが可能である。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了すると終了するが、図に含まれない追加のステップを有していてもよい。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応していてもよい。プロセスがある機能に対応している場合、その終了は、その機能が呼出し元の機能または主機能に戻ることに対応し得る。
【0160】
「コンピュータ可読媒体」という語は、命令および/またはデータを格納、収容または担持することができる、携帯型または固定式記憶装置、光学記憶装置、無線チャネル、ならびにさまざまな他の媒体を含むが、それらに限定されない。コードセグメントまたはマシン実行可能命令は、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文の任意の組合せを表わし得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことによって、および/または受取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の好適な手段を介して渡されてもよく、転送されてもよく、または伝送されてもよい。
【0161】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実現される場合、必要なタスクを行なうためのプログラムコードまたはコードセグメントが、マシン可読媒体に格納されてもよい。プロセッサが必要なタスクを行なってもよい。
【0162】
前述の明細書では、本発明の局面がその特定の実施形態に関連付けて説明されているが、当業者であれば、本発明がそれらに限定されないことを認識するだろう。上述の発明のさまざまな特徴および局面は、個々にまたはともに使用されてもよい。さらに、実施形態は、明細書のより広範な精神および範囲から逸脱することなく、ここに説明されたものを超える任意の数の環境および用途において利用され得る。したがって、明細書および添付の図面は、限定的ではなく例示的なものとみなされるべきである。
【0163】
加えて、例示のために、方法は特定の順序で説明されてきた。代替的な実施形態では、これらの方法が説明されたものとは異なる順序で実行され得ることが認識されるはずである。上述の方法はハードウェアコンポーネントによって実行されてもよく、または、汎用もしくは専用プロセッサ、または命令でプログラミングされた論理回路などのマシンに当該方法を行なわせるために使用され得るマシン実行可能命令のシーケンスで具現化され得ることも認識されるはずである。これらのマシン実行可能命令は、1つ以上のマシン可読媒体、たとえば、CD-ROMまたは他のタイプの光ディスク、フロッピー(登録商標)ディスケット、ROM、RAM、EPROM、EEPROM、磁気カードもしくは光カード、フラッシュメモリ、または、電子命令を格納するのに適した他のタイプのマシン可読媒体に格納されてもよい。代替的には、当該方法はハードウェアとソフトウェアとの組合せによって実行されてもよい。
図1A
図1B
図1C
図2
図3A
図3B
図4
図5A
図5B
図6A
図6B
図7A
図7B
図8
図9
図10