(57)【要約】      （修正有）【課題】悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングする技術を提供する。【解決手段】システムは、少なくとも１つの安全なコンテナと１つの悪意あるコンテナから選択された各オブジェクトの、当該オブジェクトと少なくとも１つの選択されたオブジェクトとの関数関係を一意的に特徴付けるパラメータを決定する。オブジェクトの決定されたパラメータに基づいて、畳み込みが各コンテナに対して個別に形成され、悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするために用いられる。【選択図】図１
2019192198.tif 000002
【特許請求の範囲】
【請求項１】
悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするための、コンピュータ上で実現される方法であって、
コンテナファイルの論理的に別個のデータ領域を構成する少なくとも２つ以上のオブジェクトを含むファイルである、悪意ある前記コンテナファイルから、複数の前記オブジェクトを選択することと、
前記悪意あるコンテナファイルから選択された各オブジェクトに関する、前記各オブジェクトと前記コンテナファイル内の少なくとも１つの他のオブジェクトとの関数関係を特徴付ける、少なくとも１つのパラメータを決定することと、
決定された前記少なくとも１つのパラメータに基づいて、各要素が、前記決定されたパラメータのうちそれ自身の一意的パラメータに対応し、前記要素の値が前記決定されたパラメータを持つオブジェクトの数に対応する、多次元ベクトルを含む、前記悪意あるコンテナファイルに関連する第１の畳み込みを生成することと、
安全なコンテナファイルから選択されたオブジェクトの決定されたパラメータに基づいて、前記安全なコンテナファイルに関連する第２の畳み込みを生成することと、
前記悪意あるコンテナファイルに関連する前記第１の畳み込みと前記安全なコンテナファイルに関連する前記第２の畳み込みに基づいて、解析されるコンテナファイルの有害度を算出する機械学習モデルを修正することと
を含むことを特徴とする、方法。
【請求項２】
前記機械学習モデルをターゲットコンテナファイルに適用して、前記ターゲットコンテナファイルの前記有害度を算出することをさらに含み、前記ターゲットコンテナファイルの前記算出された有害度は、解析された前記ターゲットコンテナファイルが悪意あるものであることの確率を特徴付ける数値であることを特徴とする、請求項１に記載の方法。
【請求項３】
前記算出された有害度が所定のしきい値範囲内にあることの決定に対応して、前記機械学習モデルを再トレーニングして、再トレーニングされた前記機械学習モデルを用いて算出された前記有害度が元の前記機械学習モデルを用いて算出された前記有害度よりも高くなるようにすることをさらに含むことを特徴とする、請求項２に記載の方法。
【請求項４】
前記算出された有害度に基づいて、前記ターゲットコンテナファイルのウィルス対策スキャンを実行するウィルス対策アプリケーションをスケジューリングすることをさらに含むことを特徴とする、請求項２に記載の方法。
【請求項５】
前記悪意あるコンテナファイルはポータブルドキュメントフォーマット（Portable  Document  Format：ＰＤＦ）文書、ソフトウェアディストリビューション、およびアーカイブファイルのうちの１つであることを特徴とする、請求項１に記載の方法。
【請求項６】
前記コンテナファイルから選択された前記オブジェクトは、実行可能ファイル、スクリプト、メディアデータ、および他のコンテナファイルのうちの少なくとも１つであることを特徴とする、請求項１に記載の方法。
【請求項７】
少なくとも１つの選択されたオブジェクトの前記決定されたパラメータは、前記コンテナファイルに含まれるすべてのオブジェクトのうち、前記選択されたオブジェクトのタイプ、前記選択されたオブジェクトのサイズ、および前記選択されたオブジェクトのインデックスのうちの少なくとも１つを含むことを特徴とする、請求項１に記載の方法。
【請求項８】
前記悪意あるコンテナファイルから選択された各オブジェクトに関する少なくとも１つのパラメータを決定することは第２の機械学習モデルを用いて実行され、前記第２の機械学習モデルは、決定された各パラメータが、ターゲットコンテナファイルが悪意あるものとして分類される確率を高めるように、前記オブジェクトの前記パラメータを決定するための一組のルールを含むことを特徴とする、請求項１に記載の方法。
【請求項９】
悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするためのシステムであって、
コンテナファイルのグループを記憶する記憶装置と、
コンテナファイルの論理的に別個のデータ領域を構成する少なくとも２つ以上のオブジェクトを含むファイルである、悪意ある前記コンテナファイルから複数の前記オブジェクトを選択し、
前記悪意あるコンテナファイルから選択された各オブジェクトに関する、前記各オブジェクトと前記コンテナファイル内の少なくとも１つの他のオブジェクトとの関数関係を特徴付ける、少なくとも１つのパラメータを決定し、
決定された前記少なくとも１つのパラメータに基づいて、各要素が、前記決定されたパラメータのうちそれ自身の一意的パラメータに対応し、前記要素の値が前記決定されたパラメータを持つオブジェクトの数に対応する、多次元ベクトルを含む、前記悪意あるコンテナファイルに関連する第１の畳み込みを生成し、
安全なコンテナファイルから選択されたオブジェクトの決定されたパラメータに基づいて、前記安全なコンテナファイルに関連する第２の畳み込みを生成し、かつ、
前記悪意あるコンテナファイルに関連する前記第１の畳み込みと前記安全なコンテナファイルに関連する前記第２の畳み込みに基づいて、解析されるコンテナファイルの有害度を算出する機械学習モデルを修正するハードウェアプロセッサとを備えることを特徴とする、システム。
【請求項１０】
前記ハードウェアプロセッサは、前記機械学習モデルをターゲットコンテナファイルに適用して、前記ターゲットコンテナファイルの前記有害度を算出し、前記ターゲットコンテナファイルの前記算出された有害度は、解析された前記ターゲットコンテナファイルが悪意あるものであることの確率を特徴付ける数値であることを特徴とする、請求項９に記載のシステム。
【請求項１１】
前記ハードウェアプロセッサは、前記算出された有害度が所定のしきい値範囲内にあることの決定に対応して、前記機械学習モデルを再トレーニングして、再トレーニングされた前記機械学習モデルを用いて算出された前記有害度が元の前記機械学習モデルを用いて算出された前記有害度よりも高くなるようにすることを特徴とする、請求項１０に記載のシステム。
【請求項１２】
前記ハードウェアプロセッサは、前記算出された有害度に基づいて、前記ターゲットコンテナファイルのウィルス対策スキャンを実行するウィルス対策アプリケーションをスケジューリングすることを特徴とする、請求項１０に記載のシステム。
【請求項１３】
前記悪意あるコンテナファイルはＰＤＦ文書、ソフトウェアディストリビューション、およびアーカイブファイルのうちの１つであることを特徴とする、請求項９に記載のシステム。
【請求項１４】
前記コンテナファイルから選択された前記オブジェクトは、実行可能ファイル、スクリプト、メディアデータ、および他のコンテナファイルのうちの少なくとも１つであることを特徴とする、請求項９に記載のシステム。
【請求項１５】
少なくとも１つの選択されたオブジェクトの前記決定されたパラメータは、前記コンテナファイルに含まれるすべてのオブジェクトのうち、前記選択されたオブジェクトのタイプ、前記選択されたオブジェクトのサイズ、および前記選択されたオブジェクトのインデックスのうちの少なくとも１つを含むことを特徴とする、請求項９に記載のシステム。
【請求項１６】
前記悪意あるコンテナファイルから選択された各オブジェクトに関する少なくとも１つのパラメータの決定は第２の機械学習モデルを用いて実行され、前記第２の機械学習モデルは、決定された各パラメータが、ターゲットコンテナファイルが悪意あるものとして分類される確率を高めるように、前記オブジェクトの前記パラメータを決定するための一組のルールを含むことを特徴とする、請求項９に記載のシステム。
【請求項１７】
悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするためのコンピュータ実行可能な命令を含む非一時的なコンピュータ読み取り可能な媒体であって、
コンテナファイルの論理的に別個のデータ領域を構成する少なくとも２つ以上のオブジェクトを含むファイルである、悪意ある前記コンテナファイルから複数の前記オブジェクトを選択し、
前記悪意あるコンテナファイルから選択された各オブジェクトに関する、前記各オブジェクトと前記コンテナファイル内の少なくとも１つの他のオブジェクトとの関数関係を特徴付ける、少なくとも１つのパラメータを決定し、
決定された前記少なくとも１つのパラメータに基づいて、各要素が、前記決定されたパラメータのうちそれ自身の一意的パラメータに対応し、前記要素の値が前記決定されたパラメータを持つオブジェクトの数に対応する、多次元ベクトルを含む、前記悪意あるコンテナファイルに関連する第１の畳み込みを生成し、
安全なコンテナファイルから選択されたオブジェクトの決定されたパラメータに基づいて、前記安全なコンテナファイルに関連する第２の畳み込みを生成し、かつ、
前記悪意あるコンテナファイルに関連する前記第１の畳み込みと前記安全なコンテナファイルに関連する前記第２の畳み込みに基づいて、解析されるコンテナファイルの有害度を算出する機械学習モデルを修正するための命令を含むことを特徴とする、非一時的なコンピュータ読み取り可能な媒体。
【請求項１８】
前記命令は、前記機械学習モデルをターゲットコンテナファイルに適用して、前記ターゲットコンテナファイルの前記有害度を算出するための命令をさらに含み、前記ターゲットコンテナファイルの前記算出された有害度は、解析された前記ターゲットコンテナファイルが悪意あるものであることの確率を特徴付ける数値であることを特徴とする、請求項１７に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１９】
前記命令は、前記算出された有害度が所定のしきい値範囲内にあることの決定に対応して、前記機械学習モデルを再トレーニングして、再トレーニングされた前記機械学習モデルを用いて算出された前記有害度が元の前記機械学習モデルを用いて算出された前記有害度よりも高くなるようにするための命令をさらに含むことを特徴とする、請求項１８に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項２０】
前記命令は、前記算出された有害度に基づいて、前記ターゲットコンテナファイルのウィルス対策スキャンを実行するウィルス対策アプリケーションをスケジューリングするための命令をさらに含むことを特徴とする、請求項１８に記載の非一時的なコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ウィルス対策技術に関し、より具体的には、悪意あるコンテナを検出するための機械学習モデルをトレーニングし、教育するシステムおよび方法に関する。
【背景技術】
【０００２】
ここ１０年間における、コンピュータ技術の急速な発展と、各種コンピューティングデバイス（パーソナルコンピュータ、ノート型パーソナルコンピュータ、タブレット、スマートフォンなど）の広範な使用は、これらのデバイスの様々な活動分野における利用とともに、無数の（ネットサーフィンから、銀行振替、電子文書化に至る）問題の解決の強力な誘因となっている。コンピューティングデバイスやそれらのデバイス上で実行されるソフトウェアの数の増加に伴って、悪意あるプログラムの数も急速に増加してきた。
【０００３】
現在では、非常に多くの種類の悪意あるプログラムが存在している。その中には、ユーザのデバイスから、そのユーザの個人的な機密情報（ログイン情報やパスワード、銀行取引情報、電子文書など）を盗むものがある。その他には、ユーザのデバイスを、いわゆるボットネットにして、ＤＤｏＳ攻撃（distributed  Denial-of-Service  attack）のような攻撃をしたり、他のコンピュータやコンピュータネットワーク上のパスワードを総当たり法によって探し出したりするものがある。さらにその他には、侵入型広告を通じた有料コンテンツ、有料購読、有料番号へのショートメッセージサービス（Short  Message  Service：ＳＭＳ）の送信などをユーザに勧めるものがある。
【０００４】
悪意あるプログラムの検出や、感染の予防や、悪意あるプログラムに感染したコンピュータシステムの復元などの、悪意あるプログラムに対する処置のために、専用プログラム、すなわちウィルス対策アプリケーションが用いられる。ウィルス対策プログラムは、静的解析や動的解析などの、ありとあらゆる悪意あるプログラムを検出するための様々な技術を採用している。静的解析とは、解析されるプログラムの起動や動作のエミュレーション以外の、プログラムを構成するファイルに含まれるデータに基づいたプログラムの有害性の解析であり、静的解析時には、（ｉ）シグネチャ解析、すなわち、解析中のプログラムの特定のコードセクションと既知のコード（シグネチャ）との対応関係の、悪意あるプログラムのシグネチャのデータベースからの検索、および（ｉｉ）ブラックリストまたはホワイトリスト、すなわち、悪意あるプログラムのチェックサムのデータベース（ブラックリスト）、または安全なプログラムのチェックサムのデータベース（ホワイトリスト）における、解析中のプログラム（またはその一部）からの計算されたチェックサムの検索が採用されることもある。動的解析とは、解析されるプログラムの動作の実行またはエミュレーションの過程で得られたデータに基づいたプログラムの有害性の解析であり、動的解析時には、（ｉ）ヒューリスティック分析、すなわち、解析されるプログラムの動作のエミュレーション、エミュレーションログ（アプリケーションプログラミングインターフェース（Application  Programming  Interface：ＡＰＩ）関数呼び出しに関するデータ、渡されたパラメータ、解析中のプログラムのコードセクションなどを収容している）の作成、および作成されたログ内のデータと、悪意あるプログラムのエミュレートされたシグネチャのデータベースからのデータとの対応関係の検索、ならびに（ｉｉ）事前保護、すなわち、解析中の起動されたプログラムのＡＰＩ関数呼び出しのインターセプト、解析中のプログラムの動作に関するログ（ＡＰＩ関数呼び出しに関するデータ、渡されたパラメータ、解析中のプログラムのコードセクションなどを収容している）の作成、および作成されたログ内のデータと、悪意あるプログラムの呼び出しのデータベースからのデータとの対応関係の検索が採用されることもある。
【０００５】
静的解析および動的解析は、どちらも長所と短所を持っている。静的解析は、解析を行うコンピュータシステムのリソースに対する要求度がより低く、解析されるプログラムの実行やエミュレーションを必要としないため、静的解析の方が高速であるが、効果はより低い。すなわち、静的解析は、悪意あるプログラムを検出する割合がより低く、誤警報（すなわち、解析中のファイルがウィルス対策プログラムリソースによって有害と判定されたが、解析中のファイルは安全である）の割合がより高い。動的解析は、解析されるプログラムの動作の実行またはエミュレーション中に得られたデータを使用するため、より低速であり、解析を行うコンピュータシステムのリソースに対する要求度がより高いが、効果はより高い。最新のウィルス対策プログラムは、静的解析と動的解析の両方の要素を含んだより複雑な解析を採用している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これまでのところ、ウィルス対策スキャンの主要問題は、依然として、上述のスキャンをするためのコンピューティングリソースを、解析される各プログラムに対して配分する課題に対するものである。限られたコンピューティングリソースで多くのプログラムを次々と解析すると仮定した場合、少なくとも以下の可能性がある。すなわち、（ｉ）解析されるプログラムのウィルス対策スキャンの質が一般的に低下する（例えば、動的解析が除外され、静的解析だけが使われる）可能性、（ｉｉ）解析されるプログラムの一部が理由なくウィルス対策スキャンの対象から除外され、その中に悪意あるものがある恐れがある（例えば、ウィルス対策スキャンを待つ待ち行列のプログラムの数がNであるが、コンピューティングリソースはM（<N）個のプログラムのウィルス対策スキャンに十分な量しかないため、（N-M）個のプログラムはウィルス対策スキャンの対象から除外される）可能性、（ｉｉｉ）解析されるプログラムのウィルス対策スキャンの平均的な質が維持される場合、安全なプログラムのスキャンの質は高いが、悪意あるプログラムのスキャンの質は低い（例えば、安全なプログラムは静的解析および動的解析で解析されるが、悪意あるプログラムは静的解析だけで解析される）可能性、また、最終的に第１種および第２種の誤りとなるその他の可能性、である。
【０００７】
公知の検出技術は、所定の種類の悪意あるスクリプト（既知の所定のオブジェクトを含むスクリプト）の検出には優れているが、未知の種類の悪意あるオブジェクト（例えば、ActionScriptのような、ティーチングされていない種類のスクリプト）の検出を処理することはできない。しかも、トレーニングされた検出用モデルを用いた解析を開始するためには、まず、解析されるスクリプトを（最大性能を使用、すなわち、動的解析を実行して）処理する必要があり、それはリソースを大量に必要とする動作であるため、公知の技術は、コンピューティングリソースに対して限られたアクセスしかできない多数のファイル（スクリプト）の迅速な解析には使えない。
【課題を解決するための手段】
【０００８】
本開示の各態様は、統計解析の要素を用いて、悪意あるファイルの検出の課題を解決することができる。そこで、本出願は、悪意あるファイルを検出するためのシステムおよび方法、特に、悪意あるコンテナファイルを検出するための機械学習モデルをトレーニング（および再トレーニング）する技術のためのシステムおよび方法を開示する。
【０００９】
本開示の一態様によれば、悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするための、コンピュータ上で実現される方法が提供される。方法は、コンテナファイルの論理的に別個のデータ領域を構成する少なくとも２つ以上のオブジェクトを含むファイルである、悪意あるコンテナファイルから、複数のオブジェクトを選択することを含む。方法は、悪意あるコンテナファイルから選択された各オブジェクトに関する少なくとも１つのパラメータを決定することをさらに含む。少なくとも１つのパラメータは、各オブジェクトとコンテナファイル内の少なくとも１つの他のオブジェクトとの関数関係を特徴付ける。方法は、決定された少なくとも１つのパラメータに基づいて、悪意あるコンテナファイルに関連する第１の畳み込みを生成することを含む。第１の畳み込みは多次元ベクトルを含み、多次元ベクトルの各要素は、決定されたパラメータのうちそれ自身の一意的パラメータに対応し、要素の値は、決定されたパラメータを持つオブジェクトの数に対応する。方法は、安全なコンテナファイルから選択されたオブジェクトの決定されたパラメータに基づいて、安全なコンテナファイルに関連する第２の畳み込みを生成すること、および、悪意あるコンテナファイルに関連する第１の畳み込みと安全なコンテナファイルに関連する第２の畳み込みに基づいて、機械学習モデルを修正することを含む。機械学習モデルは解析されるコンテナファイルの有害度を算出するように構成される。
【００１０】
他の態様においては、方法は、機械学習モデルをターゲットコンテナファイルに適用して、ターゲットコンテナファイルの有害度を算出することをさらに含み、ターゲットコンテナファイルの算出された有害度は、解析されたターゲットコンテナファイルが悪意あるものであることの確率を特徴付ける数値である。
【００１１】
他の態様においては、方法は、算出された有害度が所定のしきい値範囲内にあることの決定に対応して、機械学習モデルを再トレーニングして、再トレーニングされたモデルを用いて算出された有害度が元の機械学習モデルを用いて算出された有害度よりも高くなるようにすることをさらに含む。
【００１２】
他の態様においては、方法は、算出された有害度に基づいて、ターゲットコンテナファイルのウィルス対策スキャンを実行するウィルス対策アプリケーションをスケジューリングすることをさらに含む。
【００１３】
他の態様においては、悪意あるコンテナファイルはポータブルドキュメントフォーマット（Portable  Document  Format：ＰＤＦ）文書、ソフトウェアディストリビューション、およびアーカイブファイルのうちの１つである。
【００１４】
他の態様においては、コンテナファイルから選択されたオブジェクトは、実行可能ファイル、スクリプト、メディアデータ、および他のコンテナファイルのうちの少なくとも１つである。
【００１５】
他の態様においては、少なくとも１つの選択されたオブジェクトの決定されたパラメータは、コンテナファイルに含まれるすべてのオブジェクトのうち、選択されたオブジェクトのタイプ、選択されたオブジェクトのサイズ、および選択されたオブジェクトのインデックスのうちの少なくとも１つを含む。
【００１６】
他の態様においては、悪意あるコンテナファイルから選択された各オブジェクトに関する少なくとも１つのパラメータを決定することは第２の機械学習モデルを用いて実行され、第２の機械学習モデルは、決定された各パラメータが、ターゲットコンテナファイルが悪意あるものとして分類される確率を高めるように、オブジェクトのパラメータを決定するための一組のルールを含む。
【００１７】
態様の他の例においては、悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするためのシステムが提供される。システムは、コンテナファイルのグループを記憶する記憶装置とハードウェアプロセッサとを含む。プロセッサは、悪意あるコンテナファイルから複数のオブジェクトを選択し、悪意あるコンテナファイルから選択された各オブジェクトに関する、少なくとも１つのパラメータを決定するように構成される。コンテナファイルは、コンテナファイルの論理的に別個のデータ領域を構成する少なくとも２つ以上のオブジェクトを含むファイルであり、少なくとも１つのパラメータは、各オブジェクトとコンテナファイル内の少なくとも１つの他のオブジェクトとの関数関係を特徴付ける。プロセッサは、決定された少なくとも１つのパラメータに基づいて、各要素が、決定されたパラメータのうちそれ自身の一意的パラメータに対応し、要素の値が決定されたパラメータを持つオブジェクトの数に対応する、多次元ベクトルを含む、悪意あるコンテナファイルに関連する第１の畳み込みを生成し、かつ、安全なコンテナファイルから選択されたオブジェクトの決定されたパラメータに基づいて、安全なコンテナファイルに関連する第２の畳み込みを生成するようにさらに構成される。プロセッサは、悪意あるコンテナファイルに関連する第１の畳み込みと安全なコンテナファイルに関連する第２の畳み込みに基づいて、解析されるコンテナファイルの有害度を算出するように構成された機械学習モデルを修正するように、さらに構成される。
【００１８】
態様の他の例によれば、本明細書に開示する方法のうち任意のいずれかを実行するための、コンピュータが実行可能な命令を含む命令を格納するコンピュータ読み取り可能な媒体が提供される。
【００１９】
上記態様例の簡単な概要は、本開示の基本的な理解を提供するものである。この概要は、すべての熟考された態様の広範な概説ではなく、すべての態様の鍵となる要素や重要な要素を特定したり、本開示の任意またはすべての態様の範囲を規定したりすることを意図するものではない。その唯一の目的は、１つ以上の態様を、後述する本開示のより詳細な説明への前置きとして、簡易な形で提示することである。上述のことを達成するために、本開示の１つ以上の態様は、特許請求の範囲で説明され、かつ例示的に示される特徴を含んでいる。
【図面の簡単な説明】
【００２０】
本明細書に組み込まれ、その一部を構成する添付図面は、本開示の１つ以上の態様例を図示し、それらの原理および実施例を説明するために、詳細説明とともに供される。
【００２１】
【図１】図１は、悪意あるコンテナを検出するためのモデルをティーチングするシステムの構造図を示す。
【図２】図２は、悪意あるコンテナを検出するためのモデルをティーチングする方法の構造図を示す。
【図３】図３は、ウィルス対策スキャンタスクのスケジューリングのためのシステムの構造図を示す。
【図４】図４は、ウィルス対策スキャンタスクのスケジューリングのための方法の構造図を示す。
【図５】図５は、汎用コンピュータシステム、パーソナルコンピュータ、またはサーバの例を示す。
【発明を実施するための形態】
【００２２】
悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするためのシステム、方法、および、システムおよび方法のためのコンピュータプログラム製品に関する態様の例について以下に説明する。以下の説明は、単に例示の目的のためであって、いかなる制限を加えることも意図されていないことは、当業者には理解されるであろう。その他の態様は、本開示から利益を得る当業者には、容易に想起できるであろう。添付図面に示すように、態様例の実施態様が詳細に参照される。同一あるいは類似する項目には、図面および以下の説明を通して、可能な範囲で、同一の参照符号を用いる。
【００２３】
本開示の態様例を説明するために用いられるいくつかの定義および用語を紹介する。
【００２４】
ベクトルとは、値の順序集合を構成する抽象データ型であり、集合内の特定の値に複数回遭遇してもよく、すべての値が同一の型または異なる型であってもよい。ベクトル内の値のインスタンスはベクトルの要素（成分）として知られている。
【００２５】
コンテナとは、ファイルのタイプであり、その中に他のタイプのオブジェクトを包含することができる。コレクションと違って、コンテナは特定のデータ構造を実現する。
【００２６】
機械学習（Machine  Learning：ＭＬ）とは、人工知能のメソッドのクラスであり、その特徴は、直接問題解決することではなく、一群の類似した問題から解法を適用する過程でティーチングする点にある。そのようなメソッドは、数理統計学、数値法、最適化手法、確率論、グラフ理論、およびデジタル形式のデータを扱う各種技法を用いることによって構築される。
【００２７】
教師なし学習（自己学習、自主学習）とは、機械学習方法の一種であり、試験されるシステムが、試験者側の介入なしに、規定された課題を自主的に実行するよう教えられるというものである。サイバネティクスの観点から言えば、サイバネティック実験の一種である。一般に、教師なし学習は、オブジェクトのセット（トレーニング選択）に関する記述が既知であり、オブジェクト間に存在する内部的関連性や依存関係や法則を発見することが要求される課題だけに適している。
【００２８】
教師あり学習とは、機械学習方法の一種であり、試験されるシステムが、「刺激／応答」例を用いて学習するよう求められる。サイバネティクスの観点から言えば、サイバネティック実験の一種である。入力と標準出力（刺激／応答）の間にはある依存関係が存在する可能性があるが、未知である。限られた数の前例群だけが既知であり、「刺激／応答」の対がトレーニング選択として既知である。このデータに基づいて、依存関係を再構築する（予測に適した刺激／応答関係のモデルを構築する）ことが求められる、すなわち、任意の所与のオブジェクトに関する十分に正確な応答を出力することができるアルゴリズムを構築することが求められる。例に基づくティーチングの場合のように、応答の精度を測定するための質関数を導入してもよい。
【００２９】
関数関係とは、各オブジェクトの変化が互いに付随し合うようなタイプのオブジェクト間の関係（関連）である。関数関係においては、因果関係の主要な特徴が欠けている。すなわち、多産性が欠け（オブジェクトは相互に生産し合わない）、時間的非対称性が欠け（オブジェクトは共存し、一方が他方に先行しない）、不可逆性が欠けている。
【００３０】
本開示の各態様は、悪意あるファイルの検出のためのモデルをティーチングするように構成される。本開示の技術的成果は、ティーチングの目的の実現である。本開示のさらに他の技術的成果は、悪意あるファイルの検出のためのモデルを用いたとき、以前に検出された悪意あるファイルに関する再トレーニングによって、悪意あるファイルの検出が増加することである。この技術的成果は、コンピュータの機能性、すなわち、ウィルス対策技術に関する、コンテナファイルの危険性を認識できない従来の静的ウィルススキャンおよび動的ウィルススキャンの改善である。例えば、コンテナファイルの内容をそのまま（すなわち、マスクを比較することによって）解析した場合、コンテナオブジェクトが暗号化されている可能性があるために、従来の静的ウィルススキャンは高い検証度を保証できない。一方、従来の動的ウィルススキャンでは、各コンテナオブジェクトを（例えば、仮想環境下で）起動して、その挙動を解析する必要があり、非常に資源集約的で低速である。それに対して、本開示の各態様は、コンテナファイルを、両方の課題、すなわち、悪意性（または、悪意のなさ）の確実な検証を伴う迅速な解析を解決するように、解析するシステムを提供する。
【００３１】
これらの成果は、悪意あるコンテナを検出するためのモデルをティーチングする方法を用いて達成される。ここで、コンテナは、そのコンテナ（以降、オブジェクトと呼ぶ）の論理的に別個のデータ領域を構成する少なくとも２つ以上のオブジェクトを含むファイルであり、方法は、悪意あるコンテナを検出するためのモデルをティーチングするシステムのリソースを用いて実行されるステップを含んでおり、方法において、パラメータの決定手段を用いて、少なくとも１つの安全なコンテナと１つの悪意あるコンテナから選択された各オブジェクトの、当該オブジェクトと少なくとも１つの選択されたオブジェクトとの関数関係を一意的に特徴付けるパラメータを決定し、畳み込みの形成手段を用いて、上記コンテナから選択されたオブジェクトの決定されたパラメータに基づいて、各要素が、決定されたパラメータのうちそれ自身の一意的パラメータに対応し、その要素の値がその決定されたパラメータを持つオブジェクトの数に対応する、多次元ベクトルである畳み込みを各コンテナに対して個別に形成し、ティーチング手段を用いて、上記のように形成された畳み込みに基づいて、悪意あるコンテナを検出するためのモデルの機械ティーチングを実行する。ここで、上記の検出するためのモデルはコンテナの有害度を算出するためのアルゴリズムであり、コンテナの有害度はそのコンテナが悪意あるものである確率を特徴付ける数値である。
【００３２】
方法の他の特定の態様においては、算出されたコンテナの有害度があらかじめ決定されたしきい値範囲内にある場合、再トレーニングされたパラメータ決定用モデルを用いて選択されたオブジェクトのパラメータに基づいて算出された有害度が、再トレーニングされていないパラメータ決定用モデルを用いて選択されたオブジェクトのパラメータに基づいて算出された有害度よりも高くなるように、悪意あるコンテナを検出するためのモデルがさらに再トレーニングされる。
【００３３】
方法のさらに他の特定の態様においては、コンテナは、少なくとも、ポータブルドキュメントフォーマット（Portable  Document  Format：ＰＤＦ）文書、ディストリビューション、およびアーカイブファイルである。
【００３４】
方法の他の特定の態様においては、コンテナから選択されるオブジェクトは、少なくとも、実行可能ファイル、スクリプト、メディアデータ、およびコンテナである。
【００３５】
方法のさらに他の特定の態様においては、オブジェクトのパラメータは、少なくとも、コンテナに含まれるすべてのオブジェクトのうちのオブジェクトのタイプ、オブジェクトのサイズ、およびオブジェクトのインデックスである。
【００３６】
図１は、悪意あるコンテナを検出するためのモデルをティーチングするシステムの構造図の一例を示す。悪意あるコンテナを検出するためのモデルをティーチングするためのシステムは、解析されるコンテナ１００と、コンテナ内のオブジェクト１０５と、パラメータ決定モジュール１１０と、パラメータ決定用モデル１１１と、畳み込み生成モジュール１２０と、モデルトレーニングモジュール１３０と、検出モデル１３１と、パラメータ決定用モデルを再トレーニングするように構成された再トレーニングモジュール１４０とを含む。
【００３７】
１つの態様においては、コンテナ１００は、所定のコンテナ１００の論理的に別個のデータ領域である、少なくとも２つのオブジェクト１０５を含むファイルである。コンテナ１００は、複数の論理的に別個のデータ領域（これら自身もファイルまたは他のコンテナであってもよい）を包含するように構成されフォーマットされた任意のファイル、パッケージ、またはその他のデータオブジェクトであってもよい。すなわち、コンテナ１００は、任意の所与の構造化された一組のデータであってもよく、そこから、その構造に関する情報に基づいて、論理的に別個のデータ領域を、独立したオブジェクト１０５として選び出すことが技術的に可能であればよい。
【００３８】
例えば、コンテナ１００は、テキスト、フォント、ベクタイメージ、ラスタイメージ、その他の表示情報などの、固定レイアウトのフラットな文書の完全な記述を提供するオブジェクトを包含したＰＤＦ文書や、その他の論理構造情報や、インタラクティブ要素（例えば、注釈や書式フィールド）や、レイヤーや、ビデオコンテンツや、添付ファイルや、メタデータや、セキュリティ関連オブジェクト（例えば、暗号化キーやデジタル署名）であってもよい。他の一例においては、コンテナ１００は、ＳＷＦファイルを含むアプリケーション（フラッシュアプリケーション）またはＳＷＦファイルそのものであってもよい。さらに他の一例においては、コンテナ１００は、Ｊａｖａ（登録商標）アプレットや、論理的に別個のソフトウェアコンポーネントであるオブジェクトを含むソフトウェアディストリビューション（例えば、マイクロソフトインストーラ、すなわち「ＭＳＩ」としてフォーマットされたウインドウズ（登録商標）インストーラ）や、オブジェクト１０５をファイルとして含むアーカイブファイル（例えば、ＷｉｎＺｉｐアーカイバによってパッケージ化されたファイルの集まり）であってもよい。
【００３９】
いくつかの態様においては、コンテナ１００は、複数オブジェクト（すなわち、「ストレージ」）を有するバイナリワードフォーマットで、ＯＬＥ複合ファイルとしてフォーマットされるか、またはエクステンシブルマークアップランゲージ（Extensible  Markup  Language：ＸＭＬ）内の２進コード化されたブロックに格納された複数オブジェクトを有するＸＭＬベースのファイルフォーマットでフォーマットされた電子文書（例えば、マイクロソフトオフィス（登録商標）文書）であってもよい。例えば、マイクロソフトエクセル電子文書"quarterly_report.xlsx"１００は、テキストデータ（例えば、マイクロソフトエクセル表のセル間の相互の関数関係の記述式）１０５．１と、画像またはＯＬＥ添付オブジェクト（上記電子文書の表からのデータに基づいて作成されたグラフ）１０５．２と、他のマイクロソフトエクセル電子文書１０５．３とを含んでもよい。
【００４０】
システムの態様のさらにその他の例においては、コンテナ１００から選び出されるオブジェクト１０５は、少なくとも、実行可能ファイル（ライブラリ（ダイナミックリンクライブラリ（Dynamic  Link  Library：ＤＬＬ））を含む）と、スクリプト（例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）言語、ActionScript、などで記述されたもの）と、メディアデータ（例えば、画像、ビデオ、音声など）と、その他のコンテナファイル（例えば、別のアーカイブファイルに埋め込まれたアーカイブファイル）と、バイナリデータと、テキストとである。
【００４１】
例えば、アーカイブファイル"archive.zip"であるコンテナ１００は実行可能ファイル"viewer.exe"１０５．４と画像"family.jpg"１０５．５を含んでもよく、一方、実行可能ファイル"viewer.exe"１０５．４は、ファイルセクションを記述する既知の構造（ポータブル実行可能（Portable  Executable：ＰＥ）ファイルの構造）を持っており、リソースセクションは画像"me.tiff"１０５．５を含むので、同じくコンテナ１００である。
【００４２】
すなわち、オブジェクト１０５は、それを格納するコンテナ１００の機能や構造を変更することなく修正（置換やコンテナ１００からの除去）することが可能なデータであってもよい。すなわち、オブジェクト１０５の修正は、コンテナ１００に含まれる他のオブジェクト１０５を修正することなく実行することができる。
【００４３】
上述のシステムは、様々な手法を用いて、コンテナ１００からオブジェクト１０５の１つを解析のために選択してもよい。さらなる詳細は、図３と関連して説明する。
【００４４】
パラメータ決定モジュール１１０は、解析されるコンテナ１００から選択されたオブジェクト１０５のパラメータを決定し、決定されたパラメータを畳み込み生成モジュール１２０に転送するように構成される。パラメータのうち少なくとも１つは選択されたオブジェクト１０５同士の関数関係を特徴付ける。
【００４５】
システムの態様の一例においては、オブジェクト１０５のパラメータは、当該オブジェクト１０５のタイプ（例えば、画像、テキスト、メディアデータ、コンテナなど）を示すパラメータと、当該オブジェクト１０５のサイズを示すパラメータと、決定されたタイプを持つ選択されたオブジェクト１０５の合計サイズ（例えば、画像の合計サイズは1020  kb、テキストデータの合計サイズは12  kb、など）を示すパラメータと、コンテナ１００に含まれるすべてのオブジェクト１０５のうち当該オブジェクト１０５のインデックスとを含む。さらに、パラメータは、少なくとも、コンテナ１００のタイプ（例えば、ZIPアーカイブ、SWFファイルなど）と、コンテナ１００のサイズと、コンテナ内の選択されたオブジェクト１０５の数と、すべての選択されたオブジェクト１０５の合計サイズとである。
【００４６】
例えば、コンテナ"quarterly_report.xlsx"１００は画像"chart_01.jpg"１０５．６、"chart_02.jpg"１０５．７、およびＶＢＳｃｒｉｐｔ"viewer.vbs"１０５．８を含んでもよい。コンテナ１００内のオブジェクト１０５のパラメータは、下記の表１．１および表１．２に示すものであってもよい。
【表１】
2019192198.tif 000003
【表２】
2019192198.tif 000004
【００４７】
コンテナ１００内のオブジェクト１０５のサイズの合計に対するコンテナ１００のサイズの比から、さらに、コンテナ１００の展開の度合いが決定される。コンテナの展開の度合いは、（ｉ）コンテナ１００に格納されたオブジェクト１０５から選択された、タイプが決定されたオブジェクト１０５（コンテナ１００のタイプに依存するものを含む）の数を含む、オブジェクト１０５の数と、（ｉｉ）それらのオブジェクトを格納するコンテナ１００のサイズと関連する、選択されたオブジェクト１０５の合計サイズ（すなわち、コンテナ１００に格納されたオブジェクト１０５のうち何個が効果的にコンテナ１００から抽出されたか）とを特徴付ける数量であってもよい。算出された展開の度合いがあらかじめ与えられたしきい値未満の場合、コンテナ１００の展開が不完全であると判定され、したがって、そのコンテナ１００は、オブジェクト１０５を選定する別のアルゴリズムによる処理と、従来技術で公知の任意の方法による追加解析とのうち少なくとも一方にかけられる。
【００４８】
コンテナ１００から選択されたオブジェクト１０５のパラメータを決定するためのシステムの態様のさらにその他の例においては、トレーニングされたパラメータ決定用モデル１１１が使用され、パラメータ決定用モデル１１１は、決定された各パラメータが、解析されたコンテナが悪意あるものとして分類される確率を高めるように、オブジェクト１０５のパラメータを決定するための一組のルールを構成する（すなわち、解析されたオブジェクトの有害性に影響を及ぼすことができないか、または有害性を減じるパラメータは考慮されない）。
【００４９】
コンテナオブジェクトのパラメータは２つのグループに大別される。すなわち、コンテナまたはオブジェクトの有害度を、第１パラメータグループに基づいて算出することはできるが、コンテナまたはオブジェクトの有害度を、第２パラメータグループに基づいて算出することはできない。上述のシステムは、決定されたパラメータの一部を機械学習モデルのトレーニングに使用しないようにしてもよい。すなわち、第１グループからのそういったパラメータは考慮されない（コンピューティングリソースを含む）。すなわち、あるパラメータＸが第１グループからのパラメータでない場合、さらなる解析においては無視される。例えば、あるパラメータＸは、悪意あるオブジェクト１０５のデータを直接的に記述するパラメータ（例えば、ブラックリストからのハッシュサム）または間接的に記述するパラメータ（例えば、悪意あるインターネットプロトコル（Internet  Protocol：ＩＰ）アドレスに対するマスク）ではないので、トレーニングされたパラメータ決定用モデル１１１はパラメータＸを完全に無視し、パラメータＸによって記述されるオブジェクト１０５はコンテナ１００から抽出されない。他のパラメータＹは悪意あるオブジェクト１０５のデータを間接的に記述するので、他のパラメータの値次第では、一定の確率で、オブジェクト１０５がコンテナ１００から抽出される可能性がある。さらに、パラメータＺは悪意あるオブジェクト１０５のデータを直接的に記述するので、オブジェクト１０５はコンテナ１００から確実に抽出される。適切にトレーニングされたパラメータ決定用モデル１１１は、悪意あるオブジェクト１０５を記述するパラメータによって特徴付けられることができ、したがって、コンテナ１００の有害度に影響を及ぼすオブジェクト１０５だけをコンテナ１００から抽出する。
【００５０】
畳み込み生成モジュール１２０は、オブジェクト１０５の、パラメータ決定モジュール１１０によって決定されたパラメータに基づいて、各要素が、決定された一群のパラメータのうちそれ自身のパラメータに対応し、その要素の値がその決定されたパラメータを持つオブジェクト１０５の数に対応する、多次元ベクトルである畳み込み（畳み込みアルゴリズムの値）を生成すなわち形成し、そのように形成した畳み込みをモデルトレーニングモジュール１３０に転送するように構成される。
【００５１】
畳み込みを形成するためのアルゴリズムは、以下のように数学的に表現することができる。
【数１】
2019192198.tif 000005
ただし、
cは上記のように形成された畳み込み、
eiはi番目のパラメータのベース、
piはi番目のパラメータ、
npはオブジェクト１０５の決定されたパラメータの数、
N(pi)はi番目のパラメータが決定されたオブジェクト１０５の数である。
【００５２】
例えば、表１．２に示すパラメータから、以下の畳み込みが形成される。
【数２】
2019192198.tif 000006
ただし、cは各要素が１つの決定されたパラメータに依存するベクトルであり、
c[0]はコンテナ１００から選択された画像の数（すなわち、２つ）、
c[1]はコンテナ１００から選択された全画像の合計サイズ（すなわち、95232バイト）、
c[2]はコンテナ１００から選択されたスクリプトの数（すなわち、１つ）、
c[3]はコンテナ１００から選択された全スクリプトの合計サイズ（すなわち、2048バイト）である。
【００５３】
システムの態様の一例においては、畳み込みの形成のために用いるオブジェクト１０５のパラメータは、以下に示す、オブジェクト１０５の決定されたパラメータの関数の値であってもよい。
【数３】
2019192198.tif 000007
すなわち、畳み込みを、以下のように数学的に表現することができる。
【数４】
2019192198.tif 000008
ただし、
cは上記のように形成された畳み込み、
ejはパラメータのj番目の処理関数のベース、
｛pi｝はパラメータグループ、
nfはオブジェクト１０５の決定されたパラメータの指定された処理関数f(pi)の数、
fj(｛pi｝)はオブジェクト１０５の決定されたパラメータのj番目の処理関数、
N(fj)はj番目の関数の値が決定されたオブジェクト１０５の数である。
【００５４】
例えば、パラメータがオブジェクト１０５のサイズであり、オブジェクト１０５のサイズが[0x00000000,0xFFFFFFFF]の範囲内にある可能性がある場合、態様の一例における畳み込みを構成するベクトルは、少なくとも(4294967296+1)個の要素を含んでもよい（１個はオブジェクト１０５の合計サイズを格納し、4294967296個は指定されたサイズのオブジェクト１０５の数を格納する）。コンテナ１００とそのオブジェクト１０５に関する情報のそのような表現は冗長でリソースを大量に必要とするので、オブジェクト１０５のサイズの代わりに、オブジェクト１０５のサイズの関数f(pi)の値を用いることができる。例えば、関数が二進対数f=log2である場合、所与のサイズのオブジェクト１０５の数を格納するベクトルの4294967296個の要素に代わりに、32個のベクトル要素しか必要とされない（232=4294967296）。
【００５５】
システムの態様のさらにその他の例においては、関数f(｛pi｝)は、条件文を含むオブジェクトが含まれた数学モデルであってもよい。
【００５６】
例えば、パラメータがオブジェクト１０５のサイズであり、オブジェクト１０５のサイズが[0x00000000,0xFFFFFFFF]の範囲内にある可能性がある場合、オブジェクト１０５のパラメータは、オブジェクト１０５のサイズの関数f(pi)を用いて算出された所定範囲[0,max]内のインデックスであってもよい（ただし、maxは、ベクトルのサイズやベクトルの処理速度などを考慮して選択された、０より大きい所定値である）。
【数５】
2019192198.tif 000009
【００５７】
このように、所与のサイズのオブジェクト１０５の数を格納する4294967296個のベクトル要素に代わりに、５個のベクトル要素しか必要とされない。同様に、離散変換によって、任意の離散パラメータを別の離散パラメータ空間にマッピングしてもよい。
【００５８】
システムの態様のさらにその他の例においては、以前に実行されたコンテナ１００の解析に基づいて、定式化された畳み込みに含まれる情報量が所定サイズの畳み込みに対して最大化されるように、上記の離散変換のパラメータを選択してもよい。例えば、パラメータがオブジェクト１０５のサイズであり、オブジェクト１０５のサイズが[0x00000000,0xFFFFFFFF]の範囲内にある可能性がある場合、オブジェクト１０５のパラメータは、オブジェクト１０５のサイズの関数を用いて算出された、所定範囲[0,max]内のインデックス
【数６】
2019192198.tif 000010
であってもよい。
ただし、
fは連続パラメータpから離散パラメータインデックスへの離散変換の関数、
indexは離散パラメータ、
pは連続パラメータ、
｛limits｝は｛min,max｝の対の形で表現されたパラメータのセットで、連続パラメータpと離散パラメータインデックスの関係を表現するものである。
【００５９】
パラメータ｛min,max｝は、オブジェクト１０５のサイズが一様に分布するように選択される（(maxi-mini)=一定のとき分布は線形で、(maxi-mini)=ef(i)のとき、正規分布となる）。
【００６０】
モデルトレーニングモジュール１３０は、少なくとも、（あらかじめ定められた）安全なコンテナのために形成された１つの畳み込みと（あらかじめ定められた）悪意あるコンテナのために形成された１つの畳み込みに基づいて、悪意あるコンテナを検出するためのモデル１３１を機械学習させるように構成される。ここで、検出モデル１３１は、コンテナ１００の有害度を算出するためのアルゴリズムであり、コンテナ１００の有害度は、コンテナ１００が悪意あるものである確率を特徴付ける数値である。例えば、有害度は0.0から1.0の範囲の実数値であってもよい。ただし、0.0は解析されているコンテナが安全と保証されていることを意味し、1.0はコンテナが間違いなく悪意あるものである（すなわち、コンピュータ上で使用すると悪意ある動作が起きる）ことを意味する。さらにその他の例においては、解析されているコンテナの有害度を二項分類するために、シグモイド関数が用いられる。
【００６１】
システムの態様の一例においては、モデルトレーニングモジュール１３０は、算出されたコンテナ１００の有害度が所定のしきい値範囲内にある場合、悪意あるコンテナを検出するためのモデル１３１を再トレーニングして、再トレーニングされた悪意あるコンテナを検出するためのモデル１３１を用いて算出された有害度を、再トレーニングされていない悪意あるコンテナを検出するためのモデル１３１を用いて算出された有害度よりも高くするようにさらに構成される。
【００６２】
例えば、コンテナの有害度が[0.80〜0.85]の範囲内（例えば、0.805）であり、しきい値0.82からコンテナ１００が悪意あるものと判断される場合、悪意あるコンテナを検出するためのモデル１３１は再トレーニングされ、再トレーニングされた悪意あるコンテナを検出するためのモデル１３１を用いて算出された有害度が、上記の値0.805より大きく(例えば、0.815に)なるようにされる。
【００６３】
さらにその他の例においては、算出されたコンテナ１００の有害度が所定のしきい値よりも大きいときは、いつでも悪意あるコンテナを検出するためのモデル１３１が再トレーニングされる。例えば、コンテナ１００の有害度が0.2に等しい場合、再トレーニングされた悪意あるコンテナを検出するためのモデル１３１を用いて算出された度合いはその値0.2より大きく(例えば、0.21)、また、コンテナ１００の有害度が0.95に等しい場合、再トレーニングされた悪意あるコンテナを検出するためのモデル１３１を用いて算出された度合いはその値0.95より大きい(例えば、0.99)。すなわち、コンテナ１００の有害度が1.0に近いほど、悪意あるコンテナを検出するためのモデル１３１はより効果的に再トレーニングされる。
【００６４】
再トレーニングモジュール１４０は、所定のしきい値範囲内でパラメータ決定用モデル１１１を再トレーニングして、再トレーニングされたパラメータ決定用モデル１１１を用いて選択されたオブジェクト１０５のパラメータに基づいて算出された有害度を、再トレーニングされていないパラメータ決定用モデル１１１を用いて選択されたオブジェクト１０５のパラメータに基づいて算出された有害度よりも高くするように構成される。
【００６５】
システムの態様のさらにその他の例においては、再トレーニングモジュール１４０は、パラメータ決定用モデル１１１を再トレーニングして、少なくとも１つのコンテナ１００をパラメータ決定用モデル１１１のティーチングの選択対象に加え、少なくとも１つのコンテナ１００をパラメータ決定用モデル１１１のティーチングの選択対象から除外するように構成されてもよい。
【００６６】
態様のさらにその他の例においては、パラメータ決定用モデル１１１の再トレーニングは、少なくとも以下の機械学習方法を用いて行われる。教師あり学習（例えば、人工ニューラルネットワーク、誤り訂正法、誤差逆伝搬法、参照ベクトルによる方法など）および教師なし学習（例えば、α強化システム、γ強化システム、最近接法など）。
【００６７】
図２は、悪意あるコンテナを検出するためのモデルをティーチングする方法の構造図の例を示す。悪意あるコンテナを検出するためのモデルをティーチングする方法の構造図は、オブジェクトのパラメータを決定するステップ２１０と、畳み込みを形成するステップ２２０と、悪意あるコンテナを検出するためのモデルをティーチングするステップ２３０と、パラメータ決定用モデルを再トレーニングするステップ２４０とを含む。
【００６８】
ステップ２１０において、パラメータ決定モジュール１１０を用いて、少なくとも１つの安全なコンテナ１００．１と１つの悪意あるコンテナ１００．２から選択された各オブジェクト１０５の、当該オブジェクトと少なくとも１つの選択された（例えば、同一コンテナファイル内の）オブジェクトとの関数関係を一意的に特徴付けるパラメータが決定される。いくつかの態様においては、安全なコンテナと悪意あるコンテナは他のコンテナのサブコンテナであってもよく、個別かつ独立に解析される。
【００６９】
態様の一例においては、コンテナ１００は、少なくとも安全および悪意あるコンテナ１００を含むトレーニングの選択対象を構成するコンテナグループから、またはウィルス対策スキャン（コンテナ１００の有害性の判定）を行うように構成された、安全か悪意あるものかの類別が未知のコンテナ１００のグループから選択される。例えば、解析者が、パラメータ決定用モデル１１１または検出モデル１３１をトレーニングするために、コンテナのトレーニングの選択対象を用意してもよい。さらにその他の例においては、他の手段を用いて（例えば、ユーザやサイトから、クローラを用いて）収集された情報に基づいて、ウィルス対策スキャンを行うように構成された一群のコンテナを形成してもよい。
【００７０】
ステップ２２０において、畳み込み生成モジュール１２０を用いて、上記コンテナ１００から選択されたオブジェクト１０５の決定されたパラメータに基づき、コンテナ１００ごとに個別に畳み込みが形成される。畳み込みは、各要素が、決定されたパラメータのうちそれ自身の一意的パラメータに対応し、その要素の値がその決定されたパラメータを持つオブジェクト１０５の数に対応する、多次元ベクトルとして表現されてもよい。
【００７１】
ステップ２３０において、モデルトレーニングモジュール１３０を用いて、形成された畳み込みに基づき、悪意あるコンテナを検出するためのモデル１３１の機械学習が実施される。検出モデル１３１は、コンテナ１００の有害度を算出するためのアルゴリズムであり、コンテナ１００の有害度は、コンテナ１００が悪意あるものである確率を特徴付ける数値である。
【００７２】
ステップ２４０において、算出されたコンテナ１００の有害度が所定のしきい値よりも大きい場合、再トレーニングモジュール１４０を用いてパラメータ決定用モデル１１１が再トレーニングされ、再トレーニングされたパラメータ決定用モデル１１１を用いて選択されたオブジェクト１０５のパラメータに基づいて算出された有害度が再トレーニングされていないパラメータ決定用モデル１１１を用いて選択されたオブジェクト１０５のパラメータに基づいて算出された有害度よりも高くされる。
【００７３】
図３は、ウィルス対策スキャンタスクのスケジューリングのためのシステムの構造図の例を示す。ウィルス対策スキャンタスクのスケジューリングのためのシステムの構造図は、コンテナグループ３００と、解析されるコンテナ１００と、コンテナ内のオブジェクト１０５と、選択モジュール３１０と、パラメータ決定モジュール１１０と、パラメータ決定用モデル１１１と、畳み込み生成モジュール１２０と、検出モデル１３１と、パラメータ決定用モデルを再トレーニングするためのモジュール１４０と、解析モジュール３２０と、ウィルス対策スキャンタスクをスケジューリングするように構成されたウィルス対策モジュール３３０とを含む。
【００７４】
解析されるコンテナ１００、コンテナ内の少なくとも１つのオブジェクト１０５、パラメータ決定モジュール１１０、パラメータ決定用モデル１１１、畳み込み生成モジュール１２０、検出モデル１３１、および再トレーニングモジュール１４０の目的とレイアウトは上記の図１および図２で詳述された。
【００７５】
コンテナグループ３００は少なくとも２つのコンテナを含む。図３に示す図によって、コンテナグループ３００から選択されたコンテナの有害性を解析するためのコンピューティングリソースの配分の問題が解決される。
【００７６】
選択モジュール３１０は、解析されるコンテナ１００から少なくとも１つのコンテナ内のオブジェクト１０５を選択して、選択されたオブジェクト１０５をパラメータ決定モジュール１１０に転送するように構成される。システムの態様の一例においては、コンテナ内のオブジェクト１０５の、解析されるコンテナ１００からの選択は、任意の適切な公知の方法によって、当該コンテナ１００の構造に関する情報に基づいて行われる。システムの態様のさらにその他の例においては、オブジェクト１０５の選択は、コンテナのサイズが所定の数値範囲内にあるか否か、コンテナのタイプは明確か否か、コンテナの有害度は所定の数値範囲内にあるか否かなどの、所定の選択ルールに基づいて行われる。
【００７７】
上記コンテナ１００の有害度が算出済みであるとした場合、ウィルス対策スキャンの有効性を高め、第１種および第２種の誤りを少なくするために、さらなるコンテナ１００の有害性の解析が必要である。さらに、上述の有害度判定方法は高速で、コンピューティングリソースに対する要求度が低いが、有効性（検出率）は最も高いとは言えない。例えば、仮想環境、すなわち、「サンドボックス」の下でのＰＤＦ文書の動的解析が示すところでは、新規ファイルを開くとディスクに保存される可能性があり、ＰＤＦ文書が開かれたときにシェルコードが実行される可能性があるため、当該ＰＤＦ文書をさらにチェックする必要がある。
【００７８】
畳み込み生成モジュール１２０は、定式化された畳み込みを解析モジュール３２０に転送するように構成される。
【００７９】
解析モジュール３２０は、トレーニングされた検出モデル１３１を用いて形成された畳み込みに基づいて、解析されるコンテナ１００の有害度を算出し、算出した有害度を、ウィルス対策スキャンタスクのスケジューリングのためのウィルス対策モジュール３３０に転送するように構成される。
【００８０】
ウィルス対策モジュール３３０は、解析されるコンテナ１００に対するウィルス対策スキャンのパラメータを決定するように構成され、ウィルス対策スキャンのパラメータは、指定された時間内に上記コンテナ１００に対するウィルス対策スキャンを実行するために割り当てられる、ウィルス対策スキャンを実行するコンピューティングシステムのリソースを特徴付ける。態様の一例においては、ウィルス対策スキャンのパラメータは、コンテナグループ３００内のコンテナに対してウィルス対策スキャンを実施する順序、およびコンテナグループ３００内の各コンテナに対するウィルス対策スキャンの実施に割り当てられるコンピューティングリソースのうち、少なくとも一方を含んでもよい。いくつかの態様においては、ウィルス対策スキャンのパラメータは、コンテナグループ３００内の各コンテナに対するウィルス対策スキャンの実施開始時刻と終了時刻、およびコンテナグループ３００内の各コンテナに対するウィルス対策スキャンの方法のうち、少なくとも一方をさらに含んでもよい。
【００８１】
有害度が算出済みのコンテナのウィルス対策スキャンタスクのスケジューリングにおける目標は以下のとおりである。上述のコンテナの有害度判定方法の利点は、その速さと、コンピューティングリソースに対する要求度の低さである。このように、クリーンである（有害度が極めて低い）と保証されたコンテナと悪意ある（有害度が極めて高い）と確証されたコンテナを正確に検出することができる。残りのコンテナは、より低速でリソースをより大量に必要とするが、より信頼性のある、従来公知のチェック手段によってチェックする必要がある。加えて、コンテナがより悪意あると思われるほど、より迅速に（すなわち、より早急に）チェックすべきである。これがウィルス対策スキャンタスクのスケジューリングにおける目標である。上述の方法と公知のウィルス対策スキャン方法を併用することで、上記のウィルス対策スキャンを実施する際、ウィルス対策スキャンの全体的な実施速度を高め、コンピューティングリソースの消費量を減らしつつ、第１種および第２種の誤りを少なくすることができる。
【００８２】
例えば、解析されるコンテナの有害度が高いほど、そのコンテナはウィルス対策スキャン実行に対するコンテナの待ち行列の先頭により近い位置に配置されるであろう。待ち行列に新規に追加される有害度のより高いコンテナが、たとえそれより有害度の低いコンテナが長時間待機していたとしても、その有害度のより低いコンテナよりも早くウィルス対策スキャンを受けるように、ウィルス対策スキャン実行に対するコンテナの待ち行列自身が動的に変化してもよい。このように、他の出典から得られるような、有害度によってソートされる、コンテナの動的な待ち行列が発生する。
【００８３】
さらにその他の例においては、ウィルス対策スキャンの実施開始時刻と終了時刻は、（ｉ）コンテナのウィルス対策スキャンのための待ち行列内の全コンテナのウィルス対策スキャンが所定時間を超えない範囲で完了することと、（ｉｉ）上記ウィルス対策スキャンのためのコンピューティングリソースの使用が所定の目標値を超えないこととのうち少なくとも一方が成立するように算出される。
【００８４】
態様のさらにその他の例においては、コンテナグループ３００内のコンテナの一部をウィルス対策スキャンの実行の待ち行列から除外してもよい。例えば、１つのコンテナ（例えば、ＭＤ５）に基づいて算出されたチェックサムが「ホワイトリスト」（安全なコンテナに基づいて算出されたチェックサムのデータベース）にある場合、そのコンテナはウィルス対策スキャンの実行の待ち行列から除外され、安全であると見なされる。一方、当該チェックサムが「ブラックリスト」（悪意あるコンテナに基づいて算出されたチェックサムのデータベース）の中に見られる場合、そのコンテナもウィルス対策スキャンの実行の待ち行列から除外され、悪意あるものであると認定される。
【００８５】
図４は、ウィルス対策スキャンタスクのスケジューリングのための方法の構造図の例を示す。ウィルス対策スキャンタスクのスケジューリングのための方法の構造図は、コンテナ内のオブジェクトを選択するステップ４１０と、畳み込みを形成するステップ４２０と、有害度を算出するステップ４３０と、ウィルス対策スキャンタスクをスケジューリングするステップ４４０とを含む。
【００８６】
ステップ４１０において、選択モジュール３１０を用いて、解析されるコンテナ１００からコンテナ内の少なくとも１つのオブジェクト１０５が選択される。
【００８７】
態様の一例においては、コンテナ１００は、安全および悪意あるコンテナ１００を含むトレーニングの選択対象を構成するコンテナグループと、ウィルス対策スキャン（コンテナ１００の有害性の判定）を行うように構成された、安全か悪意あるものかの類別が未知のコンテナ１００のグループとのうち、少なくとも一方から選択される。例えば、解析者が、パラメータ決定用モデル１１１または検出モデル１３１をトレーニングするために、コンテナのトレーニングの選択対象を用意してもよい。
【００８８】
ステップ４２０において、畳み込み生成モジュール１２０を用いて、コンテナ内の選択されたオブジェクト１０５に基づき、畳み込みが形成される。いくつかの態様においては、ステップ４１０で選択されたオブジェクト１０５のパラメータに基づいて形成された畳み込みは、各要素が、決定された一群のパラメータのうちそれ自身のパラメータに対応し、その要素の値がその決定されたパラメータを持つオブジェクト１０５の数に対応する、多次元ベクトルであり、上記のように形成された畳み込みはモデルトレーニングモジュール１３０に転送される。
【００８９】
畳み込みを形成するためのアルゴリズムは、以下のように数学的に表現することができる。
【数７】
2019192198.tif 000011
cは上記のように形成された畳み込み、
eiはi番目のパラメータのベース、
piはi番目のパラメータ、
npはオブジェクト１０５の決定されたパラメータの数、
N(pi)はi番目のパラメータが決定されたオブジェクト１０５の数である。
【００９０】
ステップ４３０において、解析モジュール３２０を用いて、トレーニングされた検出モデル１３１を用いてステップ４２０で形成された畳み込みに基づいて、解析されるコンテナ１００の有害度が算出される。
【００９１】
ステップ４４０において、ウィルス対策スキャンタスクのスケジューリングのためのウィルス対策モジュール３３０を用いて、ステップ４３０で算出されたコンテナ１００の有害度に基づき、解析されるコンテナ１００に対するウィルス対策スキャンのパラメータが決定され、ウィルス対策スキャンのパラメータは、指定された時間内に上記コンテナ１００に対するウィルス対策スキャンを実行するために割り当てられる、ウィルス対策スキャンを実行するコンピューティングシステムのリソースを特徴付ける。
【００９２】
図５は、悪意あるコンテナファイルを検出するための機械学習モデルをトレーニングするためのシステムおよび方法の各態様を、本開示の態様の一例に従って実現できるコンピュータシステム２０を示すブロック図である。なお、コンピュータシステム２０は、例えば、上述したような図１〜図４に示す１つ以上のモジュールを実現することができる。
【００９３】
図示のように、コンピュータシステム２０（パーソナルコンピュータまたはサーバでもよい）は、中央処理装置２１、システムメモリ２２、および、中央処理装置２１に付随するメモリを含む各種システム構成要素を接続するシステムバス２３を含んでいる。当業者には理解されるように、システムバス２３は、バスメモリまたはバスメモリコントローラ、周辺バス、および、他のいかなるバスアーキテクチャとも相互作用可能なローカルバスを備えていてもよい。システムメモリは固定記憶装置（ＲＯＭ）２４とランダムアクセスメモリ（ＲＡＭ）２５を含んでいてもよい。基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４を用いてオペレーティングシステムをロードするときの手順等の、コンピュータシステム２０の要素間の情報転送の基本的手順を記憶していてもよい。
【００９４】
また、コンピュータシステム２０は、データを読み書きするためのハードディスク２７、リムーバブル磁気ディスク２９を読み書きするための磁気ディスクドライブ２８、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光媒体等のリムーバブル光学ディスク３１を読み書きするための光学ドライブ３０を備えていてもよい。ハードディスク２７、磁気ディスクドライブ２８、および光学ドライブ３０は、それぞれ、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、および光学ドライブインターフェース３４を介して、システムバス２３と接続されている。これらのドライブおよび対応するコンピュータ情報媒体は、コンピュータシステム２０のコンピュータ命令、データ構造体、プログラムモジュール、およびその他のデータを記憶する、独立の電源で動作するモジュールである。
【００９５】
態様の一例は、コントローラ５５を介してシステムバス２３と接続されたハードディスク２７、リムーバブル磁気ディスク２９、およびリムーバブル光学ディスク３１を使用するシステムを含んでいる。コンピュータで読み取り可能な形式でデータの保存が可能な任意の種類の媒体５６（ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（ＲＡＭ）等）を利用できることは、当業者には理解されるであろう。
【００９６】
コンピュータシステム２０はファイルシステム３６を有しており、その中には、オペレーティングシステム３５の他に、追加的なプログラムアプリケーション３７、その他のプログラムモジュール３８、およびプログラムデータ３９を保存することができる。コンピュータシステム２０のユーザはキーボード４０、マウス４２、あるいは、その他、例えば、マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を含むがそれらに限られない当業者に公知の入力装置を使用して、コマンドおよび情報を入力することができる。そのような入力装置は、一般に、コンピュータシステム２０に、システムバスと接続されたシリアルポート４６を通して差し込まれるが、当業者は、入力装置を、例えば、限定はされないが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス（ＵＳＢ）等の他の方法で接続してもよいことを理解するであろう。モニタ４７または他の種類の表示装置も、ビデオアダプタ４８等のインターフェースを介してシステムバス２３と接続してもよい。パーソナルコンピュータは、モニタ４７に加えて、スピーカ、プリンタ等の周辺出力装置（図示せず）を備えてもよい。
【００９７】
コンピュータシステム２０を、１台以上のリモートコンピュータ４９とのネットワーク接続を用いて、ネットワーク環境下で動作させてもよい。リモートコンピュータ４９は、上記コンピュータシステム２０の特徴説明の中で述べた要素のほとんどまたは全部を備えたローカルコンピュータワークステーションまたはサーバであってもよい。例えば、ルータ、ネットワークステーション、ピアデバイス、その他のネットワークノード等を含むがそれらに限られないその他の装置がコンピュータネットワークの中に存在してもよい。
【００９８】
ネットワーク接続によって、ローカルエリアコンピュータネットワーク（ＬＡＮ）５０および広域コンピュータネットワーク（ＷＡＮ）を形成することができる。そのようなネットワークは企業コンピュータネットワークや社内ネットワークで利用され、一般に、インターネットにアクセスできる。ＬＡＮおよびＷＡＮのネットワークにおいては、パーソナルコンピュータ２０は、ネットワークアダプタまたはネットワークインターフェース５１を介してローカルエリアネットワーク５０と接続されている。ネットワークを利用する場合、コンピュータシステム２０は、インターネットのような広域コンピュータネットワークとの通信を可能にする、モデム５４、または、その他の当業者に公知のモジュールを採用してもよい。モデム５４は、内部装置であっても外部装置であってもよいが、シリアルポート４６によってシステムバス２３と接続してもよい。上記ネットワーク接続は、１台のコンピュータが通信モジュールを使って他のコンピュータとの接続を確立する数多くの広く理解されている方法の非限定例であることは、当業者には理解されるであろう。
【００９９】
様々な態様において、本明細書で説明したシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組み合わせの中に実現されてもよい。ソフトウェア中に実現された場合、方法は、非一時的なコンピュータ読み取り可能な媒体上に、１つ以上の命令またはコードとして記憶されてもよい。コンピュータ読み取り可能な媒体には、データストレージが含まれる。一例として、限定はされないが、そのようなコンピュータ読み取り可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、あるいは他の種類の電気的、磁気的、または光学的記憶媒体、もしくは、所望のプログラムコードを命令やデータ構造体の形で運搬または記憶するために利用可能で、汎用コンピュータのプロセッサからアクセス可能な、その他の任意の媒体を含むことができる。
【０１００】
様々な態様において、本開示で説明したシステムおよび方法を、モジュールの意味で扱うことができる。本明細書で使われている用語「モジュール」とは、例えば、特定用途向け集積回路（ＡＳＩＣ）やフィールドプログラマブルゲートアレイ（ＦＰＧＡ）によるハードウェアを用いて実現されるか、あるいは、例えば、マイクロプロセッサシステムと、（実行時に）マイクロプロセッサシステムを専用デバイスに変換するモジュールの機能性を実現する一連の命令によるハードウェアとソフトウェアの組み合わせとして実現された、実世界の装置、構成要素、または構成要素の配置のことである。モジュールは、特定の機能をハードウェアのみで促進し、その他の機能をハードウェアとソフトウェアの組み合わせによって促進する、上記２つの組み合わせとしても実現できる。特定の実現形態においては、少なくとも一部、場合によっては全部のモジュールが、汎用コンピュータのプロセッサ上（例えば、上記図５で詳説されているもの）で実行されてもよい。したがって、各モジュールは各種の適切な構成の中に実現可能であり、本明細書に例示したいかなる特定の実現形態にも限定されるべきではない。
【０１０１】
明確化のために、各態様の定型的な特徴のすべてが本明細書に示されているわけではない。本開示の実際の実現形態のいかなる開発においても、開発者の具体的目的を達成するために、実現形態に特有の多くの決定をする必要があり、具体的目的は、実現形態ごとおよび開発者ごとに異なるということが理解されるであろう。そのような開発努力は複雑で多くの時間を要するものであるが、それにもかかわらず、本開示から利益を得る当業者にとって、定型的な技術的取り組みであることが理解される。
【０１０２】
さらに、本明細書で用いている表現や用語は説明上のものであって、限定のためではなく、本明細書の用語や表現は、当業者が、当業者の知識と組み合わせて、本明細書が提供する教示や手引きの観点から解釈すべきものと理解すべきである。加えて、明示的記載がない限り、本明細書や請求の範囲におけるいかなる用語も、一般的でない、あるいは特別な意味を持つものとみなされることは意図されていない。
【０１０３】
本明細書に開示された様々な態様は、本明細書で例示により言及された公知のモジュールと均等な現在および将来の公知の均等物を包含する。さらに、態様および応用例を図示し、かつ、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの変更が可能であることは、この開示の利益を有する当業者には明らかであろう。
【図１】
2019192198.tif 000012
【図２】
2019192198.tif 000013
【図３】
2019192198.tif 000014
【図４】
2019192198.tif 000015
【図５】
2019192198.tif 000016
【外国語明細書】
2019192198000001.pdf