(57)【要約】      （修正有）【課題】機械学習を使用する悪意のあるファイルの検出のためのシステムおよび方法を提供する。【解決手段】方法は、ルールに基づいて分析されるオブジェクトにおける１個以上のデータブロックを選択することと、１個以上のデータブロックの特徴の組を決定するために１個以上のデータブロックについて静的分析を実行することと、特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいてオブジェクトの有害性の程度を判定することと、有害性の程度が有害性の所定の閾値を超えない場合、オブジェクトが安全なものであると認識することと、１個以上のデータブロックの有害性の程度が有害性の所定の閾値を超える場合、オブジェクトは悪意のあるものであると認識することを含み、モデルは、少なくとも１つの安全なオブジェクトおよび１つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されている。【選択図】図５
2019079493.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって、マルウェア分析のためのオブジェクトにおける１個以上のデータブロックを選択することと、
前記プロセッサによって、前記データブロックの特徴の組を決定するために、選択された前記１個以上のデータブロックに静的分析を実行することであって、前記静的分析が、前記オブジェクトのすべてのデータブロックについて実行される、前記実行することと、
前記プロセッサによって、前記特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいて前記オブジェクトの有害性の程度を判定することであって、前記モデルが、少なくとも１つの安全なオブジェクトおよび１つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されてある、前記判定することと、
前記プロセッサによって、前記有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識することと、
前記プロセッサによって、前記１個以上のデータブロックの前記有害性の程度が前記有害性の所定の閾値を超える場合、前記オブジェクトが悪意のあるものであると認識すること
を含む
安全なおよび悪意のあるデータオブジェクトを検出するための方法。
【請求項２】
前記オブジェクトが悪意のあるものとして認識される場合、安全なおよび悪意のあるオブジェクトの検出のためのモデルを再訓練すること
をさらに含む、
請求項１の方法。
【請求項３】
分析される前記オブジェクトのパラメータおよび事前に発見されたデータブロックの特徴を含む基準に基づいて、前記オブジェクトから選択される前記１個以上のデータブロックを検索すること
をさらに含む、
請求項１の方法。
【請求項４】
前記１個以上のデータブロックを選択することは、
前記１個以上のデータブロックの前記パラメータを算出することを含み、
前記パラメータは、
データブロックのサイズ、前記オブジェクトにおける前記データブロックの位置、前記オブジェクトの種類、および前記オブジェクト内の相互に関係のあるデータの一つ以上を含む、
請求項３の方法。
【請求項５】
前記分析モデルは、
前記オブジェクトを悪意のあるものとして分類する確率を増加させるための検索についてのルールの組である、
請求項３の方法。
【請求項６】
前記ルールの組は、
事前に発見されたデータブロックに対して決定された特徴に依存する、
請求項５の方法。
【請求項７】
前記特徴の組は、
選択に使用されたデータブロックのパラメータ、データブロックに含まれたデータの種類、データブロックと事前に選択されたデータブロックとの間の論理的または機能的関係性、および有害性の係数の一つ以上を含む
請求項１の方法。
【請求項８】
前記有害性の係数は、
前記オブジェクトによって実行された各々のコマンドに関連した重みの総和として算出される
請求項７の方法。
【請求項９】
ルールに基づいて分析されるオブジェクトにおける１個以上のデータブロックを選択し、
前記１個以上のデータブロックの特徴の組を決定するために前記１個以上のデータブロックに静的分析を実行し、
前記特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいて前記オブジェクトの有害性の程度を判定し、前記モデルは、少なくとも１つの安全なオブジェクトおよび１つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されており、
前記有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識し、前記静的分析は、前記オブジェクトのすべてのデータブロックについて実行され、
前記１個以上のデータブロックの前記有害性の程度が前記有害性の所定の閾値を超える場合、前記オブジェクトが悪意のあるものであると認識する
ように構成されたハードウェアプロセッサを備える、
悪意のあるファイルを検出するためのシステム。
【請求項１０】
前記ハードウェアプロセッサは、
前記対象物オブジェクトが悪意のあるものとして認識される場合、前記悪意のあるオブジェクトの検出のためのモデルを再訓練するようにさらに構成される、
請求項９のシステム。
【請求項１１】
前記ハードウェアプロセッサは、
分析される前記オブジェクトのパラメータおよび事前に発見されたデータブロックの特徴を含む基準に基づいて、前記オブジェクトから選択される前記１個以上のデータブロックを検索するようにさらに構成される、
請求項９のシステム。
【請求項１２】
前記ハードウェアプロセッサは、
前記１個以上のデータブロックの前記パラメータを算出することによって、前記１個以上のデータブロックを選択するようにさらに構成され、
前記パラメータは、
データブロックのサイズ、前記オブジェクトにおける前記データブロックの位置、前記オブジェクトの種類、および前記オブジェクトにおける相互に関係のあるデータの一つ以上を含む、
請求項１１のシステム。
【請求項１３】
前記１個以上のデータブロックを選択することは、
分析モデルに基づいて実行され、
前記分析モデルは、前記オブジェクトを悪意のあるものとして分類する確率を増加させるための検索についてのルールの組である、
請求項１１のシステム。
【請求項１４】
前記ルールの組は、
事前に発見されたデータブロックに対して決定された特徴に依存する、
請求項１３のシステム。
【請求項１５】
前記特徴の組は、
選択に使用されたデータブロックのパラメータ、データブロックに含まれたデータの種類、データブロックと事前に選択されたデータブロックとの間の論理的または機能的関係性、および有害性の係数の一つ以上を含む、
請求項９のシステム。
【請求項１６】
前記有害性の係数は、
前記オブジェクトによって実行された各々のコマンドに関連した重みの総和として算出される
請求項１５のシステム。
【請求項１７】
ルールに基づいて分析されるオブジェクトにおける１個以上のデータブロックを選択することと、
前前記１個以上のデータブロックの特徴の組を決定するために前記１個以上のデータブロックに静的分析を実行することと、  前記特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいて前記オブジェクトの有害性の程度を判定することであって、前記モデルが、少なくとも１つの安全なオブジェクトおよび１つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されてある、前記判定することと、
前記有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識することであって、前記静的分析が、前記オブジェクトのすべてのデータブロックについて実行される、前記認識することと、
前記１個以上のデータブロックの前記有害性の程度が前記有害性の所定の閾値を超える場合、前記オブジェクトが悪意のあるものであると認識すること
を含む、
悪意のあるファイルを検出するための方法を、実行されたときに、実行する命令を記憶する非一時的なコンピュータで読み取り可能な媒体。
【請求項１８】
前記オブジェクトが悪意のあるものとして認識される場合、悪意のあるオブジェクトの検出のためのモデルを再訓練することをさらに含む、
請求項１７の媒体。
【請求項１９】
分析されている前記オブジェクトのパラメータおよび事前に発見されたデータブロックの特徴を含む基準に基づいて、前記オブジェクトから選択される前記１個以上のデータブロックを検索することをさらに含む
請求項１７の媒体。
【請求項２０】
前記１個以上のデータブロックを選択することは、
前記１個以上のデータブロックの前記パラメータを算出することを含み、
前記パラメータは、
データブロックのサイズ、前記オブジェクトにおけるデータブロックの位置、前記オブジェクトの種類、および前記オブジェクトにおける相互に関係のあるデータの一つ以上を含む
請求項１９の媒体。
【請求項２１】
前記１個以上のデータブロックを選択することは、
分析モデルに基づいて実行され、
前記分析モデルは、
前記オブジェクトを悪意のあるものとして分類する確率を増加させるための検索についてのルールの組である、
請求項１９の媒体。
【請求項２２】
前記ルールの組は、
事前に発見されたデータブロックに対して決定された特徴に依存する
請求項２１の媒体。
【請求項２３】
前記特徴の組は、
選択に使用されたデータブロックのパラメータ、データブロックに含まれたデータの種類、データブロックと事前に選択されたデータブロックとの間の論理的または機能的関係性、および有害性の係数の一つ以上を含む
請求項１７の媒体。
【請求項２４】
前記有害性の係数は、
前記オブジェクトによって実行された各々のコマンドに関連した重みの総和として算出される、
請求項２３の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、アンチウィルス技術に、より具体的には、機械学習を用いる悪意のあるファイルの検出のためのシステムおよび方法に、関する。
【背景技術】
【０００２】
最近の十年間におけるコンピュータ技術の急速な発展は、様々な計算装置（パーソナル・コンピュータ、ノートパソコン、タブレット、スマートフォンなど）の広範な流通と相まって、様々な活動範囲において（インターネット・サーフィンから銀行振替および電子文書のやり取りまで）膨大な数の課題について、かかる装置の使用に対する強力な推進力となってきた。計算装置の数の増大およびこれらの装置において動作するソフトウェアの発展と並行して、悪意のあるプログラムの数もまた急速に増加してきた。
【０００３】
現在、膨大な数の種類の悪意のあるプログラムが存在する。それらのいくつかは、（ログイン情報およびパスワード、銀行取引情報、電子文書のような）個人のおよび機密のデータをこれらの装置のユーザから盗み取る。他のものは、サービス妨害（ＤＤｏＳ：分散型サービス妨害）のような攻撃のために、または、他のコンピュータまたはコンピュータネットワーク上での総当たりの方法によってパスワードをより分けるために、ユーザの装置からいわゆるボットネットを形成する。さらに他のものは、煩わしい広告を介したユーザへの有料コンテンツ、有料定期購読、電話番号へのＳＭＳの送付などを提示する。
【０００４】
悪意のあるプログラムの検出、感染の予防、および悪意のあるプログラムに感染してしまった計算装置の作業能力の回復を含む、悪意のあるプログラムとの闘いにおいては、アンチウィルスとして知られた専門のプログラムが使用される。アンチウィルスプログラムは、あらゆる種類の悪意のあるプログラムを検出するために、
・静的分析−分析されるプログラムを構成するファイルに含まれたデータに基づいた、分析されるプログラムの作業の実行またはエミュレーションを含む、有害性についてのプログラムの分析であって、それによって統計的な分析の間に、
・シグネチャ分析−と、悪意のあるプログラムのシグネチャのデータベースから既知のコード（シグネチャ）に対する分析されるプログラムのコードの特定のセグメントの対応関係についての検索、
・ホワイトおよびブラックリスト−悪意のあるプログラムのチェックサムのデータベース（ブラックリスト）または安全なプログラムのチェックサムのデータベース（ホワイトリスト）における分析されるプログラム（またはその部分）の計算されたチェックサムについての検索、
を使用することが可能であるもの、
・動的分析−分析されるプログラムの作業の実行またはエミュレーションの過程において得られたデータに基づいた、有害性についてのプログラムの分析であって、それによって、動的分析の間に、
・ヒューリスティックな分析−分析されるプログラムの作業のエミュレーション、（ＡＰＩ関数の呼び出し、送信されたパラメータ、分析されるプログラムのコードセグメントなどに関するデータを含む）エミュレーションログの作成、および作成されたログのデータと悪意のあるプログラムの行動シグネチャのデータベースからのデータとの間の対応関係についての検索、
・プロアクティブ保護−起動された分析されるプログラムのＡＰＩ機能の呼び出しのインターセプト、（ＡＰＩ関数の呼び出し、送信されたパラメータ、分析されるプログラムのコードセグメントなどに関するデータを含む）分析されるプログラムの行動のログの作成、および作成されたログのデータと悪意のあるプログラムの呼び出しのデータベースからのデータとの間の対応関係についての検索、
を使用することが可能であるもの、
のような、様々な技術を用いる。
【０００５】
静的および動的分析の両方は、それらのプラス面およびマイナス面を有する。静的分析では、分析が行われる計算装置の資源の要求がより少ないものであり、分析されるプログラムの実行またはエミュレーションを要求するものではないため、統計的な分析は、分析がなされる速度の観点ではより生産的なものであるが、なされた分析の質の観点ではあまり有効なものではない。すなわち、悪意のあるプログラムの検出のより低い割合および誤認警報（すなわち、アンチウィルスプログラムによって分析されたファイルが、安全なものであるのに対して、悪意のあるものであるとの判定を告げること）のより高い割合を有する。動的分析は、分析対象の分析されるプログラムの作業の実行またはエミュレーション中に得られたデータを使用するため、分析がなされる速度の観点ではあまり生産的なものではなく、分析が行われる計算装置の資源大きいについてより高い要求をするが、他方では、なされた分析の質の観点ではまたより有効なものである。最新のアンチウィルスプログラムは、静的および動的分析の両方の要素を含む包括的な分析を用いる。
【０００６】
コンピュータ・セキュリティにおける最新の基準が、悪意のあるプログラム（特にこれまで知られていないもの）に対する動作上の応答を要求するため、悪意のあるプログラムの検出の自動的な手段が主な注目の的である。かかる手段の有効な動作のために、人工知能の要素および悪意のあるプログラムの検出のためのモデルすなわち、悪意のあるファイルを記述する入力データの特定の組に基づいたファイルの有害性について判定をする一組のルール）の機械学習の様々な方法をしばしば使用することで、よく知られた悪意のあるプログラムまたはよく知られた悪意のある行動を備えた悪意のあるプログラムだけでなく、未知のまたはほとんど研究されていない悪意のある行動を有する新しい悪意のあるプログラムの有効な検出とともに、新しい悪意のあるプログラムを検出するための動作上の適合（学習）を可能とする。
【０００７】
知られた技術が、既に知られた悪意のあるファイルの特徴的な特徴と同様に、ある特定の特徴的な特徴（すなわち、グラフィックインターフェースの存在、データの暗号化、コンピュータネットワークを介したデータの送信などのような、ファイルの特定の群からのファイルの特徴を記述するデータ）を有する悪意のあるファイルに良好に対処するとはいえ、（同様の行動ではあるが）既に知られた悪意のあるファイルの特徴的な特徴とは異なる特徴的な特徴を有する悪意のあるファイルを検出することは、しばしば不可能なことである。
【発明の概要】
【課題を解決するための手段】
【０００８】
機械学習を使用する悪意のあるファイルの検出のためのシステムおよび方法が開示される。
【０００９】
一つの態様によれば、ルールに基づいて分析されるオブジェクトにおける１個以上のデータブロックを選択することと、１個以上のデータブロックの特徴の組を決定するために１個以上のデータブロックに静的分析を実行することと、特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいてオブジェクトの有害性の程度を判定することであって、モデルが、少なくとも１つの安全なオブジェクトおよび１つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されてある、判定することと、有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識することと、１個以上のデータブロックの有害度有害性の程度が有害性の所定の閾値を超える場合、前記オブジェクトが悪意のあるものであると認識することを含む方法が提供される。
【００１０】
別の態様において、方法は、オブジェクトが悪意のあるものと認識される場合、悪意のあるオブジェクトの検出のためのモデルを再訓練することをさらに含む。
【００１１】
別の態様において、方法は、分析されるオブジェクトのパラメータおよび事前に発見されたデータブロックの特徴を含む基準に基づいて、オブジェクトから選択される１個以上のデータブロックを検索することをさらに含む。
【００１２】
別の態様において、１個以上のデータブロックを選択することは、１個以上のデータブロックのパラメータを算出することを含み、パラメータは、データブロックのサイズ、オブジェクトにおけるデータブロックの位置、オブジェクトの種類、およびオブジェクトにおける相互に関係のあるデータの一つ以上を含む。
【００１３】
別の態様において、１個以上のデータブロックを選択することは、分析モデルに基づいて実行され、分析モデルは、オブジェクトを悪意のあるものとして分類する確率を増大させる増加させるための検索についてのルールの組である。
【００１４】
別の態様において、ルールの組は、事前に発見されたデータブロックに対して決定された特徴に依存する。
【００１５】
別の態様において、特徴の組は、選択に使用されたデータブロックのパラメータ、データブロックに含まれたデータの種類、データブロックと事前に選択されたデータブロックとの間の論理的または機能的関係性、および有害性の係数の一つ以上を含む。
【００１６】
別の態様において、有害性の係数は、オブジェクトによって実行された各々のコマンドに関連した重みの総和として算出される。
【００１７】
さらに一つの態様において、悪意のあるファイルを検出するためのシステムが提供され、システムは、ルールに基づいて分析されるオブジェクトにおける１個以上のデータブロックを選択し、１個以上のデータブロックの特徴の組を決定するために１個以上のデータブロックに静的分析を実行し、特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいてオブジェクトの有害性の程度を判定し、モデルは、少なくとも１つの安全なオブジェクトおよび１つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されており、有害性の程度が有害性の所定の閾値を超えない場合、オブジェクトが安全なものであると認識し、静的分析は、オブジェクトのすべてのデータブロックについて実行され、１個以上のデータブロックの有害性の程度が有害性の所定の閾値を超える場合、オブジェクトが悪意のあるものであると認識するように構成されたハードウェアプロセッサを含む。
【００１８】
さらに一つの態様において、ルールに基づいて分析されるオブジェクトにおける１個以上のデータブロックを選択することと、１個以上のデータブロックの特徴の組を決定するために１個以上のデータブロックに静的分析を実行することと、特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいてオブジェクトの有害性の程度を判定することであって、モデルが、少なくとも１つの安全なオブジェクトおよび１つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されてある、判定することと、有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識することと、静的分析がオブジェクトの全てのデータブロックについて実行されることと、１個以上のデータブロックの有害性の程度が有害性の所定の閾値を超える場合、オブジェクトが悪意のあるものであると認識することを含む、悪意のあるファイルを検出するための方法を、実行されたときに、実行する命令を記憶するコンピュータで読み取り可能な媒体が提供される。
【００１９】
上記の例の態様の簡略な概要は、本開示の基本的な理解を提供するのに役立つものである。この概要は、すべての構想された態様の包括的な概観ではなく、全ての態様の鍵となるまたは重要な要素を特定することも、本開示のいずれかのまたは全ての態様の範囲を画することも意図したものではない。その唯一の目的は、後に続く詳細な説明のより詳細な説明の前置きとして１つ以上の態様を簡潔な形で提示することである。前述のものの達成のため、本開示の１つ以上の態様は、請求項において記載され、かつ、具体的に指摘された特徴を含む。
【図面の簡単な説明】
【００２０】
この明細書に組み込まれその一部を構成する添付の図面は、本開示の１つ以上の例の態様を示すものであり、詳細な説明とともに、それらの原理および実施を説明するのに役立つものである。
【００２１】
【図１】図１は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出のためのシステムのブロック図である。
【図２】図２は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出のための方法のフローチャートである。
【図３】図３は、本開示の例示的な態様に係る行動パターンの数の関数としての有害性の程度の変化のダイナミクスの例を示す。
【図４】図４は、本開示の例示的な態様に係る行動パターンの要素間の関係の図の例を示す。
【図５】図５は、本開示の例示的な態様に係るオブジェクトの分類のシステムのブロック図である。
【図６】図６は、本開示の例示的な態様に係るオブジェクトの分類の方法についてのフローチャートである。
【図７】図７は、本開示の例示的な態様に係る汎用のコンピュータシステム、パーソナル・コンピュータ、またはサーバの一例を示す。
【発明を実施するための形態】
【００２２】
今、図面を参照して、様々な態様を説明する。同様の参照符号は、いたるところで同様の要素を参照するために使用される。以下の説明では、説明の目的で、一つ以上の態様の徹底した理解を促進するために、数多くの具体的な詳細を述べる。しかしながら、いくつかのまたはすべての例において、以下に説明する具体的な設計の詳細を採用することなく、以下の説明するどの態様も実施することができることは明からなことであることがある。他の例では、一つ以上の態様の説明を容易にするために良く知られた構造および装置がブロック図の形式で示される。
【００２３】
本開示、図面、および請求項を通じて以下の用語を使用することにする。
【００２４】
悪意のあるファイル−その実行がコンピュータ情報の不正な破壊、ブロッキング、変更、複製、またはコンピュータ情報の保護に使用されるモジュールの無効化に帰着することができることが知られているファイル。
【００２５】
実行可能なファイルの悪意のある行動−そのファイルの実行中に実行されることがあり、情報の不正な破壊、ブロッキング、変更、複製、またはコンピュータ情報の保護のためのモジュールの無効化に帰着することができることが知られているアクションの群。
【００２６】
実行可能なファイルの悪意のある活動−その悪意のある行動に従って、そのファイルによって実行されるアクションの群。
【００２７】
平均的なユーザの計算装置−それらのユーザの計算装置上におけるものと同じアプリケーションが実行されるユーザの事前に選択された群の計算装置の平均化された特性を有する仮説上の（理論上の）計算装置。
【００２８】
計算装置によって実行可能なコマンド−コマンドパラメータまたは上記のコマンドを記述するパラメータとして知られた、それらの命令の組のパラメータに基づいて、機械命令または計算装置によって実行可能なスクリプトの命令の組。
【００２９】
語彙分析（トークン化）−出力の際に識別列（以下、トークン）を形成するために、入力の文字列を、認識されたグループ（以下、語彙素）にする分析的な構文解析の処理。
【００３０】
トークン−語彙分析の処理において語彙素から形成された識別列。
【００３１】
図１は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出のためのシステムのブロック図を示す。機械学習のためのシステム１００は、訓練の選択肢を準備するように構成される準備モジュール１１１、行動ログを形成するように構成されるログモジュール１１２、行動パターンを形成するように構成されるパターンモジュール１２１、畳み込み関数を形成するように構成された畳み込みモジュール１２２、検出モデルを作成するように構成された検出モデルモジュール１３１、検出モデルの機械学習を実行するように構成された機械学習（ＭＬ）モジュール１３２、有害性の程度を算出するように構成さされた有害性モジュール１４２、および資源を管理するように構成された資源モジュール１４３からなる。
【００３２】
一つの態様において、システム１００は、準備モジュール１１１、ログモジュール１１２、パターンモジュール１２１、畳み込みモジュール１２２、検出モデルモジュール１３１、およびＭＬモジュール１３２がサーバ側で稼働し、パターンモジュール１２１、有害性モジュール１４２、および資源モジュール１４３がクライアント側で稼働する、クライアント−サーバ・アーキテクチャを有する。
【００３３】
たとえば、クライアントは、パーソナル・コンピュータ、ノートブック、スマートフォンなどのようなユーザの計算装置であることがある。サーバは、ファイルの予備的収集およびアンチウィルス分析、アンチウィルスレコードの生成などを実行するサーバの分散型システムのような、アンチウィルス会社の計算装置であることがある。この態様では、クライアント側で悪意のあるファイルを検出するためにシステム１００が使用されることによって、クライアントのウィルスに対する保護の有効性を向上させることがある。
【００３４】
さらに別の例では、クライアントおよびサーバの両方が、アンチウィルス会社の計算装置のみであることがあり、ここで、システム１００は、ファイルの自動アンチウィルス分析およびアンチウィルスレコードの生成に使用されることによって、アンチウィルス企業の作業の有効性を向上させることがある。
【００３５】
一つの態様によれば、準備モジュール１１１は、ファイルのデータベースから少なくとも一つのファイルを選択する。続いて、準備モジュール１１１は、選択されたファイルを、選択されたファイルに基づいて検出モデルを訓練するＭＬモジュール１３２へ送信する。一度検出モデルが訓練されるか、または、所定の程度まで訓練されると、ログモジュール１１２は、選択されたファイルによって実行されるコマンドの各々をカタログ化する行動ログを生成する。パターンモジュール１２１は、行動ログに基づいて行動パターンを構築する。一度行動パターンが知られると、畳み込みモジュール１２２は、行動パターンから、ある場合には行動パターンの特徴ベクトルを計算することによって形成される、畳み込み関数を形成する。検出モデルモジュール１３１は、準備モジュール１１１によって選択された少なくとも一つのファイルのパラメータに基づく検出モデルを生成する。検出モデルが生成された後、ＭＬモジュール１３２は、畳み込みモジュール１２２からの畳み込み関数を用いる検出モデルのパラメータを計算することによって検出モデルを教育する（言い換えれば、訓練する）ように構成される。ＭＬモジュール１３２は、準備モジュール１１１によって選択されたファイルについて検出モデルを訓練する。
【００３６】
最終的に、検出モデルは、訓練および行動パターンに基づいて分析中のファイルの有害性の程度を算出するために使用される。次に検出モジュールは、悪意に関する判断が正しいか否かについて判定するためにＭＬモジュール１３２によってチェックされる。検出モジュールが不適切に訓練されると判断される場合（すなわち、悪意のあるファイルが「悪意がある」ものとして検出されるものではない場合）、ＭＬモジュール１３２は、再訓練がＭＬモジュール１３２によって実行されることがある。ファイルが悪意についての分析中である場合、有害性モジュール１４２は、行動ログおよび訓練された検出モデルに基づいてファイルの有害性の程度を計算する。それに応じて、資源モジュール１４３は、コンピュータシステムの安全性を確保するために、分析中のファイルが属するコンピュータシステムの計算資源を割り当ててもよい。
【００３７】
準備モジュール１１１は以下の動作を実行する
・ファイルの学習選択を形成する所定のルールに従って、ファイルのデータベースから少なくとも１つのファイルを選択し、その後、ＭＬモジュール１３２が、選択されたファイルの分析に基づいて検出モデルの訓練を実行することになり、
・選択されたファイルをログモジュール１１２へ送る
ように設計される。
【００３８】
システムの一つの態様においては、少なくとも１つの安全なファイル、および、少なくとも１つの悪意のあるファイルがファイルのデータベースに保持される。
【００３９】
たとえば、ファイルのデータベースは、安全なファイルとしてのオペレーティングシステムＷｉｎｄｏｗｓ（登録商標）のファイル、および、悪意のあるファイルとしてのバックドアのファイル、すなわちデータへの不正なアクセスおよびオペレーティングシステムおよび全体としてのコンピュータの遠隔操作を実行するアプリケーションを保持することがある。上述したファイルで訓練すること、および、機械学習の方法を使用することによって、悪意のあるファイルの検出のためのモデルは、上述したバックドアの機能性に類似する機能性を有する悪意のあるファイルを精度良く検出することができることになる（精度が高いほど、多くのファイルが上述した検出モデルの訓練に使用される）。
【００４０】
システムのさらに別の態様においては、ファイルのデータベースは、少なくとも
・疑わしいファイル（リスクウェア）−悪意があるものではないが、悪意のあるアクションを実行することができるファイル。
・未知のファイル−その有害性が判断されておらず不明なままであるファイル（すなわち、安全なもの、悪意のあるもの、疑わしいもの等ではないファイル）
を追加的に保持する。
【００４１】
たとえば、ファイルのデータベースは、疑わしいファイルとして、（ＲＡｄｍｉｎ（登録商標）のような）遠隔管理、アーカイビング、（ＷｉｎＺｉｐ（登録商標）のような）データの暗号化などのためのアプリケーションのファイルを有することがある。
【００４２】
システムのさらに別の態様においては、ファイルのデータベースは少なくとも
・アンチウィルス・ウェブ・クローラによって収集されたファイル、
・ユーザによって送られたファイル
を保持する。
【００４３】
上述したファイルは、次にかかるファイルの有害性についての判断を告げるために、自動的なファイル分析の助けを含む、アンチウィルスの専門家によって分析される。
【００４４】
たとえば、ファイルのデータベースは、ユーザが自身の計算装置からアンチウィルス会社へ送られたファイルを、それらの有害性のチェックのために、保持することがあるが、その場合には、送信されたファイルは安全なものでも悪意のあるものでもることがあり、上記の安全なおよび悪意のあるファイルの数の間の分布は、上記のユーザの計算装置にあるすべての安全なおよび悪意のあるファイルの数の間の分布に近いものである（すなわち、上記の悪意のあるファイルの数に対する上記の安全なファイルの数の比は、上記のユーザの計算装置にある全ての悪意のあるファイルの数に対するすべての安全なファイルの数の比と指定された閾値の値未満の量だけ異なる）。
【００４５】
【数１】
2019079493.tif 000003
【００４６】
ユーザから送信されたファイル（すなわち、主観的に疑わしいファイル）とは異なり、疑わしいファイルおよび悪意のあるファイルを検索するように設計されるアンチウィルス・ウェブ・クローラによって収集されたファイルは、悪意があるものであることがより多く判明する。
【００４７】
システムのさらに別の態様においては、以下の条件の少なくとも１つが、ファイルのデータベースからファイルを選択するための基準として使用される。
・ファイルのデータベースから選択された安全なファイルおよび悪意のあるファイルの間の分布は、平均的なユーザの計算装置上にある安全なファイルおよび悪意のあるファイルの間の分布に対応する。
・ファイルのデータベースから選択された安全なファイルおよび悪意のあるファイルの間のる分布は、アンチウィルス・ウェブ・クローラの助けにより収集された安全なファイルおよび悪意のあるファイルの間の分布に対応する。
・ファイルのデータベースから選択されたファイルのパラメータは、平均的ユーザの計算装置上にあるファイルのパラメータに対応する。
・選択されたファイルの数は、所定の値に対応する一方で、ファイルそれら自体はランダムに選択される。
【００４８】
たとえば、ファイルのデータベースは、１０００００個のファイルを含み、そのうちの４０％が安全なファイルであり、６０％が悪意のあるファイルである。ファイルのデータベースから、１５０００個のファイル（ファイルのデータベースに保持されているファイルの総数の１５％）が選択されることで、選択された安全なファイルおよび悪意のあるファイルの間の分布は、平均的なユーザの計算装置上にある安全なファイルおよび悪意のあるファイルの間の分布に対応し、９５対５になる。この目的のために、１４２５０個の安全なファイル（安全なファイルの総数の３５．６３％）および７５０個の悪意のあるファイル（悪意のあるファイルの総数の１．２５％）がファイルのデータベースからランダムに選ばれる。
【００４９】
さらに別の例では、ファイルのデータベースは、１２５００００個のファイルを含み、そのうちの９５％が安全なファイルであり、５％が悪意のあるファイルである。すなわち、ファイルのデータベースに保持されている安全なファイルおよび悪意のあるファイルの間の分布は、平均的なユーザの計算装置上にある安全なファイルおよび悪意のあるファイルの間の分布に対応する。これらのファイルのうち、５０００個のファイルがランダムに選ばれ、約４７５０個が安全なファイルであり、約２５０個が悪意のあるファイルであることが高い確率で判明する。
【００５０】
システムのさらに別の態様においては、ファイルのパラメータは少なくとも
・ファイルが安全であるか、悪意のあるものであるか、潜在的に危険なものであるか、または、ファイルを実行したときの計算システムの行動が決定されないものか、等を特徴づける、ファイルの有害度、
・ファイルの実行中に計算装置によって実行されるコマンドの数、
・ファイルのサイズ、
・ファイルを利用するアプリケーション
である。
【００５１】
たとえば、アプリケーション「Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）」によって実行可能な、かつサイズが５ｋｂを超えるものではない、「ＡｃｔｉｏｎＳｃｒｉｐｔ」言語のスクリプトである、悪意のあるファイルが、ファイルのデータベースから選ばれる。
【００５２】
システムのさらに別の態様においては、準備モジュール１１１は、追加的に
・ファイルの試験的な選択を形成する所定のルールに従って、ファイルのデータベースから少なくとも１つの他のファイルを選択した後、ＭＬモジュール１３２が、選択されたファイルの分析に基づいて、訓練された検出のモデルの検証を実行することになる、
・選択されたファイルをログモジュール１１２へ送る
ように設計される。
【００５３】
たとえば、ファイルのデータベースが７５０００個のファイルを含み、そのうちの２０％が安全なファイルであり、８０％が悪意のあるファイルである。まず第一に、ファイルのデータベースから１２５００個のファイルが選ばれ、そのうちの３０％が安全なファイルであり、７０％が悪意のあるファイルであり、その後、ＭＬモジュール１３２は、選択されたファイルの分析に基づいて検出モデルの訓練を実行し、次に、残りの６２５００個のファイルから２５００のファイルが選択され、そのうちの６０％が安全なファイルであり、４０％が悪意のあるファイルであり、この後、ＭＬモジュール１３２は、選択されたファイルの分析に基づいて訓練された検出モデルのチェックを実行することになる。上述した手法によって構築されたデータは、データの相互検証セットと呼ばれる。
【００５４】
ログモジュール１１２は、少なくとも
＊受信されたファイルの実行、
＊受信されたファイルの実行のエミュレーション、ここで、ファイルの実行のエミュレーションは、上述したファイルを開くこと（たとえば、インタープリターによってスクリプトを開くこと）を含むもの、
の間に少なくとも１つの実行可能なコマンドをインターセプトするように、
・各々のインターセプトされたコマンドについて、上記のコマンドを記述する少なくとも１つのパラメータを決定するように、
・インターセプトされたコマンドおよびそのように決定されたパラメータに基づいて得られたファイルの行動ログを形成すること、ここで、行動ログは、ファイルからインターセプトされたコマンド（以後、コマンド）の全体を構成するが、ここで、各コマンドは、そのように決定されてかかるコマンドを記述する少なくとも１つのパラメータ（以後、パラメータ）に対応する
ように設計される。
【００５５】
たとえば、パスワードを収集してコンピュータネットワークを経由してそれらを送信する悪意のあるファイルの実行の間にインターセプトされたコマンド、および、上記のコマンドについて算出されたパラメータは
【００５６】
【数２】
2019079493.tif 000004
【００５７】
のようなものであることがある。
【００５８】
システムの一つの態様において、ファイルからのコマンドのインターセプトは、少なくとも
・特殊なドライバ
・デバッカ
・ハイパーバイザ
の助けにより行われる。
【００５９】
たとえば、ファイルの実行中のコマンドのインターセプトおよびそれらのパラメータの決定は、ＷｉｎＡＰＩ（登録商標）関数のエントリーポイントのつなぎによってインターセプトを利用するドライバの助けにより行われる。
【００６０】
さらに別の例において、ファイルの動作のエミュレーションの間におけるコマンドのインターセプトは、上記のエミュレーションを実行するエミュレータの手段によって直接行われるが、そのエミュレータの手段は、エミュレートされることを必要とするコマンドのパラメータを決定する。
【００６１】
さらに別の例において、仮想マシン上でのファイルの実行中におけるコマンドのインターセプトは、ハイパーバイザの手段によって行われるが、そのハイパーバイザ手段は、エミュレートされることを必要とするコマンドのパラメータを決定する。
【００６２】
システムのさらに他の態様においては、ファイルからのインターセプトされたコマンドは、少なくとも
・ＡＰＩ関数
・アクションの所定の組を記述する機械命令の組（マクロコマンド）
である。
【００６３】
たとえば、悪意のあるプログラムは、頻繁に、所定のファイルについての検索を実行し、それらの属性を変更するが、そのために、それらは、
【００６４】
【数３】
2019079493.tif 000005
【００６５】
のようなコマンドのシーケンスを用いるが、そのコマンドシーケンスは、今度は、単一のコマンド
【００６６】
【数４】
2019079493.tif 000006
【００６７】
のみによって記述されることがある。
【００６８】
システムのさらに別の態様においては、各コマンドは、それの一意の識別子と一致させられる。
【００６９】
たとえば、すべてのＷｉｎＡＰＩ（登録商標）関数は、０ｘ００００から０ｘ８０００までの範囲の数と一致させられることがあるが、ここで、各ＷｉｎＡＰＩ（登録商標）関数は、一意の数に対応する（たとえば、ＲｅａｄＦｉｌｅ→０ｘ００ｆ０、ＲｅａｄＦｉｌｅＥｘ→０ｘ００ｆ１、ｃｏｎｎｅｃｔ→０ｘ０３Ａ２）。
【００７０】
システムのさらに別の態様においては、同様のアクションを記述する数個のコマンドは、単一の識別子と一致させられる。
【００７１】
たとえば、ファイルからのデータの読み出しを記述する、ＲｅａｄＦｉｌｅ、ＲｅａｄＦｉｌｅＥｘ、ｉｆｓｔｒｅａｍ、ｇｅｔｌｉｎｅ、ｇｅｔｃｈａｒなどのような全てのコマンドは、識別子＿ｒｅａｄ＿ｄａｔａ＿ｆｉｌｅ（０ｘ７０Ｆ０）と一致させられる。
【００７２】
パターンモジュール１２１は、
・行動ログから選択されたコマンドおよびパラメータに基づいて少なくとも１つの行動パターンを形成するが、ここで、行動ログは、ファイルからの実行可能なコマンド（以後、コマンド）の全体を構成し、ここで、各コマンドは、そのコマンドを記述する少なくとも１つのパラメータ（以後、パラメータ）に対応し、行動パターンは、少なくとも１つのコマンドおよびそのようなパラメータの組であり、そのパラメータは、その組のコマンドの全て（以後、行動パターンの要素）を記述するように、
・そのように形成された行動パターンを畳み込みモジュール１２２へ送る
ように設計される。
【００７３】
たとえば、行動ログから以下のコマンドｃｉおよびパラメータｐｉ
【００７４】
【数５】
2019079493.tif 000007
【００７５】
が選択される。
【００７６】
選択されたコマンドおよびパラメータに基づいて、各々１つのコマンドおよびそのコマンドを記述する１つのパラメータを含む行動パターン
【００７７】
【数６】
2019079493.tif 000008
【００７８】
が形成される。
【００７９】
次に、そのように形成されたパターンに基づいて、各々１つのパラメータおよびそのパラメータによって記述されることができるすべてのコマンドを含む行動パターン
【００８０】
【数７】
2019079493.tif 000009
【００８１】
がさらに形成される。
【００８２】
この後、そのように形成されたパターンに基づいて、各々数個のパラメータおよびそれらのパラメータによって同時に記述することができる全てのコマンドを含む行動パターン
【００８３】
【数８】
2019079493.tif 000010
【００８４】
がさらに形成される。
【００８５】
システムの一つの態様においては、コマンドおよびパラメータは、ルールに基づいて行動ログから選ばれるが、それらルールによって、少なくとも
・連続したｉ番ごとのコマンドおよびそれを記述するパラメータであって、インクリメントｉが前もって指定されるもの、
・前に選択されたコマンドから所定の期間の後に（たとえば、１０秒ごとに）実行されたコマンドおよびそれらのパラメータを記述するもの、
・ファイルの実行の開始から所定の時間間隔に実行されるコマンドおよびそれらを記述するパラメータ、
・所定のリストからのコマンドおよびそれらを記述するパラメータ、
・所定のリストからのパラメータおよびそれらのパラメータによって記述されたコマンド、
・コマンドパラメータの数が所定の閾値よりも大きい場合における最初のまたはランダムなｋ個のパラメータ
が選択される。
【００８６】
たとえば、行動ログから、（ＣｒｅａｔｅＦｉｌｅ、ＲｅａｄＦｉｌｅ、ＷｒｉｔｅＦｉｌｅ、ＤｅｌｅｔｅＦｉｌｅ、ＧｅｔＦｉｌｅＡｔｔｒｉｂｕｔｅなどのような）ハードディスクとともに動作するためのすべてのコマンドを選択すると共に、選択されたコマンドを記述するすべてのパラメータを選択する。
【００８７】
さらに別の例において、行動ログから１０００個ごとのコマンドを選択すると共に、選択されたコマンドを記述するすべてのパラメータを選択する。
【００８８】
システムの一つの態様によれば、行動ログは、少なくとも２つのファイル、それらファイルのうち一方は安全なファイルであり他方は悪意のあるファイルであるもの、から前もって形成される。
【００８９】
システムのさらに別の態様においては、行動ログの各要素は、行動パターンの要素の種類のような特徴と一致させられる。行動パターンの要素（コマンドまたはパラメータ）の種類は、少なくとも
・行動パターンの要素を数として表現することができる場合には、「数の範囲」
である。
【００９０】
たとえば、ｃｏｎｎｅｃｔコマンドのパラメータ
【００９１】
【数９】
2019079493.tif 000011
【００９２】
を構成する行動パターンの要素に対して、上記の行動パターンの要素の種類は、「０ｘ００００から０ｘＦＦＦＦまでの数の範囲」、
・行動パターンの要素をストリングの形態で表現することができる場合には、「ストリング」であることがあり、たとえば、ｃｏｎｎｅｃｔコマンドを構成する行動パターンの要素に対して、上記の行動パターンの要素の種類は、「サイズに関して３２文字より少ないストリング」であることがあり、
・行動パターンの要素を所定のデータ構造によって記述されたデータの形態で表現することができる場合には、その行動パターンの要素の種類は、「データ構造」であることがある。
【００９３】
たとえば、ｆｉｎｄ＿ｒｅｃｏｒｄコマンドのパラメータ
【００９４】
【数１０】
2019079493.tif 000012
【００９５】
を構成する行動パターンの要素に対して、この行動パターンの要素の種類は、「データ構造ＭＤ５」であることがある。
【００９６】
システムのさらに別の態様においては、行動パターンは、行動パターンの要素として、少なくとも
・語彙素の形成のための所定のルール
・あらかじめ訓練された再帰型ニューラルネットワーク
を用いて上記の行動パターンの要素の語彙分析に基づいて形成されたトークンをさらに含む。
【００９７】
たとえば、パラメータ「ｃ:￥ｗｉｎｄｏｗｓ￥ＳＹＳＴＥＭ３２￥ＤＡＴＡ.ｐａｓｓ」の語彙分析の助けによる。
【００９８】
語彙素の形成のためのルールに基づいて、
・ストリングがファイルへのパスを含む場合には、ファイルが位置させられるディスクを決定する、
・ストリングがファイルへのパスを含む場合には、ファイルが位置させられるフォルダを決定する、
・ストリングがファイルへのパスを含む場合には、ファイルの拡張子を決定する。
【００９９】
ここで、語彙素は
・ファイルへのパス、
・ファイルが位置させられるフォルダ、
・ファイルの名前、
・ファイルの拡張子
である。
【０１００】
トークン
【０１０１】
【数１１】
2019079493.tif 000013
【０１０２】
を形成することができる。
【０１０３】
さらに別の例では、パラメータ「‘81.  19.  82.  8’，‘81.  19.  72.  38’，‘81.  19.  14.  32’」の語彙分析の助けによる。
【０１０４】
語彙素の形成のためのルールに基づいて
・パラメータがＩＰアドレスを構成する場合には、上記のＩＰアドレスを記述するビットマスク（または、メタ文字によって表現されたその類似物）（すなわち、すべての上記のＩＰに対して等式
【０１０５】
【数１２】
2019079493.tif 000014
【０１０６】
が真であるようなビットマスクＭ）を決定する。
【０１０７】
トークン「‘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｝
【０１０９】
システムのさらに別の態様においては、トークンは、ストリングからなる行動パターンの要素から形成される。
【０１１０】
たとえば、行動パターンは、ディスク、ディレクトリ、ファイル、ファイル拡張子などの名前を含むファイルへのパスである。この場合には、トークンは、ディスクの名前およびファイル拡張子
【０１１１】
【数１３】
2019079493.tif 000015
【０１１２】
であることがある。
畳み込みモジュール１２２は
・得られた行動パターンについて実行されたその畳み込み関数の結果の逆畳み込み関数の結果が、指定された値よりも大きい得られた行動パターンとの類似性の程度を有することになるように、すなわち、
【０１１３】
【数１４】
2019079493.tif 000016
【０１１４】
であり、ここで、
ｒｉは、行動パターンであり、
ｇは、畳み込み関数であり、
ｇ−１は、逆畳み込み関数であるように、
行動パターンから畳み込み関数を形成するように、
・そのように形成された畳み込み関数をＭＬモジュール１３２へ送る
ように設計される。
【０１１５】
システムの一つの態様によれば、畳み込みモジュールは、
・得られた行動パターンに基づいて行動パターンの特徴ベクトルを算出するが、ここで、行動パターンの特徴ベクトルは、行動パターンの要素のハッシュ値の和として表現されることがあるように、
・行動パターンの特徴ベクトルから畳み込み関数を形成するが、ここで、畳み込み関数は、算出された特徴ベクトルと、算出された特徴ベクトルからのそのハッシュ関数の結果の逆ハッシュ関数の結果との間の類似性の程度が所定の値よりも大きいように、ハッシュ関数を構成する。
ようにさらに設計される。
【０１１６】
システムのさらに別の態様においては、畳み込み関数は、計量学習方法によって形成される。この態様において、所定の類似性の閾値よりも大きい類似性の程度を有する行動パターンに対して上記の畳み込み関数の助けにより得られた畳み込みの間の距離が計算される。計算された距離は、所定の距離の閾値未満である。しかしながら、所定の類似性の閾値未満の類似性の程度を有する行動パターンに対しては、計算された距離は、所定の距離の閾値よりも大きい。
【０１１７】
たとえば、行動パターンの特徴ベクトルは、以下のように算出されることがある。
・まず、１０００００個の要素からなる、空のビットベクトルが作成される（ここで、ベクトルの各要素について、１ビットの情報が取って置かれる）。
・行動パターンｒからの１０００個の要素が、コマンドｃｉについてのデータの記憶用に確保され、残りの９９０００個の要素が、行動パターンｒのパラメータｃｉのために確保され、ここで、５００００個の要素（要素１００１から要素５１０００まで）が、ストリングパラメータ用に、２５０００個の要素（要素５１００１から要素７６０００まで）が、数のパラメータ用に確保される。
・行動パターンｒの各コマンドｃｉは、０から９９９までのうちの特定の数ｘｉと一致させられると共に、対応するビットが、
【０１１８】
【数１５】
2019079493.tif 000017
【０１１９】
のように生成されたベクトルに設定される。
・行動パターンｒの各パラメータｐｉに対して、ハッシュ値が、式
・ストリングに対して：
【０１２０】
【数１６】
2019079493.tif 000018
【０１２１】
・数に対して：
【０１２２】
【数１７】
2019079493.tif 000019
【０１２３】
・その他に対して：
【０１２４】
【数１８】
2019079493.tif 000020
【０１２５】
によって算出されると共に、対応するビットが、算出されたハッシュ値に依存して、生成されたベクトル
【０１２６】
【数１９】
2019079493.tif 000021
【０１２７】
に設定される。
【０１２８】
そのように設定された要素を備えた記述されたビットベクトルは、行動パターンｒの特徴ベクトルを構成する。
【０１２９】
システムのさらに別の態様においては、行動パターンの特徴ベクトルは、以下の式
【０１３０】
【数２０】
2019079493.tif 000022
【０１３１】
によって計算されるが、ここで、
ｂは、計算の位取り法の底であり（たとえば、２進法のベクトルについてはｂ＝２、ストリング、すなわち、文字の群を表すベクトルについてはｂ＝８）、
ｒｉは、行動パターンのi番目の要素であり、
ｈは、ハッシュ関数であり、ここで、
【０１３２】
【数２１】
2019079493.tif 000023
【０１３３】
である。
【０１３４】
たとえば、行動パターンの特徴ベクトルは、以下のように計算されることがある。
・まず、１０００個の要素からなる、（前の例とは異なる）さらに別の空のビットベクトルを生成する（ここで、１ビットの情報がベクトルの各要素のために取って置かれる）。
・式
【０１３５】
【数２２】
2019079493.tif 000024
【０１３６】
によって、行動パターンｒの各パターン要素ｒｉに対してハッシュ値を算出すると共に、算出されたハッシュ値に依存して、生成されたベクトルに対応するビットを設定する。
【０１３７】
【数２３】
2019079493.tif 000025
【０１３８】
システムのさらに別の態様においては、行動パターンの特徴ベクトルは、ブルームフィルタを構成する。
【０１３９】
たとえば、行動パターンの特徴ベクトルは、以下のように計算されることがある。
・まず、１０００００個の要素からなる、（前の例とは異なる）さらに別の空のベクトルを生成する。
・ハッシュ関数の組
【０１４０】
【数２４】
2019079493.tif 000026
【０１４１】
によって、式
【０１４２】
【数２５】
2019079493.tif 000027
【０１４３】
によって、行動パターンｒの各パターン要素ｒｉについて少なくとも２個のハッシュ値を算出するが、ここで、
【０１４４】
【数２６】
2019079493.tif 000028
【０１４５】
であると共に、計算されたハッシュ値に依存して、生成されたベクトルに対応する要素を設定する。
【０１４６】
【数２７】
2019079493.tif 000029
【０１４７】
システムのさらに別の態様において、行動パターンの特徴ベクトルの構築された畳み込み関数の結果のサイズは、行動パターンの上記の特徴ベクトルのサイズ未満である。
【０１４８】
たとえば、特徴ベクトルは、１０００００個の要素を含むと共にこのように１２５００バイトのサイズを有するビットベクトルを構成する一方で、上記の特徴ベクトルの畳み込み関数の結果は、８個のＭＤ５のハッシュ値の組を構成すると共に、このように２５６バイトのサイズ、すなわち、特徴ベクトルの〜２％のサイズを有する。
【０１４９】
システムのさらに別の態様においては、特徴ベクトルおよび算出された特徴ベクトルの上記のハッシュ関数の結果の逆ハッシュ関数の結果の類似性の程度は、０から１までの範囲の数値を構成すると共に、次
【０１５０】
【数２８】
2019079493.tif 000030
【０１５１】
によって算出されるが、ここで、
【０１５２】
【数２９】
2019079493.tif 000031
【０１５３】
は、ｇｉとｈ（ｒｉ）の同時発生を意味し、
｛ｈ（ｒｉ）｝は、行動パターンの要素のハッシュ関数の結果の組であり、
｛ｇｉ｝は、行動パターンの要素のハッシュ関数の結果の逆ハッシュ関数の結果の組であり、
ｒｉは、行動パターンのi番目の要素であり、
ｈは、ハッシュ関数であり、
ｗは、類似性の程度である。
【０１５４】
たとえば、算出された特徴ベクトルは、ビットベクトル「101011100110010010110111011111101000100011001001001001110101101101010001100110110100100010000001011101110011011011」を構成し、この特徴ベクトルの畳み込み関数の結果は「1010011110101110101」であり、そして、上で得られた結果の逆畳み込み関数の結果は、
【０１５５】
【数３０】
2019079493.tif 000032
【０１５６】
である（太字は、特徴ベクトルとは異なる要素を示す）。このように、特徴ベクトルおよび逆畳み込み関数の結果の類似性は、０．９２である。
【０１５７】
システムのさらに別の態様においては、パラメータとして行動パターンの要素を使用する上述したハッシュ関数は、行動パターンの要素の種類に依存する。
【０１５８】
【数３１】
2019079493.tif 000033
【０１５９】
たとえば、ファイルへのパスを含むストリングを構成する行動パターンからパラメータのハッシュ値を計算するために、ハッシュ関数ＣＲＣ３２が、他のいずれのストリングについても、ハフマンアルゴリズムが、データセットについては、ハッシュ関数ＭＤ５が、使用されることがある。
【０１６０】
システムのさらに別の態様においては、行動パターンの特徴ベクトルの畳み込み関数の形成は、オートエンコーダによって行われるが、ここで、入力データは、行動パターンのその特徴ベクトルの要素であり、出力データは、所定の閾値よりも大きい入力データに対する類似性の係数を有するデータである。
【０１６１】
検出モデルモジュール１３１は、
・少なくとも
・検出モデルの機械学習のための方法の選択
・訓練モデルのパラメータの初期化であって、検出モデルの機械学習の開始に先立って初期化された訓練モデルのパラメータが、ハイパーパラメータとして知られているもの
を含む、悪意のあるファイル用の検出モデルを生成する
ように設計される。
一つの態様において、検出モデルは、準備モジュール１１１によって選択されたファイルのパラメータに依存する。別の態様によれば、検出モデルは、固定されたものであり、訓練モデルのパラメータには依存しない。さらに別の態様において、検出モデルおよび訓練モデルなどを含む、上記したここに開示された各モデルは、準備モジュール１１１からの入力ファイル、検出モデルの機械学習のための方法のパラメータ、および照合のために受信されたモデルパラメータに依存することがある。
・そのように生成された訓練モデルをＭＬモジュール１３２へ送る。
【０１６２】
一つの態様によれば、検出モデルは、ある方法にしたがって形成され、次にファイルのデータベースに基づいて行動ログを発生させるために準備モジュール１１１によって使用されることがある。実時間処理の条件下において、訓練モデルは、次に、機械学習モジュール１３２を使用することで、ファイルの決定された重症度に基づいて再訓練される。別の態様において、検出モデルは、準備モジュール１１１を使用することで、ファイルのデータベースからのファイルに基づいて、形成されると共に訓練されることがある。このアプローチでは、検出モデルを、展開された生産環境におけるファイル上で動作することで、ここに記載されたシステムの動作に先立って精密に調整することができる。さらに別の態様において、記載したシステムは、単一のファイルを訓練のサンプルファイルおよびアンチウィルススキャンを要求することがあるファイルとして使用することで動作する。この態様においては、行動ログの蓄積または補充が無いので、検出モデルは、ファイルの事前に分類された統計に基づいて作られるのではなく、検出モデルが各ファイルを別個に調整する。
【０１６３】
たとえば、検出モデルの機械学習のための方法を選択するとき、まず、検出モデルとして人工のニューラルネットまたはランダムフォレストのいずれを使用するかの決定がなされ、次に、ランダムフォレストが選ばれる場合には、ランダムフォレストのノードに対して分離基準を選択するか、または、人工のニューラルネットが選ばれる場合には、人工のニューラルネットのパラメータの数値的な最適化の方法を選択する。機械学習のための特定の方法についての選択は、所定の種類（すなわち、データ構造、行動パターンの要素の数、悪意のあるファイルについての検索が行われる計算装置の性能、および計算装置の利用可能な資源など）の入力データ（行動パターン）を用いて悪意のあるファイルの検出におけるその方法の有効性（すなわち、悪意のあるファイルの検出に生じる第１のおよび第２の種類の誤りの数）に基づいてなされる。
【０１６４】
さらに別の例において、検出モデルの機械学習のための方法は、少なくとも
・クロステスト、スライディングチェック、交差検証（ＣＶ）
・ＡＩＣおよびＢＩＣなどの基準の数学的な検証
・Ａ／Ｂテスト、スプリットテスト
・スタッキング
に基づいて選択される。
【０１６５】
さらに別の例において、計算装置の性能が所定の閾値よりも下である場合には、ランダムフォレストが選ばれ、それ以外は、人工のニューラルネットが選ばれる。
【０１６６】
システムの一つの態様においては、機械学習は、事前に作成された訓練されてない検出モデル（すなわち、モデルのパラメータが、入力データの分析に基づいて、所定の閾値よりも高い精度で出力データを生じさせることができない検出モデル）について実行される。
【０１６７】
システムのさらに別の態様において、検出モデルの機械学習のための方法は、少なくとも
・決定木に基づいた勾配ブースティング
・決定木
・Ｋ近傍法
・サポートベクトルマシン（ＳＶＭ）法
である。
【０１６８】
システムのさらに別の態様においては、検出モデルモジュール１３１は、ＭＬモジュール１３２からの要求に応じて検出モデルを生成するように設計されるが、ここで、ある一定のハイパーパラメータおよび機械学習の方法が、前の検出モデルのために選ばれたハイパーパラメータおよび機械学習方法とは異なるように選ばれる。
【０１６９】
ＭＬモジュール１３２は、検出モデルを訓練するように設計されるが、検出モデルのパラメータは、得られた行動パターンについての得られた畳み込み関数を用いて計算され、ここで検出モデルは、上記の検出モデルの計算されたパラメータを用いて少なくとも１つの行動パターンに基づいてファイルの有害性の程度を計算するためのルールの組を構成する。
【０１７０】
たとえば、検出モデルは、準備モジュール１１１によって選択された既知のファイルの組で訓練されるが、ここで、上記のファイルの組は、６０％の安全なファイルおよび４０％の悪意のあるファイルを含む。
【０１７１】
システムの一つの態様において、ファイルの有害性の程度は、０から１までの数値を構成するが、ここで、０は、上記のファイルが安全であることを、１は、それが悪意があるものであることを意味する。
【０１７２】
システムのさらに別の態様においては、行動ログの分析に基づいて形成された行動パターンの数の変化に依存するファイルの有害性の程度における単調な変化保証する検出モデルの訓練の方法が選ばれる。
【０１７３】
たとえば、ファイルの有害性の程度の単調な変化は、各々の後続の行動パターンを分析する際に、算出された有害性の程度が、前に算出された有害性の程度未満ではないことになることを意味する（たとえば、１０番目の行動パターンの分析の後では、算出された有害性の程度は、０．２に等しいものであり、５０番目の行動パターンの分析の後では、それは、０．４であり、１００番目の行動パターンの分析の後では、それは、０．７である）。
【０１７４】
システムのさらに別の態様においては、ＭＬモジュール１３２は、
・テスト選択のファイルからファイルの有害性の正確な決定を決定するためにテスト選択のファイルからファイルの分析に基づいて形成された得られた行動ログに対して訓練された検出モデルのチェックを実行するように、
・チェックの否定的な結果の場合には、少なくとも
・検出モデルの訓練に使用された現在のものとは異なるファイルの選択を準備するために準備モジュール１１１へ、
・現在のものとは異なる、新しい検出モデルを生成するために検出モデルモジュール１３１へ、
リクエストを送る
ようにさらに設計される。
【０１７５】
訓練された検出モデルのチェックは、以下のものを伴う。上記の検出モデルは、準備モジュール１１１によって選択されたファイルの組に基づいて教育されてあるが、それらは安全なまたは悪意のあるもののいずれかであることが知られたものである。悪意のあるファイルの検出のためのモデルが正しく訓練されてあること、すなわち、検出モデルが悪意のあるファイルを検出すると共に安全なファイルを見送ることができることを検証するために、このモデルのチェックが実行される。このため、上記の検出モデルは、準備モジュール１１１によって選択された別のファイルの組からのファイルが悪意のあるものであるかどうかを決定するために使用されるが、それらのファイルが悪意のあるものであるかどうか前もって知られている。このように、いくつの悪意のあるファイルが見逃されたか、および、いくつの安全なファイルが検出されたかを決定する。見逃された悪意のあるファイルおよび検出された安全なファイルの数が所定の閾値よりも大きい場合には、その検出モデルは、不適切に訓練されたものであると認められると共にそれについては反復の機械学習が（たとえば、別の訓練選択のファイルについて、および、以前のものとは異なる検出モデルのパラメータの値を使用することなどで）なされることを必要とする。
【０１７６】
たとえば、訓練されたモデルのチェックを実行するとき、テスト選択のファイルからの悪意のあるファイルの検出において、第１のおよび第２の種類の誤りの数をチェックする。そのような誤りが所定の閾値よりも大きい場合には、新たな訓練およびテスト選択のファイルが選択され、新たな検出モデルが生成される。
【０１７７】
さらに別の例において、訓練選択のファイルが１００００個のファイルを含み、それらのうち８５００個が悪意のあるものであり、１５００個が安全なものであった。検出モデルが教育された後、それが１２００個のファイルを含むテスト選択のファイルがチェックされたが、それらのうち３５０個が悪意のあるものであり８５０個が安全なものであった。実行されたチェックの結果に従って、３５０個の悪意のあるファイルのうち１５個（４％）が検出に失敗した一方で、８５０個の安全なファイルのうち１０２個（１２％）が誤って悪意のあるものであると認められた。未検出の悪意のあるファイルの数が５％を超えるか、あるいは、偶然に検出された安全なファイルが０．１％を超える場合、訓練された検出モデルは、不適切に訓練されたものであると認められる。
【０１７８】
システムの一つの態様においては、システムの行動ログは、システムの前に形成された行動ログおよび上記のシステムの行動ログの形成後にインターセプトされたコマンドに基づいて、さらに形成される。
【０１７９】
たとえば、ファイルの実行の開始後に、そのファイルの有害性または安全性についての判定を告げることが必要であるが、インターセプトされた実行可能なコマンドおよびそれらを記述するパラメータは、行動ログに記録される。これらのコマンドおよびパラメータの分析に基づいて、そのファイルの有害性の程度が算出される。分析の結果に基づいてファイルが悪意のあるものかまたは安全なものであることについての判定告げられなかった場合、コマンドのインターセプトが継続されることがある。インターセプトされたコマンドおよびそれらを記述するパラメータは、古い行動ログにまたは新しい行動ログに記録される。第一の場合では、行動ログに記録されたすべてのコマンドおよびパラメータの分析に、すなわち、有害性の程度を算出するために前に使用されたものにでさえも、基づいて有害性の程度が算出される。
【０１８０】
有害性モジュール１４２は、
・ログモジュール１１２から得られた行動ログおよびＭＬモジュール１３２から得られた検出モデルに基づいて有害性の程度を算出するが、ファイルの有害性の程度が、実行可能なファイルの悪意のある行動を記述する、定量的な特徴（たとえば、０−ファイルが安全な行動のみを有する−から１−上記のファイルが所定の悪意のある行動を有する−までの範囲内にある）であるように、
・算出された有害性の程度を資源モジュール１４３へ送る
ように設計される。
【０１８１】
資源モジュール１４３は、コンピュータシステムのセキュリティを確保する際に使用する得られた有害性の程度の分析に基づいて、コンピュータシステムの計算資源を割り当てるように設計される。
【０１８２】
システムの一つの態様においては、コンピュータシステムの計算資源は、少なくとも
・空いているＲＡＭの容量
・ハードディスクの空き領域の容量
・（たとえば、より深いエミュレーションと共に）ウィルススキャンに費やすことができる、空いているプロセッサの時間（プロセッサの時間の分量）
を含む。
【０１８３】
システムのさらに別の態様においては、有害性の程度の分析は、有害性の程度の先行する計算の各々の後における有害性の程度の値の変化の動態を決定すること、および、少なくとも
・有害性の程度の値の増加の場合にコンピュータシステムの追加の資源を割り当てること、
・有害性の程度の値の減少の場合にコンピュータシステムの前に割り当てられた資源を解放すること
に存する。
【０１８４】
図２は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出用の方法のフローチャートである。方法２００は、システム１００に実装されることがある。手短に、方法２００は、ステップ２１１で訓練の選択のファイルが準備されること、ステップ２１２で行動ログが形成されること、ステップ２２１で行動パターンが形成されること、ステップ２２２で畳み込み関数が形成されること、ステップ２３１で検出モデルが作成されること、ステップ２３２で検出モデルが訓練されること、ステップ２４１でコンピュータシステムの行動が追跡されること、ステップ２４２で有害性の程度が算出されること、およびステップ２４３でコンピュータシステムの資源が管理されることを含む。
【０１８５】
より具体的には、ステップ２１１において、準備モジュール１１１は、所定の基準にしたがってファイルのデータベースから少なくとも１つのファイルを選択するために使用されるが、ここで、選択されたファイルに基づいて検出モデルの訓練がステップ２３２で行われることになる。
【０１８６】
ステップ２１２においてログモジュール１１２は、
・少なくとも１つのコマンドを少なくとも
・ステップ２１１において選択されたファイルの実行、
・ステップ２１１において選択されたファイルの作動のエミュレーション
の間にインターセプトするために、
・各々のインターセプトされたコマンドについて、そのコマンドを記述する少なくとも１つのパラメータを決定するために、
・インターセプトされたコマンドおよび決定されたパラメータに基づいて、得られたファイルの行動ログを形成するが、ここで、行動ログは、ファイルからのインターセプトされたコマンド（以後、コマンド）の組を表し、各コマンドは、そのコマンドを記述する少なく一つの定義されたパラメータ（以後、パラメータ）に対応するために、
使用される。
【０１８７】
ステップ２２１において、パターンモジュール１２１は、ステップ２１２で形成された行動ログから選択されたコマンドおよびパラメータに基づいて、少なくとも１つの行動パターンを形成するために使用されるが、ここで、行動ログは、ファイルからの実行可能なコマンド（以後、コマンド）のグループを表し、各コマンドは、そのコマンドを記述する少なくとも１つのパラメータ（以後、パラメータ）に対応し、行動パターンは、少なくとも１つのコマンドおよびそのようなパラメータの組であり、そのパラメータはその組からのすべてのコマンドを記述する。
【０１８８】
ステップ２２２において、畳み込みモジュール１２２は、ステップ２２１で形成された行動パターンの畳み込み関数を形成するために使用されることで、上述した行動パターンについて実行されたこの畳み込み関数の結果の逆畳み込み関数の結果は、指定された値よりも大きい上述した行動パターンに対する類似性の程度を有することになる。
【０１８９】
ステップ２３１において、検出モデルモジュール１３１は、検出モデルを作成するために使用されるが、その検出モデルについては、少なくとも
・検出モデルの機械学習のための方法が選択され、
・訓練モデルのパラメータが初期化されるが、ここで検出モデルへの機械学習の開始に先立って初期化された訓練モデルのパラメータは、ステップ２１１で選択されたファイルのパラメータに依存する、ハイパーパラメータとして知られたものである。
【０１９０】
ステップ２３２において、ＭＬモジュール１３２は、ステップ２３１において作成された検出モデルを訓練するために使用されるが、そのモジュールにおいて、その検出モデルのパラメータは、ステップ２２１において形成された行動パターンについて、ステップ２２２において形成された畳み込み関数を用いて算出され、ここで、検出モデルは、その検出モデルの算出されたパラメータを用いて少なくとも１つの行動パターンに基づいて、ファイルの有害性の程度を算出するためのルールのグループを構成する。
【０１９１】
ステップ２４１において、行動追跡モジュール１４１は、
・コンピュータシステムにおいて実行するファイルによって実行されている少なくとも１つのコマンドをインターセプトするために、
・インターセプトされたコマンドに基づいてシステムの行動ログを形成するために
使用される。
【０１９２】
ステップ２４２において、有害性モジュール１４２は、ステップ２４１で形成されたシステムの行動ログおよびステップ２３２で訓練されてある検出モデルに基づいて、有害性の程度を算出するために使用される。
【０１９３】
ステップ２４３において、資源モジュール１４３は、コンピュータシステムのセキュリティを確保する際に使用されるステップ２４２で算出されたような有害性の程度の分析に基づいて、計算資源を割り当てるために使用される。
【０１９４】
図３は、本開示の例示的な態様に係る行動パターンの数の関数としての有害性の程度の変化の動態の例を示す。
【０１９５】
行動パターンの数の関数としての有害性の程度における変化の動態の例は、悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態をプロットするグラフ３１１を含む。図３は、また悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態のグラフ３１２を示す。グラフ３２１は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態をプロットする。最後に、グラフ３２２は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態をプロットする。
【０１９６】
システムの一つの態様においては、実行可能なファイルの有害性の程度は、０（上記のファイルは絶対的に安全な行動を有する）から１（上記のファイルは所定の悪意のある行動を有する）までの範囲内の値を取る。
【０１９７】
グラフ３１１は、悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態を示す。
【０１９８】
初めに、上記のファイルを実行する際に、形成された行動パターンの数が大きいものではなく、さらに、実行可能なファイルの悪意のある行動は、ないか、または、最小であるのかもしれない（たとえば、たとえば、データの初期化が起こるが、それは安全なものを含む、多くのファイルに対して普通のことである）。このように初期に、算出された有害性の程度は、０からわずかに異なるが、所定の閾値（以後、安全性の基準）を超えるものではない。有害性の程度が閾値を超えた後、実行可能なファイルの行動は、安全であると認められることを停止する（グラフにおいて、この閾値は、点線によって示される）。
【０１９９】
しかしながら、やがて実行可能なファイルの悪意のある活動が増大すると共に有害性の程度が安全性の基準を上回る１に接近し始めることがある一方で、有害性の程度が所定の閾値（以後、有害性の基準）に到達しないかもしれないが、その閾値の通過後に、実行可能なファイルの行動は、悪意のあるものであると認められることになる（グラフにおいて、この閾値は破線によって示される）。
【０２００】
増大の期間の後に、悪意のある活動が停止することがあり、有害性の程度は、再び０へ向かうことになる（時刻Ａ）。ある時刻において、有害性の程度が有害性の基準よりも大きくなることになり（時刻Ｂ）、実行可能なファイルの行動は、悪意のあるものと認識されることになり、その結果として分析されるファイルは、悪意のあるものと認識されることになる。
【０２０１】
記載されたアプローチが、実行可能なファイルの長期間の明瞭に示された悪意のある活動の間に最も良く生じる有害性の程度の急激な増大に良く反応するので、ファイルを悪意のあるものと認識する時刻は、悪意のある活動の増大の開始よりも顕著に遅く生じるかもしれない。
【０２０２】
悪意のある行動が一時的に生じる場合（グラフ３１１の左側）には、算出された有害性の程度は、実行可能なファイルの行動の有害性、およびその結果として実行可能なファイルそれ自体の有害性についての判定が告げられる値に到達しないかもしれない。
【０２０３】
形成された各行動パターンに基づいて有害性の程度が算出されない場合（たとえば、計算装置の性能が高くないので）、時刻Ａ（悪意のある行動が開始する時）および時刻Ｃ（悪意のある行動が終了させられる時）では有害性の程度が算出されることになるが、時刻Ｂ（悪意のある行動が生じている時）では算出されないことになる状況があり得る。そのため、算出された有害性の程度が有害性の基準を超えないことになり、実行可能なファイルの行動が悪意のあるものと認識されないことになり、その結果として悪意のあるファイルが検出されないことになる。
【０２０４】
グラフ３１２は、悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態を示す。
【０２０５】
初めに、上記のファイルを実行する際には、形成された行動パターンの数が大きいものではなく、実行可能なファイルの悪意のある行動がないか、または、最小であるかもしれない（例えば、データの初期化が生じるが、それは、安全なものを含む、多くのファイルについて普通のことである）。その結果として、算出された有害性の程度は、０からわずかに異なると共に、所定の閾値（以後、安全性の基準）を超えるものではない。上述してきたように、安全性の基準は、超過したとすれば、実行可能なファイルの行動が安全なものと認められることを停止することを示す値である（グラフにおいて、この閾値は点線で示される）。
【０２０６】
しかしながら、やがて実行可能なファイルの悪意のある行動が増大すると共に有害性の程度が安全性の基準を上回る１に接近しはじめる一方で、有害性の程度が所定の閾値（以後、有害性の基準）に到達しないかもしれないが、その閾値の通過の後に、実行可能なファイルの行動は悪意のあるものと認められることになる（グラフにおいて、この閾値は破線で示される）。
【０２０７】
増大の期間（時刻Ａ〜Ｂ）の後に、悪意のある活動は停止することがあるが（時刻Ｂ〜Ａ）、まだ有害性の程度は減少しないことになり、実行可能なファイルのどの悪意のある活動の期間中においても増大することを続けるだけである。ある時刻において、有害性の程度が有害性の基準よりも大きくなることになり（時刻Ｄ）、実行可能なファイルの行動は、悪意のあるものとして認識されることになる。その結果としてファイルそれ自体は悪意のあるものとして認識されることになる。
【０２０８】
記載されたアプローチが、実行可能なファイルの長期の明瞭に示された悪意のある活動の間および頻繁に一時的にあまり目立たない悪意のある活動の間の両方で生じる、有害性の程度における滑らかな増大によく反応するので、ファイルを悪意のあるものと認識する時刻は、悪意のある活動の発現の直後に生じるかもしれない。
【０２０９】
悪意のある活動が一時的に生じる場合（グラフ３１２の左側）には、時間にわたって算出された有害性の程度は、実行可能なファイルの行動の有害性の程度および実行可能なファイルそれ自体の有害性についての判定が告げられる値へ到達するかもしれない。
【０２１０】
生成された各行動パターンに基づいて有害性の程度が算出されない場合（たとえば、計算装置の性能が高くないため）には、時刻Ａ（悪意のある行動が開始する時）および時刻Ｃ（悪意のある行動が終了させられる時）には有害性の程度が算出されることになるが、時刻Ｂ（悪意のある行動が生じている時）には算出されないことになる状況があり得る。にもかかわらず、有害性の程度が単調に変化するので、算出された有害性の程度は、それらの値を増加させることになるだけであり、時刻Ｃにおいて有害性の程度は、有害性の基準を超えることになり、実行可能なファイルの活動は、悪意のあるものとして認識されることになり、その結果として悪意のあるファイルが検出されることになる。
【０２１１】
グラフ３２１は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態を示す。
【０２１２】
初めて、上記のファイルを実行する際には、悪意のあるファイルの実行中にもまた実行されることがある（たとえば、ファイルの削除、コンピュータネットワークにおけるのデータの転送など）「疑わしい」のコマンドが実行されることがあるとはいえ、形成された行動パターンの数が大きいものではなく、その上、実行可能なファイルについてのもののような悪意のある活動がない（。したがって、算出された有害性の程度は、０とは異なると共に、所定の閾値（以後、安全性の基準）を超えるものではないが、その閾値を通過した後には、実行可能なファイルの行動が安全なものと認められることを停止する（グラフにおいて、この閾値は点線で示される）。
【０２１３】
しかしながら、多数の「疑わしい」のコマンドの実行のために、実行可能なファイルの悪意のある活動が増大すると共に有害性の程度が「１」に接近しはじめる一方で、有害性の程度は、所定の閾値（以後、有害性の基準）に到達しないかもしれないが、その閾値の通過後には、実行可能なファイルの行動は、悪意のあるものであると認められることになり（グラフにおいて、この閾値は、破線で示される）、それは安全性の基準を超えることがあるので、ファイルは、安全なものと認められることを停止すると共に「疑わしい」ものになることがある。
【０２１４】
増大の期間の後に、悪意のある活動が停止することがあり、有害性の程度は、再び０に向かうことになる（時刻Ｃ）。
【０２１５】
形成された各行動パターンに基づいて有害性の程度が算出されない場合（たとえば、計算装置の性能が高くないため）には、時刻Ｂ（活動が悪意のあるものに最も類似する、すなわち「疑わしい」ものになる時）では有害性の程度が算出されることになるが、時刻Ａ（「疑わしい」活動が増加する時）ではまたは時刻Ｃ（「疑わしい」活動が減少している時）では算出されないことになる状況があり得るので、算出された有害性の程度が安全性の基準を超えることになり、実行可能なファイルの活動が「疑わしい」ものとして認識されることになり（それが安全なものと認められないことになり）、その結果として安全なファイルが安全なものと認識されないことになる。
【０２１６】
グラフ３２２は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態を示す。
【０２１７】
初めて、上記のファイルを実行する際には、悪意のあるファイルの実行中にもまた実行されることがある、（たとえば、ファイルの削除、コンピュータネットワークにおけるデータの転送など）「疑わしい」のコマンドが実行されるかもしれないとはいえ、形成された行動パターンの数が大きいものではなく、その上、実行可能なファイルについてのもののような悪意のある行動がなく、したがって、算出された有害性の程度は、０とは異なると共に、所定の閾値（以後、安全性の基準）超えるものではないがその閾値を通過した後には、実行可能なファイルの行動が安全なものと認められることを停止する（グラフにおいて、この閾値は点線で示される）。
【０２１８】
しかしながら、多数の「疑わしい」コマンドの実行のために、やがて実行可能なファイルの悪意のある行動が増大すると共に有害性の程度が１に接近しはじめる一方で、有害性の程度が所定の閾値（以後、有害性の基準）に到達しないかもしれないが、その閾値の通過後には実行可能なファイルの行動が悪意のあるものであると認められることになり（グラフにおいて、この閾値は破線で示される）、またそれは安全性の基準を超過しないかもしれないので、ファイルは安全なものと認められることを続けることになる。
【０２１９】
増大の期間（時刻Ａ〜Ｂ）の後に、悪意のある行動は、停止することがあるが（時刻Ｂ〜Ａ）、まだ有害性の程度は減少しないことになるが、実行可能なファイルのどの悪意のある活動中においても増大することを続けるだけであり、安全性の係数を超えるものではないので、実行可能なファイルの活動は、安全なものと認識されることになり、その結果としてファイルは、安全なものと認識されることになる。
【０２２０】
形成された各行動パターンに基づいて有害性の程度が算出されない場合（たとえば、計算装置の性能が高くないため）には、時刻Ｂ（活動が悪意のあるものに最も類似する、すなわち、「疑わしい」ものになる時）では有害性の程度が算出されることになるが、時刻Ａ（「疑わしい」活動が増加する時）では、または時刻Ｃ（「疑わしい」活動が減少している時）では算出されないことになる状況があり得る。にもかかわらず、有害性の程度は、単調に変化するので、算出された有害性の程度は、それらの値を増加させることになるだけであり、時刻Ａ、Ｂ、Ｃでは有害性の程度は、安全性の基準を超えるものではないことになり、実行可能なファイルの活動は、安全なものとして認識されることになり、その結果として安全なファイルは、安全なものとして認識されることになる。
【０２２１】
記載されたアプローチが、有害性の程度の増大における鋭いピークを回避することを可能にする、有害性の程度における滑らかな増加を提供するため、ファイルを「疑わしい」ものとして認識する時刻は、「疑わしい」活動の発現の後には生じないかもしれない。
【０２２２】
図４は、行動パターンの要素の間における関係の図の一例を示す。
【０２２３】
行動パターンの要素の間における関係の図の例は、コマンド４１１（白抜きの丸）、パラメータ４１２（網掛けの丸）、１つのパラメータを備えた行動パターンの例４１２、および１つのコマンドを備えた行動パターンの例４１１を含む。
【０２２４】
ファイルの実行中に、コマンド４１１がインターセプトされ、それらを記述するパラメータ４１２が決定された。
【０２２５】
【数３２】
2019079493.tif 000034
【０２２６】
行動パターン４１２、４２２は、上述したコマンド４１１およびパラメータ４１２に基づいて形成され、行動パターンの要素の間における関係が決定される。
【０２２７】
第１のステップにおいて、１つのコマンド４１１およびそのコマンドを記述する一つのパラメータ４１２を含むパターンが形成される。
【０２２８】
【数３３】
2019079493.tif 000035
【０２２９】
示された例では、８個のインターセプトされたコマンド（それらを記述するパラメータ備えたもの）に基づいて１９個の行動パターンが形成されてある。
【０２３０】
第２のステップにおいて、１つのパラメータ４１２、および、そのパラメータ４１２によって記述することができる全てのコマンド４１１を含むパターンが形成される。
【０２３１】
【数３４】
2019079493.tif 000036
【０２３２】
示された例では、８個のインターセプトされたコマンド（それらを記述するパラメータを備えたもの）に基づいて７個の行動パターンが加えて形成されてある。
【０２３３】
第３のステップにおいて、数個のパラメータ４１２、および、それらのパラメータ４２１によって記述することができる全てのコマンド４１１を含むパターンが形成される。
【０２３４】
【数３５】
2019079493.tif 000037
【０２３５】
与えられた例では、８個のインターセプトされたコマンド（それらを記述するパラメータを備えたもの）に基づいて３個の行動パターンが加えて形成されている。
【０２３６】
図５は、オブジェクトの分類のシステムの構造図を示す。
【０２３７】
オブジェクトの分類のシステムの構成図は、分析されるオブジェクト５０１、データブロックを選択するように構成されたデータブロック選択モジュール５１０、分析モデル５１１、オブジェクトの静的分析を実行するように構成された静的分析モジュール５２０、有害性の程度を算出するように構成された有害性モジュール５３０、悪意のあるオブジェクトの検出用のモデル５３１、分類モジュール５４０、および分析モデル５１１を再訓練するように構成された再訓練モジュール５５０からなる。
【０２３８】
分析されるオブジェクト５０１は、
・実行可能なファイル、
・スクリプト、および、またそのスクリプトを含むファイル、
・ネットワークのパケットなど
の一つであることになる。
【０２３９】
たとえば、分析されるオブジェクト５０１は、Microsoft  Office（登録商標）のソフトウェアの構成要素である実行可能なファイル「word.exe」であることがある。
【０２４０】
さらに別の例において、分析されるオブジェクト５０１は、電子的文書ＰＤＦであるファイル「manual.pdf」であることがある。
【０２４１】
さらに別の例において、分析されるオブジェクト５０１は、JavaScript（登録商標）言語で記述され、サイト「google.com」からブラウザによってダウンロードされたページ「index.html」に含まれたスクリプトであることがある。
【０２４２】
さらに別の例において、分析されるオブジェクト５０１は、インターネットによって転送されるデータである（たとえば、銀行の側におけるサービス動作であるサーバ・アプリケーション「Online  Banking  Server」から、クライアントのリクエストを処理することで、ユーザの計算装置上で動作するクライアントのアプリケーション「Online  Banking  App」へ）と共に、ネットワークのパケットの形態で構造化されることがある。
【０２４３】
データブロック選択モジュール５１０は、
・分析モデル５１１の助けにより、分析されるオブジェクト５０１に含まれた少なくとも１つのデータブロックを選択するように、
・選択されたデータブロックを静的分析モジュール５２０へ送る
ように設計される。
【０２４４】
システムの一つの態様において、分析されるオブジェクト５０１中の（データ選択の要素の１つとしての）データブロックについての検索は、
・分析されるオブジェクト５０１のパラメータ、
・事前に発見されたデータブロックの特徴
に基づいて実行される。
【０２４５】
たとえば、分析されるオブジェクト５０１の上述したパラメータまたは事前に発見されたデータブロックの特徴は、少なくとも
・新たなデータブロックについての検索における鍵、
・畳み込みの算出のための一次データであって、新たなデータブロックについて検索がなされるもの、
・新たなデータブロックについての検索のルールの形成
として使用されることがある。
【０２４６】
たとえば、分析モデル５１１は、上述したデータに基づいてデータブロックの検索および選択のためのルールのグループである。
【０２４７】
システムのさらに別の態様において、データブロックの選択は、少なくとも
・データブロックのパラメータの算出および静的分析モジュール５２０への送りであって、ここで選択されたデータブロックのパラメータは、少なくとも
・選択されたデータブロックのサイズ。
・分析されるオブジェクト５０１内の選択されたデータブロックの位置
であることになるもの、
選択されるブロックの算出されたパラメータに基づいて分析されるオブジェクト５０１に含まれたデータのコピーおよび静的分析モジュール５２０への直接の送り（すなわち、寸法および場所のような選択されるブロックのパラメータに基づいて、分析されるオブジェクト５０１から選択されたデータをどのようにコピーすることができるか、および、たとえば、暗号化されたデータ、メディア・データなどをコピーするときなどに、どのようにそれを変換するべきであるか、が決定されることになる）。
を伴う。
【０２４８】
たとえば、実行可能なファイル「explorer.exe」から、そのファイルのヘッダを記述するデータブロックが選択される。このために、ファイル「explorer.exe」の種類（種類＝Windows  PE（登録商標））が、まず決定され、ファイルの決定された種類に基づいてヘッダのサイズが算出され（サイズ＝４０９６バイト）、上述したファイルにおけるヘッダの位置が決定される（ｐｏｓ＝０ｘ１２０）。この後に、分析されるファイル「explorer.exe」の０ｘ１２０の位置から静的分析モジュール５２０によって提供されたアドレスへ４０９６バイトがコピーされる。一般的に言えば、異なる種類の複数のファイルの構造についての情報は、事前に知られており、別個のＤＢに保持されると共に必要に応じて使用されることができるので、実行可能なファイル（ＰＥファイル）は、実行可能なファイルのヘッダの構造についての情報に基づいた１つのアルゴリズムの助けにより処理されることになる一方で、ＰＤＦファイルは、ＰＤＦファイルのヘッダの構造についての情報などに基づいて、別のアルゴリズムの助けにより処理されることになる。
【０２４９】
さらに別の例において、上の例におけるものと同じデータのコピーは、データブロック選択モジュール５１０によって算出されたかつ送られたパラメータに基づいて、静的分析モジュール５２０によってなされる。
【０２５０】
システムのさらに別の態様によれば、分析されるオブジェクト５０１のパラメータは、少なくとも
・（実行可能なファイル、スクリプト、ネットワークのパケットのような）分析されるオブジェクトの種類、
・分析されるオブジェクト５０１に書き込まれたデータ、および、そのオブジェクト５０１の構造を形成すること、すなわち、相互に関係のあるデータの組であることになる。
【０２５１】
たとえば、実行可能なファイル「explorer.exe」である、分析されるオブジェクト５０１からのデータブロックは、実行可能なファイルの構造、すなわち、ヘッダ、コード・セクション、およびデータ・セクションなど、に従って連続して選択される。
【０２５２】
さらに別の例において、Microsoft  Word（登録商標）の電子文書のパラメータは、文書に書き込まれた、かつ、文書中で使用されたフォント（ファミリー、文字サイズ、文字など）を特徴付ける、データである。
【０２５３】
システムのさらに別の態様において、事前に発見されたデータブロックの特徴は、少なくとも
・分析されるオブジェクト５０１からそのデータブロックの選択に使用されたデータブロックのパラメータ、
・データブロックに含まれたデータの種類（たとえば、テキスト、数値、メディア・データ、語彙素、スクリプト、実行可能なコードなど）、
・そのデータブロックおよび事前に選択されたデータブロックの間の論理的または機能的な関係（たとえば、二項関係の形態のもの）であって、ここで２個のデータブロック（または、画像および音声のような２種類のデータブロック）が、一緒に使用されるときに、論理的な関係が生じることがある一方でそれらは、（画像およびテキストのような）相互に関係付けられないことがあり、１つのブロックからのデータが、第２のブロックからのデータの分析に使用されるときに、機能的な関係が生じることがある（たとえば、実行可能なファイルのＰＥヘッダからのデータ、および、資源セクションからのデータであって、それらについての情報はＰＥヘッダに含まれるもの）、
・上述したデータブロックに基づいて算出された、分析されるオブジェクト５０１の有害性の係数（データブロックからのデータは、有害性の係数を算出するための式のパラメータとして使用されるが、たとえば、実行可能なファイルのコード・セクションからの各コマンドの量は、それ自身の重みを有する、すなわち、重みはパラメータとして現れ、コード・セクションからのすべてのコマンドの合計の重みが、有害性の係数を形成する）、
であることになる。
【０２５４】
分析モデル５１１は、データブロックを検索するためのルールの組である。検索は、発見された各データブロックが、分析されるオブジェクト５０１を悪意のあるものと分類する確率を増加させるように、実行される。
【０２５５】
システムの一つの態様において、データブロックを検索するルールは、探し求められたデータブロックのパラメータを算出するためのルールであることがある。
【０２５６】
たとえば、データブロックを検索するためのルールの助けにより、分析されるオブジェクト５０１におけるデータブロックの位置およびサイズを算出することで、上述したデータブロックは、分析されるファイル５０１におけるある位置で始まるが、その位置より前で事前に選択されたデータブロックが終了すると共に、上述したデータブロックのサイズは、事前に選択されたデータブロックのサイズ未満ではない。
【０２５７】
システムのさらに別の態様において、データブロックを検索するためのルールは、少なくとも事前に発見されたデータブロックの特徴に依存するが、ここでこの依存性は、少なくとも
・データブロックを検索するためのアルゴリズム（ルール）を選択すること、
・データブロックを検出するためのルールに使用されることになる、事前に発見されたデータブロックを用いてパラメータを算出すること、
・事前に発見されたデータブロックに基づいて、新たなデータブロックの内容を予測し、予測されたデータブロックを検索し、発見されたデータブロックの予測されたものに対する類似性の程度を決定すること
を伴うことがある。
【０２５８】
たとえば、実行可能なファイル「explorer.exe」５０１において、各々の選択されたデータブロックは、事前に選択されたデータブロックと同じ種類のデータを（すなわち、メディア・データ→メディア・データ、テキスト→テキスト、および実行可能なコード→実行可能なコードなど）、そのようなブロックがない場合には、そのとき事前に選択されたデータブロックに関係付けられたデータを含む（すなわち、メディア・データ→テキスト、テキスト→スクリプト、スクリプト→実行可能なコードなど、しかし、テキストでないもの→実行可能なコード）べきである。いくつかの態様において、種類＃１のデータ＃１が常に種類＃２のデータ＃２に関係付けられる場合には、関係付けられたデータの種類が使用されるが、たとえば、映像ファイルにおいて、画像に関与するデータ（種類：映像データ）は、音声に関与するデータ（種類：音声データ）に常に関係付けられる。
【０２５９】
システムのさらに別の態様において、分析モデル５１１は、少なくとも１つの悪意のあるオブジェクトについての機械学習のための方法によって事前に訓練されてある。
【０２６０】
たとえば、訓練は、訓練選択において、訓練された分析モデル５１１が（悪意のあるコードのような）悪意のあるデータを含むデータブロックのみを発見するようになされる。
【０２６１】
システムのさらに別の態様において、分析モデル５１１の機械学習のための方法は、少なくとも
・決定木に基づく基づいた勾配ブースティング
・決定木
・Ｋ近傍法
・サポートベクトルマシン（ＳＶＭ）法
を使用することがある。
【０２６２】
静的分析モジュール５２０は、オブジェクトに静的分析を実行し、
・各々の受信されたデータブロックを記述する特徴の組を形成するように、
・形成された特徴の組の畳み込みを算出するように、
・算出した畳み込みを有害性モジュール５３０へ送る
ように設計される。
【０２６３】
システムの一つの態様においては、データブロックに対して形成された特徴は、少なくとも
・上述したデータブロックに存在する所定の文字の頻度特性、
・分析されるオブジェクト５０１に存在する所定のハッシュ関数を用いて上述したデータブロックからの文字について算出されたハッシュ値の頻度特性、
・外部ライブラリへのアクセスの回数、
・上述したデータブロックにおける合計のデータ容量。
を含む。
【０２６４】
システムのさらに別の態様においては、構築された特徴の組の畳み込みの計算は、所定の畳み込み関数に基づいて実行されるので、全ての構築された特徴の組について実行されたその畳み込み関数の結果の逆畳み込み関数の結果が、与えられた値よりも大きいその特徴の組に対する類似性の程度を有する。
【０２６５】
たとえば、データブロックの分析に基づいて特徴｛p1,  p7,  p9,  p11,  p12,  p15,  p27｝が構築され、それに基づいて畳み込み｛h128,  h763,  h909｝が計算された。計算された畳み込みに逆関数が適用されたとき、特徴｛p1,  p7,  p10.  p11,  p12,  p15,  p27｝が得られたが、特徴p10は、元の特徴p9の代わりに存在した一方で、全ての他の特徴はその畳み込みを計算するために使用した特徴と同じであった。
【０２６６】
有害性モジュール５３０は、悪意のあるオブジェクト５３１の検出用のモデルの助けにより、得られた畳み込みの分析に基づいて分析されるオブジェクト５０１の有害性の程度を算出すると共に、
算出された有害性の程度を、分類モジュール５４０へ送るように設計される。
【０２６７】
システムの一つの態様において、有害性の程度は、分析されるオブジェクト５０１が悪意のあるものである確率を特徴付ける数値である。
【０２６８】
たとえば、ユーザのデータ「Trojan-Ransom.Win32.Agent」の秘密の暗号化のためのアプリケーションである、実行可能なファイル「video.avi.exe」の有害性の程度は、（所定の閾値を超える）０．９７に等しいものであり、順にこのアプリケーションが悪意のあるものであることを意味する一方で、ブラウザ内でのユーザの行為についてのデータを収集するためのJavaScript（登録商標）のアプリケーションである、「Google  Analytics（登録商標）」のスクリプトの有害性の程度は、０．０９に等しいものであり、順にこのスクリプトが安全であることを意味する。
【０２６９】
悪意のあるオブジェクト５３１の検出用のモデルは、分析されるオブジェクト５０１から選択されたデータブロックの分析に基づいて、分析されるオブジェクト５０１の有害性の係数を算出するためのルールの組である。
【０２７０】
システムの一つの態様において、悪意のあるオブジェクト５３１の検出用のモデルは、少なくとも１つの安全なオブジェクトおよび悪意のあるオブジェクトについての機械学習のための方法によって事前に訓練されてある。
【０２７１】
システムのさらに別の一態様において、悪意のあるオブジェクト５３１の検出用のモデルの機械学習のための方法は、少なくとも決定木に基づいた勾配ブースティング、決定木、Ｋ近傍法、およびサポートベクトルマシン（ＳＶＭ）法である。
【０２７２】
システムのさらに別の態様において、悪意のあるオブジェクト５３１の検出用のモデルを訓練する方法は、データブロックの分析に基づいて、構築された特徴の組の数における変化に依存するオブジェクトの有害性の程度における単調な変化を保証する。
【０２７３】
たとえば、１０個のデータブロックが悪意のあるファイル「video.avi.exe」から選択された。選択されたデータブロックの各々の悪意のあるオブジェクト５３１の検出用のモデルを使用する連続的な分析の後に、上記の有害性の係数「0.01,  0.02,  0.09,  0.17,  0.19,  0.21,  0.38,  0.53,  0.87,  0.88」が算出された。
【０２７４】
すなわち、有害性の係数は、係数がその後に算出される度に増加しただけである。
【０２７５】
さらに別の例において、１５個のデータブロックが安全なファイル「explorer.exe」から選択された。選択されたデータブロックの各々の悪意のあるファイル５３２の検出用のモデルを使用する連続的な分析の後に、有害性の係数「0.01,  0.02,  0.02,  0.02,  0.03,  0.08,  0.08,  0.08,  0.08,  0.08,  0.08,  0.09,  0.10.  0.10.  0.10.」が算出された。
【０２７６】
すなわち、有害性の係数は、各々のその後の算出と共に減少しなかった。かわりに、選択されたデータブロックが、潜在的な悪意のある活動に関係付けられたデータを含まなかった場合には、有害性の係数は、おおよそ以前の算出におけるものと同じレベルのままであった。選択されたデータブロックが、潜在的な悪意のある活動に関係付けられたデータを含むものであった場合には、有害性の係数が増加した。
【０２７７】
分類モジュール５４０は、
・得られた有害性の程度が所定の閾値を超えない場合に、分析されるオブジェクト５０１を安全なものとして認識するが、ここで上記の有害性の程度は、分析されるオブジェクト５０１に含まれたすべてのデータブロックに基づいて算出されたものであるように、
・得られた有害性の程度が所定の閾値を超える場合に、分析されるオブジェクト５０１を悪意のあるものとして認識する
ように設計される。
【０２７８】
選択されたデータブロックの分析に基づいて得られた有害性の程度が所定の閾値を上回るとすぐに分析されているオブジェクト５０１が悪意のあるものであると認識されることになるので、分析されるオブジェクト５０１を悪意のあるものとして認識するためには、限定された数のデータブロックを分析することで十分である。一方、それが悪意のあるものであると認識されなかった場合には、オブジェクトは安全なものであると考えられる。すべてのデータブロックの分析に基づいて得られた有害性の程度が所定の閾値を上回るものではない場合にのみ、分析されるオブジェクト５０１を安全なものとして認識することが可能であるため、安全なものとしての分析されるオブジェクト５０１の保証された認識のためには、分析されるオブジェクト５０１に含まれたすべてのデータブロックを分析することが要求される。さもなければ、限定された数の選択されたデータブロックのみが分析される場合に、次に選択されたデータブロックの分析が、得られた有害性の程度が所定の閾値を上回ることに帰着しないことになるという保証はない。
【０２７９】
たとえば、実行可能なファイル「explorer.exe」の分析の際には、データブロック選択モジュール５１０は、「explorer.exe」に含まれたデータブロックを連続して選択し、データブロックの各選択の後に、有害性モジュール５３０は、現在の有害性の程度の算出を実行し、毎回算出された有害性の程度は０．７６（所定の閾値）を上回るものではない。全てのデータブロックが選択されてしまった（１５４２回の繰り返し）後に、有害性の程度がまだ０．７６を上回るものではなかったことで、分類モジュール５４０は、実行可能なファイル「explorer.exe」を安全なものであると認識することになる。
【０２８０】
さらに別の例において、提案したシステムが実行可能なファイル「video.avi.exe」を分析する際に、データブロック選択モジュール５１０は、「explorer.exe」に含まれたデータブロックを連続して選択し、データブロック各選択の後に有害性モジュール５３０は、現在の有害性の程度の算出を実行し、この計算の間に有害性の程度は、（各選択されたデータブロックについて）一定に増加する：0.01,…  0.17,…  0.34,…  0.69,…  0.81が、３５回目の繰り返しにおいて、それは、０．７６（所定の閾値）を上回り始める。算出された有害性の程度が所定の閾値を上回るとすぐに、分類モジュール５４０は、実行可能なファイル「video.avi.exe」を悪意のあるものであると認識することになる。
【０２８１】
システムの一つの態様において、分類モジュール５４０は、算出された有害性の程度（以後、w）が存在する数値範囲に依存して、分析されるオブジェクトを、少なくとも
【０２８２】
【数３６】
2019079493.tif 000038
【０２８３】
であると認識することになる。
【０２８４】
すなわち、分析されるオブジェクト５０１は、ユーザの計算装置に対して害を引き起すものではないことが確実にされる。
【０２８５】
【数３７】
2019079493.tif 000039
【０２８６】
すなわち、大きな確率の測度を備えた分析されるオブジェクト５０１は、ユーザの計算装置に対して害を引き起こさないことになる。
【０２８７】
【数３８】
2019079493.tif 000040
【０２８８】
すなわち、大きな確率の測度を備えた分析されるオブジェクト５０１は、ユーザの計算装置に対して害を引き起こすことになる。
【０２８９】
【数３９】
2019079493.tif 000041
【０２９０】
すなわち、分析されるオブジェクト５０１は、ユーザの計算装置に対して害を引き起こすことが確実にされるが、
ここで、
ｗは、算出された有害性の程度であり、
limitcleanは、それより上では分析されるオブジェクトが安全なものとして分類されることができない所定の閾値であり、
limitunknownは、それより上では分析されるオブジェクトが未知のものとして分類されることができない所定の閾値であり、
limitsuspiciousは、それより上では分析されるオブジェクトが疑わしいものとして分類されることができない所定の閾値である。
【０２９１】
システムの上述した態様において、有害性の係数の１つの所定の閾値によって区別することができるオブジェクトの２つのクラスター（安全もの、および、悪意のあるもの）に替えて、今３つの所定の閾値によって区別することができる４個のクラスター（安全なもの、未知のもの、疑わしいもの、および、悪意のあるもの）が記述される。所定の閾値limitsuspiciousは、上述した２つのクラスターのシステムの所定の閾値に相当し、その閾値を超えると、分析されるオブジェクトは、悪意のあるものとして認識されることになる。
【０２９２】
たとえば、計算装置の遠隔制御のために設計されたかつ０．５６の有害性の係数を有するソフトウェア「Remote  Administrator」の成分である実行可能なファイル「radmin.exe」は、それが、それらの計算装置のユーザから隠された計算装置の制御を可能にすることで、悪意のある活動を実行するためにしばしば使用されるものであるので、疑わしいものであると考えられることになる（
【０２９３】
【数４０】
2019079493.tif 000042
【０２９４】
）。有害性の係数は、分析されるオブジェクト５０１から選択されたデータに基づいて決定されるが、そのように選択されたデータは、分析されるオブジェクト５０１の機能性を実行することで、そのように算出された有害性の係数は、選択されたデータによって提供されたような分析されるオブジェクト５０１の機能性に関係付けられる。
【０２９５】
システムのさらに別の態様においては、少なくとも１つのデータブロックの検索および抽出、および、有害性の程度の算出は、少なくとも
・分析されるオブジェクト５０１が悪意のあるものであると認識されるような、
・すべてのデータブロックが発見されると共に抽出される
ような時間まで次々に連続してなされる。
【０２９６】
たとえば、データブロック選択モジュール５１０は、分析されるオブジェクト５０１から、数個のデータブロックを選択するが、それに基づいて、有害性モジュール５３０は、有害性の程度を算出し、分類モジュール５４０は、分析されるオブジェクト５０１を安全なものまたは悪意のあるものとして認識することになる。
【０２９７】
さらに別の例において、データブロック選択モジュール５１０は、分析されるオブジェクト５０１から、一つのデータブロックのみを選択するが、それに基づいて、有害性モジュール５３０は、有害性の程度を算出する一方で、分析されるオブジェクト５０１を悪意のあるものとして認識することが可能なものではない（算出された有害性の程度が所定の閾値を上回るものではない）場合には、分類モジュール５４０は、分析されるオブジェクト５０１を悪意のあるものとして認識することになる。上述したサイクルは、もう一度行われるが、分析されるオブジェクト５０１が悪意のあるものとして認識されるまでか、または、すべてのデータブロックが選択されてしまい、その後に、分析されるオブジェクト５０１が、安全なものであると認識されることになるまで、さらに別のデータブロックが選択されるなどである。
【０２９８】
再訓練モジュール５５０は、分析されるオブジェクト５０１が悪意のあるものであると認識された後に、分析モデル５１１を再訓練するように設計されることで、その分析モデル５１１の再訓練に先立って必要とされたものよりも少数の分析されるオブジェクト５０１から抽出されたデータブロックに基づいて、悪意のあるものとしての分析されるオブジェクト５０１の認識が成し遂げられる。
【０２９９】
たとえば、分類の間に、悪意のあるファイルの暗号化プログラムである実行可能なファイル「video.avi.exe」は、分類モジュール５４０によって、そのファイルからのデータブロックの選択の繰り返しを５１２回実行した後に悪意のあるものであると認識され、最終的な算出された有害性の係数は０．８７に等しいものであった（０．７８の所定の閾値は「」で、その後では分析されるオブジェクトが悪意のあるものとして認識されることになる）。第２の分類の間における分析モデル５１１の再訓練の後、ファイル「video.avi.exe」は、そのファイルからのデータブロックの選択の繰り返しを２６０回実行した後に悪意のあるものであると認識されたが、最終的な算出された有害性の係数は０．７９に等しいものである。この結果は、再訓練された分析モデル５１１は、それらのデータブロックをより頻繁に選択したが、それに基づいて、算出された有害性の係数は、より高いものであったという事実のおかげで成し遂げられた。
【０３００】
ある一定の例において、Ｎ回目の繰り返しを実行した後における算出された有害性の係数が、（たとえば、０．７５と比較した０．６０のような）所定の閾値よりも顕著に小さいものであるかもしれない一方で、Ｎ＋１回目の繰り返しを実行した後にそれが、顕著により大きいものである（たとえば、０．７５と比較した０．８５）という事実は、有害性の係数の成長関数は滑らかなものではなく、有限の数の繰り返しのために、むしろ離散的であり、したがって大きなステップで変化することがあり、そのステップ大きさが、分析モデル５１１が良好に訓練されるほどより大きいものであることになるということで説明される。
【０３０１】
システムのさらに別の態様では、分類モジュール５４０による分析されるオブジェクト５０１の分類の結果の後に、分析モデル５１１の再訓練がなされる。再訓練は、オブジェクト５０１の分類の結果に関わらず、分析されるオブジェクト５０１からのデータブロックの選択の各繰り返しの間に、再訓練された分析モデル５１１を使用するそのオブジェクト５０１の繰り返された分析において、そのデータブロックに基づく算出された有害性の係数が、訓練されていない分析モデル５１１を使用するときよりも低いものではないように実行されることがある。
【０３０２】
たとえば、分類の間に、悪意のあるファイルの暗号化プログラムである実行可能なファイル「explorer.exe」は、分類モジュール５４０によってそのファイルからのデータブロック（すなわち、分析されるファイルからの全てのデータブロックのすべて）の選択の１０２４０回の繰り返しを実行した後に安全なものであると認識され、最終的な算出された有害性の係数は、「０．０９」に等しいものであった。繰り返しの分類における分析モデル５１１の再訓練の後、ファイル「explorer.exe」は安全なものであると認識された一方で、２０５０回のみの繰り返しの後で０．０９の有害性の係数が算出されたが、その後はもはや変化しなかった。この結果は、再訓練された分析モデル５１１は、それらのデータブロックをより頻繁に選択したが、それに基づいて算出された有害性の係数はより高いものであったという事実のおかげで成し遂げられた。
【０３０３】
分析モデル５１１が、分析されるオブジェクト５０１の分析の結果に基づいて絶えず再訓練されるので、悪意のあるオブジェクト５０１の各々のその後の分析の間に平均して、事前に検査された悪意のあるオブジェクト５０１に対するものよりも少ない数のデータブロックが選択および分析されることになる（より少ない繰り返しが実行されることになる）。なぜならば、悪意のあるオブジェクトに対して算出された有害性の係数は、所定の閾値を上回ることになり、分析されるオブジェクト５０１は、さらにいっそう早く悪意のあるものであると認識されることになるからである。しかしながら、分析されるオブジェクト５０１が悪意のあるものではない場合、すべての利用可能なデータブロックが選択されることになる。しかしながら、この場合においてさえも、すべての選択されたデータブロックの分析の後に、分析モデル５１１は、安全なオブジェクト５０１の分析の間においてさえも、算出された有害性の係数が、最小になる傾向があるその有害性の係数の増大率で、（それがその係数を上回ることがないことになるとはいえ）できるだけ速く所定の閾値を上回ろうとすることになるように、再訓練されることになるが、これは、既に悪意のあるオブジェクト５０１を分析するとき、選択されたデータブロックの個数が、最小になる傾向があることになるということを意味する。
【０３０４】
安全なファイルについての分析モデル５１１の再訓練は、このように、悪意のあるファイルの分析においてもまたその有効性を上昇させることを可能とする。
【０３０５】
分析されるオブジェクト５０１の分類を実行した後、オブジェクト５０１が悪意のあるものであると認識される場合には、上記のオブジェクトが検出されたコ計算装置を修正するための手順が、外部の手段によって実行されることがある。
【０３０６】
図６は、本開示の一つの態様に係るオブジェクトの分類の方法６００のフローチャートである。簡便に、方法６００は、ステップ６１０において、データブロックが選択されること、ステップ６２０において、特徴の組が形成されること、ステップ６３０において、畳み込みが算出されること、ステップ６４０において、有害性の程度が算出されること、ステップ６５０（Ａ）において、オブジェクトが安全なものであると認識されること、ステップ６５０（Ｂ）において、オブジェクトが悪意のあるものであると認識されること、および、ステップ６６０において、分析モデルが再訓練されること、を含む。
【０３０７】
より具体的には、ステップ６１０において、分析されるオブジェクト５０１に含まれる少なくとも１つのデータブロックが分析モデル５１１の助けにより選択されるが、分析モデル５１１は、データブロックを検索するためのルールの組であり、ルールは、発見された各々のデータブロックが、分析されるオブジェクト５０１を悪意のあるものと分類する可能性を増加させるように構築される。
【０３０８】
ステップ６２０において、ステップ６１０で選択された各々のデータブロックについて、そのデータブロックを記述する特徴の組が形成される。
【０３０９】
ステップ６３０において、ステップ６２０で構築されたすべての特徴の組の畳み込みが計算される。
【０３１０】
ステップ６４０において、分析されるオブジェクト５０１の有害性の程度は、悪意のあるオブジェクト５３１の検出用のモデルの助けにより、ステップ６３０で計算された畳み込み量の分析に基づいて算出される。
【０３１１】
ステップ６５０（Ａ）において、ステップ６４０で算出されたような有害性の程度が所定の閾値を上回らず、かつその有害性の程度が分析されるオブジェクト５０１に含まれたすべてのデータブロックに基づいて算出された場合には、分析されるオブジェクト５０１は安全なものであると認識される。
【０３１２】
ステップ６５０（Ｂ）において、ステップ６４０で算出されたような有害性の程度が所定の閾値を上回る場合には、分析されるオブジェクト５０１は悪意のあるものであると認識される。
【０３１３】
ステップ６６０において、分析されるオブジェクト５０１が悪意のあるものであると認識された後に、分析モデル５１１は、分析モデル５１１の再訓練に先立って必要とされたものよりも少数の、分析されるオブジェクト５０１から抽出されたデータブロックに基づいて、悪意のあるものとの分析されるオブジェクト５０１の認識が成し遂げられるように、再訓練される。
【０３１４】
図７は、開示されたシステムおよび方法を例の態様に従って実施することができる（サーバであることができる）汎用のコンピュータシステムの一例のブロック図を示す。特に、図７は、システム１００および／またはシステム１００の構成要素の例示的な態様を示すことができる。示されたように、汎用の計算装置は、処理装置２１、システム・メモリ２２、および、処理装置２１にシステム・メモリを含む様々なシステムの構成要素を結合させるシステム・バス２３を含む、コンピュータ２０などの形態で提供される。例えば、処理装置２１が、ＣＰＵ１１４および／またはＣＰＵ１１４に相当し得ると共に、システム・メモリ２２および／またはファイル・システム３６が、データ・ファイルを記憶するための電子メモリまたはメモリ１４８に相当し得ることは認識されるべきことである。
【０３１５】
さらに、システム・バス２３は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを使用する局所的なバスを含む、数種類のバス構造のいずれであってよい。システム・メモリは、リード・オンリー・メモリ（ＲＯＭ）２４およびランダム・アクセス・メモリ（ＲＡＭ）２５を含む。スタート・アップの間におけるもののような、コンピュータ１０４内の要素間の情報の転送を助ける基本的なルーチンを含む、ベーシック・インプット／アウトプット・システム（ＢＩＯＳ）２６は、ＲＯＭ２４に記憶される。
【０３１６】
コンピュータ２０は、不図示のハードディスクからの読み込みおよび当該ハードディスクへの書き込みをするためのハード・ディスク・ドライブ２７、取り外し可能な磁気ディスク２９からの読み込みおよび当該磁気ディスク２９への書き込みをするための磁気ディスク・ドライブ２８、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体のような取り外し可能な光学ディスク３１からの読み込みおよび当該光学ディスク３１への書き込みをするための光学ディスク・ドライブ３０をさらに含むことがある。ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光学ディスク・ドライブ３０は、それぞれハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光学ディスク・ドライブ・インターフェース３４によってシステム・バス２３に接続される。それらドライブおよびそれらの関連付けられたコンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な命令、データ構造、プログラム・モジュール、および、コンピュータ２０のための他のデータの不揮発的な記憶を提供する。
【０３１７】
ここに記載された例示的な環境が、ハードディスク、取り外し可能な磁気ディスク２９、および取り外し可能な光学ディスク３１を用いるとはいえ、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）などのような、コンピュータによってアクセス可能であるデータを記憶することができる、他の種類のコンピュータ読み取り可能な媒体が、また例示的な動作環境で使用されることがあることは、当業者によって認識されるべきことである。
【０３１８】
オペレーティングシステム３５を含む、多数のプログラム・モジュールは、ハードディスク、磁気ディスク２９、光学ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に記憶されることがある。コンピュータ２０は、オペレーティングシステム３５と関連付けられたまたはその中に含まれたファイル・システム３６、１個以上のアプリケーション・プログラム３７、他のプログラム・モジュール３８、およびプログラム・データ３９を含む。ユーザは、キーボード４０およびポインティング・デバイス４２のような入力装置を介してコンピュータ２０へコマンドおよび情報を入力する。他の入力装置（不図示）は、マイクロフォン、ジョイスティック、ゲームパッド、パラボラ・アンテナ、スキャナなどを含むことがある。
【０３１９】
これらのおよび他の入力装置は、しばしば、システム・バスに結合させられるシリアル・ポート・インターフェース４６を介して処理装置２１に接続されるが、パラレル・ポート、ゲーム・ポート、ユニバーサル・シリアル・バス（ＵＳＢ）のような他のインターフェースによって接続されることがある。モニタ４７または他の種類の表示装置は、また、ビデオ・アダプタ４８のようなインターフェースを介してシステム・バス２３に接続される。モニタ４７に加えて、パーソナル・コンピュータは、典型的には、スピーカおよびプリンタのような他の周辺出力装置（不図示）を含む。
【０３２０】
コンピュータ２０は、１個以上のリモート・コンピュータ４９への論理的な結合を使用することで、ネットワークで接続された環境で動作することがある。リモート・コンピュータ（またはコンピュータ）４９は、別のコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワーク・ノードであることがあり、典型的には、コンピュータ２０に関連して上述した要素の多くまたはすべてを含む。論理的な接続は、ネットワーク・インターフェース５３を含み、たとえば、ローカル・エリア・ネットワーク（すなわち、ＬＡＮ）５１、および／または、ワイド・エリア・ネットワーク（不図示）に接続される。このようなネットワークの環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてありふれたものである。リモート・コンピュータ４９が、上述したように、ストレージノード１０２〜１０７のような１個以上のストレージノードに対応することができることは、認識されるべきことである。
【０３２１】
ＬＡＮネットワークの環境において使用されたとき、コンピュータ２０は、ネットワーク・インターフェースまたはアダプタ５３を介してローカルネットワーク５１に接続される。ＷＡＮネットワークの環境において使用されたとき、コンピュータ２０は、典型的には、モデム５４またはインターネットのような広域ネットワーク上の通信を確立するための他の機構を含む。
【０３２２】
内部のものまたは外部のものであることがある、モデム５４は、シリアル・ポート・インターフェース４６を介してシステム・バス２３に接続される。ネットワーク環境において、コンピュータ２０またはその一部に関連して描かれたプログラム・モジュールは、リモートメモリ記憶装置に記憶されることがある。示されたネットワーク接続が例示的なものであり、コンピュータ間の通信リンクを確立する他の機構が使用されることがあることは、認識されることになる。
【０３２３】
様々な態様において、ここに記載したシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらのいずれの組み合わせによっても実施されることがある。ソフトウェアとして実施される場合には、方法は、１個以上の命令またはコードとして非一時的なコンピュータ読み取り可能な媒体に記憶されることがある。コンピュータ読み取り可能な媒体は、データストレージを含む。例として、また、限定ではないが、このようなコンピュータ読み取り可能な媒体は、ＲＡＭ、ＲＯＭ，ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュ・メモリ、または他の種類の電気的、磁気的、または光学的な記憶媒体、または命令またはデータ構造の形態で所望のプログラム・コードを保持するまたは記憶するために使用されることができる、および、汎用のコンピュータのプロセッサによってアクセスすることができる、いずれの他の媒体をも含むことができる。
【０３２４】
明確性の利益のために、態様のありふれた特徴のすべてが開示されているわけではない。本開示のいずれの現実の実施の開発においても、開発者の具体的な目標を達成するために多数の実施に特有の決定がなされなければならいこと、および、これらの具体的な目標が、異なる実施および異なる開発者について変動することになることは、認識されることになる。そのような開発の取り組みが複雑なかつ時間がかかるものであるかもしれないが、にもかかわらずこの開示の利益を有する当業者にとっては日常的な技術の仕事であると思われることは、認識されることになる。
【０３２５】
さらに、ここで使用された言葉遣いまたは専門用語が、説明の目的のためのものであり限定のためのものではないので、本明細書の言葉遣いまたは専門用語が、関連技術者の知識との組み合わせにおいて、ここに提示した教示およびガイダンスに照らして当業者によって解釈されるべきものであることは、理解されることである。その上、明細書または請求項における何れの用語も、そのようなものとして明示的に述べたものではない限り、一般的でないまたは特殊な意味に帰せられることが意図されたものではない。
【０３２６】
ここに開示した様々な態様は、例示によってここに言及された既に知られたモジュールに対する現在のおよび将来に知られる均等物を包含する。その上、態様および応用を示して説明してきたが、上述したものよりもはるかに多くの変更がここに開示された発明の概念を逸脱することなく可能性のあるものであることは、この開示の利益を有する当業者には、明らかなことであると思われる。
【図１】
2019079493.tif 000043
【図２】
2019079493.tif 000044
【図３】
2019079493.tif 000045
【図４】
2019079493.tif 000046
【図５】
2019079493.tif 000047
【図６】
2019079493.tif 000048
【図７】
2019079493.tif 000049
【外国語明細書】
2019079493000001.pdf