(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-23
(45)【発行日】2024-10-31
(54)【発明の名称】クラウドユーザの行動異常の検出
(51)【国際特許分類】
G06F 21/55 20130101AFI20241024BHJP
【FI】
G06F21/55 340
G06F21/55 320
(21)【出願番号】P 2021561816
(86)(22)【出願日】2020-04-14
(86)【国際出願番号】 US2020028105
(87)【国際公開番号】W WO2020214585
(87)【国際公開日】2020-10-22
【審査請求日】2023-04-06
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】シュ,ブライアン・エイチ
(72)【発明者】
【氏名】フォン,チャオ
(72)【発明者】
【氏名】キルティ,ガネーシュ
【審査官】三森 雄介
(56)【参考文献】
【文献】米国特許出願公開第2018/0004948(US,A1)
【文献】特開2018-106634(JP,A)
【文献】米国特許第09942255(US,B1)
【文献】米国特許出願公開第2016/0006749(US,A1)
【文献】特開2010-211257(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-21/88
(57)【特許請求の範囲】
【請求項1】
クラウド環境におけるユーザによる異常行動を検出する方法であって、
前記クラウド環境において複数の前の時間間隔のスライディング窓中に前記ユーザによって取られたアクションの平均のカウントを表わす第1のベクトルを算出するステップと、
現在の時間間隔の間、前記ユーザによって取られたアクションのカウントを集計することによって第2のベクトルを算出するステップと、
前記第1のベクトルと、前記第2のベクトルとの間の類似度を算出するステップと、
前記類似度をベースライン閾値と比較して、前記第2のベクトルが前記第1のベクトルから前記ベースライン閾値の量よりも大きく離れているかどうかを判断するステップと、
前記第2のベクトルが前記第1のベクトルから前記ベースライン閾値の量よりも大きく離れているとの判断に少なくとも部分的に基づいて、
前記第2のベクトルにおけるアクションに対するアラート生成のためにアクティビティスコアにアクセスするステップと、
前記アクティビティスコアと閾値とを比較して、1つ以上の異常アクションが発生したか否かを判断するステップと、
前記1つ以上の異常アクションが前記クラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成するステップとを含む、方法。
【請求項2】
前記類似度はコサイン類似度を用いて算出される、請求項1に記載の方法。
【請求項3】
前記複数の前の時間間隔の各々は1日を含む、請求項1または2に記載の方法。
【請求項4】
前記複数の前の時間間隔は少なくとも60日の窓を含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記複数の前の時間間隔の前記スライディング窓は複数の日のスライディング窓を含み、前記複数の日のスライディング窓は、各時間間隔の後に、前記現在の時間間隔を前記複数の日のスライディング窓に追加し、前記複数の日のスライディング窓から最も古い時間間隔を除去する、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記第1のベクトルは、前記複数の前の時間間隔の各々に関するイベントカウントのヒストグラムを格納することによって、前記複数の前の時間間隔中に取られたアクションを表わす、請求項1~5のいずれか1項に記載の方法。
【請求項7】
1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに動作を実行させる命令を備えるコンピュータプログラムであって、前記動作は、
クラウド環境において複数の前の時間間隔のスライディング窓中にユーザによって取られたアクションの平均のカウントを表わす第1のベクトルを算出する動作と、
現在の時間間隔の間、前記ユーザによって取られたアクションのカウントを集計することによって第2のベクトルを算出する動作と
前記第1のベクトルと、前記第2のベクトルとの間の類似度を算出する動作と、
前記類似度をベースライン閾値と比較して、前記第2のベクトルが前記第1のベクトルから前記ベースライン閾値の量よりも大きく離れているかどうかを判断する動作と、
前記第2のベクトルが前記第1のベクトルから前記ベースライン閾値の量よりも大きく離れているとの判断に少なくとも部分的に基づいて、
前記第2のベクトルにおけるアクションに対するアラート生成のためにアクティビティスコアにアクセスする動作と、
前記アクティビティスコアと閾値とを比較して、1つ以上の異常アクションが発生したか否かを判断する動作と、
前記1つ以上の異常アクションが前記クラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成する動作とを含む、コンピュータプログラム。
【請求項8】
前記動作はさらに、
前記類似度を上限閾値と比較して、1つ以上の異常アクションが発生したかどうかをさらに判断する、請求項7に記載のコンピュータプログラム。
【請求項9】
前記ベースライン閾値は、前記類似度を疑わしいものであると特徴付け、前記上限閾値は、前記類似度を脅威を表わすものとして特徴付ける、請求項8に記載のコンピュータプログラム。
【請求項10】
前記上限閾値は、前記第1のベクトルにおいて算出される平均値についての予め定められた数の標準偏差に基づいて決定される、請求項8または9に記載のコンピュータプログラム。
【請求項11】
前記上限閾値は、前記類似度を入力として受取るニューラルネットワークによって表わされる、請求項8または9に記載のコンピュータプログラム。
【請求項12】
前記ベースライン閾値は、前記類似度を入力として受取るニューラルネットワークによって表わされる、請求項7~11のいずれか1項に記載のコンピュータプログラム。
【請求項13】
前記ベースライン閾値は、現在のユーザと同様の複数のユーザに関するピアグループ分析を用いて決定される、請求項7~11のいずれか1項に記載のコンピュータプログラム。
【請求項14】
システムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに動作を実行させる命令を備える1つ以上のメモリデバイスとを含み、前記動作は、
クラウド環境において複数の前の時間間隔のスライディング窓中にユーザによって取られたアクションの平均のカウントを表わす第1のベクトルを算出する動作と、
現在の時間間隔の間、前記ユーザによって取られたアクションのカウントを集計することによって第2のベクトルを算出する動作と、
前記第1のベクトルと、前記第2のベクトルとの間の類似度を算出する動作と、
前記類似度をベースライン閾値と比較して、前記第2のベクトルが前記第1のベクトルから前記ベースライン閾値の量よりも大きく離れているかどうかを判断する動作と、
前記第2のベクトルが前記第1のベクトルから前記ベースライン閾値の量よりも大きく離れているとの判断に少なくとも部分的に基づいて、
前記第2のベクトルにおけるアクションに対するアラート生成のためにアクティビティスコアにアクセスする動作と、
前記アクティビティスコアと閾値とを比較して、1つ以上の異常アクションが発生したか否かを判断する動作と、
前記1つ以上の異常アクションが前記クラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成する動作とを含む、システム。
【請求項15】
前記動作はさらに、
前記第2のベクトルにおける1つ以上の値を、前記1つ以上の値に関連付けられた1つ以上のアクションスコアと比較する動作を含む、請求項14に記載のシステム。
【請求項16】
前記1つ以上のアクションスコアの各々は、前記アクションが脅威を表わす悪意あるアクションである可能性を表わす、請求項15に記載のシステム。
【請求項17】
前記第2のベクトルは、特定のリソースに対して取られたアクションのカウントを含む、請求項14~16のいずれか1項に記載のシステム。
【請求項18】
前記第1のベクトルにおける複数の値は、アクションが発生した週の日に応じて重み付けされる、請求項14~17のいずれか1項に記載のシステム。
【請求項19】
前記第2のベクトルは、特定のユーザに対して取られたアクションのカウントを含む、請求項14~18のいずれか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)」と題された米国非仮出願第16/750,852号。
【0005】
本願はまた、各々が引用により本明細書中に援用されている以下の同一出願人による米国非仮出願に関するものである。
【0006】
・2020年1月23日に出願され「人およびデジタルエンティティについてのエントロピーベースの分類(ENTROPY-BASED CLASSIFICATION OF HUMAN AND DIGITAL ENTITIES)」と題された米国非仮出願第16/750,863号、ならびに、
・2020年1月23日に出願され「規格外アクションについてのクラウドユーザの行動異常の検出(DETECTING BEHAVIOR ANOMALIES OF CLOUD USERS FOR OUTLIER ACTIONS)」と題された米国非仮出願第16/750,874号。
【背景技術】
【0007】
背景
クラウドセキュリティは、クラウドコンピューティングに関連付けられた顧客データ、アプリケーション、およびインフラストラクチャの保護を要する。クラウド環境に関するセキュリティの多くの局面は、オンプレミスのハードウェアおよびソフトウェアに関する局面と同様である。これは、パブリッククラウド、プライベートクラウド、および/またはハイブリッドクラウドにも当てはまる。クラウド環境において特に関心をもたれているセキュリティ問題は、不正なデータ曝露および漏洩、脆弱なアクセス制御、攻撃され易さ、利用可能性の阻害、サービス妨害攻撃等を含む。しかしながら、クラウドセキュリティシステムは、物理サーバおよびストレージデバイスを管理する代わりに、クラウドリソースに出入りする情報の流れを監視および保護するためにソフトウェアベースのセキュリティツールに依拠することが多い。したがって、クラウドコンピューティングセキュリティIPは、ポリシー、技術、アプリケーション、サービス、データ、および他の関連付けられたクラウドコンピューティングインフラストラクチャの広範囲のセットを含み得る。
【0008】
クラウドコンピューティングについてのセキュリティ問題は、(1)アプリケーションをホストするとともにクラウド上にデータを格納する顧客が直面するセキュリティ問題、および、(2)クラウドプロバイダ自体が直面するセキュリティ問題といった2つの広範なカテゴリに大まかに分離することができる。クラウドの顧客のセキュリティ問題は、ユーザ特権の段階的拡大を防止することを目的とし得る。このユーザ特権の段階的拡大とは、或るクラウドユーザに1セットの限られた許可しか割当てられていないにも関わらず、このクラウドユーザがセキュリティ保護されていないAPIを使用したり、システムおよび/またはアプリケーション脆弱性を悪用したり、ガードの弱い個人情報を利用したり、信用証明アクセス管理に潜入したりするなどの悪意ある目的で許可の範囲を超えて自身のアクティビティを段階的に拡充していく状況を説明するものである。
【発明の概要】
【課題を解決するための手段】
【0009】
概要
いくつかの実施形態では、クラウド環境における行動異常を検出する方法は、当該クラウド環境において複数の前の時間間隔中に取られたアクションを表わす第1のベクトルを算出するステップと、第1のベクトルと、現在の時間間隔中に取られたアクションのカウントを含む第2のベクトルとの間の類似度を算出するステップと、1つ以上の異常アクションが発生したかどうかを判断するために、当該類似度をベースライン閾値と比較するステップと、当該1つ以上の異常アクションが当該クラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成するステップとを含み得る。
【0010】
いくつかの実施形態では、非一時的なコンピュータ可読媒体は、1つ以上のプロセッサによって実行されると当該1つ以上のプロセッサに動作を実行させる命令を含み得る。当該動作は、クラウド環境において複数の前の時間間隔中に取られたアクションを表わす第1のベクトルを算出する動作と、当該第1のベクトルと、現在の時間間隔中に取られたアクションのカウントを含む第2のベクトルとの間の類似度を算出する動作と、1つ以上の異常アクションが発生したかどうかを判断するために、当該類似度をベースライン閾値と比較する動作と、当該1つ以上の異常アクションがクラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成する動作とを含む。
【0011】
いくつかの実施形態では、システムは、1つ以上のプロセッサと、当該1つ以上のプロセッサによって実行されると当該1つ以上のプロセッサに動作を実行させる命令を含む1つ以上のメモリデバイスとを含み、当該動作は、クラウド環境において複数の前の時間間隔中に取られたアクションを表わす第1のベクトルを算出する動作と、当該第1のベクトルと、現在の時間間隔中に取られたアクションのカウントを含む第2のベクトルとの間の類似度を算出する動作と、1つ以上の異常アクションが発生したかどうかを判断するために、当該類似度をベースライン閾値と比較する動作と、当該1つ以上の異常アクションがクラウド環境において発生したという判断に少なくとも部分的に基づいてアラートを生成する動作とを含む。
【0012】
いずれの実施形態においても、以下の特徴のいずれかが限定なしに任意の組合わせで含まれ得るか、以下の特徴がいずれも限定無しに如何なる組合せでも含まれ得ないか、または、以下のすべての特徴が限定なしに任意の組合わせで含まれ得る。類似度はコサイン類似度を用いて算出され得る。第1のベクトルにおける各エントリは、複数の前の時間間隔中の平均イベントスコアを含み得る。複数の前の時間間隔の各々は1日であり得る。複数の前の時間間隔は少なくとも60日の窓を含み得る。複数の前の時間間隔は複数の日のスライディング窓を含み得る。複数の日のスライディング窓は、各時間間隔の後に、当該複数の日のスライディング窓に現在の時間間隔を追加し得るとともに、当該複数の日のスライディング窓から最も古い時間間隔を除去し得る。第1のベクトルは、複数の前の時間間隔の各々に関するイベントカウントのヒストグラムを格納することによって、複数の前の時間間隔中に取られたアクションを表わし得る。当該方法/動作はまた、1つ以上の異常アクションが発生したかどうかをさらに判断するために、類似度を上限閾値と比較するステップ/動作を含み得る。ベースライン閾値は、類似度が疑わしいものと特徴付け得るとともに、上限閾値は、類似度を脅威を表わすものと特徴付け得る。上限閾値は、第1のベクトルにおいて算出される平均値についての予め定められた数の標準偏差に基づいて決定され得る。上限閾値は、類似度を入力として受取るニューラルネットワークによって表わされ得る。ベースライン閾値は、類似度を入力として受取るニューラルネットワークによって表わされ得る。ベースライン閾値は、現在のユーザと同様の複数のユーザに関するピアグループ分析を用いて決定され得る。当該方法/動作はまた、第2のベクトルにおける1つ以上の値を、1つ以上の値に関連付けられた1つ以上のアクションスコアと比較するステップ/動作を含み得る。1つ以上のアクションスコアの各々は、アクションが脅威を表わす悪意あるアクションである可能性を表わし得る。第2のベクトルは、特定のリソースに関して取られたアクションのカウントを含み得る。第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】いくつかの実施形態に従った、疑わしいイベントスコアを生成するためのフローチャートである。
【
図6】実施形態のいくつかを実現するための分散システムを示す簡略ブロック図である。
【
図7】一実施形態のシステムのコンポーネントによって提供されるサービスがクラウドサービスとして提供され得るシステム環境のコンポーネントを示す簡略ブロック図である。
【
図8】さまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【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】
【0022】
【0023】
【0024】
【0025】
【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】
【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】
【0059】
特定の異常アクションのスコアがアクティビティスコアデータベースによって判断されるステップ510における所定の閾値を超える場合、ステップ512においてアラートが生成され得る。所定の閾値は、いくつかの異なる方法で生成されてもよい。いくつかの実施形態では、閾値は静的に設定されてもよい。たとえば、75を超えるスコアを伴う任意の異常アクションは、アラートを生成するためにフラグが立てられてもよい。いくつかの実施形態では、アクションのスコアは、過去に実行された他のアクションのスコアと比較されてもよい。たとえば、異常アクションが90のスコアを有していたが、ユーザは、同様の高いスコアで過去に定期的にアクションを実行する場合、ユーザは、それらの高スコアのアクションの実行を可能にするより高い特権レベルを有するものと想定され得る。したがって、これらの高スコアのアクションは、めったに実行されない場合であっても、そのユーザのために以前に低頻度であっても定期的に実行されていたので、アラートを発生させる必要がない。
【0060】
ステップ512では、取られたアクションを異常として記述するとともに、追加情報を顧客クラウド環境に提供し得るアラートが生成され得る。たとえば、本方法は、クラウド内でUbuntu 16以上を用いてLinux(登録商標)ノード上で実行されるPythonおよびさまざまなコードライブラリを用いて実行され得る。これらのコードファイルは、シェルスクリプトによってトリガされて、ユーザアクションのディクショナリファイルおよびさまざまな顧客クラウド環境から受取った日毎の入力ファイルを読込み得る。これらの日毎の入力セットは、たとえばCSVフォーマットで異常アラートおよび説明ファイルを生成するために上記のように分析され得る。加えて、ユーザインターフェイスは、クラウド環境アドミニストレータに関するアラートおよび/または説明を表示し得る。アラートが生成されない場合、ステップ514において、次の時間間隔にわたって分析を続けることができる。
【0061】
図5Aおよび
図5Bに示される特定のステップが、本発明のさまざまな実施形態に従ったクラウド環境における異常なユーザ行動を検出する特定の方法を提供することを理解されたい。ステップの他のシーケンスも、代替的な実施形態に従って実行され得る。たとえば、本発明の代替的な実施形態は、上で概説したステップを異なる順序で実行し得る。さらに、
図5Aおよび
図5Bに示される個々のステップは、個々のステップに応じて適宜さまざまな順序で実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて付加的なステップが追加または削除されてもよい。当業者であれば、多くの変形例、変更例および代替例を認識するだろう。
【0062】
本明細書で説明される方法の各々はコンピュータシステムによって実現され得る。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および/または、ユーザが関与する入力/出力が提供されてもよい。たとえば、ユーザは、方法の各ステップに関する入力を提供し得るとともに、これらの入力の各々は、そのような入力を要求する特定の出力に応答し得る。この場合、その出力はコンピュータシステムによって生成される。各入力は、対応する要求出力に応答して受取られてもよい。さらに、入力は、ユーザから受取られてもよく、別のコンピュータシステムからデータストリームとして受取られてもよく、メモリ位置から検索されてもよく、ネットワークを介して検索されてもよく、ウェブサービスから要求されてもよい、等々であり得る。同様に、出力は、ユーザに提供されてもよく、データストリームとして別のコンピュータシステムに提供されてもよく、メモリ位置に保存されてもよく、ネットワークを介して送信されてもよく、ウェブサービスに提供されてもよい、等々であり得る。要約すれば、本明細書に記載される方法の各ステップは、コンピュータシステムによって実行されてもよく、ユーザが関与し得るかまたは関与し得ないコンピュータシステムに対する任意の数の入出力、および/またはコンピュータシステムに対する要求を含んでもよい。ユーザが関与しないこれらのステップは、人の介入なしにコンピュータシステムによって自動的に実行されると言える。したがって、本開示に照らして、本明細書で説明される各方法の各ステップは、ユーザへの入力およびユーザからの出力を含むように変更され得るか、または任意の判断がプロセッサによって行なわれる場合に人の介入なしにコンピュータシステムによって自動的に行なわれ得るものと理解されるだろう。さらに、本明細書で説明する各方法のいくつかの実施形態は、有形のソフトウェアプロダクトを形成するために有形の非一時的記憶媒体に格納された命令のセットとして実現され得る。
【0063】
図6は、実施形態のうちの1つを実現するための分散システム600の簡略図を示す。図示した実施形態では、分散システム600は、1つ以上のネットワーク610を介して、ウェブブラウザ、プロプラエタリクライアント(たとえば、オラクル・フォームズ(Oracle Forms))などのクライアントアプリケーションを実行するとともに動作させるように構成される1つ以上のクライアントコンピューティングデバイス602、604、606、および608を含む。サーバ612は、ネットワーク610を介してリモートクライアントコンピューティングデバイス602、604、606、および608と通信可能に結合され得る。
【0064】
さまざまな実施形態では、サーバ612は、システムのコンポーネントのうちの1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。いくつかの実施形態では、これらのサービスは、ウェブベースもしくはクラウドサービスとして、またはサービスとしてのソフトウェア(Software as a Service:SaaS)モデルの下で、クライアントコンピューティングデバイス602、604、606、および/または608のユーザに提供され得る。クライアントコンピューティングデバイス602、604、606、および/または608を操作するユーザは、次に、サーバ612と対話するために1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを利用し得る。
【0065】
図に示される構成では、システム600のソフトウェアコンポーネント618、620および622は、サーバ612上で実現されるものとして示されている。他の実施形態では、システム600のコンポーネントのうちの1つ以上および/またはこれらのコンポーネントによって提供されるサービスは、クライアントコンピューティングデバイス602、604、606、および/または608のうちの1つ以上によって実現されてもよい。次いで、クライアントコンピューティングデバイスを操作するユーザは、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用い得る。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現され得る。なお、分散システム600とは異なり得るさまざまな異なるシステム構成が実現可能であることを理解されたい。したがって、図に示される実施形態は、実施形態システムを実現するための分散システムの一例であり、限定することを意図するものではない。
【0066】
クライアントコンピューティングデバイス602、604、606、および/または608は、携帯型ハンドヘルドデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(personal digital assistant:PDA))、またはウェアラブルデバイス(たとえば、グーグル・グラス(Google(登録商標) Glass)(登録商標)頭部装着型ディスプレイ)であってもよく、マイクロソフト・ウィンドウズ(登録商標)モバイル(Microsoft Windows Mobile)(登録商標)などのソフトウェア、および/または、iOS、ウィンドウズフォン、アンドロイド(登録商標)、ブラックベリー(登録商標)10、パームOSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(short message service:SMS)、ブラックベリー(登録商標)、または他の通信プロトコルに対応していてもよい。クライアントコンピューティングデバイスは、マイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、および/またはリナックス(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを例として含む、汎用パーソナルコンピュータであり得る。クライアントコンピューティングデバイスは、たとえばグーグル・クローム(Google Chrome)OSなどのさまざまなGNU/リナックスオペレーティングシステムを何ら限定されることなく含む、商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX様オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであり得る。代替的または付加的には、クライアントコンピューティングデバイス602、604、606および608は、ネットワーク610を介して通信可能である、シンクライアントコンピュータ、インターネット対応ゲーミングシステム(たとえば、Kinect(登録商標)ジェスチャー入力デバイス付きまたは無しのマイクロソフトXboxゲーミングコンソール)、および/またはパーソナルメッセージングデバイスなどの任意の他の電子デバイスであってもよい。
【0067】
4つのクライアントコンピューティングデバイスを有する例示的な分散型システム600が示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスがサーバ612と対話し得る。
【0068】
分散型システム600におけるネットワーク610は、伝送制御プロトコル/インターネットプロトコル(transmission control protocol/Internet protocol:TCP/IP)、システムネットワークアーキテクチャ(systems network architecture:SNA)、インターネットパケット交換(Internet packet exchange:IPX)、アップル・トーク(Apple Talk)などを何ら限定されることなく含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであり得る。単なる例として、ネットワーク610は、イーサネット(登録商標)、トークンリング(Token-Ring)などに基づくものといった、ローカルエリアネットワーク(local area network:LAN)であってもよい。ネットワーク610はワイドエリアネットワークおよびインターネットであり得る。それは、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、電気電子技術者協会(the Institute of Electrical and Electronics:IEEE)802.11プロトコルスイート、Bluetooth(登録商標)、および/もしくは任意の他の無線プロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/または、これらのおよび/もしくは他のネットワークの任意の組合せを何ら限定されることなく含む、仮想ネットワークを含み得る。
【0069】
サーバ612は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを例として含む)、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および/または組合せで構成されてもよい。さまざまな実施形態では、サーバ612は、前述の開示で説明された1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。たとえば、サーバ612は、本開示の一実施形態に従った上述の処理を行なうためのサーバに対応していてもよい。
【0070】
サーバ612は、上述のもののうちのいずれかを含むオペレーティングシステム、および商業的に入手可能な任意のサーバオペレーティングシステムを実行してもよい。サーバ612はまた、さまざまな追加のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行してもよく、ハイパーテキスト伝送プロトコル(hypertext transport protocol:HTTP)サーバ、ファイル転送プロトコル(file transfer protocol:FTP)サーバ、コモンゲートウェイインターフェイス(common gateway interface:CGI)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース(Sybase)、IBM(International Business Machines:インターナショナル・ビジネス・マシーンズ)などから商業的に入手可能なものを何ら限定されることなく含む。
【0071】
いくつかの実現例では、サーバ612は、クライアントコンピューティングデバイス602、604、606、および608のユーザから受取ったデータフィードおよび/またはイベントアップデートを分析して統合するための1つ以上のアプリケーションを含んでいてもよい。一例として、データフィードおよび/またはイベントアップデートは、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る、1つ以上の第三者情報源および連続データストリームから受取ったツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含み得るが、それらに限定されない。サーバ612はまた、クライアントコンピューティングデバイス602、604、606、および608の1つ以上のディスプレイデバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含んでいてもよい。
【0072】
分散型システム600はまた、1つ以上のデータベース614および616を含んでいてもよい。データベース614および616は、さまざまな位置に存在していてもよい。例として、データベース614および616のうちの1つ以上は、サーバ612に対してローカルな(および/または、サーバ612内にある)非一時的記憶媒体上に存在していてもよい。代替的には、データベース614および616は、サーバ612からリモートであってもよく、ネットワークベースの接続または専用接続を介してサーバ612と通信してもよい。一組の実施形態では、データベース614および616は、ストレージエリアネットワーク(storage-area network:SAN)に存在していてもよい。同様に、サーバ612に帰する機能を実行するための任意の必要なファイルが適宜、サーバ612上にローカルに格納されてもよく、および/またはリモートに格納されてもよい。一組の実施形態では、データベース614および616は、SQLフォーマット化されたコマンドに応答してデータを格納し、アップデートし、検索するように適合された、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでいてもよい。
【0073】
図7は、本開示の一実施形態に従った、実施形態システムの1つ以上のコンポーネントによって提供されるサービスをクラウドサービスとして提供し得るシステム環境700の1つ以上のコンポーネントの簡略ブロック図である。図示された実施形態では、システム環境700は、クラウドサービスを提供するクラウドインフラストラクチャシステム702と対話するためにユーザによって使用され得る1つ以上のクライアントコンピューティングデバイス704、706、および708を含む。これらのクライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム702によって提供されるサービスを使用するためのクラウドインフラストラクチャシステム702と対話するためにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専用クライアントアプリケーション(たとえば、オラクル・フォームズ)、または何らかの他のアプリケーションなどのクライアントアプリケーションを動作させるように構成されてもよい。
【0074】
図に示すクラウドインフラストラクチャシステム702が図示したもの以外のコンポーネントを有し得ることが理解されるべきである。さらに、図に示す実施形態は、本発明の一実施形態を組込み得るクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム702は、図示されたものよりも多いかまたは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組合せてもよく、または、異なる構成もしくは配置のコンポーネントを有していてもよい。
【0075】
クライアントコンピューティングデバイス704、706、および708は、602、604、606、および608について上述したものと同様のデバイスであってもよい。
【0076】
3つのクライアントコンピューティングデバイスを有する例示的なシステム環境700が示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有するデバイスなどの他のデバイスがクラウドインフラストラクチャシステム702と対話してもよい。
【0077】
ネットワーク710は、クライアント704、706、および708とクラウドインフラストラクチャシステム702との間のデータの通信および交換を容易にし得る。各ネットワークは、ネットワーク610について上述したものを含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。
【0078】
クラウドインフラストラクチャシステム702は、サーバ612について上述したものを含み得る1つ以上のコンピュータおよび/またはサーバを含んでいてもよい。
【0079】
特定の実施形態では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザにとってオンデマンドで利用可能にされる多数のサービスを含んでいてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすために動的にスケール変更可能である。クラウドインフラストラクチャシステムによって提供されるサービスの特定のインスタンス化は、本明細書中では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能とされる任意のサービスは「クラウドサービス」と称される。典型的には、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドでアプリケーションをオーダーして用いてもよい。
【0080】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダーによってユーザに提供されるかまたは当該技術分野において他の態様で公知であるようなストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、または他のサービスへの、保護されたコンピュータネットワークアクセスを含み得る。たとえば、サービスは、インターネットを介した、クラウド上のリモートストレージへの、パスワードで保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化されたデベロッパによる私的使用のための、ウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダーのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
【0081】
ある実施形態では、クラウドインフラストラクチャシステム702は、セルフサービスで、サブスクリプションベースで、弾力的にスケーラブルで、確実に、可用性高く、かつ安全な態様で顧客に配信される、アプリケーション、ミドルウェアおよびデータベースサービス提供物一式を含んでいてもよい。このようなクラウドインフラストラクチャシステムの一例として、本譲受人によって提供されるオラクル・パブリック・クラウド(Oracle Public Cloud)がある。
【0082】
さまざまな実施形態では、クラウドインフラストラクチャシステム702は、クラウドインフラストラクチャシステム702によって提供されるサービスへの顧客のサブスクリプションを自動的にプロビジョニングし、管理し、追跡するように適合されてもよい。クラウドインフラストラクチャシステム702は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、サービスは、クラウドインフラストラクチャシステム702がクラウドサービスを販売する組織によって所有され(たとえば、オラクルによって所有され)るとともにサービスが一般大衆またはさまざまな産業企業にとって利用可能とされる、パブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム702が単一の組織のためにのみ稼働されるとともにその組織内の1つ以上のエンティティのためのサービスを提供し得る、プライベートクラウドモデルの下で提供されてもよい。クラウドサービスはまた、クラウドインフラストラクチャシステム702、およびクラウドインフラストラクチャシステム702によって提供されるサービスが或る関連するコミュニティにおけるいくつかの組織によって共有されているコミュニティクラウドモデルの下で提供されてもよい。クラウドサービスはまた、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルの下で提供されてもよい。
【0083】
いくつかの実施形態では、クラウドインフラストラクチャシステム702によって提供されるサービスは、サービスとしてのソフトウェア(SaaS)カテゴリ、サービスとしてのプラットフォーム(Platform as a Service:PaaS)カテゴリ、サービスとしてのインフラストラクチャ(IaaS)カテゴリ、または、ハイブリッドサービスを含むサービスの他のカテゴリの下で提供される、1つ以上のサービスを含んでいてもよい。顧客は、クラウドインフラストラクチャシステム702によって提供される1つ以上のサービスを、サブスクリプションオーダーを介してオーダーしてもよい。クラウドインフラストラクチャシステム702は次に、顧客のサブスクリプションオーダーでサービスを提供するために処理を行なう。
【0084】
いくつかの実施形態では、クラウドインフラストラクチャシステム702によって提供されるサービスは、アプリケーションサービス、プラットフォームサービス、およびインフラストラクチャサービスを、何ら限定されることなく含んでいてもよい。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに該当するクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、統合された開発およびデプロイメントプラットフォーム上にオンデマンドアプリケーション一式を構築して配信するための能力を提供してもよい。SaaSプラットフォームは、SaaSサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なしにアプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。例として、大型組織のための販売実績管理、企業統合、およびビジネス柔軟性についてのソリューションを提供するサービスが、限定なしに含まれる。
【0085】
いくつかの実施形態では、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに該当するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスの例は、(オラクルなどの)組織が共有の共通アーキテクチャ上で既存のアプリケーションを統合できるようにするサービスと、プラットフォームによって提供される共有のサービスを活用する新しいアプリケーションを構築するための能力とを、何ら限定されることなく含み得る。PaaSプラットフォームは、PaaSサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例は、オラクルJava(登録商標)クラウドサービス(Java Cloud Service:JCS)、オラクル・データベース・クラウド・サービス(Database Cloud Service:DBCS)などを、何ら限定されることなく含む。
【0086】
PaaSプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを採用するとともに、デプロイされたサービスを制御することもできる。いくつかの実施形態では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(たとえば、オラクル・フュージョン・ミドルウェア(Oracle Fusion Middleware)サービス)、およびJavaクラウドサービスを含んでいてもよい。一実施形態では、データベースクラウドサービスは、組織がデータベースリソースをプールし、データベースクラウドの形態でサービスとしてのデータベース(Database as a Service)を顧客に提供することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発してデプロイするためのプラットフォームを提供してもよく、Javaクラウドサービスは、顧客がクラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイするためのプラットフォームを提供してもよい。
【0087】
クラウドインフラストラクチャシステムにおいて、さまざまな異なるインフラストラクチャサービスがIaaSプラットフォームによって提供されてもよい。これらのインフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための、ストレージ、ネットワーク、および他の基礎的コンピューティングリソースなどの基本コンピューティングリソースの管理および制御を容易にする。
【0088】
特定の実施形態では、クラウドインフラストラクチャシステム702はまた、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために用いられるリソースを提供するためのインフラストラクチャリソース730を含んでいてもよい。一実施形態では、インフラストラクチャリソース730は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためのサーバ、ストレージ、およびネットワーキングリソースなどのハードウェアの予め統合され最適化された組合せを含んでいてもよい。
【0089】
いくつかの実施形態では、クラウドインフラストラクチャシステム702におけるリソースは、複数のユーザによって共有されてもよく、要望ごとに動的に再配分されてもよい。加えて、リソースは、さまざまな時間帯にユーザに配分されてもよい。たとえば、クラウドインフラストラクチャシステム730は、第1の時間帯における第1のセットのユーザが、特定数の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし、次に、異なる時間帯に位置する別のセットのユーザに同じリソースを再配分することを可能にし、これによりリソースの利用を最大化し得る。
【0090】
特定の実施形態では、クラウドインフラストラクチャシステム702のさまざまなコンポーネントまたはモジュールによって共有されるとともに、クラウドインフラストラクチャシステム702が提供するサービスによって共有される、いくつかの内部共有サービス732が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウィルススキャニングおよびホワイトリストサービス、高可用性、バックアップおよび復旧サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを、何ら限定されることなく含み得る。
【0091】
特定の実施形態では、クラウドインフラストラクチャシステム702は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえば、SaaSサービス、PaaSサービス、およびIaaSサービス)の包括的管理を提供し得る。一実施形態では、クラウド管理機能は、クラウドインフラストラクチャシステム702などが受取った顧客のサブスクリプションをプロビジョニングし、管理し、追跡するための能力を含んでいてもよい。
【0092】
一実施形態では、図に示すように、クラウド管理機能は、オーダー管理モジュール720、オーダーオーケストレーションモジュール722、オーダープロビジョニングモジュール724、オーダー管理および監視モジュール726、ならびにアイデンティティ管理モジュール728などの1つ以上のモジュールによって提供されてもよい。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、または任意の他の適切な構成および/もしくは組合せであり得る、1つ以上のコンピュータおよび/またはサーバを含んでいてもよく、またはそれらを用いて提供されてもよい。
【0093】
例示的な動作734では、クライアントデバイス704、706または708などのクライアントデバイスを使用する顧客は、クラウドインフラストラクチャシステム702によって提供される1つ以上のサービスを要求するとともに、クラウドインフラストラクチャシステム702によって提供される1つ以上のサービスについてサブスクリプションオーダーを出すことにより、クラウドインフラストラクチャシステム702と対話してもよい。特定の実施形態では、顧客は、クラウドユーザインターフェイス(User Interface:UI)、クラウドUI712、クラウドUI714および/またはクラウドUI716にアクセスし、これらのUIを介してサブスクリプションオーダーを出してもよい。顧客がオーダーを出したことに応答してクラウドインフラストラクチャシステム702が受取ったオーダー情報は、顧客と、顧客が加入するつもりでありクラウドインフラストラクチャシステム702によって提供される1つ以上のサービスとを識別する情報を含んでいてもよい。
【0094】
顧客がオーダーを出した後、オーダー情報がクラウドUI712、714、および/または716を介して受取られる。
【0095】
動作736では、オーダーがオーダーデータベース718に格納される。オーダーデータベース718は、クラウドインフラストラクチャシステム718によって動作されるとともに他のシステム要素とともに動作される、いくつかのデータベースのうちの1つであり得る。
【0096】
動作738では、オーダー情報がオーダー管理モジュール720へ転送されてもよい。場合によっては、オーダー管理モジュール720は、オーダーを検証し、検証後にオーダーを予約するといった、オーダーに関連する請求機能および課金機能を実行するように構成されてもよい。
【0097】
動作740では、オーダーに関する情報がオーダーオーケストレーションモジュール722へ通信される。オーダーオーケストレーションモジュール722は、顧客によって出されたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレーションするために、オーダー情報を利用してもよい。場合によっては、オーダーオーケストレーションモジュール722は、オーダープロビジョニングモジュール724のサービスを用いて加入済みサービスをサポートするために、リソースのプロビジョニングをオーケストレーションしてもよい。
【0098】
特定の実施形態では、オーダーオーケストレーションモジュール722は、各オーダーに関連付けられたビジネスプロセスの管理を可能にして、オーダーがプロビジョニングへ進むべきかどうかを判断するためにビジネスロジックを適用する。動作1142では、新規サブスクリプションについてのオーダーを受取ると、オーダーオーケストレーションモジュール722は、リソースを配分してサブスクリプションオーダーの遂行に必要とされるそれらのリソースを構成することを求める要求を、オーダープロビジョニングモジュール724に送信する。オーダープロビジョニングモジュール724は、顧客によってオーダーされたサービスのためのリソースの配分を可能にする。オーダープロビジョニングモジュール724は、クラウドインフラストラクチャシステム700によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために用いられる物理実現層との間の抽象化のレベルを提供する。オーダーオーケストレーションモジュール722はこのため、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか否か、または予めプロビジョニングされて要求時にのみ配分/割当てがなされるか否かといった実現例の詳細から切り離されてもよい。
【0099】
動作744では、サービスおよびリソースが一旦プロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム702のオーダープロビジョニングモジュール724によってクライアントデバイス704、706、および/または708上の顧客へ送信されてもよい。
【0100】
動作746では、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール726によって管理および追跡されてもよい。場合によっては、オーダー管理および監視モジュール726は、用いられるストレージの量、転送されるデータの量、ユーザの数、システムアップタイムおよびシステムダウンタイムの量などの、サブスクリプションオーダーにおけるサービスについての使用率統計を収集するように構成されてもよい。
【0101】
特定の実施形態では、クラウドインフラストラクチャシステム700はアイデンティティ管理モジュール728を含み得る。アイデンティティ管理モジュール728は、クラウドインフラストラクチャシステム700においてアクセス管理および認証サービスなどのアイデンティティサービスを提供するように構成されてもよい。いくつかの実施形態では、アイデンティティ管理モジュール728は、クラウドインフラストラクチャシステム702によって提供されるサービスを利用したい顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報と、さまざまなシステムリソース(たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してそれらの顧客がどのアクションを行なうことが認可されているかを記述する情報とを含み得る。アイデンティティ管理モジュール728はまた、各顧客についての記述的情報と、その記述的情報が誰によってどのようにアクセスされて修正され得るかについての記述的情報との管理を含んでいてもよい。
【0102】
図8は、本発明のさまざまな実施形態が実現され得る例示的なコンピュータシステム800を示す。システム800は、上述のコンピュータシステムのうちのいずれかを実現するために使用されてもよい。図に示すように、コンピュータシステム800は、バスサブシステム802を介していくつかの周辺サブシステムと通信する処理部804を含む。これらの周辺サブシステムは、処理加速部806と、I/Oサブシステム808と、ストレージサブシステム818と、通信サブシステム824とを含み得る。ストレージサブシステム818は、有形のコンピュータ可読記憶媒体822とシステムメモリ810とを含む。
【0103】
バスサブシステム802は、コンピュータシステム800のさまざまなコンポーネントおよびサブシステムを意図通りに互いに通信させるためのメカニズムを提供する。バスサブシステム802は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。バスサブシステム802は、さまざまなバスアーキテクチャのうちのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであり得る。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、強化ISA(EISA)バス、ビデオエレクトロニクス標準組織(Video Electronics Standards Association:VESA)ローカルバス、および周辺コンポーネント相互接続(Peripheral Component Interconnect:PCI)バスを含んでいてもよく、それは、IEEE P1386.1規格で製造されるメザニンバスとして実現可能である。
【0104】
1つ以上の集積回路(たとえば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現され得る処理部804は、コンピュータシステム800の動作を制御する。処理部804には1つ以上のプロセッサが含まれていてもよい。これらのプロセッサはシングルコアまたはマルチコアプロセッサを含んでいてもよい。特定の実施形態では、処理部804は1つ以上の独立した処理部832および/または834として実現されてもよく、各処理部にはシングルプロセッサまたはマルチコアプロセッサが含まれ得る。他の実施形態では、処理部804はまた、2つのデュアルコアプロセッサをシングルチップへと集積することによって形成されるクアッドコア処理部として実現されてもよい。
【0105】
さまざまな実施形態では、処理部804は、プログラムコードに応答してさまざまなプログラムを実行できるとともに、同時に実行される複数のプログラムまたはプロセスを維持できる。任意の所与の時間において、実行されるべきプログラムコードのうちのいくつかまたはすべては、プロセッサ804および/またはストレージサブシステム818に常駐し得る。好適なプログラミングを通して、プロセッサ804は、上述のさまざまな機能を提供できる。コンピュータシステム800は加えて、デジタル信号プロセッサ(digital signal processor:DSP)、専用プロセッサなどを含み得る処理加速部806を含んでいてもよい。
【0106】
I/Oサブシステム808は、ユーザインターフェイス入力デバイスとユーザインターフェイス出力デバイスとを含み得る。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付き音声入力デバイス、マイクロホン、および他のタイプの入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスは、たとえば、ジェスチャーおよび口頭コマンドを使用するナチュラルユーザインターフェイスを介してマイクロソフトXbox(登録商標)360ゲームコントローラなどの入力デバイスをユーザが制御し、それと対話することを可能にする、マイクロソフトKinect(登録商標)運動センサなどの運動感知および/またはジェスチャー認識デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、ユーザから目の活動(たとえば、写真撮影中および/またはメニュー選択中の「まばたき」)を検出し、アイジェスチャーを入力デバイス(たとえば、グーグル・グラス(登録商標))への入力として変換する、グーグル・グラス(登録商標)まばたき検出器などのアイジェスチャー認識デバイスを含んでいてもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえば、Siri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでいてもよい。
【0107】
ユーザインターフェイス入力デバイスはまた、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、音声/視覚デバイス、たとえば、スピーカ、デジタルカメラ、デジタルビデオカメラ、携帯型メディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザー測距器、および視線追跡デバイスなどを、何ら限定されることなく含んでいてもよい。加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン放出断層撮影装置、医療用超音波検査装置などの医療用撮像入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含んでいてもよい。
【0108】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、表示灯、または、音声出力デバイスなどの非視覚的ディスプレイを含んでいてもよい。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するディスプレイなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム800からユーザまたは他のコンピュータへ情報を出力するためのあらゆる可能なタイプのデバイスおよびメカニズムを含むよう意図されている。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドホン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイスを、何ら限定されることなく含んでいてもよい。
【0109】
コンピュータシステム800は、現在システムメモリ810内に位置するように示されているソフトウェア要素を含むストレージサブシステム818を含んでいてもよい。システムメモリ810は、処理部804上でロード可能および実行可能なプログラム命令、ならびに、これらのプログラムの実行中に生成されたデータを格納してもよい。
【0110】
コンピュータシステム800の構成およびタイプに応じて、システムメモリ810は、揮発性(ランダムアクセスメモリ(random access memory:RAM)など)および/または不揮発性(読取り専用メモリ(read-only memory:ROM)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理部804に直ちにアクセス可能である、および/または、処理部804によって現在操作および実行されている、データおよび/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ810は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含んでいてもよい。いくつかの実現例では、起動中などにコンピュータシステム800内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、典型的にはROMに格納されてもよい。限定ではなく例示のために、システムメモリ810はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management systems:RDBMS)などを含み得るアプリケーションプログラム812と、プログラムデータ814と、オペレーティングシステム816とを示す。例として、オペレーティングシステム816は、マイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、および/またはリナックスオペレーティングシステムのさまざまなバージョン、商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX様オペレーティングシステム(さまざまなGNU/リナックスオペレーティングシステム、グーグル・クローム(登録商標)OSなどを何ら限定されることなく含む)、および/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10OS、パーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含んでいてもよい。
【0111】
ストレージサブシステム818はまた、いくつかの実施形態の機能を提供するデータ構造および基本プログラミングを格納するための有形のコンピュータ可読記憶媒体を提供し得る。プロセッサによって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム818に格納されてもよい。これらのソフトウェアモジュールまたは命令は、処理部804によって実行されてもよい。ストレージサブシステム818はまた、本発明に従って用いられるデータを格納するためのリポジトリを備えてもよい。
【0112】
ストレージサブシステム800はまた、コンピュータ可読記憶媒体822にさらに接続され得るコンピュータ可読記憶媒体リーダ820を含んでいてもよい。コンピュータ可読記憶媒体822は、システムメモリ810とともに、およびオプションでシステムメモリ810と組合わされて、リモート、ローカル、固定および/またはリムーバブルの記憶装置に加えて、コンピュータ可読情報を一時的におよび/またはより永続的に含み、格納し、伝送し、検索するための記憶媒体を包括的に表わし得る。
【0113】
コードまたはコードの一部を含むコンピュータ可読記憶媒体822はまた、情報の格納および/または伝送のための任意の方法または技術において実現された揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体などを含むがこれらに限定されない記憶媒体および通信媒体を含む、当該技術分野において公知であるかまたは当該技術分野において使用されている任意の適切な媒体を含み得る。これは、RAM、ROM、電子的消去可能プログラマブルROM(electronically erasable programmable ROM:EEPROM)、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(digital versatile disk:DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体といった、有形のコンピュータ可読記憶媒体を含み得る。これはまた、所望の情報を伝送するために使用可能であり得るとともにコンピューティングシステム800によってアクセス可能であるデータ信号、データ伝送、または任意の他の媒体などの非有形のコンピュータ可読媒体を含み得る。
【0114】
例として、コンピュータ可読記憶媒体822は、非リムーバブルな不揮発性磁気媒体との間で読出および書込を行なうハードディスクドライブ、リムーバブルな不揮発性磁気媒体との間で読出および書込を行なう磁気ディスクドライブ、ならびに、CD ROM、DVD、Blu-Ray(登録商標)ディスク、または他の光学媒体などのリムーバブルな不揮発性光ディスクとの間で読出および書込を行なう光ディスクドライブを含んでいてもよい。コンピュータ可読記憶媒体822は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るがこれらに限定されない。コンピュータ可読記憶媒体822はまた、フラッシュメモリベースのソリッドステートドライブ(solid-state drive:SSD)、エンタープライズフラッシュドライブ、ソリッドステートROMなどの、不揮発性メモリに基づいたSSD、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSDなどの、揮発性メモリに基づいたSSD、および、DRAMベースのSSDとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含んでいてもよい。ディスクドライブおよびそれらの関連するコンピュータ可読媒体は、コンピュータシステム800のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを備えてもよい。
【0115】
通信サブシステム824は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム824は、コンピュータシステム800とは別のシステムからデータを受取り、別のシステムにデータを送信するためのインターフェイスとして機能する。たとえば、通信サブシステム824は、コンピュータシステム800がインターネットを介して1つ以上のデバイスに接続できるようにしてもよい。いくつかの実施形態では、通信サブシステム824は、(たとえば、3G、4G、またはEDGE(enhanced data rates for global evolution:エンハンスト・データレート・フォー・グローバル・エボリューション)、WiFi(IEEE802.11ファミリー規格)、もしくは他のモバイル通信技術、もしくはそれらの任意の組合せといった携帯電話技術、高度なデータネットワーク技術を使用した)無線音声および/もしくはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバコンポーネント、全地球測位システム(global positioning system:GPS)受信機コンポーネント、ならびに/または他のコンポーネントを含み得る。いくつかの実施形態では、通信サブシステム824は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえば、イーサネット(登録商標))を提供することができる。
【0116】
いくつかの実施形態では、通信サブシステム824はまた、入力通信を構造化および/または非構造化データフィード826、イベントストリーム828、イベントアップデート830などの形態で、コンピュータシステム800を使用し得る1人以上のユーザのために受取ってもよい。
【0117】
例として、通信サブシステム824は、ツイッター(登録商標)フィード、フェースブック(登録商標)アップデート、リッチ・サイト・サマリー(Rich Site Summary:RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイムアップデートなどの、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード826をリアルタイムで受取るように構成されてもよい。
【0118】
加えて、通信サブシステム824はまた、リアルタイムイベントのイベントストリーム828および/またはイベントアップデート830を含み得る、明確な終わりがなく本質的に連続的または無限であり得る連続データストリームの形態でデータを受取るように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などを含んでいてもよい。
【0119】
通信サブシステム824はまた、構造化および/または非構造化データフィード826、イベントストリーム828、イベントアップデート830などを、コンピュータシステム800に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
【0120】
コンピュータシステム800は、ハンドヘルド携帯デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグル・グラス(登録商標)頭部装着型ディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、さまざまなタイプのうちの1つであり得る。
【0121】
コンピュータおよびネットワークが絶えず変化するという性質を持っているため、図に示されるコンピュータシステム800の説明は特定の一例として意図されるものに過ぎない。図に示されるシステムよりも多いかまたは少ないコンポーネントを有する多くの他の構成が実現可能である。たとえば、カスタマイズされたハードウェアが使用されてもよく、および/または、特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)または組合せて実現されてもよい。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が採用されてもよい。ここに提供される開示および教示に基づくと、当業者であれば、さまざまな実施形態を実現するための他のやり方および/または方法を理解するであろう。
【0122】
前述の記載では、本発明のさまざまな実施形態の完全な理解を提供するために、説明の目的で、多くの特定の詳細が述べられた。しかしながら、これらの特定の詳細のうちのいくつかがなくても本発明の実施形態が実施され得ることは、当業者には明らかであるだろう。他の例では、周知の構造およびデバイスはブロック図の形で示される。
【0123】
前述の記載は例示的な実施形態のみを提供しており、この開示の範囲、利用可能性、または構成を限定するようには意図されていない。むしろ、例示的な実施形態の前述の記載は、例示的な実施形態を実現するための実施可能な説明を当業者に提供するだろう。添付の特許請求の範囲で述べられるような本発明の精神および範囲から逸脱することなく、要素の機能および配置にさまざまな変更がなされ得ることが理解されるはずである。
【0124】
前述の記載では、実施形態の完全な理解を提供するために具体的な詳細が与えられる。しかしながら、これらの具体的な詳細がなくても実施形態が実施され得ることが当業者に理解されるだろう。たとえば、実施形態を必要以上に詳細に記して不明瞭にすることがないように、回路、システム、ネットワーク、プロセス、および他のコンポーネントはブロック図の形のコンポーネントとして示されていることもある。他の例では、実施形態を不明瞭にしないように、周知の回路、プロセス、アルゴリズム、構造、および技術は不要な詳細なしで示されている可能性もある。
【0125】
また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されている可能性もあることに留意されたい。フローチャートでは動作が順次プロセスとして説明されている可能性もあるが、動作の多くは並行にまたは同時に行なうことが可能である。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了すると終了するが、図に含まれない追加のステップを有していてもよい。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応していてもよい。プロセスがある機能に対応している場合、その終了は、その機能が呼出し元の機能または主機能に戻ることに対応し得る。
【0126】
「コンピュータ可読媒体」という語は、命令および/またはデータを格納、収容または担持することができる、携帯型または固定式記憶装置、光学記憶装置、無線チャネル、ならびにさまざまな他の媒体を含むが、それらに限定されない。コードセグメントまたはマシン実行可能命令は、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文の任意の組合せを表わし得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことによって、および/または受取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の好適な手段を介して渡されてもよく、転送されてもよく、または伝送されてもよい。
【0127】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実現される場合、必要なタスクを行なうためのプログラムコードまたはコードセグメントが、マシン可読媒体に格納されてもよい。プロセッサが必要なタスクを行なってもよい。
【0128】
前述の明細書では、本発明の局面がその特定の実施形態に関連付けて説明されているが、当業者であれば、本発明がそれらに限定されないことを認識するだろう。上述の発明のさまざまな特徴および局面は、個々にまたはともに使用されてもよい。さらに、実施形態は、明細書のより広範な精神および範囲から逸脱することなく、ここに説明されたものを超える任意の数の環境および用途において利用され得る。したがって、明細書および添付の図面は、限定的ではなく例示的なものとみなされるべきである。
【0129】
加えて、例示のために、方法は特定の順序で説明されてきた。代替的な実施形態では、これらの方法が説明されたものとは異なる順序で実行され得ることが認識されるはずである。上述の方法はハードウェアコンポーネントによって実行されてもよく、または、汎用もしくは専用プロセッサ、または命令でプログラミングされた論理回路などのマシンに当該方法を行なわせるために使用され得るマシン実行可能命令のシーケンスで具現化され得ることも認識されるはずである。これらのマシン実行可能命令は、1つ以上のマシン可読媒体、たとえば、CD-ROMまたは他のタイプの光ディスク、フロッピー(登録商標)ディスケット、ROM、RAM、EPROM、EEPROM、磁気カードもしくは光カード、フラッシュメモリ、または、電子命令を格納するのに適した他のタイプのマシン可読媒体に格納されてもよい。代替的には、当該方法はハードウェアとソフトウェアとの組合せによって実行されてもよい。