(57)【特許請求の範囲】
【請求項１】
偽陽性を減少させるために複数のヒューリスティックを使用するためのコンピュータ実装方法であって、前記方法の少なくとも一部が、少なくとも１つのプロセッサを備える計算装置によって実施され、前記方法が、
１組の訓練データを使用して第１のヒューリスティックを訓練するステップと、
前記第１のヒューリスティックを展開するステップと、
展開中の前記第１のヒューリスティックによって生成された偽陽性を識別するステップと、
前記第１のヒューリスティックによって生成された前記偽陽性を含むように前記訓練データを修正するステップと、
前記修正された訓練データを使用して第２のヒューリスティックを作成するステップと、
前記第２のヒューリスティックをフィールド試験する前に、前記第１のヒューリスティックと前記第２のヒューリスティックの両方を展開するステップと、
前記第１のヒューリスティックが正しく分類したフィールドデータ上に前記第１のヒューリスティック及び前記第２のヒューリスティックによって集成として偽陽性が生成されることを抑制するために、前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に１組の前記フィールドデータに適用するステップと
を含み、
前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に前記フィールドデータに適用するステップが、
前記フィールドデータを前記第１のヒューリスティックに通すステップと、
前記フィールドデータを前記第１のヒューリスティックに通すと、前記フィールドデータを前記第２のヒューリスティックに通すステップと
を含む方法。
【請求項２】
さらに、展開中の前記第１のヒューリスティックによって生成された真陽性を識別するステップを含む請求項１に記載の方法。
【請求項３】
前記訓練データを修正するステップがさらに、展開中の前記第１のヒューリスティックによって生成された真陽性も含むように前記訓練データを修正するステップを含む請求項２に記載の方法。
【請求項４】
前記第１のヒューリスティックと前記第２のヒューリスティックの両方を展開するステップ及び前記第１のヒューリスティックと前記第２のヒューリスティックの両方を適用するステップが、前記第２のヒューリスティックを作成するステップの後に行われる請求項１乃至３の何れか一項に記載の方法。
【請求項５】
前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に適用するステップにおいて、前記第１のヒューリスティック及び前記第２のヒューリスティックによって集成として生成される偽陽性の数を減少させる請求項１乃至４の何れか一項に記載の方法。
【請求項６】
最初の展開中の前記第１のヒューリスティックによって生成され、識別された前記偽陽性の少なくとも１つが、前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に前記１組のフィールドデータに適用するステップにおいて生成された分類結果に含まれることを判断するステップと、
前記分類結果に含まれる前記識別された偽陽性を訂正又は廃棄するステップと
をさらに含む請求項１乃至５の何れか一項に記載の方法。
【請求項７】
前記第１のヒューリスティック及び前記第２のヒューリスティックが、マルウェア検出ヒューリスティック及び決定木の少なくとも１つを備える請求項１乃至６の何れか一項に記載の方法。
【請求項８】
展開中の前記第１のヒューリスティックによって生成された偽陽性を識別するステップが、前記第１のヒューリスティックをフィールドデータに適用したときに生成された偽陽性を識別するステップを含む請求項１乃至７の何れか一項に記載の方法。
【請求項９】
前記修正された訓練データを使用して第２のヒューリスティックを作成するステップが、前記第１のヒューリスティックを作成するために使用される機械学習技法を前記修正された訓練データに適用するステップを含む請求項１乃至８の何れか一項に記載の方法。
【請求項１０】
偽陽性を減少させるために関連のヒューリスティックを順次に適用するための手段であって、
１組の訓練データを使用して第１のヒューリスティックを訓練するための訓練手段と、
前記第１のヒューリスティックを展開するための展開手段と、
展開中の前記第１のヒューリスティックによって生成された偽陽性を識別するための識別手段と、
前記第１のヒューリスティックによって生成された前記偽陽性を含むように前記訓練データを修正し、
前記修正された訓練データを使用して第２のヒューリスティックを作成する
ための調整手段と
を備え、
前記展開手段が、
前記第２のヒューリスティックをフィールド試験する前に、前記第１のヒューリスティックと前記第２のヒューリスティックの両方を展開し、
前記第１のヒューリスティックが正しく分類したフィールドデータ上に前記第１のヒューリスティック及び前記第２のヒューリスティックによって集成として偽陽性が生成されることを抑制するために、前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に１組の前記フィールドデータに適用し、
前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に前記フィールドデータに適用することには、
前記フィールドデータを前記第１のヒューリスティックに通し、
前記フィールドデータを前記第１のヒューリスティックに通すと、前記フィールドデータを前記第２のヒューリスティックに通す
ことが含まれる、手段。
【請求項１１】
前記識別手段が、展開中の前記第１のヒューリスティックによって生成された真陽性を識別する請求項１０に記載の手段。
【請求項１２】
前記第１のヒューリスティック及び前記第２のヒューリスティックが、マルウェア検出ヒューリスティック及び決定木の少なくとも１つを備える請求項１０又は１１に記載の手段。
【請求項１３】
前記識別手段が、前記第１のヒューリスティックをフィールドデータに適用したときに生成された偽陽性を識別することによって、展開中の前記第１のヒューリスティックによって生成された偽陽性を識別する請求項１０乃至１２の何れか一項に記載の手段。
【請求項１４】
前記展開手段が、前記第２のヒューリスティックが生成された後に前記第１のヒューリスティックと前記第２のヒューリスティックの両方を展開する請求項１０乃至１３の何れか一項に記載の手段。
【請求項１５】
コンピュータ実行可能命令を備えるコンピュータ可読媒体であって、前記コンピュータ実行可能命令が、計算装置の少なくとも１つのプロセッサによって実行されるときに、前記計算装置に、
１組の訓練データを使用して第１のヒューリスティックを訓練し、
前記第１のヒューリスティックを展開し、
展開中の前記第１のヒューリスティックによって生成された偽陽性を識別し、
前記第１のヒューリスティックによって生成された前記偽陽性を含むように前記訓練データを修正し、
前記修正された訓練データを使用して第２のヒューリスティックを作成し、
前記第２のヒューリスティックをフィールド試験する前に、前記第１のヒューリスティックと前記第２のヒューリスティックの両方を展開し、
前記第１のヒューリスティックが正しく分類したフィールドデータ上に前記第１のヒューリスティック及び前記第２のヒューリスティックによって集成として偽陽性が生成されることを抑制するために、前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に１組の前記フィールドデータに適用する
ように動作させ、
前記第１のヒューリスティックと前記第２のヒューリスティックの両方を順次に前記フィールドデータに適用することには、
前記フィールドデータを前記第１のヒューリスティックに通し、
前記フィールドデータを前記第１のヒューリスティックに通すと、前記フィールドデータを前記第２のヒューリスティックに通す
ことが含まれる、コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ある項目に関する観察をその項目の目標値に関する結論とマッピングするための予測モデルとして、決定木および他のヒューリスティックが一般に使用される。例えば、セキュリティソフトウェアベンダは、ファイルの属性、特性、および／または挙動に基づいて、悪意のあるコンピュータファイル（「マルウェア」）を識別するための予測モデルとして決定木を使用することがある。
【０００２】
決定木および他のヒューリスティックは、既知のサンプルのコーパスを使用して訓練および洗練することができる。例えば、セキュリティソフトウェアベンダは、既知の悪意のあるファイルおよび既知の正当なファイルを含むサンプルコーパスにヒューリスティックを適用することによって、マルウェア検出ヒューリスティックを訓練することができる。
【０００３】
ヒューリスティックの精度は、ヒューリスティックを訓練するために使用されるサンプルコーパスのサイズによって制限されることが多い。したがって、ヒューリスティックは通常、実世界で展開されて使用されるときに偽陰性および／または偽陽性を生成する。ヒューリスティックの精度を改良するために、ヒューリスティック提供者は、典型的には、１）ヒューリスティックを訓練するために使用されるサンプルコーパスに、誤って分類されたサンプルを追加し、２）修正されたサンプルコーパスを使用してヒューリスティックを再訓練し、次いで３）再訓練されたヒューリスティックを再展開する。
【０００４】
しかし、フィールドから収集された誤って分類されたサンプルを含むサンプルコーパスを使用してヒューリスティックが再訓練される場合でさえ、再訓練されたヒューリスティックは通常、フィールドで再展開されるときに新たな偽陽性を生成する。このため、ヒューリスティック提供者は、十分な性能が得られるまでヒューリスティックを絶えず再展開して再試験しなければならないことがある。残念ながら、誤って分類されたサンプルを識別し、これらの誤って分類されたサンプルを、ヒューリスティックを訓練するために使用されるサンプルコーパスに組み込み、次いでヒューリスティックを再訓練するのにかかる時間量は、法外なコストおよび／または時間がかかる作業を意味することがある。したがって、本開示は、ヒューリスティックによって生成される偽陽性の数を迅速かつ効果的に減少させるためのシステムおよび方法の必要性を認識する。
【発明の概要】
【課題を解決するための手段】
【０００５】
以下でより詳細に説明するように、本開示は、一般に、偽陽性を減少させるために複数のインラインヒューリスティックを使用するためのシステムおよび方法に関する。一例では、本明細書で開示するシステムおよび方法は、このタスクを、１）１組の訓練データを使用して第１のヒューリスティック（マルウェア検出決定木など）を訓練し、２）第１のヒューリスティックを展開し、３）フィールドで（すなわち展開中に）第１のヒューリスティックによって生成された偽陽性を識別し、４）第１のヒューリスティックによって生成された偽陽性を含むように訓練データを修正し、５）修正された訓練データを使用して第２のヒューリスティックを作成し、６）第１のヒューリスティックと第２のヒューリスティックの両方を展開し、次いで７）第１のヒューリスティックと第２のヒューリスティックの両方を順次に１組のフィールドデータに適用することによって達成することができる。
【０００６】
以下でより詳細に説明するように、本明細書で述べるシステムおよび方法は、第１のヒューリスティックと第２のヒューリスティックの両方を順次に適用することによって、これらのヒューリスティックによって集成として生成される偽陽性の数を効果的に減少させることができる。例えば、第２のヒューリスティックが第１のヒューリスティックとは異なる偽陽性特性を有することがあるが（例えば、第２のヒューリスティックは、第１のヒューリスティックとの相違により、第１のヒューリスティックによって正しく分類されたサンプルに対して偽陽性を生成することがある）、両方のヒューリスティックを順次に適用することで、第１のヒューリスティックが生成しなかった新たな偽陽性をこれら２つのヒューリスティックが集成として生成することを防止することができる。
【０００７】
したがって、本明細書で開示する様々なシステムおよび方法は、ヒューリスティックの偽陽性率に悪影響を及ぼすことなく、ヒューリスティックの全体の精度を向上させることができる。さらに、開発者は、洗練された（すなわち「第２の」）ヒューリスティックをフィールド試験する必要なく即座にそれを展開することができるので、これらのシステムおよび方法は、開発者が、大幅に長い開発時間をかけることなく、ヒューリスティックによって生成される偽陽性の数を迅速かつ効果的に減少させることができるようにする。
【０００８】
上述した任意の実施形態からの特徴を、本明細書で述べる一般的な原理に従って互いに組み合わせて使用することができる。これらおよび他の実施形態、特徴、および利点は、添付図面および特許請求の範囲に関連付けて以下の詳細な説明を読めば、より完全に理解されよう。
【０００９】
添付図面は、いくつかの例示的実施形態を示し、本明細書の一部である。これらの図面は、以下の説明と共に、本開示の様々な原理の実例を挙げて説明する。
【図面の簡単な説明】
【００１０】
【図１】偽陽性を減少させるために複数のインラインヒューリスティックを使用するための例示的なシステムのブロック図である。
【図２】偽陽性を減少させるために複数のインラインヒューリスティックを使用するための例示的なシステムのブロック図である。
【図３】偽陽性を減少させるために複数のインラインヒューリスティックを使用するための例示的な方法の流れ図である。
【図４】フィールドデータを含むように訓練データを修正するための例示的なプロセスのブロック図である。
【図５】フィールドデータを使用して第２のヒューリスティックを作成するための例示的なプロセスのブロック図である。
【図６】複数のヒューリスティックを順次に１組のフィールドデータに適用するための例示的なプロセスのブロック図である。
【図７】本願で説明および／または図示する実施形態の１つまたは複数を実施することができる例示的な計算システムのブロック図である。
【図８】本願で説明および／または図示する実施形態の１つまたは複数を実施することができる例示的なコンピューティングネットワークのブロック図である。
【発明を実施するための形態】
【００１１】
図面全体を通して、同一の参照符号および説明は、同様の要素を示すが、必ずしも同一の要素ではない。本明細書で述べる例示的実施形態は、様々な修正形態および代替形態が可能であるが、特定の実施形態を例として図面に示し、本明細書で詳細に説明する。しかし、本明細書で述べる例示的実施形態は、開示する特定の形態に限定されるものとは意図されていない。そうではなく、本開示は、添付の特許請求の範囲の範囲内に入るすべての修正形態、均等形態、および代替形態を網羅する。
【００１２】
以下でより詳細に説明するように、本開示は、一般に、偽陽性を減少させるために複数のインラインヒューリスティックを使用するためのシステムおよび方法に関する。一例では、本明細書で開示するシステムおよび方法は、このタスクを、１）１組の訓練データを使用して第１のヒューリスティック（マルウェア検出決定木など）を訓練し、２）第１のヒューリスティックを展開し、３）フィールドで（すなわち展開中に）第１のヒューリスティックによって生成された偽陽性を識別し、４）第１のヒューリスティックによって生成された偽陽性を含むように訓練データを修正し、５）修正された訓練データを使用して第２のヒューリスティックを作成し、６）第１のヒューリスティックと第２のヒューリスティックの両方を展開し、次いで７）第１のヒューリスティックと第２のヒューリスティックの両方を順次に１組のフィールドデータに適用することによって達成することができる。
【００１３】
本明細書で使用するとき、用語「ヒューリスティックアルゴリズム」またはしばしば単に「ヒューリスティック」は、オブジェクトまたはサンプルを分類する、またはそれらに関して決定を下すために使用することができる任意の種類または形態のアルゴリズム、公式、モデル、またはツールを全般的に表す。いくつかの例では、本明細書で述べる様々なヒューリスティックは、限定はしないが、マルウェアを検出および／または識別するために設計された決定木または他のアルゴリズムを表すことがある。
【００１４】
さらに、用語「偽陽性」および「真陽性」は、ヒューリスティックなど決定プロセスから生じ得る結果を全般的に表す。特に、「偽陽性」は、実際には帰無仮説が真であるときに帰無仮説を否定することで成される誤りを表すことがある。例えば、マルウェア検出ヒューリスティックは、正当なファイルまたはソフトウェアアプリケーションを悪意のあるものとして誤って判断することによって偽陽性を生成することがある。逆に、「真陽性」は、帰無仮説を真と認める正しい決定を表すことがある。例えば、マルウェア検出ヒューリスティックは、正当なファイルまたはソフトウェアアプリケーションを正当なものとして正しく判断することによって真陽性を生成することがある。
【００１５】
以下、図１および図２を参照して、偽陽性を減少させるために複数のインラインヒューリスティックを使用するための例示的なシステムを詳細に説明する。また、それに対応するコンピュータ実装方法を、図３〜図６に関連付けて詳細に説明する。さらに、本明細書で述べる１つまたは複数の実施形態を実装することができる例示的な計算システムおよびネットワークアーキテクチャを、それぞれ図７および図８に関連付けて詳細に説明する。
【００１６】
図１は、偽陽性を減少させるために複数のインラインヒューリスティックを使用するための例示的なシステム１００のブロック図である。この図に示されるように、例示的なシステム１００は、１つまたは複数のタスクを実施するための１つまたは複数のモジュール１０２を含むことがある。例えば、以下でより詳細に説明するように、例示的なシステム１００は、ヒューリスティックを訓練するようにプログラムされた訓練モジュール１０４を含むことがある。また、例示的なシステム１００は、コミュニティまたは企業内でヒューリスティックを展開するようにプログラムされた展開モジュール１０６を含むこともある。
【００１７】
さらに、以下でより詳細に説明するように、例示的なシステム１００は、展開中にヒューリスティックによって生成された偽陽性および真陽性を識別するようにプログラムされた識別モジュール１０８を含むこともある。また、例示的なシステム１００は、１）フィールドからの結果を含むように訓練データを修正し、２）この修正された訓練データを使用してさらなるヒューリスティックを作成するようにプログラムされた調整モジュールも含むことがある。個別の要素として図示されているが、図１のモジュール１０２の１つまたは複数が、単一のモジュールまたはアプリケーションの一部を表すこともある。
【００１８】
いくつかの実施形態では、図１のモジュール１０２の１つまたは複数は、計算装置によって実行されたときに計算装置に１つまたは複数のタスクを実施させることができる１つまたは複数のソフトウェアアプリケーションまたはプログラムを表すことがある。例えば、以下でより詳細に説明するように、モジュール１０２の１つまたは複数は、図２に示される装置（例えば計算サブシステム２０２および２０６（１）〜２０６（Ｎ））、図７の計算システム７１０、および／または図８の例示的なネットワークアクチュエータ８００の一部など、１つまたは複数の計算装置に記憶され、そこで実行されるように構成されたソフトウェアモジュールを表すことがある。また、図１のモジュール１０２の１つまたは複数は、１つまたは複数のタスクを実施するように構成された１つまたは複数の専用コンピュータの全体または一部を表こともある。
【００１９】
図１に示されるように、例示的なシステム１００は、１つまたは複数のデータベース１２０を含むこともある。データベース１２０は、単一のデータベースもしくは計算装置の一部または複数のデータベースもしくは計算装置を表すことがある。一実施形態では、データベース１２０は、訓練データ１２２およびフィールドデータ１２４を記憶するように構成されることがある。以下でより詳細に説明するように、訓練データ１２２は、ヒューリスティックを訓練するために使用することができる既知のサンプルのコーパスを表すことがある。対照的に、フィールドデータ１２４は、１）ヒューリスティックによって分類されたサンプルコーパス、および／または２）ヒューリスティックによってこれらのサンプルに割り当てられた分類を識別または包含する（ヒューリスティックが展開されている計算システムから収集された）データを表すことがある。
【００２０】
図１のデータベース１２０は、１つまたは複数の計算装置の一部を表すことがある。例えば、データベース１２０は、図２での計算サブシステム２０２および２０６（１）〜２０６（Ｎ）の一部、図７の計算システム７１０、および／または図８の例示的なネットワークアーキテクチャ８００の一部を表すことがある。あるいは、図１のデータベース１２０は、図２の計算サブシステム２０２および２０６（１）〜２０６（Ｎ）、図７の計算システム７１０、および／または図８の例示的なネットワークアーキテクチャ８００の一部など、計算装置がアクセスすることができる１つまたは複数の物理的に別個の装置を表すことがある。
【００２１】
図１の例示的なシステム１００は、様々な方法で展開することができる。例えば、例示的なシステム１００の全体または一部が、図２に示される例示的なシステム２００などクラウドコンピューティング環境またはネットワークベース環境の一部を表すことがある。クラウドコンピューティング環境は、インターネットを介して様々なサービスおよびアプリケーションを提供することができる。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザまたは他の遠隔インターフェースを介してアクセス可能になることがある。本明細書で述べる様々な機能は、遠隔のデスクトップ環境または任意の他のクラウドベースのコンピューティング環境によって提供することができる。
【００２２】
図２に示されるように、例示的なシステム２００は、ネットワーク２０４を介して計算サブシステム２０６（１）〜２０６（Ｎ）と通信する計算サブシステム２０２を含むことがある。一実施形態では、以下でより詳細に述べるように、計算装置２０２にあるモジュール１０２は、１）１組の訓練データを使用して第１のヒューリスティックを訓練し、２）（例えば以下で説明するように計算サブシステム２０６（１）〜２０６（Ｎ）上で）第１のヒューリスティックを展開し、３）展開中の第１のヒューリスティックによって生成された偽陽性を識別し、４）第１のヒューリスティックによって生成された偽陽性を含むように訓練データを修正し、５）修正された訓練データを使用して第２のヒューリスティックを作成し、６）（例えば以下で説明するように計算サブシステム２０６（１）〜２０６（Ｎ）上で）第１のヒューリスティックと第２のヒューリスティックの両方を展開し、次いで７）（例えば以下で説明するように計算サブシステム２０６（１）〜２０６（Ｎ）上で）第１のヒューリスティックと第２のヒューリスティックの両方を順次に１組のフィールドデータに適用するようにプログラムすることができる。
【００２３】
計算サブシステム２０２および２０６（１）〜２０６（Ｎ）は、コンピュータ実行可能命令を読み取ることができる任意の種類または形態の計算装置を全般的に表す。計算サブシステム２０２および２０６（１）〜２０６（Ｎ）の例としては、限定はしないが、ラップトップコンピュータ、デスクトップコンピュータ、サーバ（様々なデータベースサービスを提供する、および／または何らかのソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバおよびデータベースサーバ）、セルラ電話、個人用携帯情報端末（ＰＤＡ）、マルチメディアプレーヤ、組込みシステム、それらのうちの１つまたは複数の組合せ、図７の例示的な計算システム７１０、または任意の他の適切な計算装置が挙げられる。
【００２４】
一例では、計算サブシステム２０２は、ヒューリスティックを作成して計算サブシステム２０６（１）〜２０６（Ｎ）に展開するように構成されたサーバまたはバックエンドを表すことがある。この例では、計算サブシステム２０６（１）〜２０６（Ｎ）は、単一のコミュニティまたは複数のコミュニティの全体または一部を表すことがある。例えば、計算サブシステム２０６（１）〜２０６（Ｎ）は、単一または複数のユーザ基盤、単一または複数の企業、あるいはそれらのうちの１つまたは複数の一部または組合せの中にある計算システムを表すことがある。
【００２５】
ネットワーク２０４は、通信またはデータ転送を容易くすることができる任意の媒体またはアーキテクチャを全般的に表す。ネットワーク２０４の例としては、限定はしないが、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラネットワーク（例えばＧＳＭネットワーク）、図８の例示的なネットワークアーキテクチャ８００などが挙げられる。ネットワーク２０４は、無線または有線接続を使用して通信またはデータ転送を容易くすることができる。一実施形態では、ネットワーク２０４は、計算サブシステム２０２および２０６（１）〜２０６（Ｎ）の間の通信を容易くすることができる。
【００２６】
図３は、偽陽性を減少させるために複数のインラインヒューリスティックを使用するための例示的なコンピュータ実装方法３００の流れ図である。図３に示されるステップは、任意の適切なコンピュータ実行可能コードおよび／または計算システムによって実施することができる。いくつかの実施形態では、図３に示されるステップは、図１のシステム１００および／または図２のシステム２００の構成要素の１つまたは複数によって実施することができる。
【００２７】
図３のステップ３０２で、本明細書で述べるシステムの１つまたは複数が、１組の訓練データを使用して第１のヒューリスティックを訓練することがある。例えば、図１の訓練モジュール１０４（上で詳述したように、図２の計算サブシステム２０２の一部を表すことがある）が、訓練データ１２２を使用して第１のヒューリスティックを訓練することがある。上で詳述したように、このヒューリスティックは（本明細書で述べるすべての他のヒューリスティックと同様に）任意の種類または形態の決定ベースアルゴリズムを表すことがある。いくつかの例では、このヒューリスティックは、マルウェアを検出および識別するように構成されたマルウェア検出ヒューリスティック（例えば決定木）を表すことがある。
【００２８】
訓練モジュール１０４は、様々な方法でヒューリスティックを訓練することができる。例えば、訓練モジュール１０４は、最初のバージョンのヒューリスティック（すなわち第１のヒューリスティック）を、コンピュータ室など制御された環境内にある既知のサンプルのコーパス（例えば、既知の悪意のあるファイルおよび既知の正当なファイルを含むサンプルコーパスを表すことがある訓練データ１２２）に適用することができる。次いで、訓練モジュール１０４は、ヒューリスティックが既知のサンプルのコーパス中の各サンプルを正しく分類したかどうか判断することができる。訓練モジュール１０４は、ヒューリスティックが分類を誤った訓練データ１２２中のサンプルが許容数を超えていると判断した場合、ヒューリスティックの精度を改良することを試みてヒューリスティックの基本アルゴリズムを微調整または修正することがある。次いで、訓練モジュール１０４は、許容範囲内の正解率が実現されるまでこのプロセスを繰り返すことができる。
【００２９】
図３に戻ると、ステップ３０４で、本明細書で述べる様々なシステムが、ステップ３０２で訓練された第１のヒューリスティックを展開することができる。例えば、図１の展開モジュール１０６（上で詳述したように、図２の計算サブシステム２０２の一部を表すことがある）が、ステップ３０２で訓練されたヒューリスティックを、計算サブシステム２０２からネットワーク２０４を介して１つまたは複数の計算サブモジュール２０６（１）〜２０６（Ｎ）に展開することができる。
【００３０】
上で詳述したように、一例では、計算サブシステム２０２は、ヒューリスティックを訓練して計算サブシステム２０６（１）〜２０６（Ｎ）に展開するように構成されたサーバおよびバックエンドを表すことがある。この例では、計算サブシステム２０６（１）〜２０６（Ｎ）は、単一のコミュニティまたは複数のコミュニティの全体または一部を表すことがある。例えば、計算サブシステム２０６（１）〜２０６（Ｎ）は、単一または複数のユーザ基盤、単一または複数の企業、あるいはそれらのうちの１つまたは複数の一部または組合せの中にある計算システムを表すことがある。
【００３１】
ステップ３０６で、本明細書で述べる様々なシステムが、展開中の第１のヒューリスティックによって生成された偽陽性を識別することができる。例えば、識別モジュール１０８（上で詳述したように、図２の計算サブシステム２０２の一部を表すことがある）が、ステップ３０２で訓練された第１のヒューリスティックが計算サブシステム２０６（１）〜２０６（Ｎ）で展開されたときに生成された偽陽性を識別することができる。
【００３２】
識別モジュール１０８は、当技術分野で知られているあらゆる様々な従来の技法の使用を含め様々な方法で、展開中のヒューリスティックによって生成された偽陽性を識別することができる。一例では、識別モジュール１０８は、ヒューリスティックによって分類された様々なサンプルと、ヒューリスティックによってこれらのサンプルに割り当てられた分類との両方を識別する情報を（例えばヒューリスティックが展開されているフィールドのシステムから）受信することができる。いくつかの場合には、この情報は、サンプル自体のコピーを含むこともある。次いで、識別モジュール１０８は、ヒューリスティックが各サンプルを正しく分類したかどうか判断するために、このフィールドデータを分析することができる。特に、識別モジュール１０８は、ヒューリスティックが偽陽性を生成したかどうか判断するために、このフィールドデータを分析することができる。
【００３３】
例えば、識別モジュール１０８は、計算サブシステム２０２の一部として、計算サブシステム２０６（１）〜２０６（Ｎ）からフィールドデータ１２４を受信することができる。マルウェア検出ヒューリスティックの場合、フィールドデータ１２４は、１）マルウェア検出ヒューリスティックによって分類された計算サブシステム２０６（１）〜２０６（Ｎ）上の様々なファイルと、２）マルウェア検出ヒューリスティックによってこれらのファイルに割り当てられた分類（例えば「正当なファイル」または「悪意のあるファイル」）とを識別または包含することができる。
【００３４】
次いで、識別モジュール１０８は、マルウェア検出ヒューリスティックが各ファイルを正しく分類したかどうか判断するために、フィールドデータ１２４を分析することができる。この分析中、識別モジュール１０８は、マルウェア検出ヒューリスティックによって生成された真陽性（例えば、正当なものとして正しく分類された正当なファイル）と偽陽性（例えば、悪意のあるものとして誤って分類された正当なファイル）を識別することができる。
【００３５】
図３に戻ると、ステップ３０８で、本明細書で述べるシステムは、展開中の第１のヒューリスティックによって生成された偽陽性を含むように訓練データを修正することができる。例えば、図４に示されるように、図１からの調整モジュール１１０（上で詳述したように、図２の計算サブシステム２０２の一部を表すことがある）が、フィールドデータ１２４から、訓練データ１２２を含む元のサンプルコーパスに真陽性１２６および偽陽性１２８を追加することができる。
【００３６】
図３に戻ると、ステップ３１０で、本明細書で述べるシステムは、ステップ３０８からの修正された訓練データを使用して第２のヒューリスティックを作成することができる。例えば、調整モジュール１１０が、計算サブシステム２０２の一部として、図４の修正された訓練データ４０２を使用して第２のヒューリスティックを作成することができる。
【００３７】
調整モジュール１１０は、様々な方法でこの第２のヒューリスティックを作成することができる。例えば、図５に示されるように、図１からの調整モジュール１１０は、第１のヒューリスティックを作成するために使用された機械学習技法５０２を修正された訓練データ４０２に適用することによって、第２のヒューリスティック５１４を作成することができる。
【００３８】
ステップ３１２で、本明細書で述べるシステムは、第１のヒューリスティックと第２のヒューリスティックの両方を展開することができる。例えば、図１からの展開モジュール１０６が、計算サブシステム２０２に、第１のヒューリスティック５１２と第２のヒューリスティック５１４の両方を、ネットワーク２０４を介して計算サブシステム２０６（１）〜２０６（Ｎ）に展開するように動作させることができる。
【００３９】
少なくとも１つの例では、展開モジュール１０６は、第２のヒューリスティック５１４をフィールド試験する前にそれを展開することができる。例えば、以下に論じるように、展開モジュール１０６は、第１のヒューリスティック５１２と第２のヒューリスティック５１４の両方を順次に適用することができるので、フィールドデータを使用して第２のヒューリスティック５１４を試験および洗練する必要なく、作成後に即座に第２のヒューリスティック５１４を展開することができる。
【００４０】
ステップ３１４で、本明細書で述べるシステムは、第１のヒューリスティックと第２のヒューリスティックの両方を順次に１組のフィールドデータに適用することができる。例えば、展開モジュール１０６は、図５の第１のヒューリスティック５１２と第２のヒューリスティック５１４の両方を順次に、計算サブシステム２０６（１）〜２０６（Ｎ）上の１組のフィールドデータに適用することができる。
【００４１】
本明細書で述べるシステムは、様々な方法でステップ３１４を実施することができる。一例では、図６に示されるように、展開モジュール１０６は、１）（例えばフィールドデータ６０２を第１のヒューリスティック５１２に通すことによって）第１のヒューリスティック５１２をフィールドデータ６０２に適用し、次いで第１のヒューリスティック５１２を適用した後に、２）（例えばフィールドデータ６０２を第２のヒューリスティック５１４に通すことによって）第２のヒューリスティック５１４をフィールドデータ６０２に適用することによって、第１のヒューリスティック５１２と第２のヒューリスティック５１４の両方を１組のフィールドデータ６０２に適用することができる。ステップ３１２の完了後、図３の例示的な方法３００を終了することができる。
【００４２】
いくつかの例では、展開モジュール１０６は、第１のヒューリスティック５１２によって生成された分類結果６０４を第２のヒューリスティック５１４によって生成された分類結果６０６と比較して、既知の偽陽性を識別してなくすことができる。例えば、識別モジュール１０８は、（ステップ３０６に関連付けて上で詳述したように）第１のヒューリスティック５１２がフィールドで最初に展開されたときに第１のヒューリスティック５１２によって生成された様々な偽陽性を予め識別しているので、展開モジュール１０６は、これらの偽陽性が分類結果６０４および６０６に含まれているかどうか判断することができ、含まれている場合には、それを訂正するか廃棄することができる。
【００４３】
本明細書で述べるシステムおよび方法は、第１のヒューリスティックと第２のヒューリスティックの両方を順次に適用することによって、これらのヒューリスティックによって集成として生成される偽陽性の数を効果的に減少させることができる。例えば、第２のヒューリスティックが第１のヒューリスティックとは異なる偽陽性特性を有することがあるが（例えば、第２のヒューリスティックは、第１のヒューリスティックとの相違により、第１のヒューリスティックによって正しく分類されたサンプルに対して偽陽性を生成することがある）、両方のヒューリスティックを順次に適用することで、第１のヒューリスティックが生成しなかった新たな偽陽性をこれら２つのヒューリスティックが集成として生成することを防止することができる。すなわち、本明細書で開示するシステムおよび方法は、これらのヒューリスティックを順次に適用することによって、第１のヒューリスティックが正しく分類したサンプルに対してこれらのヒューリスティックが偽陽性を集成として生成するのを防止することができる。
【００４４】
したがって、本明細書で開示するシステムおよび方法は、偽陽性率に悪影響を及ぼすことなく、ヒューリスティックの全体の精度を向上させることができる。さらに、開発者は、第２のヒューリスティックをフィールド試験する必要なく即座にそれを展開することができるので、これらのシステムおよび方法は、開発者が、大幅に長い開発時間をかけることなく、ヒューリスティックによって生成される偽陽性の数を迅速かつ効果的に減少させることができるようにする。
【００４５】
図７は、本願で説明および／または図示する実施形態の１つまたは複数を実施することができる例示的な計算システム７１０のブロック図である。計算システム７１０は、コンピュータ可読命令を実行することができる任意のシングルプロセッサまたはマルチプロセッサ計算装置またはシステムを広範に表す。計算システム７１０の例としては、限定はしないが、ワークステーション、ラップトップコンピュータ、クライアント側の端末、サーバ、分散コンピューティングシステム、ハンドヘルド装置、または任意の他の計算システムもしくは装置が挙げられる。その最も基本的な構成では、計算システム７１０は、少なくとも１つのプロセッサ７１４と、システムメモリ７１６とを含むことができる。
【００４６】
プロセッサ７１４は、データを処理することができる、または命令を解釈および実行することができる任意の種類または形態の処理ユニットを全般的に表す。いくつかの実施形態では、プロセッサ７１４は、ソフトウェアアプリケーションまたはモジュールから命令を受信することができる。これらの命令は、本願で説明および／または図示する１つまたは複数の例示的実施形態の機能をプロセッサ７１４に実施させることができる。例えば、プロセッサ７１４は、単独で、または他の要素と組み合わせて、本明細書で述べる訓練、展開、識別、調整、複製、修正、再訓練、および使用ステップの１つまたは複数を実施することができ、および／またはそれらを実施するための手段であってよい。また、プロセッサ７１４は、本願で説明および／または図示する任意の他のステップ、方法、またはプロセスを実施することもでき、および／またはそれらを実施するための手段であってもよい。
【００４７】
システムメモリ７１６は、データおよび／または他のコンピュータ可読命令を記憶することができる任意の種類または形態の揮発性または不揮発性記憶装置または媒体を全般的に表す。システムメモリ７１６の例としては、限定はしないが、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、または任意の他の適切なメモリ装置が挙げられる。必ずそうである必要はないが、いくつかの実施形態では、計算システム７１０は、揮発性メモリユニット（例えばシステムメモリ７１６など）と不揮発性メモリ装置（例えば以下で詳細に説明する主記憶装置７３２など）の両方を含むこともある。一例では、図１からのモジュール１０２の１つまたは複数をシステムメモリ７１６にロードすることができる。
【００４８】
いくつかの実施形態では、例示的な計算システム７１０は、プロセッサ７１４およびシステムメモリ７１６に加えて、１つまたは複数の構成要素または要素を含むこともできる。例えば、図７に示されるように、計算システム７１０は、メモリコントローラ７１８と、入出力（Ｉ／Ｏ）制御装置７２０と、通信インターフェース７２２とを含むことがあり、これらはそれぞれ通信インフラストラクチャ７１２を介して相互接続されることがある。通信インフラストラクチャ７１２は、計算装置の１つまたは複数の構成要素間の通信を容易くすることができる任意の種類または形態のインフラストラクチャを全般的に表す。通信インフラストラクチャ７１２の例としては、限定はしないが、通信バス（ＩＳＡ、ＰＣＩ、ＰＣＩｅ、または同様のバスなど）およびネットワークが挙げられる。
【００４９】
メモリコントローラ７１８は、メモリまたはデータを取り扱うことができる、あるいは計算システム７１０の１つまたは複数の構成要素間の通信を制御することができる任意の種類または形態の装置を全般的に表す。例えば、いくつかの実施形態では、メモリコントローラ７１８は、通信インフラストラクチャ７１２を介するプロセッサ７１４と、システムメモリ７１６と、Ｉ／Ｏ制御装置７２０との間の通信を制御することができる。いくつかの実施形態では、メモリコントローラは、単独で、または他の要素と組み合わせて、訓練、展開、識別、調整、複製、修正、再訓練、および使用など、本願で説明および／または図示するステップまたは機能の１つまたは複数を実施することができ、および／またはそれらを実施するための手段であってよい。
【００５０】
Ｉ／Ｏ制御装置７２０は、計算装置の入出力機能を調整および／または制御することができる任意の種類または形態のモジュールを全般的に表す。例えば、いくつかの実施形態では、Ｉ／Ｏ制御装置７２０は、プロセッサ７１４、システムメモリ７１６、通信インターフェース７２２、ディスプレイアダプタ７２６、入力インターフェース７３０、および記憶インターフェース７３４など、計算システム７１０の１つまたは複数の要素間でのデータの転送を制御する、または容易くすることができる。Ｉ／Ｏ制御装置７２０は、例えば、単独で、または他の要素と組み合わせて、本明細書で述べる訓練、展開、識別、調整、複製、修正、再訓練、および使用ステップの１つまたは複数を実施するために使用することができ、および／またはそれらを実施するための手段であってよい。また、Ｉ／Ｏ制御装置７２０は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および／またはそれらを実施するための手段であってもよい。
【００５１】
通信インターフェース７２２は、例示的な計算システム７１０と１つまたは複数の追加の装置との間の通信を容易くすることができる任意の種類または形態の通信装置またはアダプタを広範に表す。例えば、いくつかの実施形態では、通信インターフェース７２２は、計算システム７１０と、追加の計算システムを含むプライベートネットワークまたはパブリックネットワークとの間の通信を容易くすることができる。通信インターフェース７２２の例としては、限定はしないが、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、および任意の他の適切なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース７２２は、インターネットなどのネットワークへの直接のリンクを介して遠隔サーバへの直接的な接続を提供することができる。また、通信インターフェース７２２は、そのような接続を、例えばローカルエリアネットワーク（イーサネットネットワークなど）、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、セルラ電話接続、衛星データ接続、または任意の他の適切な接続を介して間接的に提供することもできる。
【００５２】
いくつかの実施形態では、通信インターフェース７２２は、外部バスまたは通信チャネルを介して計算システム７１０と１つまたは複数の追加のネットワークまたは記憶装置との間の通信を容易くするように構成されたホストアダプタを表すこともある。ホストアダプタの例としては、限定はしないが、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ１３９４ホストアダプタ、ＳＡＴＡおよびｅＳＡＴＡホストアダプタ、ＡＴＡおよびＰＡＴＡホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネットアダプタなどが挙げられる。また、通信インターフェース７２２は、計算システム７１０が、分散コンピューティングまたは遠隔コンピューティングに従事できるようにすることもできる。例えば、通信インターフェース７２２は、命令を実行するために、遠隔装置から命令を受信する、または遠隔装置に命令を送信することができる。いくつかの実施形態では、通信インターフェース７２２は、単独で、または他の要素と組み合わせて、本明細書で開示する訓練、展開、識別、調整、複製、修正、再訓練、および使用ステップの１つまたは複数を実施することができ、および／またはそれらを実施するための手段であってよい。また、通信インターフェース７２２は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および／またはそれらを実施するための手段であってもよい。
【００５３】
図７に示されるように、計算システム７１０は、ディスプレイアダプタ７２６を介して通信インフラストラクチャ７１２に結合された少なくとも１つのディスプレイ装置７２４を含むこともある。ディスプレイ装置７２４は、ディスプレイアダプタ７２６によって転送された情報を視覚的に表示することができる任意の種類または形態の装置を全般的に表す。同様に、ディスプレイアダプタ７２６は、ディスプレイ装置７２４上に表示するために通信インフラストラクチャ７１２から（または当技術分野で知られているフレームバッファから）グラフィック、テキスト、および他のデータを転送するように構成された任意の種類または形態の装置を全般的に表す。
【００５４】
図７に示されるように、例示的な計算システム７１０は、入力インターフェース７３０を介して通信インフラストラクチャ７１２に結合された少なくとも１つの入力装置７２８を含むこともできる。入力装置７２８は、コンピュータまたは人によって生成された入力を例示的な計算システム７１０に提供することができる任意の種類または形態の入力装置を全般的に表す。入力装置７２８の例としては、限定はしないが、キーボード、ポインティング装置、音声認識装置、または任意の他の入力装置が挙げられる。少なくとも１つの実施形態では、入力装置７２８は、単独で、または他の要素と組み合わせて、本明細書で開示する訓練、展開、識別、調整、複製、修正、再訓練、および使用ステップの１つまたは複数を実施することができ、および／またはそれらを実施するための手段であってよい。また、入力装置７２８は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および／またはそれらを実施するための手段であってもよい。
【００５５】
図７に示されるように、例示的な計算システム７１０は、記憶インターフェース７３４を介して通信インフラストラクチャ７１２に結合された主記憶装置７３２およびバックアップ記憶装置７３３を含むこともできる。記憶装置７３２および７３３は、データおよび／または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶装置または媒体を全般的に表す。例えば、記憶装置７３２および７３３は、磁気ディスクドライブ（例えばいわゆるハードドライブ）、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどでよい。記憶インターフェース７３４は、記憶装置７３２および７３３と計算システム７１０の他の構成要素との間でデータを転送するための任意の種類または形態のインターフェースまたは装置を全般的に表す。一例では、図１からのデータベース１２０が主記憶装置７３２に記憶されることがある。
【００５６】
いくつかの実施形態では、記憶装置７３２および７３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成された着脱可能な記憶ユニットからの読み出しおよび／またはそのような記憶ユニットへの書き込みを行うように構成されることがある。適切な着脱可能な記憶ユニットの例としては、限定はしないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置などが挙げられる。また、記憶装置７３２および７３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を計算システム７１０にロードできるようにするための他の同様の構造または装置を含むこともできる。例えば、記憶装置７３２および７３３は、ソフトウェア、データ、または他のコンピュータ可読情報の読み出しおよび書き込みを行うように構成されることがある。また、記憶装置７３２および７３３は、計算システム７１０の一部でもよく、または他のインターフェースシステムによってアクセスされる別個の装置でもよい。
【００５７】
いくつかの実施形態では、記憶装置７３２および７３３は、例えば、単独で、または他の要素と組み合わせて、本明細書で開示する訓練、展開、識別、調整、複製、修正、再訓練、および使用ステップの１つまたは複数を実施するために使用することができ、および／またはそれらを実施するための手段であってよい。また、記憶装置７３２および７３３は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および／またはそれらを実施するための手段であってもよい。
【００５８】
多くの他の装置またはサブシステムを計算システム７１０に接続することができる。逆に、図７に示される構成要素および装置は、本願で説明および／または図示する実施形態を実施するためにすべて揃っていなければならないわけではない。また、上で言及した装置およびサブシステムは、図７に示されるのとは異なる方法で相互接続されることもある。また、計算システム７１０は、任意の数のソフトウェア、ファームウェア、および／またはハードウェア構成を採用することができる。例えば、本明細書で開示する例示的実施形態の１つまたは複数を、コンピュータ可読媒体上にコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ぶ）として符合化することができる。語句「コンピュータ可読媒体」は、コンピュータ可読命令を記憶または担持することができる任意の形態の装置、担体、または媒体を全般的に表す。コンピュータ可読媒体の例としては、限定はしないが、搬送波など伝送型媒体や、物理的媒体、例えば磁気記憶媒体（例えばハードディスクドライブおよびフロッピーディスク）、光記憶媒体（例えばＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ）、電子記憶媒体（例えばソリッドステートドライブおよびフラッシュ媒体）、および他の配信システムが挙げられる。
【００５９】
コンピュータプログラムを含むコンピュータ可読媒体は、計算システム７１０にロードすることができる。次いで、コンピュータ可読媒体に記憶されたコンピュータプログラムの全体または一部を、システムメモリ７１６、および／または記憶装置７３２および７３３の様々な部分に記憶することができる。プロセッサ７１４によって実行されるとき、計算システム７１０にロードされたコンピュータプログラムは、本願で説明および／または図示する１つまたは複数の例示的実施形態の機能をプロセッサ７１４に実施させることができ、および／またはプロセッサ７１４を、そのような機能を実施するための手段にすることができる。追加または代替として、本願で説明および／または図示する例示的実施形態の１つまたは複数は、ファームウェアおよび／またはハードウェアの形で実装することができる。例えば、計算システム７１０は、本明細書で開示する例示的実施形態の１つまたは複数を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成することができる。
【００６０】
図８は、クライアントシステム８１０、８２０、および８３０、ならびにサーバ８４０および８４５をネットワーク８５０に結合させることができる例示的なネットワークアーキテクチャ８００のブロック図である。クライアントシステム８１０、８２０、および８３０は、図７の例示的な計算システム７１０など、任意の種類または形態の計算装置またはシステムを全般的に表す。一例では、クライアントシステム８１０は、図１からのシステム１００を含むことができる。
【００６１】
同様に、サーバ８４０および８４５は、様々なデータベースサービスを提供するように、および／または何らかのソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバやデータベースサーバなどの計算装置またはシステムを全般的に表す。ネットワーク８５０は、例えばイントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、またはインターネットを含めた任意の遠隔通信ネットワークまたはコンピュータネットワークを全般的に表す。
【００６２】
図８に示されるように、１つまたは複数の記憶装置８６０（１）〜（Ｎ）をサーバ８４０に直接取り付けることができる。同様に、１つまたは複数の記憶装置８７０（１）〜（Ｎ）をサーバ８４５に直接取り付けることができる。記憶装置８６０（１）〜（Ｎ）および８７０（１）〜（Ｎ）は、データおよび／または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶装置または媒体を全般的に表す。いくつかの実施形態では、記憶装置８６０（１）〜（Ｎ）および記憶装置８７０（１）〜（Ｎ）は、ＮＦＳ、ＳＭＢ、またはＣＩＦＳなど様々なプロトコルを使用してサーバ８４０および８４５と通信するように構成されたネットワークアタッチストレージ（ＮＡＳ）装置を表すことがある。
【００６３】
また、サーバ８４０および８４５が、ストレージエリアネットワーク（ＳＡＮ）ファブリック８８０に接続されることもある。ＳＡＮファブリック８８０は、複数の記憶装置間の通信を容易くすることができる任意の種類または形態のコンピュータネットワークまたはアーキテクチャを全般的に表す。ＳＡＮファブリック８８０は、サーバ８４０および８４５と複数の記憶装置８９０（１）〜（Ｎ）および／またはインテリジェントストレ−ジアレイ８９５との間の通信を容易くすることができる。また、ＳＡＮファブリック８８０は、ネットワーク８５０ならびにサーバ８４０および８４５を介するクライアントシステム８１０、８２０、および８３０と記憶装置８９０（１）〜（Ｎ）および／またはインテリジェントストレ−ジアレイ８９５との間の通信を容易くすることもでき、それにより、装置８９０（１）〜（Ｎ）およびアレイ８９５は、クライアントシステム８１０、８２０、および８３０へのローカル接続装置のように見える。記憶装置８６０（１）〜（Ｎ）および記憶装置８７０（１）〜（Ｎ）と同様に、記憶装置８９０（１）〜（Ｎ）およびインテリジェントストレ−ジアレイ８９５は、データおよび／または他のコンピュータ可読命令を記憶することができる任意の種類または形態の記憶装置または媒体を全般的に表す。
【００６４】
いくつかの実施形態では、図７の例示的な計算システム７１０を参照すると、図７の通信インターフェース７２２などの通信インターフェースを使用して、各クライアントシステム８１０、８２０、および８３０とネットワーク８５０の間の接続性を提供することができる。クライアントシステム８１０、８２０、および８３０は、例えばウェブブラウザや他のクライアントソフトウェアを使用して、サーバ８４０および８４５上の情報にアクセスすることができることがある。そのようなソフトウェアは、クライアントシステム８１０、８２０、および８３０が、サーバ８４０、サーバ８４５、記憶装置８６０（１）〜（Ｎ）、記憶装置８７０（１）〜（Ｎ）、記憶装置８９０（１）〜（Ｎ）、またはインテリジェントストレ−ジアレイ８９５によってホストされたデータにアクセスできるようにすることができる。図８は、データを交換するためのネットワーク（インターネットなど）の使用を示すが、本願で説明および／または図示する実施形態は、インターネットまたは任意の特定のネットワークベース環境に限定されない。
【００６５】
少なくとも１つの実施形態では、本明細書で開示した１つまたは複数の例示的実施形態の全部または一部をコンピュータプログラムとして符合化することができ、サーバ８４０、サーバ８４５、記憶装置８６０（１）〜（Ｎ）、記憶装置８７０（１）〜（Ｎ）、記憶装置８９０（１）〜（Ｎ）、インテリジェントストレ−ジアレイ８９５、またはそれらの任意の組合せにロードし、それらによって実行することができる。また、本明細書で開示する１つまたは複数の例示的実施形態の全部または一部をコンピュータプログラムとして符合化し、サーバ８４０に記憶し、サーバ８４５によって実行し、ネットワーク８５０を介してクライアントシステム８１０、８２０、および８３０に分散することもできる。したがって、ネットワークアーキテクチャ８００は、単独で、または他の要素と組み合わせて、本明細書で開示する訓練、展開、識別、調整、複製、修正、再訓練、および使用ステップの１つまたは複数を実施することができ、および／またはそれらを実施するための手段であってよい。また、ネットワークアーキテクチャ８００は、本開示に記載する他のステップおよび機能を実施するために使用することもでき、および／またはそれらを実施するための手段であってもよい。
【００６６】
上で詳述したように、計算システム７１０、および／またはネットワークアーキテクチャ８００の１つまたは複数の構成要素は、単独で、または他の要素と組み合わせて、偽陽性を減少させるために複数のインラインヒューリスティックを使用するための例示的な方法の１つまたは複数のステップを実施することができ、および／またはそれらを実施するための手段であってよい。一例では、そのような方法は、１）１組の訓練データを使用して第１のヒューリスティックを訓練するステップと、２）第１のヒューリスティックを展開するステップと、３）展開中の第１のヒューリスティックによって生成された偽陽性を識別するステップと、４）第１のヒューリスティックによって生成された偽陽性を含むように訓練データを修正するステップと、５）修正された訓練データを使用して第２のヒューリスティックを作成するステップと、６）第１のヒューリスティックと第２のヒューリスティックの両方を展開するステップと、次いで７）第１のヒューリスティックと第２のヒューリスティックの両方を順次に１組のフィールドデータに適用するステップとを含む。
【００６７】
いくつかの例では、この方法は、展開中の第１のヒューリスティックによって生成された真陽性を識別するステップも含むことがある。この例では、訓練データを修正するステップは、展開中の第１のヒューリスティックによって生成された真陽性も含むように訓練データを修正するステップを含むことができる。一例では、第１および第２のヒューリスティックは、マルウェア検出決定木などマルウェア検出ヒューリスティックを表すことがある。
【００６８】
いくつかの実施形態では、修正された訓練データを使用して第２のヒューリスティックを作成するステップは、第１のヒューリスティックを作成するために使用された機械学習技法を修正された訓練データに適用するステップを含むことができる。さらに、第１のヒューリスティックと第２のヒューリスティックの両方を順次にフィールドデータに適用するステップは、第１のヒューリスティックをフィールドデータに適用するステップと、次いで第１のヒューリスティックを適用した後に、第２のヒューリスティックをフィールドデータに適用するステップとを含むことがある。
【００６９】
一例では、展開中の第１のヒューリスティックによって生成された偽陽性を識別するステップが、第１のヒューリスティックをフィールドデータに適用したときに生成された偽陽性を識別するステップを含むことがある。さらに、第２のヒューリスティックを展開するステップは、第２のヒューリスティックをフィールド試験する前にそれを展開するステップを含むことがある。
【００７０】
前述の開示では、特定のブロック図、流れ図、および例を使用して様々な実施形態を記載してきたが、本願で説明および／または図示した各ブロック図の構成要素、流れ図のステップ、操作、および／または構成要素は、多様なハードウェア構成、ソフトウェア構成、またはファームウェア構成（またはそれらの任意の組合せ）を使用して、個別に、および／またはまとめて実装することができる。さらに、他の構成要素に含まれた構成要素の開示はどれも、同じ機能を実現するために多くの他のアーキテクチャを実装することができるので、例示的な性質のものとみなすべきである。
【００７１】
本願で説明および／または図示したプロセスパラメータおよびステップのシーケンスは、単に例として提示したものであり、望みに応じて変えることができる。例えば、本明細書で図示および／または説明したステップは、特定の順序で図示または論述していることがあるが、これらのステップは、必ずしも図示または論述した順序で行う必要はない。また、本願で説明および／または図示した様々な例示的な方法は、本願で説明または図示したステップの１つまたは複数を省くこともでき、あるいは開示したステップに加えて追加のステップを含むこともできる。
【００７２】
様々な実施形態を、完全に機能する計算システムの文脈で本願で説明および／または図示してきたが、これらの例示的実施形態の１つまたは複数は、実際に分散を行うために使用されるコンピュータ可読媒体の特定の種類には関係なく多様な形態でプログラム製品として分散させることができる。また、本明細書で開示する実施形態は、特定のタスクを実施するソフトウェアモジュールを使用して実装することもできる。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上または計算システム内に記憶されることがあるスクリプト、バッチ、または他の実行可能なファイルを含むことがある。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書で開示する例示的実施形態の１つまたは複数を実施するように計算システムを構成することができる。
【００７３】
さらに、本明細書で述べるモジュールの１つまたは複数は、データ、物理的装置、および／または物理的装置の表現を、ある形態から別の形態に変えることがある。例えば、調整モジュール１１０は、訓練データ１２２を修正し、次いでそれ（例えば修正された訓練データ４０２）をデータベース１２０に記憶することによって、データベース１２０のプロパティまたは特性を変えることができる。
【００７４】
前述の説明は、本明細書に開示する例示的実施形態の様々な態様を当業者が最も良く利用できるように提示した。この例示的な説明は、網羅的なものとは意図されておらず、また開示した任意の厳密な形態に限定されるものとも意図されていない。本開示の精神および範囲から逸脱することなく、多くの修正形態および変形形態が可能である。本明細書で開示した実施形態は、すべての点で例示とみなされるべきであり、限定とみなされるべきではない。本開示の範囲を決定するに当たっては、添付の特許請求の範囲およびそれらの均等箇所を参照すべきである。
【００７５】
特に断りのない限り、本明細書および特許請求の範囲で使用する単数形は、「少なくとも１つ」を意味するものと解釈すべきである。さらに、使いやすいように、本明細書および特許請求の範囲で使用する語「含む」および「有する」は、語「備える」と交換可能であり、同じ意味を有するものとする。
【図１】
0005987088.tif 000002
【図２】
0005987088.tif 000003
【図３】
0005987088.tif 000004
【図４】
0005987088.tif 000005
【図５】
0005987088.tif 000006
【図６】
0005987088.tif 000007
【図７】
0005987088.tif 000008
【図８】
0005987088.tif 000009