"ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについて判断するためのコンピュータによる実行される方法であって、前記ソフトウェアアプリケーションに関するメタデータを抽出するステップと、システムに付随する文脈情報を収集するステップと、メタデータおよび文脈情報をサーバー側構成部品に送信するステップと、メタデータおよび文脈情報を調査し、前記ソフトウェアアプリケーションに対する判断を行うステップと、前記判断に関連する情報を含む応答情報をクライエント側構成部品へ送信するステップと、サーバー側構成部品からの応答情報に基づいて、前記ソフトウェアアプリケーションに関して処理を行うか否かについて判断を行うステップとを有することを特徴とする方法。ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについて判断するためのコンピュータ可読指令を含むコンピュータ可読媒体であって、前記コンピュータ可読指令は、前記ソフトウェアアプリケーションに関するメタデータを抽出する指令と、システムに付随する文脈情報を収集する指令と、メタデータおよび文脈情報をサーバー側構成部品に送信する指令と、メタデータおよび文脈情報を調査し、前記ソフトウェアアプリケーションに対する判断を行う指令と、前記判断に関連する情報を含む応答情報をクライエント側構成部品へ送信する指令と、サーバー側構成部品からの応答情報に基づいて、前記ソフトウェアアプリケーションに関して処理を行うか否かについて判断を行う指令とを有することを特徴とするコンピュータ可読媒体。ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについて判断するためのコンピュータ可読指令を含むコンピュータ可読媒体であって、前記コンピュータ可読指令は、前記ソフトウェアアプリケーションに関するメタデータを抽出する指令と、システムに付随する文脈情報を収集する指令と、メタデータおよび文脈情報をサーバー側構成部品に送信する指令と、サーバー側構成部品から、前記ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについての判断に関する応答情報を受信する指令とサーバー側構成部品からの応答情報に基づいて、前記ソフトウェアアプリケーションに関して処理を行うか否かについて判断を行う指令とを有することを特徴とするコンピュータ可読媒体。ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについて判断するためのコンピュータ可読指令を含むコンピュータ可読媒体であって、前記コンピュータ可読指令は、前記ソフトウェアアプリケーションに関するメタデータ、およびシステムに付随する文脈情報を収集する指令と、メタデータおよび文脈情報を調査し、前記ソフトウェアアプリケーションに対する判断を行う指令と、前記判断に関連する情報を含む応答情報をクライエント側構成部品へ送信する指令とを有することを特徴とするコンピュータ可読媒体。ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについて判断するように構成されたコンピュータシステムであって、前記ソフトウェアアプリケーションに関するメタデータを抽出する指令、システムに付随する文脈情報を収集する指令、およびメタデータおよび文脈情報をサーバー側構成部品に送信する指令を含むクライエント側ソフトウェアと、メタデータおよび文脈情報を調査し、前記ソフトウェアアプリケーションに対する判断を行う指令、前記判断に関連する情報を含む応答情報をクライエント側構成部品へ送信する指令、およびサーバー側構成部品からの応答情報に基づいて、前記ソフトウェアアプリケーションに関して処理を行うか否かについて判断を行う指令とを含むサーバー側ソフトウェアとを有することを特徴とすることを特徴とするコンピュータシステム。請求項1に記載の方法であって、抽出されたメタデータは、従来式のシグネチャおよびジェネリックシグネチャからなるグループから選択されたものであることを特徴とする方法。請求項1に記載の方法であって、文脈情報は、最近の感染履歴、システムで実行中のアプリケーション、アクセスしたウェブサイト、クライエント側構成部品の地理的位置、クライエント側構成部品のインターネットプロトコルアドレスIPアドレス、およびクライエント側構成部品の識別子からなるグループから選択されたものであることを特徴とする方法。請求項1に記載の方法であって、抽出されたメタデータおよび文脈情報は、サーバー側構成部品へ送信される前に符号化されることを特徴とする方法。請求項1に記載の方法であって、クライエント側構成部品およびサーバー側構成部品は、同一のコンピュータデバイス上に構成されていることを特徴とする方法。請求項1に記載の方法であって、クライエント側構成部品およびサーバー側構成部品は、別個の遠隔コンピュータデバイス上に構成されていることを特徴とする方法。請求項1に記載の方法であって、クライエント側構成部品は、文脈情報を連続的に収集することを特徴とする方法。請求項2~4のいずれか1に記載のコンピュータ可読媒体であって、抽出されたメタデータは、従来式のシグネチャおよびジェネリックシグネチャからなるグループから選択されたものであることを特徴とするコンピュータ可読媒体。請求項2~4のいずれか1に記載のコンピュータ可読媒体であって、文脈情報は、最近の感染履歴、システムで実行中のアプリケーション、アクセスしたウェブサイト、クライエント側構成部品の地理的位置、クライエント側構成部品のインターネットプロトコルアドレスIPアドレス、およびクライエント側構成部品の識別子からなるグループから選択されたものであることを特徴とするコンピュータ可読媒体。請求項2~4のいずれか1に記載のコンピュータ可読媒体であって、抽出されたメタデータおよび文脈情報は、サーバー側構成部品へ送信される前に符号化されることを特徴とするコンピュータ可読媒体。請求項2~4のいずれか1に記載のコンピュータ可読媒体であって、クライエント側構成部品およびサーバー側構成部品は、同一のコンピュータデバイス上に構成されていることを特徴とするコンピュータ可読媒体。請求項2~4のいずれか1に記載のコンピュータ可読媒体であって、クライエント側構成部品およびサーバー側構成部品は、別個の遠隔コンピュータデバイス上に構成されていることを特徴とするコンピュータ可読媒体。請求項2~4のいずれか1に記載のコンピュータ可読媒体であって、クライエント側構成部品は、文脈情報を連続的に収集することを特徴とするコンピュータ可読媒体。請求項5に記載のコンピュータシステムであって、抽出されたメタデータは、従来式のシグネチャおよびジェネリックシグネチャからなるグループから選択されたものであることを特徴とするコンピュータシステム。請求項5に記載のコンピュータシステムであって、文脈情報は、最近の感染履歴、システムで実行中のアプリケーション、アクセスしたウェブサイト、クライエント側構成部品の地理的位置、クライエント側構成部品のインターネットプロトコルアドレスIPアドレス、およびクライエント側構成部品の識別子からなるグループから選択されたものであることを特徴とするコンピュータシステム。請求項5に記載のコンピュータシステムであって、抽出されたメタデータおよび文脈情報は、サーバー側構成部品へ送信される前に符号化されることを特徴とするコンピュータシステム。請求項5に記載のコンピュータシステムであって、クライエント側構成部品およびサーバー側構成部品は、同一のコンピュータデバイス上に構成されていることを特徴とするコンピュータシステム。請求項5に記載のコンピュータシステムであって、ライエント側構成部品およびサーバー側構成部品は、別個の遠隔コンピュータデバイス上に構成されていることを特徴とするコンピュータシステム。請求項5に記載のコンピュータシステムであって、クライエント側構成部品は、文脈情報を連続的に収集することを特徴とするコンピュータシステム。ソフトウェアアプリケーションが悪意のあるものか否かについて判断するためのコンピュータによる実行される方法であって、複数のソフトウェアアプリケーションが安全である可能性が高いか、または悪意のあるものである可能性が高いについて判断するための分類アルゴリズムを求めるために、学習データの本体部にアクセスするステップと、懸案のソフトウェアアプリケーションから特徴ベクトルを抽出するステップと、特徴ベクトルを分類アルゴリズムに適用するステップと、分類アルゴリズムの結果を用いて、懸案のソフトウェアアプリケーションの処理方法を決定するステップとを有することを特徴とする方法。ソフトウェアアプリケーションが悪意のあるものか否かについて判断するためのコンピュータによる実行される方法であって、複数のソフトウェアアプリケーションが安全である可能性が高いか、または悪意のあるものである可能性が高いについて判断するための分類アルゴリズムを求めるために、学習データの本体部にアクセスするステップと、懸案のソフトウェアアプリケーションに関する特徴ベクトルをクライエントアプリケーションから受信するステップと、特徴ベクトルを分類アルゴリズムに適用するステップと、特徴ベクトルを分類アルゴリズムに適用した結果に基づいて、情報をクライエントアプリケーションに送信するステップとを有することを特徴とする方法。ソフトウェアアプリケーションが悪意のあるものか否かについて判断するためのコンピュータによる実行される方法であって、ソフトウェアアプリケーションに関する特徴ベクトルを抽出するステップと、特徴ベクトルをサーバーアプリケーションに送信するステップと、ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについての分類アルゴリズムに特徴ベクトルを適用した結果に関する情報をサーバーアプリケーションから受信するステップとを有することを特徴とする方法。コンピュータ可読媒体であって、複数のソフトウェアアプリケーションが安全である可能性が高いか、または悪意のあるものである可能性が高いについて判断するための分類アルゴリズムを求めるために、学習データの本体部にアクセスする指令と、懸案のソフトウェアアプリケーションから特徴ベクトルを抽出する指令と、特徴ベクトルを分類アルゴリズムに適用する指令と、分類アルゴリズムの結果を用いて、懸案のソフトウェアアプリケーションの処理方法を決定する指令とを含むことを特徴とするコンピュータ可読媒体。コンピュータ可読媒体であって、複数のソフトウェアアプリケーションが安全である可能性が高いか、または悪意のあるものである可能性が高いについて判断するための分類アルゴリズムを求めるために、学習データの本体部にアクセスする指令と、懸案のソフトウェアアプリケーションに関する特徴ベクトルをクライエントアプリケーションから受信する指令と、特徴ベクトルを分類アルゴリズムに適用する指令と、特徴ベクトルを分類アルゴリズムに適用した結果に基づいて、情報をクライエントアプリケーションに送信する指令とを有することを特徴とするコンピュータ可読媒体。コンピュータ可読媒体であって、ソフトウェアアプリケーションに関する特徴ベクトルを抽出する指令と、特徴ベクトルをサーバーアプリケーションに送信する指令と、ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについての分類アルゴリズムに特徴ベクトルを適用した結果に関する情報をサーバーアプリケーションから受信する指令とを有することを特徴とするコンピュータ可読媒体。請求項23~25のいずれか1に記載の方法であって、分類アルゴリズムは、ソフトウェアアプリケーションが悪意のあるものか否かについての判断における確からしさを示すスコアを生成することを特徴とする方法。請求項23~25のいずれか1に記載の方法であって、分類アルゴリズムを求めるために用いられるデータは、サーバー側構成部品と通信する実際のクライエントシステムの処理履歴から直接的に得られることを特徴とする方法。請求項23~25のいずれか1に記載の方法であって、分類アルゴリズムは、サポートベクターマシン、人工ニューラルネットワーク、決定木、単純ベイズ、およびロジスティック回帰のグループからなるグループから選択された機械学習方法を用いて求めることを特徴とする方法。請求項23~25のいずれか1に記載の方法であって、特徴ベクトルは符号化されることを特徴とする方法。請求項23~25のいずれか1に記載の方法であって、特徴ベクトルは圧縮されることを特徴とする方法。請求項23~25のいずれか1に記載の方法であって、分類アルゴリズムに特徴ベクトルを適用した後、ソフトウェアアプリケーションは、さらに処理するためにサーバー側構成部品に送信されることを特徴とする方法。請求項23~24のいずれか1に記載の方法であって、学習データの本体部は、実際の領域内使用データを含むことを特徴とする方法。請求項23~24のいずれか1に記載の方法であって、分類アルゴリズムは、悪意のあるソフトウェアを特定する他の方法による結果と比較されることを特徴とする方法。請求項26~28のいずれか1に記載の方法であって、分類アルゴリズムは、ソフトウェアアプリケーションが悪意のあるものか否かについての判断における確からしさを示すスコアを生成することを特徴とすることを特徴とする方法。請求項26~28のいずれか1に記載のコンピュータ可読媒体であって、分類アルゴリズムを求めるために用いられるデータは、サーバー側構成部品と通信する実際のクライエントシステムの処理履歴から直接的に得られることを特徴とするコンピュータ可読媒体。請求項26~28のいずれか1に記載のコンピュータ可読媒体であって、分類アルゴリズムは、サポートベクターマシン、人工ニューラルネットワーク、決定木、単純ベイズ、およびロジスティック回帰のグループからなるグループから選択された機械学習方法を用いて求めることを特徴とするコンピュータ可読媒体。請求項26~28のいずれか1に記載のコンピュータ可読媒体であって、特徴ベクトルは符号化されることを特徴とするコンピュータ可読媒体。請求項26~28のいずれか1に記載のコンピュータ可読媒体であって、特徴ベクトルは圧縮されることを特徴とするコンピュータ可読媒体。請求項4~6のいずれか1に記載のコンピュータ可読媒体であって、分類アルゴリズムに特徴ベクトルを適用した後、ソフトウェアアプリケーションは、さらに処理するためにサーバー側構成部品に送信されることを特徴とするコンピュータ可読媒体。請求項26~28のいずれか1に記載のコンピュータ可読媒体であって、学習データの本体部は、実際の領域内使用データを含むことを特徴とするコンピュータ可読媒体。請求項26~28のいずれか1に記載のコンピュータ可読媒体であって、分類アルゴリズムは、悪意のあるソフトウェアを特定する他の方法による結果と比較されることを特徴とするコンピュータ可読媒体。ソフトウェアアプリケーションが悪意のあるものである可能性が高いか否かについて判断するためのコンピュータによる実行される方法であって、ソフトウェアアプリケーションに数学的変換を適用して、ジェネリックフィンガプリントを生成するステップと、前記ソフトウェアアプリケーションについてのフィンガプリントを記録するステップと、汎用演算デバイス上で実行可能な1つまたはそれ以上のステップを適用して、ジェネリックシグネチャが悪意のあるものとみなされるか否かについて判断するステップと、ジェネリックシグネチャが悪意のあるものとみなすべきか否かについての情報をクライエント側構成部品に送信するステップとを有することを特徴とする方法。ソフトウェアアプリケーションが悪意のあるものである可能性が高いか否かについて判断するためのコンピュータによる実行される方法であって、ソフトウェアアプリケーションのジェネリックフィンガプリントをクライエント側構成部品で演算するステップと、ジェネリックフィンガプリントをサーバー側構成部品に送信するステップと、ソフトウェアアプリケーションのジェネリックフィンガプリントに関するサーバー側構成部品からの情報をクライエント側構成部品で受信するステップと、サーバー側構成部品から受信した情報に基づいて、ジェネリックフィンガプリント以外の方法によりソフトウェアアプリケーションが安全であるとみなされた場合にソフトウェアアプリケーションを無視するステップ、ソフトウェアアプリケーションが安全でないとみなされた場合にソフトウェアアプリケーションをシステムから排除するステップ、およびソフトウェアアプリケーションのさらなる処理および解析のために、異なるサーバー側構成部品にソフトウェアアプリケーションを送信するステップからなるグループから選択された予定した一連の処理を行うステップとを有することを特徴とする方法。ソフトウェアアプリケーションが悪意のあるものか否かについて判断するためのコンピュータによる実行される方法であって、aソフトウェアアプリケーションに関する特徴ベクトルを抽出するサブステップ、ソフトウェアアプリケーションに関するメタデータを抽出し、ソフトウェアアプリケーションがインストールされるシステムに付随する文脈情報を収集するサブステップ、およびソフトウェアアプリケーションに関するジェネリックフィンガプリントを算出するサブステップのうち、2つまたはそれ以上のサブステップを実施するステップと、b上記ステップaの結果として得られた情報をサーバーアプリケーションに送信するステップと、c上記ステップbで送信された情報に少なくとも部分的に基づいて、ソフトウェアアプリケーションが悪意のあるものか否かについての判断に関する情報をサーバーアプリケーションから受信するステップと、dサーバー側構成部品から受信した情報に基づいて、ソフトウェアアプリケーションに対する処理を行うステップとを有することを特徴とする方法。ソフトウェアアプリケーションが悪意のあるものか否かについて判断するためのコンピュータによる実行される方法であって、aソフトウェアアプリケーションから特徴ベクトル、ソフトウェアアプリケーションに関するメタデータおよびソフトウェアアプリケーションがインストールされるシステムに付随する文脈情報、およびソフトウェアアプリケーションに関するジェネリックフィンガプリントのうち、2つまたはそれ以上をサーバーアプリケーションで受信するステップと、b特徴ベクトル情報をクライエントアプリケーションから受信すると、分類アルゴリズムで求めた機械学習を特徴ベクトルに適用し、cソフトウェアアプリケーションに関するメタデータおよびシステムに関する文脈情報をクライエントアプリケーションから受信すると、メタデータおよび文脈情報を調査するステップと、dソフトウェアアプリケーションのジェネリックシグネチャをクライエントアプリケーションから受信すると、ジェネリックシグネチャが悪意のあるものとみなすべきか否か判断するステップと、eクライエントアプリケーションに関連して、ソフトウェアアプリケーションが悪意のあるものとみなすべきか否か判断するステップと、fソフトウェアアプリケーションが悪意のあるものとみなすべきか否かの判断についての情報をクライエントアプリケーションに送信するステップとを有することを特徴とする方法。ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについて判断するためのコンピュータ可読指令を含むコンピュータ可読媒体であって、前記コンピュータ可読指令は、aソフトウェアアプリケーションに関する特徴ベクトルを抽出するサブ指令、ソフトウェアアプリケーションに関するメタデータを抽出し、ソフトウェアアプリケーションがインストールされるシステムに付随する文脈情報を収集するサブ指令、およびソフトウェアアプリケーションに関するジェネリックフィンガプリントを算出するサブ指令のうち、2つまたはそれ以上のサブ指令を実施する指令と、b上記指令aの結果として得られた情報をサーバーアプリケーションに送信する指令と、c上記ステップbで送信された情報に少なくとも部分的に基づいて、ソフトウェアアプリケーションが悪意のあるものか否かについての判断に関する情報をサーバーアプリケーションから受信する指令と、dサーバー側構成部品から受信した情報に基づいて、ソフトウェアアプリケーションに対する処理を行う指令とを有することを特徴とするコンピュータ可読媒体。ソフトウェアアプリケーションが安全なものか、または悪意のあるものかについて判断するためのコンピュータ可読指令を含むコンピュータ可読媒体であって、前記コンピュータ可読指令は、aソフトウェアアプリケーションから特徴ベクトル、ソフトウェアアプリケーションに関するメタデータおよびソフトウェアアプリケーションがインストールされるシステムに付随する文脈情報、およびソフトウェアアプリケーションに関するジェネリックフィンガプリントのうち、2つまたはそれ以上をサーバーアプリケーションで受信する指令と、b特徴ベクトル情報をクライエントアプリケーションから受信すると、分類アルゴリズムで求めた機械学習を特徴ベクトルに適用する指令と、cソフトウェアアプリケーションに関するメタデータおよびシステムに関する文脈情報をクライエントアプリケーションから受信すると、メタデータおよび文脈情報を調査する指令と、dソフトウェアアプリケーションのジェネリックシグネチャをクライエントアプリケーションから受信すると、ジェネリックシグネチャが悪意のあるものとみなすべきか否か判断する指令と、eクライエントアプリケーションに関連して、ソフトウェアアプリケーションが悪意のあるものとみなすべきか否か判断する指令と、fソフトウェアアプリケーションが悪意のあるものとみなすべきか否かの判断についての情報をクライエントアプリケーションに送信する指令とを有することを特徴とするコンピュータ可読媒体。以下の発明の詳細な説明において、本発明をより完全に説明するために、数多くの詳細な特徴について説明する。しかし、当業者には明らかなように、特定の詳細な特徴を備えていなくても、本発明を実施することができる。換言すると、本発明を明確に説明するために、広く知られた構造体およびデバイスについては、詳細には説明せず、ブロック図の形態で示す。以下の発明の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算に関するアルゴリズムおよび象徴的表現を用いて説明する。他の当業者に対して本発明の実質的内容を最も効率的に教示するために、こうした説明および表現は、データ処理技術における当業者が用いる意義で行われる。複数のステップは、物理量の物理的操作を必要とするものである。必ずという訳ではないが、通常、これらの物理量は、記憶、転送、組み合わせ、比較、その他の操作の対象となり得る電気的または磁気的な信号の形態を有する。時には、主に共通の利用を理由に、これらの信号を、ビット、値バリュー、構成要素、シンボル、キャラクタ、用語、数字等として参照する。ただし、これらの用語および類似する用語のすべては、適当な物理量に付随するものであり、これらの物理量に付与された単なる便宜上のラベルに過ぎないという点に留意されたい。以下の詳細な説明において特に言及がない限り、明細書全体において、処理ステップprocessing、演算ステップcomputing、計算ステップcalculating、判断ステップdetermining、表示ステップdisplaying等の用語を用いて、コンピュータシステムまたは同様の電子演算デバイスを説明するが、これは、コンピュータシステムのレジスタおよびメモリ内で電子的な物理量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタ、あるいは他の情報記憶デバイス、通信デバイス、または表示デバイス内の物理量として同様に表される他のデータに変換するものである。本発明は、同様に、処理を実行する装置に関する。この装置は、必要な目的のために特に構成されるものであってもよいし、コンピュータに記憶されたコンピュータプログラムにより選択的に起動され、再構成される汎用コンピュータを含むものであってもよい。こうしたコンピュータプログラムは、コンピュータシステムバスに接続されるコンピュータ判読可能記憶媒体に記憶され、コンピュータ判読可能記憶媒体として、限定するものではないが、フロッピーディスク、光ディスク、CD-ROM、光磁気ディスク、リードオンリーメモリROM、ランダムアクセスメモリRAM、EPROM、EEPROM、磁気カード、光カード等の任意のタイプのディスク、または電気的指令を記憶するのに適した任意のタイプの媒体が含まれる。以下の説明は、本質的に、任意の特定のコンピュータまたは他の装置に関するものではない。本明細書の開示内容に基づいたプログラムを有する、さまざまな汎用システムを用いることができ、必要な方法ステップを実行するために、より特化した装置を構成することは有用であることを示すことができる。これらのさまざまなシステムに必要な構成は、以下の説明から明らかとなる。さらに本発明は、任意の特定のプログラム言語を用いて表現されるものではない。さまざまなプログラム言語を用いて、ここに記載される教示内容に係る本発明を実行することができる。マシン判読可能媒体は、マシンたとえばコンピュータで判読可能な形態を有する情報を記憶または通信するための任意の機構を有する。マシン判読可能媒体は、たとえばリードオンリーメモリROM、ランダムアクセスメモリRAM、磁気ディスク記録媒体、光記録媒体、フラッシュメモリデバイス、あるいは電気的、光学的、音響学的、または他の形態の伝播信号たとえば搬送波、赤外線信号、デジタル信号等を記憶する媒体であってもよい。以下の説明において、当業者に一般に知られた用語について言及する。当該技術分野において、マルウェアの用語は、悪意のあるソフトウェアアプリケーションを意味する。こうしたアプリケーションは、数多くの不正な目的を有することがある。たとえば、マルウェアを用いて、数多くの不正行為を実行することができる。これらの不正行為は、限定するものではないが、被害者のマシンからデジタル信号を窃取する行為、被害者のマシンを犯行に用いて、他の不正行為を行う行為たとえば未承諾の電子メールメッセージまたはスパムを送信する行為、被害者のマシンを遠隔制御する行為、および被害者のマシンの正常な動作を阻害する行為を含む。当該技術分野において、コンピュータウィルスは、一般に、悪意のあるソフトウェアの1つの具体例であると考えられている。コンピュータウィルスに加え、当該技術分野における他のタイプのマルウェアは、トロイの木馬、ワーム、ダウンローダ、ミスリーディングアプリケーションを含む。アプリケーションの悪意は主観的なものと理解され、しばしばユーザは依存し、通常、明確に定義された一連のルールを有する。本明細書の目的のため、悪意のあるアプリケーションは、ユーザに不快感を与えるアプリケーションを意味するものと理解すべきである。当該技術分野において、誤検出偽陽性検出の用語は、本来は適法なアプリケーションが誤って悪意のあるものと認定される状況を意味するものである。同様に、正検出真陽性検出の用語は、悪意のあるアプリケーションが正しく悪意のあるものとして認定される状況を意味するものである。偽陽性率とは、安全なアプリケーションがアンチマルウェア技術により間違って悪意のあるものと認定される確率尤度を意味する。真陽性率とは、悪意のあるアプリケーションがアンチマルウェア技術により正しく悪意のあるものとして認定される確率尤度を意味する。したがって、アンチマルウェアソフトウェアは、偽陽性率を低く維持して、高い真陽性率を実現することを目的とする。したがって、一般に、2つの確率の間には、逆のトレードオフの関係二律背反が成立する。あるアンチマルウェア技術がきわめて攻撃的で、数多くの脅威を検出するものである場合、偽陽性率が高くなる可能性がより大きくなる。したがって、アンチマルウェア技術が控えめで、より少数の脅威を検出するものである場合、偽陽性率が低くなることがある。当該技術分野において、真陽性率はときどき正検出率と呼ばれることがある。しかし、偽陽性率および偽陽性率は、データサンプルを用いて、一般に、概算により求められたものであることに留意されたい。アンチマルウェアの供給者は、偽陽性検出率と真陽性検出率との間の好適なトレードオフを提供しようとする。適法で重要なビジネスアプリケーションを誤って悪意のあるものと判断すると、顧客に対して甚大な財務上の損害を与えかねない。したがって、偽陽性検出はきわめて不適当である。いくつかの実施例では、偽陽性検出があまりにも適切でないため、供給者は、偽陽性検出率をきわめて小さく維持するために、低い真陽性検出率に甘んじることになる。当該技術分野において、比較的に短い値の順列シーケンスであるシグネチャを用いて、アプリケーションが悪意のあるものか否かを特定することができる。最も一般的な変形において、ソフトウェアアプリケーション全体に対して付与される変換値として、シグネチャを計算することである。当該技術において、シグネチャは、通常、マルウェアの既知の一部分について計算される。シグネチャは、クライエントのシステム内に転送されるか、またはサーバー内に記憶される。クライエントシステムがソフトウェアの新規な部分を確認すると、そのソフトウェア上でシグネチャを計算し、クライエントシステムのローカルデータ記憶媒体をチェックし、またはサーバーシステムに問い合わせ照会することにより、そのシグネチャがマルウェアソフトウェアの既知の一部分と一致するか否か判断する。当該技術分野において、シグネチャは、固有のものであってもよいし、一般的なものであってもよいことを理解されたい。2つのソフトウェアアプリケーションが同一の固有のシグネチャを有する場合、相当の確率尤度で、これら2つのアプリケーションが完全に同一のものである。当該技術分野における固有のシグネチャの一つの具体例は、SHA-256のアプリで算出するハッシュ値である。一般的なシグネチャは、固有のシグネチャとはことなるものであり、所与のアプリケーションの一連の変形アプリケーションは依然として同じシグネチャを有する可能性がある。あるアプリケーションについて検討すると、これに表面的に変更がなされた場合、固有のシグネチャが元のアプリケーションに対して計算されたものと相当に異なるのに、このアプリケーションに対するジェネリックシグネチャは、依然として、元のアプリケーションのものと同一である場合がある。当該技術分野におけるジェネリックシグネチャの一例はPEハッシュpehashである。当該技術分野におけるジェネリックシグネチャの別の例は、SSディープハッシュssdeepである。当該技術分野において、フィンガプリントの用語は従来式のシグネチャと関連付けられ、ファジーフィンガープリントの用語はジェネリックシグネチャと関連付けられることがよくある。ファジーフィンガープリントは、ソフトウェアアプリケーションを入力値とし、好適には短い象徴的なシーケンスを出力する変換関数である。理想的には、ファジーフィンガープリントは2つの素性を有する。第1には、2つのアプリケーションは一方のアプリケーションに表面的なわずかな変更を加えて他方のアプリケーションを作成した場合、本質的にきわめて類似しており、これらのアプリケーションのそれぞれのファジーフィンガープリント値は同一となるはずである。第2には、2つのアプリケーションが相当に異なる場合には、理想的には、これらのアプリケーションのファジーフィンガープリント値は異なるはずである。こうした素性は理想的なものであり、両方の素性が複数の事例において成立しない場合であっても、ファジーフィンガープリント値は、なお有用である。ファジーフィンガープリント値は、ジェネリックシグネチャの一例であり、ジェネリックシグネチャを計算するすべてのアプローチにより、対応するファジーフィンガープリント値が得られる訳ではない。特に、ファジーフィンガープリント値を用い、あるアプリケーションのファジーフィンガープリント値が複数の既知の悪意のあるソフトウェアアプリケーションに与えられた複数のファジーフィンガープリント値と一致するか否かを確認して、そのアプリケーションが悪意のあるものか否かを判断することができる。わずかに異なるアプリケーションが同一のファジーフィンガープリント値を有し得るので、ファジーフィンガープリント値として機能し得る。当該技術分野におけるファジーフィンガープリント値の一例は、PEハッシュ値PEhashである。当該技術分野におけるファジーフィンガープリント値の別の例は、SSディープハッシュ値SSdeepである。当該技術分野において、コンビクション確信の用語は、ソフトウェアの一部がクライエントシステムに対して悪意のあるものと判断された状況を意味するものである。当該技術分野において、デジタルシグネチャデジタル署名の用語は、公開鍵暗号作成法を用いて、1つのファイルから比較的に短い文字列を計算するための標準的な技術を意味するものである。ファイルから文字列を計算する暗号化するためには、いわゆる個人鍵プライベート鍵を利用する必要がある。公開鍵認証を用いて、ファイルの意図したデジタル署名が正しく計算されたか否か判断することができる。個人鍵の知識がなければ、復号化すべき署名を有効に計算することが導出不可能なものとして、署名方式のセキュリティを確保するものである。当該技術分野においては、このデジタル署名と、上記説明した悪意のあるアプリケーションを検出するタイプのシグネチャをともに署名シグネチャと呼ぶが、両者を混同してはならない。以下の説明において、機械学習の技術分野における当業者に知られた用語を用いる。最も単純な態様において、機械学習技術を用いて、オブジェクトを複数のセットからなる1つに分類することができる。アンチマルウェアの解決手段に関連して、機械学習技術を用いて、所与のソフトウェアアプリケーションが悪意のありそうか、安全なものでありそうか判断し、分類に対する悪意ありとする確からしさ判断確信度を反映するスコア得点を生成することができる。以下の説明において、本発明の詳細説明が不明瞭となるのを避けるために、機械学習技術に関連する用語体系について、ソフトウェアアプリケーションが悪意のあるものか、安全なものであるかについての分類のアプリケーションを参照しつつ説明する。第1に、機械学習アプローチは、当該技術分野においては学習フェーズtrainingphaseとして知られるものを含む傾向がある。悪意のあるものか、安全なものであるかについての分類ソフトウェアアプリケーションに関連して、まず学習コーパスtrainingcorpusを構築する。学習コーパスは、通常、一連のソフトウェアアプリケーションを有する。この一連のアプリケーションのそれぞれには、任意的には、その素性特性に関して、たとえば安全なもの、悪意のあるもの、または未知のもの等のラベルが付与されている。このラベルは、手動による解析、またはその他の独立した、おそらくはより高価な手段を用いて判定することができる。ラベル付けされたデータを入手することはより高価であるものと理解されるが、未知のサンプルはより少数であることが好ましい。さらにコーパスは、最終的には機械学習技術を適用する現実世界のシナリオを表現するものであることが好ましい。たとえばソフトウェアアプリケーションの分類に関して、コーパス内のアプリケーションが通常、エンドユーザのコンピュータシステム上で確認される可能性のあるアプリケーションを反映し、とりわけ機械学習技術を用いて分類されるコンピュータシステム上のファイルを反映することが好ましい。学習フェーズの最初のプロセスにおいて、特徴ベクトルが各ソフトウェアアプリケーションから抽出される。特徴ベクトルは、コーパス内のソフトウェアアプリケーションの顕著な特徴を表現する一連の値である。これらの値は、ソフトウェアアプリケーションが悪意のあるものか、安全なものか、いずれの傾向が大きいかについて判断する上で、特に関連性が深い有意義なものであることが期待される。たとえば1つの特徴値は、ファイルがデジタル署名されたものであるか否かを示す単一のバイナリデジット0または1であってもよい。この特徴は、実際には、違法なソフトウェアアプリケーションがデジタル署名されることはほとんどないので、関連性が深いものとなり得る。別の有意義な特徴は、ソフトウェアアプリケーションを含むファイルサイズである。この特徴は、悪意のあるソフトウェアアプリケーションが安全なソフトウェアアプリケーションよりファイルサイズが小さい傾向があるので、関連性が深いものとなり得る。重要なことは、悪意のあるソフトウェアアプリケーションか、安全なものかを判断する上で、任意の単一の特徴が決定的な証拠とはなり得ないが、複数のこうした特徴値を確認することが決定的な証拠となり得る点に留意するである。数多くのアプリケーション事例において、機械学習システムで利用される特徴の種別は、完全自動化手段を用いて求められるというより、しばしば特定の専門家の判断により決定される。たとえば、ファイルがデジタル署名されたか否かを知ることが有用な情報であると判断する上で、専門家の判断を必要とする場合がある。特徴ベクトルが学習コーパスから抽出されると、これらのベクトルは、任意のファイル自体に付随するラベルとともに、学習フェーズを実現するアルゴリズムに供給される。学習フェーズの目的は、自動的にモデルを算出することにある。モデルは、入力値が特徴ベクトルで、出力値が分類である数学的関数を効率的に符号化するものである。マルウェアを検出するための機械学習技術を用いることに関連して、モデルの出力値は、安全なものまたは悪意のあるものというバイナリラベルとなり得る。特定の機械学習モデルは、ラベルの確からしさ悪意ありと判断する確信度を反映するスコアを生成することもできる。たとえば出力値は悪意尤度が0.95の形態を有する符号化であってもよく、この場合、モデルは特徴ベクトルが95の確率で悪意のあるソフトウェアアプリケーションであると確信するということを意味するものである。機械学習アルゴリズムは、理想的には、分類器を生成する必要があり、分類器は、学習例で得られたラベル確からしさに合理的に一致し、新たなアプリケーション事例に対して生成される合理的な尤度確率を有するものである。実際には、モデルは、素性が知られていないアプリケーション事例に対して評価されることが予定されているので、合理的な尤度を生成することは重要なことである。当該技術分野における特定の機械学習アルゴリズムは、単純ベイズアルゴリズム、人工ニューラルネットワーク、決定木DecisionTrees、サポートベクターマシン、ロジスティック回帰、近傍法、等を有する。分類器の用語を用いて、モデルを記述することもできる。たとえばサポートベクターマシン分類器を意味する場合もある。一旦、分類器/モデルが確立されると、これを用いて、コンピュータまたはコンピュータネットワークに実際に提供されたソフトウェアアプリケーションに関する新しい事例を評価することができる。マルウェアの検出に関して、クライエントシステムは、まずソフトウェアアプリケーションに付随する特徴ベクトルを抽出し、その特徴ベクトルをモデルに適応させて、その素性、および任意的には尤度確からしさまたは悪意ありと判断する確信度の値を求める。最後に、この情報に基づいて特定のポリシー手順を適用する。実際の分類化プロセスは、クライエントコンピュータで局在的に行う必要はない。むしろ遠隔サーバーコンピュータ上で実行することができ、この場合、クライエントコンピュータは、特徴ベクトルの符号をサーバーコンピュータに送信する。そしてサーバーコンピュータは、分類器を用いて、特徴ベクトルを評価し、関心のあるソフトウェアアプリケーションの良否について対応する判定を行う。最終的な分類に関するポリシーは、尤度確からしさまたは悪意ありと判断する確信度の値を含む場合には、複雑なものとなり得る。たとえばシステムがきわめて危険な状態にあるか、またはきわめて影響を受けやすい情報を含むとき、ソフトウェアアプリケーションが安全であるという可能性が高くなければ、そのソフトウェアアプリケーションを遮断してもよい。他方、システムが影響を受けやすくないとき、反対の手順を取ることができる。すなわち特に、ソフトウェアアプリケーションが悪意のあるものである可能性が高い場合に、そのソフトウェアアプリケーションを遮断する。以下の説明において、当業者に知られたログ情報コンピュータの履歴情報の概念を用いる。ログ情報とは、所与のシステム上のトランザクション変更処理およびアクション動作に関する履歴情報である。たとえばシステムがウェブサーバーである場合、ログには、システムに接続された複数のクライエントコンピュータに関する状況、接続回数、および処理内容が含まれる。ログを用いて、所与のシステム上で起こったことについて、合理的な概要を構成することができる。サーバー側構成部品を用いて、所与のソフトウェアアプリケーションの素性を所望するクライエントコンピュータを支援するアンチウィルスシステムに関連して、イベント履歴エントリは、必ずしも限定するものではないが、以下のものを含む。すなわちイベント履歴エントリは、同じクライエントコンピュータからの個別のトランザクションをリンクするために用いられるクライエントコンピュータの識別子、クライエントコンピュータが特定のアプリケーションに対する素性を要求した時刻を特定するタイムスタンプ、インターネットプロトコルまたはIPアドレスにより特定されるクライエントコンピュータの特定、素性が要求されたファイルの説明たとえばMD5やSHA-256等のファイルフィンガプリントにより符号化されたファイルの説明、アプリケーションに付随する任意のアンチウィルスフィンガプリント限定するものではないが、従来式のフィンガプリントおよび一般的なフィンガプリントを含む、懸案のソフトウェアアプリケーションの属性限定するものではないが、懸案のソフトウェアアプリケーションの機械学習特徴ベクトル、懸案のソフトウェアアプリケーションに関してその素性の判定を支援する文脈データコンテキストデータ、サーバー側構成部品の応答限定するものではないが、ソフトウェアアプリケーションに最終的に付与された素性、ソフトウェアアプリケーションが以前には存在しなかったか、フィールドで共有されるようになったソフトウェアアプリケーションに関する追加的に記述する予備的素性、ソフトウェアアプリケーションについてサーバーコンピュータがクライエントコンピュータに対して行った提案、および最終的な素性を補充するプロセスで用いられたさまざまな副次的な技術により付与された素性、および応答が有効である時間を示す反応に対する保持時間または生存時間TTLがある。サーバーコンピュータに対する複数のクエリ問い合わせは、複雑で多面的なものとなり得るので、履歴エントリには、クエリのタイプを特定するエントリが含まれることがある。たとえば、サーバーコンピュータに対する1つのクエリにおいて、クライエントコンピュータは、基本的なフィンガプリントのみを有することがある。同一ファイルに対する後続のクエリにおいて、クライエントコンピュータは、追加的な情報を含むことがある。これら2つのクエリは解析するとき、同一のクライエントコンピュータが同一のファイルに対して2つのクエリを行った事実をリンクさせやすくできるが、異なるクエリの種別により独立して記録してもよい。履歴は、複数のクライエントコンピュータから送信される複数の履歴エントリを含む。開示される発明において、展開される機械学習技術を履歴データ用いて学習させる。開示される発明の目的のため、クライエントコンピュータ上で実行される2組のアプリケーションを区別することは有益である。懸案のアプリケーションなる用語は、クライエントコンピュータシステム上のユーザまたはアンチマルウェア構成部品が当該アプリケーションの素性特性に興味がある場合において、クライエントコンピュータシステム上に搭載されているソフトウェアアプリケーションまたは搭載しようとしているソフトウェアアプリケーションを参照するために用いられる。懸案のアプリケーションに加えて、本明細書は、たとえば懸案のアプリケーションの実行中に別に実行する可能性のある他のタイプのソフトウェアアプリケーションについて記載する。こうしたソフトウェアアプリケーションは、限定するものではないが、ウェブブラウザ、ピアツーピアファイル共有アプリケーション、銀行取引アプリケーション、またはPDFリーダを含むものであってもよい。悪意のあるアプリケーションは、ピアツーピアネットワークを介して送信されることが多いので、懸案のアプリケーションの実行中に、ピアツーピアファイル共有アプリケーションを実行させようとすることは、懸案のアプリケーションが悪意のあるものである可能性を若干増大させるものと指摘されている。同様のラインの中で、銀行取引アプリケーションを実行させようとする場合、懸案のアプリケーションが悪意のあるものか否かにかかわらず、懸案のアプリケーションの侵入を妨害し、またはその処理を一時停止させることは有意義である。なぜなら、懸案のアプリケーションが悪意のあるものであるリスクが小さい場合であっても、金銭的なデータが危険に晒され、または窃取されたときのコストに見合うものではないためである。こうした検討事項は、懸案のアプリケーションが悪意のある可能性に連動する単なる信号である点に留意すべきである。個別に事案を検討すると、こうした信号は、当該アプリケーションに対してアクションを取る根拠を与えるには十分でない可能性がある。しかし、懸案のアプリケーションに関する情報に加え、こうした複数の信号が、懸案のアプリケーションが悪意のあるイベントであるか否かについてのより決定的な証拠を提供することができる。こうした信号を特徴ベクトルの属性として見ることにより、機械学習方法を上記信号に適用することができる。ジェネリックシグネチャの実施形態本発明に係る1つの実施形態において、クライエント側構成部品およびサーバー側構成部品は、以下のように機能する。サーバー側構成部品は任意的な初期化フェーズで機能し、既知の悪意のあるファイルおよび安全なファイルの両方に対するファジーフィンガープリント値を計算する。これらの結果は、従来型データベースやカード型データベース等のデータ記憶装置に記憶される。ファジーフィンガープリント値を計算するためのアルゴリズムは、たとえばPEハッシュ値PEhashやSSディープハッシュ値SSdeep等の当該技術分野において知られたものであってもよい。択一的には、人手を要するアルゴリズムまたは専用のアルゴリズムを利用してもよい。フィンガープリントの態様の選択すなわちクライエント側構成部品およびサーバー側構成部品が用いる同一のアルゴリズムが一致している限り、フィンガープリントの態様の選択が、発明の具体化に影響を与えることはない。ファジーフィンガープリント値が決定的に悪意のあるものたとえば、これと同一のフィンガープリント値を有する数多くの既知の悪意のあるアプリケーションが存在し、これと同一のフィンガープリント値を有する安全なアプリケーションがまったく存在しないとの十分な証拠があるとサーバー側構成部品が判断した場合、そのファジーフィンガープリントを決定的に悪意のあるものとラベル付けすることができる。この判定を支援するために、サーバー側構成部品は、安全なものであるか、その属性に基づいて安全なものであると確信される複数のアプリケーションに関するファジーフィンガープリントを含むデータ構造を維持することができる。データ構造において確認されたファジーフィンガープリントを有する任意のソフトウェアアプリケーションは、決定的に悪意のあるものとラベル付けしないことが好ましい。この素性は、クライエントコンピュータへ直接送信されるか、サーバー側構成部品自体に記憶してもよいし、クライエントコンピュータからクエリ問い合わせがあったとき、クライエントコンピュータが利用できるようにしてもよい。いくつかの証拠はあるが、依然として決定的な証拠がないとサーバー側構成部品が判断した場合たとえば、これと同一のフィンガープリント値を有する既知の安全なアプリケーションが存在するが、処理して得たフィンガープリント値を有する1つまたはそれ以上の悪意のあるアプリケーションが存在する場合、サーバー側構成部品は、そのファジーフィンガープリントを悪意のある可能性があると判断することができる。また、いくつかの証拠はあるが、依然として決定的な証拠がないとサーバー側構成部品が判断した場合たとえば、これと同一のフィンガープリント値を有する既知の安全なアプリケーションが存在する場合、サーバー側構成部品は、そのファジーフィンガープリントを安全なものであると判断することができる。同様に、安全なアプリケーションおよび悪意のあるアプリケーションの両方が特定のファジーフィンガープリントを有する場合、サーバー側構成部品は、そのファジーフィンガープリントを矛盾があるもの判断することができる。クライエントコンピュータは、新たなファイルに遭遇したとき、まず任意的に当該技術分野における標準的技術を用いて、そのファイルが脅威を与えるか否かについて判断することができる。そのようなステップは、任意的には、アプリケーションの従来式のフィンガープリント値たとえばSHA-2、MD5、および当該技術分野における他の既知の技術を計算するステップと、任意的に、ファイルが悪意のあるものであるか否かについて、可能ならば、遠隔サーバーコンピュータの支援を受けて判断するために用いられる他のメタデータを収集するステップを含む。クライエントコンピュータは、アプリケーションのファジーフィンガープリントを計算する。任意的には、クライエントコンピュータは、ローカル記憶媒体にあるファジーフィンガープリントを検索して、アプリケーションが悪意のあるものであるか否か判断し、悪意のあるものと判断した場合、適当な処理を行う。択一的には、クライエントコンピュータは、遠隔サーバーコンピュータに、ファジーフィンガープリント値、およびアプリケーションに関して収集された他のすべてのデータ従来式のフィンガープリント値およびその他のファイルのメタデータとともにクエリ問い合わせを送信する。その後、サーバーコンピュータは、受信した情報を記録することができる。サーバーコンピュータが当該アプリケーションに関して受信した情報とともにすでに記録したであろう情報を用いてフィンガープリント値が悪意のあるものであると決定的に判定された場合、サーバーコンピュータは、この素性特性をクライエントコンピュータに通知することができる。クライエントコンピュータは、適当な処理を行うことができる本発明の1つの実施形態において、この処理は、当該アプリケーションを完全に削除するか、ユーザのコンピュータへのインストールを阻止することを含む。。フィンガープリントが悪意のある可能性があると判定された場合、サーバーコンピュータは、この素性特性をクライエントコンピュータに通知することができる。クライエントコンピュータは、適当な処理を行うことができる本発明の1つの実施形態において、この処理は、当該ソフトウェアのコピーを、さらに解析するためサーバーに、コンピュータへ送信することを含む。。本発明に係る1つの実施形態において、サーバーコンピュータは、所与のアプリケーションが悪意のあるものであるリスクを低減するために、数多くの安全装置を整備することができる。これらの安全装置は、限定するものではないが、以下のものを含む。第1に、より直接的な手段たとえば、安全なソフトウェアアプリケーションの既知のホワイトリスト中にあるアプリケーションと一致する、SHA-256などの従来式のフィンガープリントを用いて、当該アプリケーションが安全であると判断された場合、サーバーコンピュータは、ファジーフィンガープリントの素性を書き換えることができる。第2に、ファジーフィンガープリントの利用を抑制することができる。たとえば、サーバーコンピュータは、このフィンガープリントに関する確からしさ悪意ありと判断する確信度を控えめな適度なものに制限することができる。同様に、ファジーフィンガープリントに基づく確からしさを、懸案のアプリケーションの出現頻度が所定の閾値より小さくなる状況に制限することができる。このシナリオにおいて、システムにパラメータNを導入することができ、当該アプリケーションがN個未満のシステムに出現すると考えられる場合に限り、悪意のあるものと判断してもよい。このように制限することにより、誤検出があった場合の誤検出による損害を少なくとも抑制することができる。悪意のあるファイルは、安全なファイルより出現頻度が小さいという傾向があることが知られている。したがって、ファイルの出現頻度が高い場合、悪意のあるファイルであるとの判断は、より注意深く行う必要がある。第3に、ファジーフィンガープリントを用いて、ファイルが悪意のあるものと判断することを、悪意のある可能性が若干より高い特定の分類ファイルに制限することができる。たとえば、データサイズがより小さいファイルは、より大きいファイルに比して、悪意のある可能性がより高いことが知られている。これは、悪意のある第三者にとって、より小さいファイルを、被害者のコンピュータマシンにうまく送信する可能性がより高いためである。当該技術において、デジタル署名されたファイルは、デジタル署名されていないファイルに比して、悪意のある可能性がより低いことも知られている。他のファイル属性に対しても同様の検討を行うことができる。したがって、本発明の1つの実施形態では、任意的ではあるが、特に、データサイズが所定閾値より小さく、デジタル署名されていないソフトウェアアプリケーションに対して、確からしさ悪意ありと判断する確信度に基づいたファジーフィンガープリント値を抑制することができる。第4に、特定の状況の下では、確からしさに基づいたファジーフィンガープリントを保存することができる。本発明の1つの実施形態では、あるコンピュータマシンが特定の脅威に感染しやすい場合たとえば過去において、このタイプの脅威に遭遇したことがある場合や、特定の脅威に付随した地理的領域内にある場合、こうした場合にファジーフィンガープリントを利用することができる。本発明の1つの実施形態では、サーバーコンピュータは、特定のファジーフィンガープリントが悪意のあるものか、または安全なものかに対応するか否かについて、独立して判断することができる。この場合、サーバーコンピュータは、特定のファジーフィンガープリントを有する既知のマルウェアの集合体から、複数のソフトウェアアプリケーションの有無等に関する第三者の情報に依拠することができる。択一的には、サーバーコンピュータは、特定のファジーフィンガープリントを有する安全なマルウェアの集合体から、複数のソフトウェアアプリケーションの有無等について検索することができる。最後に、サーバーコンピュータは、ユーザコンピュータ履歴データを調査して、当該アプリケーションが悪意のあるものか、または安全なものかについて、その可能性を判断することができる。とりわけ、特定のファジーフィンガープリントを有するアプリケーションがきわめて一般的なものであるが、悪意のあるものとして知られたものではない場合、当該アプリケーションが実際に安全なものである可能性は通常高い。この場合、この同一のファジーハッシュ値を有するアプリケーションを悪意のあるものと判断することには、リスクがある。本発明に係る1つの態様を説明するために実施例1を示す。この実施例は、本発明に係る1つの実施可能なワークフローを説明するためのもので、本発明を明確に理解しやすくするためことを意図したものである。すなわち本発明を不明確にするのを回避するために実施例1では説明しないが、本発明の全体の範疇に含まれる変形例が数多くあるので、実施例1により本発明を制限する意図はまったくない。実施例1において、クライエントコンピュータおよびサーバーコンピュータが設けられる。新たなソフトウェアアプリケーションがクライエントコンピュータに提供される。クライエントコンピュータは、このファイルに対してジェネリックシグネチャおよび特定シグネチャの両方を計算し、サーバーコンピュータに送信する。サーバーコンピュータは、これら両方のフィンガプリント値を認証する。サーバーコンピュータは、これら2つの情報フィンガプリント値のみから、ソフトウェアアプリケーションの最終的な良否判定既知のブラックリストまたはホワイトリストに含まれるものであるかの判定を行い、この素性特性を返答する。これら2つの情報のいずれかから、決定的な判定を得ることができない場合、サーバーコンピュータは、クエリ検索要求で送信されたジェネリックフィンガープリントに関して過去に認識されたすべての特定シグネチャを調べる。複数の異なるファイルが同一のジェネリックフィンガープリントを有し得るので、同一のジェネリックフィンガープリントに付随し得る複数の特定フィンガプリントを共有することがある点に留意されたい。簡略化すると、クエリの中に次のフィンガプリント、すなわちGSO,GS1,GS2,GS3,...,GS9が存在する場合を考慮されたいS1~S9は異なる特定フィンガプリントであり、これらのすべてが同一のジェネリックフィンガープリントGに対応するものである。。ここで、これらの特定フィンガプリントの閾値が悪意のあるものと仮定するたとえばSO~S7がすべて既知のマルウェアに対応するものと仮定する。さらに、過去に確認されたこれらの特定フィンガプリントはいずれも既知の安全なファイルホワイトリストに含まれるファイルに付随するものではないと仮定する。換言すると、特定フィンガプリントS8,S9は、これまで知られていない素性を有するすなわち特定フィンガプリントS8,S9は、悪意のあるもの、または安全なものであるか不明で、これまで誰も良否判定を行っていない。。この場合、バターンが現れる。1つのジェネリックフィンガープリントGに付随する特定フィンガプリントの大多数は、悪意のあるものであるように見える。このとき、このジェネリックフィンガープリント自体は悪意のあるものとして識別すべきであると判断することが合理的であると考えられる。サーバーコンピュータは、この一連のステップの後に、このジェネリックフィンガープリントGは悪意のあるものと識別し、クライエントコンピュータに対応する応答を返信する。上記判定プロセスは、リアルタイムの事象としてすなわちオンザフライで中間ファイル出力をせず、複数の処理を行うこと説明したが、実際には、個別に行ってもよい。換言すると、サーバーコンピュータ上のソフトウェアモジュールは、過去のクエリの履歴を周期的に検索して、過去のクエリに関連する大多数の特定フィンガプリントが悪意のあるものらしいとの理由から、悪意のある可能性の高い特定フィンガプリントを抽出するよう試みる。こうして、これらのジェネリックフィンガープリントを、悪意のあるものと識別することができる。以上のように、サーバーコンピュータが判定を求められると、オンザフライで計算を実行することを試みるのではなく、単に検索を行ってもよい。これと同時に、このアプローチは、最近の履歴がすでに解析されているので、関連情報を収集して利用することはない。[機械学習の実施形態]本発明に係る1つの実施形態において、クライエントコンピュータおよびサーバーコンピュータは以下のように機能する。初期化段階において、サーバーコンピュータは、識別器に学習させる。1つの実施形態において、サーバーコンピュータは、ファイルに対するフィンガプリントが過去に提供され、おそらくは独立した手段を用いて分類された実際に存在するユーザ履歴から学習データを直接的に取得することができる。このファイルが、たとえば既存のホワイトリストまたはブラックリストの存在により安全なものか、または悪意のあるものか、認識することができる。任意的には、たとえばユーザが自然的分類およびサブ分類に属するか否かといったさまざまな条件に基づいて、履歴データを階層化し、または分割化することができ、自然的分類等は、限定するものではないが、地域グループすなわち同様の地域にいるユーザからなるグループ、および関連グループすなわち、同一企業の社員からなるユーザ、本発明に係るシステムまたはソフトウェアを共通の提供源たとえば共通のダウンロードサーバーコンピュータまたは共通の頒布チャンネルから入手したユーザからなるグループを含むものであってもよい。所定の条件にもとづいて、学習データを階層化し、または分割化した場合、用いられる学習データを、履歴からの複数の区分または複数の階層に基づいて求めることができる。学習データを分割することの利点は、入力空間の特定領域において複数の機械学習分類器を微調整することができ、その結果として、機械学習分類器の入力空間の特定領域におけるパフォーマンス性能を改善することができる点にある。学習フェーズにおいて複数のパラメータが含まれる。一旦、分類器が確立されると、フィールドにおいて展開させることができる。1つの実施形態において、分類器が特定する数学的関数を実行する実際のコンピュータ指令または順次説明されるコンピュータ指令の適当な符号化を自動的に生成することができる。1つの実施形態によれば、これらのコンピュータ指令を遠隔サーバーコンピュータに記憶させてもよい。別の実施形態において、これらのコンピュータ指令を複数のクライエントシステムに送信することができる。本発明に係る別の実施形態において、クライエントシステムは、新たなソフトウェアアプリケーションに遭遇したとき、このソフトウェアアプリケーションに付随する特徴ベクトルを、ソフトウェアアプリケーションが安全なものか、悪意のあるものかを独立して判定する他の任意のデータとともに抽出する。特徴ベクトルは、特定のアプリケーションの属性に限定する必要はなく、アプリケーションを実行するはシステムに関する他の属性を含むものであってもよい。アプリケーションのバイナリコンテンツに特に関連する特徴ベクトルの属性は、限定するものではないが、アプリケーションのバイナリコンテンツの素性、アプリケーションが参照するダイナミックリンクライブラリDLLのリスト、バイナリコンテンツ内の特定位置の値、領域の数、シンボルの数、バイナリコンテンツの異なる領域の個数、シンボル個数、位置、およびバイナリコンテンツのデータサイズが含まれる。いくつかの実施形態では、特徴ベクトルはアプリケーションが参照するダイナミックリンクライブラリの符号を含む。その他の実施形態では、特徴ベクトルは、バイナリコンテンツ内の異なる領域に関する領域の数、シンボルの数、および位置を含む。その他の実施形態では、特徴ベクトルは、バイナリコンテンツのデータサイズを含む。アプリケーションに付随する特徴ベクトルの属性は、限定するものではないが、アプリケーションで用いられる登録鍵registrykeyおよび通常、ウィンドウズ上で実行する脅威に対する登録鍵に加えられたすべての変形に関する情報、アプリケーションのファイル名、利用されるネットワークポートおよびアプリケーションプログラミングインタフェースAPI通信に関する挙動的属性、アプリケーションにより変更され、生成されるファイル、およびアプリケーションにより中止され、または開始されるサービスが含まれる。いくつかの実施形態では、特徴ベクトルは、アプリケーションのファイル名および利用される登録鍵を含む。アプリケーションのジェネラルコンテキストデータに付随する特徴ベクトルの属性は、限定するものではないが、アプリケーションに新たに遭遇したときにシステム上で実行するプロセス、アプリケーションの情報源CDROM、USBスティックメモリ、ウェブサイト、マシンの感染履歴、マシンの地理的位置、およびマシンのIPアドレスが含まれる。一般に、特徴ベクトルは、複数の特徴に関する情報を含む。特徴ベクトルを構成する際、上記特徴ベクトルの値は、逐語的に送信する必要はないが、機械学習アプリケーションを支援するように符号化されることに留意すべきである。たとえば、1つのソフトウェアアプリケーションに関するすべてのダイナミックリンクライブラリのリストではなく、むしろバイナリ値を用いて、ウィンソックwinsockdll等の特定のダイナミックリンクライブラリが用いられたか否かを示すことができる。1つの実施形態では、特徴ベクトルに加えて、クライエントコンピュータは、SHA-256等の従来式のフィンガプリント、またはPEハッシュ値PEhashやSSディープハッシュ値SSdeepともに当該技術分野において知られている。、またはこれらの組み合わせ等のジェネリックフィンガープリント値を計算してもよい。特徴ベクトルは、概略的に上記説明した機械学習技術を用いてファイルを分類する際、主として関連するものであるが、他のデータを将来の学習のために用いることができる。たとえば、最初に遭遇したファイルの素性が未知の場合、当該ファイルが後に既知の悪意のあるアプリケーションのブラックリスト上で発見される可能性がある。そのリストがSHA-256を用いて索引付けされると、SHA-256の値および特徴ベクトルの両方をクライエントコンピュータに計算させることにより、特徴ベクトルを特定の素性に関連付けることができる。この特徴ベクトルを、その後の学習フェーズのための学習コーパスに追加することができる。本発明に係る1つの実施形態において、クライエントコンピュータは、特徴ベクトルの値データを求め、これを圧縮することができる。データを圧縮するための汎用技術があり、この特別の事例においては、望ましい性能パラメータ、特にクライエントコンピュータとサーバーコンピュータとの間で通信されたデータ容量に関する性能パラメータを生成する専用技術を用いることができる。この特徴ベクトルを任意的に圧縮すると、本発明に係る1つの実施形態によれば、得られたデータは、遠隔サーバーコンピュータに送信される。択一的には、クライエントコンピュータは、遠隔的な検索を回避するために、サーバーコンピュータに接続される論理回路に記録してもよい。本発明に係る1つの実施形態において、サーバーコンピュータは、必要ならば、クライエントコンピュータから送信されたデータを解凍し、解凍データには特徴ベクトルを含み、適当な位置に格納されたモデルに対して、特徴ベクトルを評価する。クライエントコンピュータが従来式のフィンガプリントまたはジェネリックフィンガープリント等の他のデータを提供した場合、サーバーコンピュータは、任意的には、分類器からの結果の代わりに、より従来式の手段を介して得られた素性を優先させる。たとえば。クライエントコンピュータが関心のあるソフトウェアアプリケーションのSHA-256の値を送信してこの値が安全なアプリケーションからなる既知のホワイトリストに含まれていたとき、サーバーコンピュータは、機械学習モデルの出力値にかかわらず、懸案のアプリケーションが安全なものと応答することができる。このアプローチの根拠となる前提は、直接的なホワイトリストまたはブラックリストより、機械学習モデルがより誤りを起こしやすいということにあるただし、機械学習モデルは、これまで未知であったものを含めて、任意のファイルに対して適用可能であるのに対し、ホワイトリストおよびブラックリストは、そのエントリ数が限られているため、同様に制約があることに留意すべきである。。サーバーコンピュータは、必要ならばクライエントコンピュータに実行させたい処理に関する情報を付加して、最終的な判断に関する応答をクライエントコンピュータに提供する。このトランザクション変更処理に関するトランザクション履歴は、クライエントコンピュータの識別子、タイムスタンプ、特徴ベクトル値、その他のフィンガプリント値、および最終的な素性および情報が得られた際の状況、中でも、サーバーコンピュータがクライエントコンピュータに実行させたい処理のタイプを含むものであるが、任意的に記録される。このトランザクション履歴は、学習コーパスに関する3つの特徴を含むものであるので、その後の新たな分類器の学習フェーズに利用することができる。第1に、このトランザクション履歴は、機械学習訓練アルゴリズムに対する入力値として与えられる特徴ベクトルを含む。第2に、このトランザクション履歴は、数多くの機械学習アルゴリズムが必要とする素性を含む。ただし、学習のためには、巡回フィードバックループを導入するリスクがあるので、従来式の機械学習に基づく素性ではなく、フィンガプリント値やジェネリックフィンガープリント値を用いて得られる素性を利用することが好ましいことに留意されたい。第3に、このデータにより生成された学習例は、当該分野における実際のユーザ事例に由来するものであり、通常のユーザが将来的に直面するものを如実に表現する傾向がある。本発明に係る1つの実施形態において、クライエントコンピュータは、サーバーコンピュータから最終的な判断、およびその判断に付随する可能性のある処理指令を受信し、特化されたポリシーによる応答に基づいて処理を行う。1つの実施形態において、可能性のある応答は、限定するものではないが、次のものを含む。すなわち可能性のある応答には、アプリケーションが悪意のあるものと宣言しシステムから当該アプリケーションを取り除くか、ユーザがインストールするのを阻止する。、任意的ではあるが、コピーをサーバーコンピュータに送信するか、または当該アプリケーションをシステム上に維持することを許容し、および/または当該アプリケーションを追加的に解析するために、クライエントコンピュータからサーバーコンピュータへ送信することを要求する。上記最後の応答オプションは、たとえば当該アプリケーションを悪意のあるものである可能性があるが、その確からしさ悪意ありと判断する確信度が十分に高くなく、偽陽性判断するリスクが相当に高いとサーバーコンピュータにより判断された場合に意義あるものであるこの場合、ファイルをサーバーコンピュータへ送信することにより、当該アプリケーションに対して追加的でより綿密な解析を行うことができるが、こうした解析は、あまりにも効果であるので、直面したすべてのファイルに対して実行することはできず、疑惑のある複数のファイルの一部を対象として実行することが好ましい。。本発明に係る1つの実施形態において、サーバーコンピュータは、数多くの防御手段セーフガード手段を所定位置に配置して、所与の安全なアプリケーションを誤って悪意のあるものと判断するリスクを低減することができる。防御手段は、限定するものではないが、以下のものが含まれる。第1に、より直接的な手段SHA-256等の従来式のフィンガープリントや、安全なソフトウェアアプリケーションからなる既知のホワイトリストにあるものと一致することにより、アプリケーションが安全であることが知られている場合、サーバーコンピュータは、機械学習分類器から提供された素性を無視することができる。第2に、機械学習分類器の使用を抑制することができる。たとえば、サーバーコンピュータは、この機械学習分類器による陽性判断される悪意のあるものとの判断される数を適当な数に制限することができる。さらに所与のアプリケーションに関する分類数を抑制することができる。たとえばSHA-256の関し、機械学習分類器を用いて、Nが3等であるような適当な選択に対してN倍を超えない数の陽性判断を行うことができる。この手法によれば、問題mistakeがあるとき、その問題による結果damageが確実に生じるようにすることができるすなわち最も悪意のあるソフトウェアは、その怪しげな危機flybynightdangerに起因して、低い確率frequencyを有する傾向があるので、このように抑制することで、正検出率と誤検出率の好適なトレードオフを実現することができる。。第3に、多少なりとも悪意のあるもの可能性がより高い特定の分類のファイルに対しては、機械学習分類器による陽性判断悪意のあるものとの判断を抑制することができる。たとえば、データサイズのより小さいファイルは、より大きいファイルに比較して、悪意のあるものである可能性が高いことが知られている。これは、悪意のある第三者が被害者のマシンに対し、より小さいファイルを送信することに成功する可能性が高いためである。当該技術分野において、デジタル署名されたファイルは、デジタル署名されていないファイルより悪意のあるものである可能性が低いということが知られている。同様の判断が他のファイル属性に対しても成り立つ。したがって、本発明に係る1つの実施形態において、とりわけデータサイズが所定の閾値以下であって、デジタル署名されていないソフトウェアアプリケーションに関して、機械学習分類器による陽性判断悪意のあるものとの判断を任意的に抑制することができる。第4に、特定の条件に関して、機械学習分類器による陽性判断悪意のあるものとの判断を記録することができる。本発明に係る1つの実施形態において、コンピュータマシンが特定の脅威に感染する虞がある場合たとえば過去においてこのタイプの脅威に遭遇したことがある場合や、特定の脅威に付随した地理的領域にある場合等、このような場合に機械学習分類器を適用することができる。第5に、特定脅威事例をモデル化するために、機械学習分類器を構築することができる。たとえば、日常的に検出される1つの悪意のあるソフトウェア脅威としてコンフィッカーConfickerが当業者に知られている。コンフィッカーには数多くのバリエーションがあるが、バリエーションの中のそれぞれを同一系列の全体の一部として認識することを可能にする十分な共通性がある。したがって、本発明に係る1つの実施形態において、特定の脅威を標的として機械学習分類器を特別に学習させることができる。そのためには、安全なファイルおよびコーパス内の特徴ベクトルを一定に設定し、悪意のあるファイルおよび特定の脅威に関連する特徴ベクトルを含むようにすることができる。このアプローチの利点は、特定の脅威に対して微調整した機械学習分類器において、その脅威に対する偽陽性率安全なアプリケーションを誤って悪意のあるものと認定する確率を低く抑えることができ、エンドユーザがこれらのシステムが標的とする特定の脅威を知ることができる点にある。第6に、ポプュラリティpopularityが特定の閾値以下であるファイルに対して、機械学習分類器に関するアプリケーションを制限することができる。1つの実施形態において、システムにパラメータNを導入して、N個未満のシステムが特定のアプリケーションを有するような場合にのみ、このアプリケーションが悪意のあるものと認定してもよい。第7に、懸案のシステムがある脅威に感染する可能性が閾値より多少なりとも大きい場合、いくつかの機械学習分類器に関するアプリケーションを制限することができる。脅威に感染する可能性の増大を示唆する指標は、限定するものではないが、そのシステムが最近感染した状況、システムが最近攻撃対象となった情報、脆弱なソフトウェアアプリケーションがシステム上に存在するか否か、感染に関する共通の特徴ベクトルであるソフトウェアアプリケーションクライエントコンピュータを共有するピアツーピアファイル等がシステム上に存在するか否か、およびオープンネットワークポートがシステム上に存在するか否か、が含まれる。しかしながら、実際には悪意のあるマルウェアが、偽陽性率を低減しようとする安全策セイフティネットを取ったために安全なものと過誤認識されるため、一般には、偽陽性率を低減すする試みにより、真陽性率をも低減することになることに留意されたい。当該技術分野においては、こうしたトレードオフ二律相反が存在し、特定のアプリケーションにもよるが、図らずも、そのトレードオフが望ましいか否か判断することがあるものと理解されている。たとえば、真陽性率がほんの少しだけ低減する一方、偽陽性判断のリスクが劇的に低減する場合、上記トレードオフが望ましいものである。択一的には、偽陽性判断に要するコストがきわめて高い場合、すなわち安全なアプリケーションを遮断することにより、財政的なビジネス上の損失を招く可能性がきわめて高い場合、真陽性率が実質的に低減するとしても、偽陽性判断コストを実質的に低減させるより従来的な立場を取る方が望ましい。他方、誤った検出すなわち偽陽性検出に対するコストがきわめて高い場合、たとえばシステムが非常に高いセキュリティを要求する場合、システムに侵入する脅威のリスクをきわめて小さく抑制するために、高い偽陽性率が許容されない場合もある。この実施例は、本発明に係る特定の具体例について示し、その手順に沿ったステップまたは手続きについて説明する。この実施例は、本発明に係る説明を明確にするものであって、本発明を限定するものと理解すべきではない。たとえば本発明に係る上記説明は、数多くの変形例および変更例にも適用することができる。不明確な説明を回避するために、これらの変形例および変更例については以下において説明しない。まず始めに、ユーザのコンピュータマシン上で実行される1つのエージェントソフトウェアを考慮されたい。この実施例において、エージェントソフトウェアは、マイクロソフトウィンドウズのファイルシステムのミニフィルタドライバfilesystemminifilterdriverを含み、これは新しい実行可能なファイルをファイルシステムへ書き込もうとしていることを検出することができるものである。同様に、新しい実行可能なファイルをファイルシステムへ書き込もうとしていることを検出することができるその他のソフトウェアを用いることができる。ファイルをファイルシステムへ書き込んだこと、または書き込もうとしていることを検出した後、ソフトウェアエージェントは2つの値を計算する。第1に、ファイル上の従来式のフィンガプリント値たとえばSHA-256を計算する。第2に、ファイルから機械学習特徴ベクトル値を計算する。特徴ベクトル値は、このシステム上のファイルに関連する数多くの属性を有し、限定するものではないが、アプリケーションが参照するダイナミックリンクライブラリDLL、バイナリコンテンツの特定の位置に関する値、ファイル領域の個数および読み出し可能、書き込み可能、または実行可能等の各領域が有する属性、シンボルの個数、バイナリコンテンツのテータサイズ、バイナリコンテンツに対するデジタル署名の有無等が含まれる。これらすべての属性は、ファイルのバイナリコンテンツから容易に計算することかできる。さらに、その他の文脈上の情報要素が特徴ベクトルに含まれており、限定するものではないが、ファイルシステムのタイムスタンプ、ファイル名の素性同一ファイルが異なるシステム上で異なるファイル名を有し、その属性が所与のシステムにおけるファイルの具体例に固有のものとなる場合があることに留意されたい。、システムにインストールされたその他のソフトウェアアプリケーションに関する情報たとえばシステムが脆弱なソフトウェア、または一般にシステム感染を引き起こすソフトウェアに関する情報、および最近のシステムの感染履歴たとえば最近30分の間にユーザのコンピュータが感染したか否か等が特徴ベクトルに含まれている。これらの属性は、適当に符号化されるとともに、伝送容量を小さくするために圧縮される。クライエントコンピュータは、フィンガプリントおよび特徴ベクトルをサーバーコンピュータに送信する。これら2つの値に加えて、クライエントコンピュータは、同一のクライエントコンピュータからのその他のトランザクションとリンクさせやすくするために識別子を有していてもよい。次にサーバーコンピュータは、任意のブラックリストおよびホワイトリスト内のファイルを検索する。このときサーバーコンピュータは、この検索を実行するために、たとえば従来式のフィンガプリントを用いてもよい。この検索により、決定的な素性特性が明らかとなった場合たとえば、このファイルが悪意のあるものか、安全なものであるか決定的であることが知られている場合、この素性がクライエントコンピュータに送信される。サーバーコンピュータは、任意的ではあるが、この段階でファイルについて追加的な情報たとえば当該ファイルを保有するユーザの数等を検索し、フィンガプリント値、基本的な特徴ベクトル、追加的情報、クエリのタイムスタンプ、ユーザの識別子、ブラックリストおよびホワイトリストのリストごとの素性を記録する。記録フォーマットは、サーバーコンピュータのトランザクション履歴であってもよい。サーバーコンピュータがブラックリストおよびホワイトリストのどちらにもファイルを見出さなかった場合には、以下のステップを実行する。第1に、サーバーコンピュータは、任意的に、その他の計算可能な属性を用いて、クライエントコンピュータから提供される特徴ベクトルを増補拡張する。これらの属性は、限定するものではないが、ファイルがユーザコンピュータに出現する頻度、およびファイルがサーバーコンピュータで初めて確認された時を示すサーバーコンピュータ側のタイムスタンプを含むものであってもよい。そしてサーバーコンピュータは、機械学習分類器サポートベクターマシン、決定木、ニューラルネットワーク等を用いて増補された特徴ベクトルを評価する。クライエントコンピュータは、素性悪意のあるもの/安全なものおよび任意的な確信度を受信し、将来の解析のためのトランザクション変更処理が記録される。サーバーコンピュータは、周期的に、過去のすべての履歴を調べて、既知のブラックリスト/ホワイトリストにフィンガプリント値が記録されたファイルに関するすべての特徴ベクトルを呼び出すことができる。サーバーコンピュータは、フィンガプリント値に対応する特徴ベクトルに関する学習コーパスを形成するたとえばホワイトリスト上のアイテムは学習コーパスの安全なサブセットであり、ブラックリスト上のアイテムは学習コーパスの悪意のあるサブセットである。。このコーパスに基づいて、機械学習分類器サポートベクターマシン、決定木、ニューラルネットワーク等を学習させることができる。システムを起動、すなわちジャンプスタートjumpstartさせる方法がいくつかあることに留意されたい。我々は、データ収集フェーズから開始することができる複数のタイプのサイレント検出機能silentdetectioncapabilityを想定されたい。。文脈上の確からしさ悪意ありと判断する確信度に関する実施形態本発明に係る1つの実施形態によれば、クライエントコンピュータおよびサーバーコンピュータの構成部品は、以下のように機能する。クライエントコンピュータが、あるソフトウェアアプリケーションに遭遇アクセスし、それが悪意のあるものか、安全なものかを分類しようとするとき、そのアプリケーションに関する両方の情報を収集し、システムに関する文脈データ情報とともに用いて、マルウェアの従来式の検出を実施する。収集されるデータ情報として、限定するものではないが、システムに対する最近の感染履歴、クライエントコンピュータの地理的位置情報、インターネットプロトコルすなわちクライエントコンピュータのIPアドレス、および同一のクライエントコンピュータ上で複数回行われるトランザクション変更処理をリンクさせるために用いられるクライエントコンピュータ識別子が含まれる。感染イベントに晒されたカスタムエージェントcustomagentまたは第三者エージェントthirdpartyagentを用いて、感染履歴を収集することができる。クライエントコンピュータは、ソフトウェアアプリケーションに関する従来式のデータ情報および文脈上のデータ情報の両方を送信する。データ情報は、未処理の状態で伝送してもよいし、またはネットワークにおける効率的な伝送を可能にするように符号化してもよい。符号化機構の選択は、本発明に係る主な態様に対して直交し、当該技術分野においてデータを符号化するための数多くの技術が存在する。サーバーコンピュータは、クライエントコンピュータからデータを受信し、そのアプリケーションが悪意のあるものか否かを判定する。ホワイトリストまたはブラックリストにあるシグネチャ等の従来式の手段を用いて、アプリケーションが悪意のあるものか、または安全なものであると判断された場合、クライエントコンピュータから送信される追加的な文脈を参照することなく、最終的な判断がなされる。送信されたデータに基づいて、そのアプリケーションが疑念を抱かせるものであるが、完全に悪意のあるものであると警告するほどの疑念を抱かせるものではない場合、文脈上の情報が考慮される。1つの実施形態において、アプリケーションが疑念を抱かせるものであって、そのコンピュータマシンが1つまたはそれ以上の感染を受けていた場合には、そのアプリケーションは悪意のあるものと、サーバーコンピュータは判断することができる。一旦、サーバーコンピュータがその勧告を通知すると、この情報はクライエントコンピュータに返信され、その後クライエントコンピュータは、その勧告に応じたポリシーを適用することができる。1つの実施形態では、アプリケーションは悪意のあるものと、サーバーコンピュータが判定すると、クライエントコンピュータは、そのシステムから当該アプリケーションを削除するか、システムへのインストールを妨害することができる。異なる実施形態では、クライエントコンピュータは、セキュリティ上、より危険な状態にある場合には、当該アプリケーションを阻止することができる。たとえばマシンが銀行取引アプリケーション等の高いセキュリティを要するソフトウェアを現在実行中である場合、セキュリティ侵害はより直接的に金銭的損失をもたらすため、安全面において、より慎重に扱うべき状態にある。この場合、クライエントコンピュータは、銀行取引アプリケーションの実行が完了するまで、疑念を抱かせるソフトウェアの実行を阻止することができる。本発明の別の実施形態によれば、クライエント側の構成部品は、文脈上の確からしさ悪意ありと判断する確信度を生成することに関連する情報を収集する。1つの実施形態では、クライエント側の構成部品は、単に、クライエントコンピュータの識別子をサーバーコンピュータへ送信する。クライエントコンピュータは、任意的に、以下の1つまたはそれ以上の情報要素をサーバーコンピュータへ送信する。すなわち、その情報要素には、最近の感染、ならびにそれらの感染に関するタイムスタンプおよびウィルス識別子、クライエントコンピュータが最近アクセスしたウェブサイトに関する情報、システム上で実行しているアプリケーションに関する情報、システムにインストールされたアプリケーションに関する情報、システム上で開いたアクセス可能なネットホークポートに関する情報、クライエントコンピュータの地理的位置、クライエントコンピュータのインタネットプロトコルまたはIPアドレスが含まれる。1つの実施形態において、このクライエント側の構成部品は、バックグラウンドで、常に実行し、情報を収集し、そして周期的間隔でサーバーコンピュータへ送信することができ、または懸案のアプリケーションに遭遇したときにサーバーコンピュータへ送信することができる。さまざまな実施形態において、このクライエント側の構成部品は、必要があるタイミングで情報を収集することができる。さらに別の実施形態では、このクライエント側の構成部品は、バックグラウンドで収集した情報と、必要なタイミングで収集した情報とを組み合わせてもよい。本発明の別の実施形態によれば、サーバー側の構成部品は、そのマシンに関する文脈上の情報に加え、アプリケーションに関する情報を解析し、その情報を用いて、当該アプリケーションが悪意のあるものか否かについて判断する。1つの実施形態において、入力された文脈により、アプリケーションが悪意のあるものである可能性が以前より増大するとき、サーバーコンピュータは、疑わしいアプリケーションを悪意のあるアプリケーションに更新することを選択してもよい。別の実施形態では、最近の感染がシステム上で確認されていた場合に、その疑わしいアプリケーションを悪意のあるアプリケーションとみなすようにしてもよい。上記説明した実施形態においては、サーバーコンピュータ上で当該判断を行うものとしたが、ロジック一連の処理そのものは、クライエントコンピュータが行ってもよいし、あるいはクライエントコンピュータおよびサーバーコンピュータが協働して行ってもよい。1つの実施形態では、サーバーコンピュータがクライエントコンピュータから提供されたクライエントコンピュータ識別子を参照し、その識別子を用いて、サーバーコンピュータとクライエントコンピュータとの間の履歴を検索することができる。この情報を用いて、文脈を判断に加えることができる。たとえばクライエントコンピュータが最近にサーバーコンピュータと通信して、クライエントコンピュータが問い合わせた懸案のアプリケーションが悪意のあるものであった場合、サーバーコンピュータは、アプリケーションが悪意のあるものである可能性が以前より増大した状況として処理することができる。別の実施形態では、サーバーコンピュータは、複数のクライエントコンピュータから収集した文脈上の情報を利用することができる。この場合サーバーコンピュータは、限定するものではないが、特定のアプリケーションに対して問い合わせされた頻度や、この問い合わせに関連した他のクライエントコンピュータからの文脈情報を含む情報を利用することができる。本発明に係る別の実施形態によれば、アプリケーションが悪意のあるものか、または安全なものかについて判断の支援するために保有された文脈データコンテキストデータを収集するために、ある方法が、クライエントコンピュータシステム上で実行される。この方法は以下のステップを有し、各ステップは任意的なものである。第1に、サーバーコンピュータは、同一のシステムからの複数のトランザクション変更処理を関連付けるために用いることができるクライエントコンピュータ識別子を収集する。1つの実施形態では、この識別子は、グローバル一意識別子GUID:GloballyUniqueIdentifierであってもよい。別の実施形態では、識別子は、クライエントコンピュータが初期化された時にサーバーコンピュータにより構成され、クライエントコンピュータに送信されるものであってもよい。その後、クライエントコンピュータは、このデータを不揮発性記憶媒体に記憶する。第2に、サーバーコンピュータは、悪意のある脅威がシステムに侵入した時に関する情報とともに、カスタムエージェントcustomagentまたは第三者エージェントthirdpartyagentを用いて、システム上で特定された悪意のある脅威を記録する。アンチマルウェア技術に関連して、こうした脅威はウィルスID、ジェネリックシグネチャ、SHA-256、またはこれらの組み合わせにより特定することができる。通常、ウィルスIDは、脅威に関するほとんどのジェネリックラベルジェネリックシグネチャを提供し、唯一の脅威を特定する特定ラベル特定シグネチャを提供する。ジェネリックフィンガープリント値は、両極にある間の特異性のレベルを示唆するものである。第3に、サーバーコンピュータは、ユーザのクライエントコンピュータがアクセスしたすべてのウェブサイトを記録する。第4に、サーバーコンピュータは、ユーザが特定範囲の期間内にイントールしたすべてのソフトウェアアプリケーションを記録する。第5に、サーバーコンピュータは、懸案のアプリケーションすなわち、我々の興味を引く素性を有するアプリケーションが導入された時に実行していたすべてのアプリケーションを記録する。第6に、サーバーコンピュータは、クライエントコンピュータのインターネットプロトコルアドレスIPアドレスを取得する。第7に、サーバーコンピュータは、クライエントコンピュータのネットブロックnetblockに関する情報を取得する。第8に、サーバーコンピュータは、クライエントコンピュータの地理的情報に関する情報を取得する。第9に、サーバーコンピュータは、クライエントコンピュータのシステム上で用いられている言語に関する情報を取得する。第10に、サーバーコンピュータは、システム上で開いたアクセス可能なネットホークポートに関する情報を取得する。第11に、サーバーコンピュータは、システム上で実行中のアプリケーションに関する情報を取得する。第12に、サーバーコンピュータは、懸案のアプリケーションがシステムに送信された状況に関する情報を取得する。この情報は、限定するものではないが、ウェブブラウザ等を介して取得されたソフトウェアアプリケーション、ならびにウェブサイト、CD-ROM、またはUSBドライブ等、ファイルが導入されたソース位置が含まれる。第13に、サーバーコンピュータは、懸案のアプリケーションが取得しようとしている権限、たとえばサーバーコンピュータは、管理者権限の下で実行するか否かについての情報を取得する。第14に、サーバーコンピュータは、懸案のアプリケーションに関する問い合わせがあった時に、ユーザが現在閲覧しているウェブサイトに関する情報を取得する。第15に、サーバーコンピュータは、アプリケーションの現在の状況、たとえばアプリケーションがシステム上で実行中であるか否か、または休止中であるか否かについての情報を取得する。これらのすべての情報要素が必ずしも強制的なものではなく、冗長でさえある可能性があることに留意されたい。このリストは、本発明の異なる態様を明瞭にするために含まれるものである。たとえばクライエントコンピュータが識別子とともに、懸案のアプリケーションに関するデータをサーバーコンピュータに送信した場合、サーバーコンピュータは、クライエントコンピュータの過去のトランザクション変更処理および懸案のアプリケーションに対するリクエストに関する情報を用いて、文脈上の情報を策定生成することができる。とりわけサーバーコンピュータは、クライエントコンピュータが懸案のアプリケーションについて悪意のあるものと問い合わせしたクエリを行った時に、過去に問い合わせしたアプリケーションを特定し、特定可能な場合には、対応するアプリケーションの脅威を特定することかできる。この情報から、クライエントコンピュータの感染履歴を構築することができる。同様に、サーバーコンピュータは、クライエントコンピュータのインターネットプロトコルアドレスIPアドレスを取得することができるため、クライエントコンピュータの地理的位置に関する情報を取得することができるが、サーバーコンピュータと通信するために、クライエントコンピュータが利用するネットワークプロトコルの一部として含まれる情報を利用することにより、サーバーコンピュータと通信することができる。特に、利用されるプロトコルが通信制御プロトコル/インターネットプロトコルTCP/IPである場合、インターネットプロトコルアドレスは、自動的に包含されるものである。本発明に係る別の実施形態によれば、懸案のアプリケーションに関連するメタデータとともに文脈情報を用いて、当該アプリケーションが悪意のあるものか、安全なものかについての最終的に判断する方法が提供される。この方法は、以下のステップを有する。第1に、懸案のアプリケーションについて従来式の評価を行う。アプリケーションが悪意のあるものか、安全なものかについて最終的に決定された場合、ある提案とともに、この情報をクライエントコンピュータに送信することができる。アプリケーションの素性特性が不明である場合、アプリケーションに関する収集データおよび送信された文脈情報を解析する。1つの実施形態において、収集データおよび送信された文脈情報を機械学習システムの特徴ベクトルとして利用することができる場合、機械学習分類器の結果を利用することができる。こうしたコーパス内の具体例をラベル付けするためには、実行ファイルexecutablesについて、従来的な手法または手作業による解析を実施する必要がある場合がある。しかしながら、このプロセスは、処理をジャンプスタートjumpstartさせる手法として提案される。当業者に広く知られた数多くの手法で、学習コーパス構築のための具体例をラベル付けすることができる。あるファイルに関連して、十分な個数の特徴ベクトルがラベル付けされると、本願の実施形態に係る機械学習について上記説明したように、機械学習分類器に学習させることができる。その結果、新しい分類されていない事案アプリケーションに適応できるモデルが得られる。別の実施形態によれば、アプリケーションが真偽不明であり、マシンが最新の感染履歴を有することを、収集データが示唆するものである場合、アプリケーションを悪意のあるものとみなすことができる。別の実施形態において、マシンのセキュリティ状態が危険に晒されていることを、文脈情報が示唆するものである場合、より攻撃的な厳格な検出機能を適用することができる。これらの検出機能は、限定するものではないが、悪意のあるアプリケーションのジェネリックフィンガープリントこれは脅威となる変形されたアプリケーションを捉えることができるが、偽陽性の可能性もより高くなるものである。、ジェネリックな特徴に基づいて脅威を検出できる攻撃的な厳格な機械学習分類器、および悪意のある可能性が高いが、未だ精査されていないソフトウェアサンプルのフィンガプリントを含むものであってもよい。マシンのセキュリティ状態が危険に晒されていることを示す文脈情報には、限定するものではないが、以下のものを含んでいてもよい。すなわち、この文脈情報には、システム上における最近の感染、セキュリティ上の危険に晒されていたことが確認されたウェブサイトにアクセスしたことこうしたサイトを特定するリストおよびこうしたサイトを特定する技術が開示された発明に直交する場合、およびピアツーピアファイル共有クライエントコンピュータ等の危険を含むと考えられているソフトウェアアプリケーションをイントールしたことを含む。さらに、マシンが危険に晒されているという潜在的なリスクを有するか否かについて判断する上で、いくつかの文脈情報は有用である。こうした文脈情報は、限定するものではないが、以下のものを含む。すなわち文脈情報は、既知のセキュリティ脆弱性を有するソフトウェアアプリケーションの有無、およびシステムに脅威となるソフトウェアアプリケーションをダウンロードさせようとする加害者による情報ルートとして用いられるウェブブラウザ等のソフトウェアアプリケーションの有無が含まれる。別の実施形態において、銀行取引アプリケーション等のセキュリティ脆弱性アプリケーションがシステム上で実行中であることを文脈データが示す場合、遠隔的に疑いのあるものとみなされるとき、懸案のアプリケーションを一時的に停止するように提案することができる。これは、こうした状況下において、潜在的に危険に晒されたときのコストを考慮したとき、偽陽性のリスクを容認できることが前提となる。別の実施形態において、クライエントコンピュータが特定の地理的領域からアクセスしようとしていること、または特定の地理的領域において処理実行していることを文脈情報が示す場合、当該特定の地理的領域に関する脅威に関連する検出機能を適用することができる。たとえば、銀行トロイBancosTrojan、銀行コンピュータシステムにおけるトロイの木馬は、とりわけブラジルの銀行アカウントに関する情報の窃取を目的とするブラジルにおけるユーザを標的にした脅威を与える既知のマルウェアである。保護の対象とされるコンピュータシステムがブラジルにある場合、銀行を特定するためのより厳格な技術を適用することができる。この技術は、たとえば専ら銀行を特定するための機械学習分類器であってもよい。関連する実施形態においては、ユーザが特定のウェブサイトにアクセスしたことを文脈情報が示す場合、そのウェブサイトに関連する脅威を特定するための攻撃的な技術を利用することができる。上記実施例において、ユーザが銀行トロイの標的リストと一致する銀行のウェブサイトにアクセスした場合には、銀行トロイの検出機能を適用することができる。同様のラインの中で、ユーザがフェイスブック等のサイトにアクセスした場合には、クーブフェイスワームKoobfaceworm等の脅威に関する検出機能を適用することができる。この実施例は、1つの可能性のある実施形態を俯瞰することにより、本発明を明確にすることを支援するように、本発明に係る1つの態様を説明するものである。すなわち、この実施例は、本発明の範囲を制限するものと解すべきではない。本発明の一部であるエージェントソフトウェアは、クライエントコンピュータラップトップコンピュータまたはデスクトップパーソナルコンピュータのシステム上で実行されるものである。このソフトウェアは、セキュリティ関連イベントの有無をモニタするものである。たとえばエージェントソフトウェアは、ファイルアクセスをモニタするマイクロソフトウィンドウズのミニフィルタドライバminifilterdriverを実行するものであってもよい。これは新しいファイルがファイルシステムに作成されるときは常に、エージェントソフトウェアは、そのファイルを解析し、従来式の技術を用いてたとえばブラックリストに含まれるか否かにより悪意のあるものか否かを確認するものである。このプロセスは、任意の場所にあるホストコンピュータによる遠隔操作サービスたとえばクラウド型サービスに対する問い合わせクエリにより実行することができる。他方、このような問い合わせクエリを受信したとき、アプリケーションが悪意のあるものか否かについて判断するためのいくつかの方法を適用することができる。これらの方法は、ブラックリストを用いたアプローチと同様、ヒューリスティックな発見的なアプローチを含むものであってもよい。あるファイルが最終的に悪意のあるものとその他の証拠を必要とすることなく判断された場合、その結果をクライエントコンピュータに返信してもよいまた将来のプロセスのためにトランザクション変更処理を記録してもよい。。あるファイルが最終的に悪意のあるものでないと判断されたが、悪意のあるものである確率が70という経験則ヒューリスティックに基づいて依然として疑わしい場合、追加的な文脈情報が精査される。たとえば、このファイルを含むシステムが、クライエントコンピュータ共有ピアツーピアファイルを最近インストールし、最近日中に最終的に悪意のある3つのファイルが存在すると判断された場合、疑わしいものとして処理したにも拘わらず、この新たなファイルを最終的には悪意のあるものとして認識ラベル付けしてもよい。主たるアイデアは、システム上で起こった最近の感染を利用して梃として、基準の底上げを支援することである。この場合の判断基準ルールは、きわめて単純である悪意のある3つのファイルに最近感染したこと、およびクライエントコンピュータ共有ピアツーピアファイルを最近インストールしたことを判断基準ルールとする。。ただし、より洗練された判断基準ルールを適用してもよい。さらに機械学習技術を用いて、判断基準ルールまたは判断基準ルールを効率的に符号化するモデルを設定してもよい。複合的な実施形態本発明に係る複合的な実施形態によれば、2つまたはそれ以上の上記説明した実施形態を、クライエントコンピュータクライエントアプリケーションおよびサーバーコンピュータサーバーアプリケーションのいずれか一方または両方で一体として、または独立して実施する。換言すると、aジェネリックシグネチャ、b文脈上の確からしさ悪意ありと判断する確信度、c機械学習によるモデルのうちの2つまたはそれ以上を適用して、ソフトウェアアプリケーションが悪意のあるものか否かを判断する。この実施形態によれば、クライエントコンピュータは、iソフトウェアアプリケーションから特徴ベクトルを抽出するステップと、iiソフトウェアアプリケーションに関するメタテータを抽出し、ソフトウェアアプリケーションがインストールされる可能性のあるシステムに関する文脈情報を収集するステップと、iiiソフトウェアアプリケーションのジェネリックフィンガープリント値を計算するステップのうちの2つまたはそれ以上のステップを実行し、得られたデータに関する情報をサーバーコンピュータに送信してもよい。サーバーコンピュータは、上記情報を処理した後、真偽判断または関連情報をクライエントコンピュータに返信し、クライエントコンピュータは、サーバーコンピュータから受信した情報に基づいて、ソフトウェアアプリケーションに対する処理を行ってもよい。これに応じて、サーバーコンピュータは、iソフトウェアアプリケーションから得た特徴ベクトル、iiソフトウェアアプリケーションに関するメタデータ、およびソフトウェアアプリケーションがインストールされる可能性のあるシステムに関する文脈情報、ならびにiiiソフトウェアアプリケーションのジェネリックフィンガープリント値のうちの2つまたはそれ以上を、クライエントコンピュータから受信するものであってもよい。クライエントコンピュータから特徴ベクトル情報を受信した場合、サーバーコンピュータは、機械学習による分類アルゴリズムを特徴ベクトルに適用する。ソフトウェアアプリケーションに関するメタデータ、およびクライエントシステムに関する文脈情報を受信した場合、サーバーコンピュータは、このデータ情報を精査する。ソフトウェアアプリケーションのジェネリックシグネチャを受信した場合、サーバーコンピュータは、そのジェネリックシグネチャが悪意のものあるものとみなすべきか否かを判断する。サーバーコンピュータは、1つまたはそれ以上の上記評価に基づいて、ソフトウェアアプリケーションが悪意のものあるものとみなすべきか否かについて判断を行い、ソフトウェアアプリケーションが悪意のものあるものとみなすべきか否かについての判断に関する情報を、クライエントコンピュータに送信する。当業者が上記説明を読んだ後においては、本発明に係る数多くの変形例および変更例が明らかとなるところ、図示され、記載された特定の各実施形態は説明を目的として記載されたものであり、限定しようとする意図はまったくないことを理解されたい。図15は、上記説明した1つまたはそれ以上の処理手続を実行する例示的なコンピュータシステムに関するブロック図である。図15を参照すると、コンピュータシステムは、例示的なクライエントコンピュータシステムまたはサーバーコンピュータシステムを備えたものである。コンピュータシステムは、通信メカニズムまたは情報を通信するためのバスと、情報を処理するためのバスに接続されたプロセッサとを有する。プロセッサは、マイクロプロセッサを含むが、ペンティアムPentium、パワーPCPowerPC、アルファ等のマイクロプロセッサに限定されるものではない。このシステムは、メインメモリと呼ばれるランダムアクセスメモリRAMや、バスに接続され、プロセッサで実行された情報および指令を記憶するためのその他の動的記憶デバイスを備える。メインメモリは、プロセッサが実行している間または指令を出している間、一時的な変数またはその他の中間的な情報を記憶するために用いられる。コンピュータシステムは、リードオンリーメモリROM、および/または磁気ディスクもしくは光ディスクや対応するディスクドライブ等、バスに接続され、プロセッサのための情報または指令を記憶するための静的記憶デバイスを備える。データ記憶デバイスは、情報または指令を記憶するために、バスに接続されている。コンピュータシステムは、コンピュータのユーザに情報を表示するためにバスに接続されたブラウン管CRTや液晶ディスプレイLCD等のディスプレイデバイスをさらに備えている。英数字キーおよびその他の複数のキーを含む英数字入力デバイスが、同様にバスに接続され、情報および命令選択をプロセッサに送信することができる。追加的なユーザ入力デバイスとして、マウス、トラックボール、トラックパッド、スタイラス、カーソル矢印キー等のカーソル制御デバイスがバスに接続され、方向情報、命令選択をプロセッサに送信し、ディスプレイ上のカーソル移動を制御することができる。バスに接続され得る別のデバイスは、指令、データ、またはその他の情報を、紙やフィルム、同様のタイプの媒体等の媒体上に印刷するためのハードコピーデバイスである。さらに、スピーカおよび/またはマイクロフォン等の録音再生デバイスを任意的にバスに接続して、コンピュータシステムとの音響インターフェイスを実現することができる。バスに接続することができる別のデバイスは、電話や携帯パームトップデバイスと通信するための優先/無線の通信機能デバイスである。本発明において、このシステムの任意のまたはすべての構成部品および付随するハードウェアを採用してもよい。しかし、コンピュータシステムの他の構成は、いくつかの、またはすべてのデバイスを有するものであってもよい。"