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

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

▶ ジェーエーエムエフ ソフトウェア,エルエルシーの特許一覧

特許7431844ゲームエンジンベースコンピュータセキュリティ
<>
  • 特許-ゲームエンジンベースコンピュータセキュリティ 図1
  • 特許-ゲームエンジンベースコンピュータセキュリティ 図2
  • 特許-ゲームエンジンベースコンピュータセキュリティ 図3
  • 特許-ゲームエンジンベースコンピュータセキュリティ 図4
  • 特許-ゲームエンジンベースコンピュータセキュリティ 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-06
(45)【発行日】2024-02-15
(54)【発明の名称】ゲームエンジンベースコンピュータセキュリティ
(51)【国際特許分類】
   G06F 21/55 20130101AFI20240207BHJP
【FI】
G06F21/55 340
【請求項の数】 17
(21)【出願番号】P 2021548506
(86)(22)【出願日】2019-08-06
(65)【公表番号】
(43)【公表日】2021-12-23
(86)【国際出願番号】 US2019045375
(87)【国際公開番号】W WO2020033457
(87)【国際公開日】2020-02-13
【審査請求日】2022-08-05
(31)【優先権主張番号】62/715,627
(32)【優先日】2018-08-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/533,710
(32)【優先日】2019-08-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521177832
【氏名又は名称】ジェーエーエムエフ ソフトウェア,エルエルシー
【氏名又は名称原語表記】JAMF SOFTWARE, LLC
【住所又は居所原語表記】100 Wahington Square,100 S.Washington Avenue,Suite 1100,Minneapolis,Minnesota 55401(US)
(74)【代理人】
【識別番号】100109634
【弁理士】
【氏名又は名称】舛谷 威志
(74)【代理人】
【識別番号】100129263
【弁理士】
【氏名又は名称】中尾 洋之
(72)【発明者】
【氏名】マーム,ジョナサン アラン
(72)【発明者】
【氏名】スタイン,ジョシュア ハワード
(72)【発明者】
【氏名】ウォードル,パトリック ナサニエル
【審査官】平井 誠
(56)【参考文献】
【文献】特表2006-525562(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
ゲームエンジンベースコンピュータセキュリティの方法であって、
オペレーティングシステムを実行するコンピューティングデバイスのゲームエンジンセンサにおいて、モニタされたイベントの発生を表す前記オペレーティングシステムからの第1データを受信するステップと、
前記ゲームエンジンセンサから、前記モニタされたイベントに対応する、前記モニタされたイベントに関連するタグデータを含む第2データをゲームエンジンロジックコントローラへ送信するステップと、
前記ゲームエンジンロジックコントローラの第1ロジックブロックにおいて、前記第2データおよび前記コンピューティングデバイスに関連するシステム状態を表す第3データに基づいて、第1述語条件が満たされていることを判断するステップと、
前記ゲームエンジンロジックコントローラの第2ロジックブロックにおいて、前記第2データおよび前記第3データに基づ前記第1ロジックブロックによって前記タグデータに付加された第1タグを含むという判断に少なくとも部分的に基づいて、第2述語条件が満たされていることを判断するステップと、
前記ゲームエンジンロジックコントローラにおいて、前記第1述語条件と前記第2述語条件とが満たされていることに基づいてコンピュータセキュリティ脅威を検出するステップと、
前記ゲームエンジンロジックコントローラにおいて、前記コンピュータセキュリティ脅威の検出に基づいて、少なくとも1つのゲームエンジンアクチュエータに前記コンピュータセキュリティ脅威に応答する少なくとも1つのアクションを実行するように指示するステップと、を備える、方法。
【請求項2】
前記ゲームエンジンセンサが、ファイルシステムモニタ、プロセスモニタ、認証モニタ、ダウンロードモニタ、スクリーンショットモニタ、リムーバブルメディアモニタ、合成クリックモニタ、ボリュームモニタ、ユーザアクティビティ再開モニタ、カメラモニタ、マイクロフォンモニタ、またはそれらの任意の組み合わせを備える、請求項1に記載の方法。
【請求項3】
前記第2データは、前記モニタされたイベントのタイプ、前記モニタされたイベントのパス、前記モニタされたイベントに関連付けられたディレクトリ情報、前記モニタされたイベントに関連付けられたアプリ情報、またはそれらの任意の組み合わせを含む、請求項1に記載の方法。
【請求項4】
前記第2データは、前記モニタされたイベントに関連するファイルに関する情報、前記ファイルが修正されたかどうか、前記ファイルの内容に関する情報、またはそれらの任意の組み合わせを含む、請求項1に記載の方法。
【請求項5】
前記第2データは、前記モニタされたイベントに関連する実行プロセスに関する情報を含む、請求項1に記載の方法。
【請求項6】
前記少なくとも1つのアクションは、前記システム状態を更新することを備える、請求項1に記載の方法。
【請求項7】
前記少なくとも1つのアクションは、アラートを生成することを備える、請求項1に記載の方法。
【請求項8】
前記少なくとも1つのアクションは、ファイルの隔離、ファイルの削除、前記モニタされたイベントに関する追加データの収集、プロセスの終了、ファイアウォールの調整、ネットワーク接続の終了、またはそれらの任意の組み合わせを備える、請求項1に記載の方法。
【請求項9】
前記ゲームエンジンロジックコントローラは、モバイルデバイス管理(MDM)サーバによって実行され、前記モニタされたイベントは、前記MDMサーバから離れた第1の管理されたコンピューティングデバイスで発生する、請求項1に記載の方法。
【請求項10】
第2のモニタされたイベントは、第2の管理されたコンピューティングデバイスで発生し、前記コンピュータセキュリティ脅威は、前記第2のモニタされたイベントの前記発生に基づいてさらに検出される、請求項に記載の方法。
【請求項11】
前記システム状態は、複数の管理されたコンピューティングデバイスに関連する状態情報を備える、請求項に記載の方法。
【請求項12】
前記少なくとも1つのアクションは、複数の管理されたコンピューティングデバイスへのコマンドの送信を開始することを備える、請求項1に記載の方法。
【請求項13】
前記第2データの少なくとも一部に基づいて前記システム状態を照会することをさらに備える、請求項1に記載の方法。
【請求項14】
システムであって、
少なくとも1つのプロセッサと、
ゲームエンジンセンサにおいて、モニタされたイベントの発生を表すオペレーティングシステムからの第1データを受信し、
前記ゲームエンジンセンサから、前記モニタされたイベントに対応する、前記モニタされたイベントに関連するタグデータを含む第2データをゲームエンジンロジックコントローラに送信し、
前記ゲームエンジンロジックコントローラの第1ロジックブロックにおいて、前記第2データおよびコンピューティングデバイスに関連するシステム状態を表す第3データに基づいて、第1述語条件が満たされていることを判断し、
前記ゲームエンジンロジックコントローラの第2ロジックブロックにおいて、前記第2データおよび前記第3データに基づ前記第1ロジックブロックによって前記タグデータに付加された第1タグを含むという判断に少なくとも部分的に基づいて、第2述語条件が満たされていることを判断し、
前記第1述語条件と前記第2述語条件とが満たされていることに基づいてコンピュータセキュリティ脅威を検出し、
前記コンピュータセキュリティ脅威の前記検出に基づいて、少なくとも1つのゲームエンジンアクチュエータに、前記コンピュータセキュリティ脅威に応答する少なくとも1つのアクションを実行するように指示する、
前記少なくとも1つのプロセッサによって実行可能な指示を記憶するメモリと、を備えるシステム。
【請求項15】
前記少なくとも1つのプロセッサおよび前記メモリを含むモバイルデバイス管理(MDM)サーバをさらに備える、請求項14に記載のシステム。
【請求項16】
前記モニタされたイベントが、前記MDMサーバから離れた第1の管理されたコンピューティングデバイスで発生し、前記少なくとも1つのアクションが、前記第1の管理されたコンピューティングデバイスとは異なる第2の管理されたコンピューティングデバイスへのコマンドの送信を開始することを備える、請求項15に記載のシステム。
【請求項17】
実行されると、少なくとも1つのプロセッサに操作を実行させる指示を記憶するコンピュータ可読記憶装置であって、
モニタされたイベントの発生を表すオペレーティングシステムからの第1データを受信するとともに、
前記モニタされたイベントに対応する、前記モニタされたイベントに関連するタグデータを含む第2データをゲームエンジンロジックコントローラに送信するゲームエンジンセンサを備え、
前記ゲームエンジンロジックコントローラは、
前記第2データおよびコンピューティングデバイスに関連するシステム状態を表す第3データに基づいて、第1述語条件が満たされていることを判断する第1ロジックブロックと、
前記第2データおよび前記第3データに基づ前記第1ロジックブロックによって前記タグデータに付加された第1タグを含むという判断に少なくとも部分的に基づいて、第2述語条件が満たされていることを判断する第2ロジックブロックと、
を備え、
さらに、前記ゲームエンジンロジックコントローラは、
前記第1述語条件と前記第2述語条件とが満たされていることに基づいてコンピュータセキュリティ脅威を検出するとともに、
前記コンピュータセキュリティ脅威の前記検出に基づいて、少なくとも1つのゲームエンジンアクチュエータに、前記コンピュータセキュリティ脅威に応答する少なくとも1つのアクションを実行するように指示するものであるコンピュータ可読記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2018年8月7日に出願された米国仮特許出願第62/715,627号および2019年8月6日に出願された米国非仮特許出願第16/533,710号の利益を主張し、その全内容が参照により本明細書に組み込まれる。
【背景技術】
【0002】
コンピュータシステムやデバイスが普及するにつれて、そのようなシステムやデバイスは、ウイルス、マルウェア、ランサムウェア、フィッシング攻撃などの悪意のあるアクティビティのターゲットになっている。このような悪意のあるアクティビティを防止するために、さまざまなコンピュータセキュリティソリューションがユーザや企業に提供されている。あるコンピュータセキュリティソリューションは、署名ベースであり、悪意のあるファイルに対応することがわかっている署名と悪意のある可能性を有するファイルまたはペイロードとを比較する。しかし、これらのソリューションは内在する署名においてのみ有効であり、常に変化する脅威に対応するために署名のアップデートを発行しようとすることは勝ち目のない提案であり、特にそれは高度なマルウェアは、自動的に変更して署名ベースの検出を無効にすることができる場合が多いためである。人工知能(AI)ベースソリューションは、悪意のある可能性を有するファイル(またはそれから派生したデータ)をAIモデル(例えばニューラルネットワーク)に入力して、そのファイルが悪意のあるものかどうかを予測する。しかし、AIベースソリューションの有効性は基礎となるモデルによって決定され、モデルを訓練するために十分に完全な訓練データを得ることは時として困難である。
【図面の簡単な説明】
【0003】
本開示の性質及び所望の目的をより完全に理解するために、添付の図面とあわせて以下の詳細な説明が参照され、複数の図面を通じて同様の参照記号は対応する部分を示す。
【0004】
図1図1は、「ブラックボックス」コンピュータセキュリティパイプラインの一例を示す。
【0005】
図2図2は、ゲームエンジンベースコンピュータセキュリティを含むシステムの一例を示す。
【0006】
図3図3は、特定のコンピュータセキュリティを使用する場合に関する図2のシステムにおける動作の一例を示す。
【0007】
図4図4は、ゲームエンジンベースコンピュータセキュリティの方法の一例を示す。
【0008】
図5図5は、ゲームエンジンベースコンピュータセキュリティを含むモバイルデバイス管理(MDM)システムの一例を示す。
【発明を実施するための形態】
【0009】
本開示の態様は、以下の定義を参照して理解することができる。
【0010】
本明細書で使用される場合、単数形の「a」、「an」、および「the」は、文脈において明確に断らない限り、複数の参照を含む。
【0011】
本明細書中で使用される場合、文脈において特に述べられない限り、または文脈から明らかでない限り、用語「約(about)」および「実質的に(substantially)」 は、当技術分野における通常の許容範囲内、例えば、平均の2標準偏差内であると理解される。「約」および「実質的に」は、記載された値の10%、9%、8%、7%、6%、5%、4%、3%、2%、1%、0.5%、0.1%、0.05%、または0.01%以内として理解することができる。文脈において明確でない限り、本明細書で提供されるすべての数値は、約または実質的に、の用語によって修正される。
【0012】
本明細書および本特許請求の範囲において使用される場合、用語「備える(comprises)」、「備える(comprising)」、「含む(containing)」、「有する(having)」、および同様のものは、米国特許法においてそれらに帰せられる意味を有し得て、「含む(includes)」、「含む(including)」、および同様のものを意味し得る。
【0013】
文脈において特に述べない限り、または文脈から明白でない限り、本明細書で使用される用語「または(or)」は、包括的であると理解される。
【0014】
本明細書で提供される範囲は、その範囲内のすべての値を簡潔に表現したものであると理解される。例えば、1から50までの範囲は、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、46、47、48、49、または50からなるグループの任意の数、数の組み合わせ、またはサブ範囲を含むと理解される(及びその端数(文脈により別に定める場合を除く。))。
【0015】
ある態様において、ゲームエンジンベースコンピュータセキュリティのためのシステムおよび関連する方法が開示される。ゲームエンジンとコンピュータセキュリティとは、無関係なコンピュータ概念であると考えられるが(ゲームは悪意のあるファイルの一般的な感染経路である)、本開示の態様は、コンピュータセキュリティ機能を実装するためにゲームエンジンアーキテクチャのコンポーネントを利用することを含み、この機能には、特定のゲームまたは一般的なゲームとは無関係な機能も含まれる。
【0016】
ゲームエンジンは、主にビデオゲームの再利用可能なコンポーネントを構築するために設計されたソフトウェアフレームワークまたは開発環境を含み得る。ゲームエンジンのコア機能には、多くの場合、レンダリングエンジン、物理エンジン、アニメーション、照明効果などが含まれる。一部のゲームエンジンには、ゲーム内で生成または受信される1つ以上の入力が与えられた場合に、ゲーム内で実行される一連の出力を決定する論理機能を実行するように構成されたコンポーネントも含まれる。
【0017】
特定の態様において、ゲームエンジンは、1つ以上のセンサ、プロパティ/状態モデル、ロジックコントローラ、およびアクチュエータを含み得る。センサは、ゲーム環境からデータを収集し、環境内のオブジェクトのプロパティおよび状態としてデータをロジックコントローラに提供することができる。プロパティ/状態モデルは、センサから収集された入力、およびそのような入力がゲーム環境全体の全体モデルにどのように適合するかを表すことができる。ロジックコントローラは、ゲーム状態およびセンサのプロパティに対する操作および/またはシミュレーションを実行することができ、これを使用してゲーム状態を調整し、アクチュエータに信号を送信することができる。アクチュエータは、オブジェクトの移動、オブジェクトの追加/削除などの機能を実行できる。これらのアクションは、ロジックコントローラの出力によって開始される。
【0018】
コンピュータセキュリティ機能を実行するためにゲームエンジンを使用することは、従来のコンピュータセキュリティ技術とは著しく異なることが理解されよう。例えば、アンチウイルスやその他のエンドポイント検出技術は、多くの場合、イベントの観察、ルールの評価、そして最終的にはアクション/アラートの、厳格で、ブラックボックス化されたデータパイプラインに依存する。このようなパイプライン100の例を図1に示す。このパイプライン処理されたプロセスをゲームエンジンコンポーネント(例えば、センサ、システム状態、ロジックコントローラ、およびアクチュエータ)にマッピングすることで、オープンでカスタマイズ可能、柔軟、拡張可能なある種のエンドポイント検出と応答が導入され、人工知能(AI)ベースの意思決定がサポートされる。本明細書に記載の方法およびシステムは、ゲームエンジンのフレームワークおよびセマンティクスを使用してコンピュータオペレーティングシステムおよびエンドユーザ主導の動作をモデル化し、エンドポイントデバイス上の興味深い、疑わしい、または悪意のあるサイバーセキュリティイベントを、カスタマイズ可能で柔軟かつ拡張可能な方法で収集、検出、および/または応答することを可能にする。
【0019】
図2は、一態様によるゲームエンジンベースのコンピュータセキュリティを含むシステム200を示す。システム200は、1つ以上のセンサ205を含み、これらのセンサは、オペレーティングシステムイベント(例:システムイベントモニタ)のリアルタイムまたはリアルタイムに近い検出のための一連のモニタとして、オペレーティングシステムに関して配置することができる。例示すると、センサ205は、オペレーティングシステムまたは一般にオペレーティングシステムの制御下にあるコンポーネントとのユーザモードおよび/またはカーネルモード通信を利用するソフトウェアサブルーチンに対応してもよい。いくつかの例では、センサ205は、追加的にまたは代替的に、オペレーティングシステムと通信するハードウェアコンポーネントに対応してもよい。
【0020】
特定の例では、センサ205は、プロセス、ファイル、入力/出力(I/O)動作、ネットワーク活動、ダウンロード、キーロガー、合成クリック、周辺機器アクセス(例えば、カメラやマイク)、スクリーンショットなどのモニタをサポートするOpenBSMなどのオペレーティングシステム監査フレームワークまたはアプリケーションプログラミングインタフェース(API)に基づく。したがって、センサ205は、ファイルシステムモニタ、プロセスモニタ、ネットワークモニタ、認証モニタ(例えば、キーチェーンモニタ)、ダウンロードモニタ、スクリーンショットモニタ、リムーバブルメディア(例えば、USB、外付けハードドライブ)モニタ、合成クリック(例えば、マウスのプログラム的使用)モニタ、ボリューム(例えば、論理ディスク)モニタ、ユーザ活動再開モニタ(例えば、ノートパソコンのカバーを開けたり、スクリーンセーバーモードから復帰したり、電源を入れたりすること)、および/またはWebカメラ/マイク活動モニタを含むことができるが、これらに限定されない。
【0021】
センサ205は、ローデータを観察し、構文解析し、ターゲットデータモデルに編成することができ、システム状態(例えば、キャッシュ)への更新を容易にして、新たに受信されたイベントを反映し、かつ新たなイベントおよびシステム状態をロジックコントローラに送信することを可能にする。計算機アプリケーションが起動されたときに、オペレーティングシステムからセンサ205によって受信され得るローデータの例示的で非限定的な例が、以下に提供される。
【0022】
オブジェクトデータモデルの例示的で非限定的な実施例を以下に提供する。この例には、「プロセス(Process)」サブオブジェクトを含む「プロセスイベント(Process Event)」オブジェクトが含まれる。任意の数のオブジェクトがターゲットデータモデルの一部であってもよく、オブジェクトは任意の数のサブオブジェクトを含んでもよいことを理解されたい。さらに、ターゲットデータモデルは、オペレーティングシステムから受信したローデータの一部を含むことができるだけでなく、ローデータに基づいて計算されるデータおよび/または利用可能なまたは測定可能な他のデータに基づいて計算されるデータも含むことができる。場合によっては、ターゲットデータモデルは、特定のデータ項目を計算するために実行可能なコードを含み、またはそれを指し示し、そのようなデータ項目は、ロジックブロック/ルールによって参照されるときに動的に(例えば、ジャストインタイム)評価される。
【0023】
システム200は、システム状態モデル210を含むこともできる。モデル210(図2において「システム状態(system state)」で示される)は、(例えば、センサ205によって観察される)オペレーティングシステムからローデータを受信することができる。いくつかの例では、センサ205によって実行されるような上述した構文解析および編成の全部または一部は、代わりにモデル210で実行されてもよい。センサ205から受信され、および/またはモデル210で生成されたモデル化されたイベントデータは、コードで計算/収集されたデータを含む、計算(例えば所定の計算)および関係(例えば既知の関係)を含むようにさらに拡張することができる。システム200の態様は、事前に評価されたイベントのキャッシュ(例えば、以前のロジックコントローラで拡張された出力/拡張)および環境の現在および過去の状態を表す以前に収集されたシステムデータタイプ(例えば、ファイル、プロセス、ユーザ、グループなど)によりモデル化することができる。いくつかの例では、システム状態キャッシュは、以前のイベントが記憶され、照会可能なテーブルまたはその他のデータ構造である。したがって、所与の時点で、モデル210は、システム200で「現在(currently)」起こっていること、および/またはその時点までにシステム200で起こったことを表すことができる。
【0024】
いくつかの態様において、モデル210は、本明細書にさらに記載するように、ロジックコントローラにおいて評価されるカスタマイズされたユーザ定義ロジックによって拡張 (例えば、「タグ(tags)」)を適用することを可能にする。このような拡張は、ロジックコントローラにおけるイベント評価の間にそれらが一緒にチェーンされるときに、より高いレベルの概念および動作を記述するために使用することができ、イベントがシステム200を通過するときに、イベントがよりよく理解されることを可能にする。場合によっては、イベントを後のイベントに関して「直交データ(orthogonal data)」として再評価することができる。
【0025】
システム200は、ロジックコントローラ215を含むこともできる。ロジックコントローラ215は、述語ベースのルールシステム、グラフ、決定木、状態機械、決定論的または確率論的戦略、カスタムコード、および/または上述のシステム内のAI発見可能ロジックブロックを含む他の人工知能(AI)アルゴリズムであってもよく、またはそれらを実装してもよい。ロジックコントローラ215は、異なる動作を記述および/または検出するために、個別に定義、構成、追加、除去などが可能なロジックブロック216上に構築されてもよい。ロジックブロック216は、単一のロジックブロック216からの出力が入力として他のロジックブロック216に供給され得るので、上位レベルの概念を記述し、「創発的な(emergent)」動作を検出するために一緒にチェーンされ得る。ロジックコントローラ215は、センサ205から新しい(例えば、モデル化された)入力を受け取ることができる。次いで、ロジックコントローラ215は、ロジックブロック216を構成された順序で実行することができる。異なるロジックブロック216内の異なるコンピュータセキュリティ検出器のためにロジックをカプセル化することにより、様々なセキュリティ脅威に対する検出器の迅速な展開を可能にする。例えば、同じ定義済みまたはユーザ定義のロジックブロックを異なる脅威検出器に配置できる。
【0026】
ロジックブロック216の実行は、様々な機能をもたらすことができる。場合によっては、ロジックブロック216の実行は、個々のイベントについてシステム状態モデル210を更新または拡張することができる。ロジックブロック216は、システムイベントに関連する定性的および定量的データに基づいて構築することができる。システム200は、「コンテキスト(context)」データ(例えば、key:valueペア)および/または「タグ(tags)」 データ(例えば、キー(key)のリスト)をサポートすることができる。どちらのタイプのデータも、ルールへの入力として使用できる。
【0027】
場合によっては、ロジックブロック216の実行によって完全にエンリッチされたイベントが出力され、システム200のシステム状態モデル210を、計算された「コンテキスト」および/または「タグ」を含めて更新することができる。本明細書にさらに記載するように、場合によっては、ロジックブロック216の実行により、アクチュエータに供給する「アクション(actions)」のリストを出力することになり得る。
【0028】
ロジックブロック216の異なる組み合わせをチェーンさせることができることにより、コンピュータセキュリティ問題のための強力かつ柔軟な検出フレームワークを可能にすることが理解されよう。上流ロジックブロック216は、システム200を通過するときにイベントおよび他のデータに選択的にタグを付ける「ラベラ(labelers)」と考えることができ、下流ロジックブロック216は、イベントタグおよび/またはシステム状態の特定の組み合わせが存在する場合に特定のアクションを取るためにアクチュエータ220にコマンドを発行する述語「コンバイナ(combiners)」と考えることができる。ロジックブロック(またはルール)チェーンの例として、第1ロジックブロックは、ファイルが署名されていないかどうかを検出することができ、第2ロジックブロックは、署名されていないとして検出されたファイルがゲストアカウント権限を高める(または高めようとする)場合にアラートを開始することができる。
【0029】
システム200は、一組のアクチュエータ220を含むことができる。アクチュエータ220は、ロジックコントローラ215(ここで、その入力は、センサ205によって検出されたイベントおよび/または全体的なシステム状態に関するモデル210からの情報に基づいて決定された)から入力を受け取り、受け取った入力に基づいて一つ以上のアクションを実行することができる。アクチュエータのアクションは設定可能である(例えば、ログ、アラートなどの設定された宛先)。したがって、設定に応じて、同じアクチュエータは、システム状態モデル210でキャッシュされ、ログファイルに書き込まれるデータを多かれ少なかれ生じさせることができ、したがって、管理者は、返されるデータの冗長度を設定することができる。例えば、管理者は、キャッシュ、ログ、収集などの直交データの量やタイプを選択できる。
【0030】
アクチュエータ220は、種々のアクションを実行することができる。場合によっては、アクチュエータ220は、「キャッシュ(cache)」アクションを実行することができ、アクチュエータ220は、所与のイベントについてロジックコントローラ215の出力によりシステム全体の状態(例えば、モデル210)を更新する。場合によっては、アクチュエータ220は、「ローカル/リモートロギング(local/remote logging)」アクションを実行することができ、アクチュエータ220は、ロジックコントローラ215の出力をローカルログファイルのログエントリまたはリモートロギング機能(例えば、イベントマネージャやログマネージャなど)のいずれかに書き込む。場合によっては、アクチュエータ220は、「アクティブ応答(active response)」アクションを実行することができ、ここで、アクチュエータ220は、例えば、システムまたはユーザにセキュリティの脅威をアラートし、ファイルを隔離し、ファイルを削除し、追加データを収集し、プロセスを終了し、システムファイアウォールを調整し、および/またはネットワーク接続を終了することができる。
【0031】
実施形態に応じて、図2の1つ以上のコンポーネントをゲームエンジンの一部として含むことができる。例えば、システム状態モデル210、ロジックコントローラ215、ロジックブロック216、およびアクチュエータ220は、ゲームエンジンの一部であってもよく、センサ205は、ゲームエンジンに結合されてもよい。
【0032】
動作中、システム200は、様々なコンピュータセキュリティ手順を実施することができる。例えば、ロジックコントローラ215は、特定の動作(図2において「(1)」で示す)を実行するように構成することができる。センサ205は、イベント(「(2)」で示す)を受信することができ、そのイベントは、例えば、コンピューティングデバイスのオペレーティングシステムによって生成されるか、またはオペレーティングシステムで発生するイベントである。センサ205は、イベントのローデータを操作して、イベント’(システム状態モデル210と互換性のあるイベントの表現)を生成することができる。モデル210は、イベント’(「(3)」で示す)に基づいて更新することができる。モデル210からのイベント’とシステム状態の組み合わせは、ロジックコントローラ215を実装する(例えば、ロジックコントローラ215によって呼び出される)1つ以上のロジックブロック216に提供され得る。例えば、反復コードループ218は、モデル210からモデル化されたイベント’およびシステム状態を評価し(「(4)」で示す)、これにはイベントを生成するために、適用可能なタグ/コンテキスト/アクションを識別することを含む。ロジックコントローラ215によりアクションが取られるべきであると判断された場合、ロジックコントローラ215は、ロギング、レポート、および/またはアラートの伝達などのアクションを取るようにアクチュエータ220に指示する。いくつかの例では、システム状態モデル210は、イベント’’および取られたアクションに基づいてさらに更新され得る。
【0033】
したがって、ロジックブロック216は、一緒にチェーンされ得る述語を表すことができる。一部の例では、述語は、初期アクセス、実行、永続性、権限昇格、防御回避、資格証明アクセス、検出、ラテラルムーブメント、収集、エクスフィルトレーション、コマンドおよびコントロールなどに対して定義できる。このような述語は、オペレーティングシステムからのストリーミングイベントおよび/またはシステム状態モデルからのキャッシュされたイベントデータに基づいてさまざまなセキュリティ問題を検出するように構成されたさまざまなロジックコントローラで再利用できる。
【0034】
本明細書に記載されたゲームエンジンベースセキュリティ技術は、疑わしい挙動を具体的に発見するために、従来の署名およびファイル/コンテンツベース検出の先を見据え得ることが理解されよう。通常、マルウェア/疑わしいアクティビティは不明(unknown)として始まる。従来の署名およびファイル/コンテンツベースの検出では、何かが既知である(あるいは、ファイル/バイナリ/コンテンツレベルでは、少なくとも根本的に異なる)ことが期待される。マルウェア/疑わしいアクティビティには通常、最終的に完了しようとする目的がある。したがって、ファイル/バイナリ/コンテンツレベルで既知の「不良(bad)」を探す代わりに(それにもかかわらず、記載されたゲームエンジンベースのセキュリティシステムのいくつかの実装に組み込むことができる)、記載された技法は、アクティビティレベルで疑わしい動作を検査して識別することを含み、そのような動作の多くは、従来の署名およびファイル/コンテンツベースの検出システムでは見落とされる。少なくとも何かが行動的に発見される前に疑わしい行動を開始しなければならないことは真実かもしれないが、従来の署名およびファイル/コンテンツベースのシステムは、典型的には、この活動を検出することができず、実際のサンプルのいくつかの先験的な知識に依存する。サンプルが不明の場合(例えば、0-day脅威の場合)、不可逆的な悪意のあるアクティビティが発生する可能性があり、脅威が不明のままになる可能性がある。しかしながら、上述したゲームエンジンベースのセキュリティシステムでは、悪意のあるアクティビティが最初に感染したデバイスで完全に防止されなかった場合であっても、少なくともそのアクティビティによって脅威が識別され、それに応じて対応することができる。いくつかの例では、疑わしいアクティビティが検出されると、疑わしいアクティビティに対応するファイル/プロセスは、「サンドボックス化(sandboxed)」されるか、または仮想マシンに移動され、綿密にモニタされながら、比較的無害な方法で悪意のあるアクティビティを完了させ、脅威に関する追加の知識を得ることができる。
【0035】
図3は、システム200における動作の一例を示しており、概して300で示されている。図3は、「トップシークレット(Top Secret)」という言葉を含むスクリーンショット画像がいつシステム200からリムーバブルメディアデバイスにコピーまたは移動されたかを検出し、さらにそのコピー/移動についてネットワークまたは管理者にアラートする使用状況を示す。この使用状況に対応する(ロジックコントローラに対する)構成を301とする。ロジックコントローラを構成することは、本明細書にさらに記載されるように、異なる述語ルールに対応するロジックブロックを生成および/またはチェーンさせることを含み得る。
【0036】
センサ205(例えば、ファイルシステムセンサ)は、オペレーティングシステムによって生成されたローファイルシステムイベント302を観察することができる。センサ205はさらに、ローファイルシステムイベントを解析し、モデル化されたイベント303に編成することができる。例えば、オペレーティングシステムによって提供されるセミドキュメントデータには、「/Users/userl/Desktop/example.png」のようなパスデータや、「ファイルリネーム(File Rename)」などのタイプデータを含めることができる。次に、編成されたデータをシステム状態モデル210に更新304として入力することができる。さらに、「拡張(extended)」データをシステム状態モデル210に入力することもできる。拡張データの例には、参照ファイルパスにあるファイルの追加データを含めることができる。場合によっては、拡張データにオペレーティングシステムから照会された直交データを含めることができる。
【0037】
システム状態モデル210は、イベントに関連するファイルから抽出されるデータによってさらに拡張することができる。例えば、異なるタイプの抽出データは、ローデータ、光学式文字認識(OCR)データ、ファイル属性などを含むことができる。
【0038】
以下に示すのは、「トップシークレット」という語句を含むスクリーンショットがリムーバブルメディアに移動されたときにアラートを生成する複合ルールの例である。
【0039】
したがって、複合ルールは、述部の包括的な「ワンショット(one-shot)」評価を含むことができ、その結果、「アラート(alert)」アクションが実行される。
【0040】
あるいは、ロジックコントローラ215のロジックブロックのチェーンは、単一の複合ルールではなく、システム状態モデル210を利用することができる。離散的なチェーン可能ロジックブロックを使用することにより、リソースのかかる操作(例えば、OCR画像認識)のためにコンポーネントを再利用することができる。ファイルのリムーバブルメディアへのコピーまたは移動を検出するロジックブロックの例を以下に示す。
【0041】
上記でイベントタイプ「リネーム(RENAME)」が使用されているのは、ファイルがコピーまたは移動されると、該当するオペレーティングシステムがリネームイベントを生成するためである。したがって、ファイルがリムーバブルディスクにコピーまたは移動されると、観察イベントに「リネーム(Rename)」タグと「リムーバブル(Removable)」タグを付けることができる。システム状態モデル210は、このタグで更新することができ、イベントは、タグが適用されたシステム状態モデルルールシステムの残りの部分を通じて継続することができる。
【0042】
別の例では、「トップシークレット」など、特定の言語に関連付けられたイベントに対するアクションをモニタおよび実行するためのルールを生成できる。スクリーンショットからのOCRデータに「トップシークレット」が含まれているかどうかを判断するロジックブロックの例を以下に示す。
【0043】
したがって、「トップシークレット」(大文字と小文字が区別される場合とされない場合がある)と認識される文字を含むスクリーンショットファイルが観察された場合、システム状態モデル210を「トップシークレット」および「スクリーンショット」のタグで更新することができる。その後、システム状態モデルルールシステムの残りの部分にタグを適用して、イベントを継続できる。
【0044】
さらに別の例では、モニタされたイベントに基づいてアラートを提供するためのルールを生成できる。リムーバブルメディアルールと「トップシークレット」OCRデータルールの両方がトリガーとして使用された場合にアラートを出力するロジックブロックの例を以下に示す。
【0045】
イベントがこのルールに「到達し(reaches)」、かつ、適切なタグ(「トップシークレット」、「スクリーンショット」、「リネーム」、「リムーバブル」)でタグ付けされている場合、システム状態モデル210は、「疑わしい(Suspicious)」タグで更新することができ、イベントは、このタグが適用されたルールスキームの残りの部分を通じて継続する。システム状態モデル210は、イベントに関連付けられた「アラート」アクションを含むように更新することもでき、その結果、イベントがルールスキームによりその実行を完了したときに、システム200は、このルールに基づいてアラートアクションを実行することができる。305に示すように、全てのタグが付加され、アクションが決定される前に、1つ以上のロジックブロック実行「ループ(loop)」をとることができる。
【0046】
さらに、または代替的に、ルールは、ルールスキーム全体の順序内にルールの実行を位置付けることができる顕著性値を含むことができる。例えば、顕著性値が2の場合は、ルールスキーム内の他のルールの後にアラートが実行されることを示し得る。さらに、または代替的に、ルールが真と評価される場合、1つ以上の信頼値を評価に割り当てることができる。例示的な例では、信頼値は0と1の間の数であり、信頼値の使用は、結合ルール出力を本質的に「ファジー(fuzzy)」にする。ルールがイベントに複数のタグを適用する場合、タグは共通の信頼値を共有することも、各タグが独自の信頼値を持つこともできる。いくつかの態様において、信頼値が使用される場合、セキュリティ脅威は、閾値を満たす信頼値の集合(例えば、平均、合計、または他の関数)に少なくとも部分的に基づいて検出され得る。場合によっては、信頼値が使用されるとき、疑わしいアクティビティを検出するために様々なタグを組み合わせた「最終(final)」ルールを、集合信頼度を閾値と比較するルールに置き換えることができる。
【0047】
例示では、「トップシークレット」という用語を含むスクリーンショットがリムーバブルメディアにコピーされていると判定された場合、アクチュエータ306は、システム状態モデル210を更新する307、アラート308(これは、視覚、聴覚、通信メッセージ(例えば、テキスト、電子メールなど)、または別の種類のアラートであり得る)を出力するなどのアクションを行うように指示される。
【0048】
このように、図3の例は、入力センサ、モデル化されたイベント、システム状態キャッシュ、ロジックコントローラ/ブロック、およびアクチュエータなどのゲームエンジンコンポーネントを使用して、コンピュータセキュリティ動作をモデル化および実装する柔軟性およびロバストネスの例を示す。実行される各ルールで、システム状態モデルは、実行され得る作動されたコマンド/アクションに関する情報を含む、将来のルール(またはロジックブロック)評価において参照または使用され得る追加の知識で拡張され得る。キャッシュされたシステム状態および、リアルタイムまたはほぼリアルタイムのイベントストリームの両方を利用することによって、開示されたゲームエンジンベースのコンピュータセキュリティシステムおよび方法は、これまで知られていなかったセキュリティ問題を含む、署名ベースおよびAIベースソリューションを回避する可能性のあるセキュリティ問題を検出することができる。さらに、イベントがシステムを通過するときにタグをイベントとともに移動させ、システム状態キャッシュに以前のイベントとそのタグ情報をキャッシュすることによって、開示された技法は、集合内のイベントを検査し、それらのイベントが個々に検査されたときに無害であるように見えたとしても、セキュリティ脅威を検出することができる。このように、開示された技法は、自己修正して、署名ベースの検出を回避するセキュリティ脅威を阻止し、悪意のあるアクティビティを「スロー再生(slow-play)」して、従来の動作ベースの検出/発見的検出を回避することができる。いくつかの実施形態では、開示されたゲームエンジンベースコンピュータセキュリティ技術は、別の(例えば、署名ベースの)セキュリティシステムと共に使用することができる。
【0049】
一例として、開示されたゲームエンジンベースコンピュータセキュリティ技術は、ランサムウェアのような脅威を検出するように構成することができる。ランサムウェアのような脅威では、通常、3つの条件が満たされる。1つは、信頼できるエンティティ(例えば、オペレーティングシステムのベンダーなど)または信頼できるソフトウェア市場(例えば、既知のアプリストア)によって署名されていないプロセスによって、特定のディレクトリ内のファイルが変更されること、1つは、ファイルの内容が暗号化されること、残りの1つは、短期間に大量のファイルを暗号化する同じプロセスである。したがって、第1のロジックブロックを定義して、ファイルの変更がユーザディレクトリ内の信頼できないプロセスによる暗号化操作であるかどうかを判断し、そうである場合は、イベントにラベル「UntrustedEncrypt」でタグ付けすることができる。
【0050】
場合によっては、オペレーティングシステムは、ファイルが暗号化されているかどうかについての入力をセンサ205に提供することができる。その他の場合には、暗号化検出器を使用することができ、暗号化検出器が暗号化、非暗号化、およびエントロピー解析、カイ二乗分布、モンテカルロパイ解析などの数学的手法の組み合わせに基づく圧縮ファイルを区別する。
【0051】
第2ロジックブロックを第1ロジックブロックにチェーンさせることができ、またUntrustedEncryptラベルが存在するときに、ファイルのその信頼できない暗号化のプロセスが複数のファイルを迅速に暗号化したかどうかを決定するために第2ロジックブロックを定義することができる。
【0052】
上記の例において、イベントの「ラベル(labels)」データ構造は、イベントがゲームエンジンベースのセキュリティシステムを通過する際に、イベントのイベントタグを維持するために使用されることが理解されよう。第2ロジックブロックによって実現される述語が真であると評価される場合、ランサムウェアのような脅威が検出され、特定のアクチュエータを起動して適切なアクションをとることができる。
【0053】
別の例では、開示されたゲームエンジンベースコンピュータセキュリティ技術は、高度で持続的な脅威(APT)の挙動を検出するように構成することができる。APT脅威の一例が「Windshift」であり、macOS(登録商標)の脅威で、ダウンロードしたファイルを自動的に開いたり、カスタムURLハンドラを登録したり、アプリケーションを起動したりするウェブブラウザを組み合わせてシステムに感染する。macOS(登録商標)は、カリフォルニア州クパチーノのApple Computer,Inc.の登録商標である。Windshiftのような脅威を検出するには、ウェブブラウザによるファイルの自動オープンを検出するための第1ルールを使用することができる。
【0054】
第2ルールは、カスタムURLハンドラを検出するために使用することができる。
【0055】
いくつかの例は、macOS(登録商標)セキュリティに関して本明細書に記載することができるが、これは例示のためだけであり、限定とは考えられないことを理解されたい。
【0056】
第3ルールは、アプリケーションの起動を検出するために使用できる。3つのルールすべてがイベントにタグ付けする場合、アクチュエータは、適切なアクションを取るように指示され得る(例えば、Windshiftのような脅威が検出された場合にアラートをトリガーする)。
【0057】
別の例として、開示されたゲームエンジンベースコンピュータセキュリティ技術は、ほぼ15年間検出されなかったMacマルウェアであるFruitFlyのような、またはFruitFlyに類似のマルウェアを検出するように構成され得る。FruitFlyは、本開示のルール/ロジックチェーンを使用して検出することができる特定のセットのインストール時間挙動を示した。具体的には、FruitFlyは再起動サイクルの間も存続できる場所にインストールされており、FruitFlyはオペレーティングシステムのベンダーによって署名されておらず、FruitFlyは隠しバイナリを利用する。第1ルールを使用して、起動アイテムの存続性を検出できる。
【0058】
ファイルがオペレーティングシステムベンダーによって署名されていないかどうかを判断するために、第2ルールを使用できる。
【0059】
隠しバイナリが使用されているかどうかを判断するために、第3ルールを使用することができる(以下の例では、隠しmacOS(登録商標)ファイルが、そのファイル名のtelltaleプロパティに基づいて検出される)。
【0060】
実行時に、FruitFlyは隠しバイナリを符号なしプロセスとして実行し、一時ファイル用の一般的に使用されるフォルダにペイロードをドロップしたが、このルールの例を以下に示す。また、FruitFlyは、コンピュータのカメラにアクセスし、合成クリックを生成することが多く、その両方が、本開示のセンサフレームワークおよびルールチェーンを用いて同様に検出され得る。
【0061】
別の例では、開示されたゲームエンジンベースコンピュータセキュリティ技術は、通常信頼される個人(例えば、会社員)が会社のセキュリティを脅かすような方法で行動しているかどうかを検出するように構成することができる。例えば、ルールを使用して、ユーザがリムーバブルドライブにファイルを書き込んでいるかどうか(会社の方針に違反する可能性がある)を検出できる。
【0062】
別の例として、ルールを使用して、ユーザがいつsudo利用を呼び出して変更されたセキュリティ権限でプログラムを実行しようとしたかを検出できる。
【0063】
追加のルールを使用して、従業員がいつ画面キャプチャを取得するか、または通常の勤務時間後に何らかのアクティビティを実行しているかを検出できる。
【0064】
別の例では、ファイルが悪意のあるものであるかもしれないサインである可能性がある、ファイルがそれ自体を削除しようとしているかどうかを検出するようにルールを設定することができる。
【0065】
自己削除ルールとネットワークインターフェイスのドメインネームシステム(DNS)設定の変更を検出するように設定されたルールの組み合わせを使用して、macOS(登録商標)DNSハイジャック型マルウェアであるMaMiなどのマルウェアの脅威を検出できる。
【0066】
さらに別の例として、システム整合性保護(SIP)オペレーティングシステムの場所にペイロードを書き込もうとしたかどうかを検出するために、ルールを使用することができる。
【0067】
本明細書に記載されている種々の実施例および使用例は、単なる例示であり、限定するものとは考えられないことに留意されたい。本開示の技術は、デスクトップ、ラップトップ、サーバ、タブレット、携帯電話、ポータブルメディアプレーヤ、ウェアラブルコンピューティングデバイス等を含むがこれらに限定されない種々のタイプのコンピューティングデバイスと共に使用することができる。本開示の技術は、macOS(登録商標)、Windows(登録商標)、Linux(登録商標)、モバイル/埋め込み型オペレーティングシステム(例えば、iOS(登録商標)、Android(登録商標)など)を含むがこれらに限定されない様々なオペレーティングシステムに使用することができる。Windowsは、米国ワシントン州レドモンドのMicrosoft Corp.の登録商標である。Linux(登録商標)は、米国マサチューセッツ州ボストンのLinus Torvaldsの登録商標である。iOSは、米国カリフォルニア州サンノゼのCisco Technology, Inc.の登録商標である。Androidは、米国カリフォルニア州マウンテンビューのGoogle Inc.の登録商標である。
【0068】
図4は、ゲームエンジンベースコンピュータセキュリティの方法400の特定の例を示す。例示的な実施例では、方法400は、図2~3を参照して説明した動作に対応する。
【0069】
方法400は、オペレーティングシステムを実行するコンピューティングデバイスのゲームエンジンセンサにおいて、402において、モニタされたイベントの発生を表すオペレーティングシステムからの第1データを受信することを含む。例えば、センサ205は、オペレーティングシステムからデータを受信することができ、そのデータは、モニタされたイベントの発生を表す。方法400はまた、404において、モニタされたイベントに対応する第2データをゲームエンジンセンサからゲームエンジンロジックコントローラに送信するステップを含む。例えば、センサ205は、モデル化されたイベントデータをロジックコントローラ215に送信することができる。
【0070】
方法400はさらに、406において、第2データおよびコンピューティングデバイスのシステム状態を表す第3データに基づいて、ゲームエンジンロジックコントローラの第1ロジックブロックにおいて、第1述語条件が満たされていることを判断するステップを含む。方法400は、408において、ゲームエンジンロジックコントローラの第2ロジックブロックにおいて、第2データおよび第3データに基づいて、第2述語条件が満たされていることを判断するステップを含む。例えば、異なるロジックブロック216は、図2~3を参照して説明したように、様々な述語条件が満たされていることを判断することができる。
【0071】
方法400はまた、410において、第1および第2述語条件が満たされていることに基づいてコンピュータセキュリティの脅威を検出するステップを含む。方法400はさらに、412において、コンピュータセキュリティの脅威の検出に基づいて、少なくとも一つのゲームエンジンアクチュエータに、コンピュータセキュリティの脅威に応答する少なくとも一つのアクションを実行するように指示するステップを含む。例えば、アクチュエータ220は、検出された脅威に応答するアクションを実行するように指示され得る。そのようなアクションは、システム状態モデル210の更新、アラートの生成、ファイルの隔離、プロセスの終了などを含む。
【0072】
特定の態様において、本開示のゲームエンジンベースコンピュータセキュリティ技術は、モバイルデバイス管理(MDM)のコンテキストにおいて適用され得る。MDMシステムでは、MDMサーバは、「スマート(smart)」グループに基づいてグループメンバーシップ情報を維持することができる。本明細書で使用する場合、「スマート」グループは、特定のイベントに応答してメンバーシップが動的に更新されるグループであってもよい。例えば、情報技術(IT)管理者は、特定のユーザセット(例えば、特定の年齢グループ、特定の雇用役割など)を対象とするグループを作成できる。グループのメンバーシップは、管理されたデバイス(例えば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、テレビ、スマートデバイス、エンターテイメントデバイス、電気器具、車両、ナビゲーションデバイスなど)が参加グループ要求またはリセット要求をMDMサーバに送信する時に動的に更新され得る。本明細書で使用される場合、「MDMグループ」は、スマートグループを指す。
【0073】
図5は、モバイルデバイス管理を実行するように動作可能なシステムの一例を示しており、概して500で示されている。システム500は、MDMサーバ520を含む。MDMサーバ520は、プッシュ通知サービス530、モバイルデバイス550、およびコンピューティングデバイス540に結合される。二つのデバイスに結合されたMDMサーバ520が例示的な例として提供されることを理解されたい。いくつかの態様では、MDMサーバ520は、二つより少ないデバイスまたは二つより多いデバイスに結合される。
【0074】
コンピューティングデバイス540は、オペレーティングシステム(OS)541を含むことができ、モバイルデバイス550は、モバイルOS551を含むことができる。各OS 541、551は、入出力(例えば、タッチスクリーンディスプレイ、スピーカー、マイク、カメラなど)およびネットワーキング(例えば、携帯電話、Bluetooth、無線通信 (Wi-Fi)、イーサネット(Ethernet)など)などのコンピューティング機能を制御することができる。各OS541、551はまた、アプリケーション(apps)543、553、567の実行をサポートすることができ、そのようなアプリケーションにデバイスリソースおよびデータ544、554へのアクセスを提供することができる。アプリケーションの例としては、ウェブブラウザ、電子メール、カレンダー、ソーシャルネットワーキング、ドキュメント/電子書籍リーダ、メディアプレーヤ、ゲームアプリケーション、患者管理アプリケーション、医療参照アプリケーション、投薬追跡ツールなどが挙げられるが、これらに限定されない。アプリケーションは、メモリに記憶され、プロセッサによって実行されるソフトウェア指示、アプリケーション機能を実装するハードウェア回路、またはその両方に対応し得る。
【0075】
モバイルデバイス550は、デバイス管理クライアント552を含む。いくつかの例では、デバイス管理クライアント552は、モバイルデバイス550がグループ514の部分である(またはあるべきである)ことを示す入力(例えば、ユーザ503からのユーザ入力504)の受信に応答して、MDMサーバ520に参加グループ要求555を送信するように構成される。デバイス管理クライアント552は、MDMサーバ520からアクション557を実行するためのコマンドを受信し、アクション557の実行を開始するように構成される。アクション557は、例えば、グループ514に関連付けられた一つ以上のアプリケーション567をダウンロードすること、一つ以上の構成設定565をダウンロードすることなどを含む。いくつかの実装では、グループ514を示す参加グループ要求555を送信しても、モバイルデバイス550において、グループ514とは異なる任意のグループに関連付けられたアプリケーション、データ、またはそれらの組み合わせが削除されることはない。他の実施形態では、グループ514を示す参加グループ要求555を送信すると、モバイルデバイス550において、グループ514とは異なる一つ以上のグループに関連付けられたアプリケーション、データ、またはそれらの組み合わせの削除を開始する。例えば、参加グループ要求555は、グループ514以外のグループに関連付けられたアプリケーションおよびデータの削除を開始し、リセット要求585は、すべてのアプリケーション、すべてのデータ、モバイルOS551、デバイス管理クライアント552、またはこれらの組み合わせの削除を開始する。
【0076】
コンピューティングデバイス540は、デバイス管理クライアント552のコピーも含む。コンピューティングデバイス540のデバイス管理クライアント552は、プッシュ通知サービス530からのプッシュ通知531の受信に応答して、チェックイン要求をMDMサーバ520に送信することによってチェックインイベント546の実行を開始するように構成される。
【0077】
特定の態様において、デバイス管理クライアント552は、本明細書に記載される一つ以上の動作を実行するように構成されたプロセッサに対応する。特定の態様では、デバイス管理クライアント552は、プロセッサによって実行された場合に、プロセッサに、本明細書に記載の一つ以上の動作を実行させる指示に対応する。特定の態様では、デバイス管理クライアント552は、本明細書に記載する一つ以上の動作を実行するために実行可能な指示を記憶するコンピュータ可読記憶装置に対応する。
【0078】
MDMサーバ520は、メモリ523、モバイルデバイスマネージャ534、またはその両方を含む。メモリ523は、グループメンバーシップデータ528と、管理デバイスのデバイス識別子512とを記憶する。グループメンバーシップデータ528は、特定のグループ、グループに含まれるデバイス、またはそれらの組み合わせに対して実行されるアクションを示す。例えば、モバイルデバイスマネージャ534は、モバイルデバイス550から参加グループ要求555を受信し、参加グループ要求555がグループ514を示していると判断することに応答して、グループメンバーシップデータ528を更新してモバイルデバイス550をグループ514に追加する。モバイルデバイスマネージャ534は、アクション557が実行されることを示すコマンドをモバイルデバイス550に送信するように構成される。
【0079】
特定の態様において、モバイルデバイスマネージャ534は、本明細書に記載の一つ以上の動作を実行するように構成されたプロセッサに対応する。特定の態様では、モバイルデバイスマネージャ534は、プロセッサによって実行されると、プロセッサに本明細書に記載の一つ以上の動作を実行させる指示に対応する。特定の態様において、モバイルデバイスマネージャ534は、本明細書に記載される一つ以上の動作を実行するために実行可能な指示を記憶するコンピュータ可読記憶装置に対応する。
【0080】
運用中、ユーザ501(例えば、IT管理者)は、MDMサーバに一つ以上のグループを設定する。例えば、ユーザ501は、ユーザ入力502をMDMサーバ520に提供するが、それはグループ514、一つ以上の追加グループ、またはそれらの組み合わせを示す。ユーザ入力502は、グループ名、グループに対応するアクション、またはその組み合わせを示す。例えば、ユーザ入力502は、グループ514のグループ名(例えば、「看護(Nursing)」)を示す。例示的な例では、グループ514は、雇用役割(看護師、検査技師、医師、マネージャなど)に基づいている。ユーザ501は、任意の基準に基づいてグループ514を設定することができる。例えば、ユーザ501は、年齢、性別、雇用役割、場所、技能、関係、他の基準、またはそれらの組み合わせに基づいて、グループ514を設定することができる。ユーザ入力502は、グループ514に参加するデバイスに対して実行されるアクション557を示す。例えば、ユーザ入力502は、グループ514のメンバーがアプリケーション567へのアクセスを許可されていること、グループ514のメンバーがアプリケーション553へのアクセスを許可されていない(例えば、アクセスが制限されている)こと、またはこれらの組み合わせを示す。特定の態様では、ユーザ入力502は、構成設定565を示す。アクション557は、アプリケーション567のダウンロード、構成設定565のダウンロード、アプリケーション567のアイコンを含むGUIの生成、異なるグループ(例えば、「医師(Doctors)」)に関連付けられたアプリケーション553のアイコンを除外するGUIの生成、アプリケーション553の削除(またはアンインストール)、またはこれらの組み合わせを示す。
【0081】
種々の態様において、ユーザ入力502は、新しいメンバーがグループ514に追加されたとき、またはメンバーがグループから脱退したときにデバイスによって実行されるアクションを示すことができる。グループメンバーシップデータ528は、デバイスがグループに加入または脱退する際に更新され得る。一般に、デバイスは任意の基準に基づいてグループ化できる。グループ化基準の例には、デバイス能力、デバイスコンポーネント、デバイス状態、デバイスバッテリレベル、デバイスメモリ空間、デバイスオペレーティングシステム、デバイスソフトウェアバージョン、デバイスタイプ、デバイス位置などが含まれるが、これらに限定されない。いくつかの例において、グループリスト563は、MDMサーバ520によって維持され、例えば、更新要求561に応答して、システム500内の他のデバイスに通信される。別の例では、プッシュ通知531、533は、通知要求524を介して開始され、デバイスにチェックインイベント583、546をMDMサーバと共に開始させるために使用され、MDMサーバ520は、チェックインに応答して、更新されたグループリスト563をデバイスに通信することができる。その他のコマンドも、チェックイン時にデバイスに通知され得る場合がある。例えば、MDMサーバ520は、デバイスにアプリケーションまたはファイルのダウンロード/インストール/アンインストール、構成設定の実施、アクティベーションロックの設定、スマートグループメンバシップの変更などを行わせるアクション547、548を送信することができる。場合によっては、リセットコマンド587を使用して、デバイスで工場出荷時のリセットを引き起こすことができる。場合によっては、リセットコマンド587は、リセット要求585に応答して送信することができる。
【0082】
上述の使用例のいくつかは、単一のデバイスにおけるコンピュータセキュリティに対して説明されているが、図5のシステム500は、複数のデバイスに対応するセンサ入力および/またはアクションに基づいて、ゲームエンジンベースコンピュータセキュリティを可能にすることができる。例えば、MDMサーバ520は、ゲームエンジンベースセキュリティシステムの一つ以上のコンポーネントを含むことができ、そのようなコンポーネントは590で指定される。例えば、MDMサーバ520は、センサ205、システム状態モデル210、ロジックコントローラ215、ロジックブロック216、および/またはアクチュエータ220のうちの一つ以上を含むことができる。特定の例では、MDMサーバ520は、アクチュエータを含み、一つ以上の管理デバイスに対してアクションを開始するように構成される。いくつかの例では、センサおよびロジックコントローラ/ブロックは、管理デバイスまたは他のサーバなどにおいて、MDMサーバ520に対して遠隔に配置することができる。別の実施形態では、MDMサーバ520は、ゲームエンジンのロジックコントローラ/ブロックの少なくとも一部を含む。
【0083】
ゲームエンジンベースセキュリティシステムは、システム500内の複数のデバイス、例えば、コンピューティングデバイス540およびモバイルデバイス550からのセンサ入力を受信することができる。論理ルールを定義して、同じスマートグループに属している場合と属していない場合がある複数のデバイスに対応するデータに基づいて述語を評価できる。ルール評価中に考慮されるシステム状態には、複数の管理デバイスに関連付けられた状態情報が含まれる場合がある。セキュリティ応答アクションは、同じグループに属している場合と属していない場合がある複数のデバイスで実行できる。したがって、場合によっては、複数の管理デバイスに、それらの管理デバイスのすべてよりも少ない(もしくは全くないかもしれない)管理デバイスで発生するモニタされたイベントに基づいてアクションを実行するためのコマンドが送信されることがある。同様に、複数の管理デバイスからのイベントを集約して、1つのデバイスで発生するイベントを使用して識別することが困難なセキュリティ脅威(例えば、分散型サービス妨害(DDoS)攻撃やボットネットアクティビティ)を識別できる。
【0084】
例示的で非限定的な例として、ランサムウェアのような脅威が1つのデバイスで検出された場合、現在使用されていないシステム内の他のデバイスを、感染したデバイスから隔離された二次ネットワークに切り替えることができる。別の例示的で非限定的な例では、「Florida」スマートグループ内の複数のデバイスがアイドル状態のコンピューティングサイクルをほとんど持たない場合、クリプトマイニングマルウェアが検出される可能性があり、これは、企業のフロリダ支社の従業員に配布されたデバイスが、おそらく限定的な感染ベクターを介して感染したことを示す。
【0085】
いくつかの例では、ゲームエンジンベースのセキュリティシステムの述語ルールはハードコーディングされておらず、代わりに実行時に動的に調整可能である。ルールのセットは、セキュリティ「プロファイル(profiles)」に結合することができ、このようなプロファイルは、ゲームエンジンベースセキュリティシステムにおける動作に基づいて動的に切り替え/調整することができる。例示すると、アクチュエータは、1つ以上のデバイスで使用されているセキュリティプロファイルを調整するためのアクションを実行して、全体的なルール評価が多かれ少なかれアグレッシブであるようにしてもよい。例えば、疑わしいアクティビティが管理デバイスで識別された場合、エリア内または同じネットワーク上にある他の管理デバイスは、よりアグレッシブな(例えば、より厳しい)セキュリティプロファイルに切り替えられ、ログに記録されたイベントおよびアラートの冗長性が向上し得る。別の例として、ルールは、アクチュエータによって実行されるアクションに応答して、ルール評価パイプラインから動的に含まれ/除外され得る。さらに別の例として、ルールのパラメータ(例えば、イベントデータが比較される閾値)は、アクチュエータによって取られるアクションに応答して動的に調整され得る。例えば、信頼度値が使用中であり、セキュリティの脅威が検出された場合、総体的な信頼度が疑わしいアクティビティに対応すると判断される閾値を低減することができる。
【0086】
ルール/プロファイルは、特定の検出されたイベントに基づいて動的に調整することもできる。例えば、デバイスがホームネットワーク、オフィスネットワーク、未知のネットワーク、オープン/セキュリティ対策が施されていない/パブリックネットワークなどに接続されていることを示すGPS位置データまたはネットワークデータに基づいて、より積極的なプロファイルまたはより消極的なプロファイルを使用することができる。ルール/プロファイルの動的調整に関する前述の例は、MDMコンテキスト内(例えば、図5を参照して説明したように)で、かつMDMの原理(例えば、図2~4を参照して説明したように)の関与なしに実施することができることを理解されたい。
【0087】
したがって、図5のシステム500は、複数のデバイスからのセンサ入力に基づいてセキュリティ脅威を検出し、複数のデバイス上で応答アクションを実行することを含む、管理されたコンピューティングデバイスに対するゲームエンジンベースのコンピュータセキュリティを可能にし得る。
【0088】
図1図5の1つ以上は、本開示の教示によるシステム、デバイス、および/または方法を例示することができるが、本開示は、これらの例示されたシステム、デバイス、および/または方法に限定されない。本開示の態様は、メモリ、プロセッサ、およびオンチップ回路を含む集積回路を含む任意のデバイスにおいて適切に使用することができる。
【0089】
本明細書に図示または説明される図1図5のいずれかの1つ以上の機能またはコンポーネントは、図1図5の別の部分の1つ以上の他の部分と組み合わせることができる。したがって、本明細書に記載されるいかなる単一の態様も、本開示を限定するものと解釈されるべきではなく、本開示の態様は、本開示の教示から逸脱することなく適切に組み合わせることができる。
【0090】
当業者は、本明細書に開示された態様に関連して説明された様々な例示的ロジックブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、またはその両方の組み合わせとして実施され得ることをさらに理解するであろう。種々の例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップは、それらの機能性に関して上述されている。そのような機能がハードウェアまたはプロセッサ実行可能指示として実装されるかどうかは、特定のアプリケーションおよびシステム全体に課される設計制約に依存する。熟練した当業者は、各特定のアプリケーションに対して様々な方法で記述された機能を実装することができるが、そのような実装の決定は、本開示の範囲から逸脱するものと解釈されるべきではない。
【0091】
本明細書に開示された態様に関連して記載された方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこれら2つの組み合わせにおいて直接実施されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み取り専用メモリ(ROM)、プログラム可能な読み取り専用メモリ(PROM)、消去可能でプログラム可能な読取り専用メモリ(EPROM)、電気的に消去可能でプログラム可能な読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当技術分野で公知の任意の他の形態の非一時記憶媒体に存在し得る。例示的な記憶媒体(例えば、コンピュータ可読記憶装置)は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替的には、記憶媒体は、プロセッサに一体化することができる。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)内に存在し得る。ASICは、コンピューティングデバイスまたはユーザ端末内に存在し得る。代替的に、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に別個のコンポーネントとして存在し得る。記憶装置はシグナルではない。
【0092】
一態様では、ゲームエンジンに通信可能に結合された1つ以上のゲームエンジンセンサが1つ以上のイベントを検出するように1つ以上のゲームエンジンセンサを構成することを含む、コンピュータ実施のセキュリティ方法が開示される。本方法はまた、セキュリティ状況を表す1つ以上の状態を維持し、1つ以上のゲームエンジンセンサによって検出された1つ以上のイベントを受信し、1つ以上のゲームエンジンセンサによって検出された1つ以上のイベントに基づいて1つ以上の状態を更新し、定義された状態に達すると、アクションを開始するようにゲームエンジンを構成するステップを含む。いくつかの態様において、イベントはオペレーティングシステムレベルのイベントである。いくつかの態様において、オペレーティングシステムレベルのイベントは、ファイルシステムイベント、プロセスイベント、ネットワークイベント、認証イベント、許可イベント、ダウンロードイベント、スクリーンショットイベント、リムーバブルメディアイベント、合成入力イベント、ボリュームイベント、ユーザーアクティビティイベント、ウェブカムイベント、またはマイクイベントのうちの1つ以上を含む。いくつかの態様において、状態は、1つ以上のタグとの関連によって表される。さらなる態様において、定義された状態の少なくとも1つは、複数のタグを必要とする。
【0093】
別の態様では、方法は、オペレーティングシステムを実行するコンピューティングデバイスのゲームエンジンセンサにおいて、モニタされたイベントの発生を表すオペレーティングシステムからの第1データを受信することを含む。この方法はまた、ゲームエンジンセンサから、モニタされたイベントに対応する第2データをゲームエンジンロジックコントローラに送信するステップを含む。本方法はさらに、ゲームエンジンロジックコントローラの第1ロジックブロックにおいて、第2データと、コンピューティングデバイスのシステム状態を表す第3データとに基づいて、第1述語条件が満たされていることを判断することを含む。本方法は、第2データおよび第3データに基づいて、ゲームエンジンロジックコントローラの第2ロジックブロックにおいて、第2述語条件が満たされていることを判断することを含む。この方法はまた、第1および第2述語条件が満たされていることに基づいてコンピュータセキュリティ脅威を検出するステップを含む。本方法はさらに、コンピュータセキュリティ脅威の検出に基づいて、少なくとも1つのゲームエンジンアクチュエータに、コンピュータセキュリティ脅威に応答する少なくとも1つのアクションを実行するように指示するステップを含む。
【0094】
別の態様では、システムは、モニタされたイベントの発生を表すオペレーティングシステムからの第1データをゲームエンジンセンサで受信するために、少なくとも1つのプロセッサと、少なくとも1つのプロセッサによって実行可能な指示を記憶するメモリとを含む。
指示はまた、ゲームエンジンセンサから、モニタされたイベントに対応する第2データをゲームエンジンロジックコントローラに送信するために実行可能である。指示はさらにゲームエンジンロジックコントローラの第1ロジックブロックにおいて、第2データと、コンピューティングデバイスに関連付けられたシステム状態を表す第3データとに基づいて、第1述語条件が満たされていることを判断するために実行可能である。指示は、ゲームエンジンロジックコントローラの第2ロジックブロックにおいて、第2データおよび第3データに基づいて、第2述語条件が満たされていることを判断するために実行可能である。指示はまた、第1および第2述語条件が満たされていることに基づいてコンピュータセキュリティの脅威を検出するために実行可能である。指示は、コンピュータセキュリティ脅威の検出に基づいて、少なくとも1つのゲームエンジンアクチュエータに、コンピュータセキュリティ脅威に応答する少なくとも1つのアクションを実行するように指示するために、さらに実行可能である。
【0095】
別の態様では、コンピュータ可読記憶装置は、実行されると、ゲームエンジンセンサにおいて、少なくとも1つのプロセッサに、モニタされたイベントの発生を表すオペレーティングシステムからの第1データを受信することを含む動作を実行させる指示を記憶する。動作は、ゲームエンジンセンサから、モニタされたイベントに対応する第2データをゲームエンジンロジックコントローラに送信することも含む。これらの動作はさらに、ゲームエンジンロジックコントローラの第1ロジックブロックにおいて、第2データと、コンピューティングデバイスに関連付けられたシステム状態を表す第3データとに基づいて、第1述語条件が満たされていることを判断することを含む。動作は、ゲームエンジンロジックコントローラの第2ロジックブロックにおいて、第2データおよび第3データに基づいて、第2述語条件が満たされていることを判断することを含む。動作はまた、第1および第2述語条件が満たされていることに基づいてコンピュータセキュリティ脅威を検出することを含む。動作はさらに、コンピュータセキュリティ脅威の検出に基づいて、少なくとも1つのゲームエンジンアクチュエータに、コンピュータセキュリティ脅威に応答する少なくとも1つのアクションを実行するように指示することを含む。
【0096】
開示された態様の前述の説明は、当業者が開示された態様を製造または使用することを可能にするために提供される。これらの態様に対する種々の修正は、当業者には容易に明らかであり、本明細書に定義された原理は、開示の範囲から逸脱することなく他の態様に適用され得る。したがって、本開示は、本明細書に示される態様に限定されることを意図しておらず、以下の特許請求の範囲によって定義される原理および新規な特徴と一致する可能な限り広い範囲を与えられるべきである。

図1
図2
図3
図4
図5