(57)【要約】  セキュリティ脆弱性を検出するための技術が開示される。１つの特定の実施形態では、本技術は、評判をアプリケーションに割り当てるステップと、評判をクライアントに配信するステップと、アプリケーションを実行するクライアントに関するモニターされたシステム挙動をクライアントから受信するステップと、モニターされたシステム挙動に基づいて、アプリケーションの評判を変更するか否かを決定するステップと、クライアントに変更された評判を配信するするステップと、クライアントからさらにモニターされたシステム挙動を受信するステップと、クライアントから受信したモニターされたシステム挙動に基づいて、アプリケーションに対するルールを生成するか否かを決定するステップと、を含むセキュリティ脆弱性を検出する方法として実現することができる。
2015531951.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティ脆弱性を検出する方法であって、
評判をアプリケーションに割り当てるステップと、
前記評判をクライアントに配信するステップと、
前記アプリケーションを実行する前記クライアントに関するモニターされたシステム挙動を前記クライアントから受信するステップと、
前記モニターされたシステム挙動に基づいて、前記アプリケーションの前記評判を変更するか否かを決定するステップと、
前記クライアントに前記変更された評判を配信するステップと、
前記クライアントからさらにモニターされたシステム挙動を受信するステップと、
前記クライアントから受信した前記モニターされたシステム挙動に基づいて、前記アプリケーションに対するルールを生成するか否かを決定するステップと、を含む方法。
【請求項２】
前記評判は、前記アプリケーションが信頼できるもの、中立なもの、疑わしいもの、および悪意のあるもの、のうちの１つであるか否かを示す、請求項１に記載の方法。
【請求項３】
前記アプリケーションは、既知の実体からの新規なアプリケーションである、請求項１に記載の方法。
【請求項４】
前記アプリケーションの前記評判は、前記既知の実体に基づいて割り当てられる、請求項３に記載の方法。
【請求項５】
前記アプリケーションは、前記受信した評判に基づいて前記クライアントにおいて実行される、請求項１に記載の方法。
【請求項６】
前記アプリケーションが疑わしい挙動を示していることを前記モニターされたシステム挙動が示す場合には、前記アプリケーションの前記評判は変更される、請求項１に記載の方法。
【請求項７】
前記アプリケーションを実行する複数のクライアントから受信したモニターされたシステム挙動に基づいて、前記アプリケーションの前記評判は変更される、請求項１に記載の方法。
【請求項８】
前記モニターされたシステム挙動は、前記クライアントシステムおよび前記クライアントにおいて実行されている前記アプリケーションの前記挙動に関する詳細情報を含む、請求項１に記載の方法。
【請求項９】
前記アプリケーションに対する前記ルールは、前記アプリケーションが、隔離するもの、特定のクライアントリソースにアクセスすることを防止するもの、仮想クライアントで実行するもの、クライアントリソースへの完全なアクセスを許可するもの、のうちの１つであることを示す、請求項１に記載の方法。
【請求項１０】
前記アプリケーション対する前記生成されたルールを前記クライアントに送信するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
請求項１に記載の前記方法を実行するためのコンピュータプロセスを実行するように前記少なくとも１つのプロセッサに命令するために、少なくとも１つのプロセッサによって読み取り可能であるように構成される命令のコンピュータプログラムを記憶する、少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項１２】
セキュリティ脆弱性を検出する方法であって、
評判をアプリケーションに割り当てるステップと、
前記割り当てられた評判に基づいて前記アプリケーションを実行するステップと、
前記アプリケーションを実行する間に、システム挙動をモニターするステップと、
前記モニターされたシステム挙動をバックエンドシステムに報告するステップと、
前記アプリケーションについての変更された評判が前記バックエンドシステムから受信されたか否かを決定するステップと、
前記変更された評判に基づいて前記システム挙動をモニターするステップと、
前記モニターされたシステム挙動を前記バックエンドシステムに送信するステップと、
前記アプリケーションに対する新規なルールが前記バックエンドシステムから受信されたか否かを決定するステップと、を含む方法。
【請求項１３】
前記評判は、前記アプリケーションのインストール中に、前記アプリケーションの挙動に基づいて前記アプリケーションに割り当てられる、請求項１２に記載の方法。
【請求項１４】
前記システム挙動をモニターするステップは、無許可のシステム・リソース・アクセス、システム・オペレーティング・システムに対する無許可の書き込み、セキュリティアプリケーションの終了、および無許可のネットワーク活動についてモニターするステップの少なくとも１つを含む、請求項１２に記載の方法。
【請求項１５】
前記システム挙動は、ヒューリスティックに基づいて、既知の疑わしいおよび悪意のある挙動についてモニターされる、請求項１２に記載の方法。
【請求項１６】
前記割り当てられた評判が前記アプリケーションは信頼できるものであることを示す場合には、前記システム挙動は第１の頻度でモニターされ、前記変更された評判が前記アプリケーションは信頼できるものでないことを示す場合には、前記システム挙動は前記第１の頻度より高い第２の頻度でモニターされる、請求項１２に記載の方法。
【請求項１７】
疑わしいシステム挙動が検出された場合には、前記アプリケーションの実行は、信頼されている前記割り当てられた評判に従って継続される、請求項１２に記載の方法。
【請求項１８】
前記受信したルールに基づいて前記アプリケーションを実行するステップをさらに含む、請求項１２に記載の方法。
【請求項１９】
請求項１２に記載の前記方法を実行するためのコンピュータプロセスを実行するように前記少なくとも１つのプロセッサに命令するために、少なくとも１つのプロセッサによって読み取り可能であるように構成される命令のコンピュータプログラムを記憶する、少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体。
【請求項２０】
セキュリティ脆弱性を検出するためのシステムであって、
ネットワークに通信可能に連結される１つまたは複数のプロセッサを含み、前記１つまたは複数のプロセッサは、
評判をアプリケーションに割り当て、
前記評判をクライアントに配信し、
前記アプリケーションを実行する前記クライアントに関するモニターされたシステム挙動を前記クライアントから受信し、
前記モニターされたシステム挙動に基づいて、前記アプリケーションの前記評判を変更するか否かを決定し、
前記クライアントに前記変更された評判を配信し、
前記クライアントからさらにモニターされたシステム挙動を受信し、
前記クライアントから受信した前記モニターされたシステム挙動に基づいて、前記アプリケーションに対するルールを生成するか否かを決定するように構成されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にはコンピュータウイルスおよびマルウェアに関し、特にセキュリティ脆弱性を検出するための技術に関する。
【背景技術】
【０００２】
コンピュータウイルスおよびマルウェアは、これまで知られていなかったセキュリティ脆弱性をしばしば利用し、これはゼロデイ利用としても知られている。これらのコンピュータウイルスおよびマルウェアによって、機密または私的なデータに対するアクセス、システム性能の低下、およびシステムリソースの流用を含む多くの問題が生じるおそれがある。したがって、このようなセキュリティ脆弱性の検出は、非常に重要になっている。しかし、セキュリティ脆弱性を検出する伝統的方法は、コンピュータウイルスまたはマルウェアによって利用されるセキュリティ脆弱性を識別するためにシステム挙動の過去にさかのぼる解析を必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記を考慮すると、従来のセキュリティ脆弱性検出と関係する重大な問題および欠点があり得ることが理解できる。
【課題を解決するための手段】
【０００４】
セキュリティ脆弱性を検出するための技術が開示される。１つの特定の実施形態では、本技術は、評判をアプリケーションに割り当てるステップと、評判をクライアントに配信するステップと、アプリケーションを実行するクライアントに関するモニターされたシステム挙動をクライアントから受信するステップと、モニターされたシステム挙動に基づいて、アプリケーションの評判を変更するか否かを決定するステップと、クライアントに変更された評判を配信するするステップと、クライアントからさらにモニターされたシステム挙動を受信するステップと、クライアントから受信したモニターされたシステム挙動に基づいて、アプリケーションに対するルールを生成するか否かを決定するステップと、を含むセキュリティ脆弱性を検出する方法として実現することができる。
【０００５】
この特定の実施形態の他の態様によれば、評判は、アプリケーションが信頼できるもの、中立なもの、疑わしいもの、および悪意のあるもの、のうちの１つであるか否かを示す。
【０００６】
この特定の実施形態の他の態様によれば、アプリケーションは、既知の実体からの新規なアプリケーションである。
【０００７】
この特定の実施形態の他の態様によれば、アプリケーションの評判は、既知の実体に基づいて割り当てられる。
【０００８】
この特定の実施形態の他の態様によれば、アプリケーションは、受信した評判に基づいてクライアントにおいて実行される。
【０００９】
この特定の実施形態の他の態様によれば、アプリケーションが疑わしい挙動を示していることをモニターされたシステム挙動が示す場合には、アプリケーションの評判は変更される。
【００１０】
この特定の実施形態の他の態様によれば、アプリケーションを実行する複数のクライアントから受信したモニターされたシステム挙動に基づいて、アプリケーションの評判は変更される。
【００１１】
この特定の実施形態の他の態様によれば、モニターされたシステム挙動は、クライアントシステムおよびクライアントにおいて実行されているアプリケーションの挙動に関する詳細情報を含む。
【００１２】
この特定の実施形態の他の態様によれば、アプリケーションに対するルールは、アプリケーションが、隔離するもの、特定のクライアントリソースにアクセスすることを防止するもの、仮想クライアントで実行するもの、クライアントリソースへの完全なアクセスを許可するもの、のうちの１つであることを示す。
【００１３】
この特定の実施形態の更なる態様によれば、本方法は、アプリケーション対する生成されたルールをクライアントに送信するステップを含む。
【００１４】
別の特定の実施形態では、本技術は、評判をアプリケーションに割り当てるステップと、評判をクライアントに配信するステップと、アプリケーションを実行するクライアントに関するモニターされたシステム挙動をクライアントから受信するステップと、モニターされたシステム挙動に基づいて、アプリケーションの評判を変更するか否かを決定するステップと、クライアントに変更された評判を配信するステップと、クライアントからさらにモニターされたシステム挙動を受信するステップと、クライアントから受信したモニターされたシステム挙動に基づいて、アプリケーションに対するルールを生成するか否かを決定するステップと、を含む方法を実行するためのコンピュータプロセスを実行するように少なくとも１つのプロセッサに命令するために、少なくとも１つのプロセッサによって読み取り可能であるように構成される命令のコンピュータプログラムを記憶する、少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体として実現することができる。
【００１５】
別の特定の実施形態では、本技術は、評判をアプリケーションに割り当てるステップと、割り当てられた評判に基づいてアプリケーションを実行するステップと、アプリケーションを実行する間に、システム挙動をモニターするステップと、モニターされたシステム挙動をバックエンドシステムに報告するステップと、アプリケーションについての変更された評判がバックエンドシステムから受信されたか否かを決定するステップと、変更された評判に基づいてシステム挙動をモニターするステップと、モニターされたシステム挙動をバックエンドシステムに送信するステップと、アプリケーションに対する新規なルールがバックエンドシステムから受信されたか否かを決定するステップと、を含む、セキュリティ脆弱性を検出する方法として実現することができる。
【００１６】
この特定の実施形態の他の態様によれば、評判は、アプリケーションのインストール中に、アプリケーションの挙動に基づいてアプリケーションに割り当てられる。
【００１７】
この特定の実施形態の付加的な態様によれば、システム挙動をモニターするステップは、無許可のシステム・リソース・アクセス、システム・オペレーティング・システムに対する無許可の書き込み、セキュリティアプリケーションの終了、および無許可のネットワーク活動についてモニターするステップの少なくとも１つを含む。
【００１８】
この特定の実施形態の付加的な態様によれば、システム挙動は、ヒューリスティックに基づいて、既知の疑わしいおよび悪意のある挙動についてモニターされる。
【００１９】
この特定の実施形態の付加的な態様によれば、割り当てられた評判がアプリケーションは信頼できるものであることを示す場合には、システム挙動は第１の頻度でモニターされ、変更された評判がアプリケーションは信頼できるものでないことを示す場合には、システム挙動は第１の頻度より高い第２の頻度でモニターされる。
【００２０】
この特定の実施形態の付加的な態様によれば、疑わしいシステム挙動が検出された場合には、アプリケーションの実行は、信頼されている割り当てられた評判に従って継続される。
【００２１】
この特定の実施形態の更なる態様によれば、本方法は、受信したルールに基づいてアプリケーションを実行するステップを含む。
【００２２】
別の特定の実施形態では、本技術は、評判をアプリケーションに割り当てるステップと、割り当てられた評判に基づいてアプリケーションを実行するステップと、アプリケーションを実行する間に、システム挙動をモニターするステップと、モニターされたシステム挙動をバックエンドシステムに報告するステップと、アプリケーションについての変更された評判がバックエンドシステムから受信されたか否かを決定するステップと、変更された評判に基づいてシステム挙動をモニターするステップと、モニターされたシステム挙動をバックエンドシステムに送信するステップと、アプリケーションに対する新規なルールがバックエンドシステムから受信されたか否かを決定するステップと、を含む方法を実行するためのコンピュータプロセスを実行するように少なくとも１つのプロセッサに命令するために、少なくとも１つのプロセッサによって読み取り可能であるように構成される命令のコンピュータプログラムを記憶する、少なくとも１つの非一時的プロセッサ読み取り可能記憶媒体として実現することができる。
【００２３】
別の特定の実施形態では、本技術は、ネットワークに通信可能に連結される１つまたは複数のプロセッサを含むセキュリティ脆弱性を検出するためのシステムとして実現することができ、１つまたは複数のプロセッサは、評判をアプリケーションに割り当て、評判をクライアントに配信し、アプリケーションを実行するクライアントに関するモニターされたシステム挙動をクライアントから受信し、モニターされたシステム挙動に基づいて、アプリケーションの評判を変更するか否かを決定し、クライアントに変更された評判を配信し、クライアントからさらにモニターされたシステム挙動を受信し、クライアントから受信したモニターされたシステム挙動に基づいて、アプリケーションに対するルールを生成するか否かを決定するように構成される。
【図面の簡単な説明】
【００２４】
本開示のより完全な理解を促すために、添付の図面を参照されたい。同様の要素には、同様の数字が付される。これらの図面は、本開示を限定するものとして解釈するべきではなく、単に例示することだけを意図している。
【図１】本開示の実施形態によるネットワークアーキテクチャを示すブロック図である。
【図２】本開示の実施形態によるコンピュータシステムを示すブロック図である。
【図３】本開示の実施形態によるセキュリティ脆弱性検出モジュールを示す図である。
【図４】本開示の実施形態によるセキュリティ脆弱性を検出する方法を示す図である。
【図５】本開示の実施形態によるセキュリティ脆弱性を検出する方法を示す。
【発明を実施するための形態】
【００２５】
図１は、本開示の実施形態による、セキュリティ脆弱性を検出するためのネットワークアーキテクチャを示すブロック図である。
【００２６】
図１は、ネットワークアーキテクチャ１００の簡略図であり、図中に示されていない付加的な要素を含んでもよい。ネットワークアーキテクチャ１００は、クライアントシステム１１０、１２０および１３０、ならびにサーバー１４０Ａおよび１４０Ｂ（これらの各々の１つまたは複数は図２に示すコンピュータシステム２００を用いて実現されてもよい）を含んでもよい。クライアントシステム１１０、１２０および１３０は、ネットワーク１５０に通信可能に連結することができる。サーバー１４０Ａは、記憶装置１６０Ａ（１）〜（Ｎ）と通信可能に連結されてもよく、サーバー１４０Ｂは、記憶装置１６０Ｂ（１）〜（Ｎ）と通信可能に連結されてもよい。クライアントシステム１１０、１２０および１３０は、セキュリティ脆弱性検出モジュール（例えば、セキュリティ脆弱性検出モジュール３００）を含んでもよい。さらに、サーバー１４０Ａおよび１４０Ｂは、セキュリティ脆弱性検出モジュール（例えば、セキュリティ脆弱性検出モジュール３００）を含んでもよい。サーバー１４０Ａおよび１４０Ｂは、ＳＡＮ（ストレージ・エリア・ネットワーク）ファブリック１７０と通信可能に連結することができる。ＳＡＮファブリック１７０は、サーバー１４０Ａおよび１４０Ｂ、ならびにネットワーク１５０を介してクライアントシステム１１０、１２０および１３０により、記憶装置１８０（１）〜（Ｎ）へのアクセスをサポートすることができる。
【００２７】
図２のコンピュータシステム２００を参照すると、モデム２４７、ネットワークインターフェース２４８、またはいくつかの他の方法により、１つもしくは複数のクライアントシステム１１０、１２０および１３０からネットワーク１５０への接続を提供することができる。クライアントシステム１１０、１２０および１３０は、例えば、ウェブブラウザまたは他のクライアントソフトウェア（図示せず）を用いて、サーバー１４０Ａおよび１４０Ｂの情報にアクセスすることができる。このようなクライアントにより、クライアントシステム１１０、１２０および１３０は、サーバー１４０Ａおよび１４０Ｂ、または記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）、および／もしくは１８０（１）〜（Ｎ）のいずれかによりホストされるデータにアクセスすることが可能になる。いくつかの実施形態では、クライアントシステム１１０、１２０および１３０は、クライアントシステムをコンピュータウイルスおよび／またはマルウェアから保護するために、それに実装されるセキュリティエージェントを有することができ、サーバー１４０Ａに実装されたバックエンド防護システムと通信することができる。
【００２８】
ネットワーク１５０および１９０は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、セルラーネットワーク、衛星ネットワーク、またはクライアント１１０、１２０および１３０、サーバー１４０、ならびにネットワーク１５０および１９０と通信可能に連結されるその他のデバイスとの間の通信を可能にするその他のネットワークであってもよい。ネットワーク１５０および１９０は、スタンドアロンネットワークとして、または互いに協働して作動する、１つまたは任意の数の、上述した例示的なタイプのネットワークをさらに含むことができる。ネットワーク１５０および１９０は、それらが通信可能に連結される１つもしくは複数のクライアントまたはサーバーの１つもしくは複数のプロトコルを利用することができる。ネットワーク１５０および１９０は、ネットワークデバイスの１つまたは複数のプロトコルに、その他のプロトコルからまたはその他のプロトコルへ変換することができる。ネットワーク１５０および１９０は、それぞれ１つのネットワークとして示されているが、１つまたは複数の実施形態によれば、ネットワーク１５０および１９０は、それぞれ相互接続された複数のネットワークを含んでもよいことを理解されたい。
【００２９】
記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）および／または１８０（１）〜（Ｎ）は、ネットワークアクセス可能なストレージであってもよく、サーバー１４０Ａおよび１４０Ｂのいずれか１つに対して、ローカル、リモート、またはこれらの組み合わせであってもよい。記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）および／または１８０（１）〜（Ｎ）は、レイド（「ＲＡＩＤ」）、磁気テープ、ディスク、ストレージ・エリア・ネットワーク（「ＳＡＮ」）、インターネット・スモール・コンピュータシステム・インターフェース（「ｉＳＣＳＩ」）ＳＡＮ、ファイバチャネルＳＡＮ、コモン・インターネット・ファイル・システム（「ＣＩＦＳ」）、ネットワーク・アタッチト・ストレージ（「ＮＡＳ」）、ネットワーク・ファイル・システム（「ＮＦＳ」）、光ベースのストレージ、またはその他のコンピュータアクセス可能なストレージを利用することができる。記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）および／または１８０（１）〜（Ｎ）は、バックアップまたはアーカイブの目的で使用することができる。例えば、記憶装置１６０Ａ（１）〜（Ｎ）から複製されるデータを記憶するために、記憶装置１６０Ｂ（１）〜（Ｎ）および／または１８０（１）〜（Ｎ）を用いてもよい。
【００３０】
いくつかの実施形態によれば、クライアント１１０、１２０および１３０は、ネットワーク１５０への無線または有線接続を介して連結される、スマートフォン、ＰＤＡ、デスクトップコンピュータ、ラップトップコンピュータ、サーバー、その他のコンピュータもしくはコンピューティングデバイス、またはその他のデバイスであってもよい。クライアント１１０、１２０および１３０は、ユーザー入力、データベース、ファイル、ウェブサービス、および／またはアプリケーション・プログラミング・インターフェースからデータを受信することができる。
【００３１】
サーバー１４０Ａおよび１４０Ｂは、アプリケーションサーバー、アーカイブプラットフォーム、バックアップサーバー、ネットワーク記憶装置、メディアサーバー、電子メールサーバー、文書管理プラットフォーム、エンタープライズ・サーチ・サーバー、アンチ・マルウェア／ウイルス・セキュリティ・サーバー、またはネットワーク１５０と通信可能に連結されたその他のデバイスであってもよい。サーバー１４０Ａおよび１４０Ｂは、記憶装置１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）および／または１８０（１）〜（Ｎ）のいずれかをアプリケーションデータ、バックアップデータ、またはその他のデータの記憶のために利用することができる。サーバー１４０Ａおよび１４０Ｂは、クライアント１１０、１２０および１３０と、バックアッププラットフォーム、バックアッププロセス、および／または記憶装置との間で送受信されるデータを処理することができる、アプリケーションサーバーなどのホストであってもよい。
【００３２】
いくつかの実施形態によれば、サーバー１４０Ａおよび１４０Ｂは、データのバックアップおよび／またはアーカイブのために使用されるプラットフォームであってもよい。データの１つまたは複数の部分は、適用されたバックアップポリシーおよび／またはアーカイブ、データソースに関連する属性、バックアップのために利用可能なスペース、データソースにおいて利用可能なスペース、または他の要因に基づいて、バックアップまたはアーカイブされてもよい。さらに、バックアップまたはアーカイブされたデータの１つまたは複数の部分は、フェイルオーバーポリシーに従って特定の事象が発生した際に回復されてもよい。他の実施形態によれば、サーバー１４０Ａおよび１４０Ｂは、クライアント１１０、１２０および１３０を含む任意のソースから収集した情報に基づいてセキュリティ脆弱性を識別することができる。その結果、サーバー１４０Ａおよび１４０Ｂは、マルウェアおよびウイルスがクライアント１１０、１２０および１３０でセキュリティ脆弱性を利用するのを防止するために、クライアント１１０、１２０および１３０に情報を配信することができる。
【００３３】
いくつかの実施形態によれば、クライアント１１０、１２０および１３０は、例えばセキュリティ脆弱性検出モジュール３００などのセキュリティ脆弱性を検出するためのソフトウェアの１つまたは複数の部分を含むことができる。さらに、サーバー１４０Ａは、例えばセキュリティ脆弱性検出モジュール３００などのセキュリティ脆弱性を検出するためのソフトウェアの１つまたは複数の部分を含むことができる。図示するように、セキュリティ脆弱性検出モジュール３００の１つまたは複数の部分は、ネットワークの中心位置に存在してもよい。いくつかの実施形態によれば、ネットワーク１９０は、外部ネットワークであってもよく（例えば、インターネット）、サーバー１４０Ａは、１つまたは複数の内部構成要素とクライアントと外部ネットワークとの間のゲートウェイまたはファイアウォールであってもよい。いくつかの実施形態によれば、セキュリティ脆弱性検出モジュール３００は、クラウドコンピューティング環境の一部として実現することができる。
【００３４】
図２は、本開示の実施形態によるコンピュータシステム２００のブロック図である。コンピュータシステム２００は、本開示に従って技術を実施するのに好適である。コンピュータシステム２００は、コンピュータシステム２００の主要なサブシステムを相互接続することができるバス２１２を含むことができ、主要なサブシステムには、中央処理装置２１４、システムメモリ２１７（例えば、ＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（リード・オンリー・メモリ）、フラッシュＲＡＭ等）、入力／出力（Ｉ／Ｏ）コントローラ２１８、オーディオ出力インターフェース２２２を介するスピーカーシステム２２０などの外部オーディオ装置、ディスプレイアダプタ２２６を介するディスプレイ画面２２４などの外部装置、シリアルポート２２８および２３０、キーボード２３２（キーボードコントローラ２３３を介してインターフェース接続される）、ストレージインターフェース２３４、フロッピーディスク２３８（「フロッピー」は登録商標、以下同じ）を受けるために動作するフロッピーディスクドライブ２３７、ファイバ・チャネル・ネットワーク２９０と接続するために動作するホスト・バス・アダプタ（ＨＢＡ）インターフェースカード２３５Ａ、ＳＣＳＩバス２３９と接続するために動作するホスト・バス・アダプタ（ＨＢＡ）インターフェースカード２３５Ｂ、および光ディスク２４２を受けるために動作する光ディスクドライブ２４０等が含まれる。同様に、マウス２４６（またはシリアルポート２２８を介してバス２１２に連結された他のポイントアンドクリックデバイス）、モデム２４７（シリアルポート２３０を介してバス２１２に連結される）、ネットワークインターフェース２４８（バス２１２に直接連結される）、電力管理部２５０、およびバッテリ２５２が含まれてもよい。
【００３５】
バス２１２は、上述のように、中央処理装置２１４とシステムメモリ２１７との間のデータ通信を可能にし、システムメモリ２１７は、リード・オンリー・メモリ（ＲＯＭ）またはフラッシュメモリ（いずれも図示せず）と、ランダム・アクセス・メモリ（ＲＡＭ）（図示せず）とを含んでもよい。ＲＡＭは、オペレーティングシステムおよびアプリケーションプログラムがロードされてもよいメインメモリであってもよい。ＲＯＭまたはフラッシュメモリは、他のコードと共に、周辺コンポーネンツとの相互作用等の基本的なハードウェアの動作を制御する、ベーシック・インプット／アウトプット・システム（ＢＩＯＳ）を含むことができる。コンピュータシステム２００に常駐するアプリケーションは、ハードディスクドライブ（例えば、固定ディスク２４４）、光学ドライブ（例えば、光学ドライブ２４０）、フロッピーディスクユニット２３７、取り外し可能なディスクユニット（例えば、ユニバーサル・シリアル・バス・ドライブ）、またはその他の記憶媒体等の、コンピュータ読み取り可能媒体上に格納されたり、それを介してアクセスしたりすることができる。いくつかの実施形態によれば、セキュリティ脆弱性検出モジュール３００は、システムメモリ２１７に常駐してもよい。
【００３６】
ストレージインターフェース２３４は、コンピュータシステム２００のその他のストレージインターフェースと同様に、固定ディスクドライブ２４４等の、情報の記憶および／または検索のための標準的なコンピュータで読み取り可能な媒体に接続することができる。固定ディスクドライブ２４４は、コンピュータシステム２００の一部であってもよく、独立していて、他のインターフェースシステムを介してアクセスされてもよい。モデム２４７は、電話回線を介してリモートサーバーへの直接接続を提供してもよく、インターネット・サービス・プロバイダ（ＩＳＰ）経由でインターネットに接続してもよい。ネットワークインターフェース２４８は、ＰＯＰ（ポイント・オブ・プレゼンス）を介したインターネットへのダイレクトネットワークリンクを介してリモートサーバーへの直接接続を提供してもよい。ネットワークインターフェース２４８は、デジタル携帯電話接続、セルラー・デジタル・パケット・データ（ＣＤＰＤ）接続、またはデジタル衛星データ接続等を含む無線技術を用いて、このような接続を提供してもよい。
【００３７】
他の多くのデバイスまたはサブシステム（図示せず）も同様の方法で接続することができる（例えば、文書スキャナ、デジタルカメラ等）。逆に、図２に示されるデバイスの全てが、本開示を実施するために存在する必要はない。デバイスおよびサブシステムは、図２に示されるものとは異なる手法で相互接続することができる。本開示を実施するためのコードは、システムメモリ２１７、固定ディスク２４４、光ディスク２４２、またはフロッピーディスク２３８等、コンピュータ読み取り可能記憶媒体のうちの１つまたは複数に格納することができる。本開示を実施するためのコードは、１つまたは複数のインターフェースを介して受け取り、メモリに格納することもできる。コンピュータシステム２００に設けられたオペレーティングシステムは、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＯＳ  Ｘ（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、またはその他の周知のオペレーティングシステムでもよい。
【００３８】
電力管理部２５０は、バッテリ２５２の電力レベルを監視することができる。電力管理部２５０は、電力レベル、コンピュータシステム２００のシャットダウン前残り時間窓、電力消費率、コンピュータシステムが主電源（例えば、ＡＣ電源）またはバッテリ電源のいずれを使用しているかの表示器、およびその他電力関連情報の判定を可能にするために、１つまたは複数のＡＰＩ（アプリケーション・プログラミング・インターフェース）を提供することができる。いくつかの実施形態によれば、電力管理部２５０のＡＰＩは、リモートアクセス可能であってもよい（例えば、ネットワーク接続を介して、リモートバックアップ管理モジュールにアクセス可能であってもよい）。いくつかの実施形態によれば、バッテリ２５２は、コンピュータシステム２００のローカルまたはリモートのいずれかに位置する無停電電源装置（ＵＰＳ）であってもよい。このような実施形態では、電力管理部２５０は、ＵＰＳの電力レベルに関する情報を提供することができる。
【００３９】
図３は、本開示の実施形態によるセキュリティ脆弱性検出モジュール３００を示す図である。図示するように、セキュリティ脆弱性検出モジュール３００は、評判モジュール３１０、システムおよびアプリケーション監視モジュール３２０、システムおよびアプリケーション挙動報告モジュール３３０、システムおよびアプリケーション挙動受信モジュール３４０、ルール生成モジュール３５０、アプリケーション制御モジュール３６０、ならびにユーザーインターフェース３７０を含む１つまたは複数の構成要素を含むことができる。
【００４０】
評判モジュール３１０は、１つまたは複数のクライアント（例えば、クライアント１１０、１２０および１３０）で実行される１つまたは複数のアプリケーションおよび処理に対する評判を管理することができる。いくつかの実施形態では、評判モジュール３１０は、複数の要因に基づいてネットワーク内の各クライアントで実行されている各アプリケーションまたは処理に評判を割り当てることができる。例えば、評判モジュール３１０は、アプリケーションの開発者、アプリケーションの前バージョンの評判、インストール時もしくはその後のアプリケーションの特性もしくは挙動、ホワイトリスト、または他の任意の要因に基づいて、評判をアプリケーションに割り当てることができる。さらに、アプリケーションが疑わしいかまたは悪意のある挙動を示し始めた場合には、評判モジュール３１０はアプリケーションの評判を修正することができる。この挙動は、ヒューリスティックを用いて、ならびに少なくとも１つのクライアントから報告されたシステムおよびアプリケーションの挙動に基づいて、決定することができる。
【００４１】
システムおよびアプリケーション監視モジュール３２０は、システムおよびクライアントに実行されている各々のアプリケーションもしくは処理の挙動をモニターすることができる。いくつかの実施形態では、システムおよびアプリケーション監視モジュール３２０は、クライアントにおけるセキュリティエージェントの一部として実装されてもよい。システムおよびアプリケーション監視モジュール３２０は、クライアントの様々なタイプの挙動をモニターすることができる。例えば、システムおよびアプリケーション監視モジュール３２０は、クライアントによるシステムディレクトリへの無許可のアクセスもしくは改変、オペレーティングシステムに対する無許可の書き込み、アンチウイルスアプリケーションなどのセキュリティアプリケーションの停止、および悪意のあるネットワーク活動をモニターすることができる。場合によっては、システムおよびアプリケーション監視モジュール３２０は、報告するべき特定の危険なまたは疑わしい挙動を識別するために、ヒューリスティックを用いてクライアントの挙動をモニターすることができる。
【００４２】
システムおよびアプリケーション挙動報告モジュール３３０は、システムおよびアプリケーション監視モジュール３２０によってモニターされたシステムおよびアプリケーションの挙動の結果を報告することができる。いくつかの実施形態では、システムおよびアプリケーション挙動報告モジュール３３０は、クライアント（例えば、クライアント１１０、１２０、または１３０）からバックエンドシステム（例えば、サーバー１４０Ａ）へ挙動を報告することができる。システムおよびアプリケーション挙動報告モジュール３３０は、モニターされたシステムおよびアプリケーションの挙動の結果を、クライアントの活動に応じて変化することができる定期的な間隔で、あるいは連続的に、あるいはクライアントの特定の挙動もしくは活動が発生した時に、報告してもよい。
【００４３】
システムおよびアプリケーション挙動受信モジュール３４０は、システムおよびアプリケーション挙動報告モジュール３３０によって送信されたシステムおよびアプリケーションの挙動の結果を受信することができる。いくつかの実施形態では、システムおよびアプリケーション挙動受信モジュール３４０は、バックエンドシステム（例えば、サーバー１４０Ａ）に配置されてもよく、１つまたは複数のクライアント（例えば、クライアント１１０、１２０、および１３０）からシステムおよびアプリケーションの挙動情報を受信するように構成されてもよい。
【００４４】
ルール生成モジュール３５０は、システムおよびアプリケーション挙動受信モジュール３４０によって受信されたシステムおよびアプリケーションの挙動に基づいて、特定のアプリケーションに対するルールを生成することができる。場合によっては、ルール生成モジュール３５０は、アプリケーションが疑わしい挙動を示していると決定された場合に、アプリケーションを制限するためにルールを生成することができる。例えば、ルールは、ウイルスまたはマルウェアの感染が分かっておりアプリケーションを完全にブロックするべきか、あるいはウイルスまたはマルウェアの感染が疑われるためアプリケーションを仮想クライアントだけで実行するべきか、あるいはウイルスまたはマルウェアがなく全てのシステムリソースに対するアクセスを許可するべきか、ということを示すことができる。
【００４５】
アプリケーション制御モジュール３６０は、ルール生成モジュール３５０によって生成されたルールに従って、アプリケーションを制御することができる。アプリケーション制御モジュール３６０は、評判モジュール３１０からの評判、ルール生成モジュール３５０からのルール、ならびにシステムおよびアプリケーション監視モジュール３２０によって検出されたシステムおよびアプリケーションの挙動に基づいて、アプリケーションのパーミッションを決定することができる。いくつかの実施形態では、アプリケーション制御モジュール３６０は、生成されたルールに基づいて、アプリケーションのアクセスを特定のシステムリソースに制限することができる。他の実施形態では、アプリケーション制御モジュール３６０は、アプリケーションが信頼された評判を有する場合には、システムリソースに対するアプリケーションの完全なアクセスを許可してもよい。別の実施形態では、アプリケーション制御モジュール３６０は、アプリケーションが疑わしい挙動を示している場合であっても、信頼された評判に基づいて特定のシステムリソースに対するアプリケーションの限定的なアクセスを許可してもよい。
【００４６】
ユーザーインターフェース３７０は、後述する処理に対する任意の態様を制御するためのインターフェースを、ユーザーまたは管理者に提供することができる。例えば、ユーザーインターフェース３７０は、システムおよびアプリケーション監視モジュール３２０によってモニターされたシステムおよびアプリケーションの挙動に関する情報を表示することができる。
【００４７】
図４は、本開示の実施形態によるセキュリティ脆弱性を検出する方法４００を示す。方法４００は、例えばクライアント１１０、１２０、１３０、およびサーバー１４０Ａを独立に含む複数の装置で実行されてもよい。しかし、後述する方法４００の任意の部分は、クライアント１１０、１２０、１３０、およびサーバー１４０Ａのいずれか１つで実行されてもよい。方法４００は、ブロック４０２で開始することができる。
【００４８】
ブロック４０４では、新規なアプリケーションを識別することができる。いくつかの実施形態では、新規なアプリケーションは、評判モジュール３１０によって識別されてもよい。新しく識別されたアプリケーションは、開発者によって最近リリースされた新規なソフトウェアプログラムまたはアプリケーションであってもよい。さらに、新しく識別されたアプリケーションは、以前から知られているアプリケーションのアップデート版であってもよい。いくつかの実施形態では、新規なアプリケーションは、既知のアプリケーションのリストを保持することができるバックエンドシステムに対して、開発者によって報告されてもよい。さらに、新規なアプリケーションをインストールしたクライアント（例えば、クライアント１１０、１２０および１３０）は、新規なアプリケーションの存在をバックエンドシステム（例えば、サーバー１４０Ａ）に報告することができる。新規なアプリケーションの識別は、同じアプリケーションをインストールした複数のクライアントから受信した情報に基づいて、バックエンドシステムで実行されてもよい。新規なアプリケーションが識別された後、全体の処理はブロック４０６に進むことができる。
【００４９】
ブロック４０６では、新しく識別されたアプリケーションに初期評判を割り当てることができる。いくつかの実施形態では、初期評判は、評判モジュール３１０によって割り当てられてもよい。評判は、新規なアプリケーションの信用のレベルを示すことができる。例えば、新規なアプリケーションは、新規なアプリケーションをリリースした開発者に基づいて、高いレベルの信用を有する良い評判（例えば、「安全」）が割り当てられてもよい。さらに、新規なアプリケーションは、関連するマルウェアの感染がインストール時に検出されずに、複数のクライアントでアプリケーションがインストールされたことに基づいて、良い評判（例えば、「安全」）が割り当てられてもよい。いくつかの実施形態では、初期評判は、新規なアプリケーションのインストール時の挙動に基づいて、クライアントによって新規なアプリケーションに割り当てられてもよい。他の実施形態では、バックエンドシステムは、新規なアプリケーションをインストールした少なくとも１つのクライアントから報告されたソフトウェアおよび／または情報に関する情報に基づいて、初期評判を新規なアプリケーションに割り当ててもよい。しかし、評判は、任意の数の要因に基づいて新規なアプリケーションに割り当てられてもよい。さらに、新規なアプリケーションに割り当てられた初期評判が良い評判である場合に、情報は信頼されたアプリケーションのホワイトリストに記憶されてもよい。初期評判が新しく識別されたアプリケーションに割り当てられた後、全体の処理はブロック４０８に進むことができる。
【００５０】
ブロック４０８では、少なくとも１つのクライアントからモニターされたシステム挙動を受信することができる。いくつかの実施形態では、モニターされたシステム挙動は、システムおよびアプリケーション挙動受信モジュール３４０によって受信されてもよい。場合によっては、モニターされたシステム挙動は、バックエンドシステム（例えば、サーバー１４０Ａ）において、複数のクライアント（例えば、クライアント１１０、１２０および１３０）から受信されてもよい。モニターされたシステム挙動は、クライアントが疑わしい挙動を示しているか否かを示すことができ、疑わしい挙動に関する詳細を含むことができる。あるいは、モニターされたシステム挙動は、疑わしい挙動がクライアントで発生していないことを示すことができる。受信したシステム挙動は、どのアプリケーションがクライアントで実行されているかもしくは動作しているか、および特定のアプリケーションと関係する挙動を特定することができる。さらに、新規なアプリケーションがクライアントにインストールされなかった場合であっても、受信したシステム挙動情報は、新規な潜在的に悪意のある挙動が観察されているかどうかを示すことができる。モニターされたシステム挙動は、クライアント全体の挙動情報、前に存在したアプリケーションもしくは処理、新規なアプリケーション、ならびに、アプリケーションもしくは処理が疑わしい挙動を示しているか、および隔離すべきかどうかを決定することに役立つ任意の情報の組み合わせを含むことができる。モニターされたシステム挙動は、定期的に、または連続的に、または他の任意の時間に受信することができる。モニターされたシステム挙動が受信された後、処理はブロック４１０に進むことができる。
【００５１】
ブロック４１０では、新規なアプリケーションの初期評判を変更するか否かを決定することができる。いくつかの実施形態では、新規なアプリケーションの初期評判を変更するか否かは、評判モジュール３１０により決定されてもよい。新規なアプリケーションの初期評判は、１つまたは多くのクライアントから受信したモニターされたシステム挙動に基づいて、良いまたは安全な評判からより低い信用の評判に変更されてもよい。例えば、初期評判は、アプリケーションが疑わしい挙動を示していると１つのクライアントが報告した場合に、良いものから疑わしいものに変更されてもよい。いくつかの実施形態では、アプリケーションの評判を変更するかどうかの決定は、ヒューリスティックに基づいてもよい。
【００５２】
さらに、複数のクライアントが特定のアプリケーションが疑わしい挙動を示していると報告した場合に、初期評判は良いものから疑わしいものに変更されてもよい。いくつかの実施形態では、予め設定された数またはしきい値数のクライアントが、アプリケーションが疑わしい挙動を示していると報告した場合に、評判が変更されてもよい。さらに、１つまたは複数のクライアントからアプリケーションが特定のマルウェアまたはウイルス特性を示していると決定された場合に、新規なアプリケーションの評判が良いものまたは安全なものから悪いものに変更されてもよい。しかし、疑わしい特性または挙動がクライアントから報告されない場合には、良いまたは安全な評判が維持されてもよい。アプリケーションの評判は、少なくとも１つのクライアントから受信したモニターされたシステム挙動に基づいて、悪いものから疑わしいものに、あるいは、疑わしいものから安全なものに改善されてもよい。例えば、疑わしい挙動の原因であると疑われた第１のアプリケーションが、疑わしい挙動を示している実際のアプリケーションではなかったと決定されてもよい。したがって、アプリケーションの評判は、疑わしいものから中立なものまたは良いものに変更されてもよい。
【００５３】
ブロック４１０では、少なくとも１つのクライアントから報告されたシステム挙動に基づいて、他の任意の既知のアプリケーションまたは処理の評判を変更する決定が成されてもよい。新規なアプリケーションまたは他の任意のアプリケーションの評判を変更する必要がないと決定された場合には、処理はブロック４０８に戻って追加のシステム挙動を再び受信することができる。新規なアプリケーションまたは他のアプリケーションの評判を変更する必要があると決定された場合には、処理はブロック４１２に進むことができる。
【００５４】
ブロック４１２では、識別されたアプリケーションの変更された評判をネットワークの各クライアントに配信することができる。いくつかの実施形態では、識別されたアプリケーションの変更された評判は、評判モジュール３１０によって配信されてもよい。場合によっては、変更された評判は、バックエンドシステム（例えば、サーバー１４０Ａ）からネットワークのクライアント（例えば、クライアント１１０、１２０および１３０）の各々へ配信されてもよい。変更された評判が配信された後、処理はブロック４１４に進むことができる。
【００５５】
ブロック４１４では、少なくとも１つのクライアントから、モニターされたシステムおよびアプリケーションの挙動を受信することができる。いくつかの実施形態では、モニターされたシステムおよびアプリケーションの挙動は、システムおよびアプリケーション挙動受信モジュール３４０によって受信されてもよい。場合によっては、モニターされたシステムおよびアプリケーションの挙動は、１つのアプリケーションもしくは処理、複数のアプリケーションもしくは処理、およびシステム挙動に関する情報を含んでもよい。さらに、モニターされたシステムおよびアプリケーションの挙動は、疑わしいまたは信頼できない評判を有するアプリケーションもしくは処理についての詳細情報を含んでもよい。モニターされたシステムおよびアプリケーションの挙動は、様々な信頼されたおよび／または疑わしいアプリケーションを実行している１つのクライアントもしくは複数のクライアントから受信されてもよい。いくつかの実施形態では、モニターされたシステムおよびアプリケーションの挙動は、ブロック４１２でクライアントに配信された特定のアプリケーションの評判の変更に基づいて、そのアプリケーションの挙動に関するより多くの詳細を含んでもよい。モニターされたシステムおよびアプリケーションの挙動は、周期的な間隔で、あるいは連続的に、あるいは他の任意の時間に、複数のクライアントから同時にまたは順次に受信されてもよい。モニターされたシステムおよびアプリケーションの挙動が受信された後、処理はブロック４１６に進むことができる。
【００５６】
ブロック４１６では、受信したシステムおよびアプリケーションの挙動に基づいて、新規なルールを生成して少なくとも１つのクライアントに配信するかどうかを決定することができる。いくつかの実施形態では、ルール生成モジュール３５０が、新規なルールを生成してクライアントに配信すべきかどうかを決定してもよい。場合によっては、特定のアプリケーションもしくは処理が疑わしいおよび／または悪意のある挙動を示すことを、受信したモニターされたシステムおよびアプリケーションの挙動が示す場合に、新規なルールが生成されてもよい。新規なルールを生成するかどうかの決定は、単一のクライアントまたは複数のクライアントから受信した、モニターされたシステムおよびアプリケーションの挙動の解析に基づいてもよい。いくつかの実施形態では、特定のアプリケーションが１つのクライアントからの疑わしいおよび／または悪意のある挙動の原因となっていることをモニターされたアプリケーション挙動が示す場合に、特定のアプリケーションに対する新規なルールが生成されてもよい。
【００５７】
さらに、モニターされたアプリケーション挙動が複数のクライアントにわたる疑わしい特定の挙動を示し、かつ、特定のアプリケーションがクライアントの各々で実行されている場合に、特定のアプリケーションに対する新規なルールが生成されてもよい。その結果、特定のアプリケーションが疑わしいまたは悪意のある挙動の原因であるという推論が導き出され、新規なルールがその特定のアプリケーションについて生成されてもよい。新規なルールは、クライアントに複数の既知のセキュリティ対策のいずれか１つを実行するように指示してもよい。例えば、新規なルールは、アプリケーションがロードまたは実行されるのを防止すべきであること、あるいはアプリケーションが安全なサンドボックスで実行されるべきであること、あるいは実行するためにアプリケーションを仮想クライアントへ移動するべきであることを示してもよい。
【００５８】
新規なルールは、ネットワーク内の各クライアントに配信されてもよい。場合によっては、新規なルールは、新規なルールと関係する特定のアプリケーションを実行しているクライアントに対して配信され、特定のアプリケーションを実行していないクライアントには新規なルールを送信しなくてもよい。新規なルールは、新規なルールが生成された直後にクライアントに配信されてもよいし、あるいはクライアントに配信される定期的なアップデートの一部として配信されてもよい。新規なルールが配信された後、全体の処理はブロック４１８に進むことができる。それから、全体の処理４００は、周期的または連続的に繰り返すことができる。場合によっては、全体の処理の様々な要素は、同時にまたは順次に実行されてもよい。例えば、モニターされたシステム挙動は、別のアプリケーションの変更された評判がクライアントに配信される間に、複数のクライアントから受信されてもよい。
【００５９】
図５は、本開示の実施形態によるセキュリティ脆弱性を検出する方法５００を示す。方法５００は、例えばクライアント１１０、１２０、１３０、およびサーバー１４０Ａを含む複数の装置で実行されてもよい。しかし、後述する方法５００の任意の部分は、クライアント１１０、１２０、１３０、およびサーバー１４０Ａのいずれか１つで実行されてもよい。方法５００は、ブロック５０２で開始することができる。
【００６０】
ブロック５０４では、初期評判に従ってアプリケーションを実行することができる。いくつかの実施形態では、アプリケーションは、独立に、または複数の付加的なアプリケーションもしくは処理と並行して、クライアントで実行されてもよい。初期評判は、アプリケーションが信頼できる安全なものか、潜在的に疑わしいものか、疑わしいものか、悪意のあるものか、あるいは他の分類であるかを示すことができる。場合によっては、アプリケーションを実行するクライアントが、アプリケーションのインストール中および／またはその後のアプリケーションの挙動に基づいて、初期評判を決定してもよい。他の例では、クライアントがバックエンドシステムから初期評判を受信してもよい。評判に基づいて、評判が良好または安全である場合には、クライアントは、全ての利用可能なリソースに対するアプリケーションのアクセスを許可することによって、アプリケーションを実行することができる。さらに、評判が良好または安全でない場合には、クライアントはリソースに対するアクセスを制限することによってアプリケーションを実行することができる。アプリケーションが初期評判に基づいて実行された後、全体の処理はブロック５０６に進むことができる。
【００６１】
ブロック５０６では、クライアントシステムの挙動をモニターすることができる。いくつかの実施形態では、システムおよびアプリケーション監視モジュール３２０がクライアント（例えば、クライアント１１０）の挙動をモニターしてもよい。クライアントの挙動は、様々な方法でモニターされてもよい。例えば、システムは、システムディレクトリへの無許可のアクセスもしくは改変、オペレーティングシステムに対する無許可の書き込み、アンチウイルスアプリケーションなどのセキュリティアプリケーションの停止、および悪意のあるネットワーク活動についてモニターされてもよい。場合によっては、危険なまたは疑わしい挙動を識別するために、ヒューリスティックを用いてクライアントの挙動をモニターしてもよい。
【００６２】
システム挙動の監視は、ブロック５０４のアプリケーションの実行と並行して実行されてもよい。さらに、監視は、定期的または連続的に所定の期間実行されてもよい。いくつかの実施形態では、システム挙動は、クライアントで実行されているアプリケーションまたは処理の評判に従ってモニターされてもよい。例えば、各アプリケーションが信頼できるまたは安全な評判を有する場合には、システム挙動はより低い頻度でモニターされてもよいが、アプリケーションが疑わしいまたは信頼できない評判を有する場合には、システムはより高い頻度でモニターされてもよい。またクライアントは、関連する信頼できる評判に基づいて、特定のアプリケーションをより低い頻度でモニターしてもよいが、他のアプリケーションは、関連する疑わしい評判に基づいて、より高い頻度でモニターされてもよい。疑わしい挙動がその評判に基づいて検出されている場合であっても、クライアントはアプリケーションを実行し続けてもよい。この例では、更新された評判が受信されるまで、アプリケーションの評判が疑わしい挙動に取って代わってもよい。しかし、特定の既知の悪意のある挙動が検出された場合には、クライアントはアプリケーションを終了してもよい。システム挙動がモニターされた後、全体の処理はブロック５０８に進むことができる。
【００６３】
ブロック５０８では、モニターされたシステム挙動をバックエンドシステム（例えば、サーバー１４０Ａ）に報告することができる。いくつかの実施形態では、システムおよびアプリケーション挙動報告モジュール３３０は、クライアント（例えば、クライアント１１０）のモニターされたシステム挙動をバックエンドシステム（例えば、サーバー１４０Ａ）に報告してもよい。モニターされたシステムおよびアプリケーション挙動がバックエンドシステムに報告された後、処理はブロック５１０に進むことができる。
【００６４】
ブロック５１０では、新規なアプリケーション評判が受信されたかどうかを決定することができる。いくつかの実施形態では、新規なアプリケーション評判は、アプリケーション制御モジュール３６０によって受信されてもよい。新規なアプリケーション評判は、バックエンドシステムによって検出されたアプリケーションと関係する疑いのある挙動に応答して、バックエンドシステム（例えば、サーバー１４０Ａ）から受信されてもよい。例えば、バックエンドシステムは、特定のアプリケーションが上述したような疑わしい挙動を示しているという決定に応じて、ネットワーク内の全てのクライアントに対して、特定のアプリケーションについての新規な評判を自動的に配信することができる。新規なアプリケーション評判が受信されない場合には、処理はブロック５０４に戻ることができて、クライアントはアプリケーションを実行し続け、システム挙動をモニターし、そしてシステム挙動をバックエンドシステムに報告することができる。しかし、新規なアプリケーション評判が受信された場合には、処理はブロック５１２に進むことができる。
【００６５】
ブロック５１２では、新しく受信したアプリケーション評判に基づいてシステムおよびアプリケーションをモニターすることができる。いくつかの実施形態では、システムおよびアプリケーションは、新しく受信した評判に従って、システムおよびアプリケーション監視モジュール３２０によってモニターされてもよい。場合によっては、新規な評判は、特定のアプリケーションまたは処理の評判が信頼できるレベルから疑わしいレベルに、あるいは疑わしいレベルから悪意のあるレベルに低下したことを示してもよい。新規な評判が、アプリケーションは悪意があることを示す場合には、アプリケーションは完全にブロックされるか、あるいは安全なサンドボックスもしくは仮想クライアントで実行するように制限されてもよい。さらに、アプリケーションは悪意があると確認された場合には、システムおよびアプリケーションの挙動の全てがより詳細にモニターされてもよい。
【００６６】
新規な評判が特定のアプリケーションが疑わしいことを示す場合には、そのアプリケーションおよび全体システムの挙動が調整されてもよい。例えば、アプリケーションが以前は信頼できると示されていた場合には、挙動はまれにモニターされてもよかった。しかし、アプリケーションの評判が疑わしいものに下げられた今では、システムおよび特定のアプリケーションの挙動は高い頻度でモニターされてもよい。代わりに、新規な評判が特定のアプリケーションがもはや疑わしくないことを示す場合には、システムおよびアプリケーションの挙動がモニターされる頻度は減少されてもよい。処理がブロック５１４に進む前に、システムおよびアプリケーションの挙動は所定の期間モニターされてもよい。しかし、システムまたはアプリケーションの特定の挙動が検出された場合には、処理は報告されるために直ちにブロック５１４に進むことができる。したがって、システムおよびアプリケーションの挙動がモニターされた後、処理はブロック５１４に進むことができる。
【００６７】
ブロック５１４では、新規な評判に従うモニターされたシステムおよびアプリケーションの挙動を、バックエンドシステム（例えば、サーバー１４０Ａ）に報告することができる。いくつかの実施形態では、システムおよびアプリケーション挙動報告モジュール３３０は、クライアント（例えば、クライアント１１０）の新しくモニターされたシステムおよびアプリケーションの挙動をバックエンドシステム（例えば、サーバー１４０Ａ）に報告してもよい。モニターされたシステムおよびアプリケーション挙動がバックエンドシステムに報告された後、処理はブロック５１６に進むことができる。
【００６８】
ブロック５１６では、新規なルールが受信された場合には、実行されているアプリケーションを新規なルールに従って制御することができる。いくつかの実施形態では、アプリケーションは、受信したルールに従って、アプリケーション制御モジュール３６０によって制御されてもよい。場合によっては、上述したようにバックエンドシステムに報告されたクライアントの挙動に基づいて、バックエンドシステムはクライアントに新規なルールを配信してもよい。具体的には、バックエンドシステムは、特定のアプリケーションが実行されるのを禁止すべきである、あるいはアプリケーションが安全なサンドボックスで実行されるべきである、あるいはアプリケーションが仮想クライアントで実行されるべきである、あるいは特定のシステムリソースに対するアプリケーションのアクセスが制限されるべきである、という新規なルールを発行してもよい。したがって、バックエンドシステムが特定のアプリケーションに対する新規なルールを配信する場合には、クライアント（例えば、クライアント１１０）はそのルールに従ってアプリケーションを実行してもよい。しかし、新規なルールがバックエンドから受信されない場合には、クライアントはアプリケーションを実行し続けてもよく、そして、全体の処理はブロック５１８に進むことができる。ブロック５１８では、全体の処理は、連続的にまたは周期的に繰り返されてもよい。
【００６９】
それから、全体の処理５００は、周期的または連続的に繰り返すことができる。場合によっては、全体の処理の様々な要素は、同時にまたは順次に実行されてもよい。例えば、システム挙動をバックエンドシステムに報告する間にも、アプリケーションは初期評判に基づいて実行されてもよい。
【００７０】
ここで、上述した本開示によるセキュリティ脆弱性の検出は、ある程度まで入力データの処理および出力データの生成を含んでもよい点に留意する必要がある。この入力データ処理および出力データ生成は、ハードウェアまたはソフトウェアにより実施されてもよい。例えば、特定の電子部品は、セキュリティ脆弱性の検出において、あるいは上述した本開示によるセキュリティ脆弱性の検出と関係する機能を実現するための類似もしくは関連する回路において用いられてもよい。あるいは、命令に従って動作する１つまたは複数のプロセッサは、上述した本開示によるセキュリティ脆弱性の検出と関係する機能を実現してもよい。かかる場合、このような命令が１つまたは複数の非一時的プロセッサ読み取り可能記憶媒体（例えば、磁気ディスクまたは他の記憶媒体）に記憶されたり、あるいは１つまたは複数の搬送波中に具現化された１つまたは複数の信号を介して１つまたは複数のプロセッサに伝送されてもよいことは、本開示の範囲に含まれる。
【００７１】
本開示は、本明細書に示す特定の実施形態により範囲を限定されるものではない。実際、本明細書に記載されるものに加え、本開示の他の様々な実施形態およびその変更形態は、上述の説明および添付の図面から、当業者には明らかとなろう。したがって、このような他の実施形態およびその変更形態は本開示の範囲内に含まれるものである。さらに、本開示は少なくとも１つの特定の目的のための少なくとも１つの特定の環境における少なくとも１つの特定の実施の文脈で本明細書に記載されているが、その有用性はそれらに限定されず、本開示は任意の数の目的のために任意の数の環境において有益に実施され得ることが当業者には理解されよう。それに応じて、以下に記載する「特許請求の範囲」は、本明細書に記載された本開示の範囲の最大限の広さおよび趣旨を考慮して解釈されるべきである。
【図１】
2015531951.tif 000003
【図２】
2015531951.tif 000004
【図３】
2015531951.tif 000005
【図４】
2015531951.tif 000006
【図５】
2015531951.tif 000007
【国際調査報告】
2015531951.tif 000008