(57)【要約】オペレーティングシステムを実行するコンピューティングデバイスのゲームエンジンセンサは、モニタされたイベントの発生を表すオペレーティングシステムからの第１データを受信する。前記ゲームエンジンセンサは、前記モニタされたイベントに対応する第２データをゲームエンジンロジックコントローラへ送信する。前記ゲームエンジンロジックコントローラの第１ロジックブロックは、前記第２データおよびコンピューティングデバイスに関連するシステム状態を表す第３データに基づいて、第１述語条件が満たされていることを判断する。前記ゲームエンジンロジックコントローラの第２ロジックブロックは、前記第２データおよび前記第３データに基づいて、第２述語条件が満たされていることを判断する。コンピュータセキュリティ脅威は、前記第１述語条件と前記第２述語条件とが満たされていることに基づいて検出され、少なくとも１つのゲームエンジンアクチュエータは前記コンピュータセキュリティ脅威に応答する少なくとも１つのアクションを実行するように指示される。【選択図】図２
2021536088.tif 000002
【特許請求の範囲】
【請求項１】
ゲームエンジンベースコンピュータセキュリティの方法であって、
オペレーティングシステムを実行するコンピューティングデバイスのゲームエンジンセンサにおいて、モニタされたイベントの発生を表す前記オペレーティングシステムからの第１データを受信し、
前記ゲームエンジンセンサから、前記モニタされたイベントに対応する第２データをゲームエンジンロジックコントローラへ送信し、
前記ゲームエンジンロジックコントローラの第１ロジックブロックにおいて、前記第２データおよび前記コンピューティングデバイスに関連するシステム状態を表す第３データに基づいて、第１述語条件が満たされていることを判断し、
前記ゲームエンジンロジックコントローラの第２ロジックブロックにおいて、前記第２データおよび前記第３データに基づいて、第２述語条件が満たされていることを判断し、
前記第１述語条件と前記第２述語条件とが満たされていることに基づいてコンピュータセキュリティ脅威を検出し、
前記コンピュータセキュリティ脅威の検出に基づいて、少なくとも１つのゲームエンジンアクチュエータに前記コンピュータセキュリティ脅威に応答する少なくとも１つのアクションを実行するように指示することを備える、方法。
【請求項２】
前記ゲームエンジンセンサが、ファイルシステムモニタ、プロセスモニタ、認証モニタ、ダウンロードモニタ、スクリーンショットモニタ、リムーバブルメディアモニタ、合成クリックモニタ、ボリュームモニタ、ユーザアクティビティ再開モニタ、カメラモニタ、マイクロフォンモニタ、またはそれらの任意の組み合わせを備える、請求項１に記載の方法。
【請求項３】
前記第２データは、前記モニタされたイベントのタイプ、前記モニタされたイベントのパス、前記モニタされたイベントに関連付けられたディレクトリ情報、前記モニタされたイベントに関連付けられたアプリ情報、またはそれらの任意の組み合わせを含む、請求項１に記載の方法。
【請求項４】
前記第２データは、前記モニタされたイベントに関連するファイルに関する情報、前記ファイルが修正されたかどうか、前記ファイルの内容に関する情報、またはそれらの任意の組み合わせを含む、請求項１に記載の方法。
【請求項５】
前記第２データは、前記モニタされたイベントに関連する実行プロセスに関する情報を含む、請求項１に記載の方法。
【請求項６】
前記第２データは、前記モニタされたイベントに関連するタグデータを含み、前記タグデータは、前記第１ロジックブロックまたは前記第２ロジックブロックの少なくとも１つによって判断される、請求項１に記載の方法。
【請求項７】
前記タグデータが、前記第１ロジックブロックによって前記タグデータに付加された第１タグを含むという判断に少なくとも部分的に基づいて、前記第２ロジックブロックは、前記第２述語条件が満たされていることを判断する、請求項６に記載の方法。
【請求項８】
前記少なくとも１つのアクションは、前記システム状態を更新することを備える、請求項１に記載の方法。
【請求項９】
前記少なくとも１つのアクションは、アラートを生成することを備える、請求項１に記載の方法。
【請求項１０】
前記少なくとも１つのアクションは、ファイルの隔離、ファイルの削除、前記モニタされたイベントに関する追加データの収集、プロセスの終了、ファイアウォールの調整、ネットワーク接続の終了、またはそれらの任意の組み合わせを備える、請求項１に記載の方法。
【請求項１１】
前記ゲームエンジンロジックコントローラは、モバイルデバイス管理（ＭＤＭ）サーバによって実行され、前記モニタされたイベントは、前記ＭＤＭサーバから離れた第１の管理されたコンピューティングデバイスで発生する、請求項１に記載の方法。
【請求項１２】
第２のモニタされたイベントは、第２の管理されたコンピューティングデバイスで発生し、前記コンピュータセキュリティ脅威は、前記第２のモニタされたイベントの前記発生に基づいてさらに検出される、請求項１１に記載の方法。
【請求項１３】
前記システム状態は、複数の管理されたコンピューティングデバイスに関連する状態情報を備える、請求項１１に記載の方法。
【請求項１４】
前記少なくとも１つのアクションは、複数の管理されたコンピューティングデバイスへのコマンドの送信を開始することを備える、請求項１に記載の方法。
【請求項１５】
前記第２データの少なくとも一部に基づいて前記システム状態を照会することをさらに備える、請求項１に記載の方法。
【請求項１６】
システムであって、
少なくとも１つのプロセッサと、
ゲームエンジンセンサにおいて、モニタされたイベントの発生を表すオペレーティングシステムからの第１データを受信し、
前記ゲームエンジンセンサから、前記モニタされたイベントに対応する第２データをゲームエンジンロジックコントローラに送信し、
前記ゲームエンジンロジックコントローラの第１ロジックブロックにおいて、前記第２データおよびコンピューティングデバイスに関連するシステム状態を表す第３データに基づいて、第１述語条件が満たされていることを判断し、
前記ゲームエンジンロジックコントローラの第２ロジックブロックにおいて、前記第２データおよび前記第３データに基づいて、第２述語条件が満たされていることを判断し、
前記第１述語条件と前記第２述語条件とが満たされていることに基づいてコンピュータセキュリティ脅威を検出し、
前記コンピュータセキュリティ脅威の前記検出に基づいて、少なくとも１つのゲームエンジンアクチュエータに、前記コンピュータセキュリティ脅威に応答する少なくとも１つのアクションを実行するように指示する、
前記少なくとも１つのプロセッサによって実行可能な指示を記憶するメモリと、を備えるシステム。
【請求項１７】
前記少なくとも１つのプロセッサおよび前記メモリを含むモバイルデバイス管理（ＭＤＭ）サーバをさらに備える、請求項１６に記載のシステム。
【請求項１８】
前記モニタされたイベントが、前記ＭＤＭサーバから離れた第１の管理されたコンピューティングデバイスで発生し、前記少なくとも１つのアクションが、前記第１の管理されたコンピューティングデバイスとは異なる第２の管理されたコンピューティングデバイスへのコマンドの送信を開始することを備える、請求項１７に記載のシステム。
【請求項１９】
実行されると、少なくとも１つのプロセッサに操作を実行させる指示を記憶するコンピュータ可読記憶装置であって、
ゲームエンジンセンサにおいて、モニタされたイベントの発生を表すオペレーティングシステムからの第１データを受信し、
前記ゲームエンジンセンサから、前記モニタされたイベントに対応する第２データをゲームエンジンロジックコントローラに送信し、
前記ゲームエンジンロジックコントローラの第１ロジックブロックにおいて、前記第２データおよびコンピューティングデバイスに関連するシステム状態を表す第３データに基づいて、第１述語条件が満たされていることを判断し、
前記ゲームエンジンロジックコントローラの第２ロジックブロックにおいて、前記第２データおよび前記第３データに基づいて、第２述語条件が満たされていることを判断し、
前記第１述語と前記第２述語とが満たされていることに基づいてコンピュータセキュリティ脅威を検出し、
前記コンピュータセキュリティ脅威の前記検出に基づいて、少なくとも１つのゲームエンジンアクチュエータに、前記コンピュータセキュリティ脅威に応答する少なくとも１つのアクションを実行するように指示する、ことを備えるコンピュータ可読記憶装置。
【請求項２０】
前記第２データは、前記モニタされたイベントに関連するタグデータを含み、前記タグデータは、前記第１ロジックブロックまたは前記第２ロジックブロックの少なくとも１つによって判断され、前記第２ロジックブロックは、前記タグデータが前記第１ロジックブロックによって前記タグデータに付加された第１タグを含むという判断に少なくとも部分的に基づいて、前記第２述語条件が満たされていることを判断する、請求項１９に記載のコンピュータ可読記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１８年８月７日に出願された米国仮特許出願第６２／７１５，６２７号および２０１９年８月６日に出願された米国非仮特許出願第１６／５３３，７１０号の利益を主張し、その全内容が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
コンピュータシステムやデバイスが普及するにつれて、そのようなシステムやデバイスは、ウイルス、マルウェア、ランサムウェア、フィッシング攻撃などの悪意のあるアクティビティのターゲットになっている。このような悪意のあるアクティビティを防止するために、さまざまなコンピュータセキュリティソリューションがユーザや企業に提供されている。あるコンピュータセキュリティソリューションは、署名ベースであり、悪意のあるファイルに対応することがわかっている署名と悪意のある可能性を有するファイルまたはペイロードとを比較する。しかし、これらのソリューションは内在する署名においてのみ有効であり、常に変化する脅威に対応するために署名のアップデートを発行しようとすることは勝ち目のない提案であり、特にそれは高度なマルウェアは、自動的に変更して署名ベースの検出を無効にすることができる場合が多いためである。人工知能（ＡＩ）ベースソリューションは、悪意のある可能性を有するファイル（またはそれから派生したデータ）をＡＩモデル（例えばニューラルネットワーク）に入力して、そのファイルが悪意のあるものかどうかを予測する。しかし、ＡＩベースソリューションの有効性は基礎となるモデルによって決定され、モデルを訓練するために十分に完全な訓練データを得ることは時として困難である。
【図面の簡単な説明】
【０００３】
本開示の性質及び所望の目的をより完全に理解するために、添付の図面とあわせて以下の詳細な説明が参照され、複数の図面を通じて同様の参照記号は対応する部分を示す。
【０００４】
【図１】図１は、「ブラックボックス」コンピュータセキュリティパイプラインの一例を示す。
【０００５】
【図２】図２は、ゲームエンジンベースコンピュータセキュリティを含むシステムの一例を示す。
【０００６】
【図３】図３は、特定のコンピュータセキュリティを使用する場合に関する図２のシステムにおける動作の一例を示す。
【０００７】
【図４】図４は、ゲームエンジンベースコンピュータセキュリティの方法の一例を示す。
【０００８】
【図５】図５は、ゲームエンジンベースコンピュータセキュリティを含むモバイルデバイス管理（ＭＤＭ）システムの一例を示す。
【発明を実施するための形態】
【０００９】
本開示の態様は、以下の定義を参照して理解することができる。
【００１０】
本明細書で使用される場合、単数形の「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈において明確に断らない限り、複数の参照を含む。
【００１１】
本明細書中で使用される場合、文脈において特に述べられない限り、または文脈から明らかでない限り、用語「約（ａｂｏｕｔ）」および「実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）」  は、当技術分野における通常の許容範囲内、例えば、平均の２標準偏差内であると理解される。「約」および「実質的に」は、記載された値の１０％、９％、８％、７％、６％、５％、４％、３％、２％、１％、０．５％、０．１％、０．０５％、または０．０１％以内として理解することができる。文脈において明確でない限り、本明細書で提供されるすべての数値は、約または実質的に、の用語によって修正される。
【００１２】
本明細書および本特許請求の範囲において使用される場合、用語「備える（ｃｏｍｐｒｉｓｅｓ）」、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｃｏｎｔａｉｎｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、および同様のものは、米国特許法においてそれらに帰せられる意味を有し得て、「含む（ｉｎｃｌｕｄｅｓ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、および同様のものを意味し得る。
【００１３】
文脈において特に述べない限り、または文脈から明白でない限り、本明細書で使用される用語「または（ｏｒ）」は、包括的であると理解される。
【００１４】
本明細書で提供される範囲は、その範囲内のすべての値を簡潔に表現したものであると理解される。例えば、１から５０までの範囲は、１、２、３、４、５、６、７、８、９、１０、１１、１２、１３、１４、１５、１６、１７、１８、１９、２０、２１、２２、２３、２４、２５、２６、２７、２８、２９、３０、３１、３２、３３、３４、３５、３６、３７、３８、３９、４０、４１、４２、４３、４４、４５、４６、４７、４８、４９、または５０からなるグループの任意の数、数の組み合わせ、またはサブ範囲を含むと理解される（及びその端数（文脈により別に定める場合を除く。））。
【００１５】
ある態様において、ゲームエンジンベースコンピュータセキュリティのためのシステムおよび関連する方法が開示される。ゲームエンジンとコンピュータセキュリティとは、無関係なコンピュータ概念であると考えられるが（ゲームは悪意のあるファイルの一般的な感染経路である）、本開示の態様は、コンピュータセキュリティ機能を実装するためにゲームエンジンアーキテクチャのコンポーネントを利用することを含み、この機能には、特定のゲームまたは一般的なゲームとは無関係な機能も含まれる。
【００１６】
ゲームエンジンは、主にビデオゲームの再利用可能なコンポーネントを構築するために設計されたソフトウェアフレームワークまたは開発環境を含み得る。ゲームエンジンのコア機能には、多くの場合、レンダリングエンジン、物理エンジン、アニメーション、照明効果などが含まれる。一部のゲームエンジンには、ゲーム内で生成または受信される１つ以上の入力が与えられた場合に、ゲーム内で実行される一連の出力を決定する論理機能を実行するように構成されたコンポーネントも含まれる。
【００１７】
特定の態様において、ゲームエンジンは、１つ以上のセンサ、プロパティ／状態モデル、ロジックコントローラ、およびアクチュエータを含み得る。センサは、ゲーム環境からデータを収集し、環境内のオブジェクトのプロパティおよび状態としてデータをロジックコントローラに提供することができる。プロパティ／状態モデルは、センサから収集された入力、およびそのような入力がゲーム環境全体の全体モデルにどのように適合するかを表すことができる。ロジックコントローラは、ゲーム状態およびセンサのプロパティに対する操作および／またはシミュレーションを実行することができ、これを使用してゲーム状態を調整し、アクチュエータに信号を送信することができる。アクチュエータは、オブジェクトの移動、オブジェクトの追加／削除などの機能を実行できる。これらのアクションは、ロジックコントローラの出力によって開始される。
【００１８】
コンピュータセキュリティ機能を実行するためにゲームエンジンを使用することは、従来のコンピュータセキュリティ技術とは著しく異なることが理解されよう。例えば、アンチウイルスやその他のエンドポイント検出技術は、多くの場合、イベントの観察、ルールの評価、そして最終的にはアクション／アラートの、厳格で、ブラックボックス化されたデータパイプラインに依存する。このようなパイプライン１００の例を図１に示す。このパイプライン処理されたプロセスをゲームエンジンコンポーネント（例えば、センサ、システム状態、ロジックコントローラ、およびアクチュエータ）にマッピングすることで、オープンでカスタマイズ可能、柔軟、拡張可能なある種のエンドポイント検出と応答が導入され、人工知能（ＡＩ）ベースの意思決定がサポートされる。本明細書に記載の方法およびシステムは、ゲームエンジンのフレームワークおよびセマンティクスを使用してコンピュータオペレーティングシステムおよびエンドユーザ主導の動作をモデル化し、エンドポイントデバイス上の興味深い、疑わしい、または悪意のあるサイバーセキュリティイベントを、カスタマイズ可能で柔軟かつ拡張可能な方法で収集、検出、および／または応答することを可能にする。
【００１９】
図２は、一態様によるゲームエンジンベースのコンピュータセキュリティを含むシステム２００を示す。システム２００は、１つ以上のセンサ２０５を含み、これらのセンサは、オペレーティングシステムイベント（例：システムイベントモニタ）のリアルタイムまたはリアルタイムに近い検出のための一連のモニタとして、オペレーティングシステムに関して配置することができる。例示すると、センサ２０５は、オペレーティングシステムまたは一般にオペレーティングシステムの制御下にあるコンポーネントとのユーザモードおよび／またはカーネルモード通信を利用するソフトウェアサブルーチンに対応してもよい。いくつかの例では、センサ２０５は、追加的にまたは代替的に、オペレーティングシステムと通信するハードウェアコンポーネントに対応してもよい。
【００２０】
特定の例では、センサ２０５は、プロセス、ファイル、入力／出力（Ｉ／Ｏ）動作、ネットワーク活動、ダウンロード、キーロガー、合成クリック、周辺機器アクセス（例えば、カメラやマイク）、スクリーンショットなどのモニタをサポートするＯｐｅｎＢＳＭなどのオペレーティングシステム監査フレームワークまたはアプリケーションプログラミングインタフェース（ＡＰＩ）に基づく。したがって、センサ２０５は、ファイルシステムモニタ、プロセスモニタ、ネットワークモニタ、認証モニタ（例えば、キーチェーンモニタ）、ダウンロードモニタ、スクリーンショットモニタ、リムーバブルメディア（例えば、ＵＳＢ、外付けハードドライブ）モニタ、合成クリック（例えば、マウスのプログラム的使用）モニタ、ボリューム（例えば、論理ディスク）モニタ、ユーザ活動再開モニタ（例えば、ノートパソコンのカバーを開けたり、スクリーンセーバーモードから復帰したり、電源を入れたりすること）、および／またはＷｅｂカメラ／マイク活動モニタを含むことができるが、これらに限定されない。
【００２１】
センサ２０５は、ローデータを観察し、構文解析し、ターゲットデータモデルに編成することができ、システム状態（例えば、キャッシュ）への更新を容易にして、新たに受信されたイベントを反映し、かつ新たなイベントおよびシステム状態をロジックコントローラに送信することを可能にする。計算機アプリケーションが起動されたときに、オペレーティングシステムからセンサ２０５によって受信され得るローデータの例示的で非限定的な例が、以下に提供される。
2021536088.tif 000003
2021536088.tif 000004
【００２２】
オブジェクトデータモデルの例示的で非限定的な実施例を以下に提供する。この例には、「プロセス（Ｐｒｏｃｅｓｓ）」サブオブジェクトを含む「プロセスイベント（Ｐｒｏｃｅｓｓ  Ｅｖｅｎｔ）」オブジェクトが含まれる。任意の数のオブジェクトがターゲットデータモデルの一部であってもよく、オブジェクトは任意の数のサブオブジェクトを含んでもよいことを理解されたい。さらに、ターゲットデータモデルは、オペレーティングシステムから受信したローデータの一部を含むことができるだけでなく、ローデータに基づいて計算されるデータおよび／または利用可能なまたは測定可能な他のデータに基づいて計算されるデータも含むことができる。場合によっては、ターゲットデータモデルは、特定のデータ項目を計算するために実行可能なコードを含み、またはそれを指し示し、そのようなデータ項目は、ロジックブロック／ルールによって参照されるときに動的に（例えば、ジャストインタイム）評価される。
2021536088.tif 000005
2021536088.tif 000006
2021536088.tif 000007
2021536088.tif 000008
【００２３】
システム２００は、システム状態モデル２１０を含むこともできる。モデル２１０（図２において「システム状態（ｓｙｓｔｅｍ  ｓｔａｔｅ）」で示される）は、（例えば、センサ２０５によって観察される）オペレーティングシステムからローデータを受信することができる。いくつかの例では、センサ２０５によって実行されるような上述した構文解析および編成の全部または一部は、代わりにモデル２１０で実行されてもよい。センサ２０５から受信され、および／またはモデル２１０で生成されたモデル化されたイベントデータは、コードで計算／収集されたデータを含む、計算（例えば所定の計算）および関係（例えば既知の関係）を含むようにさらに拡張することができる。システム２００の態様は、事前に評価されたイベントのキャッシュ（例えば、以前のロジックコントローラで拡張された出力／拡張）および環境の現在および過去の状態を表す以前に収集されたシステムデータタイプ（例えば、ファイル、プロセス、ユーザ、グループなど）によりモデル化することができる。いくつかの例では、システム状態キャッシュは、以前のイベントが記憶され、照会可能なテーブルまたはその他のデータ構造である。したがって、所与の時点で、モデル２１０は、システム２００で「現在（ｃｕｒｒｅｎｔｌｙ）」起こっていること、および／またはその時点までにシステム２００で起こったことを表すことができる。
【００２４】
いくつかの態様において、モデル２１０は、本明細書にさらに記載するように、ロジックコントローラにおいて評価されるカスタマイズされたユーザ定義ロジックによって拡張  （例えば、「タグ（ｔａｇｓ）」）を適用することを可能にする。このような拡張は、ロジックコントローラにおけるイベント評価の間にそれらが一緒にチェーンされるときに、より高いレベルの概念および動作を記述するために使用することができ、イベントがシステム２００を通過するときに、イベントがよりよく理解されることを可能にする。場合によっては、イベントを後のイベントに関して「直交データ（ｏｒｔｈｏｇｏｎａｌ  ｄａｔａ）」として再評価することができる。
【００２５】
システム２００は、ロジックコントローラ２１５を含むこともできる。ロジックコントローラ２１５は、述語ベースのルールシステム、グラフ、決定木、状態機械、決定論的または確率論的戦略、カスタムコード、および／または上述のシステム内のＡＩ発見可能ロジックブロックを含む他の人工知能（ＡＩ）アルゴリズムであってもよく、またはそれらを実装してもよい。ロジックコントローラ２１５は、異なる動作を記述および／または検出するために、個別に定義、構成、追加、除去などが可能なロジックブロック２１６上に構築されてもよい。ロジックブロック２１６は、単一のロジックブロック２１６からの出力が入力として他のロジックブロック２１６に供給され得るので、上位レベルの概念を記述し、「創発的な（ｅｍｅｒｇｅｎｔ）」動作を検出するために一緒にチェーンされ得る。ロジックコントローラ２１５は、センサ２０５から新しい（例えば、モデル化された）入力を受け取ることができる。次いで、ロジックコントローラ２１５は、ロジックブロック２１６を構成された順序で実行することができる。異なるロジックブロック２１６内の異なるコンピュータセキュリティ検出器のためにロジックをカプセル化することにより、様々なセキュリティ脅威に対する検出器の迅速な展開を可能にする。例えば、同じ定義済みまたはユーザ定義のロジックブロックを異なる脅威検出器に配置できる。
【００２６】
ロジックブロック２１６の実行は、様々な機能をもたらすことができる。場合によっては、ロジックブロック２１６の実行は、個々のイベントについてシステム状態モデル２１０を更新または拡張することができる。ロジックブロック２１６は、システムイベントに関連する定性的および定量的データに基づいて構築することができる。システム２００は、「コンテキスト（ｃｏｎｔｅｘｔ）」データ（例えば、ｋｅｙ：ｖａｌｕｅペア）および／または「タグ（ｔａｇｓ）」 データ（例えば、キー（ｋｅｙ）のリスト）をサポートすることができる。どちらのタイプのデータも、ルールへの入力として使用できる。
【００２７】
場合によっては、ロジックブロック２１６の実行によって完全にエンリッチされたイベントが出力され、システム２００のシステム状態モデル２１０を、計算された「コンテキスト」および／または「タグ」を含めて更新することができる。本明細書にさらに記載するように、場合によっては、ロジックブロック２１６の実行により、アクチュエータに供給する「アクション（ａｃｔｉｏｎｓ）」のリストを出力することになり得る。
【００２８】
ロジックブロック２１６の異なる組み合わせをチェーンさせることができることにより、コンピュータセキュリティ問題のための強力かつ柔軟な検出フレームワークを可能にすることが理解されよう。上流ロジックブロック２１６は、システム２００を通過するときにイベントおよび他のデータに選択的にタグを付ける「ラベラ（ｌａｂｅｌｅｒｓ）」と考えることができ、下流ロジックブロック２１６は、イベントタグおよび／またはシステム状態の特定の組み合わせが存在する場合に特定のアクションを取るためにアクチュエータ２２０にコマンドを発行する述語「コンバイナ（ｃｏｍｂｉｎｅｒｓ）」と考えることができる。ロジックブロック（またはルール）チェーンの例として、第１ロジックブロックは、ファイルが署名されていないかどうかを検出することができ、第２ロジックブロックは、署名されていないとして検出されたファイルがゲストアカウント権限を高める（または高めようとする）場合にアラートを開始することができる。
【００２９】
システム２００は、一組のアクチュエータ２２０を含むことができる。アクチュエータ２２０は、ロジックコントローラ２１５（ここで、その入力は、センサ２０５によって検出されたイベントおよび／または全体的なシステム状態に関するモデル２１０からの情報に基づいて決定された）から入力を受け取り、受け取った入力に基づいて一つ以上のアクションを実行することができる。アクチュエータのアクションは設定可能である（例えば、ログ、アラートなどの設定された宛先）。したがって、設定に応じて、同じアクチュエータは、システム状態モデル２１０でキャッシュされ、ログファイルに書き込まれるデータを多かれ少なかれ生じさせることができ、したがって、管理者は、返されるデータの冗長度を設定することができる。例えば、管理者は、キャッシュ、ログ、収集などの直交データの量やタイプを選択できる。
【００３０】
アクチュエータ２２０は、種々のアクションを実行することができる。場合によっては、アクチュエータ２２０は、「キャッシュ（ｃａｃｈｅ）」アクションを実行することができ、アクチュエータ２２０は、所与のイベントについてロジックコントローラ２１５の出力によりシステム全体の状態（例えば、モデル２１０）を更新する。場合によっては、アクチュエータ２２０は、「ローカル／リモートロギング（ｌｏｃａｌ／ｒｅｍｏｔｅ  ｌｏｇｇｉｎｇ）」アクションを実行することができ、アクチュエータ２２０は、ロジックコントローラ２１５の出力をローカルログファイルのログエントリまたはリモートロギング機能（例えば、イベントマネージャやログマネージャなど）のいずれかに書き込む。場合によっては、アクチュエータ２２０は、「アクティブ応答（ａｃｔｉｖｅ  ｒｅｓｐｏｎｓｅ）」アクションを実行することができ、ここで、アクチュエータ２２０は、例えば、システムまたはユーザにセキュリティの脅威をアラートし、ファイルを隔離し、ファイルを削除し、追加データを収集し、プロセスを終了し、システムファイアウォールを調整し、および／またはネットワーク接続を終了することができる。
【００３１】
実施形態に応じて、図２の１つ以上のコンポーネントをゲームエンジンの一部として含むことができる。例えば、システム状態モデル２１０、ロジックコントローラ２１５、ロジックブロック２１６、およびアクチュエータ２２０は、ゲームエンジンの一部であってもよく、センサ２０５は、ゲームエンジンに結合されてもよい。
【００３２】
動作中、システム２００は、様々なコンピュータセキュリティ手順を実施することができる。例えば、ロジックコントローラ２１５は、特定の動作（図２において「（１）」で示す）を実行するように構成することができる。センサ２０５は、イベント（「（２）」で示す）を受信することができ、そのイベントは、例えば、コンピューティングデバイスのオペレーティングシステムによって生成されるか、またはオペレーティングシステムで発生するイベントである。センサ２０５は、イベントのローデータを操作して、イベント’（システム状態モデル２１０と互換性のあるイベントの表現）を生成することができる。モデル２１０は、イベント’（「（３）」で示す）に基づいて更新することができる。モデル２１０からのイベント’とシステム状態の組み合わせは、ロジックコントローラ２１５を実装する（例えば、ロジックコントローラ２１５によって呼び出される）１つ以上のロジックブロック２１６に提供され得る。例えば、反復コードループ２１８は、モデル２１０からモデル化されたイベント’およびシステム状態を評価し（「（４）」で示す）、これにはイベントを生成するために、適用可能なタグ／コンテキスト／アクションを識別することを含む。ロジックコントローラ２１５によりアクションが取られるべきであると判断された場合、ロジックコントローラ２１５は、ロギング、レポート、および／またはアラートの伝達などのアクションを取るようにアクチュエータ２２０に指示する。いくつかの例では、システム状態モデル２１０は、イベント’’および取られたアクションに基づいてさらに更新され得る。
【００３３】
したがって、ロジックブロック２１６は、一緒にチェーンされ得る述語を表すことができる。一部の例では、述語は、初期アクセス、実行、永続性、権限昇格、防御回避、資格証明アクセス、検出、ラテラルムーブメント、収集、エクスフィルトレーション、コマンドおよびコントロールなどに対して定義できる。このような述語は、オペレーティングシステムからのストリーミングイベントおよび／またはシステム状態モデルからのキャッシュされたイベントデータに基づいてさまざまなセキュリティ問題を検出するように構成されたさまざまなロジックコントローラで再利用できる。
【００３４】
本明細書に記載されたゲームエンジンベースセキュリティ技術は、疑わしい挙動を具体的に発見するために、従来の署名およびファイル／コンテンツベース検出の先を見据え得ることが理解されよう。通常、マルウェア／疑わしいアクティビティは不明（ｕｎｋｎｏｗｎ）として始まる。従来の署名およびファイル／コンテンツベースの検出では、何かが既知である（あるいは、ファイル／バイナリ／コンテンツレベルでは、少なくとも根本的に異なる）ことが期待される。マルウェア／疑わしいアクティビティには通常、最終的に完了しようとする目的がある。したがって、ファイル／バイナリ／コンテンツレベルで既知の「不良（ｂａｄ）」を探す代わりに（それにもかかわらず、記載されたゲームエンジンベースのセキュリティシステムのいくつかの実装に組み込むことができる）、記載された技法は、アクティビティレベルで疑わしい動作を検査して識別することを含み、そのような動作の多くは、従来の署名およびファイル／コンテンツベースの検出システムでは見落とされる。少なくとも何かが行動的に発見される前に疑わしい行動を開始しなければならないことは真実かもしれないが、従来の署名およびファイル／コンテンツベースのシステムは、典型的には、この活動を検出することができず、実際のサンプルのいくつかの先験的な知識に依存する。サンプルが不明の場合（例えば、０−ｄａｙ脅威の場合）、不可逆的な悪意のあるアクティビティが発生する可能性があり、脅威が不明のままになる可能性がある。しかしながら、上述したゲームエンジンベースのセキュリティシステムでは、悪意のあるアクティビティが最初に感染したデバイスで完全に防止されなかった場合であっても、少なくともそのアクティビティによって脅威が識別され、それに応じて対応することができる。いくつかの例では、疑わしいアクティビティが検出されると、疑わしいアクティビティに対応するファイル／プロセスは、「サンドボックス化（ｓａｎｄｂｏｘｅｄ）」されるか、または仮想マシンに移動され、綿密にモニタされながら、比較的無害な方法で悪意のあるアクティビティを完了させ、脅威に関する追加の知識を得ることができる。
【００３５】
図３は、システム２００における動作の一例を示しており、概して３００で示されている。図３は、「トップシークレット（Ｔｏｐ  Ｓｅｃｒｅｔ）」という言葉を含むスクリーンショット画像がいつシステム２００からリムーバブルメディアデバイスにコピーまたは移動されたかを検出し、さらにそのコピー／移動についてネットワークまたは管理者にアラートする使用状況を示す。この使用状況に対応する（ロジックコントローラに対する）構成を３０１とする。ロジックコントローラを構成することは、本明細書にさらに記載されるように、異なる述語ルールに対応するロジックブロックを生成および／またはチェーンさせることを含み得る。
【００３６】
センサ２０５（例えば、ファイルシステムセンサ）は、オペレーティングシステムによって生成されたローファイルシステムイベント３０２を観察することができる。センサ２０５はさらに、ローファイルシステムイベントを解析し、モデル化されたイベント３０３に編成することができる。例えば、オペレーティングシステムによって提供されるセミドキュメントデータには、「／Ｕｓｅｒｓ／ｕｓｅｒｌ／Ｄｅｓｋｔｏｐ／ｅｘａｍｐｌｅ．ｐｎｇ」のようなパスデータや、「ファイルリネーム（Ｆｉｌｅ  Ｒｅｎａｍｅ）」などのタイプデータを含めることができる。次に、編成されたデータをシステム状態モデル２１０に更新３０４として入力することができる。さらに、「拡張（ｅｘｔｅｎｄｅｄ）」データをシステム状態モデル２１０に入力することもできる。拡張データの例には、参照ファイルパスにあるファイルの追加データを含めることができる。場合によっては、拡張データにオペレーティングシステムから照会された直交データを含めることができる。
【００３７】
システム状態モデル２１０は、イベントに関連するファイルから抽出されるデータによってさらに拡張することができる。例えば、異なるタイプの抽出データは、ローデータ、光学式文字認識（ＯＣＲ）データ、ファイル属性などを含むことができる。
【００３８】
以下に示すのは、「トップシークレット」という語句を含むスクリーンショットがリムーバブルメディアに移動されたときにアラートを生成する複合ルールの例である。
2021536088.tif 000009
【００３９】
したがって、複合ルールは、述部の包括的な「ワンショット（ｏｎｅ−ｓｈｏｔ）」評価を含むことができ、その結果、「アラート（ａｌｅｒｔ）」アクションが実行される。
【００４０】
あるいは、ロジックコントローラ２１５のロジックブロックのチェーンは、単一の複合ルールではなく、システム状態モデル２１０を利用することができる。離散的なチェーン可能ロジックブロックを使用することにより、リソースのかかる操作（例えば、ＯＣＲ画像認識）のためにコンポーネントを再利用することができる。ファイルのリムーバブルメディアへのコピーまたは移動を検出するロジックブロックの例を以下に示す。
2021536088.tif 000010
2021536088.tif 000011
【００４１】
上記でイベントタイプ「リネーム（ＲＥＮＡＭＥ）」が使用されているのは、ファイルがコピーまたは移動されると、該当するオペレーティングシステムがリネームイベントを生成するためである。したがって、ファイルがリムーバブルディスクにコピーまたは移動されると、観察イベントに「リネーム（Ｒｅｎａｍｅ）」タグと「リムーバブル（Ｒｅｍｏｖａｂｌｅ）」タグを付けることができる。システム状態モデル２１０は、このタグで更新することができ、イベントは、タグが適用されたシステム状態モデルルールシステムの残りの部分を通じて継続することができる。
【００４２】
別の例では、「トップシークレット」など、特定の言語に関連付けられたイベントに対するアクションをモニタおよび実行するためのルールを生成できる。スクリーンショットからのＯＣＲデータに「トップシークレット」が含まれているかどうかを判断するロジックブロックの例を以下に示す。
2021536088.tif 000012
【００４３】
したがって、「トップシークレット」（大文字と小文字が区別される場合とされない場合がある）と認識される文字を含むスクリーンショットファイルが観察された場合、システム状態モデル２１０を「トップシークレット」および「スクリーンショット」のタグで更新することができる。その後、システム状態モデルルールシステムの残りの部分にタグを適用して、イベントを継続できる。
【００４４】
さらに別の例では、モニタされたイベントに基づいてアラートを提供するためのルールを生成できる。リムーバブルメディアルールと「トップシークレット」ＯＣＲデータルールの両方がトリガーとして使用された場合にアラートを出力するロジックブロックの例を以下に示す。
2021536088.tif 000013
【００４５】
イベントがこのルールに「到達し（ｒｅａｃｈｅｓ）」、かつ、適切なタグ（「トップシークレット」、「スクリーンショット」、「リネーム」、「リムーバブル」）でタグ付けされている場合、システム状態モデル２１０は、「疑わしい（Ｓｕｓｐｉｃｉｏｕｓ）」タグで更新することができ、イベントは、このタグが適用されたルールスキームの残りの部分を通じて継続する。システム状態モデル２１０は、イベントに関連付けられた「アラート」アクションを含むように更新することもでき、その結果、イベントがルールスキームによりその実行を完了したときに、システム２００は、このルールに基づいてアラートアクションを実行することができる。３０５に示すように、全てのタグが付加され、アクションが決定される前に、1つ以上のロジックブロック実行「ループ（ｌｏｏｐ）」をとることができる。
【００４６】
さらに、または代替的に、ルールは、ルールスキーム全体の順序内にルールの実行を位置付けることができる顕著性値を含むことができる。例えば、顕著性値が２の場合は、ルールスキーム内の他のルールの後にアラートが実行されることを示し得る。さらに、または代替的に、ルールが真と評価される場合、１つ以上の信頼値を評価に割り当てることができる。例示的な例では、信頼値は０と１の間の数であり、信頼値の使用は、結合ルール出力を本質的に「ファジー（ｆｕｚｚｙ）」にする。ルールがイベントに複数のタグを適用する場合、タグは共通の信頼値を共有することも、各タグが独自の信頼値を持つこともできる。いくつかの態様において、信頼値が使用される場合、セキュリティ脅威は、閾値を満たす信頼値の集合（例えば、平均、合計、または他の関数）に少なくとも部分的に基づいて検出され得る。場合によっては、信頼値が使用されるとき、疑わしいアクティビティを検出するために様々なタグを組み合わせた「最終（ｆｉｎａｌ）」ルールを、集合信頼度を閾値と比較するルールに置き換えることができる。
【００４７】
例示では、「トップシークレット」という用語を含むスクリーンショットがリムーバブルメディアにコピーされていると判定された場合、アクチュエータ３０６は、システム状態モデル２１０を更新する３０７、アラート３０８（これは、視覚、聴覚、通信メッセージ（例えば、テキスト、電子メールなど）、または別の種類のアラートであり得る）を出力するなどのアクションを行うように指示される。
【００４８】
このように、図３の例は、入力センサ、モデル化されたイベント、システム状態キャッシュ、ロジックコントローラ／ブロック、およびアクチュエータなどのゲームエンジンコンポーネントを使用して、コンピュータセキュリティ動作をモデル化および実装する柔軟性およびロバストネスの例を示す。実行される各ルールで、システム状態モデルは、実行され得る作動されたコマンド／アクションに関する情報を含む、将来のルール（またはロジックブロック）評価において参照または使用され得る追加の知識で拡張され得る。キャッシュされたシステム状態および、リアルタイムまたはほぼリアルタイムのイベントストリームの両方を利用することによって、開示されたゲームエンジンベースのコンピュータセキュリティシステムおよび方法は、これまで知られていなかったセキュリティ問題を含む、署名ベースおよびＡＩベースソリューションを回避する可能性のあるセキュリティ問題を検出することができる。さらに、イベントがシステムを通過するときにタグをイベントとともに移動させ、システム状態キャッシュに以前のイベントとそのタグ情報をキャッシュすることによって、開示された技法は、集合内のイベントを検査し、それらのイベントが個々に検査されたときに無害であるように見えたとしても、セキュリティ脅威を検出することができる。このように、開示された技法は、自己修正して、署名ベースの検出を回避するセキュリティ脅威を阻止し、悪意のあるアクティビティを「スロー再生（ｓｌｏｗ−ｐｌａｙ）」して、従来の動作ベースの検出／発見的検出を回避することができる。いくつかの実施形態では、開示されたゲームエンジンベースコンピュータセキュリティ技術は、別の（例えば、署名ベースの）セキュリティシステムと共に使用することができる。
【００４９】
一例として、開示されたゲームエンジンベースコンピュータセキュリティ技術は、ランサムウェアのような脅威を検出するように構成することができる。ランサムウェアのような脅威では、通常、３つの条件が満たされる。１つは、信頼できるエンティティ（例えば、オペレーティングシステムのベンダーなど）または信頼できるソフトウェア市場（例えば、既知のアプリストア）によって署名されていないプロセスによって、特定のディレクトリ内のファイルが変更されること、１つは、ファイルの内容が暗号化されること、残りの１つは、短期間に大量のファイルを暗号化する同じプロセスである。したがって、第１のロジックブロックを定義して、ファイルの変更がユーザディレクトリ内の信頼できないプロセスによる暗号化操作であるかどうかを判断し、そうである場合は、イベントにラベル「ＵｎｔｒｕｓｔｅｄＥｎｃｒｙｐｔ」でタグ付けすることができる。
2021536088.tif 000014
【００５０】
場合によっては、オペレーティングシステムは、ファイルが暗号化されているかどうかについての入力をセンサ２０５に提供することができる。その他の場合には、暗号化検出器を使用することができ、暗号化検出器が暗号化、非暗号化、およびエントロピー解析、カイ二乗分布、モンテカルロパイ解析などの数学的手法の組み合わせに基づく圧縮ファイルを区別する。
【００５１】
第２ロジックブロックを第１ロジックブロックにチェーンさせることができ、またＵｎｔｒｕｓｔｅｄＥｎｃｒｙｐｔラベルが存在するときに、ファイルのその信頼できない暗号化のプロセスが複数のファイルを迅速に暗号化したかどうかを決定するために第２ロジックブロックを定義することができる。
2021536088.tif 000015
【００５２】
上記の例において、イベントの「ラベル（ｌａｂｅｌｓ）」データ構造は、イベントがゲームエンジンベースのセキュリティシステムを通過する際に、イベントのイベントタグを維持するために使用されることが理解されよう。第２ロジックブロックによって実現される述語が真であると評価される場合、ランサムウェアのような脅威が検出され、特定のアクチュエータを起動して適切なアクションをとることができる。
【００５３】
別の例では、開示されたゲームエンジンベースコンピュータセキュリティ技術は、高度で持続的な脅威（ＡＰＴ）の挙動を検出するように構成することができる。ＡＰＴ脅威の一例が「Ｗｉｎｄｓｈｉｆｔ」であり、ｍａｃＯＳ（登録商標）の脅威で、ダウンロードしたファイルを自動的に開いたり、カスタムＵＲＬハンドラを登録したり、アプリケーションを起動したりするウェブブラウザを組み合わせてシステムに感染する。ｍａｃＯＳ（登録商標）は、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．の登録商標である。Ｗｉｎｄｓｈｉｆｔのような脅威を検出するには、ウェブブラウザによるファイルの自動オープンを検出するための第１ルールを使用することができる。
2021536088.tif 000016
【００５４】
第２ルールは、カスタムＵＲＬハンドラを検出するために使用することができる。
2021536088.tif 000017
【００５５】
いくつかの例は、ｍａｃＯＳ（登録商標）セキュリティに関して本明細書に記載することができるが、これは例示のためだけであり、限定とは考えられないことを理解されたい。
【００５６】
第３ルールは、アプリケーションの起動を検出するために使用できる。３つのルールすべてがイベントにタグ付けする場合、アクチュエータは、適切なアクションを取るように指示され得る（例えば、Ｗｉｎｄｓｈｉｆｔのような脅威が検出された場合にアラートをトリガーする）。
【００５７】
別の例として、開示されたゲームエンジンベースコンピュータセキュリティ技術は、ほぼ１５年間検出されなかったＭａｃマルウェアであるＦｒｕｉｔＦｌｙのような、またはＦｒｕｉｔＦｌｙに類似のマルウェアを検出するように構成され得る。ＦｒｕｉｔＦｌｙは、本開示のルール／ロジックチェーンを使用して検出することができる特定のセットのインストール時間挙動を示した。具体的には、ＦｒｕｉｔＦｌｙは再起動サイクルの間も存続できる場所にインストールされており、ＦｒｕｉｔＦｌｙはオペレーティングシステムのベンダーによって署名されておらず、ＦｒｕｉｔＦｌｙは隠しバイナリを利用する。第１ルールを使用して、起動アイテムの存続性を検出できる。
2021536088.tif 000018
【００５８】
ファイルがオペレーティングシステムベンダーによって署名されていないかどうかを判断するために、第２ルールを使用できる。
2021536088.tif 000019
【００５９】
隠しバイナリが使用されているかどうかを判断するために、第３ルールを使用することができる（以下の例では、隠しｍａｃＯＳ（登録商標）ファイルが、そのファイル名のｔｅｌｌｔａｌｅプロパティに基づいて検出される）。
2021536088.tif 000020
【００６０】
実行時に、ＦｒｕｉｔＦｌｙは隠しバイナリを符号なしプロセスとして実行し、一時ファイル用の一般的に使用されるフォルダにペイロードをドロップしたが、このルールの例を以下に示す。また、ＦｒｕｉｔＦｌｙは、コンピュータのカメラにアクセスし、合成クリックを生成することが多く、その両方が、本開示のセンサフレームワークおよびルールチェーンを用いて同様に検出され得る。
2021536088.tif 000021
2021536088.tif 000022
【００６１】
別の例では、開示されたゲームエンジンベースコンピュータセキュリティ技術は、通常信頼される個人（例えば、会社員）が会社のセキュリティを脅かすような方法で行動しているかどうかを検出するように構成することができる。例えば、ルールを使用して、ユーザがリムーバブルドライブにファイルを書き込んでいるかどうか（会社の方針に違反する可能性がある）を検出できる。
2021536088.tif 000023
【００６２】
別の例として、ルールを使用して、ユーザがいつｓｕｄｏ利用を呼び出して変更されたセキュリティ権限でプログラムを実行しようとしたかを検出できる。
2021536088.tif 000024
【００６３】
追加のルールを使用して、従業員がいつ画面キャプチャを取得するか、または通常の勤務時間後に何らかのアクティビティを実行しているかを検出できる。
【００６４】
別の例では、ファイルが悪意のあるものであるかもしれないサインである可能性がある、ファイルがそれ自体を削除しようとしているかどうかを検出するようにルールを設定することができる。
2021536088.tif 000025
【００６５】
自己削除ルールとネットワークインターフェイスのドメインネームシステム（ＤＮＳ）設定の変更を検出するように設定されたルールの組み合わせを使用して、ｍａｃＯＳ（登録商標）ＤＮＳハイジャック型マルウェアであるＭａＭｉなどのマルウェアの脅威を検出できる。
【００６６】
さらに別の例として、システム整合性保護（ＳＩＰ）オペレーティングシステムの場所にペイロードを書き込もうとしたかどうかを検出するために、ルールを使用することができる。
【００６７】
本明細書に記載されている種々の実施例および使用例は、単なる例示であり、限定するものとは考えられないことに留意されたい。本開示の技術は、デスクトップ、ラップトップ、サーバ、タブレット、携帯電話、ポータブルメディアプレーヤ、ウェアラブルコンピューティングデバイス等を含むがこれらに限定されない種々のタイプのコンピューティングデバイスと共に使用することができる。本開示の技術は、ｍａｃＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、モバイル／埋め込み型オペレーティングシステム（例えば、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）など）を含むがこれらに限定されない様々なオペレーティングシステムに使用することができる。Ｗｉｎｄｏｗｓは、米国ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．の登録商標である。Ｌｉｎｕｘ（登録商標）は、米国マサチューセッツ州ボストンのＬｉｎｕｓ  Ｔｏｒｖａｌｄｓの登録商標である。ｉＯＳは、米国カリフォルニア州サンノゼのＣｉｓｃｏ  Ｔｅｃｈｎｏｌｏｇｙ，  Ｉｎｃ．の登録商標である。Ａｎｄｒｏｉｄは、米国カリフォルニア州マウンテンビューのＧｏｏｇｌｅ  Ｉｎｃ．の登録商標である。
【００６８】
図４は、ゲームエンジンベースコンピュータセキュリティの方法４００の特定の例を示す。例示的な実施例では、方法４００は、図２〜３を参照して説明した動作に対応する。
【００６９】
方法４００は、オペレーティングシステムを実行するコンピューティングデバイスのゲームエンジンセンサにおいて、４０２において、モニタされたイベントの発生を表すオペレーティングシステムからの第１データを受信することを含む。例えば、センサ２０５は、オペレーティングシステムからデータを受信することができ、そのデータは、モニタされたイベントの発生を表す。方法４００はまた、４０４において、モニタされたイベントに対応する第２データをゲームエンジンセンサからゲームエンジンロジックコントローラに送信するステップを含む。例えば、センサ２０５は、モデル化されたイベントデータをロジックコントローラ２１５に送信することができる。
【００７０】
方法４００はさらに、４０６において、第２データおよびコンピューティングデバイスのシステム状態を表す第３データに基づいて、ゲームエンジンロジックコントローラの第１ロジックブロックにおいて、第１述語条件が満たされていることを判断するステップを含む。方法４００は、４０８において、ゲームエンジンロジックコントローラの第２ロジックブロックにおいて、第２データおよび第３データに基づいて、第２述語条件が満たされていることを判断するステップを含む。例えば、異なるロジックブロック２１６は、図２〜３を参照して説明したように、様々な述語条件が満たされていることを判断することができる。
【００７１】
方法４００はまた、４１０において、第１および第２述語条件が満たされていることに基づいてコンピュータセキュリティの脅威を検出するステップを含む。方法４００はさらに、４１２において、コンピュータセキュリティの脅威の検出に基づいて、少なくとも一つのゲームエンジンアクチュエータに、コンピュータセキュリティの脅威に応答する少なくとも一つのアクションを実行するように指示するステップを含む。例えば、アクチュエータ２２０は、検出された脅威に応答するアクションを実行するように指示され得る。そのようなアクションは、システム状態モデル２１０の更新、アラートの生成、ファイルの隔離、プロセスの終了などを含む。
【００７２】
特定の態様において、本開示のゲームエンジンベースコンピュータセキュリティ技術は、モバイルデバイス管理（ＭＤＭ）のコンテキストにおいて適用され得る。ＭＤＭシステムでは、ＭＤＭサーバは、「スマート（ｓｍａｒｔ）」グループに基づいてグループメンバーシップ情報を維持することができる。本明細書で使用する場合、「スマート」グループは、特定のイベントに応答してメンバーシップが動的に更新されるグループであってもよい。例えば、情報技術（ＩＴ）管理者は、特定のユーザセット（例えば、特定の年齢グループ、特定の雇用役割など）を対象とするグループを作成できる。グループのメンバーシップは、管理されたデバイス（例えば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、テレビ、スマートデバイス、エンターテイメントデバイス、電気器具、車両、ナビゲーションデバイスなど）が参加グループ要求またはリセット要求をＭＤＭサーバに送信する時に動的に更新され得る。本明細書で使用される場合、「ＭＤＭグループ」は、スマートグループを指す。
【００７３】
図５は、モバイルデバイス管理を実行するように動作可能なシステムの一例を示しており、概して５００で示されている。システム５００は、ＭＤＭサーバ５２０を含む。ＭＤＭサーバ５２０は、プッシュ通知サービス５３０、モバイルデバイス５５０、およびコンピューティングデバイス５４０に結合される。二つのデバイスに結合されたＭＤＭサーバ５２０が例示的な例として提供されることを理解されたい。いくつかの態様では、ＭＤＭサーバ５２０は、二つより少ないデバイスまたは二つより多いデバイスに結合される。
【００７４】
コンピューティングデバイス５４０は、オペレーティングシステム（ＯＳ）５４１を含むことができ、モバイルデバイス５５０は、モバイルＯＳ５５１を含むことができる。各ＯＳ  ５４１、５５１は、入出力（例えば、タッチスクリーンディスプレイ、スピーカー、マイク、カメラなど）およびネットワーキング（例えば、携帯電話、Ｂｌｕｅｔｏｏｔｈ、無線通信  （Ｗｉ−Ｆｉ）、イーサネット（Ｅｔｈｅｒｎｅｔ）など）などのコンピューティング機能を制御することができる。各ＯＳ５４１、５５１はまた、アプリケーション（ａｐｐｓ）５４３、５５３、５６７の実行をサポートすることができ、そのようなアプリケーションにデバイスリソースおよびデータ５４４、５５４へのアクセスを提供することができる。アプリケーションの例としては、ウェブブラウザ、電子メール、カレンダー、ソーシャルネットワーキング、ドキュメント／電子書籍リーダ、メディアプレーヤ、ゲームアプリケーション、患者管理アプリケーション、医療参照アプリケーション、投薬追跡ツールなどが挙げられるが、これらに限定されない。アプリケーションは、メモリに記憶され、プロセッサによって実行されるソフトウェア指示、アプリケーション機能を実装するハードウェア回路、またはその両方に対応し得る。
【００７５】
モバイルデバイス５５０は、デバイス管理クライアント５５２を含む。いくつかの例では、デバイス管理クライアント５５２は、モバイルデバイス５５０がグループ５１４の部分である（またはあるべきである）ことを示す入力（例えば、ユーザ５０３からのユーザ入力５０４）の受信に応答して、ＭＤＭサーバ５２０に参加グループ要求５５５を送信するように構成される。デバイス管理クライアント５５２は、ＭＤＭサーバ５２０からアクション５５７を実行するためのコマンドを受信し、アクション５５７の実行を開始するように構成される。アクション５５７は、例えば、グループ５１４に関連付けられた一つ以上のアプリケーション５６７をダウンロードすること、一つ以上の構成設定５６５をダウンロードすることなどを含む。いくつかの実装では、グループ５１４を示す参加グループ要求５５５を送信しても、モバイルデバイス５５０において、グループ５１４とは異なる任意のグループに関連付けられたアプリケーション、データ、またはそれらの組み合わせが削除されることはない。他の実施形態では、グループ５１４を示す参加グループ要求５５５を送信すると、モバイルデバイス５５０において、グループ５１４とは異なる一つ以上のグループに関連付けられたアプリケーション、データ、またはそれらの組み合わせの削除を開始する。例えば、参加グループ要求５５５は、グループ５１４以外のグループに関連付けられたアプリケーションおよびデータの削除を開始し、リセット要求５８５は、すべてのアプリケーション、すべてのデータ、モバイルＯＳ５５１、デバイス管理クライアント５５２、またはこれらの組み合わせの削除を開始する。
【００７６】
コンピューティングデバイス５４０は、デバイス管理クライアント５５２のコピーも含む。コンピューティングデバイス５４０のデバイス管理クライアント５５２は、プッシュ通知サービス５３０からのプッシュ通知５３１の受信に応答して、チェックイン要求をＭＤＭサーバ５２０に送信することによってチェックインイベント５４６の実行を開始するように構成される。
【００７７】
特定の態様において、デバイス管理クライアント５５２は、本明細書に記載される一つ以上の動作を実行するように構成されたプロセッサに対応する。特定の態様では、デバイス管理クライアント５５２は、プロセッサによって実行された場合に、プロセッサに、本明細書に記載の一つ以上の動作を実行させる指示に対応する。特定の態様では、デバイス管理クライアント５５２は、本明細書に記載する一つ以上の動作を実行するために実行可能な指示を記憶するコンピュータ可読記憶装置に対応する。
【００７８】
ＭＤＭサーバ５２０は、メモリ５２３、モバイルデバイスマネージャ５３４、またはその両方を含む。メモリ５２３は、グループメンバーシップデータ５２８と、管理デバイスのデバイス識別子５１２とを記憶する。グループメンバーシップデータ５２８は、特定のグループ、グループに含まれるデバイス、またはそれらの組み合わせに対して実行されるアクションを示す。例えば、モバイルデバイスマネージャ５３４は、モバイルデバイス５５０から参加グループ要求５５５を受信し、参加グループ要求５５５がグループ５１４を示していると判断することに応答して、グループメンバーシップデータ５２８を更新してモバイルデバイス５５０をグループ５１４に追加する。モバイルデバイスマネージャ５３４は、アクション５５７が実行されることを示すコマンドをモバイルデバイス５５０に送信するように構成される。
【００７９】
特定の態様において、モバイルデバイスマネージャ５３４は、本明細書に記載の一つ以上の動作を実行するように構成されたプロセッサに対応する。特定の態様では、モバイルデバイスマネージャ５３４は、プロセッサによって実行されると、プロセッサに本明細書に記載の一つ以上の動作を実行させる指示に対応する。特定の態様において、モバイルデバイスマネージャ５３４は、本明細書に記載される一つ以上の動作を実行するために実行可能な指示を記憶するコンピュータ可読記憶装置に対応する。
【００８０】
運用中、ユーザ５０１（例えば、ＩＴ管理者）は、ＭＤＭサーバに一つ以上のグループを設定する。例えば、ユーザ５０１は、ユーザ入力５０２をＭＤＭサーバ５２０に提供するが、それはグループ５１４、一つ以上の追加グループ、またはそれらの組み合わせを示す。ユーザ入力５０２は、グループ名、グループに対応するアクション、またはその組み合わせを示す。例えば、ユーザ入力５０２は、グループ５１４のグループ名（例えば、「看護（Ｎｕｒｓｉｎｇ）」）を示す。例示的な例では、グループ５１４は、雇用役割（看護師、検査技師、医師、マネージャなど）に基づいている。ユーザ５０１は、任意の基準に基づいてグループ５１４を設定することができる。例えば、ユーザ５０１は、年齢、性別、雇用役割、場所、技能、関係、他の基準、またはそれらの組み合わせに基づいて、グループ５１４を設定することができる。ユーザ入力５０２は、グループ５１４に参加するデバイスに対して実行されるアクション５５７を示す。例えば、ユーザ入力５０２は、グループ５１４のメンバーがアプリケーション５６７へのアクセスを許可されていること、グループ５１４のメンバーがアプリケーション５５３へのアクセスを許可されていない（例えば、アクセスが制限されている）こと、またはこれらの組み合わせを示す。特定の態様では、ユーザ入力５０２は、構成設定５６５を示す。アクション５５７は、アプリケーション５６７のダウンロード、構成設定５６５のダウンロード、アプリケーション５６７のアイコンを含むＧＵＩの生成、異なるグループ（例えば、「医師（Ｄｏｃｔｏｒｓ）」）に関連付けられたアプリケーション５５３のアイコンを除外するＧＵＩの生成、アプリケーション５５３の削除（またはアンインストール）、またはこれらの組み合わせを示す。
【００８１】
種々の態様において、ユーザ入力５０２は、新しいメンバーがグループ５１４に追加されたとき、またはメンバーがグループから脱退したときにデバイスによって実行されるアクションを示すことができる。グループメンバーシップデータ５２８は、デバイスがグループに加入または脱退する際に更新され得る。一般に、デバイスは任意の基準に基づいてグループ化できる。グループ化基準の例には、デバイス能力、デバイスコンポーネント、デバイス状態、デバイスバッテリレベル、デバイスメモリ空間、デバイスオペレーティングシステム、デバイスソフトウェアバージョン、デバイスタイプ、デバイス位置などが含まれるが、これらに限定されない。いくつかの例において、グループリスト５６３は、ＭＤＭサーバ５２０によって維持され、例えば、更新要求５６１に応答して、システム５００内の他のデバイスに通信される。別の例では、プッシュ通知５３１、５３３は、通知要求５２４を介して開始され、デバイスにチェックインイベント５８３、５４６をＭＤＭサーバと共に開始させるために使用され、ＭＤＭサーバ５２０は、チェックインに応答して、更新されたグループリスト５６３をデバイスに通信することができる。その他のコマンドも、チェックイン時にデバイスに通知され得る場合がある。例えば、ＭＤＭサーバ５２０は、デバイスにアプリケーションまたはファイルのダウンロード／インストール／アンインストール、構成設定の実施、アクティベーションロックの設定、スマートグループメンバシップの変更などを行わせるアクション５４７、５４８を送信することができる。場合によっては、リセットコマンド５８７を使用して、デバイスで工場出荷時のリセットを引き起こすことができる。場合によっては、リセットコマンド５８７は、リセット要求５８５に応答して送信することができる。
【００８２】
上述の使用例のいくつかは、単一のデバイスにおけるコンピュータセキュリティに対して説明されているが、図５のシステム５００は、複数のデバイスに対応するセンサ入力および／またはアクションに基づいて、ゲームエンジンベースコンピュータセキュリティを可能にすることができる。例えば、ＭＤＭサーバ５２０は、ゲームエンジンベースセキュリティシステムの一つ以上のコンポーネントを含むことができ、そのようなコンポーネントは５９０で指定される。例えば、ＭＤＭサーバ５２０は、センサ２０５、システム状態モデル２１０、ロジックコントローラ２１５、ロジックブロック２１６、および／またはアクチュエータ２２０のうちの一つ以上を含むことができる。特定の例では、ＭＤＭサーバ５２０は、アクチュエータを含み、一つ以上の管理デバイスに対してアクションを開始するように構成される。いくつかの例では、センサおよびロジックコントローラ／ブロックは、管理デバイスまたは他のサーバなどにおいて、ＭＤＭサーバ５２０に対して遠隔に配置することができる。別の実施形態では、ＭＤＭサーバ５２０は、ゲームエンジンのロジックコントローラ／ブロックの少なくとも一部を含む。
【００８３】
ゲームエンジンベースセキュリティシステムは、システム５００内の複数のデバイス、例えば、コンピューティングデバイス５４０およびモバイルデバイス５５０からのセンサ入力を受信することができる。論理ルールを定義して、同じスマートグループに属している場合と属していない場合がある複数のデバイスに対応するデータに基づいて述語を評価できる。ルール評価中に考慮されるシステム状態には、複数の管理デバイスに関連付けられた状態情報が含まれる場合がある。セキュリティ応答アクションは、同じグループに属している場合と属していない場合がある複数のデバイスで実行できる。したがって、場合によっては、複数の管理デバイスに、それらの管理デバイスのすべてよりも少ない（もしくは全くないかもしれない）管理デバイスで発生するモニタされたイベントに基づいてアクションを実行するためのコマンドが送信されることがある。同様に、複数の管理デバイスからのイベントを集約して、１つのデバイスで発生するイベントを使用して識別することが困難なセキュリティ脅威（例えば、分散型サービス妨害（ＤＤｏＳ）攻撃やボットネットアクティビティ）を識別できる。
【００８４】
例示的で非限定的な例として、ランサムウェアのような脅威が１つのデバイスで検出された場合、現在使用されていないシステム内の他のデバイスを、感染したデバイスから隔離された二次ネットワークに切り替えることができる。別の例示的で非限定的な例では、「Ｆｌｏｒｉｄａ」スマートグループ内の複数のデバイスがアイドル状態のコンピューティングサイクルをほとんど持たない場合、クリプトマイニングマルウェアが検出される可能性があり、これは、企業のフロリダ支社の従業員に配布されたデバイスが、おそらく限定的な感染ベクターを介して感染したことを示す。
【００８５】
いくつかの例では、ゲームエンジンベースのセキュリティシステムの述語ルールはハードコーディングされておらず、代わりに実行時に動的に調整可能である。ルールのセットは、セキュリティ「プロファイル（ｐｒｏｆｉｌｅｓ）」に結合することができ、このようなプロファイルは、ゲームエンジンベースセキュリティシステムにおける動作に基づいて動的に切り替え／調整することができる。例示すると、アクチュエータは、１つ以上のデバイスで使用されているセキュリティプロファイルを調整するためのアクションを実行して、全体的なルール評価が多かれ少なかれアグレッシブであるようにしてもよい。例えば、疑わしいアクティビティが管理デバイスで識別された場合、エリア内または同じネットワーク上にある他の管理デバイスは、よりアグレッシブな（例えば、より厳しい）セキュリティプロファイルに切り替えられ、ログに記録されたイベントおよびアラートの冗長性が向上し得る。別の例として、ルールは、アクチュエータによって実行されるアクションに応答して、ルール評価パイプラインから動的に含まれ／除外され得る。さらに別の例として、ルールのパラメータ（例えば、イベントデータが比較される閾値）は、アクチュエータによって取られるアクションに応答して動的に調整され得る。例えば、信頼度値が使用中であり、セキュリティの脅威が検出された場合、総体的な信頼度が疑わしいアクティビティに対応すると判断される閾値を低減することができる。
【００８６】
ルール／プロファイルは、特定の検出されたイベントに基づいて動的に調整することもできる。例えば、デバイスがホームネットワーク、オフィスネットワーク、未知のネットワーク、オープン／セキュリティ対策が施されていない／パブリックネットワークなどに接続されていることを示すＧＰＳ位置データまたはネットワークデータに基づいて、より積極的なプロファイルまたはより消極的なプロファイルを使用することができる。ルール／プロファイルの動的調整に関する前述の例は、ＭＤＭコンテキスト内（例えば、図５を参照して説明したように）で、かつＭＤＭの原理（例えば、図２〜４を参照して説明したように）の関与なしに実施することができることを理解されたい。
【００８７】
したがって、図５のシステム５００は、複数のデバイスからのセンサ入力に基づいてセキュリティ脅威を検出し、複数のデバイス上で応答アクションを実行することを含む、管理されたコンピューティングデバイスに対するゲームエンジンベースのコンピュータセキュリティを可能にし得る。
【００８８】
図１〜図５の１つ以上は、本開示の教示によるシステム、デバイス、および／または方法を例示することができるが、本開示は、これらの例示されたシステム、デバイス、および／または方法に限定されない。本開示の態様は、メモリ、プロセッサ、およびオンチップ回路を含む集積回路を含む任意のデバイスにおいて適切に使用することができる。
【００８９】
本明細書に図示または説明される図１〜図５のいずれかの１つ以上の機能またはコンポーネントは、図１〜図５の別の部分の１つ以上の他の部分と組み合わせることができる。したがって、本明細書に記載されるいかなる単一の態様も、本開示を限定するものと解釈されるべきではなく、本開示の態様は、本開示の教示から逸脱することなく適切に組み合わせることができる。
【００９０】
当業者は、本明細書に開示された態様に関連して説明された様々な例示的ロジックブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、またはその両方の組み合わせとして実施され得ることをさらに理解するであろう。種々の例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップは、それらの機能性に関して上述されている。そのような機能がハードウェアまたはプロセッサ実行可能指示として実装されるかどうかは、特定のアプリケーションおよびシステム全体に課される設計制約に依存する。熟練した当業者は、各特定のアプリケーションに対して様々な方法で記述された機能を実装することができるが、そのような実装の決定は、本開示の範囲から逸脱するものと解釈されるべきではない。
【００９１】
本明細書に開示された態様に関連して記載された方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこれら２つの組み合わせにおいて直接実施されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読み取り専用メモリ（ＲＯＭ）、プログラム可能な読み取り専用メモリ（ＰＲＯＭ）、消去可能でプログラム可能な読取り専用メモリ（ＥＰＲＯＭ）、電気的に消去可能でプログラム可能な読取り専用メモリ（ＥＥＰＲＯＭ）、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、または当技術分野で公知の任意の他の形態の非一時記憶媒体に存在し得る。例示的な記憶媒体（例えば、コンピュータ可読記憶装置）は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替的には、記憶媒体は、プロセッサに一体化することができる。プロセッサおよび記憶媒体は、特定用途向け集積回路（ＡＳＩＣ）内に存在し得る。ＡＳＩＣは、コンピューティングデバイスまたはユーザ端末内に存在し得る。代替的に、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に別個のコンポーネントとして存在し得る。記憶装置はシグナルではない。
【００９２】
一態様では、ゲームエンジンに通信可能に結合された１つ以上のゲームエンジンセンサが１つ以上のイベントを検出するように１つ以上のゲームエンジンセンサを構成することを含む、コンピュータ実施のセキュリティ方法が開示される。本方法はまた、セキュリティ状況を表す１つ以上の状態を維持し、１つ以上のゲームエンジンセンサによって検出された１つ以上のイベントを受信し、１つ以上のゲームエンジンセンサによって検出された１つ以上のイベントに基づいて１つ以上の状態を更新し、定義された状態に達すると、アクションを開始するようにゲームエンジンを構成するステップを含む。いくつかの態様において、イベントはオペレーティングシステムレベルのイベントである。いくつかの態様において、オペレーティングシステムレベルのイベントは、ファイルシステムイベント、プロセスイベント、ネットワークイベント、認証イベント、許可イベント、ダウンロードイベント、スクリーンショットイベント、リムーバブルメディアイベント、合成入力イベント、ボリュームイベント、ユーザーアクティビティイベント、ウェブカムイベント、またはマイクイベントのうちの１つ以上を含む。いくつかの態様において、状態は、１つ以上のタグとの関連によって表される。さらなる態様において、定義された状態の少なくとも１つは、複数のタグを必要とする。
【００９３】
別の態様では、方法は、オペレーティングシステムを実行するコンピューティングデバイスのゲームエンジンセンサにおいて、モニタされたイベントの発生を表すオペレーティングシステムからの第１データを受信することを含む。この方法はまた、ゲームエンジンセンサから、モニタされたイベントに対応する第２データをゲームエンジンロジックコントローラに送信するステップを含む。本方法はさらに、ゲームエンジンロジックコントローラの第１ロジックブロックにおいて、第２データと、コンピューティングデバイスのシステム状態を表す第３データとに基づいて、第１述語条件が満たされていることを判断することを含む。本方法は、第２データおよび第３データに基づいて、ゲームエンジンロジックコントローラの第２ロジックブロックにおいて、第２述語条件が満たされていることを判断することを含む。この方法はまた、第１および第２述語条件が満たされていることに基づいてコンピュータセキュリティ脅威を検出するステップを含む。本方法はさらに、コンピュータセキュリティ脅威の検出に基づいて、少なくとも１つのゲームエンジンアクチュエータに、コンピュータセキュリティ脅威に応答する少なくとも１つのアクションを実行するように指示するステップを含む。
【００９４】
別の態様では、システムは、モニタされたイベントの発生を表すオペレーティングシステムからの第１データをゲームエンジンセンサで受信するために、少なくとも１つのプロセッサと、少なくとも１つのプロセッサによって実行可能な指示を記憶するメモリとを含む。
指示はまた、ゲームエンジンセンサから、モニタされたイベントに対応する第２データをゲームエンジンロジックコントローラに送信するために実行可能である。指示はさらにゲームエンジンロジックコントローラの第１ロジックブロックにおいて、第２データと、コンピューティングデバイスに関連付けられたシステム状態を表す第３データとに基づいて、第１述語条件が満たされていることを判断するために実行可能である。指示は、ゲームエンジンロジックコントローラの第２ロジックブロックにおいて、第２データおよび第３データに基づいて、第２述語条件が満たされていることを判断するために実行可能である。指示はまた、第１および第２述語条件が満たされていることに基づいてコンピュータセキュリティの脅威を検出するために実行可能である。指示は、コンピュータセキュリティ脅威の検出に基づいて、少なくとも１つのゲームエンジンアクチュエータに、コンピュータセキュリティ脅威に応答する少なくとも１つのアクションを実行するように指示するために、さらに実行可能である。
【００９５】
別の態様では、コンピュータ可読記憶装置は、実行されると、ゲームエンジンセンサにおいて、少なくとも１つのプロセッサに、モニタされたイベントの発生を表すオペレーティングシステムからの第１データを受信することを含む動作を実行させる指示を記憶する。動作は、ゲームエンジンセンサから、モニタされたイベントに対応する第２データをゲームエンジンロジックコントローラに送信することも含む。これらの動作はさらに、ゲームエンジンロジックコントローラの第１ロジックブロックにおいて、第２データと、コンピューティングデバイスに関連付けられたシステム状態を表す第３データとに基づいて、第１述語条件が満たされていることを判断することを含む。動作は、ゲームエンジンロジックコントローラの第２ロジックブロックにおいて、第２データおよび第３データに基づいて、第２述語条件が満たされていることを判断することを含む。動作はまた、第１および第２述語条件が満たされていることに基づいてコンピュータセキュリティ脅威を検出することを含む。動作はさらに、コンピュータセキュリティ脅威の検出に基づいて、少なくとも１つのゲームエンジンアクチュエータに、コンピュータセキュリティ脅威に応答する少なくとも１つのアクションを実行するように指示することを含む。
【００９６】
開示された態様の前述の説明は、当業者が開示された態様を製造または使用することを可能にするために提供される。これらの態様に対する種々の修正は、当業者には容易に明らかであり、本明細書に定義された原理は、開示の範囲から逸脱することなく他の態様に適用され得る。したがって、本開示は、本明細書に示される態様に限定されることを意図しておらず、以下の特許請求の範囲によって定義される原理および新規な特徴と一致する可能な限り広い範囲を与えられるべきである。
【図１】
2021536088.tif 000026
【図２】
2021536088.tif 000027
【図３】
2021536088.tif 000028
【図４】
2021536088.tif 000029
【図５】
2021536088.tif 000030
【国際調査報告】
2021536088.tif 000031