(57)【要約】コンピュータシステムのための挙動ベースラインは、（１）コンピュータシステム上のオカレンスを監視し、（２）セキュリティルールまたはヒューリスティックに基づいて、潜在的セキュリティリスクに関連付けられた観察されるオカレンスを決定し、（３）疑わしいオカレンスに基づいて、アクティビティのパターンを識別し、（４）疑わしいアクティビティの観察されるパターンが予期されているか、または予期されていないかをユーザに示すようにプロンプトすることによって、正確かつ効率的に確立され得る。このように確立される挙動ベースラインは、次いで、コンピュータシステム上の予期されたアクティビティのパターンと予期されていないアクティビティのパターンとを区別するために使用されることができる。
2019530083.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装サイバーセキュリティ方法であって、前記方法は、
コンピュータシステム内で観察される複数の第１のオカレンスを示す第１のオカレンスデータを取得することであって、前記第１のオカレンスデータは、それぞれの前記第１のオカレンスの第１のタイプを示す、ことと、
前記第１のオカレンスデータに基づいて、前記コンピュータシステム内のアクティビティの複数の第１のパターンを識別することと、
前記アクティビティの識別された第１のパターンの各々に対して、
前記それぞれのアクティビティのパターンが予期されているかどうかを示すように前記コンピュータシステムのユーザにプロンプトすることと、
前記ユーザにプロンプトすることに応答して、ユーザ入力を受信することと、
前記ユーザ入力に基づいて、前記それぞれのアクティビティのパターンが予期されているかどうかを決定することと、
前記ユーザ入力が、前記それぞれのアクティビティのパターンが予期されていることを示す場合、前記それぞれのアクティビティのパターンを表すデータを挙動ベースラインデータベースに追加することと、
前記コンピュータシステム内で観察される複数の第２のオカレンスを示す第２のオカレンスデータを取得することであって、前記第２のオカレンスデータは、それぞれの前記第２のオカレンスの第２のタイプを示す、ことと、
前記第２のオカレンスデータに基づいて、前記コンピュータシステム内のアクティビティの少なくとも１つの第２のパターンを識別することと、
前記挙動ベースラインデータベースが前記アクティビティの第２のパターンが予期されていることを示すかどうかに少なくとも部分的に基づいて、前記アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することと
を含む、方法。
【請求項２】
前記第１のオカレンスデータは、前記第１のタイプのオカレンスがコンピュータセキュリティに関連すること、および／または、前記第１のタイプのオカレンスのパターンの変化がセキュリティに関連することをセキュリティデータが示すことに基づいて取得され、前記第２のオカレンスデータは、前記第２のタイプのオカレンスがコンピュータセキュリティに関連すること、および／または、前記第２のタイプのオカレンスのパターンの変化がコンピュータセキュリティに関連することをセキュリティデータが示すことに基づいて取得される、請求項１に記載の方法。
【請求項３】
前記第１のオカレンスデータは、１つ以上の疑わしいアクティビティのパターンが１つ以上の前記第１のタイプのオカレンスを含むことをセキュリティデータが示すことに基づいて取得される、請求項１に記載の方法。
【請求項４】
前記第２のオカレンスデータは、１つ以上の疑わしいアクティビティのパターンが１つ以上の前記第２のタイプのオカレンスを含むことをセキュリティデータが示すことに基づいて取得される、請求項１に記載の方法。
【請求項５】
前記アクティビティの第１のパターンを識別することは、（１）特定の１人以上のユーザの組、（２）特定の１つ以上のリソースの組、および／または、（３）特定の１つ以上のデバイスの組を伴う１つ以上のオカレンスの組を識別することを含む、請求項１に記載の方法。
【請求項６】
前記特定の１人以上のユーザの組は、特定のユーザ、複数の規定されたユーザ、または規定されたタイプのユーザを含む、請求項５に記載の方法。
【請求項７】
前記特定の１つ以上のリソースの組は、特定のリソース、複数の規定されたリソース、または規定されたタイプのリソースを含む、請求項５に記載の方法。
【請求項８】
前記特定の１つ以上のデバイスの組は、特定のデバイス、複数の規定されたデバイス、または規定されたタイプのデバイスを含む、請求項５に記載の方法。
【請求項９】
前記１つ以上のオカレンスの組内のオカレンスは、モジュールローディング動作、ファイル動作、レジストリ動作、プロセス間動作、および／またはデバイス間通信動作を含む、請求項５に記載の方法。
【請求項１０】
前記アクティビティの第１のパターンは、アクティビティの時間的パターン、および／または、アクティビティの定量的パターンを含む、請求項５に記載の方法。
【請求項１１】
前記アクティビティの時間的パターンを識別することは、前記識別されたオカレンスの組内の前記オカレンスの時間率を決定することを含む、請求項１０に記載の方法。
【請求項１２】
前記アクティビティの定量的パターンを識別することは、前記識別されたオカレンスの組内の前記オカレンスの数を決定することを含む、請求項１０に記載の方法。
【請求項１３】
前記識別されたオカレンスの組内の前記オカレンスは、規定された期間内に生じる、請求項１２に記載の方法。
【請求項１４】
前記規定された期間は、固定期間またはスライドするウィンドウ期間を含む、請求項１３に記載の方法。
【請求項１５】
前記アクティビティの第２のパターンに関連する前記セキュリティアラートを発行すべきかどうかを決定することは、
前記アクティビティの第２のパターンに関連付けられた前記アクティビティの１つ以上の属性を識別することと、
前記識別された属性を有する予期されたアクティビティのパターンに対して、前記挙動ベースラインデータベースにクエリすることと
を含む、請求項１に記載の方法。
【請求項１６】
前記アクティビティの第２のパターンに関連する前記セキュリティアラートを発行すべきかどうかを決定することは、
前記挙動ベースラインデータベースにクエリすることに応答して、前記識別された属性を有する前記予期されたアクティビティのパターンを示すデータを取得することと、
前記アクティビティの第２のパターンが前記予期されたアクティビティのパターンと一致するかどうかを決定することと
をさらに含む、請求項１５に記載の方法。
【請求項１７】
前記アクティビティの第２のパターンに関連する前記セキュリティアラートを発行すべきかどうかを決定することは、
前記アクティビティの第２のパターンが前記予期されたアクティビティのパターンと一致することの決定に応答して、前記第２のパターンアクティビティに関連する前記セキュリティアラートを発行しないことを決定することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記アクティビティの第２のパターンに関連する前記セキュリティアラートを発行すべきかどうかを決定することは、
前記アクティビティの第２のパターンが前記予期されたアクティビティのパターンと一致しないことの決定に応答して、前記第２のパターンアクティビティに関連する前記セキュリティアラートを発行することを決定することをさらに含む、請求項１６に記載の方法。
【請求項１９】
前記アクティビティの第２のパターンに関連する前記セキュリティアラートを発行すべきかどうかを決定することは、
前記挙動ベースラインデータベースにクエリすることに応答して、前記識別された属性を有する前記予期されたアクティビティのパターンを示すデータを取得できないことと、
前記識別された属性を有する前記予期されたアクティビティのパターンを示すデータがないことに基づいて、前記アクティビティの第２のパターンに関連する前記セキュリティアラートを発行することを決定することと
をさらに含む、請求項１５に記載の方法。
【請求項２０】
アクティビティの特定の第１のパターンに対して、
前記アクティビティの特定の第１のパターンに関連付けられた前記アクティビティの１つ以上の属性を識別することと、
前記１つ以上の属性を有する追加のアクティビティが予期されているかどうかを示すように前記コンピュータシステムのユーザにプロンプトすることと、
前記ユーザにプロンプトすることに応答して、前記１つ以上の属性を有する追加のアクティビティが予期されていることを示す第２のユーザ入力を受信し、前記追加のアクティビティを特徴づけることと、
前記アクティビティの特定の第１のパターンおよび前記追加のアクティビティに基づいて、アクティビティの補正されたパターンを表すデータを生成することと、
前記アクティビティの補正されたパターンを表すデータを前記挙動ベースラインデータベースに追加することと
をさらに含む、請求項１に記載の方法。
【請求項２１】
前記アクティビティの第２のパターンが予期されているかどうかを示すように前記コンピュータシステムのユーザにプロンプトすることと、
前記ユーザにプロンプトすることに応答して、第２のユーザ入力を受信することと、
前記第２のユーザ入力に基づいて、前記アクティビティの第２のパターンが予期されているかどうかを決定することと、
前記第２のユーザ入力が、前記アクティビティの第２のパターンが予期されていることを示す場合、前記アクティビティの第２のパターンを表すデータを挙動ベースラインデータベースに追加することと
をさらに含む、請求項１に記載の方法。
【請求項２２】
サイバーセキュリティシステムであって、前記システムは、データ処理装置を備え、
前記データ処理装置は、
コンピュータシステム内で観察される複数の第１のオカレンスを示す第１のオカレンスデータを取得することであって、前記第１のオカレンスデータは、それぞれの前記第１のオカレンスの第１のタイプを示す、ことと、
前記第１のオカレンスデータに基づいて、前記コンピュータシステム内のアクティビティの複数の第１のパターンを識別することと、
前記アクティビティの識別された第１のパターンの各々に対して、
前記それぞれのアクティビティのパターンが予期されているかどうかを示すように前記コンピュータシステムのユーザにプロンプトすることと、
前記ユーザにプロンプトすることに応答して、ユーザ入力を受信することと、
前記ユーザ入力に基づいて、前記それぞれのアクティビティのパターンが予期されているかどうかを決定することと、
前記ユーザ入力が、前記それぞれのアクティビティのパターンが予期されていることを示す場合、前記それぞれのアクティビティのパターンを表すデータを挙動ベースラインデータベースに追加することと、
前記コンピュータシステム内で観察される複数の第２のオカレンスを示す第２のオカレンスデータを取得することであって、前記第２のオカレンスデータは、それぞれの前記第２のオカレンスの第２のタイプを示す、ことと、
前記第２のオカレンスデータに基づいて、前記コンピュータシステム内のアクティビティの少なくとも１つの第２のパターンを識別することと、
前記挙動ベースラインデータベースが前記アクティビティの第２のパターンが予期されていることを示すかどうかに少なくとも部分的に基づいて、前記アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することと
を含む動作を実施するようにプログラムされている、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の引用）
本願は、米国仮特許出願第６２／３９４，４２０号（２０１６年９月１４日出願、代理人事件番号ＢＩＴ−０１１ＰＲ）に関連し、上記出願は、全体が参照により本明細書に引用される。
【０００２】
（発明の分野）
本開示は、概して、サイバーセキュリティシステムおよび技術に関する。具体的には、いくつかの実施形態は、コンピュータシステム上で予期されたアクティビティと予期されていないアクティビティを区別することによって、サイバーセキュリティシステムおよび技術の性能を向上させることに関する。
【背景技術】
【０００３】
インターネットおよび他のネットワークコンピュータシステムは、公共活動（例えば、政府機関の管理および運営）および私的活動（例えば、家庭および仕事上の個人活動、管理、および運営等）の中にますます統合されるにつれて、悪意のあるソフトウェア（「マルウェア」）が、そのような従事に対してますます有意な脅威を示しつつある。マルウェアは、概して、コンピュータシステムの動作を妨害すること（例えば、計算リソースの制御を乗っ取り、非認可目的のためにそれらのリソースを使用することによって、個々のコンピュータまたはネットワーク全体をディスエーブルにすることによって、システムコンポーネントを損傷させること、または別様にそれに対して破壊行為を行うことによって等）、および／または、リソースをコンピュータシステムから盗むこと（例えば、取り扱いに注意を要するデータを集めることによって）を行うために動作する。マルウェアは、コンピュータウイルス、ワーム、トロイの木馬、ランサムウェア、スパイウェア、アドウェア、スケアウェア、キーロガー、ルートキット、ボット、クライムウェア、フィッシング詐欺等を含む多くの形態で展開され得る。
【０００４】
公共および私的エンティティは、マルウェアを検出し、マルウェアがそのコンピュータシステムの動作を妨害すること、またはそのコンピュータベースのリソースを盗むことを防止することに有意なリソースを費やしている。従来のサイバーセキュリティエンジンは、マルウェアを検出するために、静的シグネチャベースの技術に広範に依拠している。一般に、静的シグネチャベースのマルウェア検出は、マルウェアを含むことが既知のファイルのコピーを取得し、ファイルの静的特徴（例えば、ファイル内に含まれる一続きのバイト）を分析し、マルウェアに特徴的である静的シグネチャを抽出し、マルウェアの静的シグネチャを既知のマルウェアのデータベース（多くの場合、「ブラックリスト」と称される）に追加することを伴う。ユーザがファイルにアクセスする（例えば、それをダウンロードする、開く、または実行する）ことを試みる場合、サイバーセキュリティエンジンは、ファイルを走査し、ファイルの静的シグネチャを抽出する。ファイルの静的シグネチャがブラックリスト上のシグネチャに合致する場合、サイバーセキュリティエンジンは、マルウェアの存在を検出し、マルウェアが実行することを防止するために介入する（例えば、ファイルを隔離または削除することによって）。
【０００５】
静的シグネチャベースのマルウェア検出技術は、概して、既知のマルウェアを迅速に検出するために有用である。しかしながら、これらの技術は、概して、まだブラックリストにない新しいマルウェア（例えば、ゼロデイマルウェアまたは次世代マルウェア）、または、自らを修正し、ブラックリスト上の静的シグネチャに合致することを回避するマルウェア（例えば、少型、多様型、または変形型マルウェア）によって出し抜かれ得る。
【０００６】
いくつかのサイバーセキュリティエンジンは、マルウェアおよび他のセキュリティ問題を検出するために、挙動ベースの技術に依拠する。一般に、挙動ベースのセキュリティ技法は、コンピュータシステム上のアクティビティを監視すること、疑わしいアクティビティを識別すること、疑わしいアクティビティが識別されると、介入し、問題を査定すること（例えば、アクティビティの科学捜査を開始することによって等）、および／または、コンピュータシステムを保護すること（例えば、アクティビティに関連付けられたシステムリソースを隔離する）を伴う。
【発明の概要】
【課題を解決するための手段】
【０００７】
挙動ベースのインシデント検出および防止に関連付けられる１つの問題は、検出漏れ結果（例えば、悪意のあるアクティビティを悪意がないとして誤って分類する）および誤検出結果（例えば、悪意のないアクティビティを悪意があるとして誤って分類する）との間のトレードオフに関する。あまりに多くの検出漏れ結果を生産するインシデント検出エンジンは、悪意のある挙動の検出に失敗し、検出エンジンを非効果的なものにし、コンピュータシステムを悪意のある攻撃にさらし得る。他方で、あまりに多くの誤検出結果を生産するインシデント検出エンジンは、正当なアクティビティを疑わしいとして識別し、ユーザまたは組織の正当なアクティビティを妨害する、不必要な介入（例えば、科学捜査）を開始し得る。さらに、不必要な介入を開始することは、コンピューティングリソース（例えば、コンピューティング時間、記憶装置等）、エネルギーリソース（例えば、電力）、人的リソース（例えば、セキュリティ専門家の時間および注意）、およびその他を含むリソースを無駄にする。さらに、有意なリソースを無駄にする科学捜査をトリガすることに加え、高誤検出アラート率は、諺における針（実際の攻撃の証拠）を諺における干草の山（潜在的脅威として誤ってフラグが付けられる正当なアクティビティ）の中に埋めることによって、実際の攻撃を識別することをより困難にし得る。
【０００８】
誤検出結果と検出漏れ結果との間の前述のトレードオフは、単に、これらのタイプのアクティビティの全てのインスタンスに対してセキュリティアラートを発行するのではなく、あるタイプのアクティビティの予期されたパターンと予期されていないパターンとを区別するように、インシデント検出エンジンを構成することによって、ある程度まで緩和され得る。例えば、特定のユーザ（またはユーザの特定のクラス内の各ユーザ）が、概して、正当な目的のために、１日あたり最大５回、コンピュータシステムのセキュアサーバにログオンする場合、セキュアサーバへのアクセスを監視するインシデント検出エンジンは、ユーザがサーバにログインする度にセキュリティアラートを発行すること、またはユーザがサーバにログインする回数にかかわらずセキュリティアラートを発行しないことを行うのではなく、ユーザが、１日あたり５回以下の回数、サーバにログインするとき（予期されたアクティビティのパターン）、そのようなユーザのログインを悪意がないとして取り扱うが、ユーザが、所与の日に６回以上、サーバにログオンするとき（予期されていないアクティビティのパターン）、潜在的に悪意があるとして取り扱うように構成されることができる。
【０００９】
別の例として、ウェブブラウザプラグインの実行は、概して、種々のウェブブラウザプラグインが、これまで、悪意のある目的のために頻繁に使用されているので、疑わしいと見なされ得る。しかしながら、組織は、特定の悪意のないプラグインの組をそのコンピュータ上にインストールし、ユーザの特定のグループの生産性を向上させ得る。そのようなコンピュータシステムのために、インシデント検出エンジンは、エンジンが、同一プラグインの実行を別のコンテキストにおいて疑わしいと見なすであろう場合でも、ユーザの認可されたグループによる認可されたプラグインの組の実行を予期されている、したがって、疑わしくないとして認識し、それによって、エンジンの誤検出結果率を低減させ得る。しかしながら、インシデント検出は、（１）認可されたプラグイン以外の任意のプラグインの実行を予期されていない、したがって、疑わしいとして、（２）ユーザの認可されたグループ以外の任意のユーザによる認可されたプラグインの実行を予期されていない、したがって、疑わしいとして認識し続け、それによって、エンジンの検出漏れ結果率を増加させないこともある。
【００１０】
（例えば、特定のコンピュータシステムまたはその一部上での特定のユーザまたはユーザのグループの）予期されたアクティビティと予期されていないアクティビティとを区別するようにインシデント検出エンジンを構成するプロセスは、本明細書では、「挙動ベースラインの確立」、「ベースラインの確立」、「挙動ベースライン化」、または単に「ベースライン化」と称され得る。一般に、挙動ベースライン化は、インシデント検出ルールを異なるユーザ（例えば、個々のユーザ、ユーザのグループ、ユーザのクラス等）およびコンピュータシステムの異なるアクティビティおよび要件にカスタマイズすることによって、インシデント検出エンジンの柔軟性を改良することができる。ある組織の一部内で疑わしくあり得るアクティビティは、その組織の別の部分または異なる組織内で、正当であり得、その逆も同様である。上で説明されるように、予期されたアクティビティと予期されていないアクティビティとを区別するための正確な挙動ベースラインの使用は、インシデント検出エンジンの誤検出結果率を低減させ、それによって、リソースを節約し、科学捜査員が実際の攻撃を識別することをより容易にし得る。
【００１１】
他方で、不正確な挙動ベースラインの使用は、インシデント検出エンジンの検出漏れ結果率を増加させ、それによって、コンピュータシステムを追加のリスクにさらし得る。しかしながら、挙動ベースラインを取得するための従来の技法は、非効率的（例えば、かなりのコンピューティングおよび人的リソースを要求し得る）かつ不正確（例えば、ベースラインは、悪意のない予期されたアクティビティをそのようなものとして識別することに失敗し得るか、または、悪意のある予期されていないアクティビティを悪意がないとして誤識別し得る）であり得る。したがって、（例えば、特定のコンピュータシステムまたはその一部上の特定のユーザまたはユーザのグループの）挙動ベースラインを確立するための正確かつ効率的技法の必要性がある。
【００１２】
本発明者らは、コンピュータシステムのための挙動ベースラインは、（１）コンピュータシステム上のオカレンスを監視し（例えば、特定のオカレンス、特定のタイプのオカレンス等）、（２）セキュリティルールまたはヒューリスティックに基づいて、潜在的セキュリティリスクに関連付けられた観察されるオカレンスを決定し、（３）観察されるオカレンスに基づいて、アクティビティのパターン（例えば、特定のリソースまたはリソースのタイプへのアクセスを伴うアクティビティ、特定のユーザ、ユーザのグループ、またはユーザのクラスによって開始されるアクティビティ等）を識別し、（４）観察される潜在的セキュリティリスクに関連付けられたアクティビティのパターンが予期されているか、または予期されていないかを示すようにユーザ（例えば、コンピュータシステム管理者、科学捜査員等）にプロンプトすることによって、正確かつ効率的に確立されることができると認識および理解している。このように確立される挙動ベースラインは、次いで、ベースラインが確立されるコンピュータシステム上の予期されたアクティビティのパターンと予期されていないアクティビティのパターンとを区別するために使用されることができる。
【００１３】
一般に、本明細書に説明される主題の１つの革新的側面は、コンピュータシステム内で観察される複数の第１のオカレンスを示す第１のオカレンスデータを取得することであって、第１のオカレンスデータは、それぞれの第１のオカレンスの第１のタイプを示す、ことと、第１のオカレンスデータに基づいて、コンピュータシステム内のアクティビティの複数の第１のパターンを識別することとを含むコンピュータ実装サイバーセキュリティ方法において具現化されることができる。方法は、アクティビティの識別された第１のパターンの各々に対して、それぞれのアクティビティのパターンが予期されているかどうかを示すようにコンピュータシステムのユーザにプロンプトすることと、ユーザにプロンプトすることに応答して、ユーザ入力を受信することと、ユーザ入力に基づいて、それぞれのアクティビティのパターンが予期されているかどうかを決定することと、ユーザ入力が、それぞれのアクティビティのパターンが予期されていることを示す場合、それぞれのアクティビティのパターンを表すデータを挙動ベースラインデータベースに追加することとをさらに含む。方法は、コンピュータシステム内で観察される複数の第２のオカレンスを示す第２のオカレンスデータを取得することであって、第２のオカレンスデータは、それぞれの第２のオカレンスの第２のタイプを示す、ことと、第２のオカレンスデータに基づいて、コンピュータシステム内のアクティビティの少なくとも１つの第２のパターンを識別することと、少なくとも部分的に挙動ベースラインデータベースがアクティビティの第２のパターンが予期されていることを示すかどうかに基づいて、アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することとをさらに含む。
【００１４】
本側面の他の実施形態は、対応するコンピュータシステム、装置、および、１つ以上のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含み、各々は、方法のアクションを実施するように構成される。１つ以上のコンピュータのシステムは、動作時、システムにアクションを実施させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを有することによって、特定のアクションを実施するように構成されることができる。１つ以上のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実施させる命令を含むことによって、特定のアクションを実施するように構成されることができる。
【００１５】
前述および他の実施形態の各々は、随意に、単独で、または組み合わせて、以下の特徴のうちの１つ以上のものを含むことができる。第１のオカレンスデータは、第１のタイプのオカレンスがコンピュータセキュリティに関連すること、および／または、第１のタイプのオカレンスのパターンの変化がセキュリティに関連することをセキュリティデータが示すことに基づいて取得され得、第２のオカレンスデータは、第２のタイプのオカレンスがコンピュータセキュリティに関連すること、および／または、第２のタイプのオカレンスのパターンの変化がコンピュータセキュリティに関連することをセキュリティデータが示すことに基づいて取得され得る。第１のオカレンスデータは、１つ以上の疑わしいアクティビティのパターンが１つ以上の第１のタイプのオカレンスを含むことをセキュリティデータが示すことに基づいて取得され得る。第２のオカレンスデータは、１つ以上の疑わしいアクティビティのパターンが１つ以上の第２のタイプのオカレンスを含むことをセキュリティデータが示すことに基づいて取得され得る。
【００１６】
アクティビティの第１のパターンを識別することは、（１）特定の１人以上のユーザの組、（２）特定の１つ以上のリソースの組、および／または、（３）特定の１つ以上のデバイスの組を伴う１つ以上のオカレンスの組を識別することを含み得る。特定の１人以上のユーザの組は、特定のユーザ、複数の規定されたユーザ、または規定されたタイプのユーザを含み得る。特定の１つ以上のリソースの組は、特定のリソース、複数の規定されたリソース、または規定されたタイプのリソースを含み得る。特定の１つ以上のデバイスの組は、特定のデバイス、複数の規定されたデバイス、または規定されたタイプのデバイスを含み得る。１つ以上のオカレンスの組内のオカレンスは、モジュールローディング動作、ファイル動作、レジストリ動作、プロセス間動作、および／またはデバイス間通信動作を含み得る。
【００１７】
アクティビティの第１のパターンは、アクティビティの時間的パターンおよび／またはアクティビティの定量的パターンを含み得る。アクティビティの時間的パターンを識別することは、識別されたオカレンスの組内のオカレンスの時間率を決定することを含み得る。アクティビティの定量的パターンを識別することは、識別されたオカレンスの組内のオカレンスの数を決定することを含み得る。識別されたオカレンスの組内のオカレンスは、規定された期間内で生じ得る。規定された期間は、固定期間またはスライドするウィンドウ期間を含み得る。
【００１８】
アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することは、アクティビティの第２のパターンに関連付けられたアクティビティの１つ以上の属性を識別することと、識別された属性を有する予期されたアクティビティのパターンに対して、挙動ベースラインデータベースにクエリすることとを含み得る。アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することは、挙動ベースラインデータベースにクエリすることに応答して、識別された属性を有する予期されたアクティビティのパターンを示すデータを取得することと、アクティビティの第２のパターンが予期されたアクティビティのパターンと一致するかどうかを決定することとをさらに含み得る。アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することは、アクティビティの第２のパターンが予期されたアクティビティのパターンと一致することの決定に応答して、第２のパターンアクティビティに関連するセキュリティアラートを発行しないことを決定することをさらに含み得る。アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することは、アクティビティの第２のパターンが予期されたアクティビティのパターンと一致しないことの決定に応答して、第２のパターンアクティビティに関連するセキュリティアラートを発行することを決定することをさらに含み得る。アクティビティの第２のパターンに関連するセキュリティアラートを発行すべきかどうかを決定することは、挙動ベースラインデータベースにクエリすることに応答して、識別された属性を有する予期されたアクティビティのパターンを示すデータを取得できないことと、識別された属性を有する予期されたアクティビティのパターンを示すデータがないことに基づいて、アクティビティの第２のパターンに関連するセキュリティアラートを発行することを決定することとをさらに含み得る。
【００１９】
方法のアクションは、アクティビティの特定の第１のパターンに対して、アクティビティの特定の第１のパターンに関連付けられたアクティビティの１つ以上の属性を識別することと、１つ以上の属性を有する追加のアクティビティが予期されているかどうかを示すようにコンピュータシステムのユーザにプロンプトすることと、ユーザにプロンプトすることに応答して、１つ以上の属性を有する追加のアクティビティが予期されていることを示す第２のユーザ入力を受信し、追加のアクティビティを特徴づけることと、アクティビティの特定の第１のパターンおよび追加のアクティビティに基づいて、アクティビティの補正されたパターンを表すデータを生成することと、アクティビティの補正されたパターンを表すデータを挙動ベースラインデータベースに追加することとを含み得る。
【００２０】
方法のアクションは、アクティビティの第２のパターンが予期されているかどうかを示すようにコンピュータシステムのユーザにプロンプトすることと、ユーザにプロンプトすることに応答して、第２のユーザ入力を受信することと、第２のユーザ入力に基づいて、アクティビティの第２のパターンが予期されているかどうかを決定することと、第２のユーザ入力が、アクティビティの第２のパターンが予期されていることを示す場合、アクティビティの第２のパターンを表すデータを挙動ベースラインデータベースに追加することとを含み得る。
【００２１】
アクティビティの第１のパターンは、特定のユーザが特定のタイプのアクティビティを実施する率を含み得る。特定のタイプのアクティビティは、特定のモジュールをロードすること、ファイル動作を実施すること、レジストリ動作を実施すること、プロセス間動作を実施すること、または特定の遠隔デバイスもしくはドメインと通信することを含み得る。アクティビティの第１のパターンは、特定のユーザのグループが特定のタイプのアクティビティを実施する率を含み得る。アクティビティの第１のパターンは、コンピュータシステムの特定のリソースがアクセスされる率を含み得る。特定のリソースは、サーバ、データベース、ファイル、通信ポート、または電力供給源であり得る。
【００２２】
それぞれのアクティビティのパターンを表すデータは、パターンのタイプを示すデータを含み得る。パターンのタイプは、時間的であり得る。それぞれのアクティビティのパターンを表すデータは、パターンが関連するアクティビティのタイプを示すデータを含み得る。アクティビティのタイプは、モジュールをロードすること、ファイル動作を実施すること、レジストリ動作を実施すること、プロセス間動作を実施すること、または遠隔デバイスもしくはドメインと通信することを含み得る。それぞれのアクティビティのパターンを表すデータは、アクティビティが実施される率を示すデータを含み得る。それぞれのアクティビティのパターンを表すデータは、それぞれのアクティビティのパターンが予期された１人以上のユーザを識別するデータを含み得る。それぞれのアクティビティのパターンは、コンピュータシステムの特定のリソースを伴うアクティビティのパターンを表し得、それぞれのアクティビティのパターンを表すデータは、特定のリソースを識別するデータを含み得る。
【００２３】
本明細書に説明される技法のいくつかの実施形態は、従来のサイバーセキュリティシステムおよび技法に優るある利点を示し得る。例えば、潜在的セキュリティリスクに関連付けられた観察されるアクティビティのパターンについてのユーザフィードバックのための要求に焦点を当てることによって、前述の技法は、正確な挙動ベースラインを効率的に確立することができる。前述の技法に従って確立される正確な挙動ベースラインを使用することは、インシデント検出エンジンの誤検出結果率を低減させ、それによって、リソースを節約し、科学捜査員が実際の攻撃を識別することをより容易にすることができる。
【００２４】
いくつかの実施形態では、潜在的セキュリティ問題に関連付けられたアクティビティのパターンを識別するルールは、（１）ユーザの特定のグループまたはタイプ、（２）リソースの特定のグループまたはタイプ、および／または、（３）デバイスの特定のグループまたはタイプの観点から定義され得る。ユーザ、リソース、およびデバイスの規定されたタイプおよびグループを伴うアクティビティのパターンの観点から疑わしいアクティビティを定義することは、様々なコンピュータシステムに広く適用可能である一般的セキュリティルールを確立するための簡潔かつ効率的技法であり得る。いくつかの実施形態では、そのような一般的に適用可能なルールは、アクティビティの疑わしいタイプの予期されたパターン（例えば、概して、疑わしいと見なされるが、特定のコンピュータシステム上で予期されたアクティビティのパターン）を識別し、それによって、システム特有の例外を疑わしいアクティビティの一般的定義に定義することによって、特定のコンピュータシステムの独自性に適応するようにカスタマイズされ得る。
【００２５】
いくつかの実施形態に対する論拠の説明および／またはいくつかの実施形態の利点を含む前述の概要は、読者が、本開示を理解することを補助することを意図し、請求項の範囲をいかようにも限定するものではない。いくつかの実施形態の他の側面および／または利点は、全て本発明の原理を一例としてのみ図示する、以下の図面、発明を実施するための形態、および請求項から明白となるであろう。
【００２６】
いくつかの実施形態のある利点は、添付の図面と併せて検討される以下の説明を参照して理解され得る。図面では、同様の参照文字は、概して、異なる図全体を通して、同一部分を指す。また、図面は、必ずしも、縮尺通りではなく、代わりに、概して、本発明のいくつかの実施形態の例証に強調が置かれる。
【図面の簡単な説明】
【００２７】
【図１】図１は、いくつかの実施形態による、サイバーセキュリティインシデント検出エンジンのブロック図である。
【図２】図２は、いくつかの実施形態による、コンピュータシステム内の予期されたアクティビティのパターンを決定する方法のフローチャートである。
【図３】図３は、いくつかの実施形態による、コンピュータシステム内での実際のアクティビティのパターンと予期されたアクティビティのパターンとの間の差異に基づいて、サイバーセキュリティインシデントを検出する方法のフローチャートである。
【図４】図４は、いくつかの実施形態による、コンピュータシステムのブロック図である。
【発明を実施するための形態】
【００２８】
（用語）
用語「コンピュータシステム」は、本明細書で使用されるように、１つ以上のコンピュータおよび／またはコンピュータネットワーク（例えば、複数のコンピュータおよびそれらのコンピュータを通信可能に結合する１つ以上のネットワーク）を含み得る。
【００２９】
用語「セキュリティ問題」は、本明細書で使用されるように、コンピュータシステムのセキュリティの実際のまたは疑いがある脅威もしくは侵害を含み得る。
【００３０】
用語「オカレンス」は、本明細書で使用されるように、コンピュータシステムによって実施される任意の動作、コンピュータシステム上で観察されるアクティビティ等を含み得る。オカレンスのいくつかの例は、特定のファイル（例えば、特定のバイナリファイル）をロードすること、特定のプロセスを実行すること、特定のアプリケーションを実行すること、メモリ空間内のアドレスの特定の範囲内のアドレスにアクセスすること、オペレーティングシステムのレジストリ内の特定のレジストリエントリにアクセスすること、コンピュータシステムの特定の周辺デバイスにアクセスすること、特定のデバイス（または特定のアドレスにおけるデバイスもしくは特定のドメイン内のデバイス）と通信すること、ファイルディレクトリ内の特定のパスにアクセスすること等を含み得る。
【００３１】
用語「アクティビティのパターン」は、本明細書で使用されるように、コンピュータシステム内で観察される任意のタイプのアクティビティ（例えば、オカレンス）の任意のタイプのパターン、例えば、特定のアクティビティまたはアクティビティのタイプの時間的パターン（例えば、特定のオカレンスに関連付けられた日付、週、曜日、時間、または期間）、特定のタイプのアクティビティの定量的パターン（例えば、特定の動作または動作のタイプが実施される率、特定のリソースまたはリソースのタイプがアクセスされる頻度、特定のアクティビティのオカレンスまたはタイプの率もしくは頻度等）、アクティビティの順次的パターン（例えば、特定の動作または動作のタイプが実施される順序、特定のリソースまたはリソースのタイプがアクセスされる順序、一続きの特定のアクティビティのオカレンスまたはタイプ等）、ユーザのアクティビティのパターン（例えば、ユーザが特定のタイプのアクティビティを実施する頻度、ユーザを伴う特定のオカレンスの頻度）、グループのアクティビティのパターン（例えば、グループのメンバが特定のタイプのアクティビティを実施する率、または特定のリソースにアクセスする率、グループのメンバを伴う特定のオカレンスの率）、特定のデバイス（例えば、ネットワークに接続されるデバイス）またはデバイスのタイプを伴うアクティビティのパターン、等を含み得る。アクティビティの定量的パターンに関して、アクティビティまたはアクティビティのタイプの率もしくは頻度が、固定期間（例えば、週、曜日等）またはスライドする時間ウィンドウ（例えば、スライドする３０分間、スライドする１時間等）に対して測定され得る。
【００３２】
アクティビティのパターンは、特定のユーザまたはユーザのグループを伴う（例えば、それによって開始される）アクティビティ（例えば、アクティビティのオカレンスまたはタイプ）、特定のリソース（例えば、プロセス、アプリケーション、ファイル、レジストリエントリ、周辺デバイス、ファイルディレクトリ内のパス、メモリアドレス等）またはリソースのタイプ（例えば、プロセスのタイプまたはプロセスのグループ、アプリケーションのタイプまたはアプリケーションのグループ、ファイルのタイプまたはファイルのグループ、レジストリエントリのタイプまたはレジストリエントリのグループ、周辺デバイスのタイプまたは周辺デバイスのグループ、ファイルディレクトリ内のパスのタイプまたはファイルディレクトリ内のパスのグループ、メモリアドレスの範囲またはグループ、ネットワークアドレスのタイプまたはネットワークアドレスのグループ等）を伴う（例えば、それを使用する）アクティビティ、特定のデバイス（例えば、特定のネットワークアドレスにおけるデバイス）、デバイスのグループ、またはデバイスのタイプを伴う（例えば、それにアクセスする、それを使用する、またはそれと通信する）アクティビティ等を特性評価し得る。
【００３３】
ファイルのタイプのいくつかの例は、コマンドシェル（例えば、ｃｍｄ．ｅｘｅ、ｂａｓｈ、ｓｈ、ｃｓｈ、ｐｏｗｅｒｓｈｅｌｌ．ｅｘｅ等）、実行可能ファイル、ドキュメント、アーカイブ、プレーンテキストファイル等を含み得る。ファイルのグループのいくつかの例は、ドキュメント、アーカイブ、プレーンテキストファイル、ファイルのユーザ規定グループ等を含み得る。
【００３４】
プロセスのタイプのいくつかの例は、ログインプロセス（例えば、ユーザがコンピュータシステムまたはアカウントにログインするときに実行するプロセス）、ログアウトプロセス（例えば、ユーザがコンピュータシステムまたはアカウントからログアウトするときに実行するプロセス）、限定ではないが、デュアルユースシステム管理プロセス（例えば、ｐｓｅｘｅｃ、ｓｙｓｉｎｔｅｒｎａｌｓツール等）を含むシステム管理プロセス、限定ではないが、双方向および／またはスクリプトインタープリタ（例えば、ｐｙｔｈｏｎ、ｐｅｒｌ等）を含むインタープリタ等を含み得る。プロセスのグループのいくつかの例は、ユーザ規定プロセスのグループ、プロセス実行ツリー内で互いにファミリー関係を有するプロセス（例えば、親、子、兄弟等）を含み得る。
【００３５】
アプリケーションのタイプのいくつかの例は、ウェブブラウザ（例えば、Ｓａｆａｒｉ、Ｆｉｒｅｆｏｘ、Ｃｈｒｏｍｅ、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｍｉｃｒｏｓｏｆｔ  Ｅｄｇｅ等）、オフィスアプリケーション（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ、Ｍｉｃｒｏｓｏｆｔ  ＰｏｗｅｒＰｏｉｎｔ、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ、ＯｐｅｎＯｆｆｉｃｅ等）、ソフトウェア開発ツール（例えば、コンパイラ、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ、Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｅｎｖｉｒｏｎｍｅｎｔｓ（ＩＤＥ）等）、ウェブブラウザプラグイン等を含み得る。パスのタイプのいくつかの例は、システムフォルダへのパス（例えば、Ｃ：＼Ｗｉｎｄｏｗｓ（登録商標）、Ｃ：＼Ｗｉｎｄｏｗｓ（登録商標）＼ｓｙｓｔｅｍ３２等）、ユーザホームディレクトリへのパス（例えば、Ｃ：＼Ｕｓｅｒｓ  ｆｏｒ  Ｗｉｎｄｏｗｓ（登録商標），／ｈｏｍｅ  ｆｏｒ  Ｌｉｎｕｘ（登録商標），／Ｕｓｅｒｓ  ｆｏｒ  Ｍａｃ  ＯＳ  Ｘ等）等を含み得る。
【００３６】
ネットワークアドレスのタイプのいくつかの例は、特定の組織のローカルエリアネットワーク（ＬＡＮ）のネットワークアドレス（例えば、インターネットプロトコル（「ＩＰ」）アドレスの範囲）（例えば、企業ＬＡＮ；アクティビティのパターンが観察されるコンピュータシステムを所有し、動作させ、または使用する組織のＬＡＮ；他の組織のＬＡＮ等）、組織の非武装地帯（「ＤＭＺ」）または境界ネットワークのネットワークアドレス、組織の遠隔アクセスポイント（例えば、仮想プライベートネットワーク（「ＶＰＮ」）コンセントレータ、Ｃｉｔｒｉｘアクセスポイント等）のネットワークアドレス等を含み得る。
【００３７】
ユーザのグループまたはタイプのいくつかの例は、遠隔ユーザ（例えば、コンピュータシステムに遠隔でログインされるユーザ）、管理職ユーザ（例えば、組織内で管理職の地位を保持するユーザ）、営業ユーザ（例えば、組織内で営業の地位を保持するユーザ）、内勤者（例えば、組織内のオフィスの中で勤務するユーザ）、開発者（例えば、組織のためのソフトウェアを開発するユーザ）等を含み得る。
【００３８】
デバイスのタイプのいくつかの例は、取り扱いに注意を要するデバイス（例えば、取り扱いに注意を要するデータを記録もしくはそれへのアクセスを有する管理者によって識別されるか、または別様にサイバーセキュリティ事項に対して取り扱いに注意を要するステータスを有するデバイスの組）、管理職用ワークステーション（例えば、管理職ユーザによって使用されるデスクトップコンピュータまたは他のワークステーション）、管理職用ラップトップ（例えば、管理職ユーザによって使用されるラップトップコンピュータまたは他のモバイルデバイス）、特定のネットワークドメイン内のデバイス、開発者ワークステーション（例えば、ソフトウェア開発者によって使用されるデスクトップコンピュータまたは他のワークステーション）、他の高価値標的等を含み得る。
【００３９】
パスのグループのいくつかの例は、ユーザ規定のパスのグループ、ファイルディレクトリ内で互いにファミリー関係を有するパス等を含み得る。
【００４０】
用語「セキュリティイベント」または「イベント」は、本明細書で使用されるように、悪意のある（例えば、実際のセキュリティ問題の存在を示す）または疑わしい（例えば、潜在的セキュリティ問題の存在を示す）と決定されたコンピュータシステム内の任意のオカレンスまたはアクティビティのパターンを含み得る。オカレンスまたはアクティビティのパターンが悪意のあるまたは疑わしいことの決定は、任意の好適な技法を使用して、手動で（例えば、コンピュータシステムのユーザによって）または自動的に（例えば、コンピュータシステムまたはコンピュータシステムと通信するデバイスのコンポーネントによって）行われ得る。イベントのタイプのいくつかの例は、限定ではないが、システムクラッシュ、パケットフラッド、システム権限の非認可使用、データへの非認可アクセス、サービス妨害攻撃、ソフトウェアの非認可修正、ポリシ違反、ウイルス感染、マルウェアの実行、ファイルまたはシステムコンポーネントの状態の変更、ログ（例えば、ファイアウォールログ）内のエントリの存在、コンピュータシステムの記憶媒体内のファイル（例えば、バイナリファイル）の存在等を含み得る。
【００４１】
用語「セキュリティインシデント」または「インシデント」は、本明細書で使用されるように、実際または潜在的に関連する（例えば、実際または潜在的に同一セキュリティ問題に関連する）と決定された１つ以上のセキュリティイベントの組を含み得る。セキュリティイベントが特定のセキュリティ問題に実際または潜在的に関連することの決定は、任意の好適な技法を使用して、手動で（例えば、コンピュータシステムのユーザによって）または自動的に（例えば、コンピュータシステムまたはコンピュータシステムと通信するデバイスのコンポーネントによって）行われ得る。
【００４２】
用語「インシデント応答」は、本明細書で使用されるように、少なくとも部分的に、セキュリティインシデントおよび／またはセキュリティイベントの検出に基づいて実施される任意のアクションまたは動作を含み得る。インシデント応答アクションまたは動作は、限定ではないが、セキュリティイベントおよび／またはインシデントの科学捜査を開始すること、セキュリティイベントおよび／またはセキュリティインシデントを調査すること、セキュリティイベントおよび／またはインシデントによって生じる損害を軽減させること等を含み得る。
【００４３】
セキュリティイベントの調査は、セキュリティイベントがセキュリティ問題に関連するかどうかに関する決定、セキュリティイベントの根本原因の識別、セキュリティイベントの範囲の決定等を促進する任意のアクティビティを含み得る。
【００４４】
セキュリティイベントがデータへのアクセスを伴う場合、セキュリティイベントを調査することは、アクセスされたデータを識別すること、アクセスされたデータが修正、削除、コピー、または伝送されたかどうかを決定すること、アクセスされたデータが貴重または機密であったかどうかを決定すること、データにアクセスするために使用されたユーザアカウントを決定すること等を含み得る。
【００４５】
セキュリティイベントがネットワークを経由した通信を伴う場合、セキュリティイベントを調査することは、アクセスされたネットワークリソース（例えば、ネットワークポート、ネットワークインターフェース等）を決定すること、ネットワークを介してコンピュータシステムと通信した遠隔デバイスのアドレス（例えば、インターネットプロトコル（ＩＰ）アドレス）を決定すること、悪意のあるまたは疑わしいアクティビティに関連付けられた遠隔デバイスのアドレスが既知であるかどうかを決定すること等を含み得る。
【００４６】
セキュリティイベントの調査は、セキュリティイベントを引き起こした行為を実施したプロセスを決定すること、プロセスが既知のマルウェアプロセスであるかどうかを決定すること、プロセスの実行を開始したユーザを決定すること等を含み得る。
【００４７】
セキュリティイベントの調査は、セキュリティイベントを引き起こしたプロセスを開始するために実行されたバイナリファイルを決定すること、バイナリファイルが既知のマルウェアファイルであるかどうかを決定すること、バイナリファイルをコンピュータシステム上にロードしたユーザを決定すること、バイナリファイルがコンピュータシステム上にロードされた方法を決定すること等を含み得る。
【００４８】
セキュリティインシデントの調査は、セキュリティインシデントの一部である１つ以上のセキュリティイベント、および／または、セキュリティインシデントの根本原因の識別、セキュリティインシデントの範囲の決定、セキュリティインシデントによって呈されるリスクまたは脅威の決定等を促進する任意のアクティビティの調査を含み得る。
【００４９】
セキュリティイベントおよび／またはインシデントによって生じる損害の軽減は、悪意のあるまたは疑わしいファイルもしくはプロセスを隔離すること、１つ以上のコンピュータをコンピュータネットワークから接続解除すること、コンピュータシステムの一部を無効化または非アクティブ化すること等を含み得る。
【００５０】
（インシデント応答を誘導するためのシステム）
図１は、いくつかの実施形態による、サイバーセキュリティインシデント検出エンジン１００を示す。動作時、インシデント検出エンジン１００は、コンピュータシステム、そのリソース、および／またはそのユーザのための挙動ベースラインを確立し得る。加えて、インシデント検出エンジン１００は、挙動ベースラインを使用して、コンピュータシステムにおけるセキュリティイベントまたはインシデントを検出し、それに応答して、インシデント応答アクションまたは動作を開始し得る。いくつかの実施形態では、インシデント検出エンジン１００は、１つ以上のソフトウェアコンポーネント（例えば、アクティビティ監視モジュール１４０、挙動ベースライン化モジュール１５０、インシデント検出モジュール１６０等）と、１つ以上のデータベース（例えば、疑わしいアクティビティデータベース１１０、観察されるアクティビティデータベース１２０、挙動ベースラインデータベース１３０等）とを含む。ソフトウェアコンポーネント１４０−１６０およびデータベース１１０−１３０の各々は、下記にさらに詳細に説明される。
【００５１】
いくつかの実施形態では、疑わしいアクティビティデータベース１１０は、疑わしいアクティビティを示すデータ（例えば、セキュリティ問題の存在に関連付けられたアクティビティのタイプまたはパターンを識別するデータ）および／またはコンピュータセキュリティに関連（または潜在的に関連）するアクティビティのタイプを示すセキュリティデータを記憶する。例えば、疑わしいアクティビティデータベース１１０は、以下のアクティビティのタイプがセキュリティ問題に関連付けられる（例えば、互いに関係づけられる）程度を示すデータを含み得る。
【００５２】
（１）特定のモジュールまたはモジュールのタイプをロードすること：セキュリティ問題の存在と、特定のモジュールまたはモジュールのタイプをロードする行為との間に、ある関連付けが存在し得る。モジュールをロードすることは、モジュール（またはその一部）のコンテンツをプロセスのアドレス空間の中にコピーすること、モジュール（またはその機能）を呼び出すこと、モジュール（またはその一部）を実行すること等を含み得る。モジュールのいくつかの例は、限定ではないが、ライブラリモジュール（例えば、．ＤＬＬ）、実行可能モジュール（例えば、．ＥＸＥ）、カーネルモジュール、バイナリファイル、プラグイン等を含む。疑わしいアクティビティデータベース１１０は、セキュリティ問題に関連付けられたモジュールまたはモジュールのタイプを特徴づけるセキュリティデータを記憶し得る。そのようなデータは、モジュールへのパスを識別するデータ、モジュールを識別するデータ（例えば、モジュールのためのＭＤ５ハッシュ値）等を含み得る。
【００５３】
（２）特定のファイル動作またはファイル動作のタイプを実施すること：セキュリティ問題の存在と、特定のファイル動作またはファイル動作のタイプを実施する行為との間に、ある関連付けが存在し得る。ファイル動作は、動作ファイルに対して実施される動作、コンピューティングデバイスファイルシステムにアクセスする動作等を含む。ファイル動作のいくつかの例は、ファイルを作成すること、ファイルを削除すること、ファイルをリネームすること、ファイルの属性を変更すること、ファイルのアクセス許可を変更すること、ファイルを開くこと、ファイルを閉じること、データをファイルから読み取ること、データをファイルに書き込むこと等を含む。疑わしいアクティビティデータベース１１０は、セキュリティ問題に関連付けられたファイル動作を特徴づけるセキュリティデータを記憶し得る。
【００５４】
（３）特定のレジストリ動作またはレジストリ動作のタイプを実施すること：セキュリティ問題の存在と、特定のレジストリ動作またはレジストリ動作のタイプを実施する行為との間に、ある関連付けが存在し得る。一般に、オペレーティングシステム（ＯＳ）レジストリは、ＯＳカーネル、オペレーティングシステムの他の部分、デバイスドライバ、サービス、および／またはアプリケーションのための設定（「レジストリキー」）の値（「レジストリキー値」）を記憶し得る。適切な許可を伴う実行プロセスは、動作を１つ以上のレジストリキーに対して実施し得る。レジストリ動作のいくつかの例は、レジストリキーの値を読み取ること、レジストリキーの値を書き込むこと、レジストリキーを作成すること、レジストリキーを削除すること等を含む。疑わしいアクティビティデータベース１１０は、セキュリティ問題に関連付けられたレジストリ動作を特徴づけるセキュリティデータを記憶し得る。そのようなセキュリティデータは、レジストリキー（例えば、レジストリキーの名前またはパス名）を識別するデータ、レジストリキー値を示すデータ、レジストリキーに対して実施される動作（例えば、読み取り、書き込み、読み取り／書き込み）のタイプを識別するデータ等を含み得る。
【００５５】
（４）プロセス間動作を実施すること：セキュリティ問題の存在と、プロセス間動作を実施する行為との間に、ある関連付けが存在し得る。プロセス間動作は、プロセス（「ソースプロセス」）が別のプロセス（「標的プロセス」）のセキュリティ境界を横断して動作を実施するときに生じる。プロセス間動作のいくつかの例は、別のプロセスへのハンドルを開くこと、別のプロセスのスレッドへのハンドルを開くこと、スレッドを別のプロセス内に作成すること、子プロセスを生成（ｓｐａｗｎ）すること等を含む。疑わしいアクティビティデータベース１１０は、セキュリティ問題に関連付けられたプロセス間動作を特徴づけるセキュリティデータを記憶し得る。そのようなセキュリティデータは、標的プロセスを識別するデータ（例えば、標的プロセスのパス、標的プロセスのためのＭＤ５ハッシュ値、標的プロセスのユーザコンテキスト等）、ソースプロセスによって要求されるアクセス許可を示すデータ（例えば、許可ビットマスク）、ソースプロセスによって実施（または要求）されるプロセス間動作のタイプを識別するデータ、ソースプロセスと標的プロセスとの間の関係（例えば、ソース／親プロセスと、ソース／親プロセスによって生成された標的／子プロセスとの間の親−子関係）を特徴づけるデータ等を含み得る。
【００５６】
セキュリティ問題の存在と、子プロセスを生成する親プロセスの行為との間に、例えば、親および子プロセスの属性に応じて、ある関連付けが存在し得る。親アプリケーション／プロセスは、多くの場合、悪意のない「ヘルパ」アプリケーション／プロセスを生成し、特定のタスクまたは機能を実施する。例えば、ウェブブラウザは、プラグインを生成し、あるタイプのコンテンツ（例えば、ストリーミングビデオ、ＰＤＦドキュメントのコンテンツ等）を表示し得、電子メールクライアントは、他のアプリケーション（例えば、画像ビューア、ＰＤＦリーダ、メディアプレーヤ等）を生成し、電子メール添付を処理し得る。他方では、子プロセスの生成は、悪意のあるアクティビティの指示であり得る。例えば、ファイルマネージャを除き、システムプロセス（例えば、カーネルプロセスまたは他のオペレーティングシステムプロセス）は、概して、ユーザアプリケーション（例えば、ウェブブラウザ、電子メールクライアント、ワード処理アプリケーション、スプレッドシートアプリケーション等）を生成しない。したがって、システムレベルプロセスによるユーザレベルプロセスの生成は、疑わしいアクティビティの重要な指標であり得る（例えば、悪意のあるコードを実行する感染アプリケーション、システムレベルプロセスを使用して、悪意のあるアクティビティをマスクすることによって、検出を回避することを試みる侵入者等）。
【００５７】
加えて、または代替として、セキュリティ問題の存在と、その親プロセスＰｐおよびその子プロセスＰｃに対するプロセスＰの関係との間に、ある関連付けが存在し得る。例えば、悪意のない親プロセスＰｐは、セキュリティ侵害を受けやすいプロセスＰを生成し得る。そのような場合、プロセスＰによって生成された子プロセスＰｃの数、識別、および／またはアクティビティは、セキュリティ問題を示し得る。
【００５８】
（５）ネットワークを経由した遠隔デバイスもしくはドメインとの通信：セキュリティ問題の存在と、ネットワークを経由して特定の遠隔デバイスまたはドメインと通信する行為との間に、ある関連付けが存在し得る。疑わしいアクティビティデータベース１１０は、セキュリティ問題に関連付けられたネットワーク通信を特徴づけるセキュリティデータを記憶し得る。そのようなセキュリティデータは、デバイスまたはドメインのアドレスを表すデータ（例えば、ＩＰアドレス、ＭＡＣアドレス等）、それを通してネットワーク通信が送信および／または受信されるポートを表すデータ、ネットワーク通信のタイプを表すデータ（例えば、送信、受信、または送信および受信）、通信のために使用されるネットワークプロトコルを表すデータ（例えば、ＴＣＰ、ＩＰ、ＴＣＰ／ＩＰ、ＵＤＰ、ＩＣＭＰ、ＳＳＨ、ＦＴＰ、ＳＭＴＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＰＯＰ、ＳＦＴＰ、ＳＳＬ、ＴＬＳ、ＰＰＰ、ＩＭＡＰ、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等）等を含み得る。
【００５９】
いくつかの実施形態では、疑わしいアクティビティデータベース１１０内で識別されたアクティビティの各タイプまたはパターンと対応するセキュリティ問題との間の関連付け（例えば、相関）の強度は、閾値強度を超え得る。いくつかの実施形態では、疑わしいアクティビティデータベース１１０はまた、アクティビティの各タイプまたはパターンとセキュリティ問題の存在との間の関連付け（例えば、相関）の強度を示すまたは分類するデータ、アクティビティの各タイプまたはパターンに関連付けられたセキュリティ問題のタイプを識別するデータ等を記憶する。
【００６０】
疑わしいアクティビティデータベース１１０内に含まれるデータは、信頼されたソース（例えば、サイバーセキュリティプロバイダ）によって提供され、および／または任意の他の好適な技法を使用して取得され得る。いくつかの実施形態では、インシデント検出エンジンのソフトウェアコンポーネント（例えば、挙動ベースライン化モジュール１５０および／またはインシデント検出モジュール１６０）は、疑わしいアクティビティデータベース１１０にクエリし、コンピュータシステム内で観察されるアクティビティの特定のタイプまたはパターンが疑わしいかどうかを決定し得る。いくつかの実施形態では、疑わしいアクティビティデータベース１１０内に含まれるデータは、潜在的セキュリティ問題に関連付けられたアクティビティのパターンを識別するデータ（例えば、ルール）を含み得る。上で説明されるように、アクティビティのパターンは、（１）特定のユーザ、ユーザのグループ、またはユーザのタイプ、（２）特定のリソース、リソースのグループ、またはリソースのタイプ、および／または、（３）特定のデバイス、デバイスのグループ、またはデバイスのタイプを伴うオカレンスの特定のタイプのパターン（例えば、時間的、定量的等）を含み得る。当業者は、ユーザ、リソース、およびデバイスの規定されたタイプおよびグループを伴うアクティビティのパターンの観点から疑わしいアクティビティを定義することが、様々なコンピュータシステムに広く適用可能である一般的セキュリティルールを確立するための簡潔かつ効率的技法であることを理解されるであろう。
【００６１】
再び図１を参照すると、アクティビティ監視モジュール１４０は、コンピュータシステム上のアクティビティを監視し、観察されるアクティビティ（例えば、観察されるオカレンス、観察されるアクティビティのパターン等）を示すデータを観察されるアクティビティデータベース１２０内に記憶し得る。いくつかの実施形態では、アクティビティ監視モジュール１４０は、観察されるアクティビティデータベース１２０内に記憶されるデータがアクティビティ監視モジュール１４０によって観察されるアクティビティの一部のみを表すように、観察されるアクティビティをフィルタリングする。例えば、アクティビティ監視モジュール１４０は、疑わしいアクティビティデータベース１１０が、観察されるタイプのアクティビティがコンピュータセキュリティに関連（または潜在的に関連）することを示す場合のみ、観察されるアクティビティを示すデータを観察されるアクティビティデータベース１２０内に記憶し得る。
【００６２】
いくつかの実施形態では、観察されるアクティビティデータは、観察されるオカレンスに対応するオカレンス記録を含み得る。観察されるオカレンスに対するオカレンス記録は、オカレンスのタイプを示すタイプデータ（例えば、モジュールをロードすること、ファイル動作を実施すること、レジストリ動作を実施すること、プロセス間動作を実施すること、遠隔デバイスもしくはドメインと通信すること等）、オカレンスのタイミングを示すタイミングデータ（例えば、オカレンスが観察された日付／時間、観察されるオカレンスと別のオカレンスとの間の時間インターバル等）、オカレンスを開始したまたは別様にそれに関連付けられたユーザもしくはユーザのグループを識別するユーザデータ等を含み得る。
【００６３】
いくつかの実施形態では、観察されるオカレンスに対する記録は、オカレンスのタイプに特定の詳細なデータも含む。例えば、「モジュールロード」タイプのオカレンスに対して、詳細なデータは、ロードされたモジュールのタイプ、ロードされたモジュールへのパス、ロードされたモジュールを識別するデータ等を含み得る。「ファイル動作」タイプのオカレンスに対して、詳細なデータは、実施されたファイル動作のタイプ、ファイル動作が実施されたファイルへのパス、ファイル動作が実施されたファイルを識別するデータ、ファイル動作を開始したプロセスを識別するデータ等を含み得る。「レジストリ動作」タイプのオカレンスに対して、詳細なデータは、実施されたレジストリ動作のタイプ、レジストリ動作が実施されたレジストリキーへのパス、レジストリ動作が実施されたレジストリキーを識別するデータ、レジストリ動作が実施される前および／または後のレジストリキーの値、レジストリ動作を実施したプロセスを識別するデータ等を含み得る。「プロセス間動作」タイプのオカレンスに対して、詳細なデータは、実施されたプロセス間動作のタイプ、プロセス間動作を開始したソースプロセスを識別するデータ、プロセス間動作の標的プロセスを識別するデータ、標的プロセスのユーザコンテキスト等を含み得る。「遠隔通信」タイプのオカレンスに対して、詳細なデータは、観察される遠隔通信のタイプ、遠隔通信がそこへおよび／またはそこから送信および／または受信されたデバイスまたはドメインのアドレス、遠隔通信が送信および／または受信されたポート、遠隔通信のために使用されるネットワークプロトコル等を含み得る。
【００６４】
再び図１を参照すると、挙動ベースライン化モジュール１５０は、コンピュータシステムに関連付けられた挙動ベースライン（例えば、予期されたアクティビティのパターン）を識別し、それらの挙動ベースラインを示すデータを挙動ベースラインデータベース１３０内に記憶し得る。ある場合、挙動ベースラインデータベース１３０内に記憶されるデータは、疑わしいアクティビティのタイプの予期されたパターン、例えば、概して、疑わしいと見なされるが、特定のコンピュータシステム上で予期されたアクティビティのパターン（疑わしいアクティビティデータベース１１０内のデータによって定義されるように）を示し得る。このように、挙動ベースラインデータベース１３０内のデータは、例外を疑わしいアクティビティデータベース１１０内のデータによって具現化される疑わしい挙動の一般的定義に定義することによって、インシデント検出エンジン１００をカスタマイズし得る。例えば、疑わしいアクティビティデータベース１１０が、ワークステーションの特定のグループが、管理職用ワークステーションであり、内勤者による開発者ワークステーションへの任意のアクセスが疑わしいことを示す場合、挙動ベースラインデータベース１３０は、この一般的ルールに対する例外を識別し得る（例えば、挙動ベースラインデータベース１３０は、特定の管理職Ｚの管理職用ワークステーションＹにアクセスする特定の内勤者Ｘが予期されていることを示し得る）。別の例として、疑わしいアクティビティデータベース１１０が、ウェブブラウザプラグインを実行することが疑わしいアクティビティのタイプであることを示す場合、挙動ベースラインデータは、特定のユーザが特定のプラグインを起動すると予期されていることを示すデータを含み得る。
【００６５】
ある場合、挙動ベースラインデータベース１３０内に記憶されるデータは、あるアクティビティの予期されたパターンを示し得、そのアクティビティの「タイプ」自体が疑わしくない場合でも、予期されたアクティビティのパターンからの「逸脱」は、疑わしい。例えば、挙動ベースラインデータは、特定のユーザが、特定のアプリケーションの組を起動すると予期されていることを示すデータを含み得、示されるアプリケーションの組以外のアプリケーションのユーザの実行は、したがって、疑わしいアクティビティとして取り扱われ得る。別の例として、挙動ベースラインデータは、特定のユーザが１日あたりある数の遠隔システムにログインすると予期されていることを示すデータを含み得、所与の１日におけるユーザによる予期された数を上回る遠隔ログインは、したがって、疑わしいアクティビティとして取り扱われ得る。別の例として、挙動ベースラインデータは、特定のシステムリソース（例えば、セキュアデータベース）への予期されたアクセス率Ｒ１を示すデータを含み得、システムリソースへのより高い実際のアクセス率Ｒ２は、したがって、疑わしいアクティビティとして取り扱われ得る。
【００６６】
いくつかの実施形態では、挙動ベースラインデータベース１３０内の予期されたアクティビティのパターンの記録は、限定ではないが、パターンのタイプ（例えば、時間的、順次的等）、パターンが関連するアクティビティのタイプ（例えば、特定のモジュールまたはモジュールのタイプをロードすること、特定のファイル動作またはファイル動作のタイプを実施すること、特定のレジストリ動作またはレジストリ動作のタイプを実施すること、プロセス間動作を実施すること、ネットワークを経由して遠隔デバイスもしくはドメインと通信すること等）、アクティビティのパターンに関わることが予期されたユーザまたはユーザのグループ、それに対してまたはそれを用いてアクティビティのパターンが実施されることが予期されたコンピュータシステムリソース、および／または、パターン値（例えば、示されるアクティビティのタイプが実施される率、示されるアクティビティのタイプが実施される頻度等）を表すデータを含み得る。例えば、疑わしいアクティビティの予期されたパターンの記録は、（１）特定のユーザまたはユーザの組（例えば、ユーザのタイプ、ユーザのグループ等）、（２）特定のリソースまたはリソースの組（例えば、リソースのタイプ、リソースのグループ等）、および／または、（３）特定のデバイスまたはデバイスの組（例えば、デバイスのタイプ、デバイスのグループ等）を伴う、特定のアクティビティのパターンを表すデータを含み得る。
【００６７】
挙動ベースライン化モジュール１５０は、任意の好適な技法を使用して、ユーザ／ユーザの組、リソース／リソースの組、および／またはデバイス（例えば、コンピュータシステム）／デバイスの組に対して予期されたアクティビティのパターンを決定し得る。図２は、予期されたアクティビティのパターンを決定する方法２００の例を示す。いくつかの実施形態では、予期されたアクティビティのパターンを決定する方法２００は、コンピュータシステム上のオカレンスを監視すること（ステップ２１０）であって、監視されるオカレンスのタイプおよび／または監視されるオカレンスのタイプのパターンの変化は、疑わしい、ことと、監視されるオカレンスに基づいて、アクティビティのパターンを識別すること（ステップ２２０）と、識別されたパターンが予期されているかどうかを示すようにユーザにプロンプトすることと、予期されたアクティビティのパターンを表すデータを挙動ベースラインデータベースに追加すること（ステップ２３０）とを含む。方法２００のステップのいくつかの実施形態は、下記にさらに詳細に説明される。
【００６８】
ステップ２１０では、コンピュータシステム内のオカレンスが、監視される。コンピュータシステム内のオカレンスを監視するための任意の好適な技法が、使用され得る。いくつかの実施形態では、コンピュータシステム内のオカレンスを監視することは、コンピュータシステム内で観察されるオカレンスを示すオカレンスデータを取得することを含む。いくつかの実施形態では、特定のタイプのオカレンスが、監視される。例えば、監視されるオカレンスのタイプは、（１）疑わしいアクティビティデータベース１１０がコンピュータセキュリティに関連すると識別するオカレンスのタイプ（例えば、疑わしいアクティビティデータベース１１０内のデータによって識別されるアクティビティの疑わしいパターン内に含まれるオカレンスのタイプ）、および／または、（２）疑わしいアクティビティデータベース１１０がオカレンスのパターンの変化をコンピュータセキュリティに関連すると識別するオカレンスのタイプを含み得る。監視されるオカレンスのタイプのいくつかの例は、モジュールをロードすること、ファイル動作を実施すること、レジストリ動作を実施すること、プロセス間動作を実施すること、遠隔デバイスもしくはドメインと通信すること等を含み得る。
【００６９】
ステップ２２０では、コンピュータシステム内のアクティビティのパターン（例えば、コンピュータシステムのセキュリティに関連するアクティビティのパターン）が、監視されるオカレンスに基づいて識別される。識別されたアクティビティのパターンは、特定のユーザまたはユーザのグループが特定のタイプのアクティビティ（例えば、特定のモジュールをロードすること、ファイル動作を実施すること、レジストリ動作を実施すること、プロセス間動作を実施すること、特定の遠隔デバイスまたはドメインと通信すること等）を実施する率を含み得る。加えて、または代替として、識別されたアクティビティのパターンは、コンピュータシステムの特定のリソース（例えば、サーバ、データベース、ファイル、通信ポート、電力供給源等）がアクセスされる率を含み得る。（限定ではないが）上で説明されるアクティビティのパターンのタイプを含む任意の好適なタイプアクティビティのパターンが、識別され得る。
【００７０】
ステップ２２０では、インシデント検出エンジン１００のユーザ（例えば、人間ユーザ）は、識別されたアクティビティのパターンが予期されているかどうかを示すようにプロンプトされ得る。例えば、識別されたアクティビティのパターンが、コンピュータシステムの特定のユーザが１日あたり２つの特定のウェブブラウザプラグインを実行することを示す場合、インシデント検出エンジンのユーザは、（１）コンピュータシステムのユーザが、１日あたり少なくとも２つのプラグインを実行すると予期されているかどうか、および／または、（２）コンピュータシステムのユーザが、識別されたパターンによって示される特定のプラグインを実行すると予期されているかどうかを示すようにプロンプトされ得る。インシデント検出エンジンのユーザが、識別されたアクティビティのパターンが予期されていることを示す場合、そのアクティビティのパターンを表すデータが、ステップ２３０において、挙動ベースラインデータベース１３０に追加される。挙動ベースラインデータベース１３０内のアクティビティのパターンを表すデータのいくつかの例は、上で説明される。
【００７１】
識別されたアクティビティのパターンは、１つ以上の特定の属性を有するアクティビティに関し得る。ステップ２２０のいくつかの実施形態では、ユーザは、同一属性を有する追加のアクティビティが予期されているかどうかを示すように、プロンプトされ得る。例えば、識別されたアクティビティのパターンが、コンピュータシステムの特定のユーザが１日あたり２つの特定のウェブブラウザプラグインを実行することを示す場合、インシデント検出エンジンのユーザは、（１）コンピュータシステムのユーザが１日あたり実行すると予期されているプラグインの実際の数を示すこと、および／または、（２）パターンによって示されないが、ユーザが実行すると予期されている任意のプラグインを識別することを行うようにプロンプトされ得る。
【００７２】
図２には図示されないが、ユーザが、識別されたアクティビティのパターンが予期されないことを示す場合、インシデント検出エンジンは、予期されていないアクティビティのパターンに関連するセキュリティアラートを発行し得る。加えて、または代替として、ユーザは、予期されていないアクティビティのパターンと同一属性を有する１つ以上の予期されたアクティビティのパターンを識別するようにプロンプトされ得る。例えば、識別されたアクティビティのパターンが、特定のコンピュータシステムのユーザが１日あたり２つの特定のウェブブラウザプラグインを実行することを示し、インシデント検出システムのユーザが、このアクティビティのパターンが予期されないことを示す場合、インシデント検出エンジンは、コンピュータシステムユーザの２つのプラグインの実行に関連するセキュリティアラートを発行し得、コンピュータシステムユーザが実行すると予期された任意のプラグインを識別するようにインシデント検出システムのユーザにプロンプトし得る。
【００７３】
再び図１を参照すると、挙動ベースライン化モジュール１５０のいくつかの実施形態は、挙動ベースラインデータベース１３０を使用して、コンピュータシステム内の特定のアクティビティのパターンが予期されているか、または予期されていないかを決定することができる。いくつかの実施形態では、特定のアクティビティのパターンを表すデータが提示されると、挙動ベースライン化モジュール１５０は、パターンおよび／またはパターンが関連するアクティビティの１つ以上の属性を識別し、挙動ベースラインデータベース１３０にクエリし、特定のアクティビティのパターンと同一属性を有する任意のものを識別し得る。着目属性を有する予期されたアクティビティのパターンが、識別されない場合、ベースライン化モジュール１５０は、特定のアクティビティのパターンが予期されていないことを決定し得る。
【００７４】
例えば、セキュアサーバＳ１に１日あたり５回アクセスするユーザＵ１によって特徴付けられるアクティビティのパターンを示すデータが提示されると、ベースライン化モジュール１５０は、そのパターンの属性を識別し得る。この場合、パターンの識別された属性は、（１）パターンのタイプ（時間的）、（２）パターンが関連するアクティビティのタイプ（遠隔通信）、（３）アクティビティを開始したユーザ（ユーザＵ１）、および（４）アクティビティを実施するために使用されるリソース（サーバＳ１）を含み得る。ベースライン化モジュールは、ベースラインデータベース１３０にクエリし、サーバＳ１の遠隔アクセスに関連し、および／または、ユーザＵ１によるセキュアサーバの遠隔アクセスに関連する任意の予期されたアクティビティの時間的パターンを識別し得る。ベースラインデータベース１３０が、それらの基準に合致する任意の予期されたアクティビティのパターンを返さない場合、ベースライン化モジュール１５０は、ユーザＵ１のアクティビティ（サーバＳ１に１日に５回ログオンする）が予期されていないことを決定し得る。
【００７５】
他方では、着目属性を有する１つ以上の予期されたアクティビティのパターンが、識別される場合、ベースライン化モジュール１５０は、当該アクティビティのパターンをベースラインデータベース１３０によって識別されるアクティビティの予期されたパターンと比較し、当該アクティビティが予期されているか、または予期されていないかを決定し得る。いくつかの実施形態では、当該アクティビティのパターンが、対応する予期されたアクティビティのパターンのうちの少なくとも１つに合致する場合、ベースライン化モジュール１５０は、当該アクティビティのパターンが予期されていることを決定する。そうでなければ、ベースライン化モジュール１５０は、当該アクティビティのパターンが予期されていないことを決定する。いくつかの実施形態では、当該アクティビティのパターンは、当該パターンと予期されたパターンとの間の差異（例えば、算術差異、パーセンテージ差異等）が規定された差異未満である場合、対応する予期されたアクティビティのパターンに合致する。
【００７６】
例えば、セキュアサーバＳ１に１日あたり５回アクセスするユーザＵ１によって特徴付けられるアクティビティのパターンを示すデータが提示されると、ベースライン化モジュール１５０は、ベースラインデータベース１３０にクエリし、サーバＳ１の遠隔アクセスに関連し、および／または、ユーザＵ１によるセキュアサーバの遠隔アクセスに関連する任意の予期されたアクティビティの時間的パターンを識別し得、ベースラインデータベース１３０は、ユーザＵ１がセキュアサーバＳ１に１日あたり最大７回アクセスすると予期されていることを示す予期されたアクティビティのパターンを返し得る。その当該アクティビティのパターンは、予期されたアクティビティのパターンに合致するので、ベースラインモジュール１５０は、当該アクティビティのパターンが予期されていることを決定し得る。
【００７７】
再び図１を参照すると、インシデント検出エンジン１００は、インシデント検出モジュール１６０を含み得る。いくつかの実施形態では、インシデント検出モジュール１６０は、コンピュータシステム上のアクティビティを監視し、あるアクティビティのタイプ（例えば、潜在的セキュリティリスクに関連付けられたアクティビティ）の実際のパターンと予期されたパターンとの間の差異の検出に応答して、インシデント応答を開始する。インシデント検出モジュール１６０は、任意の好適な技法を使用して、実際のアクティビティのパターンと予期されたアクティビティのパターンとの間の差異を検出し得る。図３は、実際のアクティビティのパターンと予期されたアクティビティのパターンとの間の差異を検出する方法３００の例を示す。いくつかの実施形態では、方法３００は、コンピュータシステム上のオカレンスを監視すること（ステップ３１０）であって、監視されるオカレンスのタイプおよび／または監視されるオカレンスのタイプのパターンの変化は、疑わしい、ことと、監視されるオカレンスに基づいて、アクティビティのパターンを識別すること（ステップ３２０）と、ベースラインアクティビティデータに基づいて、アクティビティのパターンが予期されているかどうかを決定すること（ステップ３３０）とを含む。方法３００のステップのいくつかの実施形態は、下記にさらに詳細に説明される。
【００７８】
ステップ３１０では、コンピュータシステム内のオカレンスが、監視される。コンピュータシステム内のオカレンス（例えば、潜在的セキュリティリスクに関連付けられたオカレンス）を監視するためのいくつかの技法は、図２の方法２００のステップ２１０を参照して上で説明されている。
【００７９】
ステップ３２０では、コンピュータシステム内のアクティビティのパターン（例えば、コンピュータシステムのセキュリティに関連するアクティビティのパターン）が、監視されるオカレンスに基づいて識別される。監視されるオカレンスに基づいてアクティビティのパターンを識別するためのいくつかの技法は、図２の方法２００のステップ２２０を参照して上で説明されている。
【００８０】
ステップ３３０では、インシデント検出モジュール１６０が、ベースラインアクティビティデータに基づいて（例えば、挙動ベースラインデータベース１３０内に記憶される挙動ベースラインデータに基づいて）識別されたアクティビティのパターンが予期されているかどうかを決定する。いくつかの実施形態では、インシデント検出モジュール１６０は、好適なクエリを挙動ベースライン化モジュール１５０に送信することによって、アクティビティのパターンが予期されているかどうかを決定し、クエリは、アクティビティのパターンを表すデータを含む。上で説明される技法を使用して、挙動ベースライン化モジュールは、アクティビティのパターンを評価し、アクティビティのパターンが予期されているか、または予期されていないかを示すインシデント検出モジュールのクエリに対する応答を送信することができる。アクティビティのパターンが予期されていない場合、インシデント検出モジュール１６０は、アクティビティのパターンに関連するセキュリティアラートを発行し得る。そうでなければ、インシデント検出モジュール１６０は、セキュリティアラートを発行することを控え得る。
【００８１】
いくつかの実施形態では、ベースライン化モジュール１５０は、訓練期間の間、コンピュータシステム内の予期されたアクティビティのパターンを識別し（例えば、方法２００を使用して）、インシデント検出エンジン１６０は、後続の検出期間の間、実際のアクティビティのパターンと予期されたアクティビティのパターンとの間の差異に基づいて、サイバーセキュリティインシデントを検出する（例えば、方法３００を使用して）。いくつかの実施形態では、インシデント検出エンジン１００は、周期的または好適な時間において、訓練期間と検出期間を交互する。いくつかの実施形態では、インシデントエンジン１００は、インシデント検出エンジン１００が、同時に、（１）新しい予期されたアクティビティのパターンを識別（または既存の予期されたアクティビティのパターンを更新）し、（２）実際のアクティビティのパターンとすでに識別された予期されたアクティビティのパターンとの間の差異に基づいて、サイバーセキュリティインシデントを検出するように、少なくとも部分的に並行して、訓練期間および検出期間を実施する。
【００８２】
当業者は、規定されたユーザ／ユーザの組、リソース／リソースの組、および／またはデバイス／デバイスの組を伴うアクティビティのパターンの観点から疑わしいアクティビティを定義することが、様々なコンピュータシステムに広く適用可能である一般的セキュリティルールを確立するための簡潔かつ効率的技法であることを理解されるであろう。当業者は、本明細書に説明される技法が、そのような概して疑わしいアクティビティのパターンに対するシステム特有の例外を識別することによって、インシデント検出エンジン１００を効率的にカスタマイズし、異なるコンピュータシステムの独自性に適応するために使用されることができることをさらに理解するであろう。
【００８３】
（いくつかの実施形態のさらなる説明）
本開示に説明される、方法、および動作のいくつかの実施形態は、デジタル電子回路内、または本明細書に開示される構造およびその構造均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア内に、またはそれらのうちの１つ以上のものの組み合わせにおいて、実装されることができる。本明細書に説明される主題の実装は、１つ以上のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはその動作を制御するために、コンピュータ記憶媒体上にエンコードされたコンピュータプログラム命令の１つ以上のモジュールとして実装されることができる。
【００８４】
代替として、または加えて、プログラム命令は、データ処理装置による実行のために好適な受信機装置への伝送のための情報をエンコードするために生成される人工的に生成されて伝搬される信号、例えば、機械生成電気、光学、または電磁信号上にエンコードされることができる。コンピュータ記憶媒体は、コンピュータ読み取り可能な記憶デバイス、コンピュータ読み取り可能な記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの１つ以上のものの組み合わせであるか、もしくはそれらの中に含まれることができる。さらに、コンピュータ記憶媒体は、伝搬される信号ではないが、コンピュータ記憶媒体は、人工的に生成されて伝搬される信号内にエンコードされたコンピュータプログラム命令のソースまたは宛先であることができる。コンピュータ記憶媒体はまた、１つ以上の別個の物理的コンポーネントまたは媒体（例えば、複数のＣＤ、ディスク、または他の記憶デバイス）である、もしくはその中に含まれることができる。
【００８５】
本明細書に説明される方法および動作のいくつかの実施形態は、データ処理装置によって、１つ以上のコンピュータ読み取り可能な記憶デバイス上に記憶されるか、または他のソースから受信されたデータに行われる動作として実装されることができる。
【００８６】
用語「データ処理装置」は、データ処理のための全ての種類の装置、デバイス、および機械を包含し、一例として、プログラマブルプロセッサ、コンピュータ、チップ上のシステム、または前述の複数のものもしくは組み合わせを含む。装置は、特殊目的論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）を含むことができる。装置は、ハードウェアに加え、当該コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械、またはそれらのうちの１つ以上のものの組み合わせを構成するコードを含むこともできる。装置および実行環境は、種々の異なるコンピューティングモデルインフラストラクチャ、例えば、ウェブサービス、分散型コンピューティング、およびグリッドコンピューティングインフラストラクチャを実現することができる。
【００８７】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）は、コンパイラ型またはインタープリタ型言語、宣言型または手続型言語を含むプログラミング言語の任意の形態で書き込まれることができ、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するために好適な他の単位としてを含む任意の形態で展開されることができる。コンピュータプログラムは、必要ではないが、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータ（例えば、マークアップ言語リソース内に記憶される１つ以上のスクリプト）を保持するファイルの一部内、当該プログラムに専用の単一ファイル内、または複数の協調ファイル（例えば、１つ以上のモジュール、サブプログラム、またはコードの一部を記憶する、ファイル）内に記憶されることができる。コンピュータプログラムは、１カ所に位置する、または数箇所を横断して分散され、通信ネットワークによって相互接続される、１つのコンピュータまたは複数のコンピュータ上で実行されるように展開されることができる。
【００８８】
本明細書に説明されるプロセスおよび論理フローのいくつかの実施形態は、１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブルプロセッサによって行われ、入力データに基づいて動作し、出力を生成することによってアクションを行うことができる。本明細書に説明されるプロセスおよび論理フローのいくつかの実施形態は、特殊目的論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）によって行われることができ、本明細書に説明される装置のいくつかの実施形態は、そのようなものとして実装されることができる。
【００８９】
コンピュータプログラムの実行のために好適なプロセッサは、一例として、汎用および特殊目的マイクロプロセッサの両方および任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサを含む。概して、プロセッサは、命令およびデータを読み取り専用メモリまたはランダムアクセスメモリもしくは両方から受信するであろう。
【００９０】
図４は、コンピュータ４００のブロック図を示す。コンピュータ４００は、命令に従ってアクションを実施するための１つ以上のプロセッサ４０２と、命令およびデータを記憶するための１つ以上のメモリデバイス４０４とを含む。いくつかの実施形態では、コンピュータ４００は、インシデント検出エンジン１００を実装する。インシデント検出エンジン１００は、コンピュータシステム内の予期されたアクティビティのパターンを決定する方法２００および／またはコンピュータシステム内の実際のアクティビティのパターンと予期されたアクティビティのパターンとの間の差異に基づいて、セキュリティインシデントを検出する方法３００を実施し得る。異なるバージョンのインシデント検出エンジン１００が、記憶、分散、またはインストールされ得る。いくつかのバージョンのソフトウェアは、本明細書に説明される方法のいくつかの実施形態のみを実装し得る。ソフトウェアコンポーネント１４０−１６０は、同一または異なる個々のデータ処理装置上で実行され得るサブコンポーネントを含むことができる。データベース１１０−１３０は、１つ以上の物理的記憶システム内に常駐することができ、例えば、関係データベース、フラットファイル、オブジェクト指向データベース、またはそれらの組み合わせとして、実装されることができる。
【００９１】
概して、コンピュータ４００は、データを記憶するための１つ以上の大容量記憶デバイス、例えば、磁気、磁気光ディスク、もしくは光ディスクも含むか、またはそれからデータを受信すること、それにデータを転送すること、もしくは両方を行うように動作可能に結合されるであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、いくつか挙げると、携帯電話、携帯情報端末（ＰＤＡ）、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）受信機、またはポータブル記憶デバイス（例えば、ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ）内に内蔵されることができる。コンピュータプログラム命令およびデータを記憶するために好適なデバイスは、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、一例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク、磁気光ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む。プロセッサおよびメモリは、特殊目的論理回路によって補完されること、またはその中に組み込まれることができる。
【００９２】
ユーザとの相互作用を提供するために、本明細書に説明される主題の実装は、情報をユーザに表示するためのディスプレイデバイス、例えば、ＣＲＴ（ブラウン管）またはＬＣＤ（液晶ディスプレイ）モニタと、ユーザが入力をコンピュータに提供することができる、キーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールとを有するコンピュータ上に実装されることができる。他の種類のデバイスも同様に、ユーザとの相互作用を提供するために使用されることができる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚的フィードバック、聴覚フィードバック、または触知フィードバックであることができ、ユーザからの入力は、音響、発話、または触知入力を含む任意の形態で受信されることができる。加えて、コンピュータは、ユーザによって使用されるデバイスにリソースを送信し、リソースをそこから受信することによって、例えば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
【００９３】
いくつかの実施形態は、バックエンドコンポーネント、例えば、データサーバを含むこと、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含むこと、またはフロントエンドコンポーネント、例えば、ユーザが本明細書に説明される主題の実装と相互作用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを含むこと、または１つ以上のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステム内に実装されることができる。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク（「ＬＡＮ」）および広域ネットワーク（「ＷＡＮ」）、インターネットワーク（例えば、インターネット）、およびピアツーピアネットワーク（例えば、アドホックピアツーピアネットワーク）を含む。
【００９４】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して、互いから遠隔にあって、典型的には、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で起動し、クライアント−サーバ関係を互いに有するコンピュータプログラムによって生じる。いくつかの実装では、サーバは、データ（例えば、ＨＴＭＬページ）をクライアントデバイスに伝送する（例えば、クライアントデバイスと相互作用するユーザにデータを表示し、ユーザ入力をそこから受信する目的のため）。クライアントデバイスにおいて生成されたデータ（例えば、ユーザ相互作用の結果）は、サーバにおいてクライアントデバイスから受信されることができる。
【００９５】
１つ以上のコンピュータのシステムは、動作時、システムにアクションを行わせるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを有することによって、特定の動作またはアクションを行うように構成されることができる。１つ以上のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを行わせる命令を含むことによって、特定の動作またはアクションを行うように構成されることができる。
【００９６】
本明細書は、多くの具体的実装詳細を含むが、これらは、任意の発明または請求され得るものの範囲に対する限定としてではなく、むしろ、特定の発明の特定の実装に特有な特徴の説明として解釈されるべきである。別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴はまた、複数の実装において、別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴は、ある組み合わせにおいて作用するように上で説明され、さらに、最初にそのように請求され得るが、請求される組み合わせからの１つ以上の特徴は、いくつかの場合では、組み合わせから除外されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例も対象とし得る。
【００９７】
同様に、動作は、特定の順序で本開示に説明または図面に描写され得るが、これは、そのような動作が、示される特定の順序において、または連続的順序において実施されること、または全ての例証される動作が望ましい結果を達成するために実施されることを要求するものとして理解されるべきではない。ある状況では、マルチタスクおよび並列処理が、有利であり得る。
【００９８】
さらに、上で説明される実装における種々のシステムコンポーネントの分離は、全ての実装においてそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品の中にパッケージ化され得ることを理解されたい。
【００９９】
したがって、主題の特定の実装が、説明されている。他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に記載されるアクションは、異なる順序において実施され、依然として、望ましい結果を達成することができる。加えて、付随の図に描写されるプロセスは、望ましい結果を達成するために、必ずしも、示される特定の順序または連続的順序を要求しない。ある実装では、マルチタスクおよび並列処理が、有利となり得る。
【０１００】
（専門用語）
本明細書に使用される語句および専門用語は、説明を目的としており、限定として見なされるべきではない。
【０１０１】
本明細書および請求項に使用されるような用語「約」、語句「〜にほぼ等しい」、および他の類似する語句（例えば、「Ｘは約Ｙの値を有する」または「ＸはＹにほぼ等しい」）は、１つの値（Ｘ）が別の値（Ｙ）の事前決定された範囲内であることを意味するように理解されるべきである。事前決定された範囲は、別様に示されない限り、±２０％、１０％、５％、３％、１％、０．１％、または０．１％未満であり得る。
【０１０２】
本明細書および請求項に使用されるような不定冠詞「ａ」ならびに「ａｎ」は、そうでないことが明確に示されない限り、「少なくとも１つ」を意味するように理解されるべきである。本明細書および請求項に使用されるような語句「および／または」は、そのように結合された要素、すなわち、いくつかの場合には結合的に存在し、他の場合には離接的に存在する要素の「一方または両方」を意味するように理解されるべきである。「および／または」を用いて列挙された複数の要素は、同一の方式で、すなわち、そのように結合された要素のうちの「１つ以上のもの」として解釈されるべきである。具体的に識別されるそれらの要素に関連するかどうかにかかわらず、「および／または」節によって具体的に識別される要素以外の他の要素も、随意に存在し得る。したがって、非限定的例として、「〜を備えている」等の非限定的言語と併用されるとき、「Ａおよび／またはＢ」の言及は、一実施形態では、Ａのみ（随意に、Ｂ以外の要素を含む）を指し、別の実施形態では、Ｂのみ（随意に、Ａ以外の要素を含む）を指し、また別の実施形態では、ＡおよびＢの両方（随意に、他の要素を含む）等を指し得る。
【０１０３】
本明細書および請求項に使用されるように、「または」は、上で定義されるような「および／または」と同一の意味を有するように理解されるべきである。例えば、リスト内の項目を分離するとき、「または」もしくは「および／または」は、包括的であるとして、すなわち、いくつかの要素またはそのリストのうちの少なくとも１つ（但し、１つを上回るものも含む）および随意に追加の列挙されていない項目の包含として解釈されるものとする。「〜のうちの１つのみ」もしくは「〜のうちの厳密に１つ」または請求項において使用されるとき、「〜から成る」等のそうでないことが明確に示される用語のみが、いくつかの要素またはそのリストの厳密に１つの要素の包含を指すであろう。概して、使用されるような用語「または」は、「いずれか」、「〜のうちの１つ」、「〜のうちの１つのみ」、または「〜のうちの厳密に１つ」等の排他性の用語によって先行されると、排他的代替（すなわち、「両方ではないが、一方または他方」）を示すようにのみ解釈されるものとする。請求項において使用されるとき、「〜から本質的に成る」は、特許法の分野において使用されるようなその通常の意味を有するものとする。
【０１０４】
本明細書および請求項に使用されるように、１つ以上の要素のリストに関する語句「少なくとも１つ」は、要素のリスト内の要素のうちの１つ以上のものから選択される少なくとも１つの要素を意味するように理解されるべきであるが、必ずしも、要素のリスト内に具体的に列挙されるあらゆる要素のうちの少なくとも１つを含むわけではなく、要素のリスト内の要素の任意の組み合わせを除外するわけではない。この定義は、具体的に識別されるそれらの要素に関連するかどうかにかかわらず、語句「少なくとも１つ」が指す要素のリスト内の具体的に識別される要素以外の要素が随意に存在し得ることも可能にする。したがって、非限定的例として、「ＡおよびＢのうちの少なくとも１つ」（または同じく、「ＡまたはＢのうちの少なくとも１つ」もしくは同じく、「Ａおよび／またはＢのうちの少なくとも１つ」）は、一実施形態では、いかなるＢも存在しない、随意に、１つを上回るＡを含む少なくとも１つのＡ（および随意に、Ｂ以外の要素を含む）を指し、別の実施形態では、いかなるＡも存在しない、随意に、１つを上回るＢを含む少なくとも１つのＢ（および随意に、Ａ以外の要素を含む）を指し、また別の実施形態では、随意に、１つを上回るＡを含む少なくとも１つのＡおよび、随意に、１つを上回るＢを含む少なくとも１つのＢ（および随意に、他の要素を含む）等を指し得る。
【０１０５】
「〜を含む」、「〜を備えている」、「〜を有する」、「〜を含む」、「〜を伴う」、およびそれらの変形例の使用は、その後に列挙される項目および追加の項目を包含することを意味する。
【０１０６】
請求項要素を修正するための請求項における「第１」、「第２」、「第３」等の序数用語の使用は、それ自体では、１つの請求項要素の別のものに対する任意の優先順位、優先度、もしくは順序、または方法の行為が実施される時間的順序を含意しない。序数用語は、単に、ある名称を有する１つの請求項要素を（序数用語の使用がなければ）同一の名称を有する別の要素から区別し、請求項要素を区別するための標識として使用される。
【０１０７】
（均等物）
したがって、本発明の少なくとも１つの実施形態の側面が説明されたが、種々の代替、修正、および改良が、容易に当業者に想起されるであろうことを理解されたい。そのような代替、修正、および改良は、本開示の一部であることが意図され、かつ本発明の精神および範囲内であることが意図される。したがって、前述の説明および図面は、例示にすぎない。
【図１】
2019530083.tif 000003
【図２】
2019530083.tif 000004
【図３】
2019530083.tif 000005
【図４】
2019530083.tif 000006
【国際調査報告】
2019530083.tif 000007
2019530083.tif 000008
2019530083.tif 000009