(57)【要約】      （修正有）【課題】悪意のあるオブジェクトを分類するための方法およびシステムを提供する。【解決手段】方法は、コンピュータシステムのオブジェクトの状態を記述するデータを収集し、特徴ベクトルを形成し、当該ベクトルに基づいて類似度を算出し、分類されるオブジェクトが確実に他のクラスに属する確率を特徴付ける数値である差分の限界度を算出し、類似度と差分の限界度とに基づいて、オブジェクトのクラスを決定するための尺度を形成し、データが尺度を満たす場合、当該オブジェクトは決定されたクラスに属すると決定し、データを、データ収集規則により定義される時間期間にわたり収集し、オブジェクトが指定されたクラスに属すると判定された場合、当該オブジェクトは悪意のあるものであると宣言する。【選択図】なし【特許請求の範囲】
【請求項１】
コンピュータシステム上の悪意のあるオブジェクトを検出する方法であって、
コンピュータシステムのオブジェクトの状態を記述するデータを収集し、
前記オブジェクトの状態を特徴付ける特徴のベクトルを形成し、
形成された特徴のベクトルに基づいて類似度を算出し、当該類似度は、分類されるオブジェクトが所与のクラスに属し得る確率を特徴付ける数値であり、
当該分類されるオブジェクトが確実に他のクラスに属する確率を特徴付ける数値である差分の限界度を算出し、
前記類似度と前記差分の限界度とに基づいて、当該オブジェクトのクラスを決定するための尺度を形成し、
前記データが前記尺度を満たす場合、当該オブジェクトは決定されたクラスに属すると決定し、前記データはデータ収集規則により定義される時間期間にわたり収集され、
前記オブジェクトが指定されたクラスに属すると決定された場合、当該オブジェクトは悪意のあるものであると宣言する、
ことを含む方法。
【請求項２】
前記尺度は、前記類似度と前記差分の限界度との間の確立された相関によって前記オブジェクトを分類するための規則である、請求項１に記載の方法。
【請求項３】
前記類似度と前記差分の限界度との間の相関は、前記類似度と前記差分の限界度との間の距離と所定の閾値との差分、前記類似度と前記差分の限界度との間の所与の時間間隔内に境界付けられた領域と所定の閾値との差分、有害性の程度と前記差分の限界度の変化を記述する曲線の相互成長率と所定値との差分のうち１つまたは複数である、請求項２に記載の方法。
【請求項４】
前記特徴のベクトルは、一組の数の形でまとめられた、収集されたデータのコンボリューションである、請求項１に記載の方法。
【請求項５】
前記データ収集規則は、前記オブジェクトの異なる状態間の時間間隔が所定の値を満足することと、前記オブジェクトの状態の変化をもたらす前記コンピュータシステムのパラメータの変化が所定の値を満足することと、のうちの１つである、請求項１に記載の方法。
【請求項６】
前記算出される前記差分の限界度は前記類似度に依存し、前記差分の限界度は、前記オブジェクトを作成する瞬間において、前記オブジェクトの状態の第１の変化の瞬間において、及び、前記オブジェクトの静的パラメータの分析に基づいて、のうちの１つにおいて算出される、請求項１に記載の方法。
【請求項７】
前記データ収集規則によって定義される期間中に、少なくとも２つの類似度および差分の限界度が算出されている場合、連続して算出された類似度および差分の限界度の組は、所定の時間則によって記述される、請求項１に記載の方法。
【請求項８】
前記連続して算出された類似度および前記連続して算出された差分の限界度を記述する前記時間則は、単調である、請求項７に記載の方法。
【請求項９】
コンピュータシステム上の悪意のあるオブジェクトを検出するためのシステムであって
コンピュータシステムのオブジェクトの状態を記述するデータを収集し、
前記オブジェクトの状態を特徴付ける特徴のベクトルを形成し、
形成された特徴のベクトルに基づいて類似度を算出し、当該類似度は、分類されるオブジェクトが所与のクラスに属し得る確率を特徴付ける数値であり、
当該分類されるオブジェクトが確実に他のクラスに属する確率を特徴付ける数値である差分の限界度を算出し、
前記類似度と前記差分の限界度とに基づいて、当該オブジェクトのクラスを決定するための尺度を形成し、
前記データが前記尺度を満たす場合、当該オブジェクトは決定されたクラスに属すると決定し、前記データはデータ収集規則により定義される時間期間にわたって収集され、
前記オブジェクトが指定されたクラスに属すると決定された場合、当該オブジェクトは悪意のあるものであると宣言する、
ように構成されたハードウェアプロセッサを備える、システム。
【請求項１０】
前記尺度は、前記類似度と前記差分の限界度との間の確立された相関によって前記オブジェクトを分類するための規則である、請求項９に記載のシステム。
【請求項１１】
前記類似度と前記差分の限界度との間の相関は、前記類似度と前記差分の限界度との間の距離と所定の閾値との差分、前記類似度と前記差分の限界度との間の所与の時間間隔内に境界付けられた領域と所定の閾値との差分、有害性の程度と前記差分の限界度の変化を記述する曲線の相互成長率と所定値との差分のうちの1つまたは複数である、請求項１０に記載のシステム。
【請求項１２】
前記特徴のベクトルは、一組の数の形でまとめられた、収集されたデータのコンボリューションである、請求項９に記載のシステム。
【請求項１３】
前記データ収集規則は、前記オブジェクトの異なる状態間の時間間隔が所定の値を満足することと、前記オブジェクトの状態の変化をもたらす前記コンピュータシステムのパラメータの変化が所定の値を満足することと、のうちの1つである、請求項９に記載のシステム。
【請求項１４】
前記算出される前記差分の限界度は前記類似度に依存し、前記差分の限界度は、前記オブジェクトを作成する瞬間において、前記オブジェクトの状態の第1の変化の瞬間において、及び、前記オブジェクトの静的パラメータの分析に基づいて、のうちの1つにおいて算出される、請求項９に記載のシステム。
【請求項１５】
前記データ収集規則によって定義される期間中に、少なくとも2つの類似度および差分の限界度が算出されている場合、連続して算出された類似度および差分の限界度の組は、所定の時間則によって記述される、請求項９に記載のシステム。
【請求項１６】
前記連続して算出された類似度および前記連続して算出された差分の限界度を記述する前記時間則は、単調である、請求項１５に記載のシステム。
【請求項１７】
コンピュータシステム上の悪意のあるオブジェクトを検出するための命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、
コンピュータシステムのオブジェクトの状態を記述するデータを収集し、
前記オブジェクトの状態を特徴付ける特徴のベクトルを形成し、
形成された特徴のベクトルに基づいて類似度を算出し、当該類似度は、分類されるオブジェクトが所与のクラスに属し得る確率を特徴付ける数値であり、
当該分類されるオブジェクトが確実に他のクラスに属する確率を特徴付ける数値である差分の限界度を算出し、
前記類似度と前記差分の限界度とに基づいて、当該オブジェクトのクラスを決定するための尺度を形成し、
前記データが前記尺度を満たす場合、当該オブジェクトは決定されたクラスに属すると決定し、前記データはデータ収集規則により定義される時間期間にわたり収集され、
前記オブジェクトが指定されたクラスに属すると決定された場合、当該オブジェクトは、悪意のあるものであると宣言する
ことを含むコンピュータ可読媒体。
【請求項１８】
前記尺度は、前記類似度と前記差分の限界度との間の確立された相関によって前記オブジェクトを分類するための規則である、請求項１７に記載の媒体。
【請求項１９】
前記類似度と前記差分の限界度との間の相関は、前記類似度と前記差分の限界度との間の距離と所定の閾値との差分、前記類似度と前記差分の限界度との間の所与の時間間隔内に境界付けられた領域と所定の閾値との差分と、有害性の程度と前記差分の限界度の変化を記述する曲線の相互成長率と所定値との差分のうちの1つまたは複数であることを特徴とする、請求項１８に記載の媒体。
【請求項２０】
前記特徴のベクトルは、一組の数の形でまとめられた、収集されたデータのコンボリューションである、請求項１７に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はデータ分析技術に関し、具体的には、コンピュータシステムのオブジェクト分類のシステムおよび方法に関する。
【背景技術】
【０００２】
様々なタイプのコンピューティングデバイス（パーソナルコンピュータ、ノートパソコン、タブレット、スマートフォン等）の普及のみならず、最近の１０年間におけるコンピュータテクノロジーの急速な成長は、多数のタスク（インターネットサーフィンから銀行振替および電子文書トラフィックまで）のための様々な活動分野におけるこれらのデバイスの使用に強く影響を及ぼした。コンピューティングデバイスおよびこれらのデバイス上で実行されるソフトウェアの数の増加と並行して、悪意のあるプログラムの数も急速に増加している。
【０００３】
現在のところ、莫大な数の種類の悪意のあるプログラムが存在する。それらのいくつかは、これらのユーザのデバイスから（ログイン情報およびパスワード、銀行取引情報、電子文書のような）個人のおよび機密のデータを盗む。他のものは、サービスの拒否（ＤＤｏＳ−分散型サービス妨害）のような攻撃のために、または、他のコンピュータまたはコンピュータネットワーク上での総当たりの方法によってパスワードをより分けるために、ユーザの装置からボットネットを形成する。さらに他のものは、煩わしい広告を通じたユーザへの有料のコンテンツ、有料の定期購読、および電話番号へのＳＭＳの送付などを提示する。
【０００４】
悪意のあるプログラムの検出、感染の防止、および悪意のあるプログラムに感染したコンピューティングデバイスの作業能力の回復を含め、アンチウィルスプログラムとして知られる専用のプログラムが悪意のあるプログラムを処理するために使用される。アンチウィルスプログラムは、以下のような様々な悪意のあるプログラムを検出するために様々な技術を使用する:
ａ）静的な分析−分析されるプログラムを構成するファイルに含まれるデータに基づいた、分析されるプログラムの実行またはエミュレーションを含む、有害性についてのプログラムの分析であり、それによって、統計的分析の間に以下を使用することが可能である：
ｂ）シグネチャ分析−悪意のあるプログラムのシグネチャのデータベースから既知のコードシグネチャに対する、分析されるプログラムのコードの特定のセグメントの対応関係を探索すること;
ｃ）ホワイトリストおよびブラックリスト−悪意のあるプログラムのチェックサムのデータベース（ブラックリスト）または安全なプログラムのチェックサムのデータベース（ホワイトリスト）における、分析されるプログラム（またはその一部）の算出されたチェックサムについての検索;
ｄ）動的な分析：分析されるプログラムの実行またはエミュレーションの過程で得られるデータに基づく有害性についてのプログラムの分析であって、それによって、動的な分析の間に以下を使用することが可能である：
ｅ）ヒューリスティックな分析−分析されるプログラムのエミュレーション、（ＡＰＩ関数の呼び出しに関するデータ、送信されたパラメータ、分析されるプログラムのコードセグメント等を含む）エミュレーションログの作成、および、作成されたログのデータと悪意のあるプログラムの行動シグネチャのデータベースからのデータとの間の対応関係についての探索；
ｆ）プロアクティブ保護−分析される起動されたプログラムのＡＰＩ関数の呼び出しのインターセプト、（ＡＰＩ関数の呼び出しに関するデータ、送信されたパラメータ、および、分析されるプログラムのコードセグメントなどを含む）分析されるプログラムの行動のログの作成、および、作成されたログのデータと悪意のあるプログラムの呼び出しのデータベースからのデータとの間の対応関係についての検索。
【０００５】
静的な分析および動的な分析はいずれも利点と欠点とを有する。静的な分析は、分析が実行されているコンピューティングデバイスのリソースの要求が少ない。さらに、静的な分析は、分析されるプログラムの実行またはエミュレーションを必要としないので、静的な分析はより高速であるが、同時に、動的な分析よりも効果的ではない。即ち、静的な分析は、動的な分析よりも悪意のあるプログラムの検出の割合が低く、誤認警報（すなわち、アンチウィルスプログラムによって分析されたファイルが、安全であるのに悪意のあるものであると判断されること）の割合が高い。動的な分析は、分析されるプログラムの実行またはエミュレーション中に得られたデータを使用するため、より遅く、また、分析が実行されているコンピューティングデバイスのリソースに、より高い要求を課すが、より効果的でもある。最新のアンチウィルスプログラムは、静的な分析および動的な分析の両方の要素を含む、包括的な分析を採用している。
【０００６】
コンピュータセキュリティの最新の基準は、悪意のあるプログラム（特に、新しい悪意のあるプログラム）に対する動作上の応答に依存するため、悪意のあるプログラムの自動検出は、主な注目の的である。効果的な自動検出の動作のために、人工知能の要素およびモデルの機械学習の様々な方法（すなわち、悪意のあるファイルを記述する入力データの特定のセットに基づいてファイルの有害性に関する決定をするための規則のセット）が、悪意のあるプログラムの検出のためにしばしば使用される。これにより、周知の悪意のあるプログラムまたは周知の悪意のある行動を有する悪意のあるプログラムだけでなく、未知のまたはほとんど研究されていない悪意のある行動を有する新しい悪意のあるプログラムの効果的な検出、ならびに、新しい悪意のあるプログラムを検出するための動作適合（学習）が可能になる。
【０００７】
本開示は、悪意のあるファイルの検出の問題を解決することを可能にする。
【発明の概要】
【０００８】
本開示は、オブジェクトが悪意のあるものか否かを判定するために、コンピュータシステムのオブジェクトを分類することに向けられる。
【０００９】
本開示の技術的な結果の一つは、コンピュータシステムのオブジェクトが属するクラスの２段階評価を使用することによって、コンピュータシステムのオブジェクトの分類精度を高めることを含む。
【００１０】
コンピュータシステム上の悪意のあるオブジェクトを検出するための例示的な方法は、コンピュータシステムのオブジェクトの状態を記述するデータを収集し、オブジェクトの状態を特徴付ける特徴のベクトルを形成し、形成された特徴のベクトルに基づいて類似度を算出し、類似度は、分類されるオブジェクトが所与のクラスに属し得る確率を特徴付ける数値であり、分類されるオブジェクトが確実に他のクラスに属する確率を特徴付ける数値である差分の限界度を算出し、類似度と差分の限界度とに基づいて、オブジェクトのクラスを決定するための尺度を形成し、データが尺度を満たす場合、オブジェクトは決定されたクラスに属すると決定し、データは、データ収集規則により定義される時間期間にわたり収集され、オブジェクトが指定されたクラスに属すると決定された場合、オブジェクトは悪意のあるものであると宣言する。
【００１１】
一態様では、尺度は、類似度と差分の限界度との間の確立された相関によってオブジェクトを分類するための規則である。
【００１２】
一態様では、類似度と差分の限界度との間の相関は、類似度と差分の限界度との間の距離と所定の閾値との差分、類似度と差分の限界度との間の所与の時間間隔内に境界付けられた領域と所定の閾値との差分、および、有害性の程度と差分の限界度の変化を記述する曲線の相互成長率と所定値との差分のうちの1つまたは複数である。
【００１３】
一態様では、特徴のベクトルは、一組の数の形でまとめられた、収集されたデータのコンボリューションである。
【００１４】
一態様では、データ収集規則は、オブジェクトの異なる状態間の時間間隔が所定の値を満足することと、オブジェクトの状態の変化をもたらすコンピュータシステムのパラメータの変化が所定の値を満足することと、のうちの1つである。
【００１５】
一態様では、算出される差分の限界度は類似度に依存し、差分の限界度は、オブジェクトを作成する瞬間において、オブジェクトの状態の第1の変化の瞬間において、および、オブジェクトの静的パラメータの分析に基づいて、のうちの一つにおいて算出される。
【００１６】
一態様では、データ収集規則によって定義される期間中に、少なくとも2つの類似度および差分の限界度が算出されている場合、連続して算出された類似度および差分の限界度の組は、所定の時間則によって記述される。
【００１７】
一態様では、連続的に算出された類似度および連続的に算出された差分の限界度を記述する時間則は、単調である。
【００１８】
本明細書で説明される、例示的なシステムは、コンピュータシステムのオブジェクトの状態を記述するデータを収集し、オブジェクトの状態を特徴付ける特徴のベクトルを形成し、形成された特徴のベクトルに基づいて類似度を算出し、類似度は、分類されるオブジェクトが所与のクラスに属し得る確率を特徴付ける数値であり、分類されるオブジェクトが確実に他のクラスに属する確率を特徴付ける数値である差分の限界度を算出し、類似度と差分の限界度とに基づいて、オブジェクトのクラスを決定するための尺度を形成し、データが尺度を満たす場合に、オブジェクトは決定されたクラスに属すると決定し、データ収集規則により定義される時間期間にわたって収集され、オブジェクトが指定されたクラスに属すると決定された場合、オブジェクトは悪意のあるものであると宣言するように構成されたハードウェアプロセッサを備える。
【００１９】
上記の例示的な態様の簡略化された概要は、本開示の基本的な理解を提供するのに役立つ。この発明の概要は、すべての企図された態様の広範な概観ではなく、すべての態様の重要なまたは重大な要素を識別することも、本開示の任意のまたはすべての態様の範囲を線引きすることも意図されていない。その唯一の目的は、以下の開示のより詳細な説明の前置きとして、単純化された形態で一つまたは複数の態様を提示することである。前述のことを達成するために、本開示の一つまたは複数の態様は、特許請求の範囲に記載され例示的に示される特徴を含む。
【図面の簡単な説明】
【００２０】
【図１】図１は、本開示の例示的な態様による、悪意のあるファイルを検出するためのモデルの機械学習のためのシステム１００の構造図である。
【図２】図２は、本開示の例示的な態様による、悪意のあるファイルを検出するためのモデルの機械学習のための方法のフロー図である。
【図３】図３は、本開示の例示的な態様による、行動パターンの数の関数としての有害性の程度の変化のダイナミクスの例を示す図である。
【図４】図４は、本開示の例示的な態様による、行動パターンの要素間の関係の図の例を示す図である。
【図５】図５は、本開示の例示的な態様による、悪意のあるファイルの検出のための訓練済みモデルを使用する悪意のあるファイルの検出のためのシステムの構成図である。
【図６】図６は、本開示の例示的な態様による、悪意のあるファイルの検出の訓練済みモデルを使用した、悪意のあるファイルの検出のための方法のフロー図である。
【図７】図７は、本開示の例示的な態様による、悪意のあるファイルを検出するためのシステムの構成図である。
【図８】図８は、本開示の例示的な態様による、悪意のあるファイルを検出するための方法のフロー図である。
【図９】図９は、本開示の例示的な態様による、行動パターンの数の関数としての有害性の程度および安全性の限界度の変化のダイナミクスの例を示す図である。
【図１０】図１０は、本開示の例示的な態様による、コンピュータシステムのオブジェクトを分類するためのシステムの構成図である。
【図１１】図１１は、本開示の例示的な態様による、コンピュータシステムのオブジェクトを分類するための方法のフロー図である。
【図１２】図１２は、本開示の例示的な態様による、汎用コンピュータシステム、パーソナルコンピュータ、またはサーバの例を示す図である。
【発明を実施するための形態】
【００２１】
開示されるシステムおよび方法は、本開示の例示的な態様に従って、コンピュータシステム上のオブジェクトを悪意のあるものまたは安全なものとして分類することに向けられる。例示的な態様は、本明細書ではコンピュータシステム上のオブジェクトを悪意のあるものまたは安全なものとして分類するためのシステム、方法、およびコンピュータプログラム製品の文脈で説明される。当業者であれば、以下の説明は単に例示的なものであり、決して限定的なものではないことを理解するであろう。他の態様は、本開示の利益を享受する当業者には容易に示唆されるであろう。ここで、添付の図面に示される例示的な態様の実施形態を詳細に参照する。図面および以下の説明を通じて、同一または類似の要素を参照するために、可能な限り同一の参照符号が使用される。
【００２２】
以下の定義は様々な態様を説明するために、この開示全体にわたって使用される。
【００２３】
悪意のあるファイル−その実行が、コンピュータ情報の不正な破壊、ブロック、変更、複製、または、コンピュータ情報保護システムの無効化をもたらすことが知られているファイル。
【００２４】
実行可能ファイルの悪意のある行動（behavior）−そのファイルの実行中に実行されることができ、コンピュータ情報の不正な破壊、ブロック、変更、もしくは複製、または、コンピュータ情報保護システムの無効化をもたらすことができることが知られているアクションのグループ。
【００２５】
実行可能ファイルの悪意のあるアクティビティ−そのファイルの悪意のある行動に従ってそのファイルによって実行されるアクションのグループ。
【００２６】
平均的ユーザのコンピューティングデバイス−以前に選択されたユーザのグループのコンピューティングデバイスの平均的特性を有する、仮説上の（理論上の）コンピューティングデバイスであり、当該コンピューティングデバイス上では、これらのユーザのコンピューティングデバイス上で実行されるアプリケーションと同じアプリケーションが実行される。
【００２７】
コンピューティングデバイスによって実行可能なコマンド−機械命令またはスクリプト命令のセットであって、これらの命令のパラメータに基づいてコンピューティングデバイスにより実行可能であり、コマンドパラメータまたは当該コマンドを記述するパラメータとして知られているもの。
【００２８】
語彙分析（トークン化）−出力として特定シーケンス（以下、トークン）を形成するために、入力される文字シーケンスに対して分析的構文解析を行い認識済グループ（以下、語彙素）にする処理。
【００２９】
トークン（Token）−語彙分析のプロセスにおいて語彙素から形成される特定シーケンス。
【００３０】
図1は、本開示の例示的な態様による、悪意のあるファイルを検出するためのモデルの機械学習のためのシステム100の構成図である。
【００３１】
機械学習のためのシステム100の構成図は、訓練選択準備モジュール111と、行動ログ形成モジュール112と、行動パターン形成モジュール121と、コンボリューション関数形成モジュール122と、検出モデル作成モジュール131と、検出モデル機械学習モジュール132と、を含む。
【００３２】
一変形態様では、システム100はクライアントサーバアーキテクチャを有し、訓練選択準備モジュール111、行動ログ形成モジュール112、行動パターン形成モジュール121、コンボリューション関数形成モジュール122、検出モデル作成モジュール131、および検出モデル機械学習モジュール132はサーバ側で動作し、行動パターン形成モジュール121がある。
【００３３】
たとえば、クライアントは、パーソナルコンピュータ、ノートパソコン、スマートフォンなどのユーザのコンピューティングデバイスであってもよい。サーバは、少なくともファイルの予備的な収集およびアンチウィルス分析、アンチウィルスレコードの作成などを実行するサーバの分散システムなど、アンチウィルス会社のコンピューティングデバイスとすることができる。システム100は、いくつかの態様ではクライアント側で悪意のあるファイルを検出するために使用され、それによって、そのクライアントのアンチウィルス保護の有効性を高める。
【００３４】
さらに別の例では、クライアントおよびサーバの両方がアンチウィルス会社のみのコンピューティングデバイスであってもよく、システム100は、ファイルの自動化されたアンチウィルス分析およびアンチウィルスレコードの作成のために使用されてもよく、それによって、アンチウィルス会社の作業効果を向上させる。
【００３５】
例示的な態様では、訓練選択準備モジュール111は以下を実行するように構成される：
・ファイルの学習用選択群を形成する所定の学習規則に従って、ファイルデータベース113から少なくとも一つのファイルを選択する。その後、検出モデル機械学習モジュール132が、選択されたファイルの分析に基づいて検出モデルのティーチングを実行する;
・選択されたファイルを行動ログ形成モジュール112に送る。
【００３６】
システム１００の一つの変形態様では、少なくとも一つの安全なファイルおよび一つの悪意のあるファイルがファイルデータベース113に保持される。
【００３７】
たとえば、ファイルデータベース113は、オペレーティングシステムWindows（登録商標）のファイルを安全なファイルとして保持し、バックドアのファイル、データへの無許可のアクセスや、オペレーティングシステムおよびコンピュータ全体のリモートコントロールを実行するアプリケーションを、悪意のあるファイルとして保持することができる。上述のファイルを用いて訓練し、機械学習の方法を使用することによって、悪意のあるファイルの検出モデルは、上述のバックドアの機能と同様の機能を有する悪意のあるファイルを高精度で検出することができる（精度が高いほど、上述の検出モデルのティーチングに使用するファイルも多くなる）。
【００３８】
本システムのさらに別の変形態様では、ファイルデータベース113はさらに、少なくとも以下のものを保持する:
【００３９】
疑わしいファイル（リスクウェア)−悪意はないが、悪意のあるアクションを実行できるファイル;
【００４０】
未知のファイル−その有害性がまだ決定されておらず、未知のままであるファイル（すなわち、安全ではないファイル、悪意のあるファイル、疑わしいファイルなど）。
【００４１】
たとえば、ファイルデータベース113は、疑わしいファイルとして、（RAdminなど）リモート管理、アーカイビング、または（WinZipなど）データ暗号化などのためのアプリケーションのファイルを保持することができる。
【００４２】
本システムのさらに別の変形態様では、ファイルデータベース113は少なくとも以下のファイルを保持する:
・アンチウィルスウェブクローラによって収集されたファイル；
・ユーザが送信してきたファイル；
・上述のファイルは、当該ファイルの有害性の判定を宣言するため、自動的ファイル分析手段を用いるなどして、アンチウィルス専門家により分析される。
【００４３】
たとえば、ファイルデータベース113は、有害性をチェックするためにユーザが自分のコンピューティングデバイスからアンチウィルス会社に送信したファイルを格納することができる。送信されるファイルは安全なものであっても悪意のあるものであってもよく、安全なファイルと悪意のあるファイルの数の分布は、それらユーザのコンピューティングデバイス上に位置するすべての安全なファイルと悪意のあるファイルの数の分布に近い（すなわち、悪意のあるファイルの数に対する安全なファイルの数の比率は、指定された閾値未満の量だけ、ユーザのコンピューティングデバイス上に位置するすべての悪意のあるファイルの数に対するすべての安全なファイルの数の比率とは異なる）。
【数１】
2020115328.tif 000002
【００４４】
ユーザによって送信されたファイル（すなわち、主観的に疑わしいファイル）とは異なり、疑わしいファイルおよび悪意のあるファイルを検索するように設計されたアンチウィルスウェブクローラによって収集されたファイルは、より多くの場合、悪意のあるものであることが証明される。
【００４５】
システム100のさらに別の変形態様では、ファイルデータベース113からファイルを選択するための尺度として、以下の条件のうちの少なくとも一つが使用される:
・ファイルデータベース113から選択された安全なファイルと悪意のあるファイルとの間の分布が、平均的なユーザのコンピューティングデバイス上に位置する安全なファイルと悪意のあるファイルとの間の分布に対応すること;
・ファイルデータベース113から選択された安全なファイルと悪意のあるファイルとの間の分布が、アンチウィルスウェブクローラによって収集された安全なファイルと悪意のあるファイルとの間の分布に対応すること;
・ファイルデータベース113から選択されたファイルのパラメータが、平均的なユーザのコンピューティングデバイス上に位置するファイルのパラメータに対応すること;
・選択されたファイルの数が所定の値に対応し、ファイル自体はランダムに選択されること。
【００４６】
たとえば、ファイルデータベース113は100,000のファイルを含み、そのうちの40％は安全なファイルであり、60％は悪意のあるファイルである。150,000のファイル（ファイルデータベース113に保持されるファイル総数の15％）は、選択された安全なファイルと悪意のあるファイルとの間の分布が、平均的なユーザのコンピューティングデバイス上に位置する安全なファイルと悪意のあるファイルとの間の分布に対応するように選択され、悪意のあるファイル5つ毎に安全なファイル95とする。この目的のために、14,250の安全なファイル（安全なファイルの総数の35.63％）と、750の悪意のあるファイル（悪意のあるファイルの総数の1.25％）とがファイルデータベース113からランダムに選択される。
【００４７】
さらに別の例では、ファイルデータベース113は1,250,000のファイルを含み、そのうち95％は安全なファイルであり、5％は悪意のあるファイルである。したがって、ファイルデータベース113に保持されている安全なファイルと悪意のあるファイルとの間の分布は、平均的なユーザのコンピューティングデバイス上に位置する安全なファイルと悪意のあるファイルとの間の分布に対応する。これらのファイルのうち、5,000のファイルはランダムに選択され、そのうち約4,750は安全なファイル、約250は悪意のあるファイルであると高い確率で証明される。
【００４８】
システムのさらに別の変形態様では、ファイルパラメータは少なくとも以下のものである:
・ファイルが安全であるか、悪意があるか、潜在的に危険であるか、を特徴づけるファイルの有害性、または、ファイル実行が決定されていないときのコンピュータシステムの行動など;
・ファイルの実行中にコンピューティングデバイスによって実行されるコマンドの数;
・ファイルのサイズ;
・ファイルを利用するアプリケーション。
【００４９】
たとえば、「ActionScript」言語のスクリプトを含み、アプリケーション「Adobe  （登録商標）Flash」によって実行可能であり、サイズが5kBを超えないファイルが、悪意のあるものとしてファイルデータベース113から選択される。
【００５０】
システムのさらに別の変形態様では、訓練選択準備モジュール111はさらに、以下を実行するように設計される:
・ファイルのテスト用選択群を形成するための所定の規則に従って、ファイルデータベース113から少なくとも一つの他のファイルを選択する。その後、検出モデル機械学習モジュール132が、選択されたファイルの分析に基づいて、訓練済み検出モデルの検証を実行する;
・選択されたファイルを行動ログ形成モジュール112に送る。
【００５１】
別の例では、ファイルデータベース113は75,000のファイルを含むことができ、その20％は安全なファイルであり、その80％は悪意のあるファイルである。最初に、12,500のファイルがファイルデータベース113から選択され、その30％は安全なファイルであり、その70％は悪意のあるファイルである。続いて、検出モデル機械学習モジュール132は、選択されたファイルの分析に基づいて、検出モデル133をティーチングする。このステップの後、残りの62,500のファイルから2,500のファイルが選択され、そのうち60％が安全なファイルであり、40％が悪意のあるファイルである。その後、検出モデル機械学習モジュール132は、選択されたファイルの分析に基づいて、訓練済み検出モデル133をチェックする。このようにして生成されたデータは、相互検証データセットと呼ばれる。
【００５２】
一態様では、行動ログ形成モジュール112は以下を実行するように構成される:
・少なくとも以下の間に、少なくとも一つの実行可能コマンドをインターセプトする:
−受信されたファイルの実行、
−受信されたファイルの実行のエミュレーションであって、ファイルの実行のエミュレーションは当該ファイルを開くこと（たとえば、インタプリタによるスクリプトの開放）を含む;
・インターセプトされた各コマンドについて、当該コマンドを記述する少なくとも一つのパラメータを決定する;
・インターセプトされたコマンドと上記のように決定されたパラメータとに基づいて、取得されたファイルの行動ログ115を形成する。行動ログは、ファイルからインターセプトされたコマンドの全体（以下、コマンド）を構成し、各コマンドは、上記のように決定され、そのコマンドを記述する少なくとも一つのパラメータ（以下、パラメータ）に対応する。
【００５３】
たとえば、以下は、パスワードを収集し、収集したパスワードをコンピュータネットワークを介して送信する、悪意のあるファイルの実行中にインターセプトされるコマンドと、当該コマンドについて算出されるパラメータの例である:
・CreateFile、'c:\windows\system32\data.pass'
・ReadFile、0x14ea25f7、0xf000
・connect,  http://stealpass.com
・send、0x14ea25f7、0xf000
・システム100の一変形態様では、ファイルからのコマンドのインターセプトは少なくとも以下によって実行される:
・専用ドライバ;
・デバッガ;
・ハイパーバイザ。
【００５４】
たとえば、ファイルの実行中のコマンドのインターセプトおよびそれらのパラメータの決定は、WinAPI関数のエントリポイントのスプライシングによるインターセプトを利用するドライバを使用して実行される。
【００５５】
さらに別の例では、ファイルの実行のエミュレーション中のコマンドのインターセプトは、エミュレートされるコマンドのパラメータを決定するエミュレーションソフトウェアまたはハードウェアによって直接実行される。
【００５６】
さらに別の実施形態では、仮想マシン上でのファイルの実行中のコマンドのインターセプトは、エミュレートされるコマンドのパラメータを決定するハイパーバイザによって実行される。
【００５７】
システムのさらに別の変形態様では、ファイルからインターセプトされたコマンドは少なくとも以下を含む:
・API関数；
・所定のアクション（マクロコマンド）セットを記述するマシン命令のセット。
・たとえば、悪意のあるプログラムは、所定のファイルの検索を実行してその属性を変更することが非常に多く、そのために、悪意のあるプログラムは、次のようなコマンドのシーケンスを使用する:
・FindFirstFile、'c:\windows\system32\*.pass'、0x40afb86a
・SetFileAttributes、'c:\windows\system32\data.pass'
・FindNextFile、0x40afb86a
・CloseHandle、0x40afb86a
・これは、単一のコマンドのみによっても記述することができる。
・_change_attributes、'c:\windows\system32\*.pass'
【００５８】
システムのさらに別の変形態様では、各コマンドは固有の識別子と照合される。
【００５９】
たとえば、すべてのWinAPI関数は0x0000から0x8000の範囲内の数と照合でき、WinAPI関数は各々、一意の数（たとえば、ReadFile→0x00f0、ReadFileEx→0x00f1、connect→0x03A2）に対応する。
【００６０】
システムのさらに別の変形態様では、類似のアクションを記述するいくつかのコマンドが単一の識別子と照合される。
【００６１】
たとえば、ファイルからのデータの読み出しを記述するReadFile、ReadFileEx、ifstream、getline、getchar等の全てのコマンドは、識別子_read_data_file(0x70F0）と照合される。
【００６２】
一態様では、行動パターン形成モジュール121は、以下を実行するように構成される:
・行動ログから選択されたコマンドとパラメータとに基づいて、少なくとも一つの行動パターンを形成する。行動ログは、ファイルからの実行可能コマンドの全体（以下、コマンド）を構成し、各コマンドは、そのコマンドを記述する少なくとも一つのパラメータ（以下、パラメータ）に対応し、行動パターンは、少なくとも一つのコマンドとパラメータのセットであり、当該パラメータはそのセットのコマンドすべてを記述する（以下、行動パターンの要素）；
・上記のように形成された行動パターンをコンボリューション関数形成モジュール１２２に送る;
【００６３】
たとえば、行動ログから、以下のコマンドciおよびパラメータpiが選択される:
・    ｛c1,p1,p2,p3｝
・    ｛c2,p1,p4｝
・    ｛c3,p5｝
・    ｛c2,p5｝
・    ｛c1,p5,p6｝
・    ｛c3,p2｝
【００６４】
選択されたコマンドおよびパラメータに基づいて、各々、一つのコマンドとそのコマンドを記述する一つのパラメータとを含む行動パターンが形成される:
・    ｛c1,p1｝,｛c1,p2｝,｛c1,p3｝,｛c1,p5｝,｛c1,p6｝
・    ｛c2,p1｝,｛c2,p4｝,｛c2,p5｝
・    ｛c3,p2｝,｛c3,p5｝
次に、上述のように形成されたパターンに基づいて、さらに、一つのパラメータと、そのパラメータによって記述することができるすべてのコマンドとを含む行動パターンが形成される:
・    ｛c1,c2,p1｝
・    ｛c1,c3,p2｝
・    ｛c1,c2,c3,p5｝
【００６５】
この後、上述のように形成されたパターンに基づいて、さらに、いくつかのパラメータと、これらのパラメータによって同時に記述することができるすべてのコマンドとを含む行動パターンが形成される:
・    ｛c1,c2,p1,p5｝
【００６６】
システムの一変形態様では、コマンドとパラメータとは、少なくとも以下を選択する規則に基づき、行動ログから選択される:
・i番目ごとに続くコマンドと、それを記述するパラメータ。増分「i」は事前に指定する;
・前に選択されたコマンドから所定の期間（たとえば、10秒毎）後に実行されるコマンドと、それらを記述するパラメータ;
・ファイルの実行開始から所定の時間間隔で実行されるコマンドと、それらを記述するパラメータ;
・所定のリストのコマンドと、それらを記述するパラメータ;
・所定のリストのパラメータと、それらのパラメータによって記述されるコマンド;
・コマンドパラメータの数が所定の閾値よりも大きい場合、コマンドの最初のパラメータまたはランダムなk個のパラメータ。
【００６７】
たとえば、行動ログから、ハードディスクで動作するためのすべてのコマンド（CreateFile、ReadFile、WriteFile、DeleteFile、GetFileAttributeなど）と、選択されたコマンドを記述するすべてのパラメータとを選択する。
【００６８】
さらに別の例では、行動ログから、1000番目毎のコマンドと、選択されたコマンドを記述するすべてのパラメータとを選択する。
【００６９】
システムの一変形態様では、行動ログは少なくとも二つのファイルから予め形成され、その一方は安全なファイルであり、他方は悪意のあるファイルである。
【００７０】
システムのさらに別の変形態様では、行動パターンの各要素は、行動パターンの要素のタイプなどの特性と照合される。行動パターンの要素（コマンドまたはパラメータ）のタイプは、少なくとも以下のとおりである:
・行動パターンの要素を数値として表現できる場合は、「数値範囲」。
・たとえば、connectコマンドのパラメータporthtml=80を構成する行動パターンの要素については、当該行動パターンの当該要素のタイプは、「0x0000から0xFFFFの間の数値」でありうる。
・行動パターンの要素を文字列で表現できる場合は、「文字列」。
・たとえば、connectコマンドを構成する行動パターンの要素については、当該行動パターンの当該要素のタイプは、「長さが32文字未満の文字列」でありうる。
・行動パターンの要素を所定のデータ構造によって記述可能なデータの形で表現できる場合は、当該行動パターンの当該要素のタイプは、「データ構造」でありうる。
・たとえば、find_recordコマンドのパラメータsrc=0x336b9a480d490982cdd93e2e49fdeca7を構成する行動パターンの要素については、当該行動パターンの当該要素のタイプは「データ構造MD5」でありうる。
【００７１】
システムのさらに別の変形態様では、行動パターンはさらに、行動パターンの要素として、行動パターンの要素の語彙分析に基づき、少なくとも以下を使用して形成されたトークンを含む:
・語彙素形成のための所定の規則；
・以前に訓練済みの回帰型ニューラルネットワーク。
【００７２】
たとえば、パラメータ'c:\windows\system32\data.pass'の語彙分析を用いて、
【００７３】
・文字列にファイルへのパスが含まれている場合は、ファイルが置かれているディスクを決定する;
・文字列にファイルへのパスが含まれている場合は、ファイルが置かれているフォルダを決定する;
・文字列にファイルへのパスが含まれている場合は、ファイル拡張子を決定する;
という語彙素形成の規則に基づき、
【００７４】
ここで、語彙素は:
・ファイルへのパス;
・ファイルが置かれているフォルダ;
・ファイル名
・ファイルの拡張子;
であり、
【００７５】
トークンは次のように形成できる：
・「ファイルへのパス」→
・'c:\'
・「ファイルが置かれているフォルダ」→
・'windows'
・'system32'
・'windows\system32'
・「ファイルの拡張子」→
・'.pass'
【００７６】
さらに別の例では、複数のパラメータ'81.19.82.8'、'81.19.72.38'、'81.19.14.32'の語彙分析を用いて、
【００７７】
・パラメータがIPアドレスを構成する場合、当該IPアドレスを記述するビットマスク（またはメタ文字によって表されるそのアナログ）を決定する（すなわち、それらすべてのIPについて等式M∧IP＝constが真であるビットマスクM）;
という語彙素形成の規則に基づき、
【００７８】
トークンは次のように定式化できる:
・'81.19.*.*'
【００７９】
さらに別の例では、数字を含むすべての利用可能なパラメータから、所定範囲内の数字
・23,  16,  7224,  6125152186,  512,  2662162,  363627632,  737382,  52,  2625,  3732,  812,  3671,  80,  3200  
のトークンが形成される：
【００８０】
ソートは、数値範囲に基づき実行される:
・0から999まで
→｛16,  23,  52,  80,  512,  812｝
・1000から9999まで
→｛2625、3200、3671、7224｝
・10000以上
→｛737382,  2662162,  363627632,  6125152186｝
【００８１】
システムのもう一つの変形態様においては、トークンは文字列を構成する行動パターンの要素から形成される。
【００８２】
たとえば、行動パターンは、ディスク名、ディレクトリ名、ファイル名、ファイル拡張子などを含むファイルへのパスである。この場合、トークンは、ディスクの名前とファイル拡張子であってもよい。
【００８３】
C:\Windows\System32\drivers\acpi.sys
・  →
C:\
*.sys
【００８４】
一態様では、コンボリューション関数形成モジュール122は、以下を実行するように構成される:
・得られた行動パターンに対して実行されたコンボリューション関数の結果の逆コンボリューション関数が、得られた行動パターンに対して、指定された値を超える類似度を有するように、行動パターンからコンボリューション関数を形成する。すなわち:
【数２】
2020115328.tif 000003
・式中、
riは行動パターンであり、
gはコンボリューション関数であり、
g-1は逆コンボリューション関数である。
・上記のように形成されたコンボリューション関数を検出モデル機械学習モジュール132に送る。
【００８５】
本システムの一変形態様では、コンボリューション関数形成モジュール122はさらに、以下を実行するように構成される:
・得られた行動パターンに基づいて行動パターンの特徴ベクトルを算出する。行動パターンの特徴ベクトルは、行動パターンの要素のハッシュ和の和として表されてもよい。および/または、
・行動パターンの特徴ベクトルからコンボリューション関数を形成する。ここで、コンボリューション関数は、算出された特徴ベクトルと、算出された特徴ベクトルのハッシュ関数の結果の逆ハッシュ関数の結果と、の類似度が所定の値よりも大きくなるようにハッシュ関数を構成する。
【００８６】
本システムのさらに別の変形態様では、コンボリューション関数は、メトリック学習方法によって、すなわち、所定の閾値より大きい類似度を有する行動パターンについての上記コンボリューション関数を用いて得られるコンボリューション間の距離は、所定の閾値未満であり、所定の閾値未満の類似度を有する行動パターンについては所定の閾値より大きくなるように、形成される。
【００８７】
たとえば、行動パターンの特徴ベクトルは、以下のように算出することができる:
・最初に、100,000の要素からなる空のビットベクトルが生成される（ここで、情報1ビットは、ベクトルの各要素に対して予約される）;
・行動パターンrから1,000の要素を、コマンドに関するデータを格納するために確保し、残りの99,000の要素を、行動パターンrのパラメータciのために確保する。50,000の要素（要素10001から要素51000）は、文字列パラメータのために確保され、25,000の要素（要素51001から要素76000）は、数値パラメータのために確保される;
・行動パターンrの各コマンドciは、0から999までの特定の数値xiと照合され、上記のように作成されたベクトルに対応するビットが設定される。
・  v[xi]=true
・行動パターンrの各パラメータpiについて、次式によりハッシュ和が算出される。
文字列の場合:        yi=1001+crc32(pi)(mod50000)
数値の場合:          yi=51001+crc32(pi)(mo25000)
それ以外の場合:      yi=76001+crc32(pi)(mod24000)
・算出されたハッシュ和に依存して、生成されたベクトルv[yi]=trueに対応するビットが設定される。
【００８８】
上記のように設定された要素を有する記述されたビットベクトルは、行動パターンの特徴ベクトルを構成する。
【００８９】
システムのさらに別の変形態様では、行動パターンの特徴ベクトルは、次式によって算出される:
【数３】
2020115328.tif 000004
式中、ｂは計算の位置システムの基底（たとえば、二値ベクトルについてはb=2、文字列たとえば文字グループを表すベクトルについてはb=8）であり、riは行動パターンのi番目の要素であり、hはハッシュ関数（ただし、0≦h(ri)＜b）である。
【００９０】
たとえば、行動パターンの特徴ベクトルは、以下のように算出することができる:
・まず、さらに（前の例とは異なる）別の空のビットベクトルが作成される。このビットベクトルは1,000個の要素から構成される（ここで、情報1ビットはベクトルの各要素に対して予約される）;
・行動パターンrの各パターン要素riに対するハッシュ和を、次式により算出する:
【数４】
2020115328.tif 000005
・そして、算出されたハッシュ和に応じて、対応するビットが作成されたベクトルv[xi]=trueに設定される。
【００９１】
システムのさらに別の変形態様では、行動パターンの特徴ベクトルはブルームフィルタを構成する。
【００９２】
たとえば、行動パターンの特徴ベクトルは、以下のように算出することができる:
・まず、さらに、100,000の要素からなる（前述の例とは異なる）空ベクトルを作成する;
・次式により、ハッシュ関数｛hj｝の集合を用いて、行動パターンrの各パターン要素riについて少なくとも二つのハッシュ和を算出する：
xij=hj(ri)
・ここで、
hj(ri)=crc32(ri)
hj(0)=constj
であり、
・算出されたハッシュ和に応じて、生成されたベクトルv[xij]=trueに対応する要素が設定される。
【００９３】
システムのさらに別の変形態様では、行動パターンの特徴ベクトルの定式化されたコンボリューション関数の結果のサイズは、行動パターンの当該特徴ベクトルのサイズよりも小さい。
【００９４】
たとえば、特徴ベクトルは、100,000の要素を含み、したがって12,500バイトのサイズを有するビットベクトルを構成する一方、前記特徴ベクトルのコンボリューション関数の結果は8個のMD5ハッシュ和の集合を構成し、したがって、256バイトのサイズ、すなわち、特徴ベクトルの約2％のサイズを有する。
【００９５】
システムのさらに別の変形態様では、特徴ベクトルと、算出された特徴ベクトルの前記ハッシュ関数の結果の逆ハッシュ関数の結果との類似度は、0から1の範囲の数値を構成し、次式によって算出される:
【数５】
2020115328.tif 000006
・式中、h(ri)∧giは、h(ri)とgiとの合同を示し、｛h(ri)｝は、行動パターンの要素のハッシュ関数の結果の集合を示し、
・｛gi｝は、行動パターンの要素のハッシュ関数の結果の逆ハッシュ関数の結果の集合であり、
・riは、行動パターンのi番目の要素であり、
・hは、ハッシュ関数であり、
・wは、類似度である。
【００９６】
たとえば、算出された特徴ベクトルは、ビットベクトル101011100110010110010110010111100010010110001100111011001010001011011000110100010110001101000101110001011を構成し、この特徴ベクトルのコンボリューション関数の結果は1010011110101110101であり、このように取得された結果の逆コンボリューション関数の結果は、
【数６】
2020115328.tif 000007
である（なお、下線は特徴ベクトルとは異なる要素を示す。）。したがって、特徴ベクトルと逆コンボリューション関数の結果との類似度は0.92である。
【００９７】
システムのさらに別の変形態様では、行動パターンの要素をパラメータとして使用する前記のハッシュ関数は、行動パターンの要素のタイプに依存する:
【数７】
2020115328.tif 000008
【００９８】
たとえば、ファイルへのパスを含む文字列を構成する行動パターンからパラメータのハッシュ和を算出するために、ハッシュ関数CRC32を使用し、他の文字列についてはハフマンアルゴリズムを使用し、データセットについてはハッシュ関数MD5を使用する。
【００９９】
システムのさらに別の変形態様では、行動パターンの特徴ベクトルのコンボリューション関数の形成は、オートエンコーダによって行われ、入力データは行動パターンのその特徴ベクトルの要素であり、出力データは入力データとの類似係数が所定の閾値よりも大きいデータである。
【０１００】
一態様では、検出モデル作成モジュール131は以下を実行するように構成される:
・少なくとも以下を含む悪意のあるファイルの検出モデルを作成する:
（１）検出モデルの機械学習のための方法の選択;
・ティーチングモデルのパラメータの初期化。検出モデルの機械学習の開始前に初期化されたティーチングモデルのパラメータは、ハイパーパラメータとして知られている;
・訓練選択準備モジュール111によって選択されたファイルのパラメータに依存して;
・上記のようにして作成されたティーチングモデルを検出モデル機械学習モジュール132に送る。
【０１０１】
たとえば、検出モデルの機械学習方法を選択する際にはまず、検出モデルとして人工ニューラルネットワークを用いるか、ランダムフォレストを用いるかを決定し、ランダムフォレストを選択する場合には、ランダムフォレストのノードの分離基準を選択する。また、人工ニューラルネットワークを選択する場合には、人工ニューラルネットワークのパラメータの数値最適化の方法が選択される。機械学習のための特定の方法の選択に関する決定は、所定の種類（すなわち、データ構造、行動パターンの要素の数、悪意のあるファイルについて検索が行われるコンピューティングデバイスの性能、コンピューティングデバイスの利用可能なリソースなど）の入力データ（行動パターン）を使用して、悪意のあるファイルを検出する際のその方法の有効性（すなわち、悪意のあるファイルを検出する際に発生する第1および第2の種類のエラーの数）に基づいて行われる。
【０１０２】
さらに別の例では、検出モデルの機械学習のための方法は、以下の一つまたは複数に基づいて選択される:
・交差テスト、スライディングチェック、交差検証（CV）;
・基準AIC、BIC等の数学的検証;
・A/Bテスト、スプリットテスト;
・スタッキング。
【０１０３】
さらに別の例では、コンピューティングデバイスの性能が低い場合にはランダムフォレストが選択され、それ以外の場合には人工ニューラルネットワークが選択される。
【０１０４】
システムの一変形態様では、機械学習は、以前に作成され訓練されていない検出モデル（すなわち、当該モデルのパラメータが、入力データの分析に基づいて、所定の閾値よりも高い精度で出力データを生成することができない検出モデル）に対して実行される。
【０１０５】
システムのさらに別の変形態様では、検出モデルの機械学習の方法は、少なくとも以下である:
・決定木ベースの勾配ブースティング;
・決定木法;
・K最近傍（kNN）法;
・サポートベクトルマシン（SVM)法。
【０１０６】
本システムのさらに別の変形態様では、検出モデル作成モジュール131は、検出モデル機械学習モジュール132からの要求に応じて検出モデル133を作成するようにさらに設計され、機械学習の特定のハイパーパラメータおよび方法は、以前の検出モデルについて選択されたハイパーパラメータおよび機械学習方法とは異なるように選択される。
【０１０７】
検出モデル機械学習モジュール132は、検出モデルをティーチングするように構成され、検出モデルのパラメータは、取得された行動パターンに対して取得されたコンボリューション関数を使用して算出され、検出モデルは、その検出モデルの算出されたパラメータを使用して、少なくとも一つの行動パターンに基づいてファイルの有害性の程度を算出するための規則の集合を構成する。
【０１０８】
たとえば、検出モデルは、訓練選択準備モジュール111によって選択された既知のファイルのセットで訓練され、当該ファイルのセットは、安全なファイルを60％、悪意のあるファイルを40％含む。
【０１０９】
本システムの一変形態様では、ファイルの有害性の程度は、0から1までの数値を構成し、0はファイルが安全であることを意味し、1は悪意があることを意味する。
【０１１０】
本システムのさらに別の変形態様では、検出モデルをティーチングする方法は、行動ログの分析に基づいて形成される行動パターンの数の変化に応じたファイルの有害性の程度の単調変化を保証するものが選択される。
【０１１１】
ファイルの有害性の程度の単調変化とはたとえば、後続する行動パターン各々を分析する際に算出される有害性の程度が、それより前に算出された有害性の程度よりも小さくならないこと（たとえば、10番目の行動パターンを分析した後に算出された有害性の程度が0.2であり、50番目の行動パターンを分析した後、算出された有害性の程度は0.4であり、100番目の行動パターンを分析した後、算出された有害性の程度は0.7である等）を意味する。
【０１１２】
本システムのさらに別の変形態様では、検出モデル機械学習モジュール132はさらに、以下を実行するように構成される:
・テスト選択されたファイルに含まれるファイルの有害性の決定の正確性を判定するため、テスト選択されたファイルに含まれるファイルの分析に基づいて形成され取得された行動ログに対して訓練済み検出モデルのチェック（たとえば検証）をおこなう；
・チェック結果が否定的な場合は、以下のうち一つ以上に要求を送信する:
−訓練選択準備モジュール111。検出モデルのティーチングに使用された現在の選択ファイルとは異なる選択ファイルを準備させる。
−検出モデル作成モジュール131。現在の検出モデルとは異なる新しい検出モデルを作成させる。
【０１１３】
訓練済み検出モデルは、以下のように検証される。検出モデル133は、訓練選択準備モジュール111によって選択されたファイルのセットに基づいてティーチングされている。ファイルのセットが安全であるか悪意があるかは事前に分かっている。検出モデル133が正しく訓練されたこと、すなわち、検出モデルが悪意のあるファイルを検出し、安全なファイルを通すことができることを検証するために、モデルが検証される。この目的のために、検出モデルは、訓練選択準備モジュール111によって選択されたファイルの別のセットに含まれるファイルに悪意があるかどうかを判定するために使用される。これらのファイルの悪意は事前に分かっている。モデルを新しいファイルのセットに適用した後、システム100は、何個の悪意のあるファイルが「見逃され」たか、および何個の安全なファイルが検出されたかを判定する。検出されなかった悪意のあるファイルおよび検出された安全なファイルの数が所定の閾値よりも大きい場合、検出モデル133は、不適切に訓練されたとみなされ、検出モデルは機械学習を使用して（たとえば、別の訓練用選択ファイルについて、前のものとは異なる検出モデルのパラメータの値を使用して、など）再訓練されなければならない。
【０１１４】
たとえば、訓練済みモデルの検証を実行するとき、システム100は、テスト用に選択されたファイルから悪意のあるファイルを検出する際の第1および第2の種類のエラーの数を検証する。このようなエラーの数が所定のしきい値よりも大きい場合、新しいティーチングおよびテスト用のファイルが選択され、新しい検出モデルが作成される。
【０１１５】
さらに別の例では、ティーチング用に選択されたファイルは10,000のファイルを含み、そのうち8,500に悪意があり、1,500は安全であった。検出モデルのティーチング後、システムは1,200のファイルを含むテスト用の選択ファイルでモデルを検証し、そのうち350は悪意があり、850は安全であった。検証結果によれば、350の悪意のあるファイルのうち15が検出に失敗し（4%）、850の安全なファイルのうち102（12%）が誤って悪意のあるファイルとみなされた。一例示的態様によれば、検出されなかった悪意のあるファイルの数が5％を超えるか、または偶発的に検出された安全なファイルが0.1％を超える場合、訓練済み検出モデルは、不適切に訓練されたと見なされる。
【０１１６】
本システムの一変形態様では、システム100の行動ログ115は、システムの以前に形成された行動ログと、システムの当該行動ログの形成後にインターセプトされたコマンドとに基づいて追加的に形成される。
【０１１７】
たとえば、そのファイルの有害性または安全性に関する判定を宣言する必要があるファイルの実行開始後、インターセプトされた実行可能コマンドおよびコマンドを記述するパラメータは、行動ログ115に記録される。これらのコマンドおよびパラメータの分析に基づいて、そのファイルの有害性の程度がシステム100によって算出される。分析の結果に基づいて、ファイルが悪意ありまたは安全と見なされることについての判定が宣言されなかった場合、システム100は、コマンドをインターセプトし続ける。インターセプトされたコマンドおよびそれらを記述するパラメータは、古い行動ログまたは新しい行動ログに記録される。第1のケースでは、有害性の程度は、有害性の程度を算出するために以前に使用されたコマンドおよびパラメータも含む、行動ログに記録されたすべてのコマンドおよびパラメータ分析に基づいて算出される。
【０１１８】
一態様では、システム100は以下を実行するように構成される:
・行動ログ形成モジュール112から取得された行動ログと、検出モデル機械学習モジュール132から取得された検出モデルとに基づいて、有害性の程度を算出し、ファイルの有害性の程度は、実行可能なファイルの悪意のある行動を記述する定量的な特徴である（たとえば、0から1の範囲。0のファイルは安全な行動のみし、1のファイルは所定の悪意のある行動をする。）、および/または
・リソース割り当てを決定するため、算出された有害性の程度を送信する。
【０１１９】
システム100はまた、一態様では、コンピュータシステムのセキュリティを保証する際に使用するために、得られた有害性の程度の分析に基づいて、コンピュータシステムのコンピューティングリソースを割り当てるように設計される。
【０１２０】
システム100の一変形態様では、コンピュータシステムのコンピューティングリソースは少なくとも以下を含む:
・フリーRAMの容量;
・ハードディスク上の空き容量、および/または
・（たとえば、より深いエミュレーションで）アンチウィルススキャンに費やすことができる空きプロセッサ時間（プロセッサ時間の割当）。
【０１２１】
システムのさらに別の変形態様では、有害性の程度の分析は、有害性の程度の先行する算出のそれぞれの後に、有害性の程度の値の変化のダイナミクスを決定することにあり、少なくとも以下である:
・有害性の程度の値が増加した場合には、コンピュータシステムの追加リソースを割り当てること、および/または
・有害性の程度の値が減少した場合には、コンピュータシステムの以前に割り当てられたリソースを解放すること。
【０１２２】
図2は、本開示の例示的な態様による、悪意のあるファイルを検出するためのモデルの機械学習のための方法200の構造図を示す。
【０１２３】
悪意のあるファイルを検出するためのモデルの機械学習のための方法200の構成図は、ティーチング用選択ファイルを準備するステップ211と、行動ログを形成するステップ212と、行動パターンを形成するステップ221と、コンボリューション関数を形成するステップ222と、検出モデルを作成するステップ231と、検出モデルを訓練するステップ232と、コンピュータシステムの行動を追跡するステップ241と、有害性の程度を算出するステップ242と、コンピュータシステムのリソースを管理するステップ243とを含む。
【０１２４】
ステップ211において、訓練選択準備モジュール111は、所定の基準に従ってファイルデータベース113から少なくとも一つファイルを選択するために使用され、検出モデルのティーチングはステップ232において、選択されたファイルに基づいて行われる。
【０１２５】
ステップ212において、行動ログ形成モジュール112は、以下の様に使用される:
・少なくとも以下の間、少なくとも一つのコマンドをインターセプトする:
・ステップ211で選択されたファイルの実行中、
・ステップ211で選択されたファイルの作業のエミュレーション中；
・インターセプトされたコマンド各々について、そのコマンドを記述する少なくとも一つのパラメータを決定する;
・インターセプトされたコマンドおよび決定されたパラメータに基づいて、取得されたファイルの行動ログを形成する。行動ログは、ファイルからインターセプトされたコマンド（以下、コマンド）のセットを表し、各コマンドは、そのコマンドを記述する少なくとも一つの定義されたパラメータ（以下、パラメータ）に対応する。
【０１２６】
ステップ221において、行動パターン形成モジュール121は、ステップ212で形成された行動ログから選択されたコマンドおよびパラメータに基づいて、少なくとも一つの行動パターンを形成する。行動ログ115は、ファイル中の実行可能なコマンド（以下、コマンド）のグループを表し、各コマンドは、そのコマンドを記述する少なくとも一つのパラメータ（以下、パラメータ）に対応する。行動パターンは、一態様では少なくとも一つのコマンドと、そのセットのすべてのコマンドを記述するパラメータとのセットである。
【０１２７】
ステップ222において、コンボリューション関数形成モジュール122はステップ221で形成された行動パターンについて、当該行動パターンに対して実行されたコンボリューション関数の結果の逆コンボリューション関数と、当該行動パターンとの類似度が、指定された値よりも大きくなるように、当該行動パターンのコンボリューション関数を形成する。
【０１２８】
ステップ231において、検出モデル作成モジュール131は検出モデルを生成し、以下の一つ以上を含む:
・検出モデルの機械学習の方法の選択;
・ティーチングモデルのパラメータの初期化。検出モデルの機械学習の開始前に初期化されたティーチングモデルのパラメータは、ハイパーパラメータとして知られている;
・ステップ211で選択されたファイルのパラメータへの依存。
【０１２９】
ステップ232において、検出モデル機械学習モジュール132は、ステップ231で作成された検出モデルをティーチングする。その検出モデルのパラメータは、ステップ221で形成された行動パターンに対して実行される、ステップ222で形成されたコンボリューション関数を使用して算出される。検出モデルは、その検出モデルの算出されたパラメータを使用して、少なくとも一つの行動パターンに基づいてファイルの有害性の程度を算出するための規則のグループを構成する。
【０１３０】
ステップ241では、行動ログ形成モジュール112は:
・コンピュータシステム内で実行されているファイルによって実行されている少なくとも一つのコマンドをインターセプトする;
・インターセプトされたコマンドに基づいてシステムの行動ログを形成する。
【０１３１】
ステップ242では、ステップ241で形成されたシステムの行動ログと、ステップ232で訓練された検出モデルとに基づいて、有害性の程度が算出される。
【０１３２】
ステップ243では、コンピュータシステムのセキュリティを保証する際に使用するために、ステップ242で算出された有害性の程度の分析に基づいてコンピューティングリソースが割り当てられる。
【０１３３】
図3は、行動パターンの数の関数としての有害性の程度の変化のダイナミクスの例を示す。
【０１３４】
グラフ311は、行動パターンの数の関数として有害性の程度の変化のダイナミクスを示し、悪意のあるファイルの実行中に形成された行動パターンの数の関数としての、有害性の程度の任意の変化のダイナミクスのグラフを含む。グラフ312は、悪意のあるファイルの実行中に形成される行動パターンの数の関数として、有害性の程度の単調変化のダイナミクスを示す。グラフ321は、安全なファイルの実行中に形成される行動パターンの数の関数として、有害性の程度の任意の変化のダイナミクスを示す。グラフ322は、安全なファイルの実行中に形成される行動パターンの数の関数として、有害性の程度の単調変化のダイナミクスを示す。
【０１３５】
システムの一変形態様では、実行可能ファイルの有害性の程度は、0（ファイルはもっぱら安全な行動をする）から1（ファイルは所定の悪意のある行動をする）の範囲の値をとる。
【０１３６】
グラフ311は、悪意のあるファイルの実行中に形成される行動パターンの数の関数として、有害性の程度の任意の変化のダイナミクスを示す。
【０１３７】
初めは、そのファイルを実行する際に、形成される行動パターンの数は大きくなく、さらには、実行可能ファイルの悪意のあるアクティビティがないか、または最小限である（たとえば、安全なものを含む多くのファイルにとって自然であるデータの初期化が行われる）ことがあり、その結果、算出される有害性の程度は0とほとんど変わらず、所定の閾値（以下、安全性の尺度）を超えない。所定の閾値を超えた後、実行可能ファイルの行動は安全であると見なされなくなる（グラフ上、この閾値は点線によって示される）。
【０１３８】
しかしながら、時間が経過するにつれて、実行可能ファイルの悪意のあるアクティビティが増大して有害性の程度が1に近づき安全性の尺度を超えるが、一方、有害性の程度は、それを超えると実行可能ファイルの挙動が悪意のあるものとみなされる所定の閾値（以下、有害性の尺度）に到達しない可能性がある（グラフにおいて、この閾値は破線によって示される）。
【０１３９】
増加期間の後、悪意のあるアクティビティは停止し、有害性の程度は再び0に向かう（時点A）。ある時点で、有害性の程度は有害性の尺度よりも大きくなり（時点B）、実行可能ファイルの行動は悪意のあるものとして認識され、その結果、ファイル自体が悪意のあるものとして認識される。
【０１４０】
説明されたアプローチは、実行可能ファイルの長期にわたる明白に表れた悪意のあるアクティビティの間に最も頻繁に発生する、有害性の程度の急激な増加によく応答するので、悪意のあるアクティビティが増加し始めた時点よりもかなり遅くなってからファイルが悪意あるものとして認識される可能性がある。
【０１４１】
悪意のあるアクティビティがエピソード的に発生した場合（グラフ311の左側）、算出された有害性の程度は、それを超えると実行可能ファイルの行動の有害性、ひいては実行可能ファイル自体の有害性について判定が宣言される値/閾値に達しない可能性がある。
【０１４２】
形成された各行動パターンに基づいて有害性の程度を算出しない場合（たとえば、コンピューティングデバイスの性能が高くないため）、時点A（悪意のあるアクティビティが開始したとき）と時点C（悪意のあるアクティビティが終了したとき）において有害性の程度が算出され、時点B（悪意のあるアクティビティが進行中のとき）においては有害性の程度が算出されない可能性がある。すると、算出された有害性の程度は、有害性の尺度を超えず、実行可能ファイルのアクティビティは悪意のあるものとして認識されず、その結果、悪意のあるファイルは検出されない。
【０１４３】
グラフ312は、悪意のあるファイルの実行中に形成される行動パターンの数の関数として、有害性の程度の単調変化のダイナミクスを示す。
【０１４４】
最初に、前記ファイルを実行する際に形成される行動パターンの数は大きくなく、さらに、実行可能ファイルの悪意のあるアクティビティが存在しないか、または最小限であり（たとえば、安全なものを含む多くのファイルについて自然であるデータの初期化が行われる）、その結果、算出される有害性の程度は0とほとんど異ならず、それを超えると実行可能ファイルの行動が安全であるとはみなされなくなる所定の閾値（以下、安全性の尺度）を超えない（グラフ上では、この閾値は点線によって示される）。
【０１４５】
しかしながら、時間が経過するにつれて、実行可能ファイルの悪意のあるアクティビティが増大し、有害性の程度が安全性の尺度を超えて1に近づき始め、一方、有害性の程度は、それを超えると実行可能ファイルの行動が悪意のあるものとみなされる所定の閾値（以下、有害性の尺度）に達しないことがある（グラフにおいて、この閾値は破線によって示される）。
【０１４６】
増加期間（時点A-B）の後、悪意のあるアクティビティは停止することもあるが（時点B-A）、有害性の程度は減少せず、実行可能ファイルの悪意のあるアクティビティの間増加し続ける。ある時点で、有害性の程度は有害性の尺度よりも大きくなり（時点D）、実行可能ファイルの行動は悪意のあるものとして認識され、その結果、ファイル自体が悪意のあるものとして認識される。
【０１４７】
説明されたアプローチは、実行可能ファイルの長期にわたる明確に表れた悪意のあるアクティビティの間、および頻繁で、エピソード的で、あまり目立たない悪意のあるアクティビティの間の両方で起こる、有害性の程度のスムーズな増加によく応答するため、悪意のあるアクティビティとしてファイルを認識する時点は、悪意のあるアクティビティが発現した直後にくる可能性がある。
【０１４８】
悪意のあるアクティビティがエピソード的に発生する場合（グラフ312の左側）、時間の経過に伴う算出された有害性の程度は、それを超えると実行可能ファイルの行動の有害性および実行可能ファイル自体の有害性について判定が宣言される値に達する可能性がある。
【０１４９】
形成された各行動パターンに基づいて有害性の程度が算出されない場合（たとえば、コンピューティングデバイスの性能が高くないため）、有害性の程度は時点A（悪意のある行動が始まるとき）及び時点C（悪意のある行動が終わるとき）において算出されるが、時点B（悪意のある行動が進行中）においては算出されないが、有害性の程度は単調に変化するため算出される有害性の程度の値はただ増加して、時点Cにおいて有害性の程度が有害性の尺度を超えるため、実行可能ファイルの行動は悪意ありと認識され、その結果、悪意のあるファイルが検出されることになる。
【０１５０】
グラフ321は、安全なファイルの実行中に形成される行動パターンの数の関数として、有害性の程度の任意の変化のダイナミクスを示す。
【０１５１】
最初に、前記ファイルを実行すると形成される行動パターンの数は大きくなく、さらには、実行可能ファイルからの悪意のあるアクティビティ自体も存在しないが、悪意のあるファイルの実行（たとえば、ファイルの削除、コンピュータネットワークにおけるデータの転送など）の間に実行されることもある「疑わしい」アクションが実行される可能性があり、したがって、算出される有害性の程度は0ではないが、それを超えると実行可能ファイルの行動が安全であるとみなされなくなる所定の閾値（以下、安全性の尺度）を超えない（グラフ上ではこの閾値は点線によって示される）。
【０１５２】
しかしながら、時間が経過するにつれて、実行可能ファイルの悪意のあるアクティビティは、多数の「疑わしい」コマンドの実行のために増大する。有害性の程度は1に近づき始め、有害性の程度は、それを超えると実行可能ファイルの行動は悪意があると考えられる所定の閾値（以下、有害性の尺度）には達しないかもしれないが（グラフでは、この閾値は破線で示されている）、安全性の尺度を超えるかもしれず、その結果、ファイルは安全と考えられなくなり、「疑わしい」ファイルとなるかもしれない。
【０１５３】
増加期間の後、悪意のあるアクティビティは停止し、有害性の程度は再び0（時点C）に向かう。
【０１５４】
形成された各行動パターンに基づいて有害性の程度が算出されない場合（たとえば、コンピューティングデバイスの性能が高くないため）、有害性の程度は時点Ｂ（アクティビティが悪意に最も近い、すなわち「疑わしい」になる）において算出されるが、時点Ａ（「疑わしい」アクティビティが増加するとき）または時点C（「疑わしい」アクティビティが減少するとき）においては算出されない可能性がある。この状況では、算出される有害性の程度は安全性の尺度を超え、実行可能ファイルの活動は「疑わしい」と認識され（安全とは考えられない）、その結果、以前に安全と考えられたファイルは安全と認識されなくなる。
【０１５５】
グラフ322は、安全なファイルの実行中に形成された行動パターンの数の関数として、有害性の程度の単調変化のダイナミクスを示す。
【０１５６】
最初に、前記ファイルを実行する際に、形成される行動パターンの数は多くない。さらに、実行可能ファイルからの悪意のあるアクティビティはないが、「疑わしい」アクションが実行されることがあり、これは悪意のあるファイルの実行中にも実行されることがある（たとえば、ファイルの削除、コンピュータネットワーク内のデータの転送など）。したがって、算出される有害度は0ではなく、有害性の程度は、それを超えると実行可能ファイルの行動が安全であるとはみなされなくなる所定の閾値（以下、安全基準）を超えない（グラフ上では、この閾値は点線で示される）。
【０１５７】
しかしながら、時間が経過するにつれて、実行可能ファイルの悪意のあるアクティビティは多数の「疑わしい」コマンドの実行のために増大し、有害性の程度は1に近づき始める。有害性の程度は、それを超えると実行可能ファイルの行動は悪意があるとみなされる所定の閾値（以下、有害性の尺度）には達しない場合がある（図中、この閾値を破線で示す）。また、有害性の程度は安全性の尺度を超えないかもしれず、したがって、ファイルは安全であるとみなされ続ける。
【０１５８】
増加期間（時点A-B）の後、悪意のあるアクティビティは停止し得るが（時点B-A）、有害性の程度は低下しない。その代わりに、実行可能ファイルの悪意のあるアクティビティの間、有害性の程度は増大し続けるが、安全性係数を超えることはない。このようにして、実行可能ファイルのアクティビティは安全とみなされ、その結果、ファイルは安全とみなされる。
【０１５９】
形成された各行動パターンに基づいて有害性の程度が算出されない場合（たとえば、コンピューティングデバイスの性能が高くないため）、有害性の程度は時点B（アクティビティが悪意に最も近い、すなわち「疑わしい」になる）で算出されるが、時点A（「疑わしい」アクティビティが増加するとき）または時点C（「疑わしい」アクティビティが減少するとき）においては算出されない可能性がある。しかし、有害性の程度は単調に変化し、算出される有害性の程度はただ増加していくため、時点A、B、Cにおいて、有害性の程度は安全性の尺度を超えず、実行可能ファイルのアクティビティは安全であると認識され、その結果、安全ファイルは安全であると認識される。
【０１６０】
ファイルは、「疑わしい」アクティビティが現れた後、「疑わしい」と認識されない可能性がある。記載されたアプローチは有害性の程度の滑らかな増加に対応するので、有害性の程度が急激に増加するピークを回避する可能性がある。
【０１６１】
図4は、本開示の例示的な態様による、行動パターンの要素間の関係の図の例を示す。
【０１６２】
行動パターンの要素間の関係の図の例は、コマンド411（白抜きの円）、パラメータ412（ハッチングされた円）、一つのパラメータを有する行動パターンの例421、および、一つのコマンドを有する行動パターンの例422を含む。
【０１６３】
ファイルの実行中に、コマンド411がインターセプトされ、それらを記述するパラメータ412が決定された。
・CreateFile  0x24e0da54  '.dat'
・｛c1,  p1,  p2｝
・ReadFile  0x24e0da54  '.dat'
・｛c2,  p1,  p2｝
・DeleteFile  0x24e0da54  '.dat'  'c:\'
・｛c3,  p1,  p2,  p3｝
・CreateFile  0x708a0b32  '.dat'  0x3be06520
・｛c1,  p2,  p3,  p5｝
・WriteFile  0x708a0b32
・｛c4,  p3｝
・WriteFile  0x708a0b32  0x3be06520  0x9902a18d1718b5124728f9  0
・｛c4,  p3,  p5,  p6,  p7｝
・CopyMemory  0x3be06520  0x9902a18d1718b5124728f9
・｛c5,  p4,  p5,  p6｝
・ReadFile  0x9902a18d1718b5124728f9  0
・｛c2,  p6,  p7｝
【０１６４】
これらのコマンド411およびパラメータ412に基づいて、行動パターン（421、422）が形成され、行動パターンの要素間の関係が決定される。
【０１６５】
第1のステップでは、1つのコマンド411と、そのコマンドを記述する1つのパラメータ412とを含むパターンが形成される。
【数８】
2020115328.tif 000009
【０１６６】
図示の例では、8つのインターセプトされたコマンド（それらを記述するパラメータを有する）に基づいて、19の行動パターンが形成されている。
【０１６７】
第2のステップでは、1つのパラメータ412と、そのパラメータ412によって記述することができるすべてのコマンド411とを含むパターンが形成される:
【数９】
2020115328.tif 000010
【０１６８】
図示の例では、8つのインターセプトされたコマンド（それらを記述するパラメータを有する）に基づいて、7つの行動パターンがさらに形成されている。
【０１６９】
第3のステップでは、幾つかのパラメータ412と、これらのパターン412によって記述することができるすべてのコマンド411とを含むパターンが形成される:
【数１０】
2020115328.tif 000011
与えられた例では、8つのインターセプトされたコマンド（それらを記述するパラメータを有する）に基づいて、さらに3つの行動パターンが形成されている。
【０１７０】
図5は、本開示の例示的な態様による、悪意のあるファイルの検出のための訓練済みモデルを使用する悪意のあるファイルの検出のためのシステムの構成図を示す。
【０１７１】
悪意のあるファイルの検出のための訓練済みモデルを使用して悪意のあるファイルを検出するシステム500の構成図は、分析されるファイル501、行動ログ形成モジュール112、検出モデル選択モジュール520、検出モデルデータベース521、行動ログ分析モジュール530、有害性モジュール540、決定テンプレートデータベース541、および分析モジュール550を含む。
【０１７２】
本システムの1つの変形態様では、本システムはさらに、実行中のファイルの行動ログ形成モジュール112を含み、当該モジュールは以下のように構成される:
・少なくとも1つのコマンドを、少なくとも以下の期間中にインターセプトする:
a)  ファイル501の実行中、および/または
b)  ファイル501の実行のエミュレーション中;
・インターセプトされた各コマンドについて、そのコマンドを記述する少なくとも1つのパラメータを決定する;
・インターセプトされたコマンドおよび決定されたパラメータに基づいて、そのファイルの行動ログを形成し、インターセプトされたコマンドおよびそれらを記述するパラメータは、最も早いインターセプトされたコマンドから最も最近のインターセプトされたコマンドまでの時系列順に行動ログに記録される（以下、行動ログへの書き込み）;
・定式化された行動ログを行動ログ分析モジュール530および検出モデル選択モジュール520に送る。
【０１７３】
本システム500のさらに別の変形態様では、行動ログはファイル501の実行可能コマンド（以下、コマンド）の組であり、各コマンドはそのコマンドを記述する少なくとも1つのパラメータ（以下、パラメータ）に対応する。
【０１７４】
本システムのさらに別の変形態様では、実行中のファイル501のコマンドのインターセプトおよびインターセプトされたコマンドのパラメータの決定は、悪意のあるファイルの検出のための訓練済みモデルを使用して悪意のあるファイルを検出するための本システムが実行されているコンピューティングデバイスのパフォーマンスの分析に基づいて実行される。分析は、少なくとも以下を含む。
・次のコマンドがインターセプトされる時点まで、実行中のファイル501の有害性について分析することが可能か否かについての決定（分析行動ログ分析モジュール530、有害性モジュール540、および分析モジュール550の助けを借りて実行される）;
・実行中のファイル501の有害性についての分析は、そのコンピューティングデバイスのコンピューティングリソースの所定の閾値未満の低下をもたらすかどうかに関する決定。コンピューティングデバイスのリソースは、少なくとも以下である。
−そのコンピューティングデバイスの性能
−そのコンピューティングデバイスのRAMの空き容量
−そのコンピューティングデバイスの情報記憶媒体上の空き空間のボリューム（ハードディスクなど）;
−そのコンピューティングデバイスが接続されているコンピュータネットワークの帯域幅。
【０１７５】
悪意のあるファイルの検出のための訓練済みモデルを使用して悪意のあるファイルを検出するための本システムの性能を向上させるため、実行中のファイル501のすべての実行可能なコマンドを含まない行動ログを分析することが必要かもしれない。その理由は、ファイル501の有害性の分析のために実行されるアクションのシーケンス全体は、実行中のファイル501の2つの連続して実行されるコマンド間の間隔よりも長い時間を要するからである。
【０１７６】
たとえば、実行中のファイル501のコマンドは0.001秒毎に実行される（従って、インターセプトされる）が、ファイル501の有害性の分析は0.15秒かかるので、その時間間隔中にインターセプトされた全てのコマンドは無視され、従って、150番目のコマンド毎にのみインターセプトするだけで十分である。
【０１７７】
一態様では、検出モデル選択モジュール520は、以下を実行するように構成される:
・検出モデルデータベース521から、実行中のファイル501の行動ログから選択されたコマンドおよびパラメータに基づき、悪意のあるファイルの検出の少なくとも2つのモデルを選択する。悪意のあるファイルの検出のモデルは、有害性の程度を決定するための決定規則である。
・悪意のあるファイルの検出のモデルのうち選択されたモデルをすべて、有害性モジュール540に送る。
【０１７８】
本システムの1つの変形態様では、検出モデルデータベース521に保持された悪意のあるファイルの検出モデルは、少なくとも1つの安全なファイルおよび少なくとも1つの悪意のあるファイルについて機械学習する方法によって以前に訓練されている。
【０１７９】
悪意のあるファイルの検出モデルは、図1〜図4においてさらに詳細に説明される。
【０１８０】
システム500のさらに別の変形態様では、検出モデルの機械学習の方法は、少なくとも以下である。
・決定木ベースの勾配ブースティング
・決定木法
・K最近傍（kNN）法
・サポートベクトルマシン（SVM）法
【０１８１】
システムのさらに別の変形態様では、検出モデルの訓練方法は、行動ログの分析に基づいて定式化された行動パターンの数の変化に依存した、ファイルの有害性の程度の単調変化を保証する。
【０１８２】
たとえば、ファイル501について算出された有害度は、そのファイル501の行動ログの分析に基づいて形成された行動パターンの数に依存して単調に増加するか、または変化しなくてもよい。ファイル501の実行開始時には、形成される行動パターンの数は重要ではなく、そのファイル501について算出される有害度は0とほとんど異ならない。時間が経過するにつれて、形成されるパターンの数が増加し、そのファイル501について算出される有害度も増加するか、または、そのファイル501の悪意のある活動がない場合、算出される有害度は変化しないままである。したがって、悪意のあるファイル501の実行中にファイルの有害度が算出されるたびに（または行動パターンの形成が開始した行動ログ中の任意のレコードから）、その有害性の程度の算出時間までにファイル501の悪意のある活動が発生したかどうかが反映される。
【０１８３】
システムのさらに別の変形態様では、検出モデルデータベース521から選択された悪意のあるファイルの検出モデル各々は、所定の固有の特徴的な特徴を有する悪意のあるファイルを検出するように訓練される。
【０１８４】
たとえば、検出モデルデータベース521に保持された検出モデルは、以下のファイルを検出するように訓練されてもよい。
・GUI（グラフィカルユーザインタフェース）を有する
・コンピュータネットワークにおいてデータ交換する
・ファイルを暗号化する（「トロイの木馬暗号」ファミリーの悪意のあるファイルなど）
・ネットワークの脆弱性を利用して伝播する（「Net-Worms」ファミリーの悪意のあるファイルなど）、P2Pネットワーク（「P2P-Worms」ファミリーの悪意のあるファイルなど）等
【０１８５】
したがって、悪意のあるファイルは、悪意のあるファイルを検出するためのいくつかの訓練済みモデルを使用して検出され得る。たとえば、悪意のあるファイル「WannaCry.exe」は実行されると、ユーザのコンピューティングデバイス上のデータを暗号化し、当該ファイルが実行されているユーザのコンピューティングデバイスと同じコンピュータネットワークに接続された他のコンピューティングデバイスに自身のコピーを送信するが、かかるファイルは、脆弱性を利用するファイルを検出するよう訓練された検出モデル#1、ファイルを暗号化するよう設計されたファイルを検出するよう訓練された検出モデル#2、および、（たとえば、支払いの形式、金額などに関する）要求と解釈可能なテキスト情報を含むファイルを検出するように訓練された検出モデル#3の助けを借りて検出できる。これらのモデルを用いて算出される有害性の程度、および、算出された有害性の程度が所定の閾値を超える時間は、互いに異なる場合がある。たとえば、悪意のあるファイル501を検出できた悪意のあるファイルの検出モデルを用いた結果は、次の表に示すことができる。
【表１】
2020115328.tif 000012
【０１８６】
算出された有害性の程度が0.78より大きい場合、ファイル501は悪意のあるものとして認識される。有害性の程度（0.78など）は、その有害性の程度が算出されたファイルが悪意のあるファイルであると証明される確率（78%）または安全であると証明される確率（22%）を特徴付ける。悪意のあるファイルの検出モデルをいくつか使用することによって、当該ファイル501が悪意のあるものと認識できる場合、そのファイル501が悪意のあるものと証明される確率は高くなる。たとえば、表1にデータが提示されている悪意のあるファイルの検出モデルの場合、有害性の程度の要約は、次の式によって算出することができる:
【数１１】
2020115328.tif 000013
【０１８７】
式中、
・  wtotalは有害性の程度の要約であり、
・  wiはモデルiを使用して算出された有害性の程度であり、
・  nは、有害性の程度の要約を算出するために使用された悪意のあるファイルの検出モデルの数である。
【０１８８】
したがって、得られた有害性の程度の要約（0.999685）は、所定の閾値よりも著しく高く、算出された有害性の程度がこの閾値（0.78）を超える場合は、当該ファイルは悪意のあるものと認識されることを意味する。すなわち、悪意のあるファイルの検出モデルをいくつか使用することにより、悪意のあるファイルの決定の精度を大幅に高めることができ、悪意のあるファイルの検出中に発生する第1および第2の種類のエラーを少なくすることができる。
【０１８９】
さらに別の例では悪意のあるファイルの検出モデルをいくつか使用することにより、有害性の程度の要約が所定の閾値に達することが可能になり、算出された有害性の程度がこの値を超えるときには当該ファイルは悪意のあるファイルと認識されるため、悪意のあるファイルの検出モデル各々を別々に使用する場合よりもはるかに早くファイルが悪意のあるものとして認識されることを意味する。たとえば、表#1にデータが提示されている悪意のあるファイルの検出モデルについて、算出された有害性の程度が単調に変化すると仮定すると、ファイルが悪意のあるものとして認識されるまでの行動ログからのコマンド数は、以下の式によって算出することができる:
【数１２】
2020115328.tif 000014
【０１９０】
式中、
・  Idetectは、ファイルが悪意のあるものと認識されるようになるまでに分析される行動ログからのコマンド数であり、
・  Iiは、モデルiを用いた分析によりファイルが悪意あるものと認識されるまでに分析される行動ログからのコマンド数であり、
・  wiは、モデルiを用いて算出された有害性の程度であり、
・  nは、ファイルが悪意あるものと認識されるようになるまでに分析される行動ログからのコマンド数を算出するために使用した、悪意のあるファイルの検出モデルの数である。
【０１９１】
このように、行動ログのコマンドについて得られる要約数（207）は、悪意のあるファイルの検出モデルの一つ（モデル#2）によってファイルが最も早く悪意のあるものとして認識されるようになるまでに分析される、行動ログのコマンド数（288）よりもはるかに少ない。すなわち、悪意のあるファイルの検出モデルを複数使用することで、悪意のあるファイルの検出速度（すなわち、効率）を実質的に増加させ得る。
【０１９２】
さらに別の例では、検出モデルデータベース521に保持される異なる検出モデルを、いくつかの必ずしも固有ではない所定の特徴的な特徴を有する悪意のあるファイルを検出するように訓練してもよく、すなわち、検出モデル#1はグラフィカルユーザインターフェースを有し、コンピュータネットワーク内でデータを交換するファイルを検出し、検出モデル#2は、コンピュータネットワーク内でデータを交換し、ネットワーク脆弱性を使用してそのコンピュータネットワーク内で伝播するファイルを検出することができる。これらの検出モデルはいずれも、ネットワークの脆弱性を利用してコンピュータネットワーク内で伝播するというファイルの共通の特徴のおかげで、上述した悪意のあるファイル「WannaCry.exe」を検出することができる。
【０１９３】
システムのさらに別の変形態様では、検出モデルデータベース521から、実行中に少なくとも以下が生じるファイル上で訓練された、悪意のあるファイルの検出モデルを選択する。
・実行中のファイル501の行動ログから選択されたコマンドと同じコマンドの実行
・実行中のファイル501の行動ログから選択されたパラメータと同じパラメータの使用。
【０１９４】
たとえば、行動ログから、ファイルの暗号化を含むファイルの修正に使用されるコマンド「CreateFileEx」、「ReadFile」、「WriteFile」、および「CloseHandle」が選択される。検出モデルデータベース521から、「トロイの木馬暗号」ファミリーの悪意のあるファイルを検出する際に使用するように訓練された検出モデルが選択される。
【０１９５】
さらに別の例では、行動ログから、コンピュータネットワークで動作するコマンド（たとえば、上述のパラメータが電子アドレスへの接続ポートである場合、「connect」）を記述するパラメータ「8080」および「21」が選択される。検出モデルデータベース521から、コンピュータネットワークにおいてデータを交換するファイルを検出する際に使用するように訓練された検出モデルが選択される。
【０１９６】
この態様では、行動ログ分析モジュール530は、以下を実行するように構成される。
・実行中のファイル501の動作ログから選択されたコマンドおよびパラメータに基づいて少なくとも1つの行動パターンを形成し、行動パターンは、少なくとも1つのコマンドおよびそのセットからのすべてのコマンドを記述するパラメータのセットである。
・形成された全ての行動パターンのコンボリューションを算出する。
・形成されたコンボリューションを、実行中のファイルの有害性モジュール540に送る。
【０１９７】
システムの1つの変形態様では、形成された行動パターンのコンボリューションの算出は、形成された行動パターンのすべてに対して実行されたコンボリューション関数の結果の逆コンボリューション関数と、当該行動パターンとの類似度が、所定の閾値よりも大きくなるような、所定のコンボリューション関数に基づく。
【０１９８】
コンボリューション関数の形成および使用（コンボリューションの算出）は、図1および図2により詳細に記載されている。
【０１９９】
一態様では、有害性モジュール540は、以下を実行するように設計される。
・得られた悪意のあるファイルの検出モデル各々を用いた、得られたコンボリューションの分析に基づいて、実行中のファイル501の有害性の程度を算出する。
・算出された有害性の程度を分析モジュール550に送る。
【０２００】
システムの1つの変形態様では、決定テンプレートは、有害性の程度の構成である。
【０２０１】
たとえば、上述したモデル#1、#2、#3に基づいて算出された有害性の程度の構成は、対の集合｛0.95、374｝、｛0.79、288｝、｛0.87、302｝で表すことができる。
【０２０２】
さらに別の例では、上述のモデル#1、#2、#3に基づいて算出された有害性の程度の構成は、算出された有害性の程度の中心の傾向の尺度（算術平均など、所与の場合には0.87）を表すことができる。
【０２０３】
さらに別の例では、有害性の程度の構成は、有害性の程度を算出するために使用される行動パターンの数または時間の関数として有害性の程度の変化を表す。
【０２０４】
一態様では、分析モジュール550は、以下を実行するように設計される。
・得られた有害性の程度に基づいて決定テンプレートを作成する。
・形成された決定テンプレートと、悪意のあるファイルの分析に基づいて以前に形成された、決定テンプレートデータベース541中の所定の決定テンプレートのうちの少なくとも1つと、の間の類似度が所定の閾値よりも大きい場合、実行中のファイル501は悪意のあるものと認識する。
【０２０５】
システムの1つの変形態様では、決定テンプレートは、有害性モジュール540から得られる有害性の程度の集合である。
【０２０６】
システムのさらに別の変形態様では、決定テンプレートは、時間の関数としての有害性の程度、またはその有害性の程度を算出するために使用される行動パターンの数である。
【０２０７】
システムのさらに別の変形態様では、決定テンプレートデータベース541の決定テンプレートは、検出モデルデータベース521のモデルの訓練に使用された悪意のあるファイルの分析に基づいて形成される。
【０２０８】
たとえば、そのうち75,000が安全なファイルであり、25,000が悪意のあるファイルである100,000のファイルに基づいて、検出モデルが訓練され（テストを含む）、次いで検出モデルデータベース521に保存される。悪意のあるファイルの検出モデルは訓練された後、上記の25,000の悪意のあるファイルのいくつか（またはすべて）に対する決定テンプレートを形成するために使用され、形成された決定テンプレートは次いで、決定テンプレートデータベース541に入力される。すなわち、まず、悪意のあるファイルの検出モデルの機械学習が最初に、学習およびテスト用のサンプルファイルを用いて実行される。その結果、悪意のあるファイルの検出モデルいくつかが訓練でき、その各々は、固有の所定の特徴的特性を有する悪意のあるファイルを検出するよう訓練される。全ての検出モデルが訓練された後、悪意のあるファイルを検出するための訓練済みモデルのどれが、ある悪意のあるファイル（上述の例では25,000の悪意のあるファイル）を検出するかを決定する。1つの悪意のあるファイルは悪意のあるファイルを検出するためのモデルの1つのセットを使用して検出することができ、別のものは悪意のあるファイルを検出するためのモデルの第2のセットを使用して検出することができ、第3のものは悪意のあるファイルを検出するためのモデルの前述のセットから悪意のあるファイルを検出するためのいくつかのモデルを使用して検出することができる。決定テンプレートは、悪意のあるファイルの検出モデルのどれがどの悪意のあるファイルを検出することができるかについて得られたデータに基づいて形成される。
【０２０９】
システムのさらに別の変形態様では、分析モジュール550は、形成された決定テンプレートと決定テンプレートデータベース541からの所定の決定テンプレートのうちの少なくとも1つとの間の類似度が所定の閾値を超える一方で、悪意のあるファイルの検出のためのこれらのモデルを用いて算出された有害性の程度が所定の閾値を超えない場合に、実行中のファイル501の行動ログから選択されたコマンドおよびパラメータに基づいて、検出モデルデータベース521からの少なくとも1つの検出モデルを再訓練するようにさらに設計される。
【０２１０】
図6は、本開示の例示的な態様による、悪意のあるファイルの検出の訓練済みモデルを使用した、悪意のあるファイルの検出のための方法のフロー図を示す。
【０２１１】
悪意のあるファイルの検出の訓練済みモデルを使用した、悪意のあるファイルを検出するための方法の構成図は、分析中のファイルが実行されるステップ610と、行動ログが形成されるステップ620と、行動パターンが形成されるステップ630と、コンボリューションが算出されるステップ640と、検出モデルが選択されるステップ650と、有害性の程度が算出されるステップ660と、決定テンプレートが形成されるステップ670と、ファイルが悪意のあるものとして認識されるステップ680と、検出モデルが再訓練されるステップ690と、を含む。
【０２１２】
ステップ610において、行動ログ形成モジュール112は、少なくとも以下を実行するように構成される。
・分析中のファイル501を実行する。
・分析中のファイル501の実行をエミュレートする。
【０２１３】
ステップ620において、行動ログ形成モジュール112は、分析中のファイル501について行動ログを形成し、そのため、
・実行されている少なくとも1つのコマンドがインターセプトされる。
・インターセプトされた各コマンドに対して、そのコマンドを記述する少なくとも1つのパラメータが決定される。
・そのファイル501の行動ログは、インターセプトされたコマンドおよびそのように決定されたパラメータに基づいて形成される。
【０２１４】
ステップ630において、行動ログ分析モジュール530を使用して、実行中のファイル501の行動ログから選択されたコマンドおよびパラメータに基づいて、少なくとも1つの行動パターンを形成する。行動パターンは、一態様では、少なくとも1つのコマンドと、そのセットのすべてのコマンドを記述するパラメータとのセットである。
【０２１５】
ステップ640において、行動ログ分析モジュール530は、ステップ630で形成された全ての行動パターンのコンボリューションを算出する。
【０２１６】
ステップ650において、検出モデル選択モジュール520は、実行中のファイル501の行動ログから選択されたコマンドおよびパラメータに基づいて、検出モデルデータベース521から、悪意のあるファイルの少なくとも2つの検出モデルを選択する。悪意のあるファイルの検出モデルは、一態様では、有害性の程度を決定するための決定規則である。
【０２１７】
ステップ660において、有害性モジュール540は、ステップ650において選択された、悪意のあるファイルの検出モデル各々を用いて、ステップ640において算出されたコンボリューションの分析に基づき、実行中のファイル501の有害性の程度を算出する。
【０２１８】
ステップ670において、分析モジュール550は、ステップ660で得られた有害性の程度に基づいて決定テンプレートを形成する。
【０２１９】
ステップ680において、分析モジュール550は、ステップ670で形成された決定テンプレートと、決定テンプレートデータベース541からの所定の決定テンプレートのうちの少なくとも1つとの間の類似度が所定の閾値を超える場合に、当該実行中のファイル501を悪意のあるものと認識する。
【０２２０】
ステップ690において、分析モジュール550は、形成された決定テンプレートと決定テンプレートデータベース541からの所定の決定テンプレートのうちの少なくとも1つとの間の類似度が所定の閾値を超える一方で、悪意のあるファイルに対するこれらの検出モデルを用いて算出された有害性の程度が所定の閾値を超えない場合に、実行されているファイルの行動ログから選択されたコマンドおよびパラメータに基づいて、検出モデルデータベース521から少なくとも1つの検出モデルを再訓練するために使用される。
【０２２１】
図7は、本開示の例示的な態様による、悪意のあるファイルの検出のためのシステムの例を示す。
【０２２２】
悪意のあるファイルの検出のためのシステムの構成図は、分析対象であるファイル501、行動ログ形成モジュール112、検出モデルデータベース521、データ収集モジュール710、ファイルの行動に関するデータ711、パラメータ算出モジュール720、パラメータ算出モデル721、分析モジュール730、尺度形成モデル731、およびパラメータ補正モジュール740を含む。
【０２２３】
行動ログ形成モジュール112、ファイル501、モデルデータベース521、および分析モジュール730（分析モジュール550の変形態様として）のより詳細な説明は、図1、図2、図5、および図6に開示されている。
【０２２４】
データ収集モジュール710は、行動ログ形成モジュール112によって収集されたファイル501の実行行動に関するデータ711に基づいて、その行動を特徴付ける特徴のベクトルを形成するように設計され、特徴のベクトルは、数の集合として形成された、収集されたデータ711のコンボリューションである。
【０２２５】
収集されたデータのコンボリューションの形成の例は、図1の行動パターン形成モジュール121の動作の説明に示されている。
【０２２６】
本システムの一変形態様では、ファイル501の実行行動に関するデータ711は、少なくとも以下を含む:
・実行中のファイル501に含まれるコマンド、またはファイル501の実行プロセスで解釈可能なコマンド、それらのコマンドに送信された属性、および返された値；
・ファイル501の実行中に変更することができるRAMの領域上のデータ;
・ファイル501の静的パラメータ。
【０２２７】
たとえば、コマンドは、コンピュータのプロセッサの命令（または命令のグループ）、またはサードパーティの動的ライブラリからのWinAPI関数または関数のいずれかであってもよい。
【０２２８】
さらに別の例では、ファイル501は、ファイル501の実行中にプロセッサコマンド（または「dll」ライブラリの場合にはあるプロセスのコマンド）および/またはコマンドに転送されるパラメータとして解釈される未処理データ（生データ）を含むことができる。特定の場合において、そのようなデータは、ポータブルコードであり得る。
【０２２９】
さらに別の例では、RAM領域のデータは、以下であってよい。
・（たとえば、ファジーハッシュの使用による）それらのメモリ領域のコンボリューション;
・それらのメモリ領域の語彙分析の結果。この結果に基づいて、そのメモリ領域から語彙素が抽出され、それらの使用時に統計（たとえば、使用頻度、重み付け特性、他の語彙素との関係など）が収集される;
・サイズ、所有者（処理）、使用権などのメモリ領域の静的パラメータ。
【０２３０】
ファイル501の静的パラメータは、ファイルを特徴付ける（ファイルを特定する）パラメータであり、ファイル501の実行、分析、または修正の過程で変更されないままであるか、またはファイル501の実行時までファイル501を特徴付けるパラメータである。
【０２３１】
特定の例では、ファイル501の静的パラメータは、その実行または行動の特徴に関する情報を含むことができる（すなわち、ファイル501の実行の結果の予測を可能にする）。
【０２３２】
さらに別の例では、ファイルの静的パラメータは、ファイルのサイズ、その作成時間、修正、ファイルの所有者、ファイルが取得されたソース（電子アドレスまたはIPアドレス）などである。
【０２３３】
システムのさらに別の変形態様では、ファイル501の実行行動に関するデータ711は、少なくとも以下を含む様々なソース（入力データチャネル）から収集される。
・分析中のファイル501によって実行されたコマンドのログ;
・オペレーティングシステムによって実行されるコマンドまたはオペレーティングシステムの制御下で実行されるアプリケーションのログ（分析中のファイル501を除く）;
・コンピュータネットワークを介して取得されたデータ。
【０２３４】
一態様では、パラメータ算出モジュール720は、データ収集モジュール710によって形成された特徴ベクトルに基づいて、訓練済みパラメータ算出モデル721を使用して、有害性の程度および安全性の限界度を算出する。例示的な態様では、有害性の程度は、ファイル501は悪意があると証明される確率を特徴付ける数値であり、安全性の限界度は、所定の条件が満たされた場合に、ファイル501に悪意があると確実に証明される確率を特徴付ける数値である。有害性の程度および安全性の限界度（図9参照）に応じて、連続して算出される前記程度の集合は、所定の時間則によって記述される。
【０２３５】
本システムの一変形態様では、入力データの各チャネル（入力データのソース、または所定の尺度によってフィルタリングされた出力データのソースからのデータ）について、特徴（長さNの実数のベクトル）を抽出するためのシステムが作成される:
・所与のチャネルが連続的な情報（たとえば、アンパックされた実行可能ファイルのログまたはシーケンス）の取得に関与する場合、入力シーケンスの特徴を単一のベクトルとして集約するためのシステムが追加的に作成される;
・システムは、所与のチャネルからの特徴を、長さKの新しいベクトルに変換するために作成される。このベクトルの値は、入力シーケンスの新しい要素が処理されるにつれて単調に増加するだけである。
【０２３６】
システムのさらに別の変形態様では、特徴の抽出、集約、および変換のためのシステムは、ティーチングのためのパラメータに依存することができ、これはモデル全体のティーチングステップにおいて後に調整される:
・全てのアクティブチャネルから到着する、長さKのベクトルは、固定長の1つのベクトルに単調に集約され（たとえば、最大値が要素ごとにとられる）、及び/又は
・集約された単調に増加するベクトルは1つの実数に変換され、検査されているプロセスの疑わしさを特徴付ける（たとえば、ベクトルは、そのベクトルの要素の追加によって、又はそのベクトルのノルムの算出のような所定のアルゴリズムによってベクトルの要素に対してアクションを実行することによって変換される）。
【０２３７】
本システムのさらに別の変形態様では、パラメータ算出モデル721は、少なくとも1つの安全なファイルおよび少なくとも1つの悪意のあるファイルについて機械学習する方法によってそれまでに訓練されている。
【０２３８】
本システムのさらに別の変形態様では、パラメータ算出モデル721の機械学習の方法は、少なくとも以下である。
・決定木ベースの勾配ブースティング;
・決定木法;
・K最近傍（kNN）法;
・サポートベクトルマシン（SVM）法。
【０２３９】
本システムのさらに別の変形態様では、少なくとも算出された有害性の程度または安全性の限界度はそれぞれ、ファイル501の静的データの分析に基づいてファイル501の起動時に算出される有害性の程度および安全性の限界度に依存する。
【０２４０】
たとえば、有害性の程度および安全性の限界度は、以下の式によって算出することができる:
ω＝ω０＋ω（ｔ）
φ＝φ０＋φ（ｔ）
【０２４１】
式中、
・ω，φはそれぞれ、有害性の程度と安全性の限界度であり、
・ω0，φ0は、ファイル501の実行パラメータに依存しないが、外部条件（オペレーティングシステムの作業パラメータなど）に依存する有害性の程度と安全性の限界度の開始値であり、
・ω(t)，φ(t)はそれぞれ、有害性の程度と安全性の限界度を算出するために使用される時間則である。
【０２４２】
時間則は互いに依存することができる、すなわち、以前に算出された有害性の程度および安全性の限界度に依存することができる。
ω(tn)=ω(t,φ(tn-1))
φ(tn)=φ(t,ω(tn-1))
【０２４３】
本システムの上記の変形態様は、図9により詳細に開示されている。
【０２４４】
本システムのさらに別の変形態様では、訓練済みパラメータ算出モデル721は、ファイル501の実行行動について決定されたデータ711に応じて、ファイルの有害性の程度およびファイルの安全性の限界度を算出するための規則の集合である。
【０２４５】
本システムのさらに別の変形態様では、連続的に算出された有害性の程度の集合および連続的に算出された安全性の限界度の集合を記述する時間則は、本質的に単調である。
【０２４６】
たとえば、時間の関数としての有害性の程度の変化曲線は、単調に増加する関数（たとえば、f(x)=ax+b）によって記述され得る。
【０２４７】
本システムのさらに別の変形態様では、連続的に算出された有害性の程度の集合および連続的に算出された安全性の限界度の集合を記述する時間則は、区分的な単調性を有する、すなわち、指定された時間間隔に対して単調性を有する。
【０２４８】
多くの場合、記載されているシステムの動作中に、（コンピューティングリソース、コンピュータ時間、最小性能に対する要求の存在などに対する制限のために）有害性の程度を絶えず（連続的に、または所与の周期性で）決定することは不可能である。したがって、有害性の程度および安全性の限界度は、算出可能な時間間隔（所定の時間間隔ではなく、ファイル501の実行のプロセスで算出することができる間隔）にわたって算出することができる。このような算出はまた、入力パラメータがファイルの実行プロセスにおいて算出される、ある所定の時間則に基づいている、すなわち、ファイルの算出時間について以下のように書くことができる。
tn=τ(tn-1)
【０２４９】
有害性の程度および安全性の限界度の算出の時間は、以前に算出された有害性の程度および安全性の限界度に依存し得る。
tn=τ(tn-1,  ω(tn-1),  φ(tn-1))
【０２５０】
たとえば、ファイル501が起動されると、最初の10秒間、そのファイルの有害性の程度は単調に増加し、10秒後、そのファイルの有害性の程度は半分になり、その後、もう一度単調に増加し始める。
【０２５１】
分析モジュール730は、ファイル501の実行行動について収集されたデータ711が、有害性を発見するための所定の尺度を満たす場合に、悪意のあるファイル501の検出の決定を宣言する。この尺度は、パラメータ算出モジュール720によって算出された有害性の程度および安全性の限界度に基づいて定式化される。一態様では、この尺度は、有害性の程度と安全性の限界度との間の確立された相関関係に基づく、（尺度形成モデル731によって提供される）ファイルの分類のための規則である。
【０２５２】
本システムの1つの変形態様では、有害性の程度と安全性の限界度との間の相関は少なくとも以下である:
・有害性の程度と有害性の境界条件との間の距離の所定の閾値からの差分;
・有害性の程度および安全性の限界度を記述する曲線間の所与の時間間隔により境界付けられた領域の所定の閾値からの差分;
・有害性の程度および有害性の境界条件の変化を時間の関数として記述する曲線の相互増加率の所定の閾値からの差分。
【０２５３】
たとえば、説明した相関の最も特徴的な例を図9に示す。
【０２５４】
パラメータ補正モジュール740は、算出された有害性の程度および安全性の限界度の分析（図9参照）に基づいてパラメータ算出モデル721を再訓練するように設計される。モデル721が再訓練されると、有害性の程度および安全性の限界度を記述する時間則の変化は、それらの時間則を使用して得られた値の間の相関を最大にする傾向がある。
【０２５５】
本システムの1つの変形態様では、パラメータ算出モデル721は、そのモデルが使用されるときに、後に形成される尺度が少なくとも以下を保証するように再訓練される:
・パラメータの算出に訓練されていないモデルを使用する場合よりも、有害性の程度および安全性の限界度の決定精度が高いこと。
・コンピューティングリソースの使用率は、訓練されていないモデルを使用してパラメータを算出する場合よりも低くなること。
【０２５６】
たとえば、再訓練（又は更なる訓練）の後、有害性の程度と安全性の限界度の曲線の値の間の相関係数は大きくなる（1に近づく傾向がある）。
【０２５７】
その結果、パラメータ算出モデル721を常に再訓練すると、第1および第2の種類のエラー（誤認検出）の発生確率は常に減少する。上述した異なる再訓練尺度の使用は、再訓練されたモデル721を有する悪意のあるファイルの検出のためのシステムが開始時（再訓練の初期段階において）に第1及び第2の種類のエラーの非常に高い減少率を有することを確実にし、その結果、パラメータ算出モデル721の再訓練の繰り返しが少なくても、悪意のあるファイルの検出のためのシステムの有効性は急激に上昇し、100%に向かう傾向がある。
【０２５８】
図8は、本開示の例示的な態様による、悪意のあるファイルを検出するための方法の例を示す。
【０２５９】
悪意のあるファイルを検出するための方法の構成図は、特徴ベクトルが形成されるステップ810と、パラメータが算出されるステップ820と、悪意のあるファイルの検出に関して決定が宣言されるステップ830と、パラメータ算出モデルのステップ840と、を含む。
【０２６０】
ステップ810において、ファイル501の実行行動711を特徴付ける特徴のベクトルが前記行動について収集されたデータに基づいて形成され、特徴ベクトルは、数の集合の形の、収集されたデータのコンボリューションである。
【０２６１】
ステップ820では、このようにして形成された特徴ベクトルに基づいて、訓練済みパラメータ算出モデル721を用いて、ファイル501が悪意を有すると証明される可能性を特徴付ける数値である有害性の程度と、連続して算出された前記程度の集合が所定の時間則で記述される場合に、ファイル501が悪意を有すると確実に証明される可能性を特徴付ける数値である安全性の限界度とが算出される。
【０２６２】
本開示の例示的な態様によれば、ステップ810〜820は、分析中のファイル501の実行の異なる連続する時間間隔について実行される。
【０２６３】
ステップ830において、ファイル501の実行行動について収集されたデータ711が、ステップ820で算出された有害性の程度および安全性の限界度に基づいて定式化された有害性を発見するための所定の尺度（図9参照）を満たす場合に、悪意のあるファイル501の検出に関して決定が宣言され、前記尺度は、有害性の程度と安全性の限界度との間の確立された相関に基づきファイルを分類するための規則である。
【０２６４】
ステップ840において、パラメータ算出モデル721は、算出された有害性の程度および安全性の限界度の分析に基づいてさらに再訓練され、その結果、有害性の程度および安全性の限界度を記述する時間則の変化は、これらの法則に基づき得られる値の間の相関が最大に向かう傾向をもたらす。
【０２６５】
図9は、行動パターンの数の関数としての、有害性の程度および安全性の限界度の変化のダイナミクスの例を示す:
【０２６６】
図911には、分析中のファイル501の有害性の程度の（本質的に、定式化された行動パターンの数の増加に伴って）経時的な増加が観察される状況が示されている。同様に、安全性の限界度についても増加が観察される（図3に示す有害性の尺度の一般的な事例）。
【０２６７】
悪意のあるファイル501の程度がファイル501の安全性の限界度を超え始めた場合に、悪意のあるファイル501の検出に関する決定が行われる（ポイント911.B）。
【０２６８】
このような状況はファイル501の実行中、及びオペレーティングシステム全体の状態の分析時に、「疑わしい」アクティビティが登録された場合に観察される。これにより、第1の種類のエラーが発生する確率を低減することができる。疑わしいアクティビティがシステムの作業において登録されている場合であっても（すなわち、悪意のあるものとはまだみなされないが安全であるとも考えられないアクティビティ、たとえば、初期ファイルが後に削除されるアーカイブパッキング等）、そのアクティビティはファイル501の有害性の程度を算出するときに考慮され、悪意のあるファイルの検出に関する肯定的な決定の宣言は、ほとんどの場合、ファイル501の実行中のアクティビティよりも、システムの動作中の疑わしいアクティビティに基づくことがない。すなわち、ファイル501を悪意のあるものとして認識することに関する最終決定に対するファイル501の実行アクティビティの寄与は、システムアクティビティの寄与よりも大きくなるはずである。
【０２６９】
たとえば、ユーザがコンピュータ上でデータのアーカイブを実行し、その結果、ハードディスクからデータを繰り返し読み取り、その後、ファイルの名前変更または削除を行う場合に、同様の状況が観察されることがあり、このようなアクティビティは、（ユーザから得られた統計データによれば）通常のユーザ（オフィスワーカ等）についてはきわめて稀にしか観察されないため、通常のユーザにおいてはシステムに対する悪意のある暗号化ソフトウェアの動作による疑わしいアクティビティとみなされるかもしれない。
【０２７０】
たとえば、ユーザのコンピュータ上でのソフトウェアのアクティビティの分析中、標準的なアンチウィルスアプリケーションは、特定のアプリケーションが「疑わしい」振る舞いをしている、すなわち、そのアプリケーションの振る舞いはアンチウィルスアプリケーションの所定の規則に準拠していないという警告を発することがあるかもしれない（積極的な措置は何ら取らずに）。しかし、提案されたシステムは所定の規則によって動作するのではなく、代わりに、アクティビティの変化を動的に評価し、悪意があるが未知のファイル501を検出する（悪意ありと宣言する）。
【０２７１】
さらに別の例では、ファイル501の実行時のアクティビティの変化は、コンピュータネットワーク内でのデータ送信の結果であるかもしれず、送信されるデータの特徴によっては（頻度、量等）、悪意のあるアクティビティが行われている（たとえば、リモート管理（バックドア）の悪意のあるプログラムが実行されている）ことを示しているかもしれない。このようなアクティビティが長く続くほど、ユーザのコンピュータ上の典型的なネットワークアクティビティと著しく異なるので、悪意のあるものとして認識される可能性が高くなる。
【０２７２】
図912には、分析中のファイル501の有害性の程度の増加と安全性の限界度の低下が経時的に観察される状況が示されている。
【０２７３】
悪意のあるファイル501の検出について決定がされるのは、悪意のあるファイル501の程度がファイル501の安全性の限界度を超え始めたときである（点912.B）。
【０２７４】
このような状況は、オペレーティングシステムの状態の分析中に「疑わしい」アクティビティが観察されない場合に観察され、これは図911に記載された状況とは逆である。これにより、第2の種類のエラー（悪意のあるファイルを見落とす）が発生する確率を低減することができる。特にファイル実行中の他の行動や全体としてのオペレーティングシステムが「疑わしく」みえない場合に、疑わしいアクティビティは、悪意のあるファイルの検出に関する肯定的な決定の宣言に「より強く」影響する。
【０２７５】
たとえば、このような状況は、ユーザのコンピュータ上のリモート管理の悪意のあるプログラムの動作中に観察され得る。悪意のあるアクティビティはエピソード的にしか現れず、たとえば、全ての次のエピソードは、より「密接に」分析されてもよい。言い換えれば、この尺度では、それ以降、悪意のあるものと見なされるアクティビティは、常に減少しなければならない。しかし、信頼されているアプリケーションがユーザのコンピュータ上で実行され始め、その振る舞いが疑わしいと考えられるが、アプリケーションが信頼されている（すなわち、有害性について以前にチェックされている）ために、そのようにはみなされない場合、有害性の限界度が増加しうる。これは、正当なファイルの行動を悪意のあるものとして認識することや、単に悪意のあるファイルの悪意のある行動の検出を延期することに対する保護となる。
【０２７６】
図913は、分析中のファイル501の有害性の程度が時間とともに増加することが観察される状況を示す。増加はゼロマークから始まるのではなく、むしろ、ある算出値から始まり、その結果、最初の場合よりも早く有害性の尺度に到達するか、または、最初の場合には到達されなかったのに対し到達されるのであろう。
【０２７７】
悪意のあるファイル501の検出についての決定は、悪意のあるファイル501の程度とファイル501の安全性の限界度との差が所定の閾値未満になった場合に顕著となる（点913.B）。特定の場合には、悪意のあるファイル501の程度とファイル501の安全性の限界度との差が別の所定の閾値未満になった（点913.A）（点913Aと点913Bとの間で差分は増加していてもよい）場合にのみ、このような決定を行うことができる。
【０２７８】
たとえば、未知のソースから取得された、または「疑わしい」方法（たとえば、プロセスのメモリからディスクへのデータの書き込み）によってコンピュータ上で形成されたファイル501の実行中に、有害性の程度は最初に、より「疑わしくない」方法によって取得されたファイルの有害性の程度よりも高く表れるかもしれない。
【０２７９】
図914には、図911に示した状況に類似した状況が示されているが、唯一の違いは有害性の程度および安全性の限界度を表す曲線がいくつかの連続する交点を有することである。このような状況では、ファイル501を悪意のあるものとして認識する決定は、これらの曲線が交差するという事実によってではなく、所定の閾値を超える交差の数によって、またはこれらの曲線によって切り出された領域が所定の閾値を超えることによってなされる。
【０２８０】
これらの図は、悪意のあるファイルの検出の有効性を高め、悪意のあるファイル501の検出における第1および第2の種類のエラーを低減する。
【０２８１】
算出された有害性の程度と算出された安全性の限界度との相関関係と、ファイル501を悪意のあるものと宣言する決定との記述は、以下の数式またはアルゴリズムの形で表すことができる:
【数１３】
2020115328.tif 000015
【０２８２】
図10は、本開示の例示的な態様による、コンピュータシステムのオブジェクトを分類するためのシステムの構成図を示す。
【０２８３】
コンピュータシステムのオブジェクトを分類するためのシステムの構成図は、コンピュータシステムのオブジェクト1001と、収集モジュール1010と、コンピュータシステムのオブジェクトに関するデータ1011と、コンボリューション形成モジュール1020と、特徴ベクトル1021と、類似度算出モジュール1030と、パラメータ算出モデル1031と、分析モジュール1040と、パラメータ補正モジュール1050と、尺度形成モデル1051とからなる。
【０２８４】
収集モジュール1010は、コンピュータシステムのオブジェクト1001（以下、オブジェクト）を記述するデータ1011を収集するように設計される。
【０２８５】
システムの1つの変形態様では、コンピュータシステムは少なくとも以下である:
・パーソナルコンピュータ、
・ノートパソコン、
・タブレット、
・スマートフォン、
・コントローラ、
・サーバ、
・データ記憶手段。
【０２８６】
本システムのさらに別の変形態様では、コンピュータシステムのオブジェクト1001は、少なくとも以下である。
・ファイル、
・プロセス、
・スレッド、
・同期オブジェクト、
・アプリケーション、
・アーカイブ（他のファイルを含むファイル）、
・データベースレコード。
【０２８７】
本システムのさらに別の変形態様では、オブジェクト1001を記述するデータは、少なくとも以下である。
・オブジェクト1001を特定するデータ（ファイル名またはファイルから算出されたハッシュなど）、
・そのオブジェクト1001と他のオブジェクト1001との間の論理的および機能的関係を記述するデータ（たとえば、どのファイルがアーカイブに含まれているか、どのスレッドがそれに関連して生成されているかなど）、
・そのオブジェクト1001と他のオブジェクト1001との差異を記述するデータ（ファイルサイズ、実行可能ファイルの種類、オブジェクトの使用方法など）、
・オブジェクト1001の種類。
【０２８８】
オブジェクト1001（またはオブジェクト1001を特徴付けるパラメータ）を記述するデータは、図1、図2、および図5〜図8でさらに詳細に説明される。
【０２８９】
たとえば、コンピュータシステムはユーザのパーソナルコンピュータであってもよく、コンピュータシステムのオブジェクト1001はファイルであってもよい。そのパーソナルコンピュータのファイルの分類は、どのファイルに悪意があり、どのファイルが安全であるかを決定することにある（アンチウィルススキャンが実行される）。
【０２９０】
さらに別の変形態様では、オブジェクト1001を記述するデータは、指定された収集の規則によって確立された条件に従って収集され、分析される。その結果、分析モジュール1040によって分析が実行される前に、オブジェクト1001のいくつかの（しばしば異なる）状態に関するデータを収集することができる。これにより、結果として、オブジェクト1001の分類の精度が向上し、前記分類中に生じる可能性がある第1および第2の種類のエラーが少なくなる。
【０２９１】
本システムのさらに別の変形態様では、オブジェクト1001に関するデータの分析は、オブジェクト1001に関するデータの収集と並行して行われてもよく、したがって、2つの分析結果はある程度共通のデータに基づくものであってもよい。これにより、結果として、オブジェクト1001の分類の精度が向上し、前記分類中に生じる可能性がある第1および第2の種類のエラーが少なくなり、また、分類の実行速度が向上し、そのような分類中のコンピュータリソースの使用が少なくなる。
【０２９２】
本システムのさらに別の変形態様では、オブジェクト1001の状態は、（オブジェクト1001を特徴付ける収集されたデータから特定することができる）パラメータおよび属性のセットであり、少なくとも以下である。
・他のオブジェクトから当該オブジェクト1001を明確に特定する
・同一または類似のパラメータまたは属性を有するオブジェクト1001のグループを明確に特定する
・オブジェクト1001を、所与の類似度を有する他のオブジェクトと区別する。
【０２９３】
本システムのさらに別の変形態様では、収集規則は少なくとも以下である。
・オブジェクト1001の異なる状態間の時間間隔が所与の値を満たす。
・オブジェクト1001の状態を記述するパラメータの変化の間隔が、所与の値を満たす。
・オブジェクト1001の状態の変化をもたらすコンピュータシステムのパラメータの変化の間隔が、所与の値を満たす。
【０２９４】
（上記の項目1で述べたような）時間的なシステムの状態の変化の代わりに、オブジェクト1001またはコンピュータシステムの第2の選択されたパラメータの変化のダイナミクスを可能にするシステムの状態の変化を使用することが可能である。この場合、オブジェクト1001は、指定されたパラメータが独立した量（その空間の基底）であり、時間がそれらのパラメータに依存する量である単量体空間において分析される。
【０２９５】
たとえば、オブジェクト1001の状態は100ms毎に決定される（すなわち、オブジェクト1001の2つの状態間の時間間隔は100msである。）。
【０２９６】
さらに別の例では、オブジェクト1001の状態は、それらのオブジェクトのサイズ（またはオブジェクト1001に含まれるデータの量）に1kBの変化が生じた後（すなわち、オブジェクト1001の状態を記述するパラメータが変化した後）に決定される。
【０２９７】
さらに別の例では、オブジェクト1001の状態は、使用されるメモリまたはデータストレージ手段（たとえば、ハードディスク）の容量が1MB変化した（すなわち、コンピュータシステムのパラメータが変化した）後に決定される。
【０２９８】
本システムのさらに別の変形態様では、オブジェクト1001に関するデータ1011の収集は、コンピュータデバイスに内蔵されたドライバまたは他のソフトウェアの助けを借りて、コンピュータデバイス上のデータ1011（オブジェクト1001に関する、またはオブジェクト1001に、またはオブジェクト1001から送信されているデータ）をインターセプトすることによって行われる。
【０２９９】
たとえば、パーソナルコンピュータ上のファイル1001に関するデータを取得するために、これらのファイル1001との動作のためのアプリケーションからのWinAPI関数の呼び出しをインターセプトするドライバが使用される。
【０３００】
コンボリューション形成モジュール1020は、収集モジュール1010によって収集されたオブジェクト1001の状態に関するデータに基づいて、オブジェクト1001の状態を特徴付ける特徴ベクトル1021を形成する。
【０３０１】
本システムの1つの変形態様では、特徴ベクトル1021は、1組の数の形でまとめられた、収集されたデータ1011のコンボリューションを表す。
【０３０２】
特徴ベクトル1021の形成については、図1および図2でさらに詳細に説明する。
【０３０３】
本システムのさらに別の変形態様では、特徴ベクトル1021は、少なくとも収集されたデータ1011から算出された、少なくとも1つのハッシュ和を含む。
・所与のタイプのもの（たとえば、ハッシュ和は、オブジェクト1001に関連するイベントを特徴付けるデータからのみ算出される）。
・所与の値の範囲のもの（たとえば、ハッシュ和は4096kBから10240kBの間のサイズのファイルからのみ算出される）。
【０３０４】
たとえば、他のファイル（ユーザのコンピュータ上にある）およびインストール命令（スクリプトなど）を含むインストールパッケージである、オブジェクト1001について収集されたデータのすべては、2つのカテゴリ、すなわち、実行可能ファイルと、スクリプトおよび補助データと、に分割することができる。実行可能ファイルについてはハッシュ和MD5が算出され、スクリプトについてはCRC32が算出され、各クラスにおけるこれらのオブジェクトの数もカウントされる。ハッシュ和の要約は、算出されたハッシュ和と、カウントされたオブジェクトの数との集合である。
【０３０５】
本システムのさらに別の変形態様では、パラメータの算出のためのモデル1022は、異なるクラスに属する少なくとも2つのオブジェクト1001の機械学習の方法によってそれまでに訓練されている。
【０３０６】
本システムのさらに別の変形態様では、パラメータの算出のためのモデル1022の機械学習方法は、少なくとも以下である。
・決定木ベースの勾配ブースティング
・決定木法
・K最近傍（kNN）法
・サポートベクトルマシン（SVM）法
【０３０７】
本システムのさらに別の変形態様では、パラメータ算出のための訓練済みモデル1022は、オブジェクト1001の状態の変化のダイナミクスについて決定されたデータに応じて、オブジェクト1001の類似度およびオブジェクト1001の差の限界度を算出するための規則の集合である。
【０３０８】
本システムのさらに別の変形態様では、コンピュータシステムのオブジェクト1001のクラスは、少なくとも以下のクラスである。
・コンピュータシステムのオブジェクトの安全性
・コンピュータシステムの悪意のあるオブジェクト
・コンピュータシステムの疑わしいオブジェクト
・コンピュータシステムの安全なオブジェクト
・コンピュータシステムのオブジェクトの使用優先度（すなわち、コンピュータシステムのどのオブジェクトがより早く使用されるべきか、およびどのくらい早く使用されるべきか、またはメモリなどのどのコンピューティングリソースがコンピュータシステムのどのオブジェクトに割り振られるべきか）
・コンピュータシステムのオブジェクトのパフォーマンス
【０３０９】
たとえば、ユーザのパーソナルコンピュータ上でファイル1001を分析する場合、アンチウィルススキャンが行われ、その目的は、分析対象の全てのファイル1001を悪意のあるファイルと安全なファイルの2つのグループに分類することである。これらのクラス内の各ファイルはある程度の類似性（すなわち、ファイル1001が述べられたクラスのうちの1つに属すべき確率）でマッチさせることができる。このような例は、図1〜図9により詳細に記載されている。
【０３１０】
さらに別の例では、クラスは、（上記の例のように）様々な別個のエンティティではなく、異なる範囲にあるが単一のエンティティであってもよい。たとえば、コンピュータシステムのオブジェクトのコンピューティングリソース（RAM）の割り当ての優先度は、0%〜100%の数値で評価することができ、4つのクラスを形成することができる。すなわち、１は0%〜25%、2は26%〜50%、3は51%〜75%、4は76%〜100%である。所与の例では、コンピュータシステムのオブジェクトに対して、1GBのプールからRAMを割り当て、最低優先度（0%）を有するオブジェクトに1MBのRAMを割り当て、最高優先度（100%）のオブジェクトに100MBを割り振り、他のオブジェクトには対応する割合を割り当てる。
【０３１１】
類似度算出モジュール1030は、コンボリューション形成モジュール1020により形成された特徴ベクトル1021に基づいて、訓練済みのパラメータ算出モデルを用いて、分類対象のオブジェクト1001が所与のクラスに属する確率を特徴付ける数値である類似度1022と、分類対象のオブジェクト1001が他の指定されたクラスに確実に属する確率を特徴付ける数値である差分の限界度とを算出する。この類似度および差分限界度は、オブジェクトの分類に対する異なるアプローチから生じる、オブジェクト1001を記述する独立した特徴である。このようなアプローチの利点は、分類の各方法（または比較の方法）がそれ自体の精度を有し、第1および第2の種類のエラーが発生する確率が常に存在することである。いくつかの独立した方法が使用される場合、確率は、確率理論の法則に従って低減される。選択された方法（それらを用いて得られた類似度または差分がどの程度相関しているか）に応じて、第1および第2の種類のエラーの発生の組み合わされた確率は変化する（減少する）。したがって、システムの「安定性」の尺度を知ること、すなわち、システムの動作（この場合、分類）に許容されるエラーの最大レベルを知ることにより、類似度または差分を得るための対応する方法を選択することができる。
【０３１２】
本システムの1つの変形態様では、収集の指定された規則によって定義される期間中に、少なくとも2つの類似度および差分の限界度が算出された場合、連続して算出された類似度および差分の限界度の集合は所定の時間則によって記述される。
【０３１３】
本システムのさらに別の変形態様では、1つのオブジェクト1001について、そのオブジェクト1001の少なくとも2つの状態に関するデータに基づいて、いくつかの類似度および差分の限界度が算出される。
【０３１４】
本システムのさらに別の変形態様では、オブジェクト1001の状態に関するデータは少なくとも以下を含む。
・コンピュータシステムによってオブジェクト1001に対し実行されているアクション
・コンピュータシステム上のオブジェクト1001によって実行されているアクション
・その変化がオブジェクト1001の状態の変化をもたらすコンピュータシステムのパラメータ
・オブジェクト1001の静的パラメータ（アーカイブに保存されているファイルのサイズや実行ファイルの名前など、オブジェクト1001の状態が変化しても変化しないオブジェクト1001のパラメータ）
【０３１５】
たとえば、オブジェクト1001が実行可能ファイルである場合、オペレーティングシステム上のその実行可能ファイルによって実行されているコマンドは、WinAPI機能の呼び出しであってもよい。
【０３１６】
さらに別の実施形態では、オブジェクト1001がデータベース内のレコードである場合、そのレコードに対してデータベースと動作する手段によって実行されるコマンドはSQLクエリコマンドであってもよい。
【０３１７】
本システムのさらに別の変形態様では、少なくとも算出される類似度または差分の限界度は、類似度に依存し、したがって、少なくとも以下のように算出される差分の限界度に依存する。
・オブジェクト1001を作成する瞬間に
・オブジェクト1001の状態の第1の変化の瞬間に
・オブジェクト1001の静的パラメータの分析に基づいて
【０３１８】
たとえば、ファイルの実行開始時に、そのファイルについて、悪意のあるオブジェクトのクラスに対する類似度が0.0であるが、時間が経過するにつれて0.4に上昇すると、そのファイルによって作成されたファイルについての、悪意のあるオブジェクトに対する類似度はそのファイルの作成時に既に0.4と指定され、その動作プロセス中に上昇する。このプロセスは、図7〜図9でさらに詳細に説明される。
【０３１９】
本システムのさらに別の変形態様では、連続的に算出された類似度の集合および連続的に算出された差分の限界度の集合を記述する時間則は本質的に単調である。
【０３２０】
たとえば、分析中のファイル1001の類似度（または有害性についてのファイルの分析の場合は有害性の程度）の変化は増加しうるのみであり、差分の限界度（有害性についてのファイルの分析の場合は安全性の限界度）は減少しうるのみである。したがって、分析対象のファイルは、遅かれ早かれ、その「疑わしいアクション」の合計が確立された限界を超えれば悪意のあるものとして認識される。
【０３２１】
本システムのさらに別の変形態様では、類似度は、少なくとも以下のように決定される。
・Hirchbergアルゴリズムを使用して
・Damerau-Levenshtein距離によって
・Jensen-Shannon距離によって
・ハミング距離によって
・Jaro-Winkler類似性アルゴリズムを使用して
【０３２２】
たとえば、どのオブジェクト1001が分析されているかに応じて、類似度を決定する上述の方法を使用することができる。オブジェクト1001がテキストファイルである場合、Hirchbergアルゴリズムを使用し、それらが語彙素である場合、ハミング距離を使用するだろう。
【０３２３】
分析モジュール1040は、所与の収集規則の作動時までに収集されたオブジェクト1001の状態に関するデータが、クラスを決定するための所与の尺度を満たす場合に、オブジェクト1001が所与のクラスに属するか否かに関する決定を宣言するように設計される。尺度は、類似度算出モジュール1030によって算出された類似度および差分の限界度に基づいて定式化される。尺度は、類似度と差分の限界度との間に確立された相関によってオブジェクトを分類するための規則である。
【０３２４】
本システムの一変形態様では、分析モジュール1040は、オブジェクト1001を特徴付けるデータが収集モジュール1010、コンボリューション形成モジュール1020、および類似度算出モジュール1030の助けを借りて収集され、処理された後に、作業を開始する。この事実はデータ収集規則（すなわち、オブジェクト1001に関するデータの収集をいつ停止し、そのデータの分析を開始するかの規則）を用いて決定される。
【０３２５】
この分析は、図7〜図9にさらに詳細に記載される。
【０３２６】
本システムの1つの変形態様では、類似度と差分の限界度との間の相関は、少なくとも以下である:
・類似度と差分の限界度との距離の、所定の閾値との差分
・類似度と差分の限界度との間の所与の時間間隔で境界を定められた領域の、所定の閾値からの差分
・有害性の程度および差分の限界度の変化を記述する曲線の相互成長率の、所定の閾値からの差分
【０３２７】
相関は、図7〜図9にさらに詳細に記載されている。
【０３２８】
パラメータ補正モジュール1050は、算出された類似度および算出された差分の限界度の分析に基づいてパラメータ算出モデル1022を再訓練するように設計され、その結果、類似度および差分の限界度を記述する時間則の変化は、それらの法則に基づいて得られた値の間の相関を最大にする傾向を有する。
【０３２９】
本システムの1つの変形態様では、パラメータ算出モデル1022は、そのモデル1022が使用されるときに、後に形成される尺度が少なくとも以下のことを保証するように、再訓練される。
【０３３０】
・類似度および差分の限界度の決定精度は、訓練されていないパラメータ算出モデル1022を使用する場合よりも高い。
【０３３１】
・コンピューティングリソースの使用率は、訓練されていないモデルを使用してパラメータを算出する場合よりも低くなる。
【０３３２】
機械学習のための技術は、図1、図2、図5、および図6においてさらに詳細に説明される。パラメータ算出モデル1022のティーチングは、コンピュータシステムのオブジェクト1001の分類のために上述され、図は悪意のあるファイルの検出のためのモデルを示すが、これらの技術はアルゴリズム的に類似しており、悪意のあるファイルの検出はパラメータ算出のためのモデルの特定の例であり、その理由はこの場合、「安全なファイル」および「悪意のあるファイル」という2つのクラスによるファイルの分類が存在するからである。
【０３３３】
図11は、コンピュータシステムのオブジェクトの分類のための方法の構成図を示す。
【０３３４】
コンピュータシステムのオブジェクトの分類のための方法の構成図は、コンピュータシステムのオブジェクトについてデータが収集されるステップ1110と、特徴ベクトルが形成されるステップ1120と、類似度が算出されるステップ1130と、コンピュータシステムのオブジェクトが分類されるステップ1140と、パラメータの算出のためのモデルが再訓練されるステップ1150とを含む。
【０３３５】
ステップ1110において、コンピュータシステムのオブジェクト1001（以下、オブジェクト）の状態を記述するデータ1011が収集される。
【０３３６】
ステップ1120では、オブジェクト1001の状態について収集されたデータ1011に基づいて、オブジェクト1001の状態を特徴付ける特徴ベクトル1021が形成される。
【０３３７】
ステップ1130では、形成された特徴ベクトル1021に基づいて、訓練済みのパラメータ算出モデル1022を使用して、分類対象であるオブジェクト1001が所与のクラスに属する確率を特徴付ける数値を表す類似度と、分類対象であるオブジェクト1001が他の指定されたクラスに確実に属する確率を特徴付ける数値を表す差分の限界度とが算出される。
【０３３８】
ステップ1140において、ステップ1110〜1130で収集のための指定規則によって定義される期間中に収集されたオブジェクト1001の状態に関するデータ1011が、前のステップで算出された類似度および差分の限界度に基づいて形成された、クラスの決定のための指定尺度を満たし、前記尺度が、類似度と差分の限界度との間の確立された相関に従ってオブジェクト1001を分類するための規則である場合、オブジェクト1001は指定されたクラスに属するとの決定が宣言される。
【０３３９】
ステップ1150において、パラメータ算出モデル1022は、算出された類似度および算出された差分の限界度の分析に基づいて再訓練され、その結果、類似度および差分の限界度を記述する時間則の変化はそれらの法則に基づいて得られた値の間の相関を最大にする傾向がある。
【０３４０】
図12は、例示的な態様に従って、コンピュータシステムのオブジェクトの分類のシステムおよび方法の態様を実施することができるコンピュータシステム20を示すブロック図である。コンピュータシステム20は、前述のシステム100の任意の構成要素に対応することができることに留意されたい。コンピュータシステム20は複数のコンピューティングデバイスの形態、または単一のコンピューティングデバイス、たとえば、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、埋め込みデバイス、および他の形態のコンピューティングデバイスの形態とすることができる。
【０３４１】
図示のように、コンピュータシステム20は、中央処理装置（CPU）21と、システムメモリ22と、中央処理装置21に関連するメモリを含む様々なシステムコンポーネントとを接続するシステムバス23とを含む。システムバス23は、バスメモリまたはバスメモリコントローラ、周辺バス、および他の任意のバスアーキテクチャと対話することができるローカルバスを含むことができる。バスの例は、PCI、ISA、PCI-Express、HyperTransport（登録商標）、InfiniBand（登録商標）、シリアルATA、I  2  C、および他の好適な相互接続を含むことができる。中央処理装置21（プロセッサとも呼ばれる）は、単一または複数のコアを有するプロセッサの単一または複数の設定を含むことができる。プロセッサ21は、本開示の技術を実現する1つまたは複数のコンピュータ実行可能コードを実行することができる。システムメモリ22は、本明細書で使用されるデータおよび/またはプロセッサ21によって実行可能なコンピュータプログラムを記憶するための任意のメモリとすることができる。システムメモリ22は、ランダムアクセスメモリ（RAM）25などの揮発性メモリ、および読取り専用メモリ（ROM）24、フラッシュメモリなどの不揮発性メモリ、またはそれらの任意の組合せを含むことができる。基本入出力システム（BIOS）26は、ROM24を使用してオペレーティングシステムをロードするときのような、コンピュータシステム20の要素間で情報を転送するための基本手順を記憶することができる。
【０３４２】
コンピュータシステム20は、1つまたは複数のリムーバブル記憶装置27、1つまたは複数の非リムーバブル記憶装置28、またはそれらの組合せなどの1つまたは複数の記憶装置を含むことができる。1つまたは複数のリムーバブル記憶装置27および非リムーバブル記憶装置28は、ストレージインタフェース32を介してシステムバス23に接続される。一態様では、記憶装置および対応するコンピュータ可読記憶媒体がコンピュータシステム20のコンピュータ命令、データ構造、プログラムモジュール、および他のデータを記憶するための電力非依存モジュールである。システムメモリ22、リムーバブル記憶装置27、および非リムーバブル記憶装置28は、様々なコンピュータ可読記憶媒体を使用することができる。コンピュータ可読記憶媒体の例には、キャッシュ、SRAM、DRAM、ゼロキャパシタRAM、ツイントランジスタRAM、eDRAM、EDO  RAM、DDR  RAM、EEPROM、NRAM、RRAM（登録商標）、SONOS、PRAMなどの機械メモリ、ソリッドステートドライブ（SSD）またはフラッシュドライブなどのフラッシュメモリまたは他のメモリ技術、ハードディスクドライブまたはフロッピーディスクなどの磁気カセット、磁気テープ、および磁気ディスクストレージ、コンパクトディスク（CD-ROM）またはデジタルバーサタイルディスク（DVD）などの光ストレージ、ならびに所望のデータを記憶するために使用することができ、コンピュータシステム20によってアクセスすることができる任意の他の媒体が含まれる。
【０３４３】
コンピュータシステム20のシステムメモリ22、リムーバブル記憶装置27、および非リムーバブル記憶装置28を使用して、オペレーティングシステム35、追加のプログラムアプリケーション37、他のプログラムモジュール38、およびプログラムデータ39を記憶することができる。コンピュータシステム20はキーボード、マウス、スタイラス、ゲームコントローラ、音声入力デバイス、タッチ入力デバイス、またはプリンタもしくはスキャナなどの他の周辺デバイスなどの入力装置40から、シリアルポート、パラレルポート、ユニバーサルシリアルバス（USB）、または他のペリフェラルインタフェースなどの1つまたは複数のI/Oポートを介してデータを通信するためのペリフェラルインタフェース46を含むことができる。1つまたは複数のモニタ、プロジェクタ、または統合ディスプレイなどのディスプレイ装置47も、ビデオアダプタなどの出力インタフェース48を介してシステムバス23に接続することができる。ディスプレイ装置47に加えて、コンピュータシステム20は、ラウドスピーカ及び他のオーディオビジュアル装置のような他の周辺出力装置（図示せず）を装備することができる。
【０３４４】
コンピュータシステム20は、1つまたは複数のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ49は、コンピュータシステム20の性質を説明する際に前記の要素の大部分またはすべてを含むローカルコンピュータワークステーションまたはサーバとすることができる。ルータ、ネットワーク局、ピアデバイス、または他のネットワークノードなどの他のデバイスも、コンピュータネットワーク内に存在し得るが、これらに限定されない。コンピュータシステム20は、ローカルエリアコンピュータネットワーク（LAN）50、ワイドエリアコンピュータネットワーク（WAN）、イントラネット、およびインターネットなどの1つまたは複数のネットワークを介してリモートコンピュータ49と通信するための1つまたは複数のネットワークインタフェース51またはネットワークアダプタを含むことができる。ネットワークインタフェース51としては、たとえば、イーサネット（登録商標）インタフェース、フレームリレーインタフェース、SONETインタフェース、無線インタフェース等が挙げられる。
【０３４５】
本開示の態様は、システム、方法、および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体（または複数の媒体）を含むことができる。
【０３４６】
コンピュータ可読記憶媒体はコンピュータシステム20などのコンピューティングデバイスのプロセッサによってアクセスすることができる命令またはデータ構造の形のプログラムコードを保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはそれらの任意の適切な組合せとすることができる。例として、そのようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ（RAM）、リードオンリメモリ（ROM）、EEPROM、ポータブルコンパクトディスクリードオンリメモリ（CD-ROM）、デジタル多用途ディスク（DVD）、フラッシュメモリ、ハードディスク、ポータブルコンピュータディスケット、メモリスティック、フロッピー（登録商標）ディスク、またはパンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイスを含むことができる。本明細書で使用されるように、コンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管または伝送媒体を通って伝播する電磁波、またはワイヤを通って伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
【０３４７】
本明細書で説明するコンピュータ可読プログラム命令はネットワーク、たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはワイヤレスネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイスに、または外部コンピュータもしくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含むことができる。各コンピューティング制御装置内のネットワークインタフェースはネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング制御装置内のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。
【０３４８】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブリ命令、命令セットアーキテクチャ（ISA）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはオブジェクト指向プログラミング言語および従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータがLANまたはWANを含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または接続は（たとえば、インターネットを介して）外部コンピュータに行われてもよい。いくつかの態様では、たとえば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ（FPGA）、またはプログラマブル論理アレイ（PLA）を含む電子回路は本開示の態様を実行するために、電子回路をパーソナル化するためにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【０３４９】
様々な態様では、本開示で説明されるシステムおよび方法がモジュールの観点から対処することができる。本明細書で使用される「モジュール」という用語はたとえば、特定用途向け集積回路（ASIC）またはFPGAなどのハードウェアを使用して実装される、あるいは、マイクロプロセッサシステムおよび（実行されている間に）マイクロプロセッサシステムを専用デバイスに変換するモジュールの機能を実装するための命令セットなどのハードウェアおよびソフトウェアの組合せとして実装される、現実世界のデバイス、コンポーネント、または構成要素の構成を指す。また、モジュールは2つの組み合わせとして実装されてもよく、特定の機能はハードウェアのみによって促進され、他の機能はハードウェアとソフトウェアとの組み合わせによって促進される。いくつかの実装形態ではモジュールの少なくとも一部、場合によってはすべてが、コンピュータシステムのプロセッサ（上記の図12でより詳細に説明したものなど）上で実行され得る。したがって、各モジュールは、様々な適切な構成で実現されてもよく、本明細書で例示される任意の特定の実装形態に限定されるべきではない。
【０３５０】
明確にするために、態様のうちルーチン的な特徴すべてが本明細書に開示されるわけではない。本開示の任意の実際の実装の開発において、開発者の特定の目標を達成するために、多数の実装固有の決定が行われなければならず、これらの特定の目標は、異なる実装および異なる開発者によって異なることが理解されるのであろう。そのような開発努力は複雑で時間がかかる可能性があるが、それにもかかわらず、本開示の恩恵を受ける当業者にとっては日常的なエンジニアリングの仕事であることが理解される。
【０３５１】
さらに、本明細書で使用される語法または用語は説明を目的としたものであり、限定を目的としたものではなく、したがって、本明細書の語法または語法は、関連技術の当業者の知識と組み合わせて、本明細書で提示される教示およびガイダンスに照らして、当業者によって解釈されるべきであることを理解されたい。さらに、明細書または特許請求の範囲におけるいかなる用語も、そのように明示的に記載されていない限り、珍しい意味または特別な意味に帰することを意図していない。
【０３５２】
本明細書で開示される様々な態様は、例示として本明細書で言及される既知のモジュールに対する現在および将来の既知の同等物を包含する。さらに、態様および用途が示され、説明されてきたが、本明細書に開示された発明概念から逸脱することなく、上記よりも多くの修正が可能であることは本開示の恩恵を受ける当業者には明らかであろう。
【図１】
2020115328.tif 000016
【図２】
2020115328.tif 000017
【図３】
2020115328.tif 000018
【図４】
2020115328.tif 000019
【図５】
2020115328.tif 000020
【図６】
2020115328.tif 000021
【図７】
2020115328.tif 000022
【図８】
2020115328.tif 000023
【図９】
2020115328.tif 000024
【図１０】
2020115328.tif 000025
【図１１】
2020115328.tif 000026
【図１２】
2020115328.tif 000027
【外国語明細書】
2020115328000001.pdf