(57)【要約】      （修正有）【課題】悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステム及び方法を提供する。【解決手段】方法は、悪意のあるファイルを選択するステップと、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択するステップと、ハードウェアプロセッサを使用して、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成するステップと、ハードウェアプロセッサを使用して、学習モデルから悪意のあるファイルの検出規則を生成するステップと、ハードウェアプロセッサを使用して、未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを学習モデルを使用して判断するステップと、検出規則を満たすと判断した場合、ハードウェアプロセッサを使用して、未知のファイルを悪意のあるものとして識別するステップと、を含む。【選択図】図３
2020009415.tif 000002
【特許請求の範囲】
【請求項１】
悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別する方法であって、
ハードウェアプロセッサを使用して、有害であることが知られている複数の悪意のあるファイルの中から前記悪意のあるファイルを選択するステップと、
前記ハードウェアプロセッサを使用して、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択するステップと、
前記ハードウェアプロセッサを使用して、前記悪意のあるファイルおよび前記複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成するステップと、
前記ハードウェアプロセッサを使用して、前記学習モデルから悪意のあるファイルの検出規則を生成するステップと、
前記ハードウェアプロセッサを使用して、未知のファイルの属性が悪意のあるファイルの前記検出規則を満たすかどうかを前記学習モデルを使用して判断するステップと、
前記検出規則を満たすと判断した場合、前記ハードウェアプロセッサを使用して、前記未知のファイルを悪意のあるものとして識別するステップと
を含む、方法。
【請求項２】
前記ニューラルネットワークを訓練する前に前記ニューラルネットワークのパラメータを選択し、修正するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記パラメータは、層の数、前記層内のニューロンの数、損失関数、ニューロン間の結合係数、および前記損失関数の係数を含む、請求項２に記載の方法。
【請求項４】
前記損失関数誤差勾配法に基づいて前記損失関数を選択するステップ
をさらに含む、請求項３に記載の方法。
【請求項５】
前記学習モデルを訓練することは、
前記悪意のあるファイルの第１の複数の属性を含む第１のベクトルを形成することと、
前記悪意のあるファイルを識別した結果に影響を及ぼす前記第１の複数の属性から複数の重要な属性を決定することと、
前記複数の安全なファイルの第２の複数の属性を含む第２のベクトルを形成することと、
悪意のあるファイルの検出に重要ではない属性を選択するために前記第２のベクトルに基づいて前記ニューラルネットワークの第１の層を訓練することと
を含む、請求項１に記載の方法。
【請求項６】
前記複数の安全なファイルに前記学習モデルを適用することによって前記複数の安全なファイルのうちの１つが有害であるかどうかを判断するステップと、
前記複数の安全なファイルのうちの１つが有害であると判断した場合、前記学習モデルを修正し、前記ニューラルネットワークを使用して前記学習モデルを再訓練するステップと
をさらに含む、請求項５に記載の方法。
【請求項７】
前記ニューラルネットワークから生じる結果属性ベクトルに基づいて前記悪意のあるファイルの前記検出規則を生成するステップ
をさらに含む、請求項６に記載の方法。
【請求項８】
前記検出規則は少なくとも１つの識別条件を含む、請求項７に記載の方法。
【請求項９】
前記第１のベクトルを前記ニューラルネットワークの外層の行列に変換するステップと、
前記ニューラルネットワークの行列を、ファイルの有害性係数を識別する結果属性ベクトルにマップするステップと
をさらに含む、請求項５に記載の方法。
【請求項１０】
悪意のあるファイルの前記検出に重要ではない前記属性は、前記有害性係数の前記識別を改善することなく計算リソースを求める属性である、請求項９に記載の方法。
【請求項１１】
悪性を判断する他の方法に基づいて前記未知のファイルが悪意のあるものであるかどうかを判断するステップと、
前記学習モデルを使用して前記未知のファイルが悪意のあるものであると判断し、悪性を判断する前記他の方法を使用して前記未知のファイルが安全であると判断した場合、前記学習モデルおよび前記検出規則における誤警報を識別するステップと、
前記未知のファイルを前記複数の安全なファイルに追加するステップと、
新しく選択された損失関数および前記複数の安全なファイルに基づいて前記学習モデルの前記ニューラルネットワークを再訓練するステップと
をさらに含む、請求項１に記載の方法。
【請求項１２】
前記ニューラルネットワークを使用して、ファイルが有害であるとされる確率に関する有害性係数を識別する結果属性ベクトルを決定するステップ
をさらに含む、請求項１に記載の方法。
【請求項１３】
悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムであって、
有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択し、
安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、
前記悪意のあるファイルおよび前記複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、
前記学習モデルから悪意のあるファイルの検出規則を生成し、
前記学習モデルを使用して未知のファイルの属性が悪意のあるファイルの前記検出規則を満たすかどうかを判断し、
前記検出規則を満たすと判断した場合、前記未知のファイルを悪意のあるものとして識別する
ように構成されたハードウェアプロセッサ
を含む、システム。
【請求項１４】
前記ハードウェアプロセッサは、
前記ニューラルネットワークを訓練する前に前記ニューラルネットワークのパラメータを選択し、修正する
ようにさらに構成される、請求項１３に記載のシステム。
【請求項１５】
前記パラメータは、層の数、前記層内のニューロンの数、損失関数、ニューロン間の結合係数、および前記損失関数の係数を含む、請求項１４に記載のシステム。
【請求項１６】
前記学習モデルを訓練することは、
前記悪意のあるファイルの第１の複数の属性を含む第１のベクトルを形成することと、
前記悪意のあるファイルを識別した結果に影響を及ぼす前記第１の複数の属性から複数の重要な属性を決定することと、
前記複数の安全なファイルの第２の複数の属性を含む第２のベクトルを形成することと、
悪意のあるファイルの検出に重要ではない属性を選択するために前記第２のベクトルに基づいて前記ニューラルネットワークの第１の層を訓練することと
を含む、請求項１３に記載のシステム。
【請求項１７】
前記ハードウェアプロセッサは、
前記複数の安全なファイルに前記学習モデルを適用することによって前記複数の安全なファイルのうちの１つが有害であるかどうかを判断し、
前記複数の安全なファイルのうちの１つが有害であると判断した場合、前記学習モデルを修正し、前記ニューラルネットワークを使用して前記学習モデルを再訓練する
ようにさらに構成される、請求項１６に記載のシステム。
【請求項１８】
前記ハードウェアプロセッサは、
前記ニューラルネットワークから生じる結果属性ベクトルに基づいて前記悪意のあるファイルの前記検出規則を生成する
ようにさらに構成される、請求項１６に記載のシステム。
【請求項１９】
前記ハードウェアプロセッサは、
前記第１のベクトルを前記ニューラルネットワークの外層の行列に変換し、
前記ニューラルネットワークの行列を、ファイルの有害性係数を識別する結果属性ベクトルにマップする
ようにさらに構成される、請求項１６に記載のシステム。
【請求項２０】
前記ハードウェアプロセッサは、
悪性を判断する他の方法に基づいて前記未知のファイルが悪意のあるものであるかどうかを判断し、
前記学習モデルを使用して前記未知のファイルが悪意のあるものであると判断し、悪性を判断する前記他の方法を使用して前記未知のファイルが安全であると判断した場合、前記学習モデルおよび前記検出規則における誤警報を識別し、
前記未知のファイルを前記複数の安全なファイルに追加し、
新しく選択された損失関数および前記複数の安全なファイルに基づいて前記学習モデルの前記ニューラルネットワークを再訓練する
ようにさらに構成される、請求項１３に記載のシステム。
【請求項２１】
前記ハードウェアプロセッサは、
前記ニューラルネットワークを使用して、ファイルが有害であるとされる確率に関する有害性係数を識別する結果属性ベクトルを決定する
ようにさらに構成される、請求項１３に記載のシステム。
【請求項２２】
悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するための命令が格納されている非一時的コンピュータ可読媒体であって、前記命令は、
有害であることが知られている複数の悪意のあるファイルの中から前記悪意のあるファイルを選択し、
安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、
前記悪意のあるファイルおよび前記複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、
前記学習モデルから悪意のあるファイルの検出規則を生成し、
前記学習モデルを使用して未知のファイルの属性が悪意のあるファイルの前記検出規則を満たすかどうかを判断し、
前記検出規則を満たすと判断した場合、前記ハードウェアプロセッサを使用して、前記未知のファイルを悪意のあるものとして識別する、
各手順を含む、非一時的コンピュータ可読媒体。
【請求項２３】
前記学習モデルを訓練することは、
前記悪意のあるファイルの第１の複数の属性を含む第１のベクトルを形成することと、
前記悪意のあるファイルを識別した結果に影響を及ぼす前記第１の複数の属性から複数の重要な属性を決定することと、
前記複数の安全なファイルの第２の複数の属性を含む第２のベクトルを形成することと、
悪意のあるファイルの検出に重要ではない属性を選択するために前記第２のベクトルに基づいて前記ニューラルネットワークの第１の層を訓練することと
を含む、請求項２２に記載の媒体。
【請求項２４】
前記命令は、
悪性を判断する他の方法に基づいて前記未知のファイルが悪意のあるものであるかどうかを判断し、
前記学習モデルを使用して前記未知のファイルが悪意のあるものであると判断し、悪性を判断する前記他の方法を使用して前記未知のファイルが安全であると判断した場合、前記学習モデルおよび前記検出規則における誤警報を識別し、
前記未知のファイルを前記複数の安全なファイルに追加し、
新しく選択された損失関数および前記複数の安全なファイルに基づいて前記学習モデルの前記ニューラルネットワークを再訓練する、
各手順をさらに含む、請求項２２に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、悪意のあるファイルを識別するための解決策に関し、より詳細には、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを検出するシステムおよび方法に関する。
【背景技術】
【０００２】
目下、悪意のあるソフトウェアに感染した電子デバイスのユーザのデータや実際のユーザに危害を加えるように設計された、悪意のあるソフトウェアの量が増加している（コンピュータウイルス、トロイの木馬、インターネットワームなど）。危害は、ユーザファイルの破損または削除、ユーザのコンピューティングデバイスのリソースを利用した暗号通貨の「マイニング」、機密ユーザデータ（通信、画像、ログイン、パスワード、銀行カードデータ）の盗取、および、その他の行為によって発生し得る。さらに、悪意のあるソフトウェアは、作成者がセキュリティアプリケーションに対して新しい攻撃方法や防御方法を使うため、絶えず変化している。使用される様々な手法として、例えば、悪意のあるコードの難読化（すなわち、プログラムの元のテキストまたは実行可能コードの機能は維持されるものの、たとえば、解析、動作アルゴリズムの理解、および、逆コンパイル時の改変などが損なわれること）や、エミュレーション対抗手段の使用（例えば、悪意のあるソフトウェアはエミュレータで実行されていることを認識する機能を備えており、悪意のあるアクティビティを顕在化させない）がある。
【０００３】
さらに、悪意のあるソフトウェアは多くの場合、悪意のあるアクティビティをすぐに、または、一度に全部顕在化させるのではなく、多数の（数百万オーダーの）ＡＰＩ呼び出しおよび膨大な（数十億オーダーの反復の）サイクルを行い、起動直後の一定時間にわたって（例えば、“Ｓｌｅｅｐ（）”関数を使用して１時間にわたって）その動作を停止する。現在のユーザのコンピューティングデバイスは性能が高く、マルチコアプロセッサを（またはマルチプロセッサシステムも）活用できるため、ユーザはコアのうちの１つの作業負荷に気付かないかまたは注意を払わない可能性がある。さらに、ユーザは一般に、ユーザがデバイスを電源投入し、起動し、または始動させたときから１時間を超えてデバイスを使用する。したがって、悪意のあるソフトウェアは、起動されても、そのアクティビティをすぐに顕在化させる必要がない。
【０００４】
「標的型」攻撃（Ａｄｖａｎｃｅｄ  Ｐｅｒｓｉｓｔｅｎｔ  Ｔｈｒｅａｔ、ＡＰＴ）と呼ばれる攻撃もある。これらの攻撃は、組織および企業全体に対して実行され、そのインフラストラクチャに対してソフトウェアの脆弱性および「ソーシャルエンジニアリング」の方法を悪用することによって実現される。このような攻撃は、個別にはいかなる悪意のあるアクティビティも顕在化させないが、攻撃対象の企業のインフラストラクチャに侵入すると、単純なアプリケーションが連動して実行され、相互に合わさって悪意のある機能を形成し、攻撃対象の企業に危害を加えるいくつかの単純なアプリケーションを使用して行われる例が知られている。
【０００５】
上記の技法に対抗するために、セキュリティアプリケーション（ウイルス対策アプリケーションなど）の作成者は、ファイルを安全に実行するための隔離された環境としての仮想マシンを使用する技法を採用する。このような仮想マシンは「サンドボックス」と呼ばれることが多い。ハイパーバイザは、仮想マシンの実行を制御し、多くの場合、仮想マシンで実行されているアプリケーションによって呼び出される関数をインターセプトする機構を含む。
【０００６】
セキュリティアプリケーションは、悪意のあるソフトウェアを識別するための様々な方法、例えば、シグネチャおよび／または発見的解析などの技術を用いることに留意されたい。解析の過程でファイルの有害性が特定されていない場合、ファイルは、その挙動を解析するためにセキュリティアプリケーションによって上記の仮想マシンに送られ得る（例えば、信頼できるソフトウェア製造者のデジタルシグネチャがない場合）。送られたファイルは次いで仮想マシンで実行され、そこでアプリケーションの動作およびアプリケーション内の様々な関数呼び出しの結果として発生するイベントがインターセプトされ、インターセプトされたイベントおよび動作に関する情報がログに格納され、後でセキュリティアプリケーションまたはコンピュータセキュリティの専門家が、悪意のあるソフトウェアを識別するためにこれを解析する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
さらに、悪意のあるソフトウェアを識別するためにニューラルネットを用いる方法が知られている。しかし、悪意のあるソフトウェアを識別する公知の方法では、悪意のあるものとして識別されたファイルが、１つ（単一のファイルサンプル）だけしか知られておらず、犯罪者らによって変更されることが稀な場合、識別の問題を効果的に解決することができない。こうしたファイルは、多くの場合（例えばＡＰＴ攻撃の場合）、信頼できる証明書によって署名されており、一義的に悪意のあるものであるとみなすことができない動作を行う可能性がある。例えば、．ＤＯＣファイルを開いて、変更を加えずに閉じ、データパケットまたは電子メールを送信するなどの動作である。こうした動作はセキュリティアプリケーションの観点からは完全に安全である（テキストファイルを開き、メッセージおよび／または電子メールを送信することができるプログラムは多い）が、その実行結果として、上記の開かれたファイルからの機密データの窃盗が可能になる。このような単一のファイルに基づいて、上記の単一のファイルと機能的に類似した他の悪意のあるファイルを識別することが望ましい。さらに、上記のＡＰＴ攻撃の場合のファイルの間接的な属性から、攻撃に使用されている他のファイルを識別することが必要である。
【課題を解決するための手段】
【０００８】
本開示は、１つの悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するという問題を解決することを可能にする。
【０００９】
本開示の態様は、悪意のあるファイルを識別する分野に関し、より具体的には、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムおよび方法に関する。
【００１０】
一態様では、一例示的方法は、ハードウェアプロセッサを使用して、有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択するステップと、ハードウェアプロセッサを使用して、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択するステップと、ハードウェアプロセッサを使用して、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成するステップと、ハードウェアプロセッサを使用して、学習モデルから悪意のあるファイルの検出規則を生成するステップと、ハードウェアプロセッサを使用して、未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを学習モデルを使用して判断するステップと、検出規則を満たすと判断した場合、ハードウェアプロセッサを使用して、未知のファイルを悪意のあるものとして識別するステップと、を含む。
【００１１】
別の態様では、本方法は、ニューラルネットワークを訓練する前にニューラルネットワークのパラメータを選択し、修正するステップをさらに含む。
【００１２】
本方法の別の態様では、パラメータは、層の数、層内のニューロンの数、損失関数、ニューロン間の結合係数、および損失関数の係数を含む。
【００１３】
別の態様では、本方法は、損失関数誤差勾配法に基づいて損失関数を選択するステップをさらに含む。
【００１４】
本方法の別の態様では、学習モデルを訓練することは、悪意のあるファイルの第１の複数の属性を含む第１のベクトルを形成することと、悪意のあるファイルを識別した結果に影響を及ぼす第１の複数の属性から複数の重要な属性を決定することと、複数の安全なファイルの第２の複数の属性を含む第２のベクトルを形成することと、悪意のあるファイルの検出に重要ではない属性を選択するために第２のベクトルに基づいてニューラルネットワークの第１の層を訓練することと、を含む。
【００１５】
別の態様では、本方法は、複数の安全なファイルに学習モデルを適用することによって複数の安全なファイルのうちの１つが有害であるかどうかを判断するステップと、複数の安全なファイルのうちの１つが有害であると判断した場合、学習モデルを修正し、ニューラルネットワークを使用して学習モデルを再訓練するステップと、をさらに含む。
【００１６】
別の態様では、本方法は、ニューラルネットワークから生じる結果属性ベクトルに基づいて悪意のあるファイルの検出規則を生成するステップをさらに含む。
【００１７】
本方法の別の態様では、検出規則は少なくとも１つの識別条件を含む。
【００１８】
別の態様では、本方法は、第１のベクトルをニューラルネットワークの外層の行列に変換するステップと、ニューラルネットワークの行列を、ファイルの有害性係数を識別する結果属性ベクトルにマップするステップと、をさらに含む。
【００１９】
本方法の別の態様では、悪意のあるファイルの検出に重要ではない属性は、有害性係数の識別を改善することなく計算リソースを求める属性である。
【００２０】
別の態様では、本方法は、悪性を判断する他の方法に基づいて未知のファイルが悪意のあるものであるかどうかを判断するステップと、学習モデルを使用して未知のファイルが悪意のあるものであると判断し、悪性を判断する他の方法を使用して未知のファイルが安全であると判断した場合、学習モデルおよび検出規則における誤警報を識別するステップと、未知のファイルを複数の安全なファイルに追加するステップと、新しく選択された損失関数および複数の安全なファイルに基づいて学習モデルのニューラルネットワークを再訓練するステップと、をさらに含む。
【００２１】
別の態様では、本方法は、ニューラルネットワークを使用して、ファイルが有害であるとされる確率に関する有害性係数を識別する結果属性ベクトルを決定するステップ、をさらに含む。
【００２２】
本開示の一態様によれば、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムが提供され、本システムは、有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択し、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、学習モデルから悪意のあるファイルの検出規則を生成し、学習モデルを使用して未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを判断し、検出規則を満たすと判断した場合、未知のファイルを悪意のあるものとして識別する、ように構成されたハードウェアプロセッサを含む。
【００２３】
一例示的態様では、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するための命令が格納されている非一時的コンピュータ可読媒体が提供され、当該命令は、有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択し、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、学習モデルから悪意のあるファイルの検出規則を生成し、学習モデルを使用して未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを判断し、検出規則を満たすと判断した場合、ハードウェアプロセッサを使用して、未知のファイルを悪意のあるものとして識別する、各手順を含む。
【００２４】
例示的態様の上記の簡略化された概要は、本開示の基本的な理解を提供するものである。この概要は、企図されるすべての態様の広範な概説ではなく、すべての態様の重要なまたは不可欠の要素を特定するためのものでも、本開示のいずれかまたはすべての態様の範囲を画するためのものでもない。この概要の唯一の目的は、以下の本開示のより詳細な説明の前置きとして、１つまたは複数の態様を簡略化された形で提示することである。このため、本開示の１つまたは複数の態様は、特許請求の範囲に記載され、例示的に示される特徴を含む。
【００２５】
添付の図面は、本明細書に組み入れられて本明細書の一部を構成し、本開示の１つまたは複数の例示的態様を示し、詳細な説明と共に、本開示の原理および実施態様を説明するために使用される。
【図面の簡単な説明】
【００２６】
【図１】図１は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムを示すブロック図である。
【図２】図２は、関数呼び出しのインターセプトを使用して脆弱性を識別する方法を示すフロー図である。
【図３】図３は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別する方法の構造を示すフロー図である。
【図４】図４は、本開示の態様を実施することができる汎用コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【００２７】
例示的態様は、本明細書では、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステム、方法、およびコンピュータプログラム製品の文脈で説明されている。当業者は、以下の説明が例示にすぎず、いかなる点でも限定を意図するものではないことを理解するであろう。他の態様は、本開示の恩恵を受ける当業者には容易に想起されるであろう。次に、添付の図面に示す例示的態様の実施態様を詳しく参照する。図面および以下の説明では、同じ又は同様の要素については可能な範囲で同じ参照符号を使用する。
【００２８】
本開示では、システムの要素は、集積超小型回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ（特定用途向け集積回路）、ＡＳＩＣ）やプログラマブル・ゲート・アレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ（フィールド・プログラマブル・ゲート・アレイ）、ＦＰＧＡ）などのハードウェアを使用して、または例えば、マイクロプロセッサシステムとソフトウェア命令セットなどのソフトウェアとハードウェアの組み合わせ、ならびにニューロモーフィックチップ（ニューロシナプティックチップ）の形で実現された実際のデバイス、システム、構成要素、構成要素のグループであると理解される。システムのこれらの要素の機能は、ハードウェアのみによって実現することもでき、また、システムの要素の機能の一部がソフトウェアによって実現され、一部がハードウェアによって実現される組み合わせの形でも実現することもできる。いくつかの例示的態様では、要素の一部または全部が（図４に示すような）汎用コンピュータのプロセッサ上で実装され得る。システムの構成要素（各要素）は、単一のコンピューティングデバイス内で実現されてもよく、またはいくつかの相互接続されたコンピューティングデバイス間に分散されてもよい。
【００２９】
図１は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムを示すブロック図である。
【００３０】
１つのファイルに基づいて悪意のあるファイルを識別するためのシステム１００は、選択モジュール１１０と、学習モジュール１２０と、解析モジュール１３０とからなる。
【００３１】
一般的な場合には、選択モジュール１１０はリモートサーバ上でまたはクラウドサービスの形で実行される。選択モジュール１１０は、悪意のあるファイル群の中から１つの悪意のあるファイル１６０を選択する。一般的な場合における選択されたファイルは、本システムの作用効果として、他のファイルを悪意のあるものとして認識するために用いられるサンプルである。悪意のあるファイル群は、悪意のあるものとして以前認識されたファイルのグループである。一例示的態様では、上記のファイルは解析モジュール１３０によって悪意のあるものとして認識される。別の例示的態様では、上記のファイルはコンピュータセキュリティの専門家によって悪意のあるものとして認識される。一般的な場合、その有害性は、先行技術で知られている方法（ヒューリスティック解析やシグネチャ解析など）によって識別することができる。一例示的態様では、選択モジュール１１０は、悪意のあるファイルを全体として選択するのではなく、その個々の部分を１つまたは複数選択する。例えば、（スクリプトファイルの場合には）実行可能コードまたはテキストコードのみを含むファイルの部分や、リソース（画像、文字列）を含まない部分や、犯罪者によって追加された難読化コードを含まない部分が選択される。
【００３２】
さらに、選択モジュール１１０は、安全なファイル群の中から少なくとも２つのファイルを選択する。安全なファイルは、（コンピュータセキュリティの専門家によって、または、解析モジュール１３０によって）悪意のあるものとして認識されていないファイルである。一例示的態様では、ファイル群全体が選択され得る。別の例示的態様では、ファイルは、選択された悪意のあるファイルと安全なファイルの両方に対する様々な異なる基準および基準の組み合わせによって選択され得る。例えば、ユーザのコンピュータ上で１００００を超えるコピーが普及しているが、ファイルのサイズが４キロバイト未満である、（選択された悪意のあるファイルと同じ種類の）安全なテキスト・スクリプト・ファイルが選択される。一例示的態様では、選択モジュール１１０は、上述したのと同様に、安全なファイルを全体として選択するのではなく、その部分を選択する。
【００３３】
一般的な場合には、悪意のあるファイル群と安全なファイル群はデータベース１９０に格納される。
【００３４】
一例示的態様では、ファイル（悪意のあるファイルおよび安全なファイル）を選択した結果は、ファイル群内における当該ファイルの識別子であり得る。
【００３５】
一般的な場合には、選択されたファイル、またはそれらの部分、またはそれらの識別子は、選択モジュール１１０によって学習モジュール１２０に送られる。
【００３６】
学習モジュール１２０は、機械学習法に基づいて、ニューラルネット（以後、訓練済みニューラルネット）を利用する学習モデルを生成（作成）する。一般的な場合には、勾配に基づく決定木ベースの勾配ブースティング（決定木ベースの勾配ブースティング）、決定木（英語  ｄｅｃｉｓｉｏｎ  ｔｒｅｅｓ）、最近隣法ｋＮＮ（英語  Ｋ−ｎｅａｒｅｓｔ  ｎｅｉｇｈｂｏｒ  ｍｅｔｈｏｄ）、メソッド・サポート・ベクター（英語  ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅ、ＳＶＭ）を含む様々な機械学習法が使用される。学習モジュール１２０は、ニューラルネットの少なくとも以下のパラメータを選択する：層の数、層内のニューロンの数、および損失関数（例えば、分類と関連付けられた損失関数）。特定の例示的態様では、学習モジュール１２０は、ニューロン間の結合係数（重み）と損失関数の係数とをさらに選択する。
【００３７】
特定の態様では、誤差逆伝搬の方法が使用される。この機械学習の方法は、多層ニューラルネットの機能の誤差を最小限に抑えることを特徴とする反復勾配法である。
【００３８】
一般的な学習モジュール１２０の動作が図２に提示されている。
【００３９】
学習モジュール１２０は、悪意のあるファイル１６０またはその部分から選び出されたＮ属性を含むベクトルｐｉｎ［Ｎ］２２０を形成する。一例示的態様における悪意のあるファイル１６０の属性は、悪意のあるファイル１６０のメタデータ（例えば、サイズ、作成および／または修正の時刻、属性、アクセス権）の中から選び出される。別の例示的態様では、悪意のあるファイル１６０のデータに基づいて属性を選び出し、悪意のあるファイル１６０のコンテンツの解析を行う。例えば、証明書の存在、バイトシーケンス、コード内の特定の関数の呼び出しなどについて解析を行う。
【００４０】
一般的な場合における訓練済みニューラルネット１４０の動作の結果として、Ｑ個の結果属性を含む、結果属性ベクトルｐｏｕｔ［Ｑ］２４０が生成される。一態様では、Ｑ個の結果属性は、ニューラルネットワーク１４０によって分類されるデータを特徴付ける最も重要なデータである。ニューラルネットワークの動作の結果として、一般に、（例えば、ファイルのマルウェアを導入する）最も重要な属性が様々な属性（例えば、ファイル）から選択される。
【００４１】
特定の態様では、悪意のあるファイルを識別する問題を解決するために、結果属性ベクトルｐｏｕｔ［１］２４０は１の次元を有し、数値、すなわち有害性係数を含む。有害性係数は、ファイルが有害であるとされる確率（例えば０から１）を表し、有害性係数が高いほど、この確率は高くなる。
【００４２】
訓練済みニューラルネット１４０を使用してファイルの有害性係数を決定する問題は、Ｋ個の未知数を有する連立方程式を解くことに帰着し、これは数学的に行列乗算ＭＫ×Ｋとして表すことができる。ニューラルネット２３０は少なくとも３つの層（２つの外層と１つの隠れ層）を含む。最初の（入力）外層で、悪意のあるファイルの属性ベクトルｐｉｎ２２０がニューラルネット層の行列Ｍｉｎに変換（展開）される。最後の（出力）外層で、ニューラルネット行列Ｍｏｕｔが、結果属性ベクトルｐｏｕｔ２４０にマップされ、これは以下のように定義される。
【数１】
2020009415.tif 000003
式中、
×Ｍｉｎは、ベクトルの最初の外層へのマッピングであり、
【数２】
2020009415.tif 000004
は、最初の層から外側の内層へ、内層から最後の層へのマッピングであり、
×Ｍｏｕｔは、最後の外層のベクトルへのマッピングであり、
【数３】
2020009415.tif 000005
は、内層の最初から最後へのマッピングであり、抽象化が当てはまる場合、
【数４】
2020009415.tif 000006
である。
【００４３】
すなわち、訓練済みモデルを使用するときには内層は１つであるが、そのモデルを訓練するときには内層は１組の層を構成し、各層はそれ自体の行列Ｍｉによって特徴付けられ、その要素（係数）は補正され得る。
【００４４】
一般的な場合におけるニューラルネット２３０を訓練する問題は、結果属性ベクトルｐｏｕｔ２４０の形成への悪意のあるファイル１６０の各属性の定量的な寄与度を決定することに帰着し、特定の態様ではその結果からさらに以下が決定される。
・結果属性ベクトルｐｏｕｔへの悪意のあるファイルｐｉｎの属性のセット｛ζｉ｝からの各属性ζｉの寄与度の閾値であって、当該値を下回る場合、悪意のあるファイルのｉ番目の属性ζｉは、結果属性ベクトルｐｏｕｔに及ぼす影響が最小とみなされ、ファイルのさらなる解析時にニューラルネットによって使用される悪意のあるファイルの属性ベクトルｐｉｎから除外され得る。
・結果属性の値の範囲であって、この範囲内で検出された場合、ファイルが悪意のあるものであることを意味する。
ｍｉｎ（ｐｏｕｔ）＞ｐｏｕｔ＞ｍａｘ（ｐｏｕｔ）
【数５】
2020009415.tif 000007
式中、｛ζｉ｝は、ベクトルを形成するためのファイル属性のセットである。
【００４５】
より具体的には、以下の通りである。
【００４６】
訓練の過程で、悪意のあるファイル１６０の選び出された属性Ｎから悪意のあるファイルの属性Ｍが決定される。これら属性Ｎは、悪意のあるファイル１６０の識別の結果に重大な影響を及ぼす（悪意のあるファイル１６０の重要な属性）。
【００４７】
悪意のあるファイル１６０のその他の属性Ｏ＝Ｍ−Ｎは、悪意のあるファイル１６０の識別に及ぼす影響が最小限の重要ではない属性であるとみなされる。Ｏ属性の使用は、かなりの程度まで、結果を有意に改善することなく計算リソースを消費するだけであり、よってＯ属性はさらなる解析から除外される。結果に有意な改善があるかどうかを判断することは、統計的判断を含み、例えば、ある係数が計算される場合（普通は数学的意味で、すなわち、ある効率化係数／近似係数などによって推定することができる、別の関数の近似の係数やいくつかの関数のデータの近似の係数など（決定係数を参照されたい））、プロセスの効率を０（非効率）から１（効率的）で表す係数で、１つまたは複数のパラメータが変化すると、効率を表す係数の変化はわずか（例えば１％だけ）であるため、そのパラメータは有理ではないので、使用されなくなる。例えば、関数ｙ＝ｘ＾ａ＋ｂについて、線形パラメータｂがｙに及ぼす影響は実質的にわずかであるが、べき乗パラメータａの影響は非常に大きく、ｘの変化に応じてｙの値に及ぼす影響が所定の閾値を超えるので、重要とみなされる。
【００４８】
最初に、Ｍ＝Ｎであり、すべての属性はニューラルネット２３０の入力層に到達すると仮定する。入力層は、属性ベクトルｐｉｎを行列ＭＮ×Ｎに変換する。
【００４９】
損失関数に依存する隠れ層（特定の態様では、単一の内層で十分であるが、一般的な場合には隠れ層の数は無制限である）は、悪意のあるファイルを検出するためのニューロンの規則性および関係を明らかにする。
【００５０】
出力層は、ニューラルネット２３０の動作の結果を生成し、その結果は、結果属性ベクトルｐｏｕｔを構成する。特定の態様では、出力層は前述した有害性係数を生成する。
【００５１】
一例示的態様では、学習モジュール１２０は、例えば損失関数誤差勾配法に基づいて損失関数を選択する。ニューラルネット２３０の訓練は、損失関数を選択した後に行われる。
【００５２】
学習モジュール１２０はまた、選択された各安全なファイル１８０またはその部分から、Ｎ個の属性のベクトル２２０を選び出し、それらを訓練されているニューラルネットの最初の入力層に送る。
【００５３】
訓練の結果として、悪意のあるファイル１６０の識別に重要ではない属性Ｏが選び出される。重要な属性の数ＭはＮより少なくなり（Ｍ＜Ｎ）、これにより行列［Ｍ，Ｍ］のサイズが縮小し、ニューラルネット２３０における計算の時間が短縮される。
【００５４】
このプロセスでは、安全なファイル１８０は悪意のあるものとして識別されるべきではない（例えば、安全なファイルの有害性係数は閾値を超えるべきではない）。しかしながら、安全なファイル１８０が悪意のあるものとして識別された場合、言い換えれば、誤警報が発生した場合、学習モジュール１２０は別の損失関数を選択し、ニューラルネット２３０に対して再訓練が行われる。
【００５５】
上記の動作の結果として、学習モジュール１２０は、訓練された（一例示的態様では再訓練された）ニューラルネット１４０を生成する。一般的な場合には、訓練済みニューラルネット１４０は、訓練されていないニューラルネットと比較してコンパクトな記述を有し（行列［Ｍ，Ｍ］は行列［Ｎ，Ｎ］より小さい）、悪意のあるソフトウェア（例えば、選択モジュール１１０によって選択された悪意のあるファイル１６０）を検出するためのニューロンの規則性および関係式のみを含む。
【００５６】
一例示的態様では、学習モジュール１２０は、結果属性ベクトル２４０に基づいて悪意のあるファイル１６０の検出規則２５０を生成する。一態様では、検出規則２５０は少なくとも１つの検出条件を含む。前述したように、結果属性ベクトル２４０は、［１］の次元を有し得る。一般的な場合には、検出規則２５０は（一次元の結果属性ベクトル２４０についても）いくつかの検出条件を含み得る。例えば、有害性係数が０．９より大きい場合、ファイルは悪意のあるものとみなされるべきである。しかし、有害性係数が０．６より大きいが０．９より小さい場合は、さらに検証が行われるべきである。さらに別の例示的態様では、検出規則２５０は、属性ベクトル２２０に含まれる属性のうちの少なくとも１つをさらに使用する。例えば、ファイルの種類が「実行可能」であり、有害性係数が０．８より大きい場合、そのファイルは悪意のあるものとみなされるべきである。有害性係数が０．５未満であり、ファイルの種類が「テキスト」（スクリプトファイルなど）である場合、そのファイルは安全とみなされるべきである。よって、ニューラルネット２３０の訓練の結果として、学習モジュール１２０は、訓練済みニューラルネット１４０および検出規則２５０を生成する。
【００５７】
特定の例示的態様では、訓練済みニューラルネット１４０および検出規則２５０は、学習モジュール１２０によってデータベース１９０に保存され得る。
【００５８】
一般的な場合には、学習モジュール１２０は訓練済みニューラルネット１４０および検出規則２５０を解析モジュール１３０に送る。
【００５９】
一般的な場合における解析モジュール１３０は、ユーザのコンピューティングデバイス１５０上で実行される。特定の例示的態様では、解析モジュール１３０はサーバ上で実行される。解析モジュール１３０は、訓練済みニューラルネット１４０および検出規則２５０を使用して、有害性がないか未知のファイル１７０をスキャンする。一般的な場合には、解析モジュール１３０が未知のファイル１７０の結果属性ベクトル２４０を生成した結果として、検出規則２５０に含まれる悪意のあるファイルの検出条件を満たす場合、未知のファイル１７０は悪意のあるものとして認識される。一例示的態様では、解析モジュール１３０は、先行技術によって知られている方法を使用して、有害性がないか未知のファイル１７０をさらにスキャンする。
【００６０】
訓練済みニューラルネット１４０および検出規則２５０を使用して未知のファイル１７０が悪意のあるものとして認識されたものの、先行技術によって知られている方法を使用すると未知のファイル１７０は安全である（例えば、信頼できる認証センターによって発行されたデジタル証明書を有するか、またはホワイトリストに記載されているか、またはコンピュータセキュリティの専門家の関与により安全と認められている）場合、訓練済みニューラルネット１４０および検出規則２５０の誤警報が識別される。この場合、誤警報１７５が識別されたファイルは解析モジュール１３０によって、選択モジュール１１０が選択した安全なファイル１８０の選択に追加される。この後、解析モジュール１３０は、誤警報１７５が識別された安全なファイルの選択に追加されたファイルを考慮に入れ、損失関数を選択してニューラルネット２３０を再訓練する学習モジュール１２０によるプロセスを開始する。
【００６１】
一例示的態様では、解析モジュール１３０は他の悪意のあるファイル１８０のスキャンをさらに行う。訓練済みニューラルネット１４０および検出規則を使用して、解析モジュール１３０が別の悪意のあるファイルを悪意のあるものとして識別した場合には、その別の悪意のあるファイルを検出するために訓練されたニューラルネットは、悪意のあるファイルを識別するための訓練済みニューラルネット１４０のセットから除外され得る。
【００６２】
図３は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別する方法の構造を示すフロー図である。
【００６３】
一態様によれば、ステップ３１０において、選択モジュール１１０は、悪意のあるファイル群の中から１つの悪意のあるファイル（サンプル）を選択するように構成され得る。この態様では、悪意のあるファイル群は、その有害性が以前に識別されたファイルのセットである。別の例示的態様では、ファイルの有害性はコンピュータセキュリティの専門家によって識別される。一般的な場合における有害性は、先行技術によって知られている方法（ヒューリスティック解析やシグネチャ解析など）によって識別され得る。一例示的態様では、選択モジュール１１０は、悪意のあるファイルの全体ではなく１つまたは複数の個々の部分を選択する。
【００６４】
一態様では、ステップ３１５において、選択モジュール１１０は、安全なファイル群の中から少なくとも２つのファイルを選択するように構成され得る。安全なファイルとは、有害性がないかスキャンした結果として悪意のあるものとして識別されなかったファイルである。一例示的態様では、安全なファイル群全体が選択され得る。別の例示的態様では、安全なファイルは様々な異なる基準および基準の組み合わせによって選択され得る。一例示的態様では、ファイル（悪意のあるファイルおよび安全なファイル）を選択した結果は、ファイル群内における当該ファイルの識別子であり得る。一例示的態様では、選択モジュール１１０は、安全なファイルの１つまたは複数の部分を選択し、他の態様では、安全なファイル全体が選択される。
【００６５】
一態様では、ステップ３２０において、学習モジュール１２０は、ニューラルネットを利用して学習モデルを生成（作成）するように構成され得る。一般的には、ニューラルネットの少なくとも以下のパラメータが選択または修正される：層の数、層内のニューロンの数、損失関数。特定の例示的態様では、ニューロン間の結合係数（重み）および損失関数の係数がさらに選択される。
【００６６】
一般的な場合、機械学習の他の方法が使用される。特定の態様では、誤差逆伝搬法が使用される。損失関数に依存する隠れ層は、悪意のあるファイルを検出するためのニューロンの規則性および関係を明らかにする。特定の態様では、損失関数は損失関数誤差勾配方法に基づいて選択される。
【００６７】
一態様では、ステップ３３０において、学習モジュール１２０は、選択されたファイルまたはそれらの部分を使用してモデルを訓練するように構成され得る（訓練プロセスの詳細は図２に示す）。学習モジュール１２０は、悪意のあるファイル１６０または悪意のあるファイル１６０の部分から選択されたＮ属性を含むベクトル２２０を形成する。訓練プロセスは、悪意のあるファイル１６０の選択されたＮ属性から、悪意のあるファイル１６０の識別の結果に重大な影響を及ぼす悪意のあるファイルの属性Ｍ（悪意のあるファイル１６０の重要な属性）を決定する。訓練プロセスでは、選択された各安全なファイル１８０またはその部分について、学習モジュール１２０はまた、Ｎ属性ベクトル２２０を選択し、それらを訓練されているニューラルネットの最初の入力層に送る。訓練の結果として、悪意のあるファイル１６０の検出に重要ではない属性Ｏが選択される。その場合、重要な属性Ｍの数はＮより小さい。
【００６８】
一態様では、ステップ３３５において、学習モジュール１２０は、選択モジュール１１０によって有害性がないか選択された安全なファイルをスキャンするように構成され得る。安全なファイル１８０が悪意のあるものとして識別された（誤警報が発生した）場合、学習モジュール１２０は、例えば、別の損失関数を選択し、ステップ３２０に戻って、ニューラルネットを使用して学習モデルを生成（修正）することができ、ニューラルネット２３０の再訓練を実行する。
【００６９】
一態様では、ニューラルネットを訓練した後ステップ３４０において、学習モジュール１２０は、結果属性ベクトル２４０に基づいて、悪意があるとして識別する（あるいは悪意があるとして検出する）ための少なくとも１つの条件を含む、悪意のあるファイル１６０の検出規則２５０を生成するように構成され得る。例えば、ファイルＡとファイルＢとは悪意のあるものであり得る（すなわち、同じ種類／ファミリなどに属する）が、損傷の程度が異なり（例えば、０．９９と０．６５）、第１の場合には、悪意のあるアプリケーションはコンピュータシステムを急速に動作不能にし（例えばファイルを暗号化し）、第２の場合には、パスワードなどを盗むが、システムを動作不能にはしない。前述したように、結果属性ベクトル２４０は、［１］の次元を有し得る。一般的な場合、検出規則２５０は（一次元の結果属性ベクトル２４０についても）悪意があるとするいくつかの検出条件を含み得る。さらに別の例示的態様では、検出規則２５０は、属性ベクトル２２０に含まれる属性のうちの少なくとも１つをさらに使用する。
【００７０】
一態様では、ステップ３５０において、解析モジュール１３０は、訓練済みニューラルネット１４０および検出規則２５０を使用して、有害性がないか未知のファイル１７０をスキャンするように構成され得る。
【００７１】
一態様では、ステップ３５５において、未知のファイル１７０の結果属性２４０に基づいて悪意のあるファイルの検出条件が満たされた場合、ステップ３６０で未知のファイル１７０は悪意のあるものとして認識される。この態様では、検出条件は検出規則２５０に含まれる。
【００７２】
一例示的態様では、ステップ３６５において、解析モジュール１３０は、特定の方法を使用して、有害性がないか未知のファイル１７０をさらにスキャン（解析）するように構成され得る。訓練済みニューラルネット１４０および検出規則２５０を使用して未知のファイル１７０が悪意のあるものとして認識されたものの、特定の方法を使用して未知のファイル１７０が安全であると判断された場合、ステップ３７０において、訓練済みニューラルネット１４０および検出規則２５０の誤警報が識別される。この場合、ステップ３７５で、誤警報１７５が識別されたファイルは解析モジュール１３０によって、選択モジュール１１０が選択した安全なファイル１８０の選択に追加される。この後、解析モジュール１３０により、方法はステップ３２０に進み、ニューラルネットを使用して訓練モデルが生成され、次いでステップ３３０に進み、ニューラルネット２３０は学習モジュール１２０によって再訓練される。いずれのステップでも、誤警報１７５が識別された安全なファイルの選択に追加されたファイルを考慮に入れる。
【００７３】
図４は、本開示の態様が例示的態様に従って実施され得る汎用コンピュータシステム２０を示すブロック図である。コンピュータシステム２０は、システム１００、および／またはその個々の構成要素に対応し得ることに留意されたい。
【００７４】
図示されるように、コンピュータシステム２０（パーソナルコンピュータまたはサーバであり得る）は、中央処理装置２１と、システムメモリ２２と、中央処理装置２１と関連付けられたメモリを含む様々なシステム構成要素を接続するシステムバス２３とを含む。当業者には理解されるように、システムバス２３は、バスメモリまたはバスメモリ・コントローラ、周辺バス、および他のバスアーキテクチャと相互作用することができるローカルバスを含み得る。システムメモリは、永久メモリ（ＲＯＭ）２４およびランダム・アクセス・メモリ（ＲＡＭ）２５を含み得る。基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４を使用したオペレーティングシステムのロード時などの、コンピュータシステム２０の要素間で情報を転送するための基本手順を格納し得る。
【００７５】
コンピュータシステム２０はまた、データを読み書きするためのハードディスク２７、リムーバブル磁気ディスク２９上で読み書きするための磁気ディスクドライブ２８、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭその他の光媒体などのリムーバブル光ディスク３１で読み書きするための光学ドライブ３０も含み得る。ハードディスク２７、磁気ディスクドライブ２８、および光学ドライブ３０は、それぞれ、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、および光学ドライブインターフェース３４を介してシステムバス２３に接続されている。各ドライブおよび対応するコンピュータ情報媒体は、コンピュータシステム２０のコンピュータ命令、データ構造、プログラムモジュールおよび他のデータを格納するための独立電源モジュールである。
【００７６】
一例示的態様は、コントローラ５５を介してシステムバス２３に接続されたハードディスク２７、リムーバブル磁気ディスク２９およびリムーバブル光ディスク３１を使用するシステムを含む。コンピュータによって読み取り可能な形式でデータを格納することができる任意の種類の媒体５６（ソリッド・ステート・ドライブ、フラッシュ・メモリ・カード、デジタルディスク、ランダムアクセスメモリ（ＲＡＭ）など）も利用され得ることが当業者には理解されるであろう。
【００７７】
コンピュータシステム２０は、オペレーティングシステム３５が格納され得るファイルシステム３６、ならびに追加のプログラムアプリケーション３７、他のプログラムモジュール３８、およびプログラムデータ３９を有する。コンピュータシステム２０のユーザは、キーボード４０、マウス４２、または、これに限定されないが、マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナーなどの当業者に公知の他の任意の入力装置を使用してコマンドおよび情報を入力することができる。これらの入力装置は通常、システムバスに接続されているシリアルポート４６を介してコンピュータシステム２０に接続する。ただし、入力装置は、これらに限定されないが、パラレルポート、ゲームポート、またはユニバーサル・シリアル・バス（ＵＳＢ）などを介した他の方法でも接続され得ることを当業者は理解するであろう。モニタ４７または他の種類の表示装置も、ビデオアダプタ４８などのインターフェースを介してシステムバス２３に接続され得る。パーソナルコンピュータは、モニタ４７に加えて、ラウドスピーカ、プリンタなどといった他の周辺出力装置（図示せず）を備えていてもよい。
【００７８】
コンピュータシステム２０は、１台または複数のリモートコンピュータ４９へのネットワーク接続を使用して、ネットワーク環境で動作し得る。（１台または複数の）リモートコンピュータ４９は、コンピュータシステム２０の特性の説明における前述の要素の大部分または全部を含むローカル・コンピュータ・ワークステーションまたはサーバであってよい。コンピュータネットワークには、これらに限定されないが、ルータ、ネットワークステーション、ピアデバイスまたは他のネットワークノードなどの他のデバイスも存在していてよい。
【００７９】
ネットワーク接続は、ローカルエリア・コンピュータ・ネットワーク（ＬＡＮ）５０および広域コンピュータネットワーク（ＷＡＮ）を形成することができる。これらのネットワークは、企業のコンピュータネットワークおよび社内のネットワークで使用されており、ネットワークは一般にはインターネットにアクセスできる。ＬＡＮネットワークまたはＷＡＮネットワークでは、パーソナルコンピュータ２０は、ネットワークアダプタまたはネットワークインターフェース５１を介してローカルエリアネットワーク５０に接続される。ネットワークが使用される場合、コンピュータシステム２０は、インターネットなどの広域コンピュータネットワークとの通信を可能にするモデム５４または当業者に周知の他のモジュールを用いることができる。モデム５４は、内蔵デバイスでも外付けデバイスでもよく、シリアルポート４６によってシステムバス２３に接続され得る。ネットワーク接続は、通信モジュールを使用して一つのコンピュータを別のコンピュータに接続させる多くの周知の方法の非限定的な例であることが当業者には理解されるであろう。
【００８０】
様々な態様では、本明細書に記載されているシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせとして実装され得る。ソフトウェアとして実装される場合、方法は、１つまたは複数の命令またはコードとして非一時的コンピュータ可読媒体に格納され得る。コンピュータ可読媒体はデータ記憶装置を含む。限定ではなく一例として、このコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、またはその他の種類の電気的、磁気的、もしくは光学的記憶媒体、または命令やデータ構造の形式で所望のプログラムコードを搬送もしくは格納するために使用することができ、汎用コンピュータのプロセッサがアクセスすることのできる任意の他の媒体を含むことができる。
【００８１】
様々な態様では、本開示に記載されているシステムおよび方法を、モジュールとして扱うことができる。本明細書で使用される「モジュール」という用語は、例えば、特定用途向け集積回路（ＡＳＩＣ）やフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などハードウェアを使用して、または、マイクロプロセッサシステムと、（実行中に）マイクロプロセッサシステムを専用デバイスに変換する、モジュールの機能を実施するための命令セットなどハードウェアとソフトウェアの組み合わせとして実装される、実世界のデバイス、コンポーネント、またはコンポーネントの構成を指す。モジュールはまた、ある機能はハードウェアのみによって促進され、他の機能はハードウェアとソフトウェアの組み合わせによって促進される、という２つの組み合わせとして実装され得る。特定の実施態様では、モジュールの少なくとも一部、場合によっては全部が（上記の図４でより詳細に説明されているような）汎用コンピュータのプロセッサ上で実行され得る。したがって、各モジュールは様々な適切な構成で実現されてよく、本明細書に例示した特定の実施態様に限定されるべきではない。
【００８２】
明確にするために、本明細書には各態様のすべての通常の特徴が開示されているわけではない。本開示の実際の実施態様の開発においては、開発者の特定の目標を達成するために多数の実施態様固有の決定がなされなければならず、これらの特定の目標は実施態様および開発者によって異なることが理解されよう。そのような開発努力は複雑で時間を要し得るとはいえ、本開示の恩恵を受ける当業者にとっては日常的なエンジニアリングの業務であろうことが理解される。
【００８３】
さらに、本明細書で使用される表現や用語は限定ではなく説明を目的としたものであり、本明細書の用語や表現は、当業者の知識と組み合わせて、本明細書で提示された教示および指針に照らして当業者によって解釈されるべきであることを理解されたい。さらに、本明細書または特許請求の範囲におけるいずれの用語も、特に明示されない限り、一般的でないかまたは特殊な意味に帰されることを意図していない。
【００８４】
本明細書で開示された様々な態様は、例示として本明細書で言及された公知のモジュールに対する現在および将来の公知の均等物を包含する。さらに、態様および応用例を示して説明したが、本明細書に開示された発明の概念から逸脱することなく、上述したものよりもはるかに多くの改変が可能であることが、本開示の恩恵を受ける当業者には明らかであろう。
【図１】
2020009415.tif 000008
【図２】
2020009415.tif 000009
【図３】
2020009415.tif 000010
【図４】
2020009415.tif 000011
【外国語明細書】
2020009415000001.pdf