(57)【要約】【課題】モニタされているコンピューティングデバイス上に実装されているセキュリティーエージェントを提供する。【解決手段】セキュリティーエージェントは、オブジェクトの実行を示すイベント通知を受信し、イベント通知およびオブジェクトに関連付けられている情報を、モニタされているコンピューティングデバイス上のデータ構造内に格納するように構成されている。セキュリティーエージェントは、モニタされているコンピューティングデバイス上でのアクティビティーの発生を示すイベント通知を受信するようにさらに構成されている。格納されている情報に少なくとも部分的に基づいて、セキュリティーエージェントは、アクティビティーの発生をオブジェクトの実行と相関付け、その相関付けに基づいてエクスプロイト検知イベントを生成する。【選択図】図１ａ
2017191604.tif 000002
【特許請求の範囲】
【請求項１】
モニタされているコンピューティングデバイス上に実装されているセキュリティーエージェントによって、オブジェクトの実行を示すイベント通知を受信するステップと、
前記セキュリティーエージェントによって、前記イベント通知および前記オブジェクトに関連付けられている情報を、前記モニタされているコンピューティングデバイス上の前記セキュリティーエージェントのデータ構造内に格納するステップと、
前記セキュリティーエージェントによって、前記モニタされているコンピューティングデバイス上でのアクティビティーの発生を示すイベント通知を受信するステップと、
前記格納されている情報に少なくとも部分的に基づいて、前記セキュリティーエージェントによって、前記アクティビティーの前記発生を前記オブジェクトの前記実行と相関付けるステップであって、前記アクティビティーの前記発生と、前記オブジェクトの前記実行との前記相関は、セキュリティーエクスプロイトのオペレーションを示す、ステップと、
前記セキュリティーエージェントによって、前記相関付けに基づいてエクスプロイト検知イベントを生成するステップと
を含むことを特徴とする方法。
【請求項２】
前記オブジェクトは、プロセスまたはスレッドであることを特徴とする請求項１に記載の方法。
【請求項３】
前記オブジェクトは、インターネットブラウザプラグインスレッドまたはＥメールアプリケーションスレッドであることを特徴とする請求項１に記載の方法。
【請求項４】
前記アクティビティーは、コマンドラインインターフェース（ＣＬＩ）の作成、プロセスマイグレーション、インストレーション、またはポータブル実行可能ファイル（ＰＥ）の作成および実行のうちの１つであることを特徴とする請求項３に記載の方法。
【請求項５】
前記格納される情報は、少なくとも前記オブジェクトの識別子および前記オブジェクトのオブジェクトタイプを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記オブジェクトの前記実行を示す前記イベント通知を受信する前記ステップ、格納する前記ステップ、前記アクティビティーの前記発生を示す前記イベント通知を受信する前記ステップ、相関付ける前記ステップ、および生成する前記ステップは、前記セキュリティーエージェントの構成可能なポリシーに基づくことを特徴とする請求項１に記載の方法。
【請求項７】
相関付ける前記ステップは、前記オブジェクトの前記実行を示す前記イベント通知と、前記アクティビティーの前記発生を示す前記イベント通知との間における経過時間に基づいて前記アクティビティーの前記発生を前記オブジェクトの前記実行と相関付けるステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
相関付ける前記ステップは、前記オブジェクトに関連付けられているアプリケーションのコンテキストに基づいて前記アクティビティーの前記発生を前記オブジェクトの前記実行と相関付けるステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
相関付ける前記ステップは、前記アクティビティーの前記発生を前記オブジェクトの前記実行と、およびさらなるアクティビティーの発生と相関付けるステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記オブジェクトの前記実行を示す前記イベント通知を受信する前記ステップは、複数の関連したオブジェクトの実行を示すイベント通知を受信するステップを含み、格納する前記ステップは、前記イベント通知および前記複数の関連したオブジェクトに関連付けられている情報を格納するステップを含み、相関付ける前記ステップは、前記アクティビティーの前記発生を前記複数の関連したオブジェクトの前記実行と相関付けるステップを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記複数の関連したオブジェクトは、少なくとも親オブジェクトおよび子オブジェクトを含み、格納する前記ステップは、前記子オブジェクトに関連付けられている情報を前記親オブジェクトのオブジェクト識別子またはオブジェクトタイプにタグ付けするステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記セキュリティーエージェントによって、前記エクスプロイト検知イベントに少なくとも部分的に基づいて防止アクションを取るステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記セキュリティーエージェントによって、前記エクスプロイト検知イベントをリモートセキュリティーサービスに提供するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１４】
提供する前記ステップに応答して、前記セキュリティーエージェントによって、前記セキュリティーエージェントの更新された構成を受信するステップをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
モニタされているコンピューティングデバイスであって、
プロセッサと、
前記モニタされているコンピューティングデバイス上で前記プロセッサによって実行されるように構成されているセキュリティーエージェントとを含み、前記セキュリティーエージェントは、
オブジェクトの実行を示す第１のイベント通知を受信し、前記オブジェクトのオブジェクトタイプを指定する第２のイベント通知を前記第１のイベント通知に基づいて生成し、前記モニタされているコンピューティングデバイス上でのアクティビティーの発生を示す第３のイベント通知を受信し、前記アクティビティーのアクティビティータイプを指定する第４のイベント通知を前記第３のイベント通知に基づいて生成するように構成されているフィルタと、
前記第２のイベント通知を受信し、前記第２のイベント通知を格納し、前記第４のイベント通知を受信し、前記第２のイベント通知、前記第４のイベント通知、および、セキュリティーエクスプロイトのオペレーションを示す相関を指定する相関インデックスに基づいて前記アクティビティーの前記発生を前記オブジェクトの前記実行と相関付け、前記相関付けに基づいてエクスプロイト検知イベントを生成するように構成されている相関器とを含むことを特徴とするモニタされているコンピューティングデバイス。
【請求項１６】
前記第２のイベント通知または前記第４のイベント通知のうちの少なくとも１つは、さらなる情報を含むことを特徴とする請求項１５に記載のモニタされているコンピューティングデバイス。
【請求項１７】
前記相関器は相関器インスタンスであり、前記セキュリティーエージェントは、それぞれのオブジェクトインスタンスごとに異なる相関器インスタンスを含むことを特徴とする請求項１５に記載のモニタされているコンピューティングデバイス。
【請求項１８】
前記セキュリティーエージェントは、複数の連鎖した相関器インスタンスを含み、第１の相関器インスタンスが、前記アクティビティーの前記発生を前記オブジェクトの前記実行と相関付け、第２の相関器インスタンスが、前記第１の相関器インスタンスの出力を別のオブジェクトの実行と相関付け、前記別のオブジェクトが前記オブジェクトに関連していることを特徴とする請求項１７に記載のモニタされているコンピューティングデバイス。
【請求項１９】
モニタされているコンピューティングデバイスであって、
プロセッサと、
前記モニタされているコンピューティングデバイス上で前記プロセッサによって実行されるように構成されているセキュリティーエージェントとを含み、前記セキュリティーエージェントは、
オブジェクトが実行中であるかどうかのインジケータを含む、少なくとも１つの前記オブジェクトに関する情報を格納するように構成されているデータ構造と、
前記少なくとも１つのオブジェクトの実行を示す第１のイベント通知を受信し、前記第１のイベント通知に基づいて前記データ構造を更新し、前記モニタされているコンピューティングデバイス上でのアクティビティーの発生を示す第２のイベント通知を受信し、前記データ構造、前記第２のイベント通知、および、セキュリティーエクスプロイトのオペレーションを示す相関を指定するポリシーに基づいて前記アクティビティーの前記発生を前記オブジェクトの前記実行と相関付け、前記相関付けに基づいてエクスプロイト検知イベントを生成するように構成されているロジックとを含むことを特徴とするモニタされているコンピューティングデバイス。
【請求項２０】
前記ロジックは、前記第１のイベント通知に基づいて、前記少なくとも１つのオブジェクトに関するエントリーを前記データ構造に加えることによって、または前記データ構造内の前記少なくとも１つのオブジェクトに関する既存のエントリーを更新することによって前記データ構造を更新するようにさらに構成されていることを特徴とする請求項１９に記載のモニタされているコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、エクスプロイトアクティビティーの相関ベースの検知に関する。
【背景技術】
【０００２】
インターネットの使用が日常生活のかつてなく大きな部分を形成していることに伴って、システムリソース、データ、およびプライベートな情報を盗み取るまたは破壊するセキュリティーエクスプロイトが、ますます問題になっている。政府および企業は、これらのセキュリティーエクスプロイトに関連した侵入および窃盗を防止することに対して、かなりのリソースを費やしている。セキュリティーエクスプロイトは、コンピュータウイルス、ワーム、トロイの木馬、スパイウェア、キーストロークロガー、アドウェア、およびルートキットなどの多くの形態で到来する。これらのエクスプロイトは、スピアフィッシュＥメール、クリック可能なリンク、ドキュメント、実行可能ファイル、またはアーカイブなどの複数のメカニズムで、またはそうした複数のメカニズムを通じて届けられる。セキュリティーエクスプロイトによってもたらされる脅威のうちのいくつかは、サイバーテロリズムまたは産業スパイと記述されるほどの重大さのものである。
【０００３】
これらの脅威に対抗するために、政府、企業、および個人は、ある範囲のセキュリティーアプリケーションおよびサービスを使用している。典型的には、これらのアプリケーションおよびサービスは、セキュリティーエクスプロイトの署名を探してデバイスをスキャンする。署名を見つけたことに応答して、アプリケーションおよびサービスは、エクスプロイトを隔離または削除する。しかしながら、アプリケーションおよびサービスはしばしば、より洗練されたセキュリティーエクスプロイトを見逃す。たとえば、セキュリティーアプリケーションおよびサービスは、検知されたイベントどうしを相関付ける能力に欠けている。そのようなイベントはそれぞれ、それら自体では無害かもしれないが、ともに、または何らかのシーケンスで観察された場合には、それらのイベントは、セキュリティーエクスプロイトアクティビティーを示す可能性がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願第１３／４９２，６７２号明細書
【図面の簡単な説明】
【０００５】
添付の図を参照しながら、詳細な説明が示される。図においては、参照番号の最も左の数字は、その参照番号が最初に現れる図を識別する。別々の図における同じ参照番号の使用は、同様のまたは同じアイテムまたは特徴を示す。
【図１ａ】モニタされているコンピューティングデバイス上に実装されているセキュリティーエージェント、およびエクスプロイトを検知するためにそれらのセキュリティーエージェントによって取られるアクションの例示的な概観を示す図である。
【図１ｂ】モニタされているコンピューティングデバイス上に実装されているセキュリティーエージェント、およびエクスプロイトを検知するためにそれらのセキュリティーエージェントによって取られるアクションの例示的な概観を示す図である。
【図２】セキュリティーエクスプロイトに潜在的に関連しているイベント通知を検知および生成するためのフィルタ／ロジックと、エクスプロイトアクティビティーを示す相関を検知してエクスプロイト検知イベントを生成するための相関器と、イベント通知に関する情報を格納するためのデータ構造とを含む例示的なセキュリティーエージェントを示す図である。
【図３】エクスプロイトによってターゲットにされるオブジェクトと、セキュリティーエージェントとを伴って構成されているモニタされているコンピューティングデバイスのコンポーネントレベルの図である。
【図４】オブジェクトの実行のイベント通知を受信するステップと、イベント通知およびオブジェクトに関連付けられている情報を格納するステップと、アクティビティーの発生のイベント通知を受信するステップと、アクティビティーの発生をオブジェクトの実行と相関付けるステップと、その相関付けに基づいてエクスプロイト検知イベントを生成するステップとを行うための例示的なプロセスを示す図である。
【発明を実施するための形態】
【０００６】
概観
本開示は、部分的には、モニタされているコンピューティングデバイス上に実装されているセキュリティーエージェントについて記述している。セキュリティーエージェントは、オブジェクトの実行を示すイベント通知を受信し、イベント通知およびオブジェクトに関連付けられている情報を、モニタされているコンピューティングデバイス上のデータ構造内に格納するように構成されている。セキュリティーエージェントは、モニタされているコンピューティングデバイス上でのアクティビティーの発生を示すイベント通知を受信するようにさらに構成されている。格納されている情報に少なくとも部分的に基づいて、セキュリティーエージェントは、アクティビティーの発生をオブジェクトの実行と相関付け、その相関付けに基づいてエクスプロイト検知イベントを生成する。
【０００７】
さまざまな実施形態においては、オブジェクトは、モニタされているコンピューティングデバイス上で実行中の任意のプロセスまたはスレッドであることが可能である。たとえば、オブジェクトは、インターネットブラウザプラグインスレッドまたはＥメールアプリケーションスレッドであることが可能である。そのようなオブジェクトは、セキュリティーエクスプロイトに対して脆弱であることが知られている関心のある特定のオブジェクトであることが可能である。さらに、セキュリティーエクスプロイトによってセキュリティー侵害された場合には、オブジェクトは、セキュリティーエクスプロイトを示す複数の特定のアクティビティーのうちの１つを実行することがある。たとえば、インターネットブラウザプラグインスレッドがセキュリティー侵害された場合には、コマンドラインインターフェース（ＣＬＩ）の作成、プロセスマイグレーション、インストレーション、またはポータブル実行可能ファイル（ＰＥ）の作成および実行などのアクティビティーが、セキュリティーエクスプロイトによるインターネットブラウザプラグインスレッドのセキュリティー侵害を示すことがある。
【０００８】
セキュリティーエージェントは、そのようなアクティビティーの発生と、オブジェクトの実行との相関を検知し、防止アクションまたはエクスプロイトトラッキングを駆動するためのエクスプロイト検知イベントを生成するように構成されることが可能である。そのような相関付けを実行する目的で必要な情報を受信するために、セキュリティーエージェントは、フィルタまたはロジックを伴って構成されることが可能であり、そのフィルタまたはロジックは、イベント通知を受信し、リモートセキュリティーサービスから受信されたポリシーに基づいてそれらのイベント通知を処理する。
【０００９】
一実施態様においては、フィルタまたはロジックは、イベント通知を受信し、それらが、関心のあるオブジェクトまたはアクティビティーに関連しているということを（たとえば、ポリシーに基づいて）決定し、それらのオブジェクトまたはアクティビティーに関するさらなる情報を提供するさらなるイベント通知（たとえば、それらのオブジェクトまたはアクティビティーのタイプの表示）を生成し、それらのさらなるイベント通知をセキュリティーエージェントの相関器に提供することができる。そのような相関器は、オブジェクトの実行に関連しているイベント通知に関する情報、およびオブジェクトそのものに関する情報を最初に受信して格納し、次いでその後に、関心のあるアクティビティーの発生の通知を受信することができる。そのオブジェクトおよびそのアクティビティーのタイプどうしを関連付けることができる相関インデックスに基づいて、相関器は、エクスプロイト検知イベントを生成することができる。
【００１０】
別の実施態様においては、相関器を利用することよりもむしろ、フィルタまたはロジックは、オブジェクトの実行に関連しているイベント通知に関する情報、およびオブジェクトそのものに関する情報をデータ構造内に格納し、次いで、関心のあるアクティビティーの発生のイベント通知を受信すると、データ構造から情報を取り出し、ポリシーに基づいてエクスプロイト検知イベントを生成することができる。
【００１１】
セキュリティーエージェントは次いで、エクスプロイト検知イベントに基づいて防止アクションを取るか、エクスプロイト検知イベントをリモートセキュリティーサービスに提供するか、またはその両方を行うことができる。それに応答して、リモートセキュリティーサービスは、フィルタまたはロジックによって利用されるポリシーを更新すること、またはセキュリティーエージェントの構成を更新することが可能である。
【００１２】
例示的なイベントモデル
図１ａ〜図１ｂは、モニタされているコンピューティングデバイス上に実装されているセキュリティーエージェント、およびエクスプロイトを検知するためにそれらのセキュリティーエージェントによって取られるアクションの例示的な概観を示している。図１ａにおいて示されているように、セキュリティーエージェント１０２が、ネットワーク１０６を介してリモートセキュリティーサービス１０４によって構成されてリモートセキュリティーサービス１０４と通信することが可能である。セキュリティーエージェント１０２は、イベントコレクタ１０８と、フィルタ／ロジック１１０およびポリシー１１２と、それぞれが相関器インデックス１１６を含む相関器１１４とを含むことができる。フィルタ／ロジック１１０は、１１８において、オブジェクトの実行を示すイベント通知を受信し、１２０において、ポリシー１１２に基づいて、オブジェクトタイプフィールドを含む一般化されたイベント通知を生成する。フィルタ／ロジック１１０は次いで、一般化されたイベント通知を相関器１１４に提供し、相関器１１４は、１２２において、それらのイベント通知およびオブジェクトに関連付けられている情報を格納する。フィルタ／ロジック１１０は次いで、１２４において、アクティビティーの発生を示すイベント通知を受信し、１２６において、ポリシー１１２に基づいて、アクティビティータイプフィールドを含む一般化されたイベント通知を生成する。フィルタ／ロジック１１０は次いで、一般化されたイベント通知を相関器１１４に提供し、相関器１１４は、１２８において、アクティビティーの発生をオブジェクトの実行と相関付け、１３０において、その相関付けに基づいてエクスプロイト検知イベントを生成する。
【００１３】
さまざまな実施態様においては、セキュリティーエージェント１０２を実装しているコンピューティングデバイス（本明細書においては、交換可能に「コンピューティングデバイス」および「モニタされているコンピューティングデバイス」と呼ばれる）と、リモートセキュリティーサービス１０４のデバイスとが、ネットワーク１０６によって接続されることが可能である。ネットワーク１０６は、有線ネットワーク、ワイヤレスネットワーク、および有線ネットワークとワイヤレスネットワークの組合せなど、任意の１または複数のネットワークを含むことができる。さらに、ネットワーク１０６は、複数の異なるタイプのパブリックネットワークまたはプライベートネットワーク（たとえば、ケーブルネットワーク、インターネット、ワイヤレスネットワークなど）のうちの任意の１つまたは組合せを含むことができる。たとえば、ネットワーク１０６は、プライベートネットワークであることが可能である。いくつかの例においては、コンピューティングデバイスは、セキュアなプロトコル（たとえば、ｈｔｔｐ）および／またはその他の任意のプロトコルまたはプロトコルの一式、たとえば、トランスミッションコントロールプロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）を使用してネットワーク１０６を介して通信する。
【００１４】
セキュリティーエージェント１０２を実装しているコンピューティングデバイス、およびリモートセキュリティーサービス１０４のデバイスはそれぞれ、サーバもしくはサーバファーム、複数の分散されているサーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末（ＰＤＡ）、セルラー電話、メディアセンター、組み込みシステム、またはその他の任意の種類の１もしくは複数のデバイスであること、またはそれらを含むことが可能である。一実施態様においては、リモートセキュリティーサービス１０４のデバイスは、ノードからなるクラウドコンピューティングネットワークなど、通信状態で機能している複数のコンピューティングデバイスに相当する。いくつかの実施態様においては、セキュリティーエージェント１０２を実装しているコンピューティングデバイス、およびリモートセキュリティーサービス１０４のデバイスのうちの１または複数は、１または複数のコンピューティングデバイス上に実装されている１または複数の仮想マシンに相当する。セキュリティーエージェント１０２を実装しているコンピューティングデバイスとしての役割を果たすことができる例示的なコンピューティングデバイスが、図３において示されており、その図を参照しながら以降で記述されている。
【００１５】
さまざまな実施態様においては、リモートセキュリティーサービス１０４は、セキュリティーエージェント１０２を実装しているコンピューティングデバイスに対して、およびセキュリティーエージェント１０２のその他のインスタンスを実装している任意の数のその他のコンピューティングデバイスに対してセキュリティーサービスを提供することができる。リモートセキュリティーサービス１０４は、エクスプロイト検知イベント通知を含む、関心を引くイベントについてのセキュリティーエージェント１０２からの通知、ならびにそれらの関心を引くイベントに関連付けられている犯罪科学データを受信することができる。リモートセキュリティーサービス１０４は、関連した通知がセキュリティーエージェント１０２のその他のインスタンスから受信されているかどうかを決定すること、および／または１もしくは複数のルールもしくはヒューリスティックに基づいて、関心を引くイベントを評価することが可能である。リモートセキュリティーサービス１０４は、イベントを生成してそのイベントを（たとえば、診断または修復の目的で）セキュリティーエージェント１０２に提供すること、構成更新を生成すること、更新されたポリシー１１２を生成すること、セキュリティーエージェント１０２を実装しているコンピューティングデバイスを修復すること、悪意のあるコードに関連付けられている敵対者を欺くこと、または、セキュリティーエージェント１０２を実装しているコンピューティングデバイスに関連付けられているエンティティーもしくは人物に対して潜在的な悪意のあるコードを通知することのうちのいずれかまたはすべてをさらに実行することができる。構成更新または更新されたポリシー１１２を生成すると、リモートセキュリティーサービス１０４は、その構成更新または更新されたポリシー１１２をセキュリティーエージェント１０２に提供することができる。
【００１６】
いくつかの実施態様においては、セキュリティーエージェント１０２は、カーネルレベルで実装されるセキュリティーエージェントなど、任意の種類のセキュリティーエージェントであることが可能である。図１ａにおいて示されているように、セキュリティーエージェント１０２は、イベントコレクタ１０８、フィルタ／ロジック１１０、ポリシー１１２、相関器１１４、および相関器インデックス１１６を含むことができる。図１ｂにおいて示されている実施態様など、代替のまたはさらなる実施態様においては、セキュリティーエージェント１０２は、データ構造１３２を含むことができる。セキュリティーエージェント１０２は、リモートセキュリティーサービス１０４によってセキュリティーエージェント１０２のコンポーネントの再構成を受信して活動中に適用してインストールされることおよび構成できることが可能である。そのような再構成は、イベントコレクタ１０８、フィルタ／ロジック１１０、ポリシー１１２、相関器１１４、相関器インデックス１１６、またはデータ構造１３２など、セキュリティーエージェント１０２の任意のコンポーネントに対して更新をもたらすことができる。セキュリティーエージェント１０２は、そのセキュリティーエージェント１０２を実装しているコンピューティングデバイス上でのイベントをモニタすること、そのコンピューティングデバイス上でのイベントのうちのいくつかもしくはすべてに関する状態を保持すること、コンピューティングデバイス上での１もしくは複数のイベントについてリモートセキュリティーサービス１０４に通知すること、またはコンピューティングデバイス上での１もしくは複数のイベントに関連付けられているセキュリティーエクスプロイトに応答してアクションを取ることのうちの少なくとも１つを実行することができる。例示的なセキュリティーエージェント１０２が、２０１２年６月８日に出願された「Ｋｅｒｎｅｌ−Ｌｅｖｅｌ  Ｓｅｃｕｒｉｔｙ  Ａｇｅｎｔ」という名称の特許文献１においてさらに詳細に記述されている。
【００１７】
さまざまな実施形態においては、イベントコレクタ１０８は、関心のあるオブジェクトまたはアクティビティーに関連付けられているイベントを含むすべての種類のイベントを観察する。イベントを受信するために、イベントコレクタ１０８は、関心のあるオブジェクトまたはアクティビティーに関連付けられている特定のイベントが発生している旨または発生していない旨の通知を受信するためのフックまたはフィルタに登録することができる。イベントコレクタ１０８は、メモリ内のロケーション、もしくはログファイルをモニタして、またはそうするためのスレッドをスポーンして、ログファイルまたはメモリロケーションに関連付けられているイベントを観察することもできる。イベントコレクタ１０８は、複数の種類のイベントを観察することができ、またはそれぞれのタイプのイベントが、別々のイベントコレクタ１０８に関連付けられることが可能である。イベントコレクタ１０８によって観察されるイベントは、セキュリティーエージェント１０２の構成によって指定されることが可能である。
【００１８】
イベントコレクタ１０８は、観察されたイベントをフィルタ／ロジック１１０へ回送する。これらの観察されるイベントは、１１８において回送される、オブジェクトの作成または実行（「作成」および「実行」の両方が、本明細書においてはオブジェクトの「実行」と呼ばれている）に関連付けられているイベントと、１２４において回送される、アクティビティーの発生に関連付けられているイベントとを含むことができる。１１８において回送されるイベントは、本明細書においてはイベント通知１１８と呼ばれ、１２４において回送されるイベントは、本明細書においてはイベント通知１２４と呼ばれる。イベント通知１１８および１２４ならびにその他の観察されたイベント／イベント通知は、イベントバスを介して回送されることが可能であり、イベントバスは、フィルタ／ロジック１１０の一部を形成すること、または別個のコンポーネントであることが可能である。イベントバスは、セキュリティーエージェント１０２のコンポーネント間においてイベント／イベント通知を回送することができる。
【００１９】
イベント通知１１８または１２４を受信すると、フィルタ／ロジック１１０は、イベント通知１１８または１２４が、関心のあるオブジェクトまたはアクティビティーに関連付けられているということを決定することができる。関心のあるオブジェクトまたはアクティビティーは、セキュリティーエージェント１０２の構成によって、および／またはポリシー１１２によって指定されたオブジェクトまたはアクティビティーである。関心のあるそのようなオブジェクトは、セキュリティーエクスプロイト（たとえば、リターン指向プログラミング（ＲＯＰ）またはシェルコード）に対して脆弱である可能性があるコンピューティングデバイスのプロセスまたはスレッドを含むことができる。関心のあるアクティビティーは、エクスプロイトが永続性を得ること、その他のプロセスへマイグレートすること、クレデンシャルを盗み取ることなどを可能にするアクティビティーを含むことができる。例示的な関心のあるオブジェクトは、インターネットブラウザプラグインスレッド（たとえば、フラッシュスレッド）またはＥメールアプリケーションスレッドを含むことができる。オブジェクトがインターネットブラウザプラグインスレッドである場合には、例示的なアクティビティーは、コマンドラインインターフェース（ＣＬＩ）の作成、プロセスマイグレーション、インストレーション、またはポータブル実行可能ファイル（ＰＥ）の作成および実行を含むことができる。フィルタ／ロジック１１０は、たとえば、イベント通知１１８において記述されているイベントの一部としてアクセスされるレジストリエントリーが、セキュリティーエージェント１０２の構成によって、および／またはポリシー１１２によって指定されたオブジェクトに関連付けられていることに起因して、イベント通知１１８が、関心のあるオブジェクトに関連付けられているということを決定することができる。
【００２０】
イベント通知１１８／１２４において記述されているイベントが、関心のあるオブジェクトまたはアクティビティーに関連付けられているということを決定すると、フィルタ／ロジック１１０は、イベントおよびオブジェクト／アクティビティーに関するさらなる情報を収集することができる。たとえば、関心のあるオブジェクトに関して、フィルタ／ロジック１１０は、そのオブジェクトに関連付けられている識別子、そのオブジェクトを所有するプロセスの識別子、特定のクラスのオブジェクト（たとえば、インターネットブラウザプラグインスレッド）を取り扱う相関器１１４の識別子、特定のタイプのオブジェクト（たとえば、フラッシュスレッド）の識別子、および／または、そのオブジェクトが子オブジェクトであるかどうかの表示（および、そうである場合には、親オブジェクトのアイデンティティーの表示）を収集することができる。関心のあるアクティビティーに関して、フィルタ／ロジック１１０は、そのアクティビティーに関連付けられている識別子、そのアクティビティーを実行したプロセスの識別子、および／または特定のタイプのアクティビティーの識別子を収集することができる。関心のあるオブジェクトに関するさらなる情報を収集すると、フィルタ／ロジック１１０は、イベント通知１１８からの情報と、さらなる情報のうちのいくつかまたはすべてとの両方を含む一般化されたイベント通知を生成することができ、１２０において、その一般化されたイベント通知を、オブジェクトのクラスを取り扱う相関器１１４に提供することができる。そのような一般化されたイベント通知は、本明細書においてはさらにイベント通知１２０と呼ばれることが可能である。いくつかの実施態様においては、そのオブジェクトが子オブジェクトである場合には、イベント通知１２０は、その親オブジェクトを識別するタグを含むことができる。アクティビティーに関するさらなる情報を収集すると、フィルタ／ロジック１１０は、イベント通知１２４からの情報と、さらなる情報のうちのいくつかまたはすべてとの両方を含む一般化されたイベント通知を生成することができ、１２６において、イベントバスを通じて１または複数の相関器１１４にイベントを提供することができる。そのような一般化されたイベント通知は、本明細書においてはさらにイベント通知１２６と呼ばれることが可能である。さらなる実施態様においては、イベント通知１２０および１２６はそれぞれ、イベント通知１２０および１２６に関連付けられているそれぞれのイベントをイベントコレクタ１０８が観察した時間などの時間を示すタイムスタンプを含むことができる。
【００２１】
さまざまな実施態様においては、イベント通知１２０を受信すると、相関器１１４が、１２２において、そのイベント通知１２０に含まれている情報を格納する。その情報は、相関器１１４のテーブル内に、または任意の種類のデータ構造内に格納されることが可能である。
【００２２】
その情報を格納するのと同時に、または格納するのに続いて、相関器１１４は、イベント通知１２６を受信することができる。イベント通知１２６を受信すると、相関器１１４は、アクティビティータイプフィールドなど、イベント通知１２６からの情報を利用して、相関器１１４の相関器インデックス１１６にクエリーを行うことができる。マッチが見つかった場合、すなわち、相関器インデックス１１６が、アクティビティータイプにマッチするエントリーを含む場合には、相関器１１４は、そのエントリーによって指定されるオブジェクトタイプを決定する。相関器１１４が、そのオブジェクトタイプを指定するイベント通知１２０を以前に受信していて、そのイベント通知１２０に関する情報を格納している場合には、相関器１１４は、その情報を取り出して、１２８において、アクティビティーの発生をオブジェクトの実行と相関付けることになる。アクティビティータイプが相関器インデックス１１６内に含まれていない場合、または相関器１１４が、対応するオブジェクトタイプに関連付けられている情報を格納していない場合には、相関器１１４は、さらなるアクションを取らない。
【００２３】
いくつかの実施態様においては、それぞれのイベント通知１２０／１２６は、タイムスタンプを含むことができ、相関器インデックス１１６は、アクティビティータイプおよびオブジェクトタイプのそれぞれのペアごとに最小経過時間を指定することができる。そのような実施態様においては、相関付けは、１２８において、タイムスタンプ間における差が最小経過時間に合致するかまたは最小経過時間を超えるかどうかにさらに基づくことが可能であり、その差が最小経過時間に合致するかまたは最小経過時間を超える場合にのみ、相関が存在すると決定される。
【００２４】
さらなる実施態様においては、イベント通知１２６は、現在のコンテキストの表示を含むことができる。たとえば、イベント通知１２６は、インターネットブラウザプラグインスレッドがアクティブであるかどうか、インターネットブラウザプラグインスレッドに関連付けられているブラウザがアクティブであるかどうか、インターネットブラウザプラグインスレッドに関連付けられているブラウザが別のページをブラウズしたかどうかなどを指定することができる。そのような実施態様においては、相関付けは、１２８において、イベント通知１２６によって示された現在のコンテキストが、相関器１１４によって格納されている情報にマッチするかどうかにさらに基づくことが可能であり、マッチがある場合にのみ、相関が存在すると決定される。
【００２５】
いくつかの実施態様においては、相関器１１４は、イベント通知１２０およびイベント通知１２６の両方からの情報を格納することができ、相関器インデックス１１６は、オブジェクトタイプを、複数の異なるアクティビティータイプと、または特定のアクティビティータイプに関連付けられている受信されたイベント通知１２６のカウントと相関付けるエントリーを含むことができる。イベント通知１２６を受信すると、次いで相関器１１４は、相関器インデックス１１６にクエリーを行って、過去のイベント通知１２０および過去のイベント通知１２６の両方に関連付けられている格納されている情報を取り出すことができる。たとえば、相関器インデックス１１６は、「フラッシュスレッド」というオブジェクトタイプを、「ＣＬＩの作成」というアクティビティータイプ、および「ＣＬＩの作成」というアクティビティータイプに関する「２」つのインスタンスのカウントに関連付けることができる。「ＣＬＩの作成」というアクティビティータイプを指定するイベント通知１２６を受信すると、相関器１１４は、相関器インデックス１１６にクエリーを行い、マッチするエントリーを見つけ出し、それが、「フラッシュスレッド」を指定したイベント通知１２０に関する情報、および「ＣＬＩの作成」を指定したイベント通知１２６に関する情報を格納するかどうかを決定することができる。そうである場合には、相関器１１４は、相関器インデックスにおける条件が満たされているということを決定する。そうでない場合には、相関器１１４は、ＣＬＩの作成を指定するイベント通知１２６に関する情報を格納して、さらなるイベントを待つことができる。
【００２６】
さらなる実施態様においては、相関器インデックス１１６は、単一のアクティビティータイプと、親オブジェクトおよび子オブジェクトを伴う複数の異なるオブジェクトタイプ、または単一のオブジェクトタイプに関連付けられている複数のイベントのカウントとを指定するエントリーを含むことができる。そのような実施態様においては、相関器１１４は、親オブジェクトおよび子オブジェクトを伴う複数の異なるオブジェクトタイプ、または相関器インデックス１１６によって指定された単一のオブジェクトタイプに関連付けられている複数のイベントのカウントに関して情報が格納されている場合にイベント通知１２６が受信されたときに、相関があるということを示すことができる。
【００２７】
いくつかの実施態様においては、「相関器１１４」は、複数の連鎖した相関器１１４を含むことができる。そのような複数の連鎖した相関器１１４は、たとえば、親オブジェクトおよび子オブジェクトに対応することが可能であり、１つの相関器１１４の結果は、別の相関器１１４に基づくことが可能である。たとえば、１つの相関器１１４は、イベント通知１２０に関連付けられている格納されている情報に、および別の相関器１１４の肯定的な結果に基づいて、相関が存在すると決定することができる。
【００２８】
さまざまな実施態様においては、相関があるということを相関器１１４が決定した場合（たとえば、アクティビティーの発生がオブジェクトの実行と相関付けられている場合）には、相関器１１４は、エクスプロイト検知イベントを生成する。いくつかの実施態様においては、エクスプロイト検知イベントは、検知インジケータを指定することができる。たとえば、相関器インデックス１１６内のエントリーが、オブジェクトタイプ、アクティビティータイプなどの特定の組合せに関連付けられている検知インジケータを指定することができる。（検知インジケータを伴って、または伴わずに）エクスプロイト検知イベントを生成すると、相関器１１４は、エクスプロイト検知イベントをイベントバスに提供することができ、イベントバスは、そのイベントをセキュリティーエージェント１０２の構成に従って回送することができる。
【００２９】
上述されている実施態様に加えて、図１ｂは、相関器１１４の代わりにフィルタ／ロジック１１０およびデータ構造１３２を利用する代替実施態様を示している。図１ｂにおいて示されているように、フィルタ／ロジック１１０は、１３４において、オブジェクトの実行に関連付けられているイベント通知（以降では、イベント通知１３４と呼ばれる）を受信し、１３６において、イベント通知１３４およびオブジェクトに関連付けられている情報をデータ構造１３２内に格納することができる。フィルタ／ロジック１１０は次いで、１３８において、アクティビティーの発生に関連付けられているイベント通知（以降では、イベント通知１３８と呼ばれる）を受信し、１４０において、データ構造１３２内に格納されている情報を取り出し、１４２において、データ構造１３２内に格納されている情報に少なくとも部分的に基づいてアクティビティーの発生をオブジェクトの実行と相関付けることができる。その相関付けに基づいて、フィルタ／ロジック１１０は、次いで１４４において、エクスプロイト検知イベントを生成することができる。
【００３０】
さまざまな実施態様においては、フィルタ／ロジック１１０は、図１ａにおけるイベント通知１１８に関して上述されているのと同じ様式でイベント通知１３４を処理して、次いで、関心のあるオブジェクトの実行を記述するかどうかを決定することができる。フィルタ／ロジック１１０は、図１ａにおけるイベント通知１２４に関して上述されているのと同じ様式でイベント通知１３８を処理して、次いで、関心のあるアクティビティーの実行を記述するかどうかを決定することもできる。
【００３１】
関心のあるオブジェクトの実行をイベント通知１３４が記述するということを決定したことに応答して、フィルタ／ロジック１１０は、関心のあるオブジェクトに関するさらなる情報（たとえば、そのオブジェクトに関連付けられている識別子、そのオブジェクトを所有するプロセスの識別子、特定のタイプのオブジェクト（たとえば、フラッシュスレッド）の識別子、および／または、そのオブジェクトが子オブジェクトであるかどうかの表示（および、そうである場合には、親オブジェクトのアイデンティティーの表示）を収集することができる。フィルタ／ロジック１１０は、次いで１３６において、イベント通知１３４からの情報、およびさらなる情報の両方をデータ構造１３２内に格納することができる。
【００３２】
データ構造１３２は、関心のあるオブジェクトに関連付けられているそれぞれのイベント通知１３４に関するエントリー、または関心のあるそれぞれのオブジェクトに関するエントリーを有するテーブルなど、任意の種類のデータ構造であることが可能である。いくつかの実施態様においては、データ構造１３２は、モニタされているコンピューティングデバイスのシステムコンポーネントに関する情報、モニタされているコンピューティングデバイス上で発生しているイベントに関する情報、ならびにシステムコンポーネントおよびイベントの間における関係に関する情報を格納するための焦点としての役割を果たすセキュリティーエージェント１０２のイベントモデルの一部であることが可能である。さらなる実施態様においては、１３６における格納することは、エントリーをデータ構造１３２に加えること、またはエントリーを更新することを含むことができる。たとえば、データ構造が、関心のあるそれぞれのオブジェクトに関するエントリーを含む場合には、関心のある同じオブジェクトに関して複数のイベント通知１３４が受信されることが可能である。そのような例においては、フィルタ／ロジック１１０は、関心のあるそのオブジェクトに関するエントリーを、それに関連しているイベント通知１３４のうちの最も直近のものからの情報で更新することができる。
【００３３】
１３６において格納することを実行するのと同時に、または実行した後に、フィルタ／ロジック１１０は、イベント通知１３８を受信することができる。セキュリティーエージェント１０２の構成、またはポリシー１１２に基づいて、フィルタ／ロジック１１０は、イベント通知１３８に関連付けられているアクティビティータイプを決定し、そのアクティビティータイプに関連付けられている関心のあるいずれかの１または複数のオブジェクトを決定し、１４０において、関心のあるその／それらのオブジェクトに関連付けられているデータ構造１３２内に格納されている情報を取り出すことができる。フィルタ／ロジック１１０は次いで、イベント通知１３８と、データ構造１３２から取り出された情報とに少なくとも部分的に基づいてアクティビティーの発生をオブジェクトの実行と相関付けることができる。
【００３４】
さまざまな実施態様においては、相関があるということをフィルタ／ロジック１１０が決定した場合には、フィルタ／ロジック１１０は、エクスプロイト検知イベントを生成する。いくつかの実施態様においては、エクスプロイト検知イベントは、検知インジケータを指定することができる。たとえば、セキュリティーエージェント１０２の構成、またはポリシー１１２は、オブジェクトタイプ、アクティビティータイプなどの特定の組合せに関連付けられている検知インジケータを指定することができる。（検知インジケータを伴って、または伴わずに）エクスプロイト検知イベントを生成すると、フィルタ／ロジック１１０は、エクスプロイト検知イベントをイベントバスに提供することができ、イベントバスは、そのイベントをセキュリティーエージェント１０２の構成に従って回送することができる。
【００３５】
図１ａまたは図１ｂのいずれかにおいて例示および記述されているエクスプロイト検知イベントの生成に続いて、イベントバスは、エクスプロイト検知イベントを、防止アクションを取るためにセキュリティーエージェント１０２のアクター（図２を参照しながら、さらに記述されている）へ、またはリモートセキュリティーサービス１０４へ送信するためにセキュリティーエージェント１０２の通信モジュール（やはり図２を参照しながら、さらに記述されている）へ回送することができる。
【００３６】
防止プロセスの例は、エクスプロイト検知イベントに関連付けられているオブジェクトの実行を停止もしくは防止すること、そのオブジェクトを含むプロセスの実行を停止もしくは防止すること、またはモニタされているコンピューティングデバイスをリブートさせることを含むことができる。取られるアクションは、いくつかの実施態様においては、検知インジケータの機能であることが可能である。
【００３７】
上述されているように、リモートセキュリティーサービス１０４は、エクスプロイト検知イベントを受信した場合には、セキュリティーエージェント１０２、ポリシー１１２、またはそれらの両方の構成を更新することができ、そのような更新をセキュリティーエージェント１０２へ通信して、さらなるエクスプロイト検知を駆動することができる。
【００３８】
例示的なセキュリティーエージェント
図２は、セキュリティーエクスプロイトに潜在的に関連しているイベント通知を検知および生成するためのフィルタ／ロジックと、エクスプロイトアクティビティーを示す相関を検知してエクスプロイト検知イベントを生成するための相関器と、イベント通知に関する情報を格納するためのデータ構造とを含む例示的なセキュリティーエージェントを示している。示されているように、コンピューティングデバイス２０２は、コンピューティングデバイス２０２上にインストールされているカーネルレベルセキュリティーエージェント２０６とともに機能するセキュリティーサービスデバイス２０４からセキュリティーサービスを受けることができる。コンピューティングデバイス２０２は、プロセス２１２およびスレッド２１４など、複数のオブジェクト２０８を含むことができる。カーネルレベルセキュリティーエージェント２０６は、イベントコレクタ２１６、イベントバス２１８、フィルタ／ロジックおよびポリシー２２０、相関器２２２、データ構造２２４、その他のイベントジェネレータ／コンシューマ２２６、ならびに通信モジュール２２８を含む。
【００３９】
さまざまな実施形態においては、コンピューティングデバイス２０２およびセキュリティーサービスデバイス２０４およびネットワークは、上述されているのと同じ種類のデバイス、サービス、およびネットワークであることが可能である。同様に、カーネルレベルセキュリティーエージェント２０６は、セキュリティーエージェント１０２の例であることが可能であり、イベントコレクタ２１６は、イベントコレクタ１０８の例であることが可能であり、イベントバス２１８は、図１ａ〜図１ｂを参照しながら上述されているイベントバスの例であることが可能であり、フィルタ／ロジックおよびポリシー２２０は、フィルタ／ロジック１１０およびポリシー１１２の例であることが可能であり、相関器２２２は、相関器１１４の例であることが可能であり、データ構造２２４は、データ構造１３２の例であることが可能である。
【００４０】
いくつかの実施態様においては、複数のオブジェクト２０８は、プロセス２１２およびスレッド２１４など、コンピューティングデバイス２０２の任意の種類のコンポーネントを含むことができる。複数のオブジェクト２０８は、ツリー、モジュール、またはその他の任意の種類のコンポーネントを含むこともできる。たとえば、スレッド２１４は、セキュリティーエクスプロイトによってターゲットにされる脆弱なスレッドであることがある。そのようなスレッドの例、すなわち、インターネットブラウザプラグイン／フラッシュスレッド、およびそのアクティビティーは、図１ａ〜図１ｂに関して上述されている。
【００４１】
図２において示されているように、イベントバス２１８ならびにフィルタ／ロジックおよびポリシー２２０は、カーネルレベルセキュリティーエージェント２０６のアーキテクチャー内のその他のコンポーネントどうしを接続する回送コンポーネント、フィルタリングコンポーネント、および分析コンポーネントとしての役割を果たすことができる。イベントバス２１８ならびにフィルタ／ロジックおよびポリシー２２０は、その他のコンポーネントからイベントを受信し、それらの受信されたイベントを回送するか、それらの受信されたイベントのサブセットをフィルタリングして回送するか、または受信されたイベントを分析し、さらなる受信されたイベントを生成して回送することができる。あらゆる受信されたイベントに関してイベントバス２１８ならびにフィルタ／ロジックおよびポリシー２２０によって取られるアクションは、カーネルレベルセキュリティーエージェント２０６の構成およびポリシーによって駆動されることが可能である。
【００４２】
イベントジェネレータおよびコンシューマ２２６は、相関器２２２およびアクターなど、アクションを取るモジュールを含むことができる。アクターは、イベントバス２１８を介してイベントを受信し、それらのイベントに基づいて何らかの１または複数のアクションを取ることができる。たとえば、アクターは、エクスプロイト検知イベントを受信し、そのエクスプロイト検知イベントに基づいて防止アクションを取ることができる。追加として、または代替として、アクターは、イベントに関連付けられている情報をデータ構造２２４内に格納すること、またはイベントに関連付けられている情報を、セキュリティーサービスデバイス２０４へ送信するために通信モジュール２２８へ通信することが可能である。さらなる実施態様においては、エクスプロイト検知イベントを受信すると、アクターは、エクスプロイト検知イベントに基づいてデータ構造２２４からさらなる情報を取り出すことができ、そのさらなる情報は、防止アクションなど、何らかのアクションを取ることができる。
【００４３】
さまざまな実施形態においては、通信モジュール２２８は、１または複数のネットワークを介してセキュリティーサービスデバイス２０４と通信するためにカーネルレベルセキュリティーエージェント２０６によって利用されるネットワークプロトコルスタック、ネットワークインターフェースドライバ、およびその他の任意のネットワークインターフェースコンポーネントに相当することが可能である。通信モジュール２２８は、コンピューティングデバイス２０２のカーネルモードコンポーネントであることが可能である。さらに、通信モジュール２２８は、イベント、その他の通知、およびデータ関連イベントをカーネルレベルセキュリティーエージェント２０６からセキュリティーサービスデバイス２０４へ送信することができる。通信モジュール２２８は、セキュリティーサービスデバイス２０４から受信された構成更新をカーネルレベルセキュリティーエージェント２０６の構成マネージャーへ、ならびにセキュリティーサービスデバイス２０４からの修復命令および／またはイベントを、フィルタリングおよびディスパッチのためにイベントバス２１８へ送信することもできる。
【００４４】
例示的なシステム
図３は、エクスプロイトによってターゲットにされるオブジェクトと、セキュリティーエージェントとを伴って構成されているコンピューティングデバイスのコンポーネントレベルの図を示している。示されているように、コンピューティングデバイス３００は、エクスプロイト３０６によってターゲットにされるオブジェクト３０４を格納しているシステムメモリ３０２と、フィルタ／ロジック３１０、ポリシー３１２、相関器３１４、およびデータ構造３１６を含むセキュリティーエージェント３０８とを含む。また、コンピューティングデバイス３００は、プロセッサ３１８と、取り外し可能なストレージ３２０および取り外し不能なストレージ３２２と、入力デバイス３２４と、出力デバイス３２６と、その他のコンピューティングデバイス３３０と通信するための通信接続３２８とを含む。
【００４５】
さまざまな実施形態においては、システムメモリ３０２は、揮発性（たとえば、ＲＡＭ）、不揮発性（たとえば、ＲＯＭ、フラッシュメモリなど）、またはそれら２つの何らかの組合せである。オブジェクト３０４は、エクスプロイト３０６によってセキュリティー侵害されるプロセスまたはスレッドなど、任意の種類のオブジェクトであることが可能である。そのようなオブジェクト３０４およびエクスプロイト３０６の例は、本明細書においてさらに記述されている同様に名付けられたコンポーネントの例である。セキュリティーエージェント３０８およびそのフィルタ／ロジック３１０、ポリシー３１２、相関器３１４、およびデータ構造３１６も、本明細書においてさらに記述されている同様に名付けられたコンポーネントの例である。
【００４６】
いくつかの実施形態においては、プロセッサ３１８は、中央処理装置（ＣＰＵ）、グラフィックスプロセッシングユニット（ＧＰＵ）、もしくはＣＰＵおよびＧＰＵの両方、または当技術分野において知られているその他の処理ユニットもしくはコンポーネントである。
【００４７】
コンピューティングデバイス３００はまた、（取り外し可能な、および／または取り外し不能な）さらなるデータストレージデバイス、たとえば、磁気ディスク、光ディスク、またはテープなどを含む。そのようなさらなるストレージは、取り外し可能なストレージ３２０および取り外し不能なストレージ３２２によって図３において示されている。非一時的コンピュータ可読メディアは、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報の格納のための任意の方法またはテクノロジーにおいて実装される揮発性のメディアおよび不揮発性のメディア、取り外し可能なメディアおよび取り外し不能なメディアを含むことができる。システムメモリ３０２、取り外し可能なストレージ３２０、および取り外し不能なストレージ３２２はすべて、非一時的コンピュータ可読ストレージメディアの例である。非一時的コンピュータ可読ストレージメディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくはその他のメモリテクノロジー、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくはその他の磁気ストレージデバイス、または、所望の情報を格納するために使用されることが可能な、かつコンピューティングデバイス３００によってアクセスされることが可能なその他の任意の非一時的メディアを含むが、それらには限定されない。そのような非一時的コンピュータ可読メディアはいずれも、コンピューティングデバイス３００の一部であることが可能である。
【００４８】
コンピューティングデバイス３００はまた、入力デバイス３２４、たとえば、キーボード、マウス、タッチセンシティブディスプレイ、音声入力デバイスなど、および出力デバイス３２６、たとえば、ディスプレイ、スピーカー、プリンタなどを有する。これらのデバイスは、当技術分野においてよく知られており、ここで詳細に論じられる必要はない。
【００４９】
コンピューティングデバイス３００はまた、通信接続３２８を含み、通信接続３２８は、コンピューティングデバイス３００が、セキュリティーサービスデバイス２０４などのその他のコンピューティングデバイス３３０と通信することを可能にする。
【００５０】
例示的なプロセス
図４は、例示的なプロセスを示している。このプロセスは、ロジカルフローグラフとして示されており、そのそれぞれのオペレーションは、ハードウェア、ソフトウェア、またはそれらの組合せで実施されることが可能であるオペレーションのシーケンスに相当する。ソフトウェアのコンテキストにおいては、オペレーションは、１または複数のプロセッサによって実行されたときに、列挙されているオペレーションを実行する１または複数のコンピュータ可読ストレージメディア上に格納されているコンピュータ実行可能命令に相当する。一般に、コンピュータ実行可能命令は、特定の機能を実行する、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。オペレーションが記述されている順序は、限定と解釈されることを意図されているものではなく、任意の数の記述されているオペレーションが任意の順序でおよび／または並列に組み合わされて、プロセスを実施することが可能である。
【００５１】
図４は、オブジェクトの実行のイベント通知を受信するステップと、イベント通知およびオブジェクトに関連付けられている情報を格納するステップと、アクティビティーの発生のイベント通知を受信するステップと、アクティビティーの発生をオブジェクトの実行と相関付けるステップと、その相関付けに基づいてエクスプロイト検知イベントを生成するステップとを行うための例示的なプロセスを示している。
【００５２】
このプロセスは、４０２において、モニタされているコンピューティングデバイス上に実装されているセキュリティーエージェントによって、オブジェクトの実行を示すイベント通知を受信するステップを含む。さまざまな実施態様においては、オブジェクトは、プロセスまたはスレッド（たとえば、インターネットブラウザプラグインスレッドまたはＥメールアプリケーションスレッド）であることが可能である。さらに、受信するステップは、セキュリティーエージェントの構成可能なポリシーに基づくことが可能である。４０４において、受信するステップは、複数の関連したオブジェクトの実行を示すイベント通知を受信するステップを含むことができる。
【００５３】
４０６において、セキュリティーエージェントは、イベント通知およびオブジェクトに関連付けられている情報を、モニタされているコンピューティングデバイス上のセキュリティーエージェントのデータ構造内に格納する。格納される情報は、少なくともオブジェクトの識別子およびオブジェクトのオブジェクトタイプを含むことができる。いくつかの実施態様においては、データ構造は、セキュリティーエージェントの相関器の一部であることが可能である。また、格納するステップは、セキュリティーエージェントの構成可能なポリシーに基づくことが可能である。４０８において、格納するステップは、イベント通知および複数の関連したオブジェクトに関連付けられている情報を格納するステップを含むことができる。複数の関連したオブジェクトは、少なくとも親オブジェクトおよび子オブジェクトを含むことができ、格納するステップは、４１０において、子オブジェクトに関連付けられている情報を親オブジェクトのオブジェクト識別子またはオブジェクトタイプにタグ付けするステップを含むことができる。
【００５４】
４１２において、セキュリティーエージェントは、モニタされているコンピューティングデバイス上でのアクティビティーの発生を示すイベント通知を受信する。そのアクティビティーは、コマンドラインインターフェース（ＣＬＩ）の作成、プロセスマイグレーション、インストレーション、またはポータブル実行可能ファイル（ＰＥ）の作成および実行のうちの１つであることがある。さらに、受信するステップは、セキュリティーエージェントの構成可能なポリシーに基づくことが可能である。
【００５５】
４１４において、格納されている情報に少なくとも部分的に基づいて、セキュリティーエージェントは、アクティビティーの発生をオブジェクトの実行と相関付ける。アクティビティーの発生と、オブジェクトの実行との相関は、モニタされているコンピューティングデバイス上でのセキュリティーエクスプロイトのオペレーションを示すことが可能である。いくつかの実施態様においては、相関付けるステップは、セキュリティーエージェントの構成可能なポリシーに基づくことが可能である。４１６において、相関付けるステップは、オブジェクトの実行を示すイベント通知と、アクティビティーの発生を示すイベント通知との間における経過時間に基づいてアクティビティーの発生をオブジェクトの実行と相関付けるステップを含むことができる。４１８において、相関付けるステップは、オブジェクトに関連付けられているアプリケーションのコンテキストに基づいてアクティビティーの発生をオブジェクトの実行と相関付けるステップを含むことができる。４２０において、相関付けるステップは、アクティビティーの発生をオブジェクトの実行と、およびさらなるアクティビティーの発生と相関付けるステップを含むことができる。４２２において、相関付けるステップは、アクティビティーの発生を複数の関連したオブジェクトの実行と相関付けるステップを含むことができる。
【００５６】
４２４において、セキュリティーエージェントは、相関付けに基づいてエクスプロイト検知イベントを生成する。いくつかの実施態様においては、生成することは、セキュリティーエージェントの構成可能なポリシーに基づくことが可能である。
【００５７】
４２６において、セキュリティーエージェントは、エクスプロイト検知イベントに少なくとも部分的に基づいて防止アクションを取ることができる。
【００５８】
４２８において、セキュリティーエージェントは、エクスプロイト検知イベントをリモートセキュリティーサービスに提供することができる。それに応答して、４３０において、セキュリティーエージェントは、セキュリティーエージェントの更新された構成を受信することができる。
【００５９】
結び
本主題は、構造的な特徴および／または方法論的な行為に特有の言葉で記述されてきたが、添付の特許請求の範囲において定義されている本主題は、記述されている特定の特徴または行為に必ずしも限定されるものではないということを理解されたい。むしろ、特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示されている。
【図１ａ】
2017191604.tif 000003
【図１ｂ】
2017191604.tif 000004
【図２】
2017191604.tif 000005
【図３】
2017191604.tif 000006
【図４】
2017191604.tif 000007