(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-06
(45)【発行日】2023-02-14
(54)【発明の名称】アプリケーションのセキュリティを発見および管理するための技術
(51)【国際特許分類】
G06F 21/55 20130101AFI20230207BHJP
G06F 21/57 20130101ALI20230207BHJP
【FI】
G06F21/55 320
G06F21/57 370
【外国語出願】
(21)【出願番号】P 2021209410
(22)【出願日】2021-12-23
(62)【分割の表示】P 2018544782の分割
【原出願日】2017-02-24
【審査請求日】2022-01-21
(32)【優先日】2017-02-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2017-02-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-02-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】キルティ,ガネーシュ
(72)【発明者】
【氏名】ビスワス,カマレンドゥ
(72)【発明者】
【氏名】ペレラ,スメーダ・ナリン
(72)【発明者】
【氏名】シム,アディナ・フロリナ
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2015-142324(JP,A)
【文献】特開2014-192638(JP,A)
【文献】米国特許出願公開第2015/0106935(US,A1)
【文献】特開2015-222471(JP,A)
【文献】特開2011-076188(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、前記方法は、セキュリティ管理システムのコンピュータシステムにおいて、
組織のネットワーク上のクライアントデバイスに関連するネットワーク・アクティビティについてのデータを含むファイルを取得するステップを含み、前記ネットワーク・アクティビティは、前記クライアントデバイスが前記組織のネットワークの一部として動作しているときに生成され、前記方法は、さらに、
前記ネットワーク・アクティビティについてのデータを使用して、前記クライアントデバイスが前記組織のネットワークの一部として動作している間に前記クライアントデバイスがアクセスしたアプリケーションを特定するステップを含み、前記アプリケーションは、サービスプロバイダのネットワークから前記クライアントデバイスに提供され、前記組織のネットワークおよび前記サービスプロバイダのネットワークは、異なるネットワークであり、前記方法は、さらに、
前記ネットワーク・アクティビティについてのデータを使用して、前記アプリケーションに関連するアクセス情報を特定するステップを含み、前記アクセス情報は、前記クライアントデバイスからの前記アプリケーションのアクセスを示すネットワーク・アクティビティを含み、前記方法は、さらに、
前記アクセス情報を使用して、前記アプリケーションについてのネットワークドメイン情報を特定するステップを含み、前記ネットワークドメイン情報は、前記サービスプロバイダを識別し、前記方法は、さらに、
前記ネットワークドメイン情報を使用して、前記アプリケーションについてのセキュリティ情報を求めるステップを含み、前記セキュリティ情報は、前記アプリケーションに関連するセキュリティ脅威を述べる1つ以上のインジケータを含み、前記方法は、さらに、
前記セキュリティ情報を使用して、前記アプリケーションの安全度合いを演算するステップと、
前記安全度合いに基づいてセキュリティポリシーを適用することによって、前記アプリケーションに対する救済操作を実行するステップとを含む、コンピュータにより実現される方法。
【請求項2】
前記セキュリティ情報は、
第1の値および第2の値を含み、前記第1の値は、前記アプリケーションに
関連する第1のセキュリティ脅威の第1インジケータであ
り、前記第2の値は、前記アプリケーションに
関連する第2のセキュリティ脅威の第2インジケータであ
り、前記第1インジケータは、第1のデータソースから取得され、前記第2インジケータは、第2のデータソースから取得される、請求項1に記載のコンピュータにより実現される方法。
【請求項3】
前記安全度合いを演算するステップは、
前記第1の値に第1の重み値を乗算することに基づ
く第1の重み付き値を演算するステップと、
前記第2の値に第2の重み値を乗算することに基づ
く第2の重み付き値を演算するステップと、
前記第1の重み付き値と前記第2の重み付き値との総和に基づく
第1の和を演算するステップと、
前記第1の重み値と前記第2の重み値との総和に基づく
第2の和を演算するステップとを含み、前記安全度合いは、前記
第1の和を前記
第2の和で除算することに基づいて演算される値である、請求項2に記載のコンピュータにより実現される方法。
【請求項4】
前記第1の重み値は、前記第2の重み値とは異なり、前記第1の値は、前記第2の値とは異なる、請求項3に記載のコンピュータにより実現される方法。
【請求項5】
前記ネットワーク・アクティビティについてのデータを
含む前記ファイルを取得するステップは、前記
組織のネットワーク上の1つ以上のネットワーク機器から
1つ以上のファイルを取得するステップを含み、前記
組織のネットワークは、前記組織のコンピューティング環境において保護され、
前記コンピューティング環境は、パブリックネットワークに対して安全である、請求項
1~4のいずれか1項に記載のコンピュータにより実現される方法。
【請求項6】
前記アプリケーションの組織情報を特定するステップと、
前記アプリケーションについての情報を表示するグラフィカルインタフェースを生成するステップとをさらに含み、前記アプリケーションについての情報は、前記組織情報と、前記アプリケーションに
対して演算された
前記安全度合いとに基づいて表示され、前記グラフィカルインタフェースは、前記アプリケーションに対して行われた前記救済操作を示す、
請求項
1~5のいずれか1項に記載のコンピュータにより実現される方法。
【請求項7】
前記
ネットワーク・アクティビティについてのデータは、前記
組織のネットワーク上の通信用のデータであり、前記アプリケーションを特定するステップは、前記データを処理して、前記アプリケーションの要求に対応する
通信を識別するステップを含み、前記
通信は、前記アプリケーションの要求についてのアプリケーション情報を示し、前記アプリケーション情報は、前記アプリケーションが前記
クライアントデバイスによってアクセスされたと特定するために使用される、
請求項
1~6のいずれか1項に記載のコンピュータにより実現される方法。
【請求項8】
前記アクセス情報は、前記
通信を使用して特定され、前記アクセス情報は、前記アプリケーションについての前記ネットワーク・アクティビティのタイムスタンプと、前記アプリケーションを提供するシステムのIP(Internet Protocol)アドレスと、前記アプリケーションにアクセスするために使用されたデバイスのMAC(Media Access Control)アドレスと、前記
クライアントデバイスのユーザについてのユーザ情報とを示す、請求項7に記載のコンピュータにより実現される方法。
【請求項9】
前記アクセス情報は、前記アプリケーションを提供するシステムのIPアドレスを示し、前記
ネットワークドメイン情報を特定するステップは、前記アプリケーションのIPアドレスに基づいて、前記アプリケーションをホストするドメインに対応する前記
ネットワークドメイン情報を求めるクエリを実行するステップを含む、
請求項
1~8のいずれか1項に記載のコンピュータにより実現される方法。
【請求項10】
前記アクセス情報は、前記アプリケーションのソース情報を示し、前記ソース情報は、ホストが提供する前記アプリケーションの場所を示し、前記
ネットワークドメイン情報を
特定するステップは、前記アプリケーションのソース情報に基づいて前記アプリケーションの認証を求める要求を前記ホストに送るステップを含む、
請求項
1~9のいずれか1項に記載のコンピュータにより実現される方法。
【請求項11】
前記セキュリティポリシーを適用するステップは、前記安全度合いが前記アプリケーションのリスク閾値を満たすかどうかを決定するステップを含み、前記救済操作は、前記アプリケーションが前記
組織のネットワーク上でアクセスされないよう、前記
組織のネットワークを設定することである、
請求項
1~10のいずれか1項に記載のコンピュータにより実現される方法。
【請求項12】
前記
ネットワーク・アクティビティについてのデータは、複数のユーザに関連するネットワーク・アクティビティを含み、前記複数のユーザは、前記
組織のネットワーク上のテナントであり、前記救済操作は、前記複数のユーザによる前記アプリケーションへのアクセスを防止することである、
請求項
1~11のいずれか1項に記載のコンピュータにより実現される方法。
【請求項13】
前記アプリケーションに対する救済操作は、グラフィカルインタフェース
を生成することと、
前記グラフィカルインタフェースに、前記アプリケーションの構成操作の調整を求めるプロンプトを表示させることとを含み、前記調整は、前記安全度合いに適用された前記セキュリティポリシーに基づく、
請求項
1~12のいずれか1項に記載のコンピュータにより実現される方法。
【請求項14】
1つ以上のプロセッサと、
前記1つ以上のプロセッサにアクセス可能なメモリとを備え、前記メモリは、1つ以上の命令を格納し、前記1つ以上の命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
複数の動作を実行させ、前記
複数の動作は、
組織のネットワーク上のクライアントデバイスに関連するネットワーク・アクティビティについてのデータを含むファイルを取得する動作を含み、前記ネットワーク・アクティビティは、前記クライアントデバイスが前記組織のネットワークの一部として動作しているときに生成され、前記複数の動作は、さらに、
前記ネットワーク・アクティビティについてのデータを使用して、前記クライアントデバイスが前記組織のネットワークの一部として動作している間に前記クライアントデバイスがアクセスしたアプリケーションを特定する動作を含み、前記アプリケーションは、サービスプロバイダのネットワークから前記クライアントデバイスに提供され、前記組織のネットワークおよび前記サービスプロバイダのネットワークは、異なるネットワークであり、前記複数の動作は、さらに、
前記ネットワーク・アクティビティについてのデータを使用して、前記アプリケーションに関連するアクセス情報を特定する動作を含み、前記アクセス情報は、前記クライアントデバイスからの前記アプリケーションのアクセスを示すネットワーク・アクティビティを含み、前記複数の動作は、さらに、
前記アクセス情報を使用して、前記アプリケーション
に関連するネットワークドメイン情報を求める1つ以上のクエリを実行する動作と、
前記アプリケーションについてのセキュリティ情報を求める動作とを含み、前記セキュリティ情報は、前記アプリケーションに関連するセキュリティ脅威を述べる1つ以上のインジケータを含み、前記複数の動作は、さらに、
前記
ネットワークドメイン情報および前記セキュリティ情報を使用して、前記アプリケーションの安全度合いを演算する動作と、
前記安全度合いに基づいてセキュリティポリシーを適用することによって、前記アプリケーションに対する救済操作を実行する動作とを含む、セキュリティ管理システム。
【請求項15】
前記
セキュリティ情報は、前記アプリケーションによる第1のセキュリティ脅威の第1インジケータである第1の値と、前記アプリケーションによる第2のセキュリティ脅威の第2インジケータである第2の値とを含み、
前記安全度合いを演算する動作は、
前記第1の値に第1の重み値を乗算することに基づ
く第1の重み付き値を演算する動作と、
前記第2の値に第2の重み値を乗算することに基づ
く第2の重み付き値を演算する動作と、
前記第1の重み付き値と前記第2の重み付き値との総和に基づく
第1の和を演算する動作と、
前記第1の重み値と前記第2の重み値との総和に基づく
第2の和を演算する動作とを含み、
前記安全度合いは、前記
第1の和を前記
第2の和で除算することに基づいて演算される値である、請求項14に記載のセキュリティ管理システム。
【請求項16】
コンピュータにより実現される方法であって、前記方法は、セキュリティ管理システムのコンピュータシステムにおいて、
第1のサービスプロバイダシステムから第1アプリケーションについての第1データを
取得するステップを含み、前記第1アプリケーションは、前記第1のサービスプロバイダシステムからアクセスされ、前記第1アプリケーションのアクセスは、ユーザに関連するアクセスであり、前記方法は、さらに、
第2のサービスプロバイダシステムから第2アプリケーションについての第2データを
取得するステップを含み、前記第2アプリケーションは、前記第2のサービスプロバイダシステムからアクセスされ、前記第2アプリケーションのアクセスは、前記ユーザに関連するアクセスであり、前記方法は、さらに、
前記第1データおよび前記第2データを使用して、前記ユーザがアクセスした第3アプリケーションのアクセス情報を特定するステップと、
前記アクセス情報を使用して、前記第3アプリケーションを提供するプロバイダシステムについての
ネットワークドメイン情報を検索するステップと、
前記第3アプリケーションについてのセキュリティ情報を求めるステップと、
前記
ネットワークドメイン情報および前記セキュリティ情報を使用して、アクセスされた前記第3アプリケーションの安全度合いを演算するステップと、
前記安全度合いに基づいてセキュリティポリシーを適用することによって、前記第3アプリケーションに対する救済操作を実行するステップとを含む、コンピュータにより実現される方法。
【請求項17】
前記第1のサービスプロバイダシステムは、
前記第2のサービスプロバイダシステムとは異なり、前記第1のサービスプロバイダシステムは、前記第1アプリケーションへのアクセスを、第1のクラウドサービスとして提供し、前記第2のサービスプロバイダシステムは、前記第2アプリケーションへのアクセスを、第2のクラウドサービスとして提供する、請求項16に記載のコンピュータにより実現される方法。
【請求項18】
前記第3アプリケーションの組織情報を特定するステップと、
前記第3アプリケーションについての情報を表示するグラフィカルインタフェースを生成するステップとをさらに含み、前記
第3アプリケーションについての情報は、前記
組織情報と、前記第3アプリケーション
に対して演算された前記安全度合いとに基づいて表示され、前記グラフィカルインタフェースは、前記第3アプリケーションに対して実行された救済操作を示す、請求項16または17に記載のコンピュータにより実現される方法。
【請求項19】
前記第1データは、前記第1アプリケーションが、前記第3アプリケーションを通して前記ユーザによってアクセスされたことを示し、前記第2データは、前記第2アプリケーションが、前記第3アプリケーションを通して前記ユーザによってアクセスされたことを示し、前記アクセス情報を特定
するステップは、前記第1アプリケーション
へのアクセスおよび前記第2アプリケーションへのアクセスを提供するために前記第3アプリケーションがアクセスされたと判定するステップを含む、請求項16~18
のいずれか1項に記載のコンピュータにより実現される方法。
【請求項20】
前記セキュリティ情報は、前記
第3アプリケーションによる第1のセキュリティ脅威の第1インジケータである第1の値
と、前記
第3アプリケーションによる第2のセキュリティ脅威の第2インジケータである第2の値
とを含み、前記第1インジケータは、第1のソースから取得され、前記第1の値は、前記第2の値とは異なり、前記第2インジケータは、第2のソースから取得され、前記安全度合いを演算するステップは、
前記第1の値に第1の重み値を乗算することに基づ
く第1の重み付き値を演算するステップと、
前記第2の値に第2の重み値を乗算することに基づ
く第2の重み付き値を演算するステップとを含み、前記第1の重み値は、前記第2の重み値とは異なり、
前記安全度合いを演算するステップは、さらに、
前記第1の重み付き値と前記第2の重み付き値との総和に基づく
第1の和を演算するステップと、
前記第1の重み値と前記第2の重み値との総和に基づく
第2の和を演算するステップとを含み、
前記安全度合いは、前記
第1の和を前記
第2の和で除算することに基づいて演算される値である、請求項16~19
のいずれか1項に記載のコンピュータにより実現される方法。
【請求項21】
請求項1~1
3および16~20のいずれか1項に記載の方法をコンピュータに実行さ
せる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2017年2月23日に出願され、「TECHNIQUES FOR DISCOVERING AND MANAGING SECURITY OF APPLICATIONS」と題された、下記の特許出願の各々に基づく優先権および利益を主張する米国通常特許出願第15/441,154号[代理人整理番号:088325-1032871(185500US)]に基づく優先権および利益を主張する。
【0002】
1)2016年2月26日に出願され、「Systems and Methods for Discovering and Monitoring Unsanctioned Enterprise Assets」と題された米国仮出願第62/300,
715号[代理人整理番号:088325-1032870(185501US)]、
2)2017年2月17日に出願され、「Systems and Methods for Discovering and Monitoring Unsanctioned Enterprise Assets」と題された米国仮出願第62/460,
716号[代理人整理番号:088325-1039197(185502US)]。
【0003】
上記特許出願の各々のすべての記載内容を、事実上、引用により本明細書に援用する。
【背景技術】
【0004】
背景
組織は、多くのテクノロジーデバイス、ソフトウェア、ハードウェア、および/またはコンピューティング・サービスに頼って、コンピューティング環境(たとえば、エンタープライズコンピューティング環境)を実現しているだろう。これらのコンピューティング環境は、ますます、「クラウド」環境として実現される、または、「クラウド」環境を使用して実現される。「クラウド」環境は、ローカルおよび遠隔でホストされるコンピューティングリソースおよびシステムの集合を表し得る。用語「クラウドコンピューティング」は、ネットワークを介した分散コンピューティングのさまざまな側面を指す。クラウドコンピューティング環境は、IaaS(Infrastructure As A Service)、PaaS(Platform As A Service)、SaaS(Software As A Service)、およびNaaS(Network
As A Service)を含む、さまざまなサービスモデルを実現してもよい。また、「クラウ
ド」は、1つのサービスプロバイダのデータストアおよびクライアントアプリケーションを指し得る。多くのアプリケーションは、デバイスが、デバイス単体で利用できる機能または能力以上の追加の機能または能力を得ることを可能にするために、クラウドコンピューティング環境を実現してもよい。このようなアプリケーションは、1つ以上のサービスプロバイダ(明細書において、「プロバイダ」とも称す)を使用して実装されてもよい。サービスプロバイダの各々は、1つ以上のコンピュータシステムを使用する1つ以上のサービスプロバイダシステム(明細書において、「プロバイダシステム」とも称す)を有する。このようなサービスプロバイダとして、Box、Dropbox、Microsoft、Docusign、Salesforce、Oracle、Amazonなどの企業やその他が挙げられる。サービスプロバイダの各々は、アプリケーションおよび/またはデータへのアクセスを可能にする多くの異なるアプリケーションまたは機能を、クラウドベースのサービスとして提供してもよい。
【発明の概要】
【発明が解決しようとする課題】
【0005】
コンピューティング環境への依存は、組織が承認したアプリケーションまたは承認していないアプリケーションの幅広い使用につながった。承認されたアプリケーションは、組織に登録されたアプリケーション、または組織に知られているアプリケーションであってもよい。場合によっては、アプリケーションは、組織によって配布されることによって承
認されてもよい。承認されていないアプリケーションは、組織に知られていないアプリケーション、および/または組織に関連付けもしくは登録されていないアプリケーションであってもよい。無認可のアプリケーションは、他とは独立して動作するアプリケーション、および認可された(IT管理された)アプリケーションにプラグインまたはアドオンとして統合されるサードパーティ統合アプリケーションを含み得る。承認されていようと承認されてなかろうと、多くのアプリケーションによって、組織のコンピューティング環境に大きなセキュリティリスクがもたらされる。セキュリティリスクは、セキュアでない方法での組織のプライベートネットワークへの露出、またはセキュリティ制御を通して制限されるべき個人に関する機密データへのアクセスを含む。セキュリティリスクをもたらすアプリケーションは、組織の管理下にある場合もあれば、そうでない場合もある。このように、これらのアプリケーションは、「シャドー」下で、または隠れた方法で操作されている可能性があり、組織によって知られていないおよび/またはセキュリティ制御のための制限がなされていない。さらに、アプリケーションの不明な使用は、帯域幅およびデータ記憶など、コンピューティングリソースの非効率的で過度の使用の一因となり得る。発見されていない使用は、組織のコンピューティング環境における性能、および重大なリソースへのアクセスに影響を与える可能性がある。
【0006】
規制されていない方法で操作されるアプリケーションは、承認されていない方法でサービスプロバイダからアクセスされる可能性がある。たとえば、組織の販売スタッフが、チームメンバと共同作業を行うためにスプレッドシートを共有するために、電子メールでスプレッドシートを送る代わりに、自身のモバイル機器にある無認可のファイル共有アプリケーションを使用するかもしれない。このようなアプリケーションの使用は、生産性の向上に貢献し得るが、組織にセキュリティリスクおよび法令順守上の問題をもたらしてしまう可能性もある。たとえば、アプリケーションが十分にセキュアでない場合、企業機密情報を含んだ機密資料は、情報漏えいしやすいだろう。このようなアプリケーションは、組織によって評価されないので、セキュリティ侵害に対抗する用意ができていない。また、いくつかの明らかに有用なアプリケーションは、故意または気づかないで、アドウェア、またはマルウェアさえも配ってしまっている可能性がある。多くの組織は、このようなアプリケーションまたはウェブサイトをブロックしようとするが、これでは、生産性に与える影響により、従業員を不満にさせてしまう。また、従業員は、たとえば、外部のVPNサービス、モバイルデータサービスなどを使用して、このような障壁を回避しようとする。しかしながら、組織におけるコンピューティング環境の管理は、疑わしいまたは悪意のあるアプリケーションを積極的に監視および制御できるように、使用中のすべてのアプリケーションに対する可視性を必要とする。
【課題を解決するための手段】
【0007】
概要
本開示は、全体的に、コンピューティング環境においてセキュリティを管理することに関し、より具体的には、組織のコンピューティング環境においてアプリケーションを発見および管理するための技術に関する。このような技術によって、組織が、組織のコンピューティング環境におけるセキュリティ脅威およびリスクを最小限に抑える目的でアプリケーションへのアクセスを監視および管理することが可能になるだろう。アプリケーションの使用を発見することによって、リソースの効率および消費を組織が効果的に監視および管理することが可能になり得、組織にとってのコンピューティング環境の性能が高められる。
【0008】
セキュリティ監視/制御システム(「セキュリティシステム」および「セキュリティ管理システム」とも称する)は、ネットワーク内または組織内のアプリケーションの使用を発見してもよい。組織のネットワークにおいてアクセスされている固有のアプリケーションを特定するために、サードパーティデータソース、ネットワークトラフィック、サービ
スプロバイダシステムを含むさまざまなソースを利用してもよいが、これらに限定されない。セキュリティ監視/制御システムは、アプリケーション使用を発見するための、ネットワーク上のエージェントを含む、分散した形で実現されてもよい。セキュリティ監視/制御システムは、組織用に使用されるデバイス上で使用されるアプリケーションついてのデータにアクセスするために、複数のサービスプロバイダシステム(たとえば、クラウドサービスプロバイダシステム)などの分散コンピュータシステムと通信してもよい。固有のアプリケーションを特定するために、セキュリティ監視/制御システムは、ネットワークトラフィックについてのネットワークデータを取得することができる。このような技術は、組織で使用されるアプリケーションのアクティビティへの詳細な可視性をもたらし得、これは、組織のコンピューティング環境におけるアプリケーション使用およびユーザ行動に関する異常または新たに出現する脅威を検出するのに役立ち得る。
【0009】
アプリケーションについての情報を特定するために、セキュリティ監視/制御システムは、1つ以上のデータソースの使用を含む、分析および相関分析を行うことができる。情報は、アプリケーションのプロバイダについての組織情報を含んでもよい。情報は、アプリケーションについてのセキュリティリスクインジケータについてのセキュリティ情報を含んでもよい。情報は、セキュリティ面など、アプリケーションの使用に関する特徴の1つ以上のインジケータ(たとえば、値)を含んでもよい。アプリケーションについての情報は、アプリケーションの安全度合い(measure of security)(「アプリケーション・
リスクスコア」)、およびユーザの安全度合い(「ユーザ・リスクスコア」)を演算するために使用されてもよい。安全度合いは、1つ以上の情報(たとえば、インジケータ)を使用して演算されてもよく、各情報は、その情報に対する重み値属性と組合わされている。アプリケーションまたはユーザによってもたらされた、アプリケーションの使用に基づくセキュリティの脅威を判定するために、スコアをセキュリティポリシーに関して分析してもよい。
【0010】
いくつかの実施形態において、ユーザ(たとえば、セキュリティ管理者)に、アプリケーションの使用についての情報を見るために、グラフィカルインタフェースが提供されてもよい。この情報は、アプリケーションのサービスプロバイダについての詳細、および/または異なる種類のセキュリティリスクを視覚化したものを提供してもよく、セキュリティリスクごとの重大度の度合いを示してもよい。グラフィカルインタフェースは、各セキュリティリスクに関するセキュリティポリシーに基づいて実行されるように救済操作を設定するための、インタラクティブグラフィカルインタフェースであってもよい。アプリケーションの不明な使用によるセキュリティリスクを特定および管理するのに苦労している組織に対して、このグラフィカルインタフェースは、組織が、すべてのアプリケーション使用(すべてではない場合、ほとんどのアプリケーション使用)を効率的に確実に発見し、コンピューティング環境におけるセキュリティリスクを最小限に抑え、かつ、コンピューティング関連のリソースのリソース消費を最大限に活用することを可能にする。少なくとも1つの実施形態において、セキュリティ監視/制御システムは、アプリケーション使用に関するリスクを評価し、そのリスクの重大度を自動的に判定するように構成されてもよい。リスクの重大度に基づいて、セキュリティ監視/制御システムは、1つ以上の命令を実行して、アプリケーションが許可するアクセスを拒否するか制限するかどうかを設定することができる。
【0011】
いくつかの実施形態において、セキュリティ監視/制御システム(セキュリティシステムまたはセキュリティ管理システムとも称する)は、コンピュータシステムを備えてもよく、本明細書に開示の方法および動作を実施するように構成されてもよい。コンピュータシステムは、1つ以上のプロセッサと、1つ以上のプロセッサにアクセス可能なメモリとを備えてもよく、メモリは、1つ以上の命令を格納し、1つ以上の命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、本明細書に開示の方法および
/または動作を実施させる。さらに他の実施形態は、本明細書に開示の方法および動作のための命令を使用および格納するシステムおよび非一時的な機械によって読取り可能な有形の記憶媒体に関する。いくつかの実施形態において、命令を格納した非一時的なコンピュータ読み取り可能な媒体は、プロセッサ上で実行されると本明細書に開示の方法を実行するように実装されてもよい。いくつかの実施形態において、1つ以上のプロセッサと、1つ以上のプロセッサにアクセス可能なメモリとを備え、メモリは、1つ以上の命令を格納し、1つ以上の命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに本明細書に開示の方法を実行させるシステムが、本明細書に開示される。いくつかの実施形態において、本明細書に開示の方法のうちのいずれかを実行するための手段を備えるシステムが開示される。
【0012】
少なくとも1つの実施形態において、セキュリティ管理システムのコンピュータシステムにおいてコンピュータにより実現される方法が開示される。ステップのすべては、セキュリティ管理システムによって実行されてもよい。この方法は、組織のネットワーク上のユーザによるネットワーク・アクティビティについてのデータを取得するステップを含んでもよい。方法は、ネットワーク・アクティビティについてのデータを使用して、ネットワーク上でユーザがアクセスしたアプリケーションを特定するステップを含んでもよい。方法は、ネットワーク・アクティビティについてのデータを使用して、ユーザがアクセスしたアプリケーションに対応するネットワーク・アクティビティについてのアクセス情報を特定するステップを含んでもよい。方法は、アクセス情報を使用して、アプリケーションについてのドメイン情報を検索するステップを含んでもよい。方法は、アプリケーションについてのセキュリティ情報を求めるステップを含んでもよい。方法は、セキュリティ情報を使用して、アクセスされたアプリケーションの安全度合いを演算するステップを含んでもよい。方法は、安全度合いに基づいてセキュリティポリシーを適用することによって、アプリケーションに対する救済操作を実行するステップを含んでもよい。
【0013】
いくつかの実施形態において、セキュリティ情報は、アプリケーションによる第1のセキュリティ脅威の第1インジケータである第1の値を含み、アプリケーションによる第2のセキュリティ脅威の第2インジケータである第2の値を含む。第1インジケータは、第1のデータソースから取得されてもよい。第2インジケータは、第2のデータソースから取得されてもよい。
【0014】
安全度合いを演算するステップは、第1の値に第1の重み値を乗算することに基づいて第1の重み付き値を演算するステップと、第2の値に第2の重み値を乗算することに基づいて第2の重み付き値を演算するステップと、第1の重み付き値と第2の重み付き値との総和に基づく重み付き総和を演算するステップと、第1の重み値と第2の重み値との総和に基づく重み総和を演算するステップとを含んでもよい。安全度合いは、重み付き総和を重み総和で除算することに基づいて演算される値であってもよい。いくつかの実施形態において、第1の重み値は、第2の重み値とは異なる。いくつかの実施形態において、第1の値は、第2の値とは異なる。
【0015】
いくつかの実施形態において、ネットワーク・アクティビティについてのデータを取得するステップは、ネットワーク上の1つ以上のネットワーク機器からネットワークデータを取得するステップを含む。ネットワークは、組織のコンピューティング環境において保護されてもよい。コンピューティング環境は、パブリックネットワークから守られてもよい。
【0016】
いくつかの実施形態において、方法は、アプリケーションの組織情報を特定するステップと、アプリケーションについての情報を表示するグラフィカルインタフェースを生成するステップとを含んでもよく、アプリケーションについての情報は、組織情報と、アプリ
ケーションについて演算された安全度合いとに基づいて表示される。グラフィカルインタフェースは、アプリケーションに対して行われた救済操作を示してもよい。いくつかの実施形態において、組織情報は、アプリケーションを提供するエンティティについての情報であり、組織情報は、アプリケーションについての1つ以上の属性を示してもよい。
【0017】
いくつかの実施形態において、得られたデータは、ネットワーク上の通信用のデータである。アプリケーションを特定するステップは、データを処理して、ユーザがアクセスしたアプリケーションの要求に対応する、データの部分を識別するステップを含んでもよい。データの部分は、アプリケーションの要求についてのアプリケーション情報を示してもよい。アプリケーション情報は、アプリケーションがユーザによってアクセスされたと特定するために使用されてもよい。いくつかの実施形態において、アプリケーションに対応するネットワーク・アクティビティについてのアクセス情報は、データの部分を使用して特定されてもよい。アクセス情報は、アプリケーションについてのネットワーク・アクティビティのタイムスタンプと、アプリケーションを提供するシステムのIPアドレスと、アプリケーションにアクセスするために使用されたデバイスのMAC(Media Access Control)アドレスと、ユーザについてのユーザ情報とを示してもよい。いくつかの実施形態において、アクセス情報は、アプリケーションを提供するシステムのIPアドレスを示す。ドメイン情報を検索するステップは、第1アプリケーションのIPアドレスに基づいて、アプリケーションをホストするドメインに対応するドメイン情報を求めるクエリを実行するステップを含む。いくつかの実施形態において、アクセス情報は、アプリケーションのソース情報を示し、ソース情報は、ホストが提供するアプリケーションの場所を示す。ドメイン情報を検索するステップは、アプリケーションのソース情報に基づいてアプリケーションの認証を求める要求をホストに送るステップを含んでもよい。
【0018】
いくつかの実施形態において、安全度合いに基づいてセキュリティポリシーを適用するステップは、安全度合いがアプリケーションのリスク閾値を満たすかどうかを決定するステップを含む。救済操作は、アプリケーションがネットワーク上でユーザによってアクセスされないよう、ネットワークを設定することであってもよい。
【0019】
いくつかの実施形態において、得られたデータは、さらに、組織のネットワーク上のテナントとしての複数のユーザによるネットワークについてのデータである。複数のユーザは、ユーザを含んでもよい。救済操作は、複数のユーザによるアプリケーションへのアクセスを防止することである。
【0020】
いくつかの実施形態において、アプリケーションに対する救済操作は、グラフィカルインタフェースに、安全度合いに適用されたセキュリティポリシーに基づいてアプリケーションの構成操作を調整するようにユーザに求めさせることを含む。
【0021】
いくつかの実施形態において、セキュリティ管理システムのコンピュータシステムにおいてコンピュータにより実現される方法が開示される。ステップのすべては、セキュリティ管理システムによって実行されてもよい。この方法は、ユーザが第1のサービスプロバイダシステムからアクセスした第1アプリケーションについての第1データを、第1のサービスプロバイダシステムから取得するステップを含んでもよい。方法は、ユーザが第2のサービスプロバイダシステムからアクセスした第2アプリケーションについての第2データを、第2のサービスプロバイダシステムから取得するステップを含んでもよい。方法は、第1データおよび第2データを使用して、ユーザがアクセスした第3アプリケーションのアクセス情報を特定するステップを含んでもよい。方法は、アクセス情報を使用して、第3アプリケーションを提供するプロバイダシステムについてのドメイン情報を検索するステップを含んでもよい。方法は、第3アプリケーションについてのセキュリティ情報を求めるステップを含んでもよい。方法は、セキュリティ情報を使用して、アクセスされ
た第3のアプリケーションの安全度合いを演算するステップを含んでもよい。方法は、安全度合いに基づいてセキュリティポリシーを適用することによって、第3アプリケーションに対する救済操作を実行するステップを含んでもよい。いくつかの実施形態において、第1アプリケーションは、第2アプリケーションとは異なる。第1のサービスプロバイダシステムは、第2のサービスプロバイダシステムとは異なる。第1のサービスプロバイダシステムは、第1アプリケーションへのアクセスを、第1のクラウドサービスとして提供してもよい。第2のサービスプロバイダシステムは、第2アプリケーションへのアクセスを、第2のクラウドサービスとして提供してもよい。
【0022】
いくつかの実施形態において、方法は、第3アプリケーションの組織情報を特定するステップと、第3アプリケーションについての情報を表示するグラフィカルインタフェースを生成するステップとを含んでもよい。アプリケーションについての情報は、第3アプリケーションの組織情報と、演算された安全度合いとに基づいて表示されてもよい。グラフィカルインタフェースは、第3アプリケーションに対して実行された救済操作を示してもよい。
【0023】
いくつかの実施形態において、第1データは、第1アプリケーションが、第3アプリケーションを通してユーザによってアクセスされたことを示す。第2データは、第2アプリケーションが、第3アプリケーションを通してユーザによってアクセスされたことを示してもよい。アクセス情報を特定ステップは、第1アプリケーションおよび第2アプリケーションへのアクセスを提供するために第3アプリケーションがアクセスされたと判定するステップを含んでもよい。
【0024】
いくつかの実施形態において、セキュリティ情報は、アプリケーションによる第1のセキュリティ脅威の第1インジケータである第1の値を含み、アプリケーションによる第2のセキュリティ脅威の第2インジケータである第2の値を含む。第1インジケータは、第1のデータソースから取得されてもよい。第1の値は、第2の値とは異なる。第2インジケータは、第2のデータソースから取得される。安全度合いは、第1の値に第1の重み値を乗算することに基づいて第1の重み付き値を演算することと、第1の重み値とは異なる第2の値に第2の重み値を乗算することに基づいて第2の重み付き値を演算することと、第1の重み付き値と第2の重み付き値との総和に基づく重み付き総和を演算することと、第1の重み値と第2の重み値との総和に基づく重み総和を演算することとによって演算されてもよい。安全度合いは、重み付き総和を重み総和で除算することに基づいて演算される値であってもよい。
【0025】
上記の特徴および実施形態は、その他の特徴および実施形態とともに、下記の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになるだろう。
【図面の簡単な説明】
【0026】
【
図1A】実施形態に係るセキュリティ監視/制御システムを説明する図である。
【
図1B】実施形態に係るセキュリティ監視/制御システムを説明する図である。
【
図1C】実施形態に係るセキュリティ監視/制御システムを説明する図である。
【
図2】実施形態に係るセキュリティ監視/制御システムを例示するブロック図である。
【
図3】実施形態に係るセキュリティ監視/制御システムを例示するブロック図である。
【
図4】実施形態に係る、ソフトウェア定義セキュリティ構成データをクラウドサービスから取り出すためのプロセスを説明するフローチャートである。
【
図5】実施形態に係る、クラウドサービスからアクティビティデータを収集するためのプロセスを説明するフローチャートである。
【
図6】実施形態に係る、アプリケーション使用を分析するための、セキュリティ監視/制御システムのコンポーネントを説明する図である。
【
図7】いくつかの実施形態に係る、アプリケーションのセキュリティを発見および管理するためのプロセスのブロック図である。
【
図8】いくつかの実施形態に係る、アプリケーションのセキュリティを発見および管理するためのプロセスのブロック図である。
【
図9】いくつかの実施形態に係る、アプリケーションの安全度合いを演算するためのプロセスのシーケンスフロー図である。
【
図10】実施形態に係る、アプリケーションのセキュリティを検出および管理するためのプロセスを説明するフローチャートである。
【
図11】実施形態に係る、アプリケーションのセキュリティを検出および管理するためのプロセスを説明するフローチャートである。
【
図12】実施形態に係る、アプリケーションのセキュリティを検出および管理するためのプロセスを説明するフローチャートである。
【
図13】いくつかの実施形態に係る、アプリケーション使用に基づいてユーザの安全度合いを演算するためのプロセスのシーケンスフロー図である。
【
図14】いくつかの実施形態に係る、アプリケーション使用に基づいてユーザの安全度合いを評価するためのグラフである。
【
図15】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図16】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図17】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図18】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図19】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図20】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図21】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図22】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図23】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図24】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図25】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図26】実施形態に係る、リソースへのアクセスを管理するためのセキュリティデバイスとして記憶装置を実現するためのインタフェースを説明する図である。
【
図27】実施形態を実現するための分散システムを簡略化した図である。
【
図28】本開示の実施形態に係る、クラウドサービスとしてサービスが提供され得るシステム環境の1つ以上のコンポーネントの簡略化したブロック図である。
【
図29】本開示の実施形態を実現するために使用され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0027】
詳細な説明
下記の記載において、本開示の実施形態の十分な理解を与えるために、説明の便宜上、具体的詳細を記載する。しかしながら、これらの具体的詳細なしにさまざまな実施形態を実施してもよいことが明らかになるだろう。たとえば、不必要な詳細で実施形態を曖昧にしてしまわないように、回路、システム、アルゴリズム、構造、技術、ネットワーク、プロセス、および他の構成要素が、ブロック図の形で構成要素として示される場合がある。図面および説明は、限定を意図したものではない。
【0028】
アプリケーションの使用は、生産性の向上に貢献し得るが、組織にセキュリティリスクおよび法令順守上の問題をもたらしてしまう可能性もある。たとえば、アプリケーションが十分にセキュアでない場合、企業機密情報を含んだ機密資料は、情報漏えいしやすいだろう。このようなアプリケーションは、組織によって評価されない場合が多いので、セキュリティ侵害に対抗する用意ができていない。また、いくつかの明らかに有用なアプリケーションは、故意または気づかないで、アドウェア、またはマルウェアさえも配ってしまっている可能性がある。
【0029】
多くの組織は、このようなアプリケーションまたはウェブサイトをブロックしようとするが、これでは、生産性に与える影響により、従業員を不満にさせてしまう。また、従業員は、たとえば、外部のVPNサービス、モバイルデータサービスなどを使用することによって、このような障壁を回避しようとする場合が多い。最近の業界動向は、従業員の生産性が高いことを保証するために、このようなサービスをブロックしないことである。しかしながら、IT部門は、疑わしいまたは悪意のあるアプリケーションを積極的に監視およびブロックできるように、使用中のアプリケーションまたはウェブサイトに対する可視性を必要とする。
【0030】
アプリケーションの検出、アプリケーションがもたらすセキュリティ脅威の分析、および訂正操作は、旧来のツールでは難しいだろう。本開示のいくつかの実施形態に係る、アプリケーションを発見および監視するためのプロセスは、センシティブデータの承認されていない開示を引き起こし得るおよび/または組織のコンピューティング環境にマイナスの影響を及ぼし得るアプリケーション使用を発見するために、さまざまなデータソースからの情報を分析することと、データを相関分析することとを伴う。
【0031】
本開示における図面を参照して開示される実施形態など、いくつかの実施形態は、フローチャート、フロー図、データフロー図、構造図、シーケンス図、またはブロック図として示されるプロセスとして説明される場合がある。シーケンス図またはフローチャートは、連続して起こるプロセスとして動作を示し得るが、動作の多くのは、平行して、または同時に行われてもよい。これに加えて、動作の順序は、並び替えられてもよい。プロセスは、その動作が完了したときに終了するが、図に含まれない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに相当してもよい。プロセスが関数に相当する場合、その終了は、呼び出し関数またはメイン関数へのこの関数の戻りに相当してもよい。
【0032】
本開示における図を参照して説明されるプロセスなど、本明細書に示すプロセスは、1つ以上の処理装置(たとえば、プロセッサコア)、ハードウェア、またはそれらの組合せによって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよい。ソフトウェアは、(たとえば、メモリ素子上、非一時的なコンピュータ読み取り可能な記憶媒体上の)メモリに格納されてもよい。いくつかの実施形態において、本明細書においてシーケンス図およびフローチャートに示されるプロセスは、本明細書に開示のいずれのシステムによっても実現され得る。本開示における特定の一続きの処理は、限定を意図したものではない。また、他の一続きのステップが別の実施形態に従って実行されてもよい。たとえば、本開示の別の実施形態は、上に概要を述べたステップを異なる順序
で実行してもよい。また、図に示す個々のステップは、個々のステップに応じてさまざまな順序で行なわれ得る複数のサブステップを含んでもよい。さらに、特定のアプリケーションに応じてさらなるステップが追加または削除されてもよい。当業者は、多くの変形例、変更例、および代替例が分かるだろう。
【0033】
いくつかの実施形態の態様において、本開示の図の各プロセスは、1つ以上の処理装置によって実行され得る。処理装置は、1つ以上のプロセッサを含んでもよく、1つ以上のプロセッサは、シングルコアもしくはマルチコア・プロセッサ、プロセッサの1つ以上のコア、またはそれらの組合せを含む。いくつかの実施形態において、処理装置は、グラフィック・プロセッサ、デジタル・シグナル・プロセッサ(DSP)など、1つ以上の専用コプロセッサを含み得る。いくつかの実施形態において、処理装置の一部またはすべては、特定用途向け集積回路(ASIC)、またはフィールド・プログラマブル・ゲート・アレイ(FPGA)など、カスタム回路を使用して実現され得る。
【0034】
I.アプリケーションの発見および分析のためのコンピューティング環境
ここで、図面を参照すると、セキュリティ監視/制御システム102(明細書において、「セキュリティ管理システム」および「セキュリティシステム」とも称す)を備えるシステム100の技術が開示される。セキュリティ監視/制御システム102は、組織の通信ネットワーク104を有するコンピューティング環境内で実現されてもよい。ネットワーク104は、アプリケーションサービス110にアクセスするためにパブリックネットワーク(たとえば、インターネット)と通信できるプライベートネットワークであってもよい。通信ネットワークとして、たとえば、モバイルネットワーク、ワイヤレスネットワーク、セルラーネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、他のワイヤレス通信ネットワーク、またはそれらの組合せなどが挙げられてもよい。セキュリティ監視/制御システム102は、セキュリティ監視/制御システム102を使用している組織のセキュリティを設定および管理するセキュリティサービスプロバイダ(CASB(Cloud Access Security Brokers)とも呼ばれる)などの
サービスプロバイダによって管理されてもよい。
【0035】
テナントは、サービスプロバイダ(たとえば、クラウドサービスプロバイダ)が提供するサービスのユーザをメンバに含む組織またはグループであり得る。ユーザは、プロバイダに個々のアカウントを持っていてもよく、テナントは、いくつかの個々のユーザーアカウントを包含または集約(aggregate)するクラウドプロバイダにエンタープライズアカ
ウントを持っていてもよい。本開示の多くの実施形態において、セキュリティ監視/制御システム102は、テナントが、テナントが使用するさまざまなサービスに関するセキュリティアカウントについてのコントロールおよびアクティビティを含むそれらのアカウントについての情報を見ることと、アナリティクス・レポートを確認することと、予め設定された秘密区分レベルのセキュリティによるセキュリティ制御を設定することとを可能にする。
【0036】
いくつかの実施形態において、セキュリティ監視/制御システム102は、脅威検出を行うため、およびそれぞれ異なるカテゴリの脅威への適切な対応に関する推奨を提供するために、機械学習および他のアルゴリズムを用いて1つ以上のクラウドにおけるユーザ・アクティビティについての情報を分析する。アナリティクスは、ユーザ・アクティビティにおける正常な行動および/または異常な行動のモデルを決定することと、1つのクラウドまたは複数のクラウド間での怪しいアクティビティのパターンを検出することとを含み得る。パターンによっては、同じユーザーアカウントまたはIPアドレスに対応付けられた複数のクラウドにおける同じ操作または異なる操作を検出することを含んでもよい。また、アナリティクスは、アラートを提供すること、ならびに、怪しいアクティビティが検出されるクラウド(複数可)において救済(remedial)措置を推奨することおよび/また
はこれらの怪しいアクティビティを示すクラウド以外のクラウドにおいて講じられる救済措置を推奨することを含んでもよい。本開示の多くの実施形態において、組織のネットワーク内のデバイス上のアプリケーションを検出および分析するためのプロセスは、さまざまなデータソースから情報を収集および組み合わせることを含む。
【0037】
本開示の実施形態に係る、セキュリティ監視および制御のためのシステムは、1つのハードウェアプラットフォーム上、または互いに通信している複数のハードウェアプラットフォーム上に位置し得る複数の構成要素を備える。構成要素は、さらに後述するが、発見および管理のためのプロセスを実行するようにサーバまたは他のコンピューティング・デバイスを設定するソフトウェア・アプリケーションおよび/またはモジュールを含み得る。
【0038】
本開示の実施形態に係る、セキュリティ監視/制御システム102と、セキュリティ監視/制御システム102にアクセスするために使用され得るクライアントデバイス106と、監視対象のアプリケーションサービス110とを備えるシステム100が、
図1Aに示されている。本明細書に開示するように、「クライアント」(本明細書において、「クライアントシステム」または「クライアントデバイス」としても開示される)は、デバイス、またはデバイス上で実行されているアプリケーションであってもよい。システム100は、各々がネットワーク104を通じて通信可能ないくつかの異なる種類のクライアントデバイス106を含む。クライアントデバイス106は、セキュリティ監視/制御システム102と通信し、サービスとやり取りするためのグラフィカルインタフェースを提示する。セキュリティ監視/制御システム102は、セキュリティ構成、アプリケーションデータ、および他の情報を取り出すために、アプリケーションサービス110と通信でき、さらに後述するが、セキュリティ制御を設定できる。
【0039】
図1Bは、組織用に実装されたセキュリティ監視/制御システム102の実装形態を有するシステム150を説明する図である。具体的には、システム150は、プライベートネットワーク(たとえば、イントラネット170)および非プライベートネットワーク(たとえば、インターネット160)などの通信ネットワーク上のクライアントデバイス106上での組織のユーザによるアプリケーション使用を検出するために、セキュリティ監視/制御システム102がどのように実装され得るかを説明する。通信ネットワークとして、たとえば、モバイルネットワーク、ワイヤレスネットワーク、セルラーネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、他のワイヤレス通信ネットワーク、またはそれらの組合せなどが挙げられてもよい。イントラネット170において操作されるクライアントデバイス106は、ファイヤーウォール142によって保護された、孤立したコンピューティング環境にあってもよい。ユーザ(たとえば、セキュリティ管理者)は、セキュリティ監視/制御システム102の動作を管理してもよい。セキュリティ監視/制御システム102は、組織のコンピューティング環境内、コンピューティング環境の外部、またはその両方において実装されてもよい。セキュリティ監視/制御システム102は、ネットワーク160を通して、クラウドベースのサービスとして提供されてもよい。
【0040】
クライアントデバイス106の各々は、組織のデバイス上で使用するのを承認されたアプリケーションまたは承認されていないアプリケーションにアクセスするために使用される可能性がある。アプリケーションは、信頼されたアプリプロバイダ120および不明なアプリプロバイダ122など、異なるサービスプロバイダによってアクセスされる可能性がある。イントラネット170の内部および外部クライアントデバイス106は、別のサービスプロバイダによって管理されているアプリケーションおよび/またはデータへのアクセスを可能にするサードパーティサービスプロバイダ124によるサービスにアクセスするために使用される可能性がある。
【0041】
セキュリティ監視/制御システム102は、ネットワーク機器上で動作している1つ以上のエージェントからのネットワークデータを通した、組織のクライアントデバイスによるネットワーク・アクティビティに基づいて、アプリケーション・アクティビティを監視できる。セキュリティ監視/制御システム102は、組織におけるアクティビティへの詳細な可視性をもたらし、異常または新たに出現する脅威、およびアプリケーション使用に基づくセキュリティリスクを検出するのに役立てるために、アプリケーションからのデータを分析および相関分析できる。
【0042】
ここで、
図1Cを参照すると、組織内外の異なる種類のアプリケーションにアクセスするために、個人のBYOD(「Bring Your Own Devices」)および会社所有のデスクトップ/ラップトップなどのクライアントデバイス106が使用され得る様子の別の例として、システム150が示される。アプリケーションは、サービスプロバイダシステム180によって提供されてもよい。サービスプロバイダシステムは、本明細書において、「プロバイダシステム」と称される場合がある。本明細書に開示の各サービスプロバイダシステムは、サービスプロバイダによって操作および管理されてもよい。アプリケーションは、承認されていないアプリ122と、承認されていないサードパーティアプリ124とを含んでもよい。組織のユーザは、顧客の活動を追跡するためのSalesforce、共同作業のためのGoogle Apps/Office 365、ファイルを共有するためのBoxなど、多くの認可されたアプリケーションを日々の仕事に使用している可能性がある。これらのアプリケーションは、これらのアプリケーション内にサードパーティアプリをインストールすることを可能にし、これによって、これらのサードパーティアプリは、ユーザに代わって、認可されたアプリケーションのデータに内的にアクセスできるようになる。セキュリティおよび法令順守の観点から、これらの承認されていないサードパーティアプリケーションは、セキュリティデータの不十分なセキュリティまたは承認されていない可能性のあるデータの漏えいにより、脆弱である可能性のある企業機密データにアクセスできるため、組織のリスクを上げ得る。そのため、このようなサードパーティアプリの発見は、ITチームがより大きな可視性を有することに役立ち得る。
【0043】
セキュリティ監視/制御システム102は、複数のソースからデータを収集し、それらのデータを相関分析し、脅威インテリジェンス情報を用いて分析することによって、シャドーアプリケーションを含むアプリケーション使用を発見できる。これにより、ネットワーク機器からシャドーIT情報を単に発見することと比較して、より詳細な可視性、およびよりよい法令順守の適用範囲がもたらされる。組織のユーザが企業内ネットワークから無認可のアプリケーションにアクセスすると、宛先のネットワークアドレス、要求元のネットワークアドレス、タイムスタンプなど、このような接続性に関する情報が、ルータおよびファイヤーウォール(たとえば、アプリ・ファイヤーウォール144およびネットワークファイヤーウォール142)などのネットワーク機器によって記録される。また、アプリケーションファイヤーウォールのうちのいくつかは、アプリを使用している実際のユーザを見つけることを可能にする要求側の素性を記録する。スマートフォンおよびタブレットなどのモバイル機器に組織のユーザがアプリをインストールすると、インストールされたアプリの詳細は、MDM(モバイルデバイス管理)アプリがデバイスにインストールされている限り、MDMサービス182によって発見することができる。同様に、無認可のアプリが会社所有のデバイス上にユーザによってインストールされると、このようなインストールの詳細は、集中管理されたセキュリティ管理ツール(たとえば、アプリケーション使用追跡サーバ184)を使用して、会社所有のライセンス管理によって集中的に発見することができる。これらのデータソースからのログは、デスクトップ/ラップトップデバイスにインストールされた承認されていないアプリまたはシャドーアプリに対する可視性を提供できる。
【0044】
II.
セキュリティ監視/制御システムのためのアーキテクチャ
システム、方法、および機械によって読取り可能な媒体など、コンピューティング環境におけるアプリケーションのセキュリティの発見および管理のためのいくつかの実施形態を開示する。
図2は、ユーザが、1つ以上のサービスプロバイダからの1つ以上のアプリケーション(明細書において、「アプリ」とも称す)にアクセスするために、クライアントデバイス106-1、106-2、…106-N(まとめて、クライアントデバイス106)などのクライアントデバイスを操作できるシステム200を示す図である。たとえば、システム200は、サービスプロバイダ210およびサービスプロバイダ212など、1つ以上のサービスプロバイダを含んでもよい。各サービスプロバイダは、ネットワーク160(たとえば、インターネット)を介して、1つ以上のサービスを提供してもよい。サービスは、クラウドベースまたはネットワークベースのサービスを含んでもよい。たとえば、サービスプロバイダ212は、「クラウド」サービスプロバイダであってもよい。サービスは、アプリケーションをサービスとして提供することを含んでもよい。各サービスプロバイダは、1つ以上のコンピュータシステムを備えるサービスプロバイダシステムを有してもよい。あるサービスプロバイダシステムは、別のサービスプロバイダシステムとは異なってもよい。
【0045】
クライアントデバイス106は、ユーザのパーソナルデバイス(たとえば、BYOD)、または組織の管理下のデバイスであってもよい。
図1Cに示すように、クライアントデバイス106は、組織のコンピューティング環境のネットワーク、コンピューティング環境の外部のネットワーク160、またはそれらの組合せのネットワーク上のサービスプロバイダのアプリケーションにアクセスしてもよい。アプリケーションは、組織のコンピューティング環境のデータおよび/またはリソースにアクセスするように操作されてもよい。クライアントデバイスによっては、サードパーティアプリケーション214を使用して、アプリケーションおよび/またはアプリケーションのデータにアクセスしてもよい。サードパーティアプリケーション214は、サービスプロバイダによって提供される。アプリケーションは、組織におけるユーザとして使用するために、その組織に登録されてもよい。いくつかのアプリケーションは、登録されなくてもよいため、承認されていない、または組織に知られていない可能性がある。各アプリケーションは、組織のコンピューティング環境のリソースを利用および/またはアクセスしてもよい。セキュリティ監視/制御システム102は、組織のコンピューティング環境に関するアプリケーションおよびそれらの使用を発見してもよい。セキュリティ監視/制御システム102が提供するサービスを利用するために、クライアントデバイス106は、管理者など、組織のユーザによって操作されてもよい。クライアントデバイス106のユーザは、1つ以上のテナントの一部、または組織のグループであってもよい。このように、セキュリティ監視/制御システム102は、アプリケーションを発見および管理するためのサービスを、ユーザごとに、および/またはテナントごとに提供してもよい。
【0046】
リソースは、ファイル、ウェブページ、文書、ウェブコンテンツ、コンピューティングリソース、またはアプリケーションを含んでもよいが、これらに制限されない。たとえば、システム200は、アプリケーションおよび/またはそれらのアプリケーションを通してアクセス可能なコンテンツなどのリソースを含んでもよい。リソースは、アプリケーションを使用して要求およびアクセスされてもよい。たとえば、アプリケーションは、ウェブページへのリソースサーバからのアクセスを、要求されたリソースを識別するURLに基づいて要求してもよい。リソースは、1つ以上のコンピュータシステム、たとえば、1つ以上のリソースへのアクセスを提供するリソースサーバによって提供されてもよい。
【0047】
組織は、コンピューティング環境240およびコンピューティング環境260など、1つ以上のコンピューティング環境を有してもよい。コンピューティング環境の各々は、クラウドコンピューティング環境またはエンタープライズコンピューティング環境であって
もよい。コンピューティング環境の各々は、組織のユーザのクライアントデバイスに、組織のコンピューティングリソースへのアクセスを提供してもよい。各コンピューティング環境は、1つ以上のコンピュータおよび/またはサーバ(たとえば、1つ以上のアクセス管理サーバ)を含んでもよく、この1つ以上のコンピュータおよび/またはサーバは、汎用コンピュータ、専門のサーバコンピュータ(一例として、PCサーバ、UNIX(登録商標)サーバ、ミッドレンジ・サーバ、メインフレーム・コンピュータ、ラックマウント式のサーバなどを含む)、サーバファーム、サーバ・クラスタ、分散サーバ、またはその他の適切な配置、および/もしくはそれらの組合せであってもよい。コンピューティング環境は、オペレーティングシステムのうちのいずれか、または、HTTPサーバ、FTPサーバ、CGIサーバ、Java(登録商標)サーバ、データベースサーバなどを含む、いろいろな追加のサーバアプリケーションおよび/もしくはミッドティア・アプリケーションを実行してもよい。例示的なデータベースサーバは、Oracle、Microsoftなどから市販されているデータベースサーバを含むが、これらに限定されない。コンピューティング環境は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せを使用して実現されてもよい。
【0048】
コンピューティング環境の各々は、組織のためのセキュアな環境として実現されてもよい。たとえば、組織のコンピューティング環境240およびコンピューティング環境260は、コンピューティングファイヤーウォール230によって守られたセキュアな環境(たとえば、イントラネット)として実現されてもよい。コンピューティング環境を保護するために、1つ以上のファイヤーウォールが実装されてもよい。コンピューティング環境の各々は、1つ以上のネットワーク機器を用いて実現されてもよい。たとえば、コンピューティング環境240は、1つ以上のネットワーク機器242を用いて実現されてもよく、コンピューティング環境260は、1つ以上のネットワーク機器262を用いて実現されてもよい。ネットワーク機器の各々は、コンピューティング環境における通信、および、ファイヤーウォール230によって守られている外部ネットワーク(たとえば、ネットワーク160)との通信を容易にしてもよい。ネットワーク機器は、ルータ、ゲートウェイ、アクセスポイント、ブリッジなどを含んでもよいが、これらに制限されない。ネットワークデータは、コンピューティング環境におけるネットワーク機器の各々で集められてもよい。データは、ログファイルに集められてもよい。
【0049】
セキュリティ監視/制御システム102は、ウェブベースのクライアントインタフェース、専用のアプリケーションプログラム、API(Application Program Interface)、
グラフィカルインタフェース、通信インタフェース、および/またはクライアントデバイス106とセキュリティ監視/制御システム102との通信を容易にするための他のツールを提供してもよい。たとえば、セキュリティ監視/制御システム102は、セキュリティ監視/制御システム102のサービスを公開するためのインタフェース220を含んでもよい。インタフェース220は、クライアントデバイス106がセキュリティ監視/制御システム102にアクセスすることを可能にするためのインタフェースを生成および/または提供してもよい。セキュリティ監視/制御システム102は、
図1A~
図1C、および
図7~
図14を参照して開示されるプロセスを含む、本明細書に開示の動作を実行するように実装されてもよい。
【0050】
セキュリティ監視/制御システム102は、コンピュータシステムによって実現されてもよい。このコンピュータシステムは、1つ以上のコンピュータおよび/またはサーバ(たとえば、1つ以上のアクセス管理サーバ)を含んでもよく、この1つ以上のコンピュータおよび/またはサーバは、汎用コンピュータ、専門のサーバコンピュータ(一例として、PCサーバ、UNIXサーバ、ミッドレンジ・サーバ、メインフレーム・コンピュータ、ラックマウント式のサーバなどを含む)、サーバファーム、サーバ・クラスタ、分散サーバ、またはその他の適切な配置、および/もしくはそれらの組合せであってもよい。セ
キュリティ監視/制御システム102は、オペレーティングシステムのうちのいずれか、または、HTTPサーバ、FTPサーバ、CGIサーバ、Javaサーバ、データベースサーバなどを含む、いろいろな追加のサーバアプリケーションおよび/もしくはミッドティア・アプリケーションを実行してもよい。例示的なデータベースサーバは、Oracle、Microsoftなどから市販されているデータベースサーバを含むが、これらに限定されない。セキュリティ監視/制御システム102は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せを使用して実現されてもよい。
【0051】
セキュリティ監視/制御システム102は、少なくとも1つのメモリと、1つ以上の処理装置(またはプロセッサ(複数可))と、ストレージとを備えてもよい。処理装置(複数可)は、ハードウェア、コンピュータによって実行可能な命令、ファームウェア、またはそれらの組合せで、適切に実現されてもよい。いくつかの実施形態において、セキュリティ監視/制御システム102は、いくつかのサブシステムおよび/またはモジュールを備えてもよい。セキュリティ監視/制御システム102に含まれるこれらのサブシステムおよび/またはモジュールの各々は、ハードウェア、ハードウェア上で実行されているソフトウェア(たとえば、プログラムコード、プロセッサによって実行可能な命令)、またはそれらの組合せで実現されてもよい。いくつかの実施形態において、ソフトウェアは、メモリ(たとえば、非一時的なコンピュータ読み取り可能な媒体)に、メモリ素子上に、または他の物理メモリ上に格納されてもよく、1つ以上の処理装置(たとえば、1つ以上のプロセッサ、1つ以上のプロセッサコア、1つ以上のGPUなど)によって実行されてもよい。本明細書に記載のさまざまな動作、機能、方法、および/またはプロセスを実行するために、コンピュータによって実行可能な命令または処理装置(複数可)のファームウェア実現は、任意の適したプログラミング言語で書かれた、コンピュータによって実行可能な命令または機械によって実行可能な命令を含んでもよい。メモリは、処理装置(複数可)上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを格納してもよい。メモリは、揮発性(RAM(Random Access Memory)など)および/または不揮発性(ROM(Read-Only Memory)、フラッシュメモリなど)であってもよい。メモリは、コンピュータ読み取り可能な記憶媒体など、任意の種類の永続記憶装置を使用して実現されてもよい。いくつかの実施形態において、コンピュータ読み取り可能な記憶媒体は、悪意のあるコードを含んだ電子通信文からコンピュータを保護するように構成されてもよい。コンピュータ読み取り可能な記憶媒体は、命令を格納してもよく、この命令は、プロセッサによって実行されると、本明細書に記載の動作を行う。
【0052】
また、セキュリティ監視/制御システム102は、サービスまたはソフトウェア・アプリケーションを提供してもよく、非仮想環境および仮想環境を含み得る。いくつかの実施形態において、これらのサービスは、ウェブベースのサービスまたはクラウドサービスとして提供されてもよく、または、SaaS(Software as a Service)モデル下でクライ
アントのユーザに提供されてもよい。セキュリティ監視/制御システム102が提供するサービスは、アプリケーションサービスを含んでもよい。アプリケーションサービスは、SaaSサービスを介して、セキュリティ監視/制御システム102によって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに該当するサービスを提供するように構成されてもよい。SaaSプラットフォームは、SaaSサービスを提供するための基礎となるソフトウェアおよびインフラストラクチャを管理および制御してもよい。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムとして実現され得るセキュリティ監視/制御システム102で実行されているアプリケーションを利用できる。顧客が別々のライセンスおよびサポートを購入する必要なしに、ユーザは、アプリケーションサービスを入手できる。さまざまな異なるSaaSサービスが提供されてもよい。クライアントを操作しているユーザは、次に、セキュリティ監視/制御システム102とやり取りし、セキュリティ
監視/制御システム102のサブシステムおよび/またはモジュールが提供するサービスを利用するために、1つ以上のアプリケーションを利用してもよい。
【0053】
また、セキュリティ監視/制御システム102は、追加のストレージを含む、またはそれに接続されてもよい。このストレージは、記憶装置、または他の非一時的なコンピュータ読み取り可能な記憶媒体など、任意の種類の永続記憶装置を使用して実現されてもよい。いくつかの実施形態において、ローカルストレージは、1つ以上のデータベース(たとえば、ドキュメントデータベース、リレーショナルデータベース、または他の種類のデータベース)、1つ以上のファイルストア、1つ以上のファイルシステム、またはそれらの組合せを含み得るまたは実装し得る。たとえば、セキュリティ監視/制御システム102は、ストレージ222など、データを格納するための1つ以上のデータストアに接続される、またはそれらを含む。メモリおよび追加のストレージは、すべて、コンピュータ読み取り可能な記憶媒体の例である。たとえば、コンピュータ読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令などの情報、データ構造、プログラムモジュール、または他のデータを格納するための、任意の方法または技術で実現される揮発性または不揮発性のリムーバブル媒体または固定型媒体を含んでもよい。
【0054】
図2に示す例において、ストレージ222は、テナント構成情報(「テナントコンフィグ情報」)224を含んでもよく、テナント構成情報224は、テナントおよびそれらのアカウントの構成情報、ならびに各テナントアカウントに対応付けられたユーザーアカウントを含んでもよい。テナント組織に属するユーザは、さまざまなクラウドアプリケーションにユーザーアカウントを持っていてもよい。また、テナント・コンフィグ情報は、組織に属するユーザのユーザーアカウントに対して管理上の権利を行使する、クラウドアプリケーションのテナントアカウントを有してもよい。ユーザのユーザーアカウントは、通常、ユーザが属するテナントのテナントアカウントに対応付けられる。ユーザーアカウントのテナントアカウントへの対応付けは、テナントに対応付けられたユーザのユーザ・アクティビティについての情報を取り出すことを含む、本発明の実施形態に係るさまざまな方法で使用されてもよい。さらに後述するが、サービスプロバイダシステムにログインして、テナントアカウントに対応付けられるサービスに関するユーザーアカウントおよびアクティビティに関するデータを取り出すために、テナントアカウントの認証情報が使用されてもよい。このような構成情報は、アクセス、ログ設定、およびアクセス設定(たとえば、ホワイトリストおよびブラックリスト)についてのセキュリティ設定を含んでもよい。ストレージ222は、組織に登録された各ユーザおよび/または組織のテナントについてのユーザ情報を含んでもよい。ストレージ222は、アプリ使用についてのイベントに基づくアプリ情報232、およびコンピューティング環境におけるネットワーク・アクティビティに関して集められたログ情報を含んでもよい。アプリ情報232は、データソースから取得されたアプリケーションについての組織情報を含んでもよい。ストレージ222にある情報は、ユーザ・アクティビティおよび/またはユーザ入力に基づいて、セキュリティ監視/制御システム102によって維持および取りまとめられてもよい。たとえば、ストレージ222は、本明細書に開示されているようなレジストリを含んでもよい。ストレージ222は、セキュリティ監視/制御システム102によって実行されるセキュリティ分析についてのセキュリティ情報226を含んでもよい。セキュリティ情報226は、1つ以上のデータソースから取得されたセキュリティ情報を含んでもよい。ストレージ222は、アプリケーションのサービスプロバイダについてのドメイン情報に関するドメイン情報228を含んでもよい。
【0055】
セキュリティ監視/制御システム102は、1つ以上のデータソース280に接続されるまたは1つ以上のデータソース280と通信していてもよく、1つ以上のデータソース280は、記憶装置など、任意の種類の永続記憶装置、または他の非一時的なコンピュータ読み取り可能な記憶媒体を使用して実現されてもよい。いくつかの実施形態において、
ローカルストレージは、1つ以上のデータベース(たとえば、ドキュメントデータベース、リレーショナルデータベース、または他の種類のデータベース)、1つ以上のファイルストア、1つ以上のファイルシステム、またはそれらの組合せを含み得るまたは実現し得る。たとえば、データソース280は、セキュリティ情報データソース282と、組織情報データソース284と、ドメイン情報データソース286とを含んでもよい。データソースの各々は、サービスプロバイダシステムが提供するサービスによって実現される、および/またはこのサービスとしてアクセス可能であってもよい。各データソースは、アプリケーションのデータを要求するためのインタフェース、および/またはアプリケーションのプロバイダを含んでもよい。たとえば、セキュリティ情報データソース282は、サービスとしてSecurity Score Card(登録商標)を提供する企業によって提供されてもよい。別の例において、組織情報データソース284は、ClearBit(登録商標)サービスによって提供されてもよい。ドメイン情報ソース286は、DNS(Domain Name System)ルックアップサービスを提供するプロバイダシステムによって提供されてもよい。
【0056】
いくつかの実施形態において、セキュリティ監視/制御システム102は、コンピューティング環境におけるアクティビティについてのネットワークデータを収集するための動作を行うログ収集システム234を含んでもよい。ネットワークデータは、監視されている1つ以上のコンピューティング環境から取得されたログファイルから収集されてもよい。ネットワークデータを収集するために、ログ収集システム234は、各コンピューティング環境に実装される1つ以上のモジュールおよび/またはサブシステムと通信するように構成されてもよい。たとえば、コンピューティング環境240およびコンピューティング環境260の各々は、ログマネージャ246と、ログマネージャ266とをそれぞれ含んでもよい。各ログマネージャは、ネットワーク・アクティビティについてのデータを収集するように実装された1つ以上のエージェント(たとえば、コンピューティング環境240におけるエージェント244、およびコンピューティング環境260におけるエージェント264)から、データを収集および/または集約できる。データは、ログファイルの形で収集されてもよい。各ログマネージャおよび/またはエージェントは、ネットワーク機器上で実装されてもよく、または、ネットワーク機器と通信していてもよい。コンピューティング環境内のネットワーク・アクティビティについてのデータを集めるために、ログ収集システム234は、ログマネージャ246、266および/またはエージェント244、264と通信してもよい。
【0057】
ログマネージャおよびエージェントの各々は、ハードウェア、ハードウェア上で実行されているソフトウェア(たとえば、プログラムコード、プロセッサによって実行可能な命令)、またはそれらの組合せで実現されてもよい。いくつかの実施形態において、ソフトウェアは、メモリ(たとえば、非一時的なコンピュータ読み取り可能な媒体)に、メモリ素子上に、または他の物理メモリ上に格納されてもよく、1つ以上の処理装置(たとえば、1つ以上のプロセッサ、1つ以上のプロセッサコア、1つ以上のGPUなど)によって実行されてもよい。本明細書に記載のさまざまな動作、機能、方法、および/またはプロセスを実行するために、コンピュータによって実行可能な命令または処理装置(複数可)のファームウェア実現は、任意の適したプログラミング言語で書かれた、コンピュータによって実行可能な命令または機械によって実行可能な命令を含んでもよい。メモリは、処理装置(複数可)上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを格納してもよい。メモリは、揮発性(RAM(Random Access Memory)など)および/または不揮発性(ROM(Read-Only Memory)、フラッシュメモリなど)であってもよい。メモリは、コンピュータ読み取り可能な記憶媒体など、任意の種類の永続記憶装置を使用して実現されてもよい。いくつかの実施形態において、コンピュータ読み取り可能な記憶媒体は、悪意のあるコードを含んだ電子通信文からコンピュータを保護するように構成されてもよい。コンピュータ読み取り可能な記憶媒
体は、命令を格納してもよく、この命令は、プロセッサによって実行されると、本明細書に記載の動作を行う。
【0058】
ログ収集システム234は、各サービスプロバイダが提供するインタフェースを通して各サービスプロバイダと通信するように構成されてもよい。ログ収集システム234は、1人以上のユーザによるサービスの使用についてのログファイルおよび/またはイベントデータを、サービスプロバイダから取得することができる。アプリケーション使用についてのイベント情報を取得するために、ログ収集システム234は、クライアントデバイス上のモジュール(たとえば、エージェント)および/またはモバイルデバイス管理サービスと通信するように構成されてもよい。
【0059】
ネットワーク・アクティビティおよびアプリケーション使用についてのデータは、セキュリティ監視/制御システム102に含まれるデータ分析システム236によって処理されてもよい。データ分析システム236は、ログファイルを含むネットワークデータを分析して、アクセスされる固有のアプリケーションを特定するために、本明細書に開示の技術を実現してもよい。データ分析システム236は、アプリケーションを提供するサービスプロバイダのドメインについてのドメイン情報を識別するための動作を行ってもよい。ドメイン情報は、ドメイン情報286など、1つ以上のデータソースから取得されてもよい。ドメイン情報は、データソースのクエリを実行することおよび/またはアプリケーションのサービスプロバイダに認証を要求することによって取得されてもよい。
【0060】
セキュリティ監視/制御システム102は、アプリケーションの使用についての情報および/またはアプリケーションの使用に関する情報を取得するように構成された情報ハンドラシステム238を含んでもよい。情報を取得するために、情報ハンドラ238は、1つ以上のデータソース280と通信してもよい。情報ハンドラ238は、ストレージ222に格納された情報を管理および取りまとめてもよい。ストレージ222に格納された情報のすべてまたは一部は、ユーザ入力および/またはユーザによる取りまとめに基づいてもよい。
【0061】
セキュリティ監視/制御システム102に含まれるセキュリティ・アナライザ270は、アプリケーション、ユーザ、またはそれらの組合せに関する安全度合いを決定するために、本明細書に開示の技術を実施できる。
【0062】
セキュリティ監視/制御システム102に含まれるコントロール・マネージャ272は、コンピューティング環境におけるアプリケーションへのアクセスの管理および制御を担当してもよい。セキュリティ監視/制御システムは、組織のコンピューティング環境に関する、デバイスによるアプリケーションへの許可されたアクセスを制御するために、1つ以上のポリシー(たとえば、セキュリティポリシー)を使用してもよい。ポリシーは、ユーザによって、1人以上のユーザまたは、まとめて、テナントについて設定されてもよい。ポリシーは、ユーザによるアプリケーション使用のセキュリティ分析に基づいて行われる救済操作を示してもよい。救済は、通知を送ること、情報(たとえば、レポート)を表示すること、および/またはアプリケーションへのアクセスを限定またはアクセスさせないことを含んでもよい。アプリケーションにアクセスさせないまたはアクセスを限定するためのネットワーク機器および/またはファイヤーウォールを構成するために、コントロール・マネージャ272は、コンピューティング環境と通信してもよい。このようなコントロールは、セキュリティリスクが低減しない場合、セキュリティリスクを防止してもよく、および/またはコンピューティングリソース(たとえば、帯域幅およびメモリ使用)の非効率的または望ましくない消費を最小限に抑えてもよい。コントロール・マネージャ272は、アプリケーションへのアクセスを制御するための1つ以上の命令を、コンピューティング環境および/またはネットワーク機器に送ってもよい。いくつかの実施形態に
おいて、セキュリティ監視/制御システム102は、各クライアントデバイス106上に、セキュリティ監視/制御システム102と通信するように構成されたモジュール(たとえば、エージェント)を実装してもよい。コントロール・マネージャ272は、アプリケーションへのアクセスを防止または抑えるためにデバイスの機能を変えるための1つ以上の命令を、クライアントデバイス106上のエージェントに送ってもよい。
【0063】
本開示の多くの実施形態において、セキュリティのためのシステムは、ハードウェアプラットフォーム上で実行される管理アプリケーションと、ユーザインタフェースコンポーネントと、ハードウェアプラットフォーム上に格納されるデータウェアハウスとを備える。本開示の実施形態に係るセキュリティのためのシステム300を、
図3に示す。システム300は、セキュリティ監視/制御システム102など、本明細書に開示のセキュリティ監視/制御システムで実現されてもよい。システム300に含まれるクラウド管理アプリケーションは、クラウド・クローラー(crawler)302と、クラウド・シーダー(seeder)304と、データ・ローダー(loader)306とを含み得る。以下にさらに詳細に
説明するが、クラウド・クローラー・アプリケーション302は、クラウドプロバイダからセキュリティコントロールについての情報を取り出すことができ、クラウド・シーダー・アプリケーション304は、所望のセキュリティ体制を反映するために、クラウドプロバイダのテナントアカウントのセキュリティコントロールを変更でき、データローダー・アプリケーション306は、クラウドプロバイダのテナントのアカウントのアクティビティ情報を取り出して、アナリティクスを生成することができる。
【0064】
いくつかの実施形態において、クラウド・クローラー・アプリケーション302によって取り出されたデータは、アプリケーション・カタログ・データベース308に入力され、データローダー・アプリケーション306によって取り出されたデータは、ランディング・リポジトリ310および/またはアナリティクス/脅威インテリジェンス・リポジトリ・データベース311に入力される。ランディング・リポジトリ310に入力されたデータは、異なるフォーマットであり、および/または異なる範囲の値を有してもよい。このデータは、アナリティクス・リポジトリ311に移動される前に、再フォーマットおよび/または構造化されてもよい。アナリティクス・リポジトリ311にあるアクティビティ情報に関するデータを利用して、ユーザインタフェースを介してシステム管理者に見えるように提示され得るレポートを生成でき、かつ、脅威レベルを決定、具体的な脅威を検出、および潜在的な脅威を予測するためのアナリティクスを生成できる。
【0065】
アクセスパターンおよび他のイベント統計データに関する、アナリティクス・リポジトリ311のアクティビティ情報の集約は、ユーザ行動の基準(baselines)をシステムが
確立することを可能にする。次に、脅威を検出するために、機械学習技術が適用され得、どのように脅威に対応するかに関する推奨を提供できる。脅威モデルは、既知の脅威もしくは未知の脅威、または新たに出現する脅威を検出するために開発され得る。また、さらに後述するが、脅威は、サードパーティプロバイダが提供する情報など、外部の脅威インテリジェンス情報とアクティビティデータとを比較することによって特定され得る。
【0066】
異なるクラウドアプリケーションにおける特定のユーザのアカウント(たとえば、異なるユーザ素性)は、ユーザ素性リポジトリ309において互いに関連付けられ得る。ユーザ素性リポジトリ309および/またはクラウドセキュリティシステムにおける他のメモリが、テナントアカウントおよび各テナントアカウントに対応付けられたユーザーアカウントに関する情報を格納できる。テナント組織に属するユーザは、さまざまなクラウドアプリケーションにユーザーアカウントを持っていてもよい。また、テナント組織は、組織に属するユーザのユーザーアカウントに対して管理上の権利を行使する、クラウドアプリケーションのテナントアカウントを有してもよい。ユーザのユーザーアカウントは、通常、ユーザが属するテナントのテナントアカウントに対応付けられる。ユーザーアカウント
のテナントアカウントへの対応付けは、テナントに対応付けられたユーザのユーザ・アクティビティについての情報を取り出すことを含む、本開示の実施形態に係るさまざまな方法で使用されてもよい。さらに後述するが、クラウドアプリケーションサービスにログインして、テナントアカウントに対応付けられるユーザーアカウントに関するアクティビティに関するアクティビティデータを取り出すために、テナントアカウントの認証情報が使用されてもよい。
【0067】
また、以下により詳細に説明するが、ユーザ素性リポジトリ309を利用して、複数のクラウドアプリケーション間のユーザ追跡およびプロファイルを容易にすることができる。これに加えて、複数のクラウドサービス間でユーザ行動についての情報を収集することによって、1つ以上のクラウドサービスに対する行動に基づいて脅威が検出されたとき、システムが、他のクラウドサービスに対する脅威に関してシステム管理者にアラートを先制して出すこと、および/または、認証に追加ステップを加える、パスワードを変更する、特定のIPアドレスもしくはアドレスをブロックする、電子メールメッセージもしくは送信者をブロックする、またはアカウントをロックするなどの救済措置を講ずることによって、ユーザがデータを維持する他のサービスを積極的に確保することを可能にする。
【0068】
本開示のいくつかの実施形態において、システム300は、以下にさらに詳細に説明するが、収集したデータに対してアナリティクスを実行するためのアプリケーションまたはソフトウェアモジュールを含む。アプリケーションまたはソフトウェアモジュールは、揮発性または不揮発性メモリに格納されてもよく、アプリケーションまたはソフトウェアモジュールは、実行されると、特定の機能またはプロセスを実行するようにプロセッサ301を構成してもよい。これらのアプリケーションは、脅威検出/予測的分析アプリケーション312および/または記述的分析アプリケーション313を含み得る。脅威検出/予測的分析アプリケーション312は、アクティビティのパターンおよび行動モデルからセキュリティ脅威を特定して予測するための機械学習および他のアルゴリズムを使用して、アナリティクスを生成できる。記述的分析アプリケーション313は、ユーザについての統計データ、ユーザ・アクティビティ、およびリソースなどのアナリティクスを生成できるが、これらに限定されない。アナリティクスは、アナリティクス/脅威インテリジェンスリポジトリ311に格納されたデータを使用して実行されてもよい。
【0069】
さらに後述するが、本開示の実施形態は、脅威に対する手動および/または自動プロセスを提供する救済機能を含んでもよい。いくつかの実施形態において、アナリティクスは、テナントによって提供された脅威インテリジェンスを記述する、テナントシステムから受信した情報を利用できる。顧客基準317と称され得るこれらのソースは、監視またはブロックする具体的なIPアドレス、監視またはブロックする電子メールアドレス、脆弱なブラウザもしくはそのバージョン、および脆弱なモバイル機器またはモバイルハードウェアもしくはソフトウェアのバージョンなどの情報を含み得るが、これらに限定されない。さらなる実施形態において、アナリティクスは、これらに限られないが、感染したノードポイントのID、特定の送信元IPアドレスからの悪意のあるアクティビティ、マルウェアに感染した電子メールメッセージ、脆弱なウェブブラウザのバージョン、およびクラウド上の既知の攻撃など、セキュリティ脅威の外部情報を提供することによって、外部のサードパーティフィード318、320、および321から受信した情報を利用して、脅威インテリジェンスを増強することができる。
【0070】
インシデント救済アプリケーション313は、検出した脅威に対する救済操作を調整および/または実行するために利用され得る。インシデント救済アプリケーション313は、推奨される救済操作がアラートで提示および選択されたときに呼び出される。インシデント救済アプリケーション313は、選択された救済操作を実行してもよく、または、クラウド・シーダー・アプリケーション304など、別のアプリケーションに、選択された
救済操作を実行するように指示してもよい。選択された救済操作が手動で実行されるまたはクラウドセキュリティシステムの外部にあるとき、インシデント救済アプリケーション313は、救済操作のステータス、および救済操作が完了したかどうかについて追跡してもよい。インシデント救済アプリケーションを使用して、手動または自動の救済操作の結果をメモリに保存することができる。いくつかの実施形態において、選択された救済操作は、サードパーティのまたはテナントのインシデント救済システムによってなど、クラウドセキュリティシステムの外部のシステムによって実行される。このような場合、インシデント救済アプリケーション313は、自動統合プロセスを使用して操作を実行するように、サードパーティのまたはテナントのインシデント救済システムを指示または呼び出してもよい。
【0071】
クラウド・シーダー・アプリケーション304は、さまざまなクラウドアプリケーションにおけるテナントのアカウント内のセキュリティコントロールを設定することによってセキュリティポリシーを実施するために利用され得る。以下にさらに詳細に説明するが、クラウド・シーダーは、脅威の救済の一部またはシステムユーザによるオンコールなど、さまざまな条件でセキュリティコントロールを設定してもよいが、これらに限定されない。セキュリティコントロール、およびセキュリティコントロールを調整するための技術の例は、2014年10月24日に出願され、「SYSTEMS AND METHODS FOR CLOUD SECURITY
MONITORING AND THREAT INTELLIGENCE」と題された米国特許出願第14/523,80
4号に開示の技術を使用して実現されてもよい。
【0072】
本開示のさらなる実施形態において、ユーザインタフェースコンポーネントは、1つ以上のクラウドについてのセキュリティコントロールをユーザが設定するためのコントロール管理を提供する管理コンソール314と、システムが生成したアナリティクスを見るためのアナリティクス可視化コンソール316とを含む。以下にさらに詳細に説明するが、データウェアハウスのデータを使用して、ユーザインタフェースに示す情報およびレポートを生成することができる。クラウドアプリケーションからセキュリティ構成データを取り出すためにクラウド管理アプリケーションを使用することについて、以下に説明する。
【0073】
III.
ソフトウェア定義セキュリティ構成データをクラウドサービスから取り出すためのプロセス
本開示の多くの実施形態において、クラウド・クローラー・アプリケーションは、ソフトウェア定義セキュリティ構成データをクラウドサービスから取り出す。ソフトウェア定義セキュリティ構成データは、特定のクラウドサービスにおけるセキュリティコントロールの構成を記述する。セキュリティコントロールとは、クラウドが収容するアプリケーションおよびデータへのアクセスを制限する機構である。ソフトウェア定義セキュリティ構成データは、ユーザのために定義されたロール、グループおよびユーザのグループ分け、暗号化キー、トークン、アクセス制御、許可、構成、認証ポリシーの種類、モバイルアクセスポリシー、および多くの他の種類のセキュリティコントロールを記述するデータを含み得る。ソフトウェア定義セキュリティ構成データをクラウドサービスから取り出すためのプロセスを、
図4に示す。
【0074】
プロセスは、クラウドに接続するステップ402を含む。クラウドは、システムおよび内部データへのアクセスについての承認またはその他の同意の明示を必要としてもよい。承認は、(OAuthという、承認のためのオープン標準などを使用する)トークンによって、または認証情報(ユーザ名およびパスワードなど)によって提供されてもよい。当業者は、クラウドプロバイダのシステムおよびデータへのアクセスを承認する際に利用され得るさまざまな他の技術があることが分かるだろう。また、接続は、サービスのURL(Universal Resource Locator)を提供することを含んでもよい。
【0075】
プロセスは、クラウドアプリケーションのセキュリティコントロールについてのソフトウェア定義セキュリティ構成データを収集するステップ404をさらに含む。ソフトウェア定義セキュリティ構成データは、クラウドアプリケーションによって使用できるようにされたAPI(Application Programming Interface)を利用することによって収集され
得る。実施形態に応じて使用され得るAPIおよびAPIのクラスは、REST(Representational State Transfer)、J2EE(Java 2 Platform, Enterprise Edition)、SOAP(Simple Object Access Protocol)、およびネイティブプログラムに従った方法
(Java用のネイティブアプリケーションAPIなど)を含んでもよい。また、さらに後述するが、情報は、スクリプト言語(PythonおよびPHPなど)、デプロイメントディスクリプタ、ログファイル、JDBC(Java Database Connectivity)またはRESTによるデータベース接続性、および常駐アプリケーション(クラウド・ビーコン)を含む他の技術を使用して要求され得る。送信または受信される情報は、JSON(JavaScript(登録商標) Object Notation)、XML(Extensible Markup Language)、およびCSV(Comma Separated Values)を含むいろいろなフォーマットで表され得るが、これらに限定されない。当業者は、本開示の実施形態に従って、特定のアプリケーションに適した各種のフォーマットが利用され得ることを認識するだろう。
【0076】
受信した、クラウドアプリケーションのセキュリティコントロールについてのソフトウェア定義セキュリティ構成データを使用して、ステップ406において、セキュリティコントロールメタデータ、つまり、情報を共通データベースに入力するための正規化されたディスクリプタを生成できる。セキュリティコントロールメタデータを、ステップ408において分類し(カテゴリにマッピングし)、索引付けする。分類は、セキュリティ対応組織によって指定される標準規格に準じてもよく、ならびに/またはサードパーティによって認定および/もしくは監査されてもよい。これに加えて、セキュリティコントロールメタデータおよび/またはメタデータの分類は、特定の規則または標準規格の要件を満たすように作られてもよい。たとえば、医療保険の相互運用性および説明責任に関する法令(HIPAA:Health Insurance Portability and Accountability Act)、サーベンス
・オクスリー法、FedRAMP、およびPCI DSS(Payment Card Industry Data
Security Standard)などの規則および標準規格は、監査証跡を報告するよう要求する場合がある。セキュリティコントロールメタデータは、規則および標準規格が要求する種類の情報を表示して必要なレポートの生成を容易にする方法でフォーマットされ得る。
【0077】
ステップ410において、セキュリティコントロールメタデータを、アプリケーション・カタログ・データベースに入力する。本開示の多くの実施形態において、アプリケーション・カタログ・データベースは、Cassandraデータベースである。他の実施形態において、アプリケーション・カタログ・データベースは、アプリケーションに適切な他の種類のデータベースで実現される。さらに後述するが、本開示の実施形態に従って、後からの取り出し、レポートの生成、およびアナリティクスの生成のためにアプリケーションカタログを格納するために、各種のデータベースを使用できることを、当業者は認識するだろう。
【0078】
本開示の実施形態に係る、セキュリティコントロールメタデータを発見および格納するための具体的なプロセスを上述した。本開示の実施形態によると、ソフトウェア定義セキュリティ構成データを取り出してセキュリティコントロールメタデータを生成するための各種のプロセスを利用できる。コントロールの数および種類、ならびにソフトウェア定義セキュリティ構成データを取り出すための機構は、異なるクラウドアプリケーションによってサポートされる本開示のそれぞれ異なる実施形態において異なってもよいことを、当業者は認識するだろう。たとえば、Office 365、GitHub、Workdayなど、他のクラウドアプリケーション、およびさまざまなGoogleアプリは、アプリケーションに特有の取り出し機構を使用してサポートされてもよい。さらに、ソフトウ
ェア定義セキュリティ構成データを取り出すためのプロセスは、対象のクラウドプロバイダのサポートに基づいて、自動または手動であり得る。
【0079】
IV.コントロール管理プラットフォーム
本開示の多くの実施形態において、コントロール管理プラットフォームは、複数のクラウドのためのコントロールの正規化されたビューをユーザに提供する。プラットフォームは、異なるクラウドのためのコントロールの簡略化されたビューを同じ画面上に表示するユーザインタフェースを含み得る。コントロール管理プラットフォームに提供された情報は、メタデータベースのスキーママッピングを使用して、アプリケーション・カタログ・データベースから取り出すことができる。プラットフォームを使用して、クラウド間で一貫したアクセスポリシーを割り当てることができる。コントロールは、標準、厳密、カスタムなど、指定の分類子に応じて表示および/または設定され得るが、これらに限定されない。より高いレベルの分類は、より厳密なコントロールに対応する。いくつかの実施形態において、セキュリティコントロールの分類および/または指定は、NIST(National Institute of Standards and Technology)、ISO(International Organization for Standardization)、および/もしくはPCI DSS(Payment Card Industry Data
Security Standard)などの組織によって指定される条件、ならびに/または1つのこのような組織が提供する特定の証明書に準ずる。また、本開示のいくつかの実施形態において、コントロール管理プラットフォームは、Saas、Paas、およびネイティブアプリケーションと統合するためのプラグインインタフェースを提供できる。
【0080】
コントロール管理プラットフォームのユーザインタフェースは、キーセキュリティ・インジケータを、色分けされた(赤、緑、黄など)リスク要因とともに、ライブラリフォーマットで表示してもよい。これらに限定されないが、ユーザログインの試み、最も多くのユーザが加えられたグループ、最も多く削除されたファイル、ファイルを最も多く削除したユーザ、およびファイルを最も多くダウンロードしているユーザなど、他の統計データまたは評価指標が表示されてもよい。いくつかの種類の情報は、機会/予算データ、契約書、または連絡先を誰がダウンロードしているのかを示すSalesforce.comなど、特定のクラウドアプリケーションプロバイダに特有のものであってもよい。本開示のいくつかの実施形態において、ユーザインタフェースは、テナントの登録クラウドアプリケーションのためのセキュリティコントロールの統一ビューを提供する。ユーザインタフェースは、異なるクラウドアプリケーションのために設定された任意のまたはすべてのセキュリティコントロールに設定された値、および予め定められたポリシーまたは構成に対応付けられた値からの、現在の値のずれを表示してもよい。クラウドアプリケーションプロバイダからのアクティビティデータの収集については、次に説明する。
【0081】
V.
クラウドサービスからアクティビティデータを収集するためのプロセス
本開示の多くの実施形態において、クラウドデータローダーアプリケーションは、テナントのユーザ・アクティビティ、セキュリティ構成についてのアクティビティデータ、および他の関連情報をクラウドサービスから収集するようにコンピューティング・デバイスを設定する。本開示の実施形態に係る、クラウドサービスからアクティビティデータを収集するためのプロセスを、
図5に示す。
【0082】
このプロセスは、1つ以上のクラウドに接続するステップ502と、クラウドからアクティビティデータを収集するステップ504とを含む。多くの実施形態において、この接続は、暗号化された通信チャネルで行われる。さらなる実施形態において、この接続は、トークンによって、または、詳細を上述したクラウド・クローラー・アプリケーションとの間に確立された接続と同様にログイン認証情報を使用して認証されなければならない。本開示のいくつかの実施形態において、収集は、周期的に(たとえば、4時間毎、または6時間毎)起こるようにスケジュールされる。多くの実施形態において、収集のスケジュ
ールは、テナントによって設定可能である。さらなる実施形態において、たとえば、Stormなどのリアルタイム演算システムをイベントが利用して起こるため、データは、リアルタイムで収集および取り出される。システムは、特定のイベントまたはアクティビティを、スケジュールされた取り出しではないほぼリアルタイムの取り出しには高リスクなイベントとして指定するように構成されてもよい。
【0083】
アクティビティデータは、さまざまな種類の情報を含み得、遠隔でホストされるクラウドアプリケーションシステムの外部のシステムが正しい認証情報を保持していると、クラウドアプリケーションシステムは、これらの情報に外部のシステムがアクセスできるようにする。この認証情報は、クラウドアプリケーションシステムまたは別の承認体によって発行されてもよい。ユーザーアカウントに対応付けられたアクティビティデータは、ユーザーアカウントの使用および/またはユーザーアカウントを用いてクラウドアプリケーションで講じられた操作に関する情報を含み得る。アクティビティデータは、ユーザログ(複数可)または監査証跡(複数可)などの情報のソースを含み得る。より具体的な種類のアクティビティデータとして、これらに限定されないが、ログイン/ログアウト統計データ(試みおよび成功を含む)、アプリケーションにアクセスするために使用されたIPアドレス、アプリケーションにアクセスするために使用されたデバイス、およびアクセスされたクラウドリソース(ファイル管理クラウドアプリケーション[Boxなど]におけるファイルおよびフォルダ、人事クラウドアプリケーション[Workdayなど]における従業員および契約者、ならびに、顧客関係管理クラウドアプリケーション[Salesforceなど]における連絡先およびアカウントを含むが、これらに限定されない)を含み得る。アクティビティデータは、イベントまたは統計データに対応付けられたユーザのユーザーアカウントまたは他のユーザ識別子を含み得る。アクティビティデータは、サーバのアクティビティ、サーバのリブート、サーバによって使用されるセキュリティキー、およびシステム認証情報など、クラウドアプリケーションシステムのシステムステータスまたはアクティビティについての情報を含み得るが、これらに限定されない。この情報は、承認された認証情報を使用するシステムが見ることができるまたはアクセス可能である。
【0084】
また、アクティビティデータは、テナント(および関連するユーザ)アカウントのセキュリティ構成についての情報を含んでもよい。セキュリティ構成は、テナント(および/または関連するユーザ)のセキュリティコントロール(詳細は上述した)に設定される値を含み得る。
【0085】
いくつかの実施形態において、特定のイベントは、高リスクであると考えられ、このようなイベントに関するアクティビティデータは、スケジュールされた間隔ではないほぼリアルタイムで取り出される。
【0086】
ステップ506において、取り出したアクティビティデータは、アナリティクス/脅威インテリジェンス・リポジトリ・データベース311に格納される。アナリティクス/脅威インテリジェンス・リポジトリ・データベース311は、クエリ機能を有する任意のデータベースまたはデータ・リポジトリであってもよい。本開示のいくつかの実施形態において、アプリケーションに適切な任意のデータウェアハウスインフラストラクチャが利用されてもよいが、Cassandraなど、NoSQLベースのインフラストラクチャ、または他の分散データ処理システムにアナリティクス/脅威インテリジェンス・リポジトリ・データベース311が構築される。いくつかの実施形態において、データは、アナリティクス・リポジトリ311に移動される前に、まず、ランディング・リポジトリ310に入力され、再フォーマットおよび/または構造化される。
【0087】
本開示のいくつかの実施形態において、このデータは、異なるクラウドアプリケーショ
ンによって利用される異なるフォーマットで受信されてもよい。たとえば、データは、JSON(JavaScript Object Notation)または他のデータ交換フォーマットにフォーマットされてもよく、または、ログファイルまたはデータベースエントリとして使用可能であってもよい。さらなる実施形態において、このプロセスは、データを正規化して、データをアナリティクス/脅威インテリジェンス・リポジトリ・データベース311に格納およびそこから取り出すために、共通フォーマットに再フォーマットするステップ508を含む。データを再フォーマットするステップは、データを分類して共通フォーマットに構造化することを含んでもよい。本開示のいくつかの実施形態において、データベースは、変更されたデータをチェックするための自動プロセスを実行することによって、構造変化および新しい値に適応できる。いくつかの実施形態において、(詳細は上述したような)クラウド・クローラー・アプリケーションは、取り出したデータの構造または値の違いを認識し、この変更は、アプリケーション・カタログ・データベース308および/またはアナリティクス/脅威インテリジェンス・リポジトリ・データベース311において実施される。データセット上で実行するようにスケジュールされたジョブによって、システムレポートを、ステップ510において予め生成してもよい。アクティビティデータを収集するためにクラウドローダーアプリケーションを利用するための具体的なプロセスを上述した。本開示の実施形態に係るアクティビティデータを収集するための各種のプロセスが使用できる。予め生成される、または本開示の実施形態に係るシステムユーザまたは管理者による要求に基づいて生成されるレポートについて、以下に説明する。
【0088】
VI.レポート
アプリケーション・カタログ・データベースおよび/またはアナリティクス/脅威インテリジェンス・リポジトリ・データベース311に格納されるデータを使用して、いろいろなレポートを生成することができる。レポートのカテゴリは、認証および承認、ネットワークおよびデバイス、システムおよび変更データ、リソースのアクセスおよび可用性、マルウェアアクティビティ、ならびに、障害および重大なエラーを含み得る。レポートは、アプリケーションごと、ユーザごと、保護されたリソースごと、およびアクセスするのに使用されたデバイスごとなど、さまざまな属性に基づき得るが、これらに限定されない。レポートは、クラウドアプリケーションにおいて更新された特徴または新しく変更されたポリシーなど、最近の変更を強調表示してもよい。レポートは、(たとえば、性能上の理由から)スケジュールされたジョブによって予め生成されてもよく、または、ユーザまたは管理者によって要求されてもよい。
【0089】
本開示のさまざまな実施形態において、レポートは、データに基づいて生成されるアナリティクスを含む。アナリティクスは、Hadoop、Hive、Spark、およびMahoutnaなど、Apacheソフトウェア財団の技術、または使用するデータ記憶フレームワークにおいて利用可能な他の特徴を利用してもよい。いくつかの実施形態は、Rプログラミング言語を利用してアナリティクスを生成する。さらなる実施形態において、アナリティクスの生成は、機械学習アルゴリズム、プロプライエタリ・アルゴリズム、および/またはFireEyeおよびNorseなどの外部の市販のソース、または、ZeusおよびTorなどの公の脅威インテリジェンスコミュニティからの外部の脅威インテリジェンスの使用を含む。本開示の実施形態に係る、アナリティクスを生成するための技術について、以下に説明する。
【0090】
VII.
アナリティクスおよびセキュリティ・インテリジェンス
本開示の実施形態に係るセキュリティ監視/制御システムは、収集されたデータを使用して、アナリティクスを生成できる。アナリティクスは、アナリティクスプロセスおよび/またはアナリティクスエンジンと称されるアナリティクスモジュールによって生成されてもよい。本開示の実施形態に係る、脅威インテリジェンスプラットフォーム600の構成要素を使用してアナリティクスを生成することの概要を、
図6に示す。プラットフォー
ム600は、システム200に実装されてもよい。プラットフォーム600のすべてまたは一部は、セキュリティ監視/制御システム102に実装されてもよい。
【0091】
生成され得るアナリティクスの1つの部類に、記述的分析または統計分析がある。統計データは、MapReduceジョブおよびSpark and Apache Hiveクエリなど、システムクエリの既定セットを使用して生成できるが、これらに限定されない。記述的分析は、1つのアプリケーション、または、相関分析技術を使用して複数のアプリケーション間について生成できる。生成できるレポートには、ログイン統計データ(たとえば、ログインに最も多く失敗したユーザ、IPアドレスの評判の考慮を含むIPアドレスベースのログイン履歴、地理的位置、および他の要因)、ユーザ統計データ(たとえば、最も多くのリソース[ファイル、EC2マシンなど]を有するユーザ、クラウド間のエンタイトルメント、変更されたパスワードの数)、アクティビティ統計データ(たとえば、クラウド間のユーザのアクティビティ)、キーローテーションについての統計データ(たとえば、過去30日以内にSSHキーがローテーションされたかどうか)、およびリソース統計データ(たとえば、ユーザがダウンロードしたフォルダ数、ファイル数、ローミングまたはモバイルユーザがダウンロードしたファイル数)などが挙げられるが、これらに限定されない。特定の時間内のログインアクティビティ、パスワード関連のサポート問題の過去の履歴に基づくこのような問題、または特定の時間内で最も多くのアクティビティを見たモバイル機器の識別タイプなどのトレンドが特定されてもよい。レポートに含まれるデータは、イベントビューアとして、イベントの「壁」を、ユーザがイベントに対して講ずることのできる操作またはイベントを救済するための操作とともに表示するユーザインタフェース上に表示され得る。具体的なイベントおよび閾値を含み得る既定のルールに基づいて、アラートが構成できる。
【0092】
生成され得る別の部類のアナリティクスとして、予測分析およびヒューリスティック分析がある。これらは、機械学習アルゴリズムを組み込んで、基準となる期待値からの偏差、めったに起こらないイベント、およびユーザの怪しい行動を得るための行動アナリティクスなどの脅威モデルを生成してもよいが、これらに限定されない。普通でない行動がセキュリティリスクであるかどうかをインテリジェントに予測するようにアルゴリズムおよびプロファイルを訓練できる。これらに限定されないが、IP(Internet Protocol)ア
ドレスの評判、マルウェア、感染したノードポイントのID、脆弱なウェブブラウザのバージョン、ユーザによるプロキシサーバまたはVPNサーバの使用、およびクラウドに対する既知の攻撃など、潜在的なセキュリティ脅威の外部情報および潜在的なセキュリティ脅威に関する外部情報を提供することによって、これらに限られないが、MaxMind、FireEye、Qualy、Mandiant、AlienVault、およびNorse STIXなどのプロバイダからのサードパーティフィードを統合して、脅威インテリジェンスを増強することができる。いくつかの実施形態において、脅威情報は、STIX(Structured Threat Information eXpression)データフォーマットで表される。たとえば、1つ以上のサービスが、評判(たとえば、ソフトウェア脆弱性がある、悪意のあるソフトウェアのホストである、または攻撃のソースであると知られている)および/またはIPアドレスに対応付けられた地理的位置など、特定のIPアドレスに関する情報を提供してもよい。この情報は、何時にそのIPアドレスからログインが試みられたかなど、IPアドレスを伴う取り出されたアクティビティデータ、および、ログインの試みの間隔など、アクティビティデータから得られた情報と組み合わすことができる。これらの要因を使用して、「ログイン速度(login velocity)」評価指標を決定することができる。ファイルアクセス、売買取引、または仮想マシンのインスタンスなど、他のアクティビティの評価指標を決定することができる。
【0093】
本開示の多くの実施形態において、データを分析するために、さまざまな種類のアルゴリズムが特に有用であり得る。決定木、時系列、ナイーブベイズ分析、およびユーザ行動
プロファイルを作るために使用される技術は、怪しいアクティビティのパターンおよび/または外部のデータフィードに基づいて予測を生成するために利用され得る機械学習技術の例である。クラスタリングなどの技術を使用して、部外者および異常なアクティビティを検出することができる。たとえば、(サードパーティフィードまたはそれ以外によって)悪意があるとしてフラグが立てられているIPアドレスから、1つ以上のファイルにアクセスしているまたはそのアドレスからの一連のログインの試みが失敗しているアカウントに基づいて、脅威を特定することができる。また、同様に、1つのクラウドまたは複数のクラウド間における一連の時間にわたる異なるパターンのアクティビティに基づいて脅威を特定することができる。詳細を上述したように、異なるクラウドからのアクティビティデータは、異なるフォーマットであり得、または、異なる値または値の範囲を有し得る。上述のプロセスにおいてデータを正規化することは、データを、比較可能に、同じ意味を有するように、および/または異なるクラウド間で同じ重要性および関連性を持つように再フォーマットすることを含んでもよい。したがって、アルゴリズムは、異なるクラウドからのデータを、意味のある方法で集約および比較できる。たとえば、1つのクラウドにおいて特定のユーザーアカウントを用いた一連の失敗したログインは、脅威ではないと考えられてもよい。しかしながら、複数のクラウド間でユーザに対応付けられたユーザーアカウントを用いた一連の失敗したログインは、ユーザのパスワードをクラッキングするための一致協力の努力を示す可能性があるため、アラームを始動させる。クラスタリングアルゴリズムおよび回帰アルゴリズムを使用して、データを分類して、共通のパターンを見つけることができる。たとえば、クラスタリングアルゴリズムは、モバイル機器からログインしているユーザのすべてのエントリを集約することによって、データをクラスタにすることができる。また、予測アナリティクスは、ユーザが特定のクラウドアプリケーションに数か月アクセスしていなかった後、翌月に高いアクティビティを示す、または、ユーザが過去数週間にわたって、毎週1つのファイルをダウンロードしているなど、潜在的なAPT攻撃(Advanced Persistent Threat)のシナリオを示すアクティビティに基づいて脅威を特定することを含み得る。本開示のいくつかの実施形態において、時間ととともに収集されたデータを使用して、正常な行動(たとえば、イベントおよびアクティビティのパターン)のモデルを作成し、通常から逸脱した行動を異常行動としてフラグを立てる。フラグが立てられている1つ以上のイベントまたはアクティビティが、(たとえば、ユーザフィードバックによって)真またはフォールス・ポジティブであるとみなされた後、情報を1つ以上の機械学習アルゴリズムに戻してシステムのパラメータを自動的に変更することができる。したがって、機械学習アルゴリズムを少なくとも上述の方法で利用して、推奨を作成し、フォールスアラーム(フォールス・ポジティブ)を減らすことができる。時間とともにさまざまなパラメータから収集されたアクティビティデータを機械学習アルゴリズムとともに使用して、ユーザ行動プロファイルと称されるパターンを生成することができる。アクティビティデータは、IPアドレスおよび地理的位置などの背景情報を含み得る。
【0094】
関連付け規則学習のためのアルゴリズムを使用して、推奨を生成することができる。本開示のいくつかの実施形態において、アプリケーションの相互相関を見つけることによって、プロファイル連結アルゴリズムを使用して複数のクラウドアプリケーション間のアクティビティを連結する。クラウド間で共通して使用されるプライマリユーザ識別子(ID)、またはSSO(Single Sign-on)認証メカニズム(たとえば、Active Directory、Okta)など、1つ以上の属性またはID要因を使用して、複数のクラウド間で1人のユーザが特定され得る。アプリケーション間のアクティビティの相関分析は、第1のクラウドアプリケーションにおいて第1のエンタイトルメントを持ち、かつ、第2のクラウドアプリケーションにおいて第2のエンタイトルメントを有するユーザ、異なるIPアドレスから2つのクラウドアプリケーションに同時にログインしたユーザ、何度かログインの試みに失敗した後にパスワードを変更したユーザ、および2つのクラウドアプリケーションにおいてログインに多数失敗した共通ユーザを見つけること含み得る。
【0095】
本開示の多くの実施形態において、複数のクラウドアプリケーション間のユーザ追跡およびプロファイルを容易にするために、ユーザ素性リポジトリ109が利用され得る。それぞれ異なるクラウドアプリケーションにおける特定のユーザのアカウントは、上述のプライマリ(汎用の)ユーザ識別子もしくはSSOメカニズム、または他の方法によって、アカウント(たとえば、jdoe、john.doeなど)に対応付けられたユーザ識別子を互いに関連付けることによって連結されてもよい。ユーザ素性リポジトリ109は、テナントに対応付けられた各ユーザの複数のアカウントを互いに関係付ける情報を含み得る。テナントの制御または所有下にある複数のクラウドアプリケーションアカウントを利用するユーザを、「エンタープライズユーザ」と称する場合がある。
【0096】
本開示のいくつかの実施形態において、推奨エンジンは、ユーザ・アクティビティの異常な行動を追跡して、攻撃および未知の脅威を検出する。推奨エンジンは、複数のクラウド間のユーザ・アクティビティの怪しいイベントを追跡できる。イベントは、既定の危険な状態の動作(たとえば、クレジットカード番号を含んだファイルをダウンロードすること、暗号化キーをコピーすること、通常ユーザの特権を上げること)を含み得る。イベントの詳細および救済のための推奨とともに、アラームが鳴らされ得る。
【0097】
特定のユーザ/従業員に関係するイベントのための動的ポリシーベースのアラートが生成され得る。プロセスは、特定のユーザに対応付けられたアクティビティデータを監視し、このユーザが取る特定の操作用にカスタマイズされたアラートを生成できる。
【0098】
本開示の多くの実施形態において、アナリティクス/脅威インテリジェンス・リポジトリ・データベース311に含まれるユーザ・アクティビティデータを使用して通常のユーザ・アクティビティをシミュレーションするためのアルゴリズムが設計される。このシミュレーションを使用して、システムにおけるユーザの正常な行動を学習するよう、他の機械学習アルゴリズムを訓練することができる。一般に、特定のセキュリティ問題は、いつも繰り返されるわけではないかもしれない。したがって、純粋な教師ありアルゴリズムによって検出されない可能性がある。しかしながら、部外者検出などの技術は、異常なアクティビティを検出するのに有用な基準を確立する。状況に応じた脅威インテリジェンスを加えたこのような異常なアクティビティは、低い予測エラーでより正確な脅威予測を提供することができる。
【0099】
本開示のさらに他の実施形態において、アナリティクスを使用して、セキュリティコントロールのずれを検出することができる。セキュリティコントロールのずれとは、セキュリティリスクを増加させ得る一見気まぐれなやり方で1つ以上のセキュリティコントロールが変化することを指し得る。リスクイベントは、1つ以上のクラウドアプリケーションにおける1つ以上のセキュリティコントロールの変化、または当該リスクイベントに対応付けられた実行可能なインテリジェンスに応答して生成され得る(明細書において、「セキュリティリスク」、「リスク」、「脅威」、および「セキュリティ脅威」とも称す)。脅威は、異常な、またはアプリケーションの使用に関して不適合なアクティビティ、イベント、またはセキュリティコントロールを含み得る。他の種類のイベントと同様に、テナント、テナントシステム、またはエンティティを監視しているその他にアラートが送られてもよい。たとえば、クラウドアプリケーションにおけるテナントのパスワードポリシーは、より少ない要件(たとえば、文字の種類および/または数)を課すように変更された可能性がある。これによって、リスクイベントが生成され、パスワードポリシーを元のパスワードポリシーに変更して戻すよう推奨するためのアラートが出される可能性がある。
【0100】
上述のイベントのうちのいずれかに関するアラートは、詳細を上述したコントロール管理プラットフォームなどのユーザインタフェース上に表示され得る。アラートは、イベン
ト識別子、日付、時間、リスクレベル、イベントカテゴリ、イベントに対応付けられたユーザーアカウントおよび/もしくはセキュリティコントロール、イベントに対応付けられたクラウドアプリケーション、イベントの説明、救済タイプ(たとえば、手動または自動)、ならびに/またはイベントのステータス(たとえば、未解決、解決済み)など、検出されたイベントについての情報を含み得るが、これらに限定されない。各リスクイベントについてのアラートに含まれる情報は、識別子(ID)、影響を受けたクラウドアプリケーションおよびインスタンス、カテゴリ、優先事項、日時、説明、推奨される救済タイプ、ならびにステータスを含み得る。また、各リスクイベントは、編集、削除、ステータスを完了にする、および/または救済操作を実行するなど、ユーザが選択可能な操作を有してもよい。救済操作の選択によって、選択された救済を実行するために、インシデント救済アプリケーション313および/またはクラウド・シーダー・アプリケーション304などのアプリケーションが呼び出されてもよい。セキュリティ監視/制御システム102の外部のエンティティに、アラートおよび/または特定された脅威に関する他の情報が送られ得る。
【0101】
本発明の多くの実施形態において、アラートは、目に見えてもよく、詳細を上述したコントロール管理プラットフォームなどのユーザーコンソールにおいて現れてもよい。いくつかの実施形態において、アラートは、電子メール、SMS(Short Message Service)
、またはテキストメッセージングによってなど、ネットワークで、またはウェブベースのユーザーコンソールで伝達される。アラートは、セキュアなメッセージ(たとえば、セキュアな通信チャネルで、または、メッセージを見るためにキーまたはログイン認証情報を必要とする)として伝達されてもよい。アラートは、より強力なセキュリティコントロールを実施する、および実行する救済操作(複数可)の選択を要求するなど、推奨されるまたは利用可能な救済操作(複数可)に関する情報を含んでもよい。
【0102】
本開示の実施形態に係る、アクティビティデータを取り出して分析するための具体的なプロセスを上述した。本開示の実施形態に応じて、アクティビティを取り出して分析するための各種プロセスを利用してもよい。特定された脅威の救済のためのプロセスについて、以下に説明する。
【0103】
VIII.
アプリケーションの発見および分析のためのシステム
図7および
図8は、いくつかの実施形態に係る、アプリケーションのセキュリティを発見および管理するためのプロセスのブロック図を示す。
図7は、セキュリティ監視/制御システム102がどのようにサードパーティアプリケーションを発見して、それらのアプリケーションについての、アプリケーションおよびアプリケーションのユーザの安全度合いを含む情報とともにグラフィカルインタフェースを表示することができるのかについて示す図である。
【0104】
図7のプロセス700を示す。プロセス700は、アプリの発見、およびアプリ使用に対応付けられたアプリ・リスクおよびユーザ・リスクの分析のためのプロセスである。プロセス700は、たとえば、セキュリティ監視/制御システム102に登録されることによって承認されたアプリに対して実施されてもよい。プロセス700は、ステップ720において、ユーザが、クライアントデバイス(たとえば、クライアントコンソール702)を操作して、アプリケーションについての情報を提供(たとえば、アプリケーションを登録)することで開始してもよい。クライアントデバイス702は、インタフェースまたはサービス(たとえば、REST(Representational State Transfer)サービス)を使
用して、セキュリティ監視/制御システム102と通信してもよい。
【0105】
セキュリティ監視/制御システム102は、アプリケーション使用、ならびにアプリケーションの安全度合いおよびアプリケーションのユーザの安全度合いを発見するための処
理を実行してもよい。ステップ722において、登録済みのアプリを提供するサービスプロバイダシステムからアプリイベントをダウンロードしてもよい。アプリイベントは、アクセスされたアプリについてのデータレコードの形で提供されてもよい。ステップ724において、アプリイベントを使用して、アクセスされたアプリ、ならびに/または登録された別のアプリケーションもしくはアプリケーションのデータにアクセスするために使用された他のサードパーティアプリを発見してもよい。ステップ726において、サードパーティアプリについてのイベントを、リポジトリに格納してもよい。イベント情報は、イベントについてのタイムスタンプ、ユーザ情報(たとえば、ユーザ名または電子メールID)、サードパーティアプリ名(リンク→アプリ詳細)、認可されたアプリのインスタンス名、IPアドレス、および地理的情報を含んでもよい。
【0106】
ステップ728において、アクセスされたサードパーティアプリについての情報を特定するための処理を実行してもよい。アプリイベントを使用して、各アプリケーションを識別する固有の情報を特定してもよい。当該アプリケーションについての情報を使用して、セキュリティ監視/制御システム102は、アプリケーションのアプリケーション・リスクスコアを本明細書に開示の技術を使用して演算してもよい。いくつかの実施形態において、アプリ・リスクスコア・レジストリ704を維持してもよく、アプリ・リスクスコア・レジストリ704からアプリケーション・リスクスコアが取得されてもよい。レジストリは、維持され、アプリケーション使用についての新しい情報および/または更新された情報に基づいて自動的に更新されてもよい。アプリケーション・リスクスコアは、サードパーティアプリ・レジストリ706など、サードパーティソースを使用して取得したリスクスコア・フィード740からのアプリケーションの詳細およびリスクスコア・インジケータに基づいて演算されてもよい。アプリケーションの詳細は、サードパーティアプリケーションを提供するベンダー、またはサービスプロバイダについてのベンダー情報を含んでもよい。ベンダー情報は、ベンダー名、ベンダーロゴ、ベンダードメイン、ベンダーの説明、ベンダーカテゴリ(事業)、および/またはセキュリティ・インジケータ(たとえば、スコア、またはセキュリティスコア評価サポートデータにアクセスするためのリンク)を含んでもよい。ステップ730において、アプリケーションについての情報をクライアントコンソール702に送って、
図15に示すようなグラフィカルインタフェースに表示してもよい。
【0107】
ステップ736において、セキュリティ監視/制御システム102は、アプリイベントにおいて特定されたアプリのユーザについてのユーザ情報を取得できる。ステップ734において、ユーザ・リスクスコアを、ユーザ情報およびアプリイベントの詳細に基づいて演算してもよい。いくつかの実施形態において、ユーザ・リスクスコアは、ユーザのアプリケーション使用についてのデータソース維持情報から取得された情報に基づいて演算してもよい。ユーザ・リスクスコアおよびアプリイベントの詳細を含むユーザについての情報は、クライアントコンソール702に送られてもよい。ステップ732において、クライアントコンソール702は、ユーザ・リスクスコアおよびアプリイベントの詳細を含むユーザについての情報を、グラフィカルインタフェースに表示してもよい。プロセスは、ステップ730および/またはステップ732で終了してもよい。
【0108】
図8のプロセス800を示す。プロセス800は、アプリの発見、およびアプリ使用に対応付けられたアプリ・リスクおよびユーザ・リスクの分析のためのプロセスである。プロセス800は、ログデータの分析に基づいてアプリを発見するように実装されてもよい。ログデータは、異なるアプリケーションおよびネットワーク・アクティビティについてのログ情報を収集できる、セキュリティ監視/制御システム102の1つ以上のエージェントから取得されてもよい。
【0109】
図8のプロセス800は、ステップ820において、ユーザが、クライアントデバイス
(たとえば、クライアントコンソール802)を操作し、情報を指定してログファイルを特定することによって開始する。たとえば、ユーザは、ログファイルおよび/または情報アクセスログファイルのソースを提供してもよい。ログファイルは、ステップ820において取り入れられてもよい。クライアントデバイス802は、インタフェースまたはサービス(たとえば、REST(Representational State Transfer)サービス)を使用して
、セキュリティ監視/制御システム102と通信してもよい。
【0110】
セキュリティ監視/制御システム102は、アプリケーション使用、ならびにアプリケーションの安全度合いおよびアプリケーションのユーザの安全度合いを発見するための処理を実行してもよい。ステップ822において、ステージングプロセスによってログを取得してもよい。ステップ824において、ログを処理し、固有のネットワーク・アクティビティを特定するための構文解析にかけてもよい。ステップ826において、ネットワーク・アクティビティを分析し、サードパーティアプリを発見してもよい。ログを処理するさまざまな段階のすべてにわたって、ステップ830におけるログ処理のステータスを表示するためのクライアントコンソール802に、セキュリティ監視/制御システム102によって情報が通信されてもよい。
【0111】
ステップ826において、ログを使用して、各アプリケーションを識別する固有の情報を特定してもよい。アプリケーション使用についてのイベントの詳細は、このログに基づいて特定されてもよい。イベントの詳細は、タイムスタンプ、サードパーティアプリ名(リンク→アプリ詳細)、IPアドレス、地理的位置、ユーザ情報(たとえば、ユーザ名または電子メールID)、および/またはアプリケーションを要求する送信元デバイスのアドレス(たとえば、MACアドレス)を含んでもよい。ステップ840において、アプリケーションについての情報を使用して、セキュリティ監視/制御システム102は、発見される各アプリについての情報を決定してもよい。この情報は、アプリについての詳細、および本明細書に開示の技術を使用するアプリケーション・リスクスコアを含んでもよい。
【0112】
いくつかの実施形態において、アプリ・リスクスコア・レジストリ804を維持してもよく、アプリ・リスクスコア・レジストリ804からアプリケーション・リスクスコアが取得されてもよい。レジストリは、維持され、アプリケーション使用についての新しい情報および/または更新された情報に基づいて自動的に更新されてもよい。アプリケーション・リスクスコアは、サードパーティアプリ・レジストリ806など、サードパーティソースを使用して取得したリスクスコア・フィード846からのアプリケーションの詳細およびリスクスコア・インジケータに基づいて演算されてもよい。アプリケーションの詳細は、サードパーティアプリケーションを提供するベンダー、またはサービスプロバイダについてのベンダー情報を含んでもよい。ベンダー情報は、ベンダー名、ベンダーロゴ、ベンダードメイン、ベンダーの説明、ベンダーカテゴリ(事業)、および/またはセキュリティ・インジケータ(たとえば、スコア、またはセキュリティスコア評価サポートデータにアクセスするためのリンク)を含んでもよい。ステップ832において、アプリケーションについての情報をクライアントコンソール802に送って、
図15に示すようなグラフィカルインタフェースに表示(たとえば、アプリケーションの使用についてのログ発見レポート)してもよい。
【0113】
ステップ844において、セキュリティ監視/制御システム102は、アプリイベントにおいて特定されたアプリのユーザについてのユーザ情報を取得できる。ステップ842において、ユーザ・リスクスコアを、ユーザ情報およびアプリイベントの詳細に基づいて演算してもよい。いくつかの実施形態において、ユーザ・リスクスコアは、ユーザのアプリケーション使用についてのデータソース維持情報から取得された情報に基づいて演算してもよい。ユーザ・リスクスコアおよびアプリイベントの詳細を含むユーザについての情
報は、クライアントコンソール802に送られてもよい。ステップ834において、クライアントコンソール802は、ユーザ・リスクスコアおよびアプリイベントの詳細を含むユーザについての情報を、グラフィカルインタフェースに表示してもよい。プロセスは、ステップ832および/またはステップ834で終了してもよい。
【0114】
IX.
アプリケーションの安全度合いの演算
図9は、いくつかの実施形態に係る、アプリケーションの安全度合いを演算するためのプロセスのシーケンスフロー
図900である。このプロセスは、セキュリティ監視/制御システム102によって実施されてもよい。
【0115】
安全度合いは、1つ以上のサードパーティソース、1人以上のユーザ、セキュリティ制御/管理システム102によって管理および取りまとめられたソース、またはそれらの組合せによって提供される情報に基づいて演算されてもよい。安全度合いは、アプリケーションおよびアプリケーションのプロバイダについての情報(「組織情報)、ならびに/またはアプリケーションのセキュリティについての情報(「セキュリティ情報」)に基づいてもよい。安全度合いは、アプリケーションのセキュリティリスクの度合いを定義する尺度における値(明細書において、「アプリケーション・リスクスコア」とも称す)であってもよい。たとえば、尺度は、1~5の間と定義され得、より高い値は、より大きなリスクを表す。他の実施形態において、特定の評価に応じてさまざまな範囲および値が利用されてもよい。スコアは、アラートを提供する、レポートを提供する、および/または救済措置を講ずるために、セキュリティ監視/制御システム102によって利用され得る。安全度合いは、アプリケーションによってもたらされたセキュリティ脅威をユーザ(たとえば、セキュリティ管理者)が軽減する際の助けとなる優先順位インジケータの役割をする値である。いくつかの実施形態において、安全度合いは、いくつかの方法で演算されてもよい。
【0116】
安全度合いを演算するための1つの手法は、特定のアプリケーションによって組織にもたらされたセキュリティ脅威の重大度に関する安全度合いを示すリスクスコアを演算することを伴ってもよい。リスクスコアは、1つ以上のインジケータ(明細書において、「脅威インジケータ」または「セキュリティ・インジケータ」とも称す)に基づいて演算されてもよい。各インジケータは、セキュリティリスクを示す値または情報であってもよい。たとえば、
図9において、1つ以上のデータソース902(明細書において、「リスクスコア・フィード」とも称す)から、固有のセキュリティ・インジケータが取得されてもよい。ここで、データソース(「S」)(本明細書において、まとめて、データソース「S
1、S
2、…S
n」902と称す)の各々は、アプリケーションの1つ以上のインジケータの「フィード」を提供する。各固有のインジケータ(「I」)(本明細書において、まとめて、インジケータ「I
1、I
2、…、I
n」904と称する)は、データソース902の各々によってそれぞれ提供されてもよい。インジケータは、セキュリティ情報、組織情報、またはその両方に基づく、特定の種類のインジケータであってもよい。インジケータは、アプリケーションによってもたらされるセキュリティ脅威の表示を提供する値であってもよい。たとえば、第1インジケータは、アプリケーションによる第1のセキュリティ脅威を示す第1の値であってもよい。第2インジケータは、アプリケーションによる第2のセキュリティ脅威を示す第2の値であってもよい。第1インジケータは、第1のデータソースから取得されてもよく、第2インジケータは、第2のデータソースから取得されてもよい。第1のデータソースは、
図2のデータソース280のうちの1つであってもよい。第2のデータソースは、第1のデータソースと同じであってもよく、データソース280のうちの別のものであってもよい。
【0117】
セキュリティ脅威インジケータの1つの種類は、オープンソース(たとえば、abuse.ch)または市販のソース(たとえば、www.SecurityScoreCard.com)など、1つ以上のサー
ドパーティソースによって提供され得るセキュリティ脅威インジケータである。セキュリティ脅威インジケータは、弱い暗号化アルゴリズムを用いたセキュアでないネットワーク設定などのアプリケーションのセキュリティ体制、ベンダーの組織において使用される旧型デバイスなどのエンドポイントセキュリティ、ベンダーのネットワークにおけるマルウェアなどのIPアドレスの評判、ハッカーネットワークにおけるアプリについてのディスカッションなどのハッカーチャター(chatter)、ベンダーから世間に露出されたセンシ
ティブ情報などの漏えい情報、ウェブサイト脆弱性などのアプリケーションセキュリティ、およびアプリウェブサイトのなりすましにつながる可能性のある間違った設定などのDNS設定など、セキュリティ情報に基づいてもよいが、これらに限定されない。
【0118】
別の種類のセキュリティ・インジケータは、オープンソース(たとえば、Wikipedia.com)または市販のソース(たとえば、Clearbit.com)など、1つ以上のサードパーティソ
ースによって提供される、組織ベースのインジケータであってもよい。組織ベースのインジケータは、これらに限定されないが、業態、国などの地理的情報を含むベンダーの物理アドレス、事業を経営している期間、アプリのインターネットドメイン登録年齢、Alexaドメインランキングなどのウェブサイトランキングリストによるアプリの人気など、組織情報、またはそれらの組み合わせに基づいてもよい。
【0119】
各脅威インジケータは、ソースによってそのインジケータに対して定義された尺度に応じてセキュリティリスクの度合いまたは脅威を示す値である、セキュリティリスクスコアを表してもよい。いくつかの実施形態において、脅威インジケータを尺度と比較して、セキュリティリスクスコアを決定してもよい。尺度は、ソースによって提供された情報によって定義されてもよく、またはこの情報に基づいて定義されてもよい。
【0120】
セキュリティ監視/制御システム102は、1つ以上の脅威インジケータに基づいて、安全度合いを値またはスコアとして演算してもよい。つまり、安全度合いは、組み合わされたセキュリティリスクの度合いとして演算されてもよい。すべてのインジケータに対して使用される尺度(たとえば、0~100までの値の尺度)に応じて、各インジケータを処理してインジケータの値を調整値に調整(たとえば、正規化)してもよい。インジケータごとの値は、正規化されると、組合せスコアを決定するために組合わされてもよい。
【0121】
リスクの度合いを示す組合せセキュリティスコア908は、インジケータのすべてまたは一部に基づいてもよい。組合せセキュリティスコアを決定するために考慮されるインジケータの数および/または種類は、設定可能であってもよい。このように、セキュリティ監視/制御システム102は、インジケータが取得されるソース902を追加または削除するように構成されてもよく、ソース902から取得されたインジケータ904を追加または削除するように構成されてもよい。いくつかの実施形態において、スコアのために考慮されるインジケータの数および種類をユーザが設定することを可能にするグラフィカルインタフェースが提示されてもよい。いくつかの実施形態において、組合せスコアは、スコアが演算される条件を定義するセキュリティポリシーに基づいてもよい。この条件は、セキュリティの1つ以上の属性に基づいてもよい。この属性を使用して、スコアのために考慮するインジケータが選択されてもよい。
【0122】
いくつかの実施形態において、組合せスコア908は、インジケータごとの重み値を使用するインジケータの組合せに基づいてもよい。たとえば、重み(「W」)(本明細書において、まとめて、重み「W1、W2、…、Wn」904と称する)が選択されて、組合せスコア908を演算するための1つ以上の特定のインジケータに適用されてもよい。重みは、整数である1、または1の何分の1かの値であってもよい。異なるインジケータに異なる重みが選択されてもよい。上記例において、第1の重みは、第1インジケータの第1の重み値であってもよく、第2の重みは、第2インジケータの第2の重み値であっても
よい。これらの重み値は、それぞれ異なってもよい。
【0123】
重みは、グラフィカルインタフェースを通して、ユーザによって設定されてもよい。いくつかの実施形態において、重みは、特定の重みを与えられた特定のインジケータに基づいて定義されたセキュリティポリシーに基づいて選択されてもよい。セキュリティリスクについてのインジケータの重要度または示唆が大きいほど、重みに対して大きな値を考慮してもよい。セキュリティリスクについてインジケータの重要度または示唆が小さいほど、重みに対して小さな値を考慮してもよい。いくつかの実施形態において、1つの特定のソースからのすべてのインジケータに、1つの重みが選ばれてもよい。たとえば、1つのソースからのすべてのインジケータには、そのソースの信頼度または信用に基づいて1つの重みが適用されてもよい。いくつかの実施形態において、セキュリティ監視/制御システム102は、アプリケーションの脅威の研究分析についてのデータを格納してもよい。このようなデータを使用して、インジケータごとの重みが選択的に選ばれてもよい。
【0124】
組合せスコアは、インジケータおよびインジケータの重みを考慮して演算されてもよい。少なくとも1つの実施形態において、組合せスコアは、組合せスコア=(I1(W1)+I2(W2)+…In(Wn))/(W1+W2+…Wn)を得るための式908を使用して演算されてもよい。この式において、各インジケータ(「I」)904をそれぞれの重み(「W」)906で乗算することによって、インジケータごとの値が演算される。インジケータごとに演算された値の総和(I1(W1)+I2(W2)+…In(Wn))である第1の値が演算される。第1の値を求めるために当てはめられる各重み値の総和である第2の値が演算される。組合せスコア908は、第1の値を第2の値で除算することに基づいて演算されてもよい。
【0125】
前から続く例において、第1インジケータの第1の値に第1の重み値を乗算することに基づいて、第1の重み付き値が演算されてもよい。第2インジケータの第2の値に第2の重み値を乗算することに基づいて、第2の重み付き値が演算されてもよい。第1の重み付き値と第2の重み付き値との総和に基づいて、重み付き総和の値が演算されてもよい。第1の重み値と第2の重み値との総和に基づいて、重み総和の値が演算されてもよい。安全度合いは、重み付き総和を重み総和で除することによって基づく値として演算されてもよい。
【0126】
いくつかの実施形態において、セキュリティ監視/制御システム102は、組合せスコア908の妥当性および正確さについてのフィードバック910を、1人以上のユーザから取得してもよい。フィードバック910は、ネットワークを通じて取得され、グラフィカルインタフェースまたは手動フィードバックを通じて容易にされてもよい。ソース、インジケータ、および/または重みのうちのいずれかは、フィードバック910に基づいて調整されてもよい。フィードバック910に基づいて、組合せスコア908は調整されてもよい。新しい組合せスコア912(「調整スコア」)は、フィードバック910に基づいて選択されたインジケータおよび/または重みに基づいて演算され得ること以外は、調整スコア912は、組合せスコア908が演算された方法と同じ方法で演算されてもよい。組合せスコア908を演算するために使用されたものに対して、ソース、インジケータ、および/または重みが追加または削除されてもよい。インジケータの重み値を周期的に改正して、我々のセキュリティアナリストおよび顧客フィードバックに基づくリスクスコアを改善することができる。インジケータの重みの改正プロセスは、決定木およびニューラルネットワークなど、自動機械学習アルゴリズムによって実行することができる。
【0127】
特定のセキュリティ脅威についての各インジケータおよび/または組合せスコアに基づいて、回帰分析914が行われてもよい。回帰分析は、線形回帰モデルを作成することおよび更新することを含んでもよい。線形回帰モデルは、S=c1(I1)+c2(I2)
+…+cn(In)などの出力を行ってもよい。回帰モデルによって演算される係数ciは、組合せスコア908を演算するための初期の重みを置き換える新しい重みまたは修正された重みであり得る。フィードバックおよびデータが多く収集されるほど、このモデルは、より正確になる。
【0128】
以下は、セキュリティ監視/制御システム102が、安全度合いを決定するために、abuse.ch(S1)のようなオープンソースサービスおよびsecurityscorecard.io(S2)のような市販のサービスからの脅威インテリジェンスを使用できる例示的なシナリオ説明する。この例において、2つのソースであるS1およびS2が使用されている。ソースS1は、ドメイン評判サービスを提供する。ドメイン評判サービスは、マルウェア、スパムボットなどをホストするためにドメインが使用されているかどうかについての情報を提供する。ドメインの評判は、S1のインジケータI11になる。ソースS2は、アプリケーションセキュリティ(I21)についての情報、たとえば、ドメインにおいてホストされるアプリにセキュリティ脆弱性があるかどうかについての情報、および、ネットワークセキュリティ(I22)についての情報、たとえば、弱い暗号化アルゴリズムが使用されているという情報を提供する。アプリケーションセキュリティは、S2のインジケータI21になり、ネットワークセキュリティは、S2のインジケータI22になる。
【0129】
このシナリオでは、データの品質およびデータソースの信頼度に応じて、ソースごとに、初期の重み値が割り当てられてもよい。たとえば、S1によって報告された問題は、重み40%であるw11を有し得る。S1に対して1つのインジケータI11があるため、このインジケータが重み40%のすべてを受ける。このソースS2は、2つのインジケータを有する。2つのインジケータは、ソースに割り当てられた重み値を共有できる。わかりやすくするために、I21およびI22が同じ重みを共有する、つまり、w21およびw22の各々が30%になると想定する。本明細書に開示の技術を使用して、組合せスコア908は、次のように演算されてもよい。((I11×w11)+(I21×w21)+(I22×w22))/(w11+w21+w22)。重みを挿入することによって、組合せスコア=((I11×0.4)+(I21×0.3)+(I22×0.3))/(0.4+0.3+0.3)と反映される。この例において、脅威インテリジェンスソースインジケータは、I11=65、I21=91、およびI22=90と評価され、ドメインのリスクスコアは、80(端数切り捨て)となる。別のシナリオにおいて、ドメインが正当なものであり、ドメインの評判について問題がないことを顧客が確認した場合、I11は、0になる。そのため、この顧客についてのドメインリスクスコアは、54(端数切り捨て)に下げられる。さらに別のシナリオにおいて、顧客が、すべての報告された問題をベンダーが解消したことを確認したので、アプリケーションをホワイトリストに入れたい場合、I11およびI21は、0となる。そのため、顧客についてのドメインリスクスコアは、0となり、顧客にとって、このアプリからのリスクがないことを示す。組合せスコアを顧客が引き続き調整していくと、回帰モデルは、重みとリスクスコアとの関係を周期的に学習し、重み値を適宜調整できるようになる。
【0130】
X.
アプリケーションのセキュリティを検出および分析するためのプロセス
図10は、実施形態に係る、アプリケーションのリスクを発見および管理するためのプロセスのフローチャートを示す図である。多くの実施形態において、後述するこのプロセスの1つ以上の機能は、
図1のセキュリティ監視/制御システム102によって実行することができる。
【0131】
フローチャート1000は、ステップ1002において、組織の1人以上のユーザがアクセスしたアプリケーションについての情報を収集することで開始してもよい。この情報は、本明細書に開示の技術を使用して、1つ以上のデータソースから収集されてもよい。データソースは、ルータ、ネットワークファイヤーウォール、アプリケーションファイヤ
ーウォール、クラウドアプリケーション、クラウドアプリケーションモバイルデバイス管理(MDM)サーバ、およびクラウドアプリ使用追跡サーバを含み得るが、これらに限定されない。いくつかの実施形態において、この情報は、「プル」型機構を使用して情報を要求することによって、データソースから取り出されてもよい。他の実施形態において、この情報は、「プッシュ」型機構による要求なしで、データソースによって提供されてもよい。この情報は、組織の環境内のネットワークトラフィックのデータから監視されてもよい。この環境は、ファイヤーウォールなど、1つ以上のネットワークセキュリティ機能を有して構成される環境など、セキュアなネットワーク環境であってもよい。
【0132】
さまざまな実施形態において、データソースから転送された情報は、各種のフォーマットであってもよい。いくつかのデータソースとは、指定のアプリケーションプログラミング・インタフェース(API)を介してやり取りが行われてもよい。他のデータソースがこの情報をデータベース・テーブルまたはログファイルに格納してもよい。
【0133】
ルータおよびネットワークファイヤーウォールから取り出された情報は、訪問されたウェブサイトまたはユーザのデバイスによって行われた他の接続についての情報を含み得る。この情報は、送信元IPおよび宛先IP、プロトコル、サービス(たとえば、HTTPでは、443)、HTTP要求内のクエリ文字列、ならびに/または製品(たとえば、ネットワークに接続するためにユーザが使用しているプラットフォームのインスタンス名)を含み得るが、これらに限定されない。IPアドレスを使用して、地理的位置の逆引きおよび/またはIPアドレスの評判の評価を行うことができる。いくつかの実施形態において、DPI(Deep Packet Inspection)を利用して、ユーザ名および他の埋め込みデータなど、ネットワークトラフィック内の追加の情報にアクセスする。多くの場合、ユーザデバイスは、仮想プライベートネットワーク(VPN)を利用してエンタープライズネットワークに接続するため、トラフィックは、エンタープライズネットワークを通過し、ネットワーク内でルータまたはファイヤーウォールによって捕えられ得る。
【0134】
特定の実施形態において、サードパーティおよび/またはこのアプリケーションもしくはこのアプリケーションを提供する別のアプリケーションからのログ情報から、アプリケーションに関する情報を取得してもよい。たとえば、承認されたアプリケーションによって提供されるデータログから、承認されたアプリケーションへのプラグインアプリケーションに関する情報を取り出してもよい。別の例において、組織に知られているクラウドサービスプロバイダによって提供されるアプリケーションなど、リードジェネレーションアプリケーション(たとえば、組織に知られていないサードパーティアプリケーション)がアプリケーションとともに利用されてもよい。サードパーティアプリケーション情報は、アクセスした時間、ユーザ名、ログインURL、アプリケーション名、アプリケーション送信元IP、および/またはログイン時間を含み得るが、これらに限定されない。これに加えて、URLまたはIPアドレスの逆引きなど、本明細書に開示の技術を使用して、補足情報を生成できる。いくつかの実施形態において、この情報は、アプリケーションを提供したサービスプロバイダのインタフェース(たとえば、アプリケーションプログラミング・インタフェース)を通して取得してもよい。
【0135】
いくつかの実施形態において、サーバは、アプリの使用に関する情報を管理および格納できる。このような情報は、サーバから取り出すことができる。一例において、組織におけるユーザによるクラウドアプリの使用に関する情報は、追跡サーバが格納できる。モバイル機器(スマートフォンまたはタブレットなど)上のアプリおよび他のソフトウェアの管理は、モバイルデバイス管理(MDM)用のサーバが運用できる。たとえば、ソフトウェアからなるGoogle Apps suiteを、サブスクリプション方式で顧客に提供することができる。Microsoftサーバは、企業全体のデバイスにインストールされたMicrosoft製品を管理してもよい。Windows(登録商標)10の
アプリは、Windows(登録商標)のシステム管理者によって管理されてもよい。さらに他のクロスプラットフォームソフトウェア管理システムが、企業において利用されてもよい。
【0136】
ステップ1004において、ステップ1002で取得した情報を使用して、アプリケーションがセキュリティリスクに対応付けられているかどうかを決定してもよい。セキュリティリスクを使用して、このアプリケーションが、組織のユーザによって使用されるための承認がされているか、または認可がされていないかを決定してもよい。たとえば、アプリケーションについての情報を使用して、このアプリケーションの使用が組織によって認可されたかどうかを判定してもよい。
図9および
図11に開示の相関分析技術など、相関分析技術を使用して情報を処理してもよい。アプリケーションについての情報は、セキュリティ監視/制御システム102、サードパーティデータソース、およびステップ1002で取得した情報の処理を含む、1つ以上のソースから取得されてもよい。この情報は、アプリケーションを提供する組織についての組織情報を含んでもよい。情報は、アプリケーションに関する安全についてのセキュリティ情報を含んでもよい。セキュリティ情報は、アプリケーションの安全度合い、または、アプリケーションの安全についてのインジケータまたはセキュリティ面に関するスコアを含んでもよい。いくつかの実施形態において、この情報は、アプリケーションのプロバイダから直接取得されてもよい。
【0137】
ステップ1006において、評価されているアプリケーションの1つ以上の特徴(たとえば、セキュリティ・インジケータ)を決定してもよい。特徴は、以下を含み得るが、これらに限定されない。アプリケーションがスタンドアロンまたは認可されたアプリケーションの拡張もしくはプラグインであるかどうか、拡張もしくはプラグインアプリケーションが、認可されたアプリケーションからアクセスするデータセットがどれであるか(たとえば、販売データ対製品コード)、アプリケーションの種類もしくはカテゴリ(たとえば、ビジネスコンテンツ対ソーシャルネットワーキング)、アプリケーションに対応付けられたドメイン名の年齢もしくは登録場所、サードパーティの評判もしくはランキングサービスによって提供される、アプリケーションに対応付けられたインターネットドメインのドメインの評判および/もしくはインターネットサイトランキング(たとえば、Alexa、Googleランクもしくはランキング要因、株式時価総額、上場株式会社対非公開会社など)、ならびに/またはスパムEメールなどの問題を示す、アプリケーションに対応付けられたウェブサイトのIPアドレスの評判もしくはマルウェア関連の問題の履歴(たとえば、サードパーティ・サービスによって提供される)。
【0138】
特徴は、他のソースから取り出された情報を使用して決定することができる。この決定には、アプリケーションが組織にもたらす可能性があるというセキュリティリスクを評価するために決定された特徴の各々に、数値(たとえば、重み)を割り当てることによる量子化が伴う。
【0139】
いくつかの実施形態において、追加の特徴が、承認されたアプリケーションまたはセキュアなアプリケーションと統合するアプリケーションに関係してもよい。たとえば、Salesforce、Google Appsなど、人気の認可されたアプリケーションとサードパーティアプリケーションが統合する場合、認可されたアプリケーションのベンダーは、データへのアクセス方法についてのガイドラインを提供する。このアクセスのせいで、認可されたアプリケーションは、リスクが高いと理解されてしまう可能性があり、その全体的なリスクスコアが増加する。たとえば、サードパーティアプリケーションは、アクセスされたデータを安全に管理およびパージしない可能性があり、または、サードパーティアプリケーションの潜在的なセキュリティ脆弱性が、承認されていないデータの漏えいのソースである可能性があり、これは、認可されたアプリケーションの管理を超えている。サードパーティアプリケーションに与えられたアクセス権の安全、および認可または
承認されたアプリケーションへのサードパーティアプリケーションのインタフェースの安全に関連する要因についての特徴が決定されてもよい。
【0140】
ステップ1008において、決定された特徴に基づいて、1つ以上のアプリケーションの各々のセキュリティスコアまたは安全度合いを決定してもよい。スコアおよび特徴は、アプリレジストリなど、データベースに格納されてもよい。スコアは、
図9を例にした技術など、本明細書に開示の技術を使用して決定されてもよい。
【0141】
セキュリティスコアは、セキュリティリスクの度合いを定義する尺度における値であってもよい。たとえば、尺度は、1~5の間と定義され得、より高い値は、より大きなリスクを表す。他の実施形態において、特定の評価に応じてさまざまな範囲および値が利用されてもよい。スコアは、アラートを提供する、レポートを提供する、および/または救済措置を講ずるために、セキュリティ監視/制御システム102によって利用され得る。これに加えて、セキュリティ監視/制御システム102は、アプリケーションのセキュリティについてのスコアおよび他の情報を、よりセキュアな(たとえば、許可、承認、または認可された)アプリケーションに関する情報と組み合わせて利用して、セキュリティ評価を行い、脅威レベルを決定してもよい。
【0142】
フローチャート1000は、ステップ1010で終了してもよい。
図11は、実施形態に係る、アプリケーションのリスクを発見および管理するためのプロセスのフローチャート1100を示す図である。多くの実施形態において、後述するプロセスの1つ以上の機能は、
図1のセキュリティ監視/制御システム102によって実行することができる。フローチャート1100は、
図10に示すプロセスの特定の実施形態を説明する。
【0143】
フローチャート1100は、ステップ1102において、ユーザのネットワーク・アクティビティについての情報を取得することで開始してもよい。この情報は、
図8を参照して開示された技術を含む、ネットワーク・アクティビティを監視するための技術を使用して取得されたデータから取得されてもよい。ネットワーク・アクティビティについてのデータは、ネットワーク機器からのデータ(たとえば、ログデータまたはレコードデータ)を監視および/または取得することによって取得されてもよい。組織がアプリケーション使用を監視するために、組織は、その内部の、または保護されたネットワーク(たとえば、イントラネット)のネットワーク・アクティビティを監視してもよい。ネットワーク・アクティビティは、組織のネットワーク内外のネットワークトラフィックのネットワークリソース(たとえば、ネットワーク機器)から情報を取得することによって監視されてもよい。
【0144】
いくつかの実施形態において、ネットワーク・アクティビティについてのデータは、複数のデータソースから収集されてもよい。ログファイルが、セキュリティ監視/制御システム102によって取得されて採集および処理され、アプリケーション使用など、ネットワーク・アクティビティについての情報を特定してもよい。ログファイルは、
図8に開示の技術を使用して取得されてもよい。アプリケーションイベントについてのデータが、
図7に開示の技術を使用して、1つ以上のソースから取得されてもよい。いくつかの実施形態において、特定のサービスおよびアプリケーション使用など、ネットワーク・アクティビティについての情報は、アプリケーションのサービスプロバイダなど、1つ以上のサードパーティソースから取得されてもよい。セキュリティ監視/制御システム102は、サービスプロバイダのインタフェースを利用して、1人以上のユーザに関するアクティビティについてのログ情報を取得してもよい。
【0145】
この情報は、複数の異なるフォーマットで複数のソースから取得されてもよい。この情
報を含んだデータは、処理されて、アプリケーション使用を判定する処理のためのフォーマットに整えられる(たとえば、正規化される)。このデータは、ネットワーク・アクティビティの固有のインスタンスを特定するために、重複排除処理されてもよい。
【0146】
ステップ1104において、取得したネットワーク・アクティビティについての情報を使用して、アクセスされた1つ以上のアプリケーションを特定する。取得されたネットワーク・アクティビティについての情報は、ネットワーク・アクティビティについてのデータから取得されてもよい。データは、ネットワーク上の通信についてのものであってもよい。さらに、このデータは、組織のネットワーク上のテナントとしての複数のユーザによるネットワークについてのデータである。ネットワーク・アクティビティについてのデータを取得することは、ネットワーク上の1つ以上のネットワーク機器からネットワークデータを取得することを含んでもよい。ネットワークデータは、本明細書に開示の技術によってコンピューティング環境において実装された1つ以上のエージェントおよび/またはログマネージャから取得されてもよい。ネットワークデータは、セキュリティ監視/制御システムのログコレクターから取得されてもよい。ネットワークは、組織のコンピューティング環境において保護されてもよく、その結果、コンピューティング環境は、パブリックネットワークから守られる。
【0147】
アプリケーションにアクセスすることは、アプリケーションのデータが、異なるアプリケーションによってアクセスされることを許可することを含んでもよい。たとえば、アプリケーションのデータは、このアプリケーションのサービスプロバイダからユーザのデータにアクセスする同意がユーザによって与えられたサードパーティアプリケーションによってアクセスされてもよい。アプリケーションは、ユーザがアプリケーションにアクセスした組織によって承認(たとえば、認可)されていてもよく、承認(たとえば、無認可)されていなくてもよい。情報は、使用されるアプリケーションのデータを含んでもよい。データは、アクセスされているアプリケーションのアプリケーション名またはこのアプリケーションへのリンクであってもよい。アプリケーションについての情報を使用して、サードパーティソース(たとえば、このアプリケーションのプロバイダ)から情報を取り出してもよい。情報は、プロバイダのサービスプロバイダシステムから取得されたアクティビティデータに含まれてもよい。各固有のアプリケーションを特定して、ユーザがアクセスしたアプリケーションを特定してもよい。いくつかの実施形態において、いくつかのアプリケーションは、同じ種類または同じ種類部類であってもよいが、アクセス用の異なるインスタンスおよび/または異なるアカウントに対応してもよい。各固有のアプリケーションは、評価される1つ以上の特徴についてのセキュリティ脆弱性をもたらす可能性があるので、各アプリケーションは、分析にかけられるよう決定されてもよい。各固有のアプリケーションに対応するデータは、さらなる処理のために、アプリケーションと対応付けて格納されてもよい。
【0148】
ステップ1106において、アクセスされた1つ以上のアプリケーションの各々のアクセス情報を特定する。アクセス情報は、ステップ1102で取得した情報を使用して特定されてもよい。アプリケーションは、データを処理して、ユーザがアクセスしたアプリケーションの要求に対応するデータの部分を識別することによって特定されてもよい。このデータ部分は、アプリケーション要求についてのアプリケーション情報を示してもよく、アプリケーション情報は、アプリケーションがユーザによってアクセスされたと特定するために使用される。このデータは、IPアドレス、送信元識別子、アプリケーションへのリンクなど、要求についての情報、または要求の送信元もしくはアプリケーションが位置する宛先に関する他の情報を含んでもよい。アクセス情報は、各アプリケーションに対応するデータから特定されてもよい。アプリケーションに対応するネットワーク・アクティビティについてのアクセス情報は、このデータ部分を使用して特定されてもよい。アクセス情報は、アプリケーションにアクセスするために使用される情報、または、アプリケー
ションへのアクセスに関する情報を含んでもよい。アクセス情報は、各固有のアプリケーションに対応するデータから取得されてもよい。各アプリケーションについての情報を使用して、各アプリケーションについてのユーザのアクセス情報が特定され得る。アクセス情報は、アプリケーションを要求している送信元(たとえば、送信元デバイス)および要求が送られる宛先についての情報を含む、アプリケーションにアクセスするための要求についてのネットワーク情報を含んでもよい。アクセス情報は、ネットワーク・アクティビティのタイムスタンプ、アプリケーション情報(たとえば、アプリケーション名、アプリケーションにアクセスする送信元の位置、および/またはアプリケーションについての詳細)、送信元のIPアドレス、宛先のIPアドレス、送信元についての地理的情報、ユーザ情報(たとえば、ユーザIDまたは電子メールID)、およびMAC(Media Access Control)アドレスを含んでもよいが、これらに制限されない。アプリケーションの送信元の位置は、URLなどのリンク、またはURIであり得る。ステップ1102で取得した情報を処理して、ステップ1104で特定された各固有のアプリケーションに関するネットワーク・アクティビティを特定することができる。
【0149】
ステップ1108において、アプリケーションの各々を提供するプロバイダシステムのドメインについてのドメイン情報を、アクセス情報に基づいて特定する。ドメイン情報は、
図7および
図8を参照して開示された技術を使用して特定してもよい。アプリケーションのドメインは、プロバイダおよびアプリケーションを提供するプロバイダのシステムについての情報(たとえば、ホストシステム情報)を含んでもよい。たとえば、ドメイン情報は、ドメイン名、IPアドレス、システム情報、またはプロバイダのシステムにおけるドメインのホストシステムについての他の情報を含んでもよい。
【0150】
ドメイン情報は、アクセス情報のすべてまたは一部を使用して、1つ以上のデータソースのクエリによって特定してもよい。セキュリティ監視/制御システム102は、アプリケーションおよびアプリケーションのプロバイダについての情報のデータストアを維持してもよい。いくつかの実施形態において、サードパーティデータソースを使用して、アプリケーションのドメインについての情報を探索またはクエリしてもよい。1つのサードパーティデータソースは、サードパーティによって管理されるデータベースであってもよく、その結果、このデータベースは、ドメインについての情報およびアプリケーションの1つ以上のプロバイダについてのシステム情報を格納する。別のサードパーティデータソースは、DNS(Domain Name System)ソースまたは、ドメインまたはドメインのエンティティ(たとえば、プロバイダ)についての情報を格納する他のソースであってもよい。アクセス情報に基づいて、ドメインについての情報を求めてサードパーティデータソースがクエリされてもよい。たとえば、NSlookupコマンドを発行して、アクセス情報に含まれるIPアドレスのドメインを特定してもよい。
【0151】
いくつかの実施形態において、アプリケーションのプロバイダのシステムに要求を送って、ドメイン情報を取得してもよい。アクセス情報に基づいて、要求が生成されて、アプリケーションを提供しているシステムに対して設定されてもよい。要求は、アクセス情報が示すアプリケーションのソースの位置に基づいて送られてもよい。たいていの場合、データソースのクエリによって取得されたドメイン情報は、プロバイダのシステムのドメインについての具体的な情報を提供しない。要求は、アプリケーションの認証を得るための、エンドポイント(たとえば、SQL接続エンドポイント)に対するネットワーク呼び出しであってもよい。この要求は、アプリケーションのURIを含んでもよい。URIは、アプリケーションのアクセス情報から取得されてもよい。少なくとも1つの例において、ネットワーク呼び出しは、アプリケーションのプロバイダのドメインのホスティングされたサイトについての情報の認証を得るためのブラウザ呼び出し(たとえば、HTTPS)であってもよい。このように呼び出しを送ることによって、サイトは、要求がブロックされないようにしなくてもよい。この認証は、アプリケーションのプロバイダのホスティン
グされたサイトについてのドメイン情報を含んでもよい。データソースをクエリすることに加えて、またはそれに代えて、プロバイダのシステムへの要求が実施されてもよい。
【0152】
ステップ1110および1112は、同時に、または、特定されたアプリケーションに基づいた順序で実行されてもよい。ステップ1110において、1つ以上のアプリケーションの各々の組織情報を特定してもよい。組織情報は、アクセスされた1つ以上のアプリケーションの各々を提供するプロバイダシステムにはっきりと対応付けられたサービスプロバイダの各組織についての情報を含んでもよい。組織情報は、アプリケーションを提供するプロバイダシステムに対応付けられた組織を識別する情報を含んでもよい。組織情報は、組織の登録情報など、企業体情報を含んでもよい。組織情報は、アプリケーションのソースおよびアプリケーションの種類など、アプリケーションについての詳細を含む、アプリケーションについての情報を含んでもよい。組織情報は、プロバイダシステムがどこにホストされているかなど、プロバイダシステムの位置についての位置情報を含んでもよい。いくつかの実施形態において、組織情報は、アクセスされる各アプリケーションについての統計情報を含み得る。統計情報は、アプリケーションに関するネットワーク・アクティビティのためのデータ使用、アプリケーションのネットワークトラフィック(たとえば、アップロードおよびダウンロードトラフィック)、およびアプリケーション使用および操作についての他の統計情報を含んでもよい。ドメイン情報を使用して組織情報を特定し、アプリケーションを提供する組織を識別してもよい。
【0153】
組織情報は、1つ以上のソースから取得されてもよい。1つのソースは、アプリケーションを提供する組織(複数可)を含む、アプリケーションについての情報を集約するサードパーティソースを含んでもよい。セキュリティ監視/制御システム102は、ネットワーク・アクティビティを監視することに基づいて、アプリケーション情報の自身のデータストアを維持してもよい。いくつかの実施形態において、ユーザは、アプリケーションについての情報を提供してもよい。この情報は、セキュリティ監視/制御システム102によって格納されてもよい。
【0154】
ステップ1112において、アクセスされた1つ以上のアプリケーションの各々についてのセキュリティ情報を求めてもよい。セキュリティ情報は、アプリケーションについての1つ以上のセキュリティ関連のインシデントについての情報を含んでもよい。セキュリティ情報は、安全についてのアプリケーションの1つ以上の特徴に関する安全度合い(たとえば、セキュリティスコア)を提供してもよい。少なくとも1つの実施形態において、セキュリティ情報は、
図9を参照して開示される1つ以上のフィード902を介して取得されてもよい。フィードが提供する安全度合いは、アプリケーションのセキュリティの特徴に対応してもよい。安全度合いは、1つ以上のインジケータまたは特徴に基づいてもよい。ドメイン情報、組織情報、またはそれらの組合せを使用して、セキュリティ情報が求められてもよい。いくつかの実施形態において、セキュリティ情報は、アプリケーションを識別する情報に基づいて取得されてもよい。
【0155】
セキュリティ情報は、1つ以上のソースから取得されてもよい。1つのソースは、アプリケーションを提供する組織(複数可)を含む、アプリケーションについてのセキュリティ関連の情報を集約するサードパーティソースを含んでもよい。セキュリティ監視/制御システム102は、ネットワーク・アクティビティを監視することに基づいて、アプリケーションセキュリティ情報の自身のデータストアを維持してもよい。いくつかの実施形態において、ユーザは、アプリケーションについてのセキュリティ報を提供してもよい。この情報は、セキュリティ監視/制御システム102によって格納されてもよい。安全度合いは、これらのソースのうちのいずれかが提供するセキュリティ情報において示されてもよい。いくつかの実施形態において、セキュリティ情報は、異なるフォーマットで1つ以上のソースから取得されてもよい。各データソースは、特定の種類のセキュリティ情報を
提供してもよい。セキュリティ情報は、特定のフォーマットまたは尺度の安全度合いを提供するために、正規化または処理されてもよい。
【0156】
ステップ1114は、ステップ1110および/または1112のうちの1つ以上を実行することに基づいて実行されてもよい。ステップ1114において、安全度合い(たとえば、アプリケーション・リスクスコア)を、アクセスされた1つ以上のアプリケーションの各々についての別個の度合いとして演算する。安全度合いは、アプリケーションのセキュリティの値または表示であり得る。たとえば、安全度合いは、1(たとえば、低いセキュリティリスク)~5(たとえば、高いセキュリティリスク)段階の値であってもよい。安全度合いの尺度は、セキュリティの1つ以上の特徴に基づいてもよく、または、まとめて、ひとそろいの特徴に基づいてもよい。
【0157】
いくつかの実施形態において、アプリケーションまたはセキュリティリスクの種類など、1つ以上の特徴に基づいて、複数のアプリケーションの安全度合いを演算してもよい。安全度合いは、
図8および
図9を参照して開示される技術を使用して演算されてもよい。安全度合いは、フローチャート1100の前のステップで特定された情報のうちのいずれかを使用して演算されてよい。たとえば、組織情報、セキュリティ情報、またはそれらの組合せを使用して、安全度合いが演算されてもよい。セキュリティの1つ以上のインジケータまたは特徴の安全度合いが演算されてもよい。特徴ごとに、重み値が決定されてもよい。インジケータおよび重みに基づいて、各特徴について個々に、またはまとめて、安全度合いが演算され得る。いくつかの実施形態において、アプリケーションの安全度合いは、アクセスするためのアカウントを有するテナントとしてのユーザグループなど、複数のユーザによる使用に基づいて演算されてもよい。フローチャート1100のステップは、複数のユーザによってアクセスされたアプリケーションに向けて実施されてもよい。1つ以上のプロバイダ間および/または1つ以上のアカウント間のアプリケーションの種類の複数のインスタンスの安全度合いが演算されてもよい。
【0158】
いくつかの実施形態において、ステップ1116において、アクセスされた1つ以上のアプリケーションの各々についての情報を表示するためのディスプレイを提供してもよい。ディスプレイは、アプリケーションまたはウェブブラウザにおいて提供されるグラフィカルインタフェースであってもよい。ディスプレイは、アプリケーションのセキュリティを監視および管理するためのインタラクティブディスプレイであってもよい。ディスプレイは、セキュリティ監視/制御システム102によって生成されてもよい。ディスプレイを提供することは、ディスプレイをクライアントでレンダリングさせることを含んでもよい。ディスプレイは、生成されると、クライアントに送られてレンダリングされてもよい。さまざまなインタラクティブディスプレイの例を、
図15~
図26を参照して開示する。いくつかの実施形態において、ディスプレイは、クライアントに送られるメッセージに含まれるレポートとして提供されてもよい。レポートは、アプリケーションに関するセキュリティについての通知であってもよい。
【0159】
ステップ1118において、1つ以上のアクセスされたアプリケーションの各々に対する1つ以上の救済操作を実行してもよい。救済操作は、救済または訂正として実行される操作であり、アプリケーションによってもたらされるセキュリティ(たとえば、セキュリティリスクまたは脅威)を解決するためのものである。救済操作の例として、アプリケーションのセキュリティについての通知メッセージを送ること、アプリケーションのセキュリティについての情報を表示すること、アプリケーションの操作および/またはアクセスを調整すること(たとえば、制限的アクセス調整)などが挙げられるが、これらに限定されない。
【0160】
たとえば、アプリケーションのアクセスを制御することは、ユーザまたはユーザグルー
プがこのアプリケーションにアクセスすることを阻止または防止することを含んでもよい。アプリケーションへのアクセスの制限、阻止、または防止は、多くの方法で実現されてもよい。1つ以上の命令を送って、アプリケーションについてのアクセスを調整することができ、または、アプリケーションについてのアクセスを調整するように1つ以上の命令を構成することができる。たとえば、アクセスを効果的に拒否または阻止するよう、アプリケーション要求のいずれも拒否されるように、または、この要求が組織外に伝送されないように、組織のネットワーク上で1つ以上の命令を構成することができる。特定の種類のアプリケーション要求を拒否するように、1つ以上の命令を構成することができる。ユーザは、インタフェースにおいて、ポリシーに応じてアプリケーションへのアクセスが限定されるようにこのアクセスを設定するための情報を提供するように求められ得る。
【0161】
別の例において、操作は、アプリケーションへのアクセスをそれぞれ許可または拒否するためのホワイトリストまたはブラックリストのいずれかにアプリケーションについての情報を載せることであってもよい。いくつかの実施形態において、ポリシーに従ってアプリケーションを評価することに基づいて、アプリケーションごとに救済操作を実行しなくてもよい。
【0162】
アプリケーションに対する救済操作は、このアプリケーションの安全度合いに基づいて実行してもよい。救済操作は、自動、手動、ユーザまたは管理者の介入を要請すること、またはそれらの組合せであってもよい。操作は、ユーザ(たとえば、アナリスト)からの入力に基づいて設定されてもよい。救済操作は、1つ以上のポリシーに基づいて実行されてもよい。ポリシーは、ユーザによって設定可能であってもよく、および/または、
図9を参照して開示される技術など、セキュリティについてのフィードバックに基づいて設定されてもよい。たとえば、救済操作は、リスク(たとえば、高リスク)の閾値を満たすアプリケーションの安全度合いに基づいて実行されてもよい。いくつかの実施形態において、救済操作は、アプリケーションの1つ以上の特徴に関するセキュリティ情報に基づいて実行されてもよい。これらの特徴に基づいて、安全度合いが演算されてもよい。このように、救済操作は、安全度合いが演算されるこれらの特徴の安全度合いに基づいてもよい。安全度合いおよび救済操作の例を、
図15~
図26を参照して示す。
【0163】
いくつかの実施形態において、救済操作は、セキュリティポリシーに基づいて実行されてもよい。セキュリティポリシーは、安全度合いおよび/またはセキュリティ情報に基づいて、実行する1つ以上の救済操作を定義してもよい。セキュリティポリシーは、安全度合いおよび/または本明細書に開示のいずれかの情報(たとえば、組織情報またはセキュリティ情報)に基づいて適用されてもよい。セキュリティリスクまたは脅威を評価するための動作が実行されてもよい。セキュリティリスクまたは脅威は、安全度合いおよび/またはセキュリティ情報(たとえば、1つ以上のセキュリティ・インジケータ)に基づき得る。ポリシーは、救済操作が講じられるタイミングを定義する閾値(たとえば、セキュリティ閾値またはリスク閾値)など、1つ以上の条件を定義してもよい。この条件は、安全度合いの尺度に応じた、またはセキュリティ・インジケータのプロバイダが設定した尺度に応じた1つ以上の値によって定義されてもよい。たとえば、セキュリティポリシーを適用することは、安全度合いがアプリケーションのリスク閾値を満たすかどうかを判定することを含んでもよい。安全度合いを、ポリシーにおける1つ以上の値と比較して、セキュリティリスクの重大度を評価してもよい。これら値は、1つ以上のセキュリティ・インジケータに基づいて定義されてもよい。これらの値は、安全度合いが、安全度合いを演算するために使用されるセキュリティ・インジケータに基づいて定義される閾値と比較されるように、1つ以上のセキュリティ・インジケータに基づいて定義されてもよい。また、セキュリティ情報で取得されたセキュリティ・インジケータ同士を比較して、セキュリティリスクをさらに評価してもよい。
【0164】
いくつかの実施形態において、救済操作は、アプリケーションがコンピューティング環境内でアクセスされないようにするために、コンピューティング環境の1つ以上の側面を設定するためのものであってもよい。1つ以上の命令を、コンピュータシステムおよび/または組織のコンピューティング環境のネットワーク機器に送り、どのアプリケーションをブロックするか、および誰に対してアプリケーションをブロックまたは限定するかを指定してもよい。アプリケーションへのアクセスは、ポリシー、またはコンピューティング環境におけるアクセスを制御できる他の設定可能な情報によって設定されてもよい。いくつかの実施形態において、ユーザによって操作されるクライアントデバイス上のエージェントに、命令を送ることができる。エージェントは、特定のアプリケーションへのアクセスを防止するために動作を変更するように指示されてもよく、および/またはクライアントデバイスが使用される特定の環境におけるアプリケーションの動作を変更するように指示されてもよい。救済操作は、複数のユーザによるアプリケーションへのアクセスを防止するためのものであってもよい。いくつかの実施形態において、救済操作は、1つ以上の命令をサービスプロバイダシステムに送ることを含んでもよい。たとえば、命令をサービスプロバイダシステムに送り、1つ以上のセキュリティコントロールおよび/またはアプリケーションにアクセスするための設定を調整することができる。サービスプロバイダシステムは、セキュリティコントロールおよび/または設定にアクセスするためのインタフェースを提供してもよい。救済操作は、このインタフェース(たとえば、呼び出しを行うことによって)を使用して、アプリケーションのセキュリティコントロールおよび/または設定を調整することを含んでもよい。
【0165】
救済操作は、アラートの使用を含んでもよい。セキュリティリスクおよび/またはアプリケーションへのアクセスにおける変更についてのアラートが、管理者または他のユーザのデバイスに送られてもよい。いくつかの実施形態において、アプリケーションに対する救済操作は、グラフィカルインタフェースに、アプリケーションの構成操作を調整するようユーザに求めることを含む。
【0166】
フローチャート1100は、ステップ1120で終了してもよい。
図12は、実施形態に係る、アプリケーションのリスクを発見および管理するためのプロセスのフローチャート1200を示す図である。多くの実施形態において、後述するプロセスの1つ以上の機能は、
図1のセキュリティ監視/制御システム102によって実行することができる。フローチャート1200は、
図10および
図11を参照して開示される技術の一部として、またはそれを使用して実施されてもよい。フローチャート1200を参照して開示されるプロセスは、複数のサービスプロバイダ(たとえば、クラウドサービスプロバイダ)間で使用されたアプリケーションのセキュリティを評価および管理するために実施されてもよい。アプリケーションは、第1アプリケーションであってもよい。第1アプリケーションは、第1アプリケーションのサービスプロバイダとは異なるまたは同じサービスプロバイダによって提供される第2アプリケーションおよび/または第2アプリケーションのデータへのアクセスを可能にまたは容易にする。
【0167】
フローチャート1200は、ステップ1202において、組織のネットワーク上のサービスプロバイダシステム(たとえば、第1のサービスプロバイダシステム)からアクセスされる1つ以上のアプリケーションについてのデータ(たとえば、「第1データ」)を取得することで開始してもよい。第1データは、サービスプロバイダの第1のサービスプロバイダシステムが提供するプログラミング・インターフェースを通して取得されてもよい。このデータは、アクセスされたアプリケーションおよび/またはデータ、ならびにこのアプリケーションおよび/またはデータがどのようにアクセスされたかについての情報など、アクセス情報を提供してもよい。アクセス情報は、アプリケーションまたはそのデータに第1のサービスプロバイダシステムからアクセスしたサードパーティアプリケーションについての情報を提供してもよい。
【0168】
ステップ1204において、組織のネットワーク上のサービスプロバイダシステム(たとえば、第2のサービスプロバイダシステム)からアクセスされる1つ以上のアプリケーションについてのデータ(たとえば、「第2データ」)を取得してもよい。第2データは、サービスプロバイダの第2のサービスプロバイダシステムが提供するプログラミング・インターフェースを通して取得されてもよい。このデータは、アクセスされたアプリケーションおよび/またはデータ、ならびにこのアプリケーションおよび/またはデータがどのようにアクセスされたかについての情報など、アクセス情報を提供してもよい。アクセス情報は、アプリケーションまたはそのデータに第2のサービスプロバイダシステムからアクセスしたサードパーティアプリケーションについての情報を提供してもよい。
【0169】
アクセス情報をいくつかのサービスプロバイダシステムから集約して、組織のネットワーク上のユーザがアクセスしたアプリケーションのセキュリティを評価してもよい。各サービスプロバイダシステムからのアクセス情報を処理して、組織のネットワーク上のユーザがアクセスした1つ以上のアプリケーションを特定してもよい。アプリケーションは、別個であってもよいが、1つ以上の共通の属性を有する。アプリケーションは、別個であってもよいが、アプリケーションおよび/またはそのデータにサードパーティアプリケーションがアクセスすることをユーザが許可することに基づいて、互いに関連してもよい。サードパーティアプリケーションが許可されたアクセスは、リスクがある可能性があり、および/または組織が許可しない可能性がある。
【0170】
ステップ1206において、ユーザがアクセスしたアプリケーション(たとえば、第3アプリケーション)のアクセス情報を特定してもよい。少なくとも1つの実施形態において、アプリケーションは、第1のサービスプロバイダシステムおよび第2のプロバイダシステムを通してアクセスされる種類のアプリケーションであってもよい。サービスプロバイダシステムの各々からのアクセス情報を処理して、第1のサービスプロバイダシステムおよび第2のプロバイダシステムを通してアクセスされるアプリケーションについてのアプリケーション種類を特定してもよい。アプリケーションは、各プロバイダシステムから取得されたアプリケーション情報に基づく種類のアプリケーションであると特定されてもよい。1つ以上のデータソースを使用して、アクセスされたアプリケーションの各々についてのアプリケーション情報を取り出してもよい。ステップ1206の後続のステップにおいて、ユーザがアクセスしたアプリケーション(複数可)が共通の種類を有する場合、後続のステップにおいて特定される情報は、アプリケーションごとに特定されてもよい。アプリケーションごとの安全度合い、またはアプリケーションの組合せの安全度合いが演算されてもよい。安全度合いは、平均基づいてもよく、または、アプリケーションの各々の安全度合いに基づいて組合わされた度合いに基づいてもよい。
【0171】
少なくとも1つの実施形態において、サービスプロバイダシステムの各々からのアクセス情報を使用して、サービスプロバイダシステムの各々が提供するそれぞれ異なるアプリケーションおよび/またはそれらのデータにアクセスするために、同じサードパーティアプリケーションが使用されていると判断してもよい。サービスプロバイダシステムの各々は、サードパーティアプリケーションを通したアプリケーションへのアクセスを示し得る情報を提供してもよい。
【0172】
ステップ1208において、アプリケーション(複数可)のプロバイダシステムのドメイン情報を特定してもよい。ステップ1210および1212は、同時に、または特定されたアプリケーションに基づく任意の順序で実行してもよい。ステップ1210において、アプリケーションの組織情報を特定してもよい。ステップ1212において、アプリケーションについてのセキュリティ情報を求めてもよい。フローチャート1200に関して特定された情報は、
図11を参照して開示される技術など、本明細書に開示の技術を使用
して特定されてもよい。
【0173】
ステップ1214において、アクセスされたアプリケーションの安全度合いを演算してもよい。アプリケーションごとの安全度合い、またはユーザがアクセスしたと特定されるアプリケーションの組合せの安全度合いが演算されてもよい。安全度合いは、平均基づいてもよく、または、アプリケーションの各々の安全度合いに基づいて組合わされた度合いに基づいてもよい。
【0174】
ステップ1216において、アクセスされたアプリケーション(複数可)についての情報のインタラクティブディスプレイを提供する。インタラクティブディスプレイは、グラフィカルインタフェースの一部として含まれてもよく、または、グラフィカルインタフェースとして生成されてもよい。グラフィカルインタフェースは、アプリケーションの安全度合いを表示してもよい。
【0175】
ステップ1218において、アクセスされたアプリケーション(複数可)に対して救済操作を実行してもよい。救済操作は、
図11を参照して開示される技術など、本明細書に開示するように実行されてもよい。アプリケーションが、サービスプロバイダシステムにおけるアプリケーションまたはそのデータへのアクセスが与えられているサードパーティアプリケーションである場合、サードパーティアプリケーションは、このアプリケーションにアクセスできないようにされてもよい。いくつかの実施形態において、サービスプロバイダシステムに要求を送り、サードパーティアプリケーションがアクセスしたアプリケーション(複数可)および/またはそのデータへのアクセスを限定または拒否してもよい。いくつかの実施形態において、インタラクティブディスプレイを変更して、サードパーティアプリケーションの設定を調整するようユーザに求めて、サービスプロバイダシステムからのアプリケーションおよび/またはそのデータへのアクセスを限定または無効にしてもよい。
【0176】
フローチャート1200は、ステップ1220で終了してもよい。
XI.
アプリケーション使用に基づくユーザの安全度合いの演算
図13および
図14は、いくつかの実施形態に係る、アプリケーション使用に基づいてユーザの安全度合いを演算するための技術を示す図である。具体的には、
図13は、プロセスのシーケンスフロー
図1300の例を示す図である。この技術は、セキュリティ監視/制御システム102によって実現されてもよい。ユーザの安全度合いは、
図9を参照して開示される技術を用いて演算されてもよい。
【0177】
ユーザの安全度合い(明細書において、「ユーザ・リスクスコア」とも称す)は、ユーザが組織にもたらす可能性のある安全へのリスクまたは脅威として、表示を提供してもよい。上述したように、ユーザは、承認されてない方法またはセキュアでない方法でのアプリケーションの使用に基づいて、組織のネットワークにセキュリティ脅威をもたらす可能性がある。このような使用によって、組織は、そのプライベートネットワークおよびデータの脆弱性に晒されてしまう可能性がある。場合によっては、アプリケーションが、企業ネットワークおよび/またはコンピューティングリソースなど、組織のリソースの非効率的または間違った使用に基づいて、組織に脅威をもたらす可能性がある。ユーザ・リスクスコアは、組織におけるユーザに関するセキュリティ脅威の重大度を示す度合いを提供してもよい。アプリケーションに対するユーザ操作をプロファイリングすることによってユーザ・リスクスコアを連続して生成してもよい。
【0178】
いくつかの実施形態において、セキュリティ監視/制御システム102は、リスクスコアについての情報および/またはリスクスコアに関する情報を表示するために提示され得るグラフィカルインタフェースを提供してもよい。2017年2月17日に出願され、「
Systems and Methods for Discovering and Monitoring Unsanctioned Enterprise Assets」と題された優先出願である米国仮出願第62/460,716号[代理人整理番号:
088325-1039197(185502US)]に、グラフィカルインタフェースの例が表示されている。グラフィカルインタフェースは、リスクスコアおよび関連する可視化したもの(KSI)とともに、ユーザレポートとしてコンソールに提示されてもよい。グラフィカルインタフェースは、認可されたアプリおよび承認されていないアプリの両方についての、さまざまなソースからのリスク要素を組み合わせて一様に提示するシングルペインオブグラスとして機能してもよい。グラフィカルインタフェースは、ユーザ(たとえば、セキュリティ管理者)が、関連するリスクインジケータを見て、ユーザによってはリスクスコアが高い場合がある理由、どのインジケータがアプリにおいて実行された普通でない操作を含むのか、アクセスされた、リスクのある承認されていないアプリなどを理解することを可能にする。これは、ファイヤーウォールでアプリをブロックする、このアプリを避けるようユーザを教育する、またはユーザーアカウントを一時停止するなどの救済操作をユーザが講ずるまたは設定することに役立つ。グラフィカルインタフェースは、ユーザが、リスク・アプリ・スコア、アプリカテゴリ、ユーザ・リスクスコアなど、特定の条件に一致したポリシーを作成することに基づいて、カスタマイズされたアラートを設定することを可能にしてもよい。
【0179】
ユーザの安全度合いは、1つ以上のサードパーティソース、1人以上のユーザ、セキュリティ制御/管理システム102によって管理および取りまとめられたソース、またはそれらの組合せによって提供される情報に基づいて演算されてもよい。ユーザの安全度合いは、アプリケーションおよびアプリケーションのプロバイダについての情報(「組織情報)、アプリケーションのセキュリティについての情報(「セキュリティ情報」)、ならびに/またはアプリケーション(「アプリケーション使用情報」)に関する使用についての情報を含む、情報に基づいてもよいが、これらに限定されない。組織情報およびセキュリティ情報は、アプリケーションのリスク度合いを決定することに関する情報など、本明細書に開示の情報を含んでもよい。アプリケーション使用情報は、実行された動作/操作の種類(たとえば、アプリケーションからのデータの大量エクスポートもしくはアプリケーションの連絡先のダウンロード、または、過剰なファイルアクセス数)、アクセスされたアプリケーションのカテゴリ(たとえば、マルウェアウェブサイトに対応付けられたアプリ、情報漏えいウェブサイト、またはハッカーが使用するアプリ/ツールは、ユーザ・リスクスコアを上げる)、またはアプリケーションの使用からの異常な逸脱など、アプリケーションの使用についての情報を示してもよい。たとえば、アプリケーション使用情報は、1つのプロバイダシステムを使用してファイルにアクセスすることがほとんどなかったユーザが大量の文書を突然ダウンロードし始めることに基づいて、マルウェアアクティビティの表示を提供してもよい。
【0180】
ユーザの安全度合いは、ユーザのセキュリティリスクの度合いを定義する尺度の値(たとえば、ユーザ・リスクスコア)であってもよい。たとえば、尺度は、1~5の間と定義され得、より高い値は、ユーザのより大きなリスクを表す。他の実施形態において、特定の評価に応じてさまざまな範囲および値が利用されてもよい。スコアは、アラートを提供する、レポートを提供する、および/または救済措置を講ずるために、セキュリティ監視/制御システム102によって利用され得る。ユーザの安全度合いは、によってもたらされたセキュリティ脅威をユーザ(たとえば、セキュリティ管理者)が軽減する際の助けとなる優先順位インジケータの役割をする値である。いくつかの実施形態において、安全度合いは、いくつかの方法で演算されてもよい。
【0181】
ユーザ・リスクスコアは、特定のアプリケーションによって組織にもたらされたセキュリティ脅威の重大度に関する安全度合いを示してもよい。ユーザ・リスクスコアは、1つ以上のインジケータ(明細書において、「脅威インジケータ」または「セキュリティ・イ
ンジケータ」とも称す)に基づいて演算されてもよい。各インジケータは、セキュリティリスクを示す値または情報であってもよい。たとえば、
図13において、1つ以上のデータソース(明細書において、「リスクスコア・フィード」とも称す)から、固有のセキュリティ・インジケータが取得されてもよく、アプリケーションの1つ以上のインジケータの「フィード」を提供する。各固有のインジケータ(「I」)(本明細書において、まとめて、インジケータ「I
1、I
2、…、I
n」1304と称する)は、データソースの各々によってそれぞれ提供されてもよい。インジケータは、上記の種類の情報など、アプリケーションに関する情報またはアプリケーションについての情報に基づく、特定の種類のインジケータであってもよい。インジケータは、ユーザによってもたらされるセキュリティ脅威の表示を提供する値であってもよい。たとえば、第1インジケータは、ユーザによる第1のセキュリティ脅威を示す第1の値であってもよい。第2インジケータは、ユーザによる第2のセキュリティ脅威を示す第2の値であってもよい。第1インジケータは、第1のソースから取得されてもよく、第2インジケータは、第2のソースから取得されてもよい。
【0182】
インジケータ1302は、たとえば、承認されたアプリのユーザ・リスクスコア、不明なアプリ/承認されていないアプリのリスクスコア、またはアプリに対応付けられた操作を含んでもよい。下記の例は、ユーザ・リスクスコアがどのように評価されるかを説明する。なお、この例において、限られた数のインジケータが使用されるが、システムは、追加のインジケータを使用するように構成することができる。一例において、第1インジケータI
1は、組織によって使用を承認された(たとえば、認可された)アプリケーションのデータソースから取得されたユーザ・リスクスコアであってもよい。ユーザ・リスクスコアは、認可されたアプリにおけるユーザ操作から算出され得る。このリスクスコアは、文書のアップロード/ダウンロードなど、認可されたアプリにおけるさまざまなユーザ・アクティビティを組み合わせる。第2インジケータI
2は、無認可のアプリのアップロード量の偏差の度合いであってもよい。たとえば、第2インジケータは、次のように演算されてもよい。(1日のアップロード量-30日間の平均アップロード量)/(30日間のアップロード量の標準偏差)。第3インジケータI
3は、訪問されたサイトのリスクスコアの偏差を示す度合いであってもよい。たとえば、第3インジケータは、次のように演算されてもよい。(1日のアプリ・リスクスコアの和-30日間の1日平均アプリ・リスクスコア)/(30日間の1日のアプリ・リスクスコアの標準偏差)。この例において、ユーザ・リスクスコアは、3つのインジケータすべてを使用して演算されてもよい。いくつかの実施形態において、ユーザ・リスクスコアは、
図14を参照して説明されるインジケータなど、追加のインジケータを使用して演算されてもよい。
【0183】
いくつかの実施形態において、セキュリティ監視/制御システム102は、アプリおよびユーザのリスクスコアを使用して、グラフを生成してもよい。1つ以上のグラフを使用して、追加のインジケータを得てもよい。ここで、
図14を参照すると、
図14は、アプリケーションAおよびBにアクセスしているユーザからなる第1クラスタのグラフ1402を示す図である。
図14は、アプリケーションX、Y、およびZにアクセスしているユーザからなる第2クラスタのグラフ1404を示す。グラフの各々は、本明細書に開示の情報など、1つ以上のデータソースから取得されたユーザおよびアプリケーション使用についての情報を使用して生成されてもよい。グラフは、当業者に知られている1つ以上のクラスタリングアルゴリズムを使用して生成されてもよい。クラスタリングアルゴリズムとして、Markov Cluster(MCL)アルゴリズムなどが挙げられてもよい。1つ以上のグラフを使用して、同様のサイトにアクセスするユーザなど、1つ以上の属性に基づいて、ユーザのセットが特定されてもよい。このような分析は、Girvan-Newmanエッジクラスタリングアルゴリズムなど、1つ以上の周知技術のグラフアナリティクスを含む、グラフアナリティクスを使用して実行してもよい。
【0184】
上記インジケータI1~I3の例を用いて進めると、グラフ分析を使用して、第4のインジケータI4が得られてもよい。たとえば、I4は、次のように演算されてもよい。(1日のアプリ・リスクスコアの和-クラスタの30日間の1日平均アプリ・リスクスコア)/(クラスタの30日間の1日のアプリ・リスクスコアの標準偏差)。第5のインジケータI5は、次のように演算されてもよい。(1日のアップロード量-クラスタの30日間の平均アップロード量)/(クラスタの30日間のアップロード量の標準偏差)。
【0185】
各脅威インジケータは、ソースによってそのインジケータに対して定義された尺度に応じてユーザのセキュリティリスクの度合いまたは脅威を示す値である、ユーザ・リスクスコアを表してもよい。いくつかの実施形態において、脅威インジケータを尺度と比較して、ユーザ・リスクスコアを決定してもよい。尺度は、ソースによって提供された情報によって定義されてもよく、またはこの情報に基づいて定義されてもよい。
【0186】
セキュリティ監視/制御システム102は、1つ以上の脅威インジケータに基づいて、ユーザ・リスクスコアを演算してもよい。つまり、安全度合いは、ユーザの組み合わされたセキュリティリスクの度合いとして演算されてもよい。すべてのインジケータに対して使用される尺度(たとえば、0~100までの値の尺度)に応じて、各インジケータを処理してインジケータの値を調整値に調整(たとえば、正規化)してもよい。インジケータごとの値は、正規化されると、組合せスコアを決定するために組合わされてもよい。
【0187】
ユーザのリスクの度合いを示す組合せセキュリティスコア1308は、インジケータのすべてまたは一部に基づいてもよい。組合せセキュリティスコアを決定するために考慮されるインジケータの数および/または種類は、設定可能であってもよい。このように、セキュリティ監視/制御システム102は、インジケータが取得されるソースを追加または削除するように構成されてもよく、ソースから取得されたインジケータ1304を追加または削除するように構成されてもよい。いくつかの実施形態において、スコアのために考慮されるインジケータの数および種類をユーザが設定することを可能にするグラフィカルインタフェースが提示されてもよい。いくつかの実施形態において、組合せスコアは、スコアが演算される条件を定義するセキュリティポリシーに基づいてもよい。この条件は、セキュリティの1つ以上の属性に基づいてもよい。この属性を使用して、スコアのために考慮するインジケータが選択されてもよい。
【0188】
いくつかの実施形態において、組合せユーザ・リスクスコア1308は、インジケータごとの重み値を使用するインジケータの組合せに基づいてもよい。たとえば、重み(「W」)(本明細書において、まとめて、重み「W1、W2、…、Wn」1304と称する)が選択されて、組合せスコア1308を演算するための1つ以上の特定のインジケータに適用されてもよい。重みは、整数である1、または1の何分の1かの値であってもよい。異なるインジケータに異なる重みが選択されてもよい。上記例において、第1の重みは、第1インジケータの第1の重み値であってもよく、第2の重みは、第2インジケータの第2の重み値であってもよい。これらの重み値は、それぞれ異なってもよい。
【0189】
重みは、グラフィカルインタフェースを通して、ユーザによって設定されてもよい。いくつかの実施形態において、重みは、特定の重みを与えられた特定のインジケータに基づいて定義されたセキュリティポリシーに基づいて選択されてもよい。ユーザのセキュリティリスクについてのインジケータの重要度または示唆が大きいほど、重みに対して大きな値を考慮してもよい。ユーザのセキュリティリスクについてインジケータの重要度または示唆が小さいほど、重みに対して小さな値を考慮してもよい。いくつかの実施形態において、1つの特定のソースからのすべてのインジケータに、1つの重みが選ばれてもよい。たとえば、1つのソースからのすべてのインジケータには、そのソースの信頼度または信用に基づいて1つの重みが適用されてもよい。いくつかの実施形態において、セキュリテ
ィ監視/制御システム102は、ユーザの脅威の研究分析についてのデータを格納してもよい。このようなデータを使用して、インジケータごとの重みが選択的に選ばれてもよい。
【0190】
組合せスコアは、インジケータおよびインジケータの重みを考慮して演算されてもよい。少なくとも1つの実施形態において、組合せスコアは、組合せスコア=(I1(W1)+I2(W2)+…In(Wn))/(W1+W2+…Wn)を得るための式1308を使用して演算されてもよい。この式において、各インジケータ(「I」)1304をそれぞれの重み(「W」)1306で乗算することによって、インジケータごとの値が演算される。インジケータごとに演算された値の総和(I1(W1)+I2(W2)+…In(Wn))である第1の値が演算される。第1の値を求めるために当てはめられる各重み値の総和である第2の値が演算される。組合せスコア1308は、第1の値を第2の値で除算することに基づいて演算されてもよい。前から続く例において、ユーザ・リスクスコアは、次のように演算されてもよい。(I1(W1)+I2(W2)+I3(W3)+I4(W4)+I5(W5))/(W1+W2+W3+W4+W5)。
【0191】
いくつかの実施形態において、セキュリティ監視/制御システム102は、組合せスコア1308の妥当性および正確さについてのフィードバック1310を、1人以上のユーザから取得してもよい。フィードバック1310は、ネットワークを通じて取得され、グラフィカルインタフェースまたは手動フィードバックを通じて容易にされてもよい。ソース、インジケータ、および/または重みのうちのいずれかは、フィードバック1310に基づいて調整されてもよい。フィードバック1310に基づいて、組合せスコア1308は調整されてもよい。新しい組合せスコア1312(「調整スコア」)は、フィードバック1310に基づいて選択されたインジケータおよび/または重みに基づいて演算され得ること以外は、調整スコア1312は、組合せスコア1308が演算された方法と同じ方法で演算されてもよい。組合せスコア1308を演算するために使用されたものに対して、ソース、インジケータ、および/または重みが追加または削除されてもよい。インジケータの重み値を周期的に改正して、我々のセキュリティアナリストおよび顧客フィードバックに基づくリスクスコアを改善することができる。インジケータの重みの改正プロセスは、決定木およびニューラルネットワークなど、自動機械学習アルゴリズムによって実行することができる。
【0192】
特定のセキュリティ脅威についての各インジケータおよび/または組合せスコアに基づいて、回帰分析1314が行われてもよい。回帰分析は、線形回帰モデルを作成することと、更新することとを含んでもよい。線形回帰モデルは、S=c1(I1)+c2(I2)+…+cn(In)などの出力を行ってもよい。回帰モデルによって演算される係数ciは、組合せスコア1308を演算するための初期の重みを置き換える新しい重みまたは修正された重みであり得る。フィードバックおよびデータが多く収集されるほど、このモデルは、より正確になる。
【0193】
いくつかの実施形態において、ユーザ・リスクスコアを演算することは、インジケータごとに演算されたスコア(またはZスコア)を、スケール変更することを含んでもよい。1つの例示的な手法において、マイナスのZスコアは、0に設定される。その理由は、平均よりも下のアクティビティレベルは、正常範囲内であると考えられるためである。6よりも上のZスコアは、6にスケール変更されてもよい(3というZスコアは、部外者と考えられ、6というZスコアは、極度の部外者と考えられる)。0~6の間のZスコアは、次のように、0~100の間にスケール変更される。スケール変更されたZスコア=Zスコア×(100/6)。
【0194】
上述の例を用いて進めると、インジケータI1は、92という認可されたアプリ・リス
クスコア(0~100段階)であってもよいため、スコアは、スケール変更されなくてもよい。インジケータI2は、次のように、rawZスコアと演算されてもよい。(100-20)/10=8。ここで、本日のアップロード量が100MBであり、過去30日間の平均が20MBであり、標準偏差が10MBである。このスコアは、8であるため、スケール変更される必要があってもよい。スケール変更されたスコアは、100.000であり得る。インジケータI3は、次のように、rawZスコアと演算されてもよい。(50-20)/5=6。ここで、本日訪問されたサイトの平均リスクスコアが30であり、過去30日間の平均が20であり、標準偏差が5である。I3のスコアは、100.000にスケール変更されてもよい。インジケータI4は、次のように、rawZスコアと演算されてもよい。(30-25)/10=0.5。ここで、本日訪問されたサイトの平均リスクスコアが30であり、過去30日間の仲間集団の平均が25であり、標準偏差が10である。I4のスコアは、8.3333にスケール変更されてもよい。インジケータI5は、次のように、rawZスコアと演算されてもよい。(40-60)/30=-0.667。ここで、本日のアップロード量が40MBであり、過去30日間の仲間集団の平均が60MBであり、標準偏差が30MBである。I5のスコアは、0にスケール変更されてもよい。
【0195】
例を用いて進めると、データの品質および数に基づいて、次のように、インジケータごとにデータソースの重みが割り当てられてもよい。W1=60%、W2=30%、W3=5%、W4=2%、W5=3%。ユーザ・リスクスコアは、重みおよびインジケータ(スケール変更されてもよい)を使用して演算されてもよい。この例において、ユーザ・リスクスコア(スケール変更されたZスコア)は、次のように演算されてもよい。(0.60×92)+(0.30×100.0)+(0.05×100.0)+(0.02×8.333)+(0.03×0)=90(端数切り捨て)。ユーザにとっての追加の重大リスクがないと管理者が確認できる場合、管理者は、最終スコアを90から25に調整できる。スコアを、線形回帰アルゴリズムによって、特徴(I1、I2、…):92、100.0、100.0、8.333、0のように、線形回帰分析1314に適用してもよく、目標変数(調整後の組合せスコア):25が得られる。これらの、およびすべてのユーザスコアについての特徴および目標変数を用いて、回帰アルゴリズムは、顧客のインジケータごとに新しい重み(w1、w2、…)を演算し、すべてのユーザ(顧客テナントにおける)のリスクスコアを適宜更新する。
【0196】
XII.
アプリケーションのセキュリティの発見および管理のためのインタフェース
図15~
図26は、いくつかの実施形態に係る、インタフェース、たとえば、コンピューティング環境におけるアプリケーションのセキュリティを発見および管理するためのグラフィカルインタフェースを示す図である。グラフィカルユーザインタフェース(GUI)など、グラフィカルインタフェースの各々は、クライアントにおいて、図に開示のセキュリティ監視/制御システム102が提供するサービスへのアクセスとともに表示されてもよい。グラフィカルインタフェースは、ウェブサイトなどのアクセスポータルの一部として表示されてもよく、または、アプリケーションにおいて表示されてもよい。2017年2月17日に出願され、「Systems and Methods for Discovering and Monitoring Unsanctioned Enterprise Assets」と題された優先出願である米国仮出願第62/460,
716[代理人整理番号:088325-1039197(185502US)]に、グラフィカルインタフェースのさらなる例が表示されている。
【0197】
本開示において、グラフィカルインタフェースに「要素」が含まれてもよい。要素は、表示可能であってもよく、および/またはグラフィカルインタフェースの一部であってもよい。要素として、制御部、ボタン、ナビゲーション・バー、または、音声、視覚、接触、もしくはそれらの組合せによって感知できるインタフェースの一部であり得るその他の目に見えるコンポーネントなどが挙げられるが、これらに限定されない。要素は、入力を
受けることができる。たとえば、インタラクティブ要素とは、入力を受けるためのインタラクティブ要素であってもよい。インタラクティブ要素は、入力を受けて、グラフィカルインタフェースとのやり取りを可能にしてもよい。たとえば、インタラクティブ要素は、ネットワークデータが表示されるヒートマップなど、グラフィカルインタフェースに含まれる多くの要素のうちの1つであり得る。
【0198】
図15において、アプリケーションに含まれるGUI1500が示される。GUI1500は、組織のネットワーク上でアクセスされたアプリケーションのセキュリティを、ユーザが発見および管理することを可能にする。GUI1500は、組織のネットワーク上でアクセスされたと発見されたアプリケーションを見るためのインタラクティブインタフェース(たとえば、ダッシュボード)として示される。
図15~
図26のGUIは、アプリケーションに含まれるダッシュボードとのやり取りの一部として、またはこのダッシュボードとのやり取りに基づいて提示されてもよい。ダッシュボードは、「概要」、「アプリの発見」、および「キーセキュリティ・インジケータ」など、インタラクティブインタフェースのための1つ以上のインタラクティブタブを含んでもよい。インタフェースに含まれるこの情報および要素は、さらなる例を説明するための図面の複数のGUIに含まれる参照であってもよい。
【0199】
ここで、
図15の例を参照すると、「アプリの発見」が選択された状態のGUI1500が示されている。アプリケーションについての情報は、この情報がどのように取得されたかに基づいて表示されてもよい。たとえば、アプリケーションについての情報は、登録に基づいて知られているアプリケーション用のインタフェース「登録アプリから」のタブ下に表示されてもよい。別の例において、アプリケーションについての情報は、ユーザがアクセスしたアプリケーションを特定するために本明細書において開示された技術に基づいて発見されたアプリケーション用のインタフェース「ログから」1504のタブ下に表示されてもよい。両方のタブに含まれるアプリケーションに関して示される機能は、1つのタブに組合わされてもよく、または、その他のタブにおいて実施されてもよい。
【0200】
GUI1500は、発見されたアプリケーションをフィルター表示するための入力を選択的に提供するためのインタラクティブ要素1506を含んでもよい。フィルター表示は、時間、日付、アプリケーションの種類、操作、リスク、または発見されるアプリケーションについて表示されるその他の種類の情報など、1つ以上の属性に基づいて実行されてもよい。
【0201】
本明細書に開示するように、アプリケーションは、ネットワーク・アクティビティのログファイル(たとえば、syslogファイル)のインスペクションなど、多くの技術を使用して発見されてもよい。GUI1500は、アプリケーションを発見するための分析のためにログファイルをどのように収集するかを設定するための入力を提供するためのインタラクティブな要素1510を含んでもよい。要素1510とのやり取りによって、追加のまたは変更されたGUI2000(「Syslogセットアップ」)を、GUI1500の横にまたはGUI1500とともに表示させてもよい。GUI2000は、ログファイルをどのように収集するかをユーザが設定することを可能にしてもよい。GUI2000は、ログファイルにアクセスするためのトークン、ログファイルのパスまたはソース、収集されたログファイルを置く場所(たとえば、エンドポイント)、およびログファイル用の1つ以上の接続パラメータ(たとえば、ポート)を設定するための入力を受け付けることができる1つ以上の要素を含んでもよい。ログファイルを構成するためのパラメータは、セキュアな場所および/またはログファイルを格納するための接続についての1つ以上のパラメータを含んでもよい。
【0202】
GUI1500は、発見される各アプリケーションについての情報のグリッド表示また
はテーブル表示を表示するためのインタラクティブGUIであってもよい。図示する例において、GUI1500は、アクセスされたと発見されたアプリケーションごとの行とともに表示される。各行は、発見されたアプリケーションについての情報を表示し、この情報は、アプリケーションを提供するホストシステムのドメイン、トップリスク、インシデント(複数可)、および設定可能な救済操作を含む。ビューに含まれる各エントリまたは各行は、各エントリのフィールドを含み、インタラクティブなものであってもよい。トップリスクは、アプリケーションのセキュリティリスクのそれぞれ異なるカテゴリについての情報を表示してもよい。
【0203】
GUI1500は、テーブルに含まれるアプリケーションの任意のエントリについての情報のデータファイルをエクスポートするためのインタラクティブ要素1508を含んでもよい。このデータファイルを使用して、アプリケーションのセキュリティに対する操作を、管理、監視、および引き続き対処してもよい。
【0204】
テーブルのエントリに含まれる「インシデント」に対応する要素とのやり取りによって、
図19のGUI1900を表示させてもよい。この要素は、前に開かれたことのある1つ以上のインシデントを選択するためのインタラクティブ要素であってもよい。GUI1900は、GUI1500の上またはGUI1500の横に表示されてもよい。開かれたことのあるインシデントについての情報を表示するためのGUIが提示されてもよい。GUI1900は、アプリケーションのインシデントを設定するための入力を提供するための1つ以上のインタラクティブ要素を含んでもよい。インシデントを開くための要素とのやり取りは、エントリの要素に対応するアプリケーションに特有であってもよい。
図19のGUI1900は、要素1902(「カテゴリ」)と、1904(「発見されたアプリの名前」)と、1906(「ベンダードメイン」)と、1908(「説明」)と、1910(「救済操作」)と、1912(「担当者」)と、1914(「優先事項」)と、1916(「承認」)と、1918(「新しいインシデント」)と、1920(「キャンセル」)とを含んでもよい。
【0205】
要素1902は、アプリケーションが発見される1つ以上のセキュリティリスクを示してもよい。これらのリスクは、新しいインシデントを始める前にGUI1500において選択済みであってもよい。要素1904は、アプリケーションの名前を示してもよい。要素1906は、アプリケーションを提供しているホストシステムドメインを示してもよい。要素1908は、インシデントについての説明を記入するためのインタラクティブ要素であってもよい。この説明は、セキュリティリスクに基づいて予め記入されていてもよい。説明を使用して、アプリケーションの使用についての説明を提供してもよい。要素1910は、1つ以上の救済操作を指定するためのインタラクティブ要素であってもよい。救済操作は、セキュリティリスクに基づいて、要素1910において予め選択されていてもよい。要素1912は、アプリケーションのセキュリティについて通知される1人以上のユーザを指定するためのインタラクティブ要素であってもよい。要素1914は、アプリケーションの優先事項を指定するためのインタラクティブ要素であってもよい。要素1916は、インシデントを作成するための承認を示すためのインタラクティブ要素であってもよい。要素1918は、要求を送り、GUI1900への入力に基づいてインシデントを作成するためのインタラクティブ要素であってもよい。要素1920は、インシデントの作成をキャンセルするためのインタラクティブ要素であってもよい。
【0206】
テーブルに含まれるエントリに対応する要素とのやり取りによって、GUI1500を変更させて、そのエントリに対応する発見されたアプリケーションについての情報を表示させてもよい。たとえば、
図16において、GUI1500は、発見されたアプリケーションのエントリの拡張GUI1600(たとえば、グラフィカルインタフェース)とともに示されている。GUI1600は、アプリケーションについての組織情報を表示しても
よい。組織情報は、ユーザ数、ネットワーク・アクティビティ(たとえば、アップロードされたデータおよびダウンロードされたデータ)、アプリケーションのカテゴリなど、アプリケーションに関する使用についての情報、およびアプリケーションを提供する組織についての情報を含んでもよい。組織についての情報は、名称、住所、ドメイン、ウェブサイト、組織の説明、および/またはアプリケーションの組織の登録についての他の情報を含んでもよい。
【0207】
GUI1600は、GUI1500に含まれるエントリに表示されるセキュリティリスクの各々についての情報を表示してもよい。各セキュリティリスクは、セキュリティリスクの特徴を述べる情報とともに表示されてもよく、セキュリティリスクについての外観とともに表示されてもよい。たとえば、この外観は、画像および色が付いており、リスクの重大度を示してもよい。発見されたアプリケーションについて求められたセキュリティ情報に含まれるセキュリティ・インジケータに基づいて、セキュリティリスクが決定されてもよい。セキュリティリスクについての統計データまたは基礎となる情報に特有の情報が表示されてもよい。いくつかの実施形態において、セキュリティリスクは、サードパーティソース、ユーザが提供する情報に基づいてもよく、および/またはセキュリティ監視/制御システム102によって取りまとめられてもよい。いくつかの実施形態において、セキュリティリスクは、セキュリティの1つ以上のインジケータに基づいてもよい。セキュリティリスクは、1つ以上のセキュリティポリシーの適用に基づいてもよい。セキュリティポリシーは、1つ以上のセキュリティリスクについて決定された安全度合いを使用して適用されてもよい。
【0208】
図16に示す例において、GUI1600は、セキュリティリスクごとに、要素を含んでもよい。セキュリティリスクに対応する要素は、GUIを、GUI1500の横にまたはGUI1500に加えて表示させるためのインタラクティブ要素であってもよい。一例において、
図17のGUI1700は、セキュリティリスク(「IPアドレスの評判」)についての要素1604とのやり取りに基づいて表示されてもよい。別の例において、
図18のGUI1800は、セキュリティリスク(「アプリケーションセキュリティ」)に関する要素1606とのやり取りに基づいて表示されてもよい。
【0209】
GUI1700およびGUI1800の各々は、具体的なセキュリティリスクについての情報を表示する。この情報は、アプリケーションにアクセスすることについてのセキュリティリスクに関する1つ以上のイベントに対応してもよい。情報は、実際のイベントについての情報を含む各イベントまたはイベントのカテゴリに基づいて表示されてもよい。各セキュリティリスクは、問題についての情報とともに表示されてもよい。1つ以上の救済操作が提供されてもよい。情報は、サードパーティソース、ユーザによって提供されてもよく、および/またはセキュリティ監視/制御システム102によって取りまとめられてもよい。たとえば、情報は、アプリケーションのプロバイダによって提供されてもよい。各セキュリティリスクは、リスクの重大度を示す外観とともに表示されてもよい。いくつかの実施形態において、救済操作を自動化するおよび/または設定するための別のGUIを表示させるためのインタラクティブ要素を、各リスクとともに提示してもよい。
【0210】
ここで、
図15を参照すると、要素1512などの要素は、固有の発見されたアプリケーションに対応するエントリごとに、GUI1500において提示されてもよい。要素は、アプリケーションに対する1つ以上の救済操作を設定するためのインタラクティブ要素であってもよい。この要素は、1つ以上のオプションを提供してもよく、1つ以上のオプションは、アプリケーションのセキュリティリスクに特有であってもよい。要素とのやり取りによって、救済操作を設定するための別のGUIを、GUI1500の横にまたはGUI1500に加えて表示させてもよい。セキュリティリスクが選択されると、セキュリティリスクに対する救済オプションが選択できるようにしてもよい。いくつかの実施形態
において、セキュリティリスクおよび1つ以上のセキュリティポリシーに基づいて、1つ以上の救済操作が提示されてもよい。また、実行済みの救済操作も、発見されたアプリケーションのエントリとともに表示されてもよい。
【0211】
要素1502とのやり取りによって、GUI1500を更新して、
図21のGUI2100を表示させてもよい。GUI1500と同様に、GUI2100は、発見されるアプリケーションについての情報を表示してもよい。この情報は、セキュリティリスクを含んでもよい。GUI2100は、GUI1500のようにインタラクティブGUIであってもよい。GUI2100で確認されるアプリケーションは、組織に登録されているアプリケーションであってもよい。
図21のエントリ2102とのやり取りによって、GUI2200を表示させてもよい。
【0212】
図17および
図18と同様に、
図23~
図25は、GUIを、GUI2200に表示のセキュリティリスクについての情報とともに表示する。GUI2200は、エンドポイントセキュリティリスクについての要素2202(「エンドポイントセキュリティ」)と、ネットワークセキュリティリスクについての要素2204(「ネットワークセキュリティ」)と、IPアドレスの評判セキュリティリスクについての要素2206(「IPアドレスの評判」)とを含んでもよい。要素2202、要素2204、および要素2206の各々は、それぞれ、
図23のGUI2300、
図24のGUI2400、および
図25のGUI2500を、GUI2200の横にまたはGUI2200とともに表示させてもよい。
【0213】
図26は、発見されるアプリケーションについての詳細を示す「アプリの発見」のGUI2600を示す図である。GUI2600は、発見される固有のアプリケーションごとに、エントリをテーブルビューで表示するインタラクティブビュー2602を含んでもよい。
図15のGUI1500と同様に、各エントリは、アプリケーション名およびアプリケーションのプロバイダを含む、アプリケーションについての情報を含んでもよい。GUI1500のように、各エントリは、エントリに対応するアプリケーションについての追加の情報を表示させるためのインタラクティブエントリであってもよい。エントリは、1つ以上のインジケータに対応付けられた1つ以上のトップリスクを示してもよい。GUI1500とは異なり、GUI2600は、発見された固有のアプリケーションごとにエントリを、その発見のソース(たとえば、ログまたは登録)に関係なく示すことができる。
【0214】
いくつかの実施形態において、エントリは、発見されたアプリケーションに関するイベントについての他の情報を示してもよい。エントリは、アプリケーションにアクセスしたことのあるユーザの数、およびアプリケーションがアクセスされた日付など、アプリケーションの使用についての情報を示してもよい。
【0215】
いくつかの実施形態において、テーブルビューに含まれるエントリは、登録済みアプリとして発見されたアプリケーションするおよび/またはログから発見されたアプリケーションに対応してもよい。各エントリは、救済操作を行うための1つ以上の要素を含んでもよい。ビュー2602は、アクセスされたアプリケーションを特定するタイミングを設定する、および/またはアプリケーションの発見を自動化するための1つ以上のインタラクティブ要素(たとえば、ツールバー)を含んでもよい。ツールバーは、アクセスされたアプリケーションの通知、設定、および検索を設定するためのインタラクティブツールバーであってもよい。
【0216】
GUI2600は、アプリ使用の度合いについての統計情報を視覚化したものを表示する領域2604を含んでもよい。統計情報は、1つ以上のセキュリティリスクに基づいて表示されてもよい。GUI2600は、使用の度合いに基づいてアプリ使用を視覚化した
ものを表示する領域2606を含んでもよい。GUI2600は、カテゴリ、ドメイン、サービスプロバイダ、セキュリティリスクなどの情報、またはアプリケーションに対応付けられた他のカテゴリの情報に基づいたアプリのグループ分けを視覚化したものを表示する領域2608を含んでもよい。
【0217】
XIII.
アクセス管理システムおよびクライアントシステムのための一般的なコンピュータシステム
図27は、実施形態を実現するための分散型システム2700を簡略化した図を示す。図示した実施形態において、分散型システム2700は、1つ以上のクライアントコンピューティングデバイス2702、2704、2706、および2708を備える。1つ以上のクライアントコンピューティングデバイス2702、2704、2706、および2708は、1つ以上のネットワーク(複数可)2710でウェブブラウザ、プロプライエタリ・クライアント(たとえば、Oracle Forms)などのクライアントアプリケーションを実行および操作するように構成される。サーバ2712は、ネットワーク2710を介して、リモートクライアントコンピューティングデバイス2702、2704、2706、および2708と通信可能に接続されてもよい。
【0218】
さまざまな実施形態において、サーバ2712は、1つ以上のサービスまたはソフトウェア・アプリケーションを実行するようになされてもよい。また、特定の実施形態において、サーバ2712は、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェア・アプリケーションを提供してもよい。いくつかの実施形態において、これらのサービスは、クライアントコンピューティングデバイス2702、2704、2706、および/または2708のユーザに対して、ウェブベースのサービスもしくはクラウドサービスとして提供されてもよく、または、SaaS(Software as a Service)モデル下で
提供されてもよい。そして、クライアントコンピューティングデバイス2702、2704、2706、および/または2708を操作するユーザは、1つ以上のクライアントアプリケーションを利用して、サーバ2712とやり取りして、これらのコンポーネントが提供するサービスを利用できる。
【0219】
図27に示す構成において、システム2700のソフトウェアコンポーネント2718、2720、および2722が、サーバ2712上に実装されたものとして示される。また、他の実施形態において、システム2700のコンポーネントのうちの1つ以上および/またはこれらのコンポーネントが提供するサービスのうちの1つ以上は、クライアントコンピューティングデバイス2702、2704、2706、および/または2708のうちの1つ以上によって実現されてもよい。次に、クライアントコンピューティングデバイスを操作しているユーザは、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントが提供するサービスを使用してもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。さまざまな異なるシステム構成が可能であり、これらは、分散型システム2700とは異なってもよいことを理解されたい。よって、
図27に示す実施形態は、実施形態のシステムを実現するための分散システムの一例であり、限定を意図したものではない。
【0220】
クライアントコンピューティングデバイス2702、2704、2706、および/または2708は、さまざまな種類のコンピュータシステムを含んでもよい。たとえば、クライアントコンピューティングデバイスは、Microsoft Windows Mobile(登録商標)などのソフトウェアおよび/またはiOS、Windows(登録商標) Phone、Android、BlackBerry 10、Palm OSなどのいろいろなモバイルオペレーティングシステムを実行する手のひらサイズのポータブルデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))またはウェアラブルデバイス
(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)を含んでもよい。デバイスは、さまざまなインターネット関連アプリ、電子メール、ショートメッセージサービス(SMS)アプリケーションなど、さまざまなアプリケーションをサポートしてもよく、さまざまな他の通信プロトコルを使用してもよい。また、クライアントコンピューティングデバイスは、一例として、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む、汎用パーソナルコンピュータを含んでもよい。クライアントコンピューティングデバイスは、これらに限定されないが、たとえば、Google Chrome OSなど、いろいろなGNU/Linux(登録商標)オペレーティングシステムを含む、流通している各種のUNIX(登録商標)またはUNIX(登録商標)に似たオペレーティングシステムを実行するワークステーションコンピュータであり得る。また、クライアントコンピューティングデバイスは、シンクライアントコンピュータ、インターネット対応のゲーミングシステム(たとえば、Kinect(登録商標)ジェスチャ入力装置付きまたは無しのMicrosoft Xboxのゲーミングコンソール)、および/またはパーソナルメッセージングデバイスなど、ネットワーク(複数可)2710で通信可能な電子機器を含んでもよい。
【0221】
図27の分散型システム2700は、4つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサ付きデバイスなど、他のデバイスがサーバ2712とやり取りを行ってもよい。
【0222】
分散型システム2700におけるネットワーク(複数可)2710は、これらに限定されないが、TCP/IP(Transmission Control Protocol/Internet Protocol)、SN
A(Systems Network Architecture)、IPX(Internet Packet Exchange)、AppleTalkなどを含む、各種の利用可能なプロトコルを使用したデータ通信をサポートできる、当業者にとってなじみの任意の種類のネットワークであってもよい。単に一例として、ネットワーク(複数可)2710は、LAN(Local Area Network)、Ethernet(登録商標)ベースのネットワーク、トークンリング、ワイドエリアネットワーク、インターネット、仮想ネットワーク、VPN(Virtual Private Network)、イントラネ
ット、エクストラネット、PSTN(Public Switched Telephone Network)、赤外線ネ
ットワーク、ワイヤレスネットワーク(たとえば、IEEE(Institute Of Electrical And Electronics)802.11スイートのプロトコル、Bluetooth(登録商標
)、および/またはその他のワイヤレスプロトコルのうちのいずれかの下で動作するネットワーク)、および/またはこれらの任意の組合せならびに/もしくは他のネットワークで有り得る。
【0223】
サーバ2712は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例として、PC(Personal Computer)サーバ、UNIX(登録商標)サーバ、ミッドレンジ・
サーバ、メインフレーム・コンピュータ、ラックマウント式のサーバなどを含む)、サーバファーム、サーバ・クラスタ、またはその他の適切な配置および/または組合せから構成されてもよい。サーバ2712は、仮想オペレーティングシステムを実行している1つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。論理記憶装置の1つ以上のフレキシブルプールを仮想化して、サーバ用の仮想記憶装置を維持することができる。仮想ネットワークは、ソフトウェア定義ネットワーキングを使用して、サーバ2712によって制御することができる。さまざまな実施形態において、サーバ2712は、上記の開示において説明した1つ以上のサービスまたはソフトウェア・アプリケーションを実行するようになされてもよい。たとえば、サーバ2712は、本開示の実施形態に従って上述した処理を行うためのサーバに対応してもよい。
【0224】
サーバ2712は、上述のオペレーティングシステムのいずれかおよび市販されているサーバオペレーティングシステムのうちのいずれかを含む、オペレーティングシステムを実行してもよい。また、サーバ2712は、HTTP(Hypertext Transport Protocol)サーバ、FTP(File Transfer Protocol)サーバ、CGI(Common Gateway Interface)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む、各種の追加のサーバアプリケーションおよび/またはミッドティア・アプリケーションを実行してもよい。例示的なデータベースサーバとして、Oracle、Microsoft、Sybase、IBM(International Business Machines)などから市販されているデータベー
スサーバが挙げられるが、これらに限定されない。
【0225】
いくつかの実装形態において、サーバ2712は、クライアントコンピューティングデバイス2702、2704、2706、および2708のユーザから受信したデータフィードおよび/またはイベント更新を分析および1つにまとめるための1つ以上のアプリケーションを含んでもよい。例として、データフィードおよび/またはイベント更新は、これらに限定されないが、1つ以上のサードパーティ情報ソースおよび連続したデータストリームから受信するTwitter(登録商標)フィード、Facebook(登録商標)更新またはリアルタイム更新を含んでもよく、当該1つ以上のサードパーティ情報ソースおよび連続したデータストリームは、センサーデータアプリケーション、チッカー(financial ticker)、ネットワークパフォーマンス測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通量監視などに関するリアルタイムイベントを含み得る。また、サーバ2712は、クライアントコンピューティングデバイス2702、2704、2706、および2708の1つ以上の表示装置を介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含んでもよい。
【0226】
また、分散型システム2700は、1つ以上のデータベース2714および2716を含んでもよい。これらのデータベースは、ユーザインタラクション情報、使用パターン情報、適合規則情報、および本開示の実施形態が使用する他の情報などの情報を格納するための機構を提供してもよい。データベース2714および2716は、いろいろな場所に存在してもよい。例として、データベース2714および2716のうちの1つ以上は、サーバ2712にローカルな(および/または存在する)非一時的な記憶媒体上に存在してもよい。これに代えて、データベース2714および2716は、サーバ2712から遠隔の場所に存在し、ネットワークベースまたは専用の接続を通してサーバ2712と通信していてもよい。一組の実施形態において、データベース2714および2716は、SAN(Storage-Area Network)に存在してもよい。同様に、サーバ2712に起因する機能を実行するための必要なファイルは、いずれも、サーバ2712上のローカルな場所および/またはサーバ2712から遠隔の場所に、適宜、格納されてもよい。一組の実施形態において、データベース2714および2716は、SQLフォーマットのコマンドに応答してデータ格納、更新、および取り出すようになされたOracleが提供するデータベースなど、リレーショナルデータベースを含んでもよい。
【0227】
いくつかの実施形態において、クラウド環境は、1つ以上のサービスを提供してもよい。
図28は、本開示の実施形態に係る、サービスがクラウドサービスとして提供され得るシステム環境2800の1つ以上のコンポーネントを簡略化したブロック図である。
図28に示す実施形態において、システム環境2800は、1つ以上のクライアントコンピューティングデバイス2804、2806、および2808を含む。1つ以上のクライアントコンピューティングデバイス2804、2806、および2808は、クラウドサービスを提供するクラウドインフラストラクチャシステム2802とやり取りするために、ユーザによって使用され得る。クラウドインフラストラクチャシステム2802は、サーバ
2712に関して上述したものを含み得る1つ以上のコンピュータおよび/またはサーバを備えてもよい。
【0228】
図28に示すクラウドインフラストラクチャシステム2802が、図示されたコンポーネント以外のコンポーネントを有し得ることを理解されたい。さらに、
図28に示す実施形態は、本開示の実施形態を組み込み得るクラウドインフラストラクチャシステムの一例に過ぎない。他のいくつかの実施形態において、クラウドインフラストラクチャシステム2802は、図に示すコンポーネントよりも多いまたは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの構成または配置が異なっていてもよい。
【0229】
クライアントコンピューティングデバイス2804、2806、および2808は、クライアントコンピューティングデバイス2702、2704、2706、および2708に関して上述したものと同様のデバイスであってもよい。クライアントコンピューティングデバイス2804、2806、および2808は、ウェブブラウザ、プロプライエタリ・クライアントアプリケーション(たとえば、Oracle Forms)、または他のアプリケーションなどのクライアントアプリケーションを操作するように構成されてもよい。クライアントアプリケーションは、クライアントコンピューティングデバイスのユーザによって、クラウドインフラストラクチャシステム2802とやり取りを行って、クラウドインフラストラクチャシステム2802が提供するサービスを使用するために、使用されてもよい。例示的なシステム環境2800は、3つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサ付きデバイスなど、他のデバイスがクラウドインフラストラクチャシステム2802とやり取りを行ってもよい。
【0230】
ネットワーク(複数可)2810は、クライアントコンピューティングデバイス2804、2806、および2808と、クラウドインフラストラクチャシステム2802との間のデータの通信およびやり取りを容易にすることができる。各ネットワークは、ネットワーク(複数可)2710に関して上述したプロトコルを含む、各種の流通しているプロトコルを使用したデータ通信をサポートできる、当業者にとってなじみの任意の種類のネットワークであってもよい。
【0231】
特定の実施形態において、クラウドインフラストラクチャシステム2802が提供するサービスは、クラウドインフラストラクチャシステムのユーザが要求すると、ユーザで使用できるようになるサービスのホストを含んでもよい。また、オンラインのデータ記憶およびバックアップソリューション、ウェブベースの電子メールサービス、ホストされたオフィススイートドキュメント共同作業サービス、データベース処理、管理されたテクニカルサポートサービスなどを含むさまざまな他のサービスが提供されてもよいが、これらに限定されない。クラウドインフラストラクチャシステムが提供するサービスは、そのユーザのニーズを満たすために、動的にスケール変更できる。
【0232】
特定の実施形態において、クラウドインフラストラクチャシステム2802が提供するサービスを具体的にインスタンス化したものは、本明細書において、「サービスインスタンス」と称される場合がある。一般に、クラウドサービスプロバイダのシステムからの、インターネットなどの通信ネットワークを介してユーザで使用できるようにされるいずれのサービスも、「クラウドサービス」と称される。通常、パブリッククラウド環境において、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客所有のオンプレミス・サーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介して、要求に基づいてアプリケーションをオーダーして使用
すればよい。
【0233】
いくつかの例において、コンピュータネットワークのクラウドインフラストラクチャにおけるサービスは、保護されたコンピュータネットワークのストレージへのアクセス、ホストされたデータベース、ホストされたウェブサーバ、ソフトウェア・アプリケーション、またはクラウドベンダーがユーザに提供するまたは当技術分野で周知の他のサービスを含んでもよい。たとえば、サービスは、インターネットを通したクラウド上のリモートストレージへのパスワード保護されたアクセスを含み得る。別の例として、サービスは、ウェブサービスベースのホストされたリレーショナルデータベース、およびネットワークで結ばれた開発者が私的使用するためのスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダーのウェブサイト上にホストされた電子メールソフトウェア・アプリケーションへのアクセスを含み得る。
【0234】
特定の実施形態において、クラウドインフラストラクチャシステム2802は、セルフサービスで、サブスクリプション方式の、伸縮自在にスケーラブルで、信頼でき、高い可用性を持つセキュアな方法で顧客に届けられるアプリケーションのスイート、ミドルウェア、およびデータベースサービス提供物を含んでもよい。このようなクラウドインフラストラクチャシステムの例が、本願の譲受人が提供するオラクルパブリッククラウド(Oracle Public Cloud)である。
【0235】
また、クラウドインフラストラクチャシステム2802は、「ビッグデータ」に関する演算および分析サービスを提供してもよい。用語「ビッグデータ」は、一般に、大量のデータを可視化する、トレンドを検出する、および/またはデータとやり取りするためにアナリストおよび研究者によって格納および操作され得る極めて大きなデータセットを指す。このビッグデータおよび関連アプリケーションは、多くのレベルおよび異なる規模で、インフラストラクチャシステムによってホストおよび/または操作され得る。このようなデータを提示するために、またはこのデータに対する外力またはデータが表すものをシミュレーションするために、並列にリンクされた何十、何百、または何千ものプロセッサがこのデータに作用できる。これらのデータセットは、データベースにおいて、または構造化モデルに応じて編成されたもののような構造化データ、および/または非構造化データ(たとえば、Eメール、画像、データBLOB(binary large objects)、ウェブページ、複雑なイベント処理)を伴い得る。より多くの(または、より少ない)コンピューティングリソースを比較的素早く目標に集めるための実施形態の能力を活用することによって、企業、政府関係機関、研究機関、私人、同じ意見を持った個人同士のグループもしくは組織、または他のエンティティからの要求に基づいて、大きなデータセットに対してタスクを実行するにあたり、クラウドインフラストラクチャシステムをより利用可能にできる。
【0236】
さまざまな実施形態において、クラウドインフラストラクチャシステム2802は、クラウドインフラストラクチャシステム2802が提供するサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理、および追跡するようになされてもよい。クラウドインフラストラクチャシステム2802は、それぞれ異なるデプロイメントモデルを介して、クラウドサービスを提供してもよい。たとえば、サービスは、パブリッククラウドモデル下で提供されてもよい。パブリッククラウドモデルでは、クラウドインフラストラクチャシステム2802は、(たとえば、オラクルコーポレーション所有の)クラウドサービスを提供する組織が所有しており、一般大衆またはそれぞれ異なる産業企業でサービスが使用できるようになる。別の例として、サービスは、クラウドインフラストラクチャシステム2802が1つの組織のためだけに動かされるプライベートクラウドモデル下で提供されてもよく、組織内の1つ以上のエンティティのためのサービスを提供してもよい。また、クラウドサービスは、コミュニティクラウドモデル下で提供されてもよい。
コミュニティクラウドモデルでは、クラウドインフラストラクチャシステム2802およびクラウドインフラストラクチャシステム2802によって提供されるサービスが、関連コミュニティ内のいくつかの組織によって共有される。クラウドサービスは、ハイブリッドクラウドモデル下で提供されてもよい。ハイブリッドクラウドモデルとは、2つ以上の異なるモデルの組合せである。
【0237】
いくつかの実施形態において、クラウドインフラストラクチャシステム2802が提供するサービスは、SaaS(Software as a Service)カテゴリ、PaaS(Platform as
a Service)カテゴリ、IaaS(Infrastructure as a Service)カテゴリ、または混
合サービスを含む、他のカテゴリ下で提供される1つ以上のサービスを含んでもよい。顧客は、サブスクリプションのオーダーによって、クラウドインフラストラクチャシステム2802が提供する1つ以上のサービスをオーダーしてもよい。次に、クラウドインフラストラクチャシステム2802は、処理を実行して、顧客のサブスクリプションのオーダーにあるサービスを提供する。
【0238】
いくつかの実施形態において、クラウドインフラストラクチャシステム2802が提供するサービスは、アプリケーションサービス、プラットフォームサービス、およびインフラストラクチャサービスを含んでもよいが、これらに限定されない。いくつかの例において、アプリケーションサービスは、SaaSサービスを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに該当するクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、オンデマンドアプリケーションのスイートを構築し、統合開発/デプロイメントプラットフォームに届けるための機能を提供してもよい。SaaSプラットフォームは、SaaSサービスを提供するための基礎となるソフトウェアおよびインフラストラクチャを管理および制御してもよい。SaaSプラットフォームが提供するサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用できる。顧客は、アプリケーションサービスを、別のライセンスおよびサポートを購入する必要なしに、入手できる。さまざまな異なるSaaSサービスが提供されてもよい。例として、大きな組織のための販売実績管理、エンタープライズ統合、およびビジネス上の柔軟性に対するソリューションを提供するサービスなどが挙げられるが、これに限定されない。
【0239】
いくつかの実施形態において、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステム2802によって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに該当するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスとして、組織(Oracleなど)が既存のアプリケーションを共有の共通アーキテクチャ上に1つにまとめることを可能にするサービス、およびプラットフォームが提供する共有サービスを活用する新しいアプリケーションを作る能力などが挙げられるが、これらに限定されない。PaaSプラットフォームは、PaaSサービスを提供するための、基礎となるソフトウェアおよびインフラストラクチャを管理および制御してもよい。顧客は、PaaS クラウドインフラストラクチャシステム2802が提供するサービスを、ライセンスおよびサポートを別に購入する必要なしに、取得できる。プラットフォームサービスとして、JCS(Oracle Java Cloud Service)、DBCS(Oracle Database Cloud Service)など、およびその他が挙げられるが、これらに限定されない。
【0240】
PaaSプラットフォームが提供するサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムがサポートするプログラミング言語およびツールを採用することができ、また、デブロイされたサービスを管理することができる。いくつかの実施形態において、クラウドインフラストラクチャシステムが提供するプラットフォーム
サービスは、データベース・クラウドサービス、ミドルウェアクラウドサービス(たとえば、Oracle Fusion Middlewareサービス)、およびJavaクラウドサービスを含んでもよい。一実施形態において、データベース・クラウドサービスは、共有サービスデプロイメントモデルをサポートしてもよい。共有サービスデプロイメントモデルは、組織が、データベースリソースをプールし、データベース・クラウドの形のサービスとしてデータベースを顧客に提供することを可能にする。ミドルウェアクラウドサービスは、顧客がさまざまな業務アプリケーションを開発およびデプロイするためのプラットフォームを提供してもよく、Javaクラウドサービスは、顧客がクラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイするためのプラットフォームを提供してもよい。
【0241】
クラウドインフラストラクチャシステムにおいて、IaaSプラットフォームによって、さまざまな異なるインフラストラクチャサービスが提供されてもよい。インフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームが提供するサービスを利用している顧客のための、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースなど、基礎となるコンピューティングリソースの管理および制御を容易にする。
【0242】
また、特定の実施形態において、クラウドインフラストラクチャシステム2802は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャ・リソース2830を含んでもよい。一実施形態において、インフラストラクチャ・リソース2830は、PaaSプラットフォームおよびSaaSプラットフォームが提供するサービスを実行するための、サーバなどのハードウェアと、ストレージと、ネットワーキング・リソースとの予め統合された最適な組合せ、および他のリソースを含んでもよい。
【0243】
いくつかの実施形態において、クラウドインフラストラクチャシステム2802におけるリソースは、複数のユーザによって共有され、要求に応じて、動的に再割り当てされてもよい。これに加えて、リソースは、それぞれ異なるタイムゾーンのユーザに割り当てられてもよい。たとえば、クラウドインフラストラクチャシステム2802は、第1のタイムゾーンにいる第1セットのユーザが、指定された時間数、クラウドインフラストラクチャシステムのリソースを利用することを可能にした後、同じリソースを、異なるタイムゾーンに位置する別のセットのユーザへ再割り当てすることを可能にし、リソースの利用を最大限に活用することができる。
【0244】
特定の実施形態において、クラウドインフラストラクチャシステム2802のそれぞれ異なるコンポーネントまたはモジュールによって共有されて、クラウドインフラストラクチャシステム2802によるサービスのプロビジョニングを可能にするいくつかの内部の共有サービス2832が提供されてもよい。これらの内部の共有サービスは、セキュリティ/素性サービス、統合サービス、エンタープライズリポジトリサービス、エンタープライズマネージャサービス、ウイルススキャン/ホワイトリストサービス、可用性の高いバックアップ・リカバリサービス、クラウドサポート、Eメールサービス、通知サービス、ファイル転送サービスなどを可能にするためのサービスを含み得るが、これらに限定されない。
【0245】
特定の実施形態において、クラウドインフラストラクチャシステム2802は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえば、SaaSサービス、PaaSサービス、およびIaaSサービス)の包括的な管理を提供してもよい。一実施形態において、クラウド管理機能は、クラウドインフラストラクチャシステム2802などが受信した顧客のサブスクリプションをプロビジョニング、管理、および追跡する
ための機能を含んでもよい。
【0246】
一実施形態において、
図28に示すように、クラウド管理機能は、オーダー管理モジュール2820、オーダーオーケストレーションモジュール2822、オーダープロビジョニングモジュール2824、オーダー管理/監視モジュール2826、および素性管理モジュール2828など、1つ以上のモジュールによって提供されてもよい。これらのモジュールは、1つ以上のコンピュータおよび/またはサーバを含んでもよく、または、これらを使用して提供されてもよい。1つ以上のコンピュータおよび/またはサーバは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバ・クラスタ、またはその他の適切な配置および/または組合せであり得る。
【0247】
例示的な動作において、ステップ2834において、クライアントコンピューティングデバイス2804、2806、または2808などのクライアントデバイスを使用している顧客は、クラウドインフラストラクチャシステム2802が提供する1つ以上のサービスを要求し、クラウドインフラストラクチャシステム2802が提供する1つ以上のサービスのサブスクリプションのオーダーをすることによって、クラウドインフラストラクチャシステム2802とやり取りしてもよい。特定の実施形態において、顧客は、クラウドUI2812、クラウドUI2814、および/またはクラウドUI2816などのクラウドユーザインタフェース(UI:User Interface)にアクセスし、これらのUIを介してサブスクリプションのオーダーを行ってもよい。顧客がオーダーをすることに応答してクラウドインフラストラクチャシステム2802が受信したオーダー情報は、この顧客を特定する情報、および、顧客がサブスクリプションをする予定である、クラウドインフラストラクチャシステム2802が提供する1つ以上のサービスを含んでもよい。
【0248】
ステップ2836において、顧客から受けたオーダー情報を、オーダーデータベース2818に格納してもよい。これが、新しいオーダーである場合、オーダーについての新しい記録を作成してもよい。一実施形態において、オーダーデータベース2818は、クラウドインフラストラクチャシステム2802によって操作され、他のシステム要素と共に操作されるいくつかのデータベースのうちの1つであり得る。
【0249】
ステップ2838において、オーダー情報が、オーダー管理モジュール2820に転送されてもよい。オーダー管理モジュール2820は、オーダーの確認、確認後のオーダーの登録など、オーダーに関する課金機能および会計機能を実行するように構成されてもよい。
【0250】
ステップ2840において、オーダーに関する情報は、オーダーオーケストレーションモジュール2822に伝送されてもよい。オーダーオーケストレーションモジュール2822は、顧客が行ったオーダーに関するサービスおよびリソースのプロビジョニングをオーケストレーションするように構成される。場合によっては、オーダーオーケストレーションモジュール2822は、オーダープロビジョニングモジュール2824のサービスをプロビジョニングのために使用してもよい。特定の実施形態において、オーダーオーケストレーションモジュール2822は、各オーダーに対応付けられたビジネスプロセスの管理を可能にし、ビジネスロジックを適用して、オーダーがプロビジョニングに進むべきかどうかを判断する。
【0251】
図28に表した実施形態に示すように、ステップ2842において、新しいサブスクリプションのオーダーを受けると、オーダーオーケストレーションモジュール2822は、オーダープロビジョニングモジュール2824に、リソースを割り当ててサブスクリプションのオーダーを満たすために必要なリソースを構成するよう、要求を送る。オーダープロビジョニングモジュール2824は、顧客が申し込んだサービスのためのリソースの割
り当てを可能にする。オーダープロビジョニングモジュール2824は、クラウドインフラストラクチャシステム2802が提供するクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理実施層との間に、抽象度を提供する。これによって、サービスおよびリソースがオンザフライで実際にプロビジョニングまたは予めプロビジョニングされて、要求された場合にのみ割り当て/アサインされたかどうかなどの実施詳細から、オーダーオーケストレーションモジュール2822を切り離すことが可能になる。
【0252】
ステップ2844において、いったんサービスおよびリソースがプロビジョニングされると、要求されたサービスが使える用意が整ったことを示す通知を、サブスクリプションをしている顧客に送ってもよい。ある場合において、要求されたサービスを顧客が使用し始めることを可能にする情報(たとえば、リンク)が、顧客に送られてもよい。
【0253】
ステップ2846において、顧客のサブスクリプションのオーダーが、オーダー管理/監視モジュール2826によって管理および追跡されてもよい。場合によっては、オーダー管理/監視モジュール2826は、顧客のサブスクリプションしているサービスの使用に関する使用統計データを収集するように構成されてもよい。たとえば、使用されたストレージの量、転送されたデータの量、ユーザの数、およびシステムの稼働時間およびシステムの休止時間などについての統計データが収集されてもよい。
【0254】
特定の実施形態において、クラウド・インフラストラクチャ・システム2800は、素性管理モジュール2828を含んでもよい。素性管理モジュール2828は、クラウド・インフラストラクチャ・システム2800におけるアクセス管理および承認サービスなどの素性サービスを提供するように構成される。いくつかの実施形態において、素性管理モジュール2828は、クラウドインフラストラクチャシステム2802が提供するサービスを利用したい顧客についての情報を制御してもよい。このような情報は、このような顧客の素性を認証する情報、および、さまざまなシステムリソース(たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してそれらの顧客がどのような操作を行うことが承認されているのかを記述する情報を含み得る。また、素性管理モジュール2828は、各顧客についての記述情報、およびその記述情報が誰によってどのようにアクセスおよび変更され得るかについての記述情報の管理を含んでもよい。
【0255】
図29は、本開示の実施形態を実現するために使用され得る例示的なコンピュータシステム2900を示す図である。いくつかの実施形態において、コンピュータシステム2900を使用して、上述のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現してもよい。
図29に示すように、コンピュータシステム2900は、バス・サブシステム2902を介していくつかの周辺サブシステムと通信する処理装置2904を含むさまざまなサブシステムを備える。これらの周辺サブシステムは、処理高速化ユニット2906と、I/Oサブシステム2908と、ストレージサブシステム2918と、通信サブシステム2924とを備えてもよい。ストレージサブシステム2918は、有形のコンピュータ読み取り可能な記憶媒体2922と、システムメモリ2910とを備えてもよい。
【0256】
バス・サブシステム2902は、コンピュータシステム2900のさまざまなコンポーネントおよびサブシステムを互いに意図した通りに通信させるための機構を提供する。バス・サブシステム2902は、1つのバスとして図示されているが、バス・サブシステムの別の実施形態は、複数のバスを利用してもよい。バス・サブシステム2902は、メモリコントローラのメモリバス、周辺バス、および各種のバスアーキテクチャを使用するローカルバスを含む、いくつかの種類のバス構造のうちのいずれかであってもよい。たとえ
ば、このようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびPCI(Peripheral Component Interconnect)バスを含んでもよく、これらは、IEEE P1386.1標準規格に準拠して製造されるMezzanineバスなどとして実現され得る。
【0257】
処理サブシステム2904は、コンピュータシステム2900の動作を制御し、1つ以上の処理装置2932、2934などを備えてもよい。処理装置は、シングルコア・プロセッサまたはマルチコア・プロセッサを含む1つ以上のプロセッサ、プロセッサの1つ以上のコア、またはそれらの組合せを含んでもよい。いくつかの実施形態において、処理サブシステム2904は、グラフィックスプロセッサ、デジタル・シグナル・プロセッサ(DSP)など、1つ以上の専用コプロセッサを含み得る。いくつかの実施形態において、処理サブシステム2904の処理装置の一部またはすべては、特定用途向け集積回路(ASIC)、またはフィールド・プログラマブル・ゲート・アレイ(FPGA)など、カスタム回路を使用して実現され得る。
【0258】
いくつかの実施形態において、処理サブシステム2904に含まれる処理装置は、システムメモリ2910に、または、コンピュータ読み取り可能な記憶媒体2922上に格納された命令を実行できる。さまざまな実施形態において、処理装置は、いろいろなプログラムまたはコード命令を実行し、複数の同時に実行しているプログラムまたはプロセスを維持できる。いつでも、実行されるプログラムコードの一部またはすべては、システムメモリ2910に、および/または、1つ以上の記憶装置上を潜在的に含む、コンピュータ読み取り可能な記憶媒体2922上に存在し得る。適したプログラミングを通して、処理サブシステム2904は、さまざまな機能を提供できる。
【0259】
特定の実施形態において、カスタマイズされた処理を実行するための、または、コンピュータシステム2900によって実行される全体的な処理が高速化するように、処理サブシステム2904によって実行される処理のうちのいくつかの負荷を軽減させるための処理高速化ユニット2906が提供されてもよい。
【0260】
I/Oサブシステム2908は、コンピュータシステム2900に情報を入力するためのデバイスおよび機構、ならびに/またはコンピュータシステム2900から、もしくはコンピュータシステム2900を介して情報を出力するためのデバイスおよび機構を含んでもよい。一般に、用語「入力装置」の使用は、コンピュータシステム2900に情報を入力するためのあらゆる種類のデバイスおよび機構を含む意図がある。ユーザインタフェース入力装置は、たとえば、キーボード、マウスもしくはトラックボールなどのポインティングデバイス、タッチパッドもしくはディスプレイに組み込まれたタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、ボイスコマンド認識システムを有する音声入力装置、マイクロホン、および他の種類の入力装置を含んでもよい。また、ユーザインタフェース入力装置は、ユーザが入力装置を制御するおよび入力装置とやり取りすることを可能にするMicrosoft Kinect(登録商標)モーションセンサなどの動き検知デバイスおよび/またはジェスチャ認識デバイス、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャコマンドおよび音声コマンドを使用した入力を受信するためのインタフェースを提供するデバイスを含んでもよい。ユーザインタフェース入力装置は、ユーザからの目のアクティビティ(たとえば、写真を撮影しながらおよび/またはメニュー選択を行いながら「まばたきすること」)を検出し、アイ・ジェスチャを、入力装置(たとえば、Google Glass(登録商標))への入力として変形させるGoogle Glass(登録商標)まばたき検出装置などのアイ・ジェスチャ認識デバイスを含んでもよい。これに加えて、ユーザインタフェース入力装置は、ユーザが、ボイスコマンドを通して、音声認
識システム(たとえば、Siri(登録商標)ナビゲータ)とやり取りすることを可能にする音声認識検知デバイスを含んでもよい。
【0261】
ユーザインタフェース入力装置の他の例に、3次元(3D)マウス、ジョイスティックもしくはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルカムコーダー、ポータブルメディアプレーヤ、ウェブカム、イメージスキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザー測距器、および視線追跡装置などのオーディオ/ビジュアル装置などが挙げられるが、これらに限定されない。これに加えて、ユーザインタフェース入力装置は、たとえば、コンピュータ断層撮影法、磁気共鳴画像、ポジトロン・エミッション・トモグラフィー、超音波検査デバイスなど、医用画像入力装置を含んでもよい。また、ユーザインタフェース入力装置は、たとえば、MIDIキーボード、デジタル楽器などの音声入力装置を含んでもよい。
【0262】
ユーザインタフェース出力装置は、表示サブシステム、インジケーターライト、または音声出力装置などの非ビジュアル装置を含んでもよい。表示サブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなどのフラットパネル表示装置、投影装置、タッチスクリーンなどであってもよい。一般に、用語「出力装置」の使用は、コンピュータシステム2900からユーザまたは他のコンピュータに情報を出力するためのあらゆる種類のデバイスおよび機構を含むよう意図される。たとえば、ユーザインタフェース出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車ナビゲーションシステム、作図装置、音声出力装置、およびモデムなど、視覚的に文字、図形、および音声/映像情報を伝えるいろいろな表示装置を含み得るが、これらに限定されない。
【0263】
ストレージサブシステム2918は、コンピュータシステム2900が使用する情報を格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム2918は、いくつかの実施形態の機能を提供する基本プログラミング構成体およびデータ構成体を格納するための、有形の非一時的なコンピュータ読み取り可能な記憶媒体を提供する。処理サブシステム2904によって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム2918に格納されてもよい。ソフトウェアは、処理サブシステム2904の1つ以上の処理装置によって実行されてもよい。また、ストレージサブシステム2918は、本開示に応じて使用されるデータを格納するためのリポジトリを提供してもよい。
【0264】
ストレージサブシステム2918は、揮発性および不揮発性メモリ素子を含む、1つ以上の非一時的なメモリ素子を含んでもよい。
図29に示すように、ストレージサブシステム2918は、システムメモリ2910と、コンピュータ読み取り可能な記憶媒体2922とを備える。システムメモリ2910は、プログラムを実行中に命令およびデータを格納するための揮発性のメインRAM(Random Access Memory)、および、固定の命令が格納される不揮発性ROM(Read Only Memory)またはフラッシュメモリを含む、いくつかのメモリを含んでもよい。いくつかの実装形態において、起動中などで、コンピュータシステム2900内の要素間で情報を転送することを助ける基本ルーチンを含むBIOS(Basic Input/Output System)は、通常、ROMに格納されてもよい。RAMは、通常、
処理サブシステム2904が現在操作および実行していているデータおよび/またはプログラムモジュールを含む。いくつかの実装形態において、システムメモリ2910は、SRAM(Static Random Access Memory)またはDRAM(Dynamic Random Access Memory)など、複数の異なる種類のメモリを含んでもよい。
【0265】
一例として、限定ではないが、
図29に示すように、システムメモリ2910は、クラ
イアントアプリケーション、ウェブブラウザ、ミッドティア・アプリケーション、リレーショナルデータベース管理システム(RDBMS)などのアプリケーションプログラム2912と、プログラムデータ2914と、オペレーティングシステム2916とを含んでもよい。例として、オペレーティングシステム2916は、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinuxオペレーティングシステム、いろいろな流通しているUNIX(登録商標)もしくはUNIXに似たオペレーティングシステム(いろいろなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されない)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10OS、およびPalm(登録商標)OSオペレーティングシステムなど、モバイルオペレーティングシステムを含んでもよい。
【0266】
コンピュータ読み取り可能な記憶媒体2922は、いくつかの実施形態の機能を提供するプログラミング構成体およびデータ構成体を格納してもよい。処理サブシステム2904によって実行されると、プロセッサに上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム2918に格納されてもよい。例として、コンピュータ読み取り可能な記憶媒体2922は、ハードディスクドライブなどの不揮発性メモリ、磁気ディスクドライブ、CD ROM、DVD、Blu-Ray(登録商標)ディスクなどの光ディスクドライブまたは他の光学媒体を含んでもよい。コンピュータ読み取り可能な記憶媒体2922は、Zip(登録商標)ドライブ、フラッシュメモリーカード、USB(Universal Serial Bus)フラッシュドライブ、SD(Secure Digital)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、これらに限定されない。また、コンピュータ読み取り可能な記憶媒体2922は、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなど、不揮発性メモリに基づくSSD(Solid-State Drives)、ソリッドステートRAM、動的RAM、静的RAMなど、揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMのSSDとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含んでもよい。コンピュータ読み取り可能な媒体2922は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、およびコンピュータシステム2900用の他のデータのストレージを提供してもよい。
【0267】
また、特定の実施形態において、ストレージサブシステム2918は、コンピュータ読み取り可能な記憶媒体2922にさらに接続され得るコンピュータ読み取り可能な記憶媒体リーダ2920を含んでもよい。システムメモリ2910と合わせて、必要に応じてシステムメモリ2910と組み合わせて、コンピュータ読み取り可能な記憶媒体2922は、遠隔の記憶装置、ローカル記憶装置、固定記憶装置、および/またはリム―バブル記憶装置、ならびにコンピュータ読み取り可能な情報を格納するための記憶媒体を包括的に表してもよい。
【0268】
特定の実施形態において、コンピュータシステム2900は、1つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム2900は、仮想マシンの構成および管理を容易にするためのハイパーバイザなどのプログラムを実行してもよい。各仮想マシンには、メモリ、コンピュータ(たとえば、プロセッサ、コア)、I/O、およびネットワーキング・リソースが割り当てられてもよい。各仮想マシンは、通常、それ自体のオペレーティングシステムを実行する。このオペレーティングシステムは、コンピュータシステム2900が実行する他の仮想マシンによって実行されるオペレーティングシステムと同じまたは異なってもよい。よって、複数のオペレーティングシステムは、コンピュータシステム2900によって同時に実行される可能性があってもよい。各仮
想マシンは、一般に、その他の仮想マシンとは別に実行される。
【0269】
通信サブシステム2924は、他のコンピュータシステムおよびネットワークへのインタフェースを提供する。通信サブシステム2924は、コンピュータシステム2900からデータを受信し、コンピュータシステム2900から他のシステムにデータを送信するためのインタフェースとして機能する。たとえば、通信サブシステム2924は、1つ以上のクライアントコンピューティングデバイスと情報を送受信するためのクライアントコンピューティングデバイスへの通信チャネルを、インターネットを介してコンピュータシステム2900が確立することを可能にしてもよい。
【0270】
通信サブシステム2924は、有線通信プロトコルおよび/またはワイヤレス通信プロトコルの両方をサポートしてもよい。たとえば、特定の実施形態において、通信サブシステム2924は、ワイヤレス音声ネットワークもしくは/またはデータネットワークにアクセスするためのRF(Radio Frequency)送信コンポーネント(たとえば、携帯電話技
術、3G、4G、もしくはEDGE(Enhanced Data Rates For Global Evolution)などの次世代データネットワークテクノロジー、WiFi(IEEE 802.11ファミリー標準規格)、他の移動体通信技術、またはそれらの任意の組合せを使用する)、GPS(Global Positioning System)受信コンポーネント、および/または他のコンポーネン
トを含んでもよい。いくつかの実施形態において、通信サブシステム2924は、ワイヤレスインタフェースに加えて、またはワイヤレスインタフェースの代わりに、有線ネットワーク接続性(たとえば、Ethernet)を提供できる。
【0271】
通信サブシステム2924は、さまざまな形でデータを受送信できる。たとえば、いくつかの実施形態において、通信サブシステム2924は、入力通信文を、構造化および/または非構造化データフィード2926、イベントストリーム2928、イベント更新2930などの形で受信してもよい。たとえば、通信サブシステム2924は、Twitter(登録商標)フィード、Facebook(登録商標)の更新、RSS(Rich Site Summary)フィードなどのwebフィード、および/または1つ以上のサードパーティ情
報ソースからのリアルタイム更新など、ソーシャルメディアネットワークおよび/または他のコミュニケーションサービスのユーザから、データフィード2926をリアルタイムで受信する(または送る)ように構成されてもよい。
【0272】
特定の実施形態において、通信サブシステム2924は、連続したデータストリームの形でデータを受信するように構成されてもよく、連続したデータストリームは、リアルタイムイベントのイベントストリーム2928および/またはイベント更新2930を含んでもよく、本質的に明らかな終端がない連続ストリームまた無限ストリームであってもよい。連続データを生成するアプリケーションとして、たとえば、センサーデータアプリケーション、チッカー、ネットワークパフォーマンス測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通量監視などが挙げられてもよい。
【0273】
また、通信サブシステム2924は、コンピュータシステム2900に接続された1つ以上のストリーミングデータソースコンピュータと通信中であり得る1つ以上のデータベースに、構造化および/または非構造化データフィード2926、イベントストリーム2928、イベント更新2930などを出力するように構成されてもよい。
【0274】
コンピュータシステム2900は、手のひらサイズのポータブルデバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)、パーソナルコンピュータ、ワークステーション、メイ
ンフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまな種類のうちの1つであり得る。
【0275】
変わり続ける、というコンピュータおよびネットワークの性質により、
図29に示すコンピュータシステム2900の説明は、具体例にすぎない。
図29に示すシステムよりも多いまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書に記載の開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他のやり方および/または方法が分かるだろう。
【0276】
具体的な本開示の実施形態を説明したが、さまざまな変更例、代替例、代替的な構成、および均等物も本開示の範囲内に包含される。変更例は、開示された特徴の適切な組合せのいずれも含む。本開示の実施形態は、ある特定のデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作することができる。これに加えて、特定の一続きのトランザクションおよびステップを使用して本開示の実施形態を説明したが、本開示の範囲は、記載の一続きのトランザクションおよびステップに限られないことは、当業者に明らかであるはずである。上述の実施形態のさまざまな特徴および態様は、個々に、または共同で使用されてもよい。
【0277】
さらに、ハードウェアとソフトウェアとの特定の組合せを使用して本開示の実施形態を説明したが、ハードウェアとソフトウェアとの他の組合せも、本開示の範囲内であることを認識されたい。本開示の実施形態は、ハードウェアのみ、もしくは、ソフトウェアのみで実現されてもよく、またはそれらの組合せを使用して実現されてもよい。本明細書に記載のさまざまなプロセスは、同じプロセッサまたは任意の組合せのそれぞれ異なるプロセッサ上で実現できる。よって、コンポーネントまたはモジュールが特定の動作を実行するように構成されると説明されている箇所では、このような構成は、たとえば、この動作を実行するように電子回路を設計することによって、この動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組合せによって達成できる。プロセスは、プロセス間通信のための従来技術を含む、いろいろな技術を使用して通信できるが、これに限定されず、それぞれ異なるペアプロセスは、異なる技術を使用してもよく、プロセスの同じペアは、異なる技術を別々のタイミングで使用してもよい。
【0278】
明細書および図面は、厳密ではなく、一例にすぎないと適宜みなされるべきである。しかしながら、添付の特許請求の範囲に記載のより広義の趣旨および範囲から逸脱することなく、追加、減算、削除、および他の変更ならびに変形がそれらに対してなされてもよいということは明白であろう。したがって、具体的な実施形態を説明したが、これらは、限定を意図しない。さまざまな変更例および均等物は、添付の特許請求の範囲内である。