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

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

▶ ネットスコープ, インク.の特許一覧

特開2024-105217SLA保証を管理するための動的パワーユーザ抑制方法
<>
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図1
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図2
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図3
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図4
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図5A
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図5B
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図6A
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図6B
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図6C
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図7A
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図7B
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図8
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図9
  • 特開-SLA保証を管理するための動的パワーユーザ抑制方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024105217
(43)【公開日】2024-08-06
(54)【発明の名称】SLA保証を管理するための動的パワーユーザ抑制方法
(51)【国際特許分類】
   G06F 11/30 20060101AFI20240730BHJP
   G06F 21/62 20130101ALI20240730BHJP
   G06F 9/48 20060101ALI20240730BHJP
【FI】
G06F11/30 155
G06F21/62
G06F9/48 300J
G06F11/30 140A
【審査請求】未請求
【請求項の数】24
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024035454
(22)【出願日】2024-03-08
(62)【分割の表示】P 2023545961の分割
【原出願日】2022-01-28
(31)【優先権主張番号】17/163,285
(32)【優先日】2021-01-29
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】517325652
【氏名又は名称】ネットスコープ, インク.
【氏名又は名称原語表記】NETSKOPE, INC.
(74)【代理人】
【識別番号】100114476
【弁理士】
【氏名又は名称】政木 良文
(72)【発明者】
【氏名】ラジャゴパラン, チャンドラセカラン
(57)【要約】      (修正有)
【課題】SaaSベンダによってユーザグループに課されるスループットペナルティを回避し、グループからの要求及びユーザグループ内の個々のユーザからSaaSベンダへの要求のAPIイベントレート又は時間内の量を集合的に監視する方法を提供する。
【解決手段】グループのAPIレートが、全体的に、グループに対するスループットペナルティのSaaSが課したトリガを超えるか又はそれに近づくときに、パワーユーザを、限度を超えてAPIイベントをサブミットしているとして認識し、グループのAPIイベントレートに対するユーザの影響を低減するためのアクションを取る。更に、パワーユーザからSaaSへのAPIイベントサブミッションの送信を割り振り、SaaSによるスループットペナルティのトリガを回避し、パワーユーザ以外のグループ内のユーザのレイテンシを低減し、パワーユーザのレイテンシを増加させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
サービスとしてのソフトウェア(SaaS)ベンダーによってユーザのグループに賦課される、前記グループからの過剰なアプリケーションプログラミングインターフェース(API)イベントに起因するスループットペナルティの発動を防止する方法であって、
ユーザグループのユーザからの要求に対するAPIイベントのレート又は時間内の量を、個人及びSaaSベンダーに対する前記ユーザグループの登録メンバーとしての両方で監視することと、
前記監視に基づいて、制限を超えてAPIイベントをサブミットする前記ユーザグループのメンバーとして登録されているパワーユーザを識別することと、
前記ユーザグループのために、前記パワーユーザによる前記SaaSベンダーへのAPIイベントサブミッションのレート又は時間内の量を、プロキシによって管理される前記SaaSベンダーに特有の設定可能なポリシーに基づいて抑制し、その結果、全体的に、少なくとも前記ユーザグループに対する前記APIイベントのレート又は時間内の量が、全体的に、SaaSベンダーが賦課する前記ユーザグループへの前記スループットペナルティを賦課するためのトリガを超える又はそれに近付くときに、前記ユーザグループの前記APIイベントのレート又は時間内の量に対する前記パワーユーザの影響を低減し、それによって、前記SaaSベンダーによる前記スループットペナルティの前記賦課を低減することと、を含む、方法。
【請求項2】
前記SaaSベンダーによって生成される、前記ユーザグループに対するAPIイベントの処理の通知に基づいて、前記APIイベントのレート又は時間内の量を監視することを更に含む、請求項1に記載の方法。
【請求項3】
前記SaaSベンダーにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて、前記APIイベントのレート又は時間内の量を監視することを更に含む、請求項1に記載の方法。
【請求項4】
前記SaaSベンダーに特有の前記設定可能なポリシーで指定された閾値を超えた単位時間当たりのオペレーションの数を消費する前記ユーザグループの前記ユーザのAPIのレート又は時間内の量を監視することによって、前記パワーユーザを識別することを更に含む、請求項1に記載の方法。
【請求項5】
前記SaaSベンダー特有の前記設定可能なポリシーが、前記ユーザグループ向けのサードパーティのサービスレベルアグリーメント(SLA)を保証するために、前記プロキシによって設定されている、請求項1に記載の方法。
【請求項6】
前記パワーユーザが前記SaaSベンダーへのAPIイベントサブミッションを行うことの遮断及び一時的な停止の一方によって、前記パワーユーザの前記レート又は時間内の量を抑制することを更に含む、請求項1に記載の方法。
【請求項7】
前記一時的な停止が、所定の時間の間、又は前記ユーザグループによる全体的なサブミッションが、前記SaaSが賦課するトリガを超えなくなるまでの間である、請求項6に記載の方法。
【請求項8】
前記登録されたパワーユーザを、前記登録されたパワーユーザのためのサブミッションの処理を前記ユーザグループの他のユーザのためのサブミッションの処理から分離する、前記プロキシによって管理されているオーバーフローAPIイベントチャネルに割り当てることによって、前記パワーユーザからのAPIイベントサブミッションの送信を割り振り、前記パワーユーザのAPIイベントサブミッションの前記レート又は時間内の量を抑制することを更に含む、請求項1に記載の方法。
【請求項9】
前記パワーユーザによるAPIイベントサブミッションの更新されたレート又は時間内の量が、復元限度を下回ったときに、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項8に記載の方法。
【請求項10】
前記ユーザグループによるAPIイベントサブミッションの更新されたレート又は時間内の量が、全体的に、前記SaaSが賦課するトリガを超えなくなったときに、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項8に記載の方法。
【請求項11】
前記オーバーフローAPIイベントチャネルが空であるか、又は所定の時間の間、キューの深さ制限を下回り続けたときに、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項8に記載の方法。
【請求項12】
前記SaaSベンダーが前記オーバーフローAPIイベントチャネルの利用量を個別に測定する、請求項8に記載の方法。
【請求項13】
有形の非一時的コンピュータ可読記憶媒体であって、メモリ上にロードされたプログラム命令を含み、前記プログラム命令は、ハードウェアプロセッサ上で実行されると、前記ハードウェアプロセッサに、サービスとしてのソフトウェア(SaaS)ベンダーによってユーザのグループに賦課される、前記グループからの過剰なアプリケーションプログラミングインターフェース(API)イベントに起因するスループットペナルティの発動を防ぐためのステップを行わせ、前記ステップが、
ユーザグループのユーザからの要求に対するAPIイベントのレート又は時間内の量を、個人及びSaaSベンダーに対する前記ユーザグループの登録メンバーとして監視するステップと、
前記監視に基づいて、制限を超えてAPIイベントをサブミットする前記ユーザグループのメンバーとして登録されているパワーユーザを識別するステップと、
前記ユーザグループのために、前記パワーユーザによる前記SaaSベンダーへのAPIイベントサブミッションのレート又は時間内の量を、プロキシによって管理される前記SaaSベンダーに特有の設定可能なポリシーに基づいて抑制し、その結果、全体的に、少なくとも前記ユーザグループに対する前記APIイベントのレート又は時間内の量が、全体的に、SaaSベンダーが賦課する前記ユーザグループへの前記スループットペナルティを賦課するためのトリガを超える又はそれに近付くときに、前記ユーザグループの前記APIイベントのレート又は時間内の量に対する前記パワーユーザの影響を低減し、それによって、前記SaaSベンダーによる前記スループットペナルティがトリガすることを回避するステップと、を含む、有形の非一時的コンピュータ可読記憶媒体。
【請求項14】
前記ステップが、前記パワーユーザが前記SaaSへのAPIイベントサブミッションを行うことの遮断及び一時的な停止の一方によって、APIイベントサブミッションの前記レート又は時間内の量を抑制するステップを更に含む、請求項13に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項15】
前記ステップが、遮断又は一時的な停止をフォローアップするために、人間のユーザに通知を送信するステップを更に含む、請求項13に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記一時的な停止が、所定の時間の間、又は前記ユーザグループによる全体的なサブミッションが、前記SaaSが賦課するトリガを超えなくなるまでの間である、請求項14に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記ステップが、前記パワーユーザのためのサブミッションの処理を前記ユーザグループの他のユーザのためのサブミッションの処理から分離する、前記プロキシによって管理されているオーバーフローAPIイベントチャネルに前記パワーユーザを割り当てることによって、前記パワーユーザからのAPIイベントサブミッションの送信を割り振り、前記パワーユーザのAPIイベントサブミッションの前記レート又は時間内の量を抑制するステップを更に含む、請求項13に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項18】
サービスとしてのソフトウェア(SaaS)ベンダーによってグループに賦課される、前記グループからの過剰なアプリケーションプログラミングインターフェース(API)イベントに起因するスループットペナルティの発動を防ぐためのシステムであって、前記システムは、プロセッサ、前記プロセッサと結合されたメモリ、及び前記メモリにロードされたコンピュータ命令を含み、前記コンピュータ命令は、実行されると、
ユーザグループのユーザからの要求に対するAPIイベントのレート又は時間内の量を、個人及びSaaSベンダーに対する前記ユーザグループの登録メンバーとして監視するステップと、
前記監視に基づいて、制限を超えてAPIイベントをサブミットする前記ユーザグループのメンバーとして登録されているパワーユーザを識別するステップと、
前記ユーザグループのために、前記パワーユーザによる前記SaaSベンダーへのAPIイベントサブミッションのレート又は時間内の量を、プロキシによって管理される前記SaaSベンダーに特有の設定可能なポリシーに基づいて抑制し、その結果、全体的に、少なくとも前記ユーザグループに対する前記APIイベントのレート又は時間内の量が、全体的に、SaaSベンダーが賦課する前記ユーザグループへの前記スループットペナルティを賦課するためのトリガを超える又はそれに近付くときに、前記ユーザグループの前記APIイベントのレート又は時間内の量に対する前記パワーユーザの影響を低減し、それによって、前記SaaSベンダーによる前記スループットペナルティがトリガすることを回避するステップと、を含む、ステップを前記プロセッサに行わせる、システム。
【請求項19】
前記ステップが、前記パワーユーザのためのサブミッションの処理を前記ユーザグループの他のユーザのためのサブミッションの処理から分離する、前記プロキシによって管理されているオーバーフローAPIイベントチャネルに前記パワーユーザを割り当てることによって、前記パワーユーザからのAPIイベントサブミッションの送信を割り振り、前記パワーユーザのAPIイベントサブミッションの前記レート又は時間内の量を抑制するステップを更に含む、請求項18に記載のシステム。
【請求項20】
サービスとしてのソフトウェア(SaaS)ベンダーによってグループに賦課される、前記グループからの過剰なアプリケーションプログラミングインターフェース(API)イベントに起因するスループットペナルティの発動を防止するためのネットワークセキュリティシステムであって、
実行可能な命令がロードされているメモリと結合されており、ユーザグループのユーザからのSaaSベンダーにサブミットされた要求に対するAPIイベントのレート又は時間内の量を、個人及び前記ユーザグループの登録メンバーとしての両方で監視するように構成されている、1つ以上のアクティブアナライザと、
前記アクティブアナライザと結合されており、前記監視に基づいて、APIイベントを制限を超えてサブミットするパワーユーザを識別するように構成されているパワーユーザ識別器と、
前記ユーザグループからのAPIイベントサブミッションを受け取り、前記ユーザグループの前記APIイベントサブミッションの、集合的に、ワーカーによる処理をスケジュールするように構成されているスケジューラと、を備え、
前記スケジューラは、前記パワーユーザ識別器と、前記パワーユーザの識別情報を受け取るように結合されており、前記パワーユーザによるAPIイベントサブミッションのレート又は時間内の量を、前記SaaSベンダーに特有で、プロキシによって管理されている設定可能なポリシーに基づいて抑制し、その結果、少なくとも、前記ユーザグループからの前記APIイベントのレート又は時間内の量が、全体的に、ポリシーの制限を超えるか、又はSaaSベンダーが賦課する前記ユーザグループへの前記スループットペナルティの賦課のトリガに近付くときに、前記ユーザグループの前記APIイベントのレート又は時間内の量に対する前記パワーユーザの影響を低減するように構成されている、ネットワークセキュリティシステム。
【請求項21】
前記SaaSベンダーから送信された前記ユーザグループに対する前記APIイベントサブミッションの処理の通知を受信する前記スケジューラが、前記パワーユーザのための通知処理のレートを抑制し、前記ユーザグループ内の他のユーザのための通知処理のレートを増加するように更に構成されている、請求項20に記載のネットワークセキュリティシステム。
【請求項22】
前記1つ以上のアクティブアナライザが、プライマリキュー及び補助キューを介して前記SaaSベンダーにサブミットされているAPIイベント要求のカウントに基づいて、APIイベントのレート又は時間内の量を監視する、請求項20に記載のネットワークセキュリティシステム。
【請求項23】
前記スケジューラが、前記パワーユーザを、前記パワーユーザによるAPIイベントサブミッションの前記レート及び時間内の量を抑制する、プロキシによって管理されている前記補助キューに割り当てることによって、前記パワーユーザのAPIイベントサブミッションの送信を抑制するように更に構成されている、請求項22に記載のネットワークセキュリティシステム。
【請求項24】
前記スケジューラが、前記パワーユーザのためのサブミッションの処理を前記ユーザグループ内の他のユーザのためのサブミッションの処理から分離する、プロキシによって管理されているオーバーフローAPIイベントチャネルに、前記パワーユーザを割り当てることによって、前記パワーユーザのAPIイベントサブミッションの送信を割り振るように更に構成されている、請求項20に記載のネットワークセキュリティシステム。
【発明の詳細な説明】
【相互参照】
【0001】
本出願は、2021年1月29日に出願された「Dynamic Power User Identification and Isolation For Managing SLA Guarantees」と題する米国特許出願第17/163,285号の優先権及び利益を主張する。
【援用】
【0002】
以下の材料は、本出願において参照により援用される。
【0003】
2014年3月05日に出願された「Security for Network Delivered Services」と題する米国非仮特許出願第14/198,508号(代理人整理番号NSKO1000-3)(現在、2016年2月23日に発行された米国特許第9,270,765号)、
2016年12月02日に出願された「Systems and Methods of Enforcing Multi-Part Policies on Data-Deficient Transactions of Cloud Computing Services」と題する米国非仮特許出願第15/368,240号(代理人整理番号NSKO1003-2)(現在は2020年11月03日に発行された米国特許第10,826,940号)、及び2016年3月11日に出願された「Systems and Methods of Enforcing Multi-Part Policies on Data-Deficient Transactions of Cloud Computing Services」と題する米国仮特許出願第62/307,305号(代理人整理番号NSKO1003-1)、
“Cloud Security for Dummies,Netskope Special Edition”by Cheng,Ithal,Narayanaswamy,and Malmskog,John Wiley & Sons,Inc.2015;
“Netskope Introspection”by Netskope,Inc.;
“Data Loss Prevention and Monitoring in the Cloud”by Netskope,Inc.;
“The 5 Steps to Cloud Confidence”by Netskope,Inc.;
“Netskope Active Cloud DLP”by Netskope,Inc.;
“Repave the Cloud-Data Breach Collision Course”by Netskope,Inc.;及び
“Netskope Cloud Confidence Index(商標)”by Netskope,Inc.
【技術分野】
【0004】
開示される技術は、概して、セキュリティ及び規制順守のために、ユーザグループ内のユーザからの過剰なアプリケーションプログラミングインターフェース(API)イベントに起因して、サービスとしてのソフトウェア(SaaS)ベンダーによって組織のユーザグループに賦課されるスループットペナルティを回避することに関する。より具体的には、開示される技術は、サービスレベルアグリーメント(SLA)保証を管理するための動的パワーユーザ識別及び分離に関する。
【背景技術】
【0005】
このセクションで議論される主題は、単にこのセクションにおけるその言及の結果として従来技術であると想定されるべきではない。同様に、このセクションで言及される問題、又は背景として提供される主題に関連する問題は、従来技術において以前に認識されていたと仮定されるべきではない。このセクションの主題は、異なるアプローチを表すにすぎず、それ自体、特許請求される技術の実装形態に対応することもできる。
【0006】
コーポレート機能のためにクラウドサービスを使用することは一般的である。調査によると、エンタープライズワークロードの80%が2025年までにクラウド内に存在することが示唆されている。インターナショナルデータコーポレーションによれば、「パブリッククラウド情報テクノロジ(IT)インフラストラクチャへの支出は、2020年の第2の四半期に初めて従来のITインフラストラクチャへの支出を上回った」。例えば、エンタープライズ企業はしばしば、サービスを配信するためにコーポレートネットワーク内にサーバをインストールする代わりに、サービスとしてのソフトウェア(SaaS)ソリューションを利用している。
【0007】
企業は、通常、サービスを配信するために企業ネットワーク内にサーバをインストールする代わりに、SaaSソリューションを利用している。SaaSソリューションのプロバイダは、サービスと顧客との間で、顧客のデータの保証された可用性、性能、セキュリティ及びプライバシーの期待を設定するサービスレベルアグリーメント(SLA)を提供する。次に、顧客は、複数の顧客ブランチ及びデータセンターの間で、自身のデータを安全に共同で作成し、編集し、保存できることを期待する。
【0008】
十分なセキュリティサービスの必要性の一例では、2020年に、グローバルパンデミックが、企業の知識労働者の間での遠隔作業への急激なシフトを引き起こし、それが次に、危険な挙動の増加をもたらした。攻撃者は、COVID-19をテーマとしたフィッシング電子メール、スキャム及びトロイの木馬を用いて、大流行を利用しようとした。この期間の間、より洗練されたサイバー攻撃で使用される技術も進化し続けている。出願人は、攻撃者が初期配信のための技術を変更し、悪意のあるMicrosoft Officeドキュメントファイルの人気は6倍を超えて増加し、ポータブル実行可能ファイルに匹敵するか又はそれを超えたことを報告している。攻撃者は、人気のあるクラウドアプリ及びサービスを悪用して、悪意のあるファイルを企業内の被害者に配信し続けており、その50%超がクラウドを通じて配信されている。
【0009】
人間のユーザによるSaaSアプリの使用に加えて、SaaSアプリは、SaaSアプリ内のオブジェクトに対する更新を生成するボット又はスクリプトとも統合されている。これらの更新は、識別される通知として受信され、安全なサービスを保証するために検査される。一方、SaaSアプリは、単位時間当たりにユーザのために行われるAPI呼び出しの数などの要因にレート制限を賦課することができるため、ユーザのために実施されるオペレーションの数は、単位時間当たりにユーザに対して許可されるAPI呼び出しの数の要因となる。API呼び出しは、効率的に使用される乏しいリソースであり、これは、ワーカーにおいて作成されるオペレーションを、ユーザが実施することができる作業量に制限することの有用性を動機付ける。ユーザ及び通知に対して盲目的に、ワーカーにオペレーション及びスケジューリングを作成することは、ヘッドオブラインブロッキングにつながり、他のユーザの通知の処理を遅延させる。
【0010】
組織のためのサービスレベルアグリーメント(SLA)に応答して、ユーザグループ内のユーザからの過剰なAPIイベントに起因して、SaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避するための機会が生じる。
【0011】
図面において、同様の参照文字は、概して、異なる図全体を通して同様の部分を指す。また、図面は、必ずしも縮尺通りではなく、代わりに、概して、開示される技術の原理を図示することに重点が置かれている。以下の説明では、開示される技術の種々の実装形態が、以下の図面を参照して説明される。
【図面の簡単な説明】
【0012】
図1】開示される技術の一実装形態による、ユーザグループ内のユーザからの過剰なAPIイベントに起因してユーザグループに対してSaaSベンダーによって賦課されるスループットペナルティを回避するためのシステムのアーキテクチャレベルの概略図を例解する。
図2】内部検査のためのSaaSアプリケーションイベントを表すユーザデータのフローの高レベルブロック図を例解する。
図3】ユーザのSLA契約に従って、単位時間当たりに処理可能な量よりも多くの通知を生成するパワーユーザを識別するためのブロック図を例解する。
図4】APIイベントレートに対するユーザの影響を追跡するための、複数のユーザについての時間ウィンドウにおけるAPIイベントカウントの例示的なテーブルを示している。
図5A】ネットワークイベントのためにサードパーティSaaSベンダーから受信された例示的なプッシュ通知を、JSONスタイル表現の通知メタデータとともに列挙する。
図5B】ネットワークイベントのためにサードパーティSaaSベンダーから受信された例示的なプッシュ通知を、JSONスタイル表現の通知メタデータとともに列挙する。
図6A】アイテム作成604のネットワークイベントのための例示的なメタデータをJSONスタイル表現で列挙する。
図6B】アイテム作成604のネットワークイベントのための例示的なメタデータをJSONスタイル表現で列挙する。
図6C】アイテム作成604のネットワークイベントのための例示的なメタデータをJSONスタイル表現で列挙する。
図7A】例示的なアラート、管理者のためのメッセージを示す。
図7B】パワーユーザが、構成されたポリシーに違反した場合に管理者が受信する電子メールの例を示す。
図8】5分の期間にわたって受信されたAPIイベントのグラフと、開示された方法を介して割り振られたパワーユーザからSaaSへのAPIイベントサブミッションの送信とを用いて、10人のユーザのうち9人に対して低減されたレイテンシを例解する。
図9】開示される技術の一実装形態による、ユーザグループ内のユーザからの過剰なAPIイベントに起因して、ユーザグループに対してSaaSベンダーによって賦課されるスループットペナルティを回避するための方法の代表的なワークフローを例解する。
図10】開示される技術の一実装形態による、ユーザグループ内のユーザからの過剰なAPIイベントに起因して、ユーザグループに対してSaaSベンダーによって賦課されるスループットペナルティを回避するために使用され得るコンピュータシステムの簡略化されたブロック図である。
【発明を実施するための形態】
【0013】
以下の詳細な説明は、図面を参照して行われる。特許請求の範囲によって定義されるその範囲を限定するためではなく、開示される技術を例解するために、例示的な実装形態が説明される。当業者であれば、以下の説明に基づいて種々の同等の変形例を認識するであろう。
【0014】
SaaSアプリは、実際のユーザによって使用され、SaaSアプリはまた、SaaSアプリ内のオブジェクトに対する更新を生成するボット又はスクリプトと統合される。更新は、通知としてSaaSアプリから受信される。
【0015】
SaaSアプリは、APIイベントにレート制限を賦課し、一部の要因に基づいてレート制限を賦課することができる。レート制限に関する共通の要因の1つは、ユーザに基づく。ユーザごとの、ユーザのためのAPIイベントの数を制限することができる。SaaSアプリは、単位時間当たりのユーザのためのAPIイベントに対してレート制限を賦課するので、ユーザのために実施されるオペレーションの数は、単位時間当たりにユーザに許可されるAPIイベントの数の要因となる。すなわち、APIイベントは、効率的に使用すべき不十分なリソースであり、これは、ワーカープロセスにおいて作成されるオペレーションを、ユーザのために実施することができる作業の量に制限することの有用性を促進する。ユーザ及び通知に対して盲目的にワーカープロセスに対するオペレーション及びスケジューリングを作成することは、パケットのラインが先頭のパケットで詰まってしまうときに発生し、他のユーザの通知の処理を遅延させる性能制限現象であるヘッドオブラインブロッキングにつながる可能性がある。
【0016】
過去において、SLA保証を管理するための手法は、外部アプリケーションによって賦課されたレート制限に反応することであった。重要ではあるが、この手法は、別のユーザの使用量によって影響を受けるべきではない他のユーザのサービスレベルアグリーメント(SLA)を保証するのに十分なリソース使用量を改善するのに十分な影響を有していない。
【0017】
開示される技術は、典型的には組織のユーザグループ内のユーザからの過剰なAPIイベントに起因して、SaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避するという技術的問題を解決する。本出願人によって開示される手法は、ユーザグループからの、及びユーザグループ内の個々のユーザからSaaSベンダーへの要求についてのAPIイベントレートを監視し、制限を超えるAPIイベントをサブミットし、ユーザグループのAPIイベントレートに対するパワーユーザの影響を低減するためのアクションを取るものとしてパワーユーザを認識する。ユーザがパワーユーザとして認識されると、情報はスケジューラにフィードバックされ、スケジューラは、パワーユーザがオペレーションを実行するレートに基づいて、ユーザが意図したオペレーションを継続することを許可しないアクションを取ることができる。一例では、アクションは、特定のユーザの通知ワークロードを抑制し、リソースが他のユーザの通知処理のために有用に利用されることを確実にすることである。この手法は、パワーユーザが識別され、その使用がユーザごとに利用可能なAPI割当量に基づくSLA保証に絞られた後、他のユーザに対するSLA保証を維持することができるため、システムスループット及び顧客とも称される組織に利益をもたらす。構成可能なアクションは、更なる処理からユーザを隔離するポリシーとして管理者によってセットアップすることが可能であり、アラートのためのポリシーがセットアップされた場合に管理者にアラートすることができる。一部の実施形態では、別の構成可能なポリシーアクションは、組織内の他のユーザによって必要とされるリソースを保護するために、それらの通知を処理するための別個のキューをパワーユーザのために作成することであり得る。
【0018】
次に、組織のユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避するための例示的なシステムについて説明する。
【0019】
システム
図1は、組織に代わってSaaS APIへの準リアルタイムアクセスを改善するためのシステム100のアーキテクチャレベルの概略図を示している。システム100は、ネットワークセキュリティシステム155、管理クライアント112、クラウドサービス118、クライアントデバイス142、及びパブリックネットワーク145を含む。ネットワークセキュリティシステム155は、顧客データプライバシー保護156と、アクティブアナライザ165と、内部検査エンジン175と、モニタ184と、ストレージ186とを含む。ネットワークセキュリティシステム155のモニタ184は、抽出エンジン171と、分類エンジン172と、セキュリティエンジン173と、管理プレーン174と、データプレーン180とを含む。管理クライアント112は、タブレット122及びモバイル132を含み、クラウドサービス118は、クラウドサービスA128~クラウドサービスZ138を含み、クライアントデバイス142は、モバイル152及びコンピュータ162を含む。アクティブアナライザ165は、機密コンテンツがネットワーク145を横断するときに、モニタ184を使用して機密コンテンツに対してリアルタイムでポリシーを施行する。ストレージ186は、コンテンツポリシー187、コンテンツプロファイル188、コンテンツ検査ルール189、エンタープライズデータ197、クライアントの情報198、及びユーザ識別情報199を含む。ユーザ識別情報は、トークン、UUIDなどの一意の識別子、公開キー証明書などの形態で、ネットワークセキュリティシステムによってクライアントデバイスに提供されるインジケータを指す。一部の実装形態では、ユーザ識別情報は、特定のユーザ及び特定のデバイスにリンクされ得、したがって、同じ個人が、そのモバイルフォンとコンピュータとで異なるユーザ識別情報を有する場合がある。ユーザ識別情報は、エントリ又はユーザidコーポレート識別情報ディレクトリにリンクすることができるが、それとは異なる。一実装形態では、ネットワークセキュリティによって署名された暗号証明書がユーザ識別情報として使用される。他の実装形態では、ユーザ識別情報は、ユーザに対してのみ一意であり、デバイスにわたって同一であり得る。
【0020】
システム100の説明を続けると、一部の実装形態では、ストレージ186は、マルチテナントデータベースシステム(MTDS)などの多くの方法で実装され得るオンデマンドデータベースサービス(ODDS)を形成するために、1つ以上のテナントからの情報を共通データベースイメージのテーブルに記憶することができる。データベース画像は、1つ以上のデータベースオブジェクトを含むことができる。他の実装形態では、データベースは、リレーショナルデータベース管理システム(RDBMS)、オブジェクト指向データベース管理システム(OODBMS)、分散ファイルシステム(DFS)、ノースキーマデータベース、又は任意の他のデータ記憶システム若しくはコンピューティングデバイスであり得る。
【0021】
エンタープライズデータ197は、知的財産、非公開金融、戦略的計画、顧客リスト、顧客又は従業員に属する個人的に識別可能な情報(PII)、患者健康データ、ソースコード、営業秘密、予約情報、パートナー契約、企業計画、合併及び取得文書、並びに他の秘匿データを含むが、それらに限定されない、組織データを含み得る。特に、「企業データ」という用語はドキュメント、ファイル、フォルダ、ウェブページ、ウェブページの一群、画像、又はその他のテキストベースのドキュメントを指す。
【0022】
システム100の要素の相互接続において、ネットワーク145は、管理クライアントタブレット122及びモバイル132、クライアントデバイスモバイル152及びコンピュータ162、クラウドサービスA128~クラウドサービスZ138、並びにネットワークセキュリティシステム155を通信可能に結合する。通信経路は、パブリック及び/又はプライベートネットワーク上のポイントツーポイントであり得る。通信は、種々のネットワーク、例えば、プライベートネットワーク、VPN、MPLS回路、又はインターネットを経由して起こり得て、適切なアプリケーションプログラムインターフェース(API)及びデータ交換フォーマット、例えば、REST、JSON、XML、SOAP、及び/又はJMSを使用することができる。全ての通信は暗号化することができる。この通信は、概して、EDGE、3G、4G LTE、Wi-Fi、及びWiMAXなどのプロトコルを介して、ローカルエリアネットワーク(LAN)、WAN(広域通信網)、電話ネットワーク(パブリック交換電話網(PSTN))、セッション開始プロトコル(SIP)、無線ネットワーク、ポイントツーポイントネットワーク、スター型ネットワーク、トークンリングネットワーク、ハブネットワーク、モバイルインターネットを含むインターネットなどのネットワークを介する。その上、ユーザネーム/パスワード、OAuth、ケルベロス(Kerberos)、セキュアID(SecureID)、デジタル証明書、などの様々な認証及び認可技術を使って、通信を守ることができる。
【0023】
図1のシステムアーキテクチャの説明を更に続けると、ネットワークセキュリティシステム155は、互いに通信するように結合された1つ以上のコンピュータ及びコンピュータシステムを含むことができるモニタ184及びストレージ186を含む。それらはまた、1つ以上の仮想コンピューティング及び/又はストレージリソースであり得る。例えば、モニタ184は、1つ以上のAmazon EC2インスタンスとすることができ、ストレージ186は、Amazon S3(商標)ストレージとすることができる。直接物理コンピュータ又は従来の仮想マシン上でネットワークセキュリティシステム155を実装するのではなく、Salesforce製のRackspace、Heroku、又はForce.comなどの他のサービスとしてのコンピューティングプラットフォームを使用することができる。その上、セキュリティ機能を実装するために、1つ以上のエンジンを使用することができ、1つ以上のポイントオブプレゼンス(POP)を確立することができる。エンジンは、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、又は任意の他のデータ処理システム若しくはコンピューティングデバイスを含む種々のタイプのものであり得る。エンジンは、異なるネットワーク接続を介してデータベースに通信可能に結合することができる。例えば、抽出エンジン171は、ネットワーク145(例えば、インターネット)を介して結合することができ、分類エンジン172は、直接ネットワークリンクを介して結合することができ、セキュリティエンジン173は、更に異なるネットワーク接続によって結合することができる。開示される技術に関して、データプレーン180のPOPは、クライアントの構内でホストされるか、又はクライアントによって制御されるバーチャルプライベートネットワーク内に位置する。
【0024】
図1の説明を続けると、システム100は、管理プレーン174及びデータプレーン180を介して種々の機能にアクセスする顧客データプライバシー保護156を有するネットワークセキュリティシステム155を含む。一実装形態によれば、データプレーン180は、抽出エンジン171、分類エンジン172、及びセキュリティエンジン173を含む。制御プレーンなどの他の機能も提供することができる。これらの機能は、クラウドサービス118とクライアントデバイス142との間のセキュアなインターフェースを集合的に提供する。ネットワークセキュリティシステム155を説明するために「ネットワークセキュリティシステム」という用語を使用するが、より一般的には、システムは、アプリケーションの可視性及び制御機能並びにセキュリティを提供する。一例では、3万5000のクラウドアプリケーションが、クライアントデバイス142によって使用中のサーバと交差するライブラリ内に常駐する。
【0025】
管理クライアント112は、一実装形態によれば、コンテンツポリシー187を定義及び管理するためにネットワークセキュリティシステム155によって提供されるセキュアなウェブ配信インターフェースを有するウェブブラウザを備えたコンピューティングデバイスである。ネットワークセキュリティシステム155はマルチテナントシステムであり、したがって、一部の実装形態によれば、管理クライアントのユーザは、その組織に関連付けられたコンテンツポリシー187のみを変更することができる。一部の実装形態では、ポリシーをプログラム的に定義及び/又は更新するためのAPIが提供され得る。かかる実装形態では、管理クライアント112は、1つ以上のサーバ、例えば、Microsoft Active Directoryなどのコーポレート識別情報ディレクトリ、Google Driveファイルストレージ及び同期サービス、又は更新をプッシュし、かつ/若しくはコンテンツポリシー187に対する更新のプル要求に応答するSlackビジネス通信プラットフォームを含み得る。両方のシステムを共存させることもでき、例えば、いくつかの企業ではコーポレート識別情報ディレクトリを使用して企業内のユーザの識別を自動化する一方で、ユーザのニーズに合わせてポリシーを調整するためにウェブインターフェースを使用する場合がある。管理クライアントには役割が割り当てられ、ネットワークセキュリティシステム155データへのアクセスは、例えば読み取り専用/読み取り書き込みなどの役割に基づいて制御される。
【0026】
制御プレーンは、管理プレーン174及びデータプレーン180とともに、又はその代わりに使用されてもよい。これらのグループ間の機能の特定の分割は、実装形態上の選択である。同様に、機能は、ローカル性、性能、及び/又はセキュリティを改善するために、いくつかのポイントオブプレゼンス(POP)にわたって高度に分散され得る。開示される技術の一実施形態では、データプレーンは、構内又はバーチャルプライベートネットワーク上にあり、ネットワークセキュリティシステムの管理プレーンは、クラウドサービス内に、又はコーポレートネットワークとともに位置する。別のセキュアなネットワーク実装形態では、POPは別様に分散され得る。
【0027】
システム100は、特定のブロックを参照して本明細書で説明されるが、ブロックは、説明の便宜のために定義され、構成部品の特定の物理的配置を必要とすることを意図するものではないことを理解されたい。更に、ブロックは、物理的に別個のコンポーネントに対応する必要はない。物理的に別個のコンポーネントが使用される限りにおいて、コンポーネント間の接続は、必要に応じて有線及び/又は無線とすることができる。異なる要素又はコンポーネントは、単一のソフトウェアモジュールに組み合わせることができ、複数のソフトウェアモジュールは、同じハードウェア上で実行することができる。
【0028】
更に、この技術は、互いに協働し通信する2つ以上の別個の異なるコンピュータ実装システムを使用して実装することができる。この技術は、プロセス、方法、装置、システム、デバイス、コンピュータ可読命令若しくはコンピュータプログラムコードを記憶するコンピュータ可読記憶媒体などのコンピュータ可読媒体として、又はコンピュータ可読プログラムコードがその中に具現化されたコンピュータ使用可能媒体を備えるコンピュータプログラム製品としてなど、多数の方法で実装され得る。開示される技術は、Oracle(商標)互換データベース実装、IBM DB2 Enterprise Server(商標)互換リレーショナルデータベース実装、MySQL(登録商標)若しくはPostgreSQL(商標)互換リレーショナルデータベース実装、若しくはMicrosoft SQL Server(商標)互換リレーショナルデータベース実装、又はVampire(商標)互換非リレーショナルデータベース実装、Apache Cassandra(商標)互換非リレーショナルデータベース実装、BigTable(商標)互換非リレーショナルデータベース実装、又はHBase(商標)若しくはDynamoDB(商標)互換非リレーショナルデータベース実装といったNoSQL非リレーショナルデータベース実装のようなデータベースシステム又はリレーショナルデータベース実装を含む、任意のコンピュータ実装システムの文脈で実装することができる。更に、開示される技術は、MapReduce(商標)、バルク同期プログラミング、MPIプリミティブなどの異なるプログラミングモデル、又はAmazon Elasticsearch Service(商標)、Amazon Kinesis(商標)を含むAmazon Web Services(AWS)(商標)、Apache Storm(商標)、Apache Spark(商標)、Apache Kafka(商標)、Apache Flink(商標)、Truviso(商標)、IBM Info-Sphere(商標)、Borealis(商標)及びYahoo!S4(商標)といった異なるスケーラブルバッチ及びストリーミング管理システムを使用して実装することができる。
【0029】
ネットワークセキュリティシステム155は、何万ものクラウドベースのアプリケーションとのユーザによる対話を監視し、生のイベントデータからメタデータを生成し、クラウドアプリケーショントランザクションから収集された情報がシステムを通過する。ネットワークセキュリティシステム155内の顧客データプライバシー保護156は、クライアントデバイス142からライブネットワークトラフィックを受け入れ、どのユーザがどのクラウドアプリを利用しているかを識別するメタデータを含め、進行中にイベントメタデータを生成して、ログイン、ファイルアップロード、及びログアウトなどのイベントを表す。クラウドアプリ対話に対応するライブネットワークトラフィックは、どのアプリが使用中であるか、どのIPアドレスからログエントリが到着するかを含むユーザ情報を含むイベントの作成を刺激する。クラウドサービス検出及びコンテンツベースの機能又はアクティビティ識別は、サービスに対して行われる呼び出しを含むサービストランザクションをリアルタイムで深く検査することによって、組織のネットワークとインターフェースするクラウドサービスを発見するアルゴリズムベースのトラフィック分析を使用する。開示される技術は、コネクタ又は標準化された統合を使用して、クライアントデバイス142とクラウドサービス118との間のトランザクションを解釈する。トランザクションは、実施されているアクティビティ及びその関連するパラメータを識別するために分解される。トランザクションは、JSONファイルとして表され、これは、ユーザがクラウドサービスにおいてどのようなアクションを行っているかを、それが起こっているときにモニタ184が解釈することを可能にする構造及びフォーマットを含む。
【0030】
一部の実装形態では、収集されたメタデータは、処理及び/又は正規化される。一部の例では、メタデータは、クラウドサービス118によって提供される構造化データ及び機能ターゲット特定のデータ構造を含む。フリーテキストなどの非構造化データもまた、クラウドサービス118によって提供され、クラウドサービス118をターゲットにすることができる。内部検査エンジン175は、構造化データと非構造化データの両方を集約することができる。例えば、組み立てられたメタデータは、JSON(JavaScript Option Notation)、BSON(バイナリJSON)、XML、Protobuf、Avro、又はThriftオブジェクトのような半構造化データフォーマットで記憶され、それらは、ストリングフィールド(又は列)と、数、文字列、配列、オブジェクトなどのような潜在的に異なるタイプの対応する値とからなる。他の実装形態では、JSONオブジェクトはネストすることができ、フィールドは多値、例えば、配列、ネストされた配列などであり得る。これらのJSONオブジェクトは、Apache Cassandra(商標)158、Google製BigTable(商標)、HBase(商標)、Voldemort(商標)、CouchDB(商標)、MongoDB(商標)、Redis(商標)、Riak(商標)、Neo4j(商標)などの、SQLのデータベースと同等のキースペースを使用して解析済のJSONオブジェクトを記憶するスキーマレス又はNoSQLキーバリューメタデータストア148内に記憶される。各キースペースは、テーブルに似た、複数行と、複数列のセットで構成される列ファミリーに分割される。
【0031】
一実装形態では、内部検査エンジン175は、着信メタデータを分析し、受信されたデータ内のキーワード、イベント、ユーザID、位置、人口統計、ファイルタイプ、タイムスタンプなどを識別するメタデータパーサ(わかりやすくするため省略)を含む。構文解析は、テキストのストリームをキーワード、又は「目標設定可能パラメータ」と称される他の意味のある要素に分解し、分析するプロセスである。一実装形態では、ターゲットパラメータのリストが、例えば、マッチングエンジン(図示せず)による構文解析又はテキストマイニングなどの更なる処理のために入力される。構文解析は、利用可能なメタデータから意味を抽出する。一実装形態では、トークン化は、メタデータのストリーム内の粒状要素(例えば、トークン)を識別するための構文解析の第1のステップとして動作するが、構文解析は次いで、トークンが見つかったコンテキストを使用して、参照されている情報の意味及び/又は種類を決定することに進む。内部検査エンジン175によって分析されたメタデータは同種ではない(例えば、多くの異なるフォーマットの多くの異なるソースが存在する)ため、特定の実装形態では、クラウドサービスごとに少なくとも1つのメタデータパーサを採用し、場合によっては2つ以上のメタデータパーサを採用する。他の実装形態では、内部検査エンジン175は、モニタ184を使用して、クラウドサービスを検査し、コンテンツメタデータをアセンブルする。
【0032】
図2は、内部検査のためのSaaSアプリケーションイベントを表すユーザデータのフローの高レベルブロック図200を例解している。SaaSユーザ202は、ネットワーク145を介してSaaSアプリケーション242を利用する。SaaSユーザ202は、タブレット122及びモバイル132などの管理クライアント112の種々のデバイスのいずれかを操作することができ、モバイル152及びコンピュータ162などのクライアントデバイス142から操作することができる。例示的なサードパーティ管理クラウドSaaSアプリは、Office 365、Boxクラウドコンテンツ管理、Salesforce、Google Workplace及びAmazon Web Services(AWS)を含む。SaaSアプリは、識別されたユーザのサービスレベルアグリーメント(SLA)及び単位時間当たりにユーザに代わって行われるAPI呼び出しの数に基づいて、又は組織のSLA及び組織内のユーザのグループによって行われるAPI呼び出しの数に基づいて、API呼び出しに対してレート制限を賦課することができる。SaaSアプリケーション242は、イベントを表す通知をプッシュする。サンプルイベントの通知メタデータは、図5A及び図5B、並びに図6A図6B、及び図6Cに例解されており、例示的なイベントは、本明細書において後で説明される。
【0033】
ブロック図200の説明を続けると、内部検査エンジン175は、インスタンス又はアカウントのユーザ又は管理者の代わりに、レシーバ235においてSaaSアプリケーション242からユーザイベントの通知を受信する。SaaSアプリケーション242はまた、API呼び出しを介してSaaSアプリ内のオブジェクトに対する更新を生成するボット又はスクリプトと統合される。一実施例では、同期アプリケーション又はダウンロードボットは、組織内の単一のユーザのための一連のオペレーションを生成することができる、1つのシーケンス内での10,000個のオペレーションなど、多くの潜在的なAPI呼び出しイベントを生成する。単一のキューは、単一の高需要ユーザに起因して、低需要ユーザの遅延をもたらす可能性がある。内部検査エンジン175はまた、これらの更新を通知として受信する。内部検査エンジン175は、更新を識別し、それらに作用する。レシーバ235は、ユーザのコンプライアンスチェック及びパワーユーザの識別をトリガするプッシュされた通知を受信し、評価する。レシーバ235は、SaaSアプリケーション242に関連してデータストリームを処理するワーカー275への処理をスケジューリングするスケジューラ255に通知を送信する。ユーザの代わりにサードパーティSaaSベンダーによって実施されるオペレーションの数は、上述したように、SLA契約を管理する1つの態様として、単位時間当たりにユーザに許可されるAPI呼び出しの数に関連する。開示される技術は、処理され得る数よりも多くの通知を生成するユーザを識別する。圧倒的な数の通知は、ライン先頭を詰まらせ、他のユーザの通知の処理を遅延させることになるため、これは、ワーカーが単位時間当たりにユーザのために実行できるオペレーションの数についての情報なしに、ワーカー275におけるオペレーションを作成し、ワークをスケジューリングすることに起因して発生する問題を軽減する。
【0034】
図3は、ユーザのSLA契約に従って、単位時間当たりに処理され得るよりも多くの通知を生成するパワーユーザを識別するためのブロック図300を例解している。ネットワークセキュリティシステム155は、パワーユーザ識別器352を使用して、通知メタデータ内のログイン及びIDを使用してパワーユーザを一意に識別し、ユーザグループから、集合的に、及びユーザグループ内の個々のユーザから、SaaSベンダーへの要求についてのAPIイベントレートを監視する。ある場合には、SaaSアプリケーション242は、ユーザグループ内のユーザからのAPIイベントについての通知をパワーユーザ識別器352及びスケジューラ255に送信する。パワーユーザ識別器352は、パワーユーザを、制限を超えてAPIイベントをサブミットしているものとして認識し、識別されたユーザが、組織のSLAで指定された単位時間当たりの割り当てられたオペレーションの数よりも多く消費しているときを判定することができる。パワーユーザ識別器352は、パワーユーザの識別情報をスケジューラ255に供給し、スケジューラは、フィードバックに基づいてアクションを取ることができ、識別されたパワーユーザのためのアラート372を生成する。アクションのオプションについては、本明細書で後述する。スケジューラ255は、ワーカー275による通知処理をスケジューリングするときに、パワーユーザ識別器352からの情報と、ユーザのデータ使用量を追跡した結果とを考慮に入れる。別の場合には、1つ以上のアクティブアナライザ165は、一次キュー及び補助キュー377を介してSaaSベンダーにサブミットされているAPIイベント要求のカウントに基づいて、APIイベントのレート又は時間内の量を監視する。パワーユーザ識別器352は、各ユーザのデータ使用量を追跡するためのスライディングウィンドウを維持し、定期的な時間増分で、各ユーザのデータ使用量値をデータ使用量ストア342内のテーブル内のエントリとして記憶する。
【0035】
図4は、APIイベントレートに対するユーザの影響を追跡するための、複数のユーザについての時間ウィンドウにおけるAPIイベントカウントの例示的なテーブルを示している。このテーブルは、ユーザのAPIイベントレートを経時的に追跡するための、4人のユーザに対する7つの連続した時間ウィンドウを示している。SaaSアプリケーション242がパワーユーザ識別器352に通知を送信するたびに、APIイベントのレート及び量がデータ使用量ストア342内で更新される。パワーユーザを認識するために、図4に示されるテーブルの別個の行に表される各ユーザについて、前のn個のウィンドウの値と現在のウィンドウに追加された値との移動和が計算される。合計が構成可能な閾値よりも大きい場合、ユーザは、次の指定された時間量xの間、パワーユーザとして識別される。期間xの終わりに、ユーザは、パワーユーザから通常ユーザにリセットされ得る。ユーザは、構成された数の連続した時間ウィンドウの値の合計、すなわち、それらのデータ使用量が、関心のあるスライドウィンドウにわたって閾値よりも大きくなるたびに、パワーユーザとしてマークされ得る。図4では、4人のユーザu1、u2、u3、及びu4が、イベントをアクティブに生成している。4人のユーザの各々について、7つの時間ウィンドウw1、w2、w3、w4、w5、w6、及びw7の各々において受信された通知の数が、表の行に列挙されている。この例では、構成されたポリシーは、パワーユーザが、直近の5つの連続するスロットにおいて100の閾値よりも多くを使用するユーザとして定義されることを指定する。制限の値は、ユーザグループに対するスループットペナルティについてSaaSが賦課するトリガを超えるか又はそれに近付く値に基づいて、特定の値に構成される。この例では、パワーユーザ識別器352は、5つの連続する時間ウィンドウ455(影付き)における通知の数のu3の合計が4+20+40+5+40=109であるため、アラート372を生成する。ユーザu3は、この例では100に設定された制限を超えるAPIイベントをサブミットすることにより、パワーユーザに指定される。ユーザがパワーユーザとして認識されると、パワーユーザからSaaSへのAPIイベントサブミッションの送信は、SaaSによるスループットペナルティのトリガを回避するように割り振られる。場合によっては、パワーユーザは、APIイベントを生成するようにプログラムされたボットである。
【0036】
この開示された方法の全体的な効果は、パワーユーザ以外のユーザグループ内のユーザのレイテンシを減少させ、パワーユーザのレイテンシを増加させることである。一実施形態では、パワーユーザを記述するポリシーは、人間の管理者によって組織に対して構成可能であり、組織に対するSLA契約の要件を表す。
【0037】
内部検査エンジン175は、SaaSアプリケーション242にファイル作成、ファイル編集、及びファイル共有を含むAPIイベント通知を生成させるオペレーションの範囲を監視する。ファイルは、ユーザを追加し、リンクを作成し、ユーザを削除し、リンクを削除し、ユーザが編集し、閲覧し、共有し、又は共有解除する許可を与えるオプションとともに、共同作業の使用を介して共有することができる。追加のオペレーションには、コピー、移動、ダウンロード、並びにロック作成及びロック削除を介するロックが含まれる。更なるオペレーションには、削除、削除解除、オープン、プレビュー、及びメタデータ更新が含まれ、これらは時折使用される。典型的には、1つのオペレーションに対して1つのAPI呼び出しが使用され、1つのAPI呼び出しは、単一のAPIイベントに対応する。
【0038】
図5A及び図5Bは、ネットワークイベントのためにサードパーティSaaSベンダーから受信された例示的なプッシュされたAPI通知を、JSONスタイル表現の通知メタデータとともに列挙する。ユーザは、ログイン534及びID544を使用して、イベントタイプ「アイテムアップロード」514を要求しているとして一意に識別可能である。図5A及び図5Bに示されるプッシュ通知メタデータファイルは、メタデータファイル内に捕捉され得るイベント関連フィールドを網羅するものではなく、むしろ、キーフィールドを強調する。パワーユーザ識別器352は、ログイン534及びid544によって識別されたユーザのためのスライドテーブルエントリを計算するときに、「作成された時間」548を利用する。
【0039】
図6A図6B、及び図6Cは、ネットワークAPIイベント「アイテム作成」604の例示的なメタデータをJSONスタイル表現で列挙している。ユーザの一意の識別子は、ログイン674及びID684によって捕捉され、パワーユーザ識別器352は、パワーユーザを識別するための単位時間当たりの通知のカウントを計算するために、664で作成された時間コンテンツを利用する。
【0040】
アクションは、APIイベントレートが、ユーザグループに対するスループットペナルティのSaaSが賦課するトリガを超えるか、又はそれに近付くことに応答して構成することができる。ユーザは、管理者がそのオプションを選択するためのポリシーを設定した場合、更なる処理から隔離され得る。1つのアクションのオプションは、特定のユーザの通知ワークロードを遅くし、リソースが他のユーザの通知処理のために有用に利用されることを確実にすることである。すなわち、パワーユーザからSaaSへのAPIイベントサブミッションの送信の割り振りは、パワーユーザがSaaSへのAPIイベントサブミッションを行うことを遮断することによって行うことができる。識別されたパワーユーザの遮断は、所定の時間の間、又はユーザグループによる全体的なサブミッションが、SaaSが賦課するトリガを超えなくなるまでとすることができる。別のアクションのオプションは、パワーユーザがSaaSへのAPIイベントサブミッションを行うのを一時的に停止することによって、割り振りを行うことができる。一時的に停止することは、所定の時間の間、又はユーザグループによる全体的なサブミッションが、SaaSが賦課するトリガを超えなくなるまでとすることができる。場合によっては、ユーザによるアクションがポリシーに違反することがある。この場合、構成されたポリシーは、人間の管理者が異なるアクションが保証されると判断するまで、ユーザを一時停止させることができる。一例では、ユーザは、ボックスへのリンクなどの共有リンクをファイルに追加することができる。共有リンクを有する誰もがファイルにアクセスすることができ、これは、ファイルがパブリックであると見なされることを意味する。次に、共有リンクをファイルに追加する例を挙げる。
curl --location --request PUT ‘https://api.box.com/2.0/files/12345?fields=shared_link’ \
--header ‘Content-Type: application/json’ \
--header ‘Authorization:Bearer {{access_token_redacted}}’ \
--data-raw ’{
“shared_link”: {
“access”: “open”,
“password”: “very-strong-password”,
“vanity_name”: “my-shared-link”,
“unshared_at”:“2021-12-12T10:53:43-8:00”,
“permissions”: {
“can_download”: true


}’
【0041】
セキュリティポリシー施行又は管理者によって開始されたAPIイベントは、リンクをヌルに正常に設定することができ、その結果、元のリンクは無効になり、ファイルは公にアクセス可能ではなくなり、それによって、エンタープライズポリシーを施行する。通常、このタイプのポリシーは、公に投稿されることが予期されない機密コンテンツを有する任意のファイルに一致するように設定される。ファイル上の共有リンクを除去するためのコードが次にリストされる。
curl --location --request PUT ‘https://api.box.com/2.0/files/12345?fields=shared_link’ \
--header ‘Content-Type: application/json’ \
--header ‘Authorization:Bearer {{access_token_redacted}}’ \
--data-raw ’{
“shared_link”: null
}‘
【0042】
別のアクションのオプションは、管理者にアラートし、人間のユーザに通知を送信して、遮断又は一時的な停止を追跡することであり得る。セキュリティポリシーは、ポリシーによって異常として定義された何らかのアクションをユーザが取っている可能性があることを識別するために、x時間量当たりのユーザに関する通知のレートを監視することを含み得る。例えば、構成されたポリシーによって定義されるように、ユーザが過剰な量のコンテンツをダウンロードしているか?ユーザが100K個のファイルを有し、それらのダウンロードを開始する場合、最初の100回の通知の後、数秒又は1分で、管理者は、何かが間違っていることをトリガするアラートを受信し得、したがって、ユーザを停止させる必要がある。この場合、人間の管理者は、ユーザを隔離又はブロックすること、及び/又はアクションを継続する許可のために更なる証明書を要求することの複数のオプションのうちの1つを取ることができる。
【0043】
1つの例示的なアクションは
図7Aは、例示的なアラート372と、ユーザChandraが5分以内に1028個のファイルをダウンロードしたことを管理者に知らせるメッセージ724とを示している。図7Bは、開示される技術の一実施形態において、パワーユーザが構成されたポリシーに違反したときに管理者が受信する例示的な電子メールを示している。この例では、パワーユーザは違反のために無効にされている774。
【0044】
図8は、5分の期間にわたって受信されたAPIイベントを示す、10人のユーザのうちの9人についての低減されたレイテンシを示すグラフを例解している。グラフは、パワーユーザから開示される方法を介して割り振られたSaaSへのAPIイベントサブミッションの送信の割り振りの効果を示している。1500個の通知に近い、受信されたAPIイベント通知の総数816は、グラフの最上部に最も近い曲線によって示される。グラフは、約500イベントとしての違反ユーザ(パワーユーザ)からの通知の数866と、9人の他のユーザからの通知846との曲線を示している。2つのシナリオが残りの曲線によって示されている。1つのシナリオでは、ユーザは隔離されていない。すなわち、SaaSは、全てのアクティブユーザのAPIイベントを、それらの複合閾値に達した後に制限(抑制)し、ユーザ隔離なしで処理された通知の総数856は、パワーユーザだけの通知の数の曲線866よりもわずかに高い曲線である。第2のシナリオでは、ユーザが監視され、パワーユーザは、制限を超えて、時間当たりにより大量のAPIイベントをサブミットしているとして認識される。パワーユーザのAPIイベントサブミッションの送信は、ユーザグループに対するスループットペナルティのトリガを回避するために割り振られる。この第2のシナリオでは、パワーユーザのユーザ隔離ありで処理される通知の数836は、はるかに多く、約1000個のAPIイベント通知である。すなわち、パワーユーザ以外のユーザグループのユーザに対するレイテンシが小さくなり、パワーユーザに対するレイテンシが大きくなる。APIイベント通知を処理するための総需要が、SaaSによってトリガされる制限を超えるときにのみ、パワーユーザのためのAPIイベントレートを減速することが必要になる。
【0045】
異なるアクションでは、パワーユーザが認識されると、アクティブアナライザ165は、組織のユーザグループの残りのユーザのリソースを保護するために、パワーユーザのイベント通知を処理するための別個のキューをセットアップすることができる。開示されるプロセスは、その実施形態において、SaaSベンダーにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて、APIイベントのレート又は時間内の量を監視することを含む。割り振りは、パワーユーザによるSaaSベンダーへのサブミッションのレートを遅くする、プロキシによって管理される補助APIイベントキューにパワーユーザを割り当てることによって行うことができる。補助APIイベントキュー割り当ては、パワーユーザによるAPIイベントサブミッションの更新されたレート又は量が復元限度を下回ったとき、又はユーザグループによるAPIイベントサブミッションの更新されたレート又は量が、全体として、SaaSが賦課するトリガを超えなくなったときに、解除することができる。別の場合には、補助APIイベントキューが空であるか、又は所定の時間の間キュー深さ制限を下回り続けたときに、補助APIイベントキューへの割り当てを解除することができる。別のケースでは、割り振りは、プロキシが、パワーユーザのためのサブミッションの処理をユーザグループ内の他のユーザのためのサブミッションから分離するオーバーフローAPIイベントチャネルにパワーユーザを割り当て、パワーユーザによるAPIイベントサブミッションの更新されたレート又は量が復元限度を下回ったときにオーバーフローAPIイベントチャネル割り当てを解除することによるものであり得る。他のケースでは、ユーザグループによるAPIイベントサブミッションの更新レート又は量が、全体として、SaaSが賦課するトリガを超えることがなくなったとき、又は補助APIイベントキューが空になったとき、若しくは所定の時間の間、キューの深さ制限を下回り続けたときに、オーバーフローAPIイベントチャネルの割り当てを解除するように構成できる。場合によっては、SaaSは、オーバーフローAPIイベントチャネルの使用を別個に測定することができる。
【0046】
次に、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避するためのワークフローについて説明する。
【0047】
ワークフロー
図9は、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避する代表的な方法を示している。フローチャート900は、コンピュータ又は他のデータ処理システムを用いて、例えば、情報を受信又は取得し、情報を処理し、結果を記憶し、結果を送信するように構成された1つ以上のプロセッサによって、少なくとも部分的に実装され得る。他の実装形態は、図9に例解されるものとは異なる順序で、かつ/又は異なる、より少ない、若しくは追加のアクションで、アクションを実施し得る。一部の実装形態では、複数のアクションを組み合わせることができる。便宜上、このフローチャートは、方法を実行するシステムを参照して説明される。システムは、必ずしも方法の一部ではない。
【0048】
開示される技術のこのセクション及び他のセクションで説明される方法は、以下の特徴及び/又は開示される追加の方法に関連して説明される特徴のうちの1つ以上を含むことができる。簡潔にするために、本出願に開示される特徴の組み合わせは、個々に列挙されず、特徴の各基本セットとともに繰り返されない。
【0049】
図9は、ユーザグループからの要求、及びユーザグループ内の個々のユーザからSaaSベンダーへの要求について、APIイベントのレート又は時間内の量を集合的に監視することを含むアクション910から開始する。
【0050】
プロセス900は、アクション920に進み、ユーザグループのAPIイベントのレート又は量が、全体として、ユーザグループに対するスループットペナルティのSaaSが賦課するトリガを超えるか又はそれに近付くとき、パワーユーザを、制限を超えてAPIイベントをサブミットしているとして認識し、ユーザグループのAPIイベントのレート又は量に対するパワーユーザの影響を低減するためのアクションを取る。
【0051】
アクション930は、パワーユーザからSaaSへのAPIイベントサブミッションの送信を割り振り、SaaSによるスループットペナルティのトリガを回避し、それによって、パワーユーザ以外のユーザグループ内のユーザのレイテンシを低減し、パワーユーザのレイテンシを増加させることを含む。
【0052】
このセクションで説明する方法の他の実装形態は、上記で説明した方法のいずれかを実施するためにプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含み得る。このセクションで説明する方法の更に他の実装形態は、メモリと、上記で説明した方法のいずれかを実施するためにメモリに記憶された命令を実行するように動作可能な1つ以上のプロセッサとを含むシステムを含み得る。
【0053】
コンピュータシステム
図10は、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避するために使用され得るコンピュータシステム1000の簡略化されたブロック図である。コンピュータシステム1000は、バスサブシステム1055を介していくつかの周辺デバイスと通信する少なくとも1つの中央処理装置(CPU)1072と、本明細書で説明されるネットワークセキュリティサービスを提供するためのネットワークセキュリティシステム155とを含む。これらの周辺デバイスは、例えば、メモリデバイス及びファイルストレージサブシステム1036を含むストレージサブシステム1010と、ユーザインターフェース入力デバイス1038と、ユーザインターフェース出力デバイス1076と、ネットワークインターフェースサブシステム1074とを含むことができる。入力及び出力デバイスは、コンピュータシステム1000とのユーザ対話を可能にする。ネットワークインターフェースサブシステム1074は、他のコンピュータシステム内の対応するインターフェースデバイスへのインターフェースを含む、外部ネットワークへのインターフェースを提供する。
【0054】
一実装形態では、図1のネットワークセキュリティシステム155は、ストレージサブシステム1010及びユーザインターフェース入力デバイス1038に通信可能にリンクされる。
【0055】
ユーザインターフェース入力デバイス1038は、キーボード、マウス、トラックボール、タッチパッド、又はグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム及びマイクロフォンなどのオーディオ入力デバイス、並びに他のタイプの入力デバイスを含むことができる。概して、「入力デバイス」という用語の使用は、コンピュータシステム1000に情報を入力するための全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0056】
ユーザインターフェース出力デバイス1076は、ディスプレイサブシステム、プリンタ、ファックス機、又は音声出力デバイスなどの非視覚的ディスプレイを含むことができる。ディスプレイサブシステムは、LEDディスプレイ、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、又は可視画像を作成するための何らかの他の機構を含むことができる。ディスプレイサブシステムは、音声出力デバイスなどの非視覚的ディスプレイを提供することもできる。概して、「出力デバイス」という用語の使用は、コンピュータシステム1000からユーザ又は別のマシン若しくはコンピュータシステムに情報を出力するための全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0057】
ストレージサブシステム1010は、本明細書に記載のモジュール及び方法の一部又は全部の機能を提供するプログラミング及びデータ構造を記憶する。サブシステム1078は、グラフィックス処理ユニット(GPU)又はフィールドプログラマブルゲートアレイ(FPGA)であり得る。
【0058】
ストレージサブシステム1010内で使用されるメモリサブシステム1022は、プログラム実行中に命令及びデータを記憶するためのメインランダムアクセスメモリ(RAM)1032と、固定命令が記憶される読み取り専用メモリ(ROM)1034とを含む、いくつかのメモリを含むことができる。ファイルストレージサブシステム1036は、プログラム及びデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、又はリムーバブルメディアカートリッジを含むことができる。特定の実装形態の機能を実装するモジュールは、ファイルストレージサブシステム1036によって、ストレージサブシステム1010内に、又はプロセッサによってアクセス可能な他のマシン内に記憶され得る。
【0059】
バスサブシステム1055は、コンピュータシステム1000の種々のコンポーネント及びサブシステムに、意図されるように互いに通信させるための機構を提供する。バスサブシステム1055は、単一のバスとして概略的に示されているが、バスサブシステムの代替の実装形態は、複数のバスを使用することができる。
【0060】
コンピュータシステム1000自体は、パーソナルコンピュータ、携帯型コンピュータ、ワークステーション、コンピュータターミナル、ネットワークコンピュータ、テレビ、メインフレーム、サーバファーム、疎にネットワーク化されたコンピュータの広く分散されたセット、又は任意の他のデータ処理システム若しくはユーザデバイスを含む、種々のタイプのものであり得る。コンピュータ及びネットワークの絶えず変化する性質に起因して、図10に示されるコンピュータシステム1000の説明は、本発明の好ましい実施形態を例示するための特定の実施例としてのみ意図される。図10に示すコンピュータシステムよりも多い又は少ないコンポーネントを有するコンピュータシステム1000の多くの他の構成が可能である。
【0061】
特定の実装形態
ユーザグループ内のユーザからの過剰なAPIイベントに起因して、SaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避するための一部の特定の実装形態及び特徴が、以下の議論で説明される。
【0062】
1つの開示された実装形態では、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダーによってユーザグループに賦課されるスループットペナルティを回避する開示された方法は、ユーザグループからの要求、及びユーザグループ内の個々のユーザからSaaSベンダーへの要求について、APIイベントのレート又は時間内の量を集合的に監視することを含む。この方法はAPIイベントを制限を超えてサブミットするパワーユーザを認識し、ユーザグループのAPIイベントのレート又は量に対するパワーユーザの影響を低減するアクションを取ることを含む。アクションを取ることは、ユーザグループについてのAPIイベントのレート又は量が、全体として、ユーザグループに対するスループットペナルティのSaaSが賦課するトリガを超えるか又はそれに近付くときの状況に限定され得る。開示される方法は、パワーユーザからSaaSへのAPIイベントサブミッションの送信を割り振り、SaaSによるスループットペナルティのトリガを回避し、それによって、パワーユーザ以外のユーザグループ内のユーザのレイテンシを低減し、パワーユーザのレイテンシを増加させることを更に含む。
【0063】
開示される技術のこのセクション及び他のセクションで説明される方法は、以下の特徴及び/又は開示される追加の方法に関連して説明される特徴のうちの1つ以上を含むことができる。簡潔にするために、本出願に開示される特徴の組み合わせは、個々に列挙されず、特徴の各基本セットとともに繰り返されない。読者は、この方法で識別された特徴を、実装形態として識別された基本特徴のセットとどのように容易に組み合わせることができるかを理解するであろう。
【0064】
一実装形態では、APIイベントのレート又は量を監視する開示された方法は、ユーザグループに関するAPIイベントのSaaSベンダーからの通知に基づいて、コレクタへのSaaS実装通知を用いて処理され得る。代替的な実装形態では、APIイベントのレート又は量の監視は、SaaSベンダーにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて処理することができ、申込者はコレクタへの通知を行う。
【0065】
割り振りは、パワーユーザがSaaSへのAPIイベントサブミッションを行うことを遮断することを含み得る。これは、APIイベントを生成するようにプログラムされたボットに適用することができる。これは、遮断を追跡するために人間のユーザに通知を送信することを含み得る。
【0066】
割り振りは、パワーユーザがSaaSへのAPIイベントサブミッションを行うことを一時的に停止することを含み得る。これは、APIイベントを生成するようにプログラムされたボットに適用することができる。それは、所定の時間の間、又はユーザグループによる全体的なサブミッションが、SaaSが賦課するトリガを超えなくなるまでとすることができる。それは、一時的な停止を追跡するために人間のユーザに通知を送信することを含み得る。
【0067】
割り振りは、プロキシによって管理される補助APIイベントキューにパワーユーザを割り当てることを含むことができ、この補助APIイベントキューは、パワーユーザに代わってサブミッションのレートを遅くし、場合によっては抑制する。補助APIイベントキューへの割り当ては、パワーユーザによるAPIイベントサブミッションの更新されたレート又は量が復元限度を下回ったときに解除することができる。補助APIイベントキューへの割り当ては、ユーザグループによるAPIイベントサブミッションの更新されたレート又は量が、全体として、SaaSが賦課するトリガを超えなくなったときに、解除することができる。補助APIイベントキューへの割り当ては、補助APIイベントキューが空であるか、又は所定の時間の間キュー深さ制限を下回り続けたときに、解除することができる。SaaSは、一部の実装形態では、オーバーフローAPIイベントチャネルの使用を別個に測定することができる。
【0068】
割り振りは、パワーユーザのためのサブミッションのミーティングをユーザグループ内の他のユーザのためのサブミッションから分離する、プロキシによって管理されるオーバーフローAPIイベントチャネルにパワーユーザを割り当てることを含み得る。オーバーフローAPIイベントチャネルの使用は、SaaSによって別個に課金され得る。オーバーフローAPIイベントチャネルへの割り当ては、パワーユーザによるAPIイベントサブミッションの更新されたレート又は量が復元限度を下回ったときに解除され得る。オーバーフローAPIイベントチャネルへの割り当ては、ユーザグループによるAPIイベントサブミッションの更新されたレート又は量が、全体的に、SaaSが賦課するトリガを超えなくなったときに解除され得る。一部の実装形態では、SaaSは、オーバーフローAPIイベントチャネルの使用を別個に測定する。
【0069】
このセクションで説明される方法の他の実装形態は、プロセッサ上で実行されると、プロセッサに上記で説明された方法のいずれかを実施させる、メモリにロードされたプログラム命令を記憶する有形の非一時的コンピュータ可読記憶媒体を含み得る。このセクションで説明する方法の更に別の実装形態は、メモリと、上記で説明した方法のいずれかを実施するためにメモリに記憶されたコンピュータ命令を実行するように動作可能な1つ以上のプロセッサとを含むデバイスを含み得る。
【0070】
上記で説明又は参照された任意のデータ構造及びコードは、多くの実装形態によれば、コンピュータシステムによって使用するためのコード及び/又はデータを記憶することができる任意のデバイス又は媒体であり得るコンピュータ可読記憶媒体上に記憶される。これには、揮発性メモリ、非揮発性メモリ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(ディジタルバーサタイルディスク又はディジタルビデオディスク)などの磁気及び光記憶デバイス、あるいは現在知られている又は今後開発されるコンピュータ可読媒体を格納することができる他の媒体が含まれるが、これらに限定されるものではない。
【0071】
前述の説明は、開示される技術の作製及び使用を可能にするために提示される。開示される実装形態に対する種々の修正が明らかになり、本明細書で定義される一般原理は、開示される技術の趣旨及び範囲から逸脱することなく、他の実装形態及び適用例に適用され得る。したがって、開示される技術は、示される実装形態に限定されるものではなく、本明細書で開示される原理及び特徴と一致する最も広い範囲を与えられるべきである。開示される技術の範囲は、添付の特許請求の範囲によって定義される。
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図6C
図7A
図7B
図8
図9
図10
【外国語明細書】