(57)【要約】      （修正有）【課題】オペレーティングシステムで発生する異常事象を検出するシステム及び方法を提供する。【解決手段】方法において、検出ステップでは、オペレーティングシステムで発生する事象を検出し、決定ステップでは、前記検出された事象のコンテキストを決定し、形成ステップでは、前記決定されたコンテキストに対し選択された特徴量に基づいて、検出された事象の畳み込みを形成し、人気度判定ステップでは、複数のクライアント機器上で発生し検出された事象に対応する複数の検出された事象と、検出された事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された事象に対し形成された畳み込みの人気度を判定し、異常事象判定ステップでは、前記判定された人気度が閾値未満である場合、前記検出された事象が異常事象であると判定する。【選択図】図２
2019003598.tif 000002
【特許請求の範囲】
【請求項１】
計算機器のオペレーティングシステムにおいて発生する異常事象を検出する方法であって、
検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップとを備え、
前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する１つ以上の事象を検出し、
前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、
前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された１つ以上の事象の畳み込みを形成し、
前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された１つ以上の事象に対応する複数の検出された事象と、検出された少なくとも１つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された１つ以上の事象に対し形成された畳み込みの人気度を判定し、
前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された１つ以上の事象が異常事象であると判定する、
方法。
【請求項２】
請求項１に記載の方法において、
前記コンテキスト決定ステップは、検出された少なくとも１つの事象の発生時にコールスタックを決定することを含み、前記コールスタックは、その時点で実行されている一連の続き及び関数のリストと、前記一連の手続き及び関数を含むモジュールのリストと、モジュールへ転送される全てのパラメータのデータ及び値の種類とを提供する、
方法。
【請求項３】
請求項１に記載の方法において、
前記コンテキスト決定ステップは、前記検出された少なくとも１つのイベントの発生の瞬間に実行されたコードを含む前記ソフトウェアプロセスのアドレス空間のダンプと、少なくとも最後のブランチレコード及びブランチトレースストアからのジャンプに関するデータと、検出された少なくとも１つのイベントの発生前にソフトウェアプロセスにロードされたモジュールのリストとを備える、
方法。
【請求項４】
請求項１に記載の方法において、
前記形成ステップは、下記（１）〜（６）の少なくとも１つを含む、
（１）決定されたコンテキストに対し選択された特徴量の量子化と、決定されたコンテキストに対し選択された特徴量のソート、
（２）選択された特徴量のマージと、決定されたコンテキストに対し選択された特徴量のグループ化と、決定されたコンテキストに対し選択された特徴量のデータセットの構成、
（３）決定されたコンテキストに対し選択された特徴量の値の表化、
（４）決定されたコンテキストに対し選択された特徴量の値の計算、
（５）決定されたコンテキストに対し選択された特徴量の符号化、
（６）決定されたコンテキストに対し選択された特徴量の正規化
方法。
【請求項５】
請求項１に記載の方法において、
第２の形成ステップと、頻度決定ステップとを更に備え、
前記第２の形成ステップでは、決定されたコンテキストの選択された特徴量を文字列に畳み込み、ハッシュ値を生成することによって、検出された１つ以上の事象の畳み込みを形成し、 
前記頻度決定ステップでは、生成されたハッシュ値をデータベース内のハッシュ値のリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
方法。
【請求項６】
請求項１に記載の方法において、
第３の形成ステップと、第４の形成ステップとを更に備え、
前記第３の形成ステップでは、決定されたコンテキストの選択された特徴量を座標値に畳み込み、ベクトルを生成することによって、検出された１つ以上の事象の畳み込みを形成し、 
前記第４の形成ステップでは、生成されたベクトル値をデータベース内のベクトルのリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
方法。
【請求項７】
請求項１に記載の方法において、
比較ステップと、異常判定ステップとを更に備え、
前記比較ステップでは、検出された１つ以上の事象に対し形成された畳み込みを、以前に形成された安全事象の畳み込みのリストと比較し、
前記異常判定ステップでは、検出された１つ以上の事象に対し形成された畳み込みが安全事象以前に形成された畳み込みのリストにない場合、検出された１つ以上の事象が異常事象であると判定する、
方法。
【請求項８】
請求項１に記載の方法において、
前記複数の検出された事象の頻度は、前記１つ以上の事象が検出された現時点における前記複数の検出された事象の総数、及びその時点において各機器が前記検出された１つ以上の事象を経験するようなクライアント機器の総数のうち、少なくとも１つを含む、
方法。
【請求項９】
請求項１に記載の方法において、
前記データベースのポーリングは、全てのアクセス可能なサブネットワーク内における複数の第１のクライアント機器に関連するグローバルデータベースのポーリング、及び機器の単一のサブネットワー内における複数の第２のクライアント機器に関連するローカルデータのポーリングのうち、少なくとも１つを含む、
方法。
【請求項１０】
請求項１に記載の方法において、
前記検出された１つ以上の事象が異常事象であると判定された場合に、前記ソフトウェアプロセスを削除すること及び隔離することのうち少なくとも１つを更に含む、
方法。
【請求項１１】
計算機器のオペレーティングシステムにおいて発生する異常事象を検出するシステムであって、
複数のクライアント機器で発生した複数の検出事象の頻度に関するデータを含むデータベースと、 コンピュータ・プロセッサによって、検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップと実行するように構成されるソフトウェアエージェントとを備え、
前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する１つ以上の事象を検出し、
前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、
前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された１つ以上の事象の畳み込みを形成し、
前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された１つ以上の事象に対応する複数の検出された事象と、検出された少なくとも１つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された１つ以上の事象に対し形成された畳み込みの人気度を判定し、
前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された１つ以上の事象が異常事象であると判定する、
システム。
【請求項１２】
請求項１１に記載のシステムにおいて、
前記コンテキスト決定ステップは、検出された少なくとも１つの事象の発生時にコールスタックを決定することを含み、前記コールスタックは、その時点で実行されている一連の続き及び関数のリストと、前記一連の手続き及び関数を含むモジュールのリストと、モジュールへ転送される全てのパラメータのデータ及び値の種類とを提供する、
システム。
【請求項１３】
請求項１１に記載のシステムにおいて、
前記コンテキスト決定ステップは、前記検出された少なくとも１つのイベントの発生の瞬間に実行されたコードを含む前記ソフトウェアプロセスのアドレス空間のダンプと、少なくとも最後のブランチレコード及びブランチトレースストアからのジャンプに関するデータと、検出された少なくとも１つのイベントの発生前にソフトウェアプロセスにロードされたモジュールのリストとを備える、
システム。
【請求項１４】
請求項１１に記載のシステムにおいて、
前記形成ステップは、下記（１）〜（６）の少なくとも１つを含む、
（１）決定されたコンテキストに対し選択された特徴量の量子化と、決定されたコンテキストに対し選択された特徴量のソート、
（２）選択された特徴量のマージと、決定されたコンテキストに対し選択された特徴量のグループ化と、決定されたコンテキストに対し選択された特徴量のデータセットの構成、
（３）決定されたコンテキストに対し選択された特徴量の値の表化、
（４）決定されたコンテキストに対し選択された特徴量の値の計算、
（５）決定されたコンテキストに対し選択された特徴量の符号化、
（６）決定されたコンテキストに対し選択された特徴量の正規化
システム。
【請求項１５】
請求項１１に記載のシステムにおいて、
前記ソフトウェアエージェントは、第２の形成ステップと、頻度決定ステップとを更に実行するように構成され、
前記第２の形成ステップでは、決定されたコンテキストの選択された特徴量を文字列に畳み込み、ハッシュ値を生成することによって、検出された１つ以上の事象の畳み込みを形成し、 
前記頻度決定ステップでは、生成されたハッシュ値をデータベース内のハッシュ値のリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
システム。
【請求項１６】
請求項１１に記載のシステムにおいて、
前記ソフトウェアエージェントは、第３の形成ステップと、第４の形成ステップとを更に実行するように構成され、
前記第３の形成ステップでは、決定されたコンテキストの選択された特徴量を座標値に畳み込み、ベクトルを生成することによって、検出された１つ以上の事象の畳み込みを形成し、 
前記第４の形成ステップでは、生成されたベクトル値をデータベース内のベクトルのリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する、
システム。
【請求項１７】
請求項１１に記載のシステムにおいて、
前記ソフトウェアエージェントは、比較ステップと、異常判定ステップとを更に実行するように構成され、
前記比較ステップでは、検出された１つ以上の事象に対し形成された畳み込みを、以前に形成された安全事象の畳み込みのリストと比較し、
前記異常判定ステップでは、検出された１つ以上の事象に対し形成された畳み込みが安全事象以前に形成された畳み込みのリストにない場合、検出された１つ以上の事象が異常事象であると判定する、
システム。
【請求項１８】
請求項１１に記載のシステムにおいて、
前記複数の検出された事象の頻度は、前記１つ以上の事象が検出された現時点における前記複数の検出された事象の総数、及びその時点において各機器が前記検出された１つ以上の事象を経験するようなクライアント機器の総数のうち、少なくとも１つを含む、
システム。
【請求項１９】
請求項１１に記載のシステムにおいて、
前記データベースのポーリングは、全てのアクセス可能なサブネットワーク内における複数の第１のクライアント機器に関連するグローバルデータベースのポーリング、及び機器の単一のサブネットワー内における複数の第２のクライアント機器に関連するローカルデータのポーリングのうち、少なくとも１つを含む、
システム。
【請求項２０】
請求項１１に記載のシステムにおいて、
前記検出された１つ以上の事象が異常事象であると判定された場合に、前記ソフトウェアプロセスを削除すること及び隔離することのうち少なくとも１つを更に含む、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータセキュリティの分野に関し、より詳細には、機器ソフトウェアに存在する脆弱性の利用に対するコンピュータシステムのためのシステム及び方法に関する。
【背景技術】
【０００２】
今日の技術社会における様々なソフトウェアアプリケーションの普及に伴い、コンピュータ機器に悪意のあるソフトウェアを浸透させる最も普及した方法の１つは、特定の機器にインストールされたソフトウェアに存在する脆弱性を利用することである。
【０００３】
脆弱性の悪用を防止するために、企業や個人は、脆弱性自体を排除するという形の受動的方法と、実際の脆弱性の悪用を検出するという形の能動的方法の両方を使用する。受動的方法は既知の脆弱性のみに使用される一方、能動的方法は既知の脆弱性と未知の脆弱性の両方に使用される。
【０００４】
既存の検出技術は、実際には既知の技術やメカニズムを使用して実際の脆弱性の悪用を検出することができるが、残念ながら悪用に際して新たな原理と仕組みを採用するような、脆弱性の悪用の新手法を検出し防止することはできない。例えば、シェルコード（即ち、ソフトウェアの脆弱性の悪用においてペイロードとして使用される小さなコード）の実行を不可能にするために、そのスタック内での実行を防止する技術が開発されてきたが、その領域においてリターン指向のプログラミングが登場した。一般にリターン指向のプログラミングはコンピュータセキュリティの悪用手法であり、攻撃者が実行不可能なメモリやコード署名等のセキュリティ防御のもとでコードを実行することを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
既存の防御技術は、リターン指向プログラミングに対して無力であることが証明されている。したがって、例えば、米国特許第５，００２，３０３号は、これらの攻撃から保護するために開発された。これらの新しい解決法を考慮すると、コンピュータシステムの機能の正常動作からの偏差を検出する必要があり、このような偏差はシステムがソフトウェアの脆弱性を悪用する技術によって攻撃されたことを示す可能性がある。この問題を解決することで、脆弱性そのものを悪用するような、絶えず変化し改良している手法から、技術が変化しても不変である攻撃の外部兆候の検出に集中することが可能となる。
【０００６】
したがって、本明細書で開示するように、計算機器のオペレーティングシステムで発生する異常事象を検出するための例示的なシステム及び方法が提供される。特に、開示されたシステム及び方法は、機器のソフトウェアを実行するプロセス中にクライアント機器のオペレーティングシステムで発生する異常事象の検出を提供する。
【課題を解決するための手段】
【０００７】
本発明によれば、計算機器のオペレーティングシステムにおいて発生する異常事象を検出する方法であって、検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップとを備え、前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する１つ以上の事象を検出し、前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された１つ以上の事象の畳み込みを形成し、前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された１つ以上の事象に対応する複数の検出された事象と、検出された少なくとも１つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された１つ以上の事象に対し形成された畳み込みの人気度を判定し、前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された１つ以上の事象が異常事象であると判定する、方法が提供される。
【０００８】
好ましくは、前記コンテキスト決定ステップは、検出された少なくとも１つの事象の発生時にコールスタックを決定することを含み、前記コールスタックは、その時点で実行されている一連の続き及び関数のリストと、前記一連の手続き及び関数を含むモジュールのリストと、モジュールへ転送される全てのパラメータのデータ及び値の種類とを提供する。
【０００９】
好ましくは、前記コンテキスト決定ステップは、前記検出された少なくとも１つのイベントの発生の瞬間に実行されたコードを含む前記ソフトウェアプロセスのアドレス空間のダンプと、少なくとも最後のブランチレコード及びブランチトレースストアからのジャンプに関するデータと、検出された少なくとも１つのイベントの発生前にソフトウェアプロセスにロードされたモジュールのリストとを備える。
【００１０】
好ましくは、前記形成ステップは、下記（１）〜（６）の少なくとも１つを含む、
（１）決定されたコンテキストに対し選択された特徴量の量子化と、決定されたコンテキストに対し選択された特徴量のソート、
（２）選択された特徴量のマージと、決定されたコンテキストに対し選択された特徴量のグループ化と、決定されたコンテキストに対し選択された特徴量のデータセットの構成、
（３）決定されたコンテキストに対し選択された特徴量の値の表化、
（４）決定されたコンテキストに対し選択された特徴量の値の計算、
（５）決定されたコンテキストに対し選択された特徴量の符号化、
（６）決定されたコンテキストに対し選択された特徴量の正規化。
【００１１】
好ましくは、第２の形成ステップと、頻度決定ステップとを更に備え、前記第２の形成ステップでは、決定されたコンテキストの選択された特徴量を文字列に畳み込み、ハッシュ値を生成することによって、検出された１つ以上の事象の畳み込みを形成し、 前記頻度決定ステップでは、生成されたハッシュ値をデータベース内のハッシュ値のリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する。
【００１２】
好ましくは、第３の形成ステップと、第４の形成ステップとを更に備え、前記第３の形成ステップでは、決定されたコンテキストの選択された特徴量を座標値に畳み込み、ベクトルを生成することによって、検出された１つ以上の事象の畳み込みを形成し、 前記第４の形成ステップでは、生成されたベクトル値をデータベース内のベクトルのリストと比較することによって形成された畳み込みの人気度を決定し、複数のクライアント機器において発生する複数の検出された事象の頻度を決定する。
【００１３】
好ましくは、比較ステップと、異常判定ステップとを更に備え、前記比較ステップでは、検出された１つ以上の事象に対し形成された畳み込みを、以前に形成された安全事象の畳み込みのリストと比較し、前記異常判定ステップでは、検出された１つ以上の事象に対し形成された畳み込みが安全事象以前に形成された畳み込みのリストにない場合、検出された１つ以上の事象が異常事象であると判定する。
【００１４】
好ましくは、前記複数の検出された事象の頻度は、前記１つ以上の事象が検出された現時点における前記複数の検出された事象の総数、及びその時点において各機器が前記検出された１つ以上の事象を経験するようなクライアント機器の総数のうち、少なくとも１つを含む。
【００１５】
好ましくは、前記データベースのポーリングは、全てのアクセス可能なサブネットワーク内における複数の第１のクライアント機器に関連するグローバルデータベースのポーリング、及び機器の単一のサブネットワー内における複数の第２のクライアント機器に関連するローカルデータのポーリングのうち、少なくとも１つを含む。
【００１６】
好ましくは、前記検出された１つ以上の事象が異常事象であると判定された場合に、前記ソフトウェアプロセスを削除すること及び隔離することのうち少なくとも１つを更に含む。
【００１７】
本発明の別の観点によれば、計算機器のオペレーティングシステムにおいて発生する異常事象を検出するシステムであって、複数のクライアント機器で発生した複数の検出事象の頻度に関するデータを含むデータベースと、 コンピュータ・プロセッサによって、検出ステップと、事象決定ステップと、コンテキスト決定ステップと、形成ステップと、人気度判定ステップと、異常事象判定ステップと実行するように構成されるソフトウェアエージェントとを備え、前記検出ステップでは、ソフトウェアプロセスの実行中に前記計算機器のオペレーティングシステムで発生する１つ以上の事象を検出し、前記決定ステップでは、前記検出ステップで検出された事象のコンテキストを決定し、前記形成ステップでは、前記決定ステップで決定されたコンテキストに対し選択された特徴量に基づいて、検出された１つ以上の事象の畳み込みを形成し、前記人気度判定ステップでは、複数のクライアント機器上で発生し検出された１つ以上の事象に対応する複数の検出された事象と、検出された少なくとも１つの事象に対応する複数の検出された事象の頻度に関連するデータを含むデータベースをポーリングすることによって、検出された１つ以上の事象に対し形成された畳み込みの人気度を判定し、前記異常事象判定ステップでは、前記人気度判定ステップで判定された前記人気度が閾値未満である場合、前記検出された１つ以上の事象が異常事象であると判定する、
システムが提供される。
【００１８】
別の例示的な態様では、計算機器で発生する異常事象を検出する方法が提供される。この態様では、本方法は次のステップを含む：即ち、安全な計算機器のオペレーティングシステムで発生する１つ以上の安全事象を検出するステップと、安全な計算機器のオペレーティングシステムで発生し検出された１つ以上の安全事象のコンテキストを決定するステップと、検出された１つ以上の安全事象の決定されたコンテキストの選択された特徴量に基づき、検出された１つ以上の安全事象の１つ以上の畳み込みを形成するステップと、検出された１つ以上の安全事象の形成された１つ以上の畳み込みを１つ以上のデータベースに格納するステップと、ソフトウェアプロセスの実行中に計算機器のオペレーティングシステムで発生する１つ以上の未分類事象を検出するステップと、前記ソフトウェアプロセスの実行中にオペレーティングシステムで発生し検出された１つ以上の未分類事象のコンテキストを決定するステップと、検出された１つ以上の未分類事象の決定されたコンテキストの選択された特徴量に基づき、検出された１つ以上の未分類事象の畳み込みを形成するステップと、そして１つ以上のデータベースに格納された検出された１つ以上の安全事象の形成された１つ以上の畳み込みと比較することにより、検出された１つ以上の未分類事象の形成された畳み込みが悪意のあるものかどうかを判定するステップである。
【００１９】
別の例示的な態様では、計算機器において発生する異常事象を検出するためのシステムが開示される。この態様では、システムは１つ以上のデータベースを含み、次のことを行うように構成された第１のソフトウェアエージェントを含む：即ち、安全な計算機器のオペレーティングシステムで発生する１つ以上の安全事象を検出し、安全な計算機器のオペレーティングシステムで発生し検出された１つ以上の安全事象のコンテキストを決定し、検出された１つ以上の安全事象の決定されたコンテキストの選択された特徴量に基づき、検出された１つ以上の安全事象の１つ以上の畳み込みを形成し、検出された１つ以上の安全事象の形成された１つ以上の畳み込みを１つ以上のデータベースに格納するエージェントである。更に本システムは、コンピュータ・プロセッサによって実行される際に次のことを行うように構成された第２のソフトウェアエージェントを更に含む：即ち、ソフトウェアプロセスの実行中にコンピュータ機器のオペレーティングシステムで発生する１つ以上の未分類事象を検出し、ソフトウェアプロセスの実行中にオペレーティングシステムで発生し検出された１つ以上未分類事象のコンテキストを決定し、検出された少なくとも1つの分類されていない事象の決定されたコンテキストの選択された特徴に基づき、検出された１つ以上の未分類事象の畳み込みを形成し、そして検出された１つ以上の未分類事象が悪意のあるものであるかどうかを、検出された１つ以上の未分類事象に対し形成された畳み込みと１つ以上のデータベースに格納され検出済みの１つ以上の安全事象に対し形成された１つ以上の畳み込みと比較することにより判定するエージェントである。
【００２０】
本発明の例示的な態様に係る上述の簡略化した概要は、本発明の基本的な理解を提供するように機能するものである。この概要は、全ての企図された態様の広範な概要ではなく、全ての態様の重要な又は重要な要素を特定することも本発明の任意の又は全ての態様の範囲を描写することも意図されていない。唯一の目的は、以下の本発明のより詳細な説明の前置きとして、１つ又は複数の態様を簡略化した形で提示することである。前述の目的を達成するために、本発明の１つ又は複数の態様が記載され、これは特に特許請求の範囲において主張される特徴を含むものである。
【図面の簡単な説明】
【００２１】
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本発明の１つ又は複数の例示的な態様を示し、詳細な説明とともに、それらの基本原理及び実施形態を説明する役割を果たすものである。
【００２２】
【図１】例示的な態様によるクライアントにインストールされたソフトウェアの実行を監視するシステムのブロック図を示す。
【００２３】
【図２】例示的な態様による事象の畳み込みの人気度の評価に基づいて異常事象を検出する方法のフローチャートを示す。
【００２４】
【図３】例示的な態様による安全事象の畳み込みのセットを形成する方法のフローチャートを示す。
【００２５】
【図４】例示的な態様による安全事象の畳み込みのセットに基づいて異常事象を検出する方法のフローチャートを示す。
【００２６】
【図５】開示されたシステム及び方法が例示的な態様にしたがって実装され得る汎用コンピュータシステム（パーソナルコンピュータ又はサーバであり得る）の例を示す。
【発明を実施するための形態】
【００２７】
様々な態様が図面を参照して説明され、同様の参照番号は全体を通して同様の要素を指すために使用される。以下では、説明を目的として、１つ又は複数の態様の完全な理解を促進するために、多数の特定の詳細が示される。しかし、以下に記載する特定の設計詳細を採用することなく、以下に説明される任意の態様が実施され得ることは、幾つか又は全ての例において明らかであり得る。他の例では、１つ又は複数の態様の説明を容易にするために、周知の構造及び機器がブロック図形式で示されている。以下は、態様の根本的な理解を提供するために、１つ又は複数の側面の簡略化された概要を提示する。この要約は、全ての企図された態様の広範な概観ではなく、全ての態様の決定的又は重要な要素を特定することも、任意又は全ての態様の範囲を描写することも意図していない。
【００２８】
本明細書で説明するように、「モジュール」（又はプログラムモジュール）は、オペレーティングシステムカーネルモジュール又は動的ライブラリ等、開始されたプロセスの機能性を拡張するコードを含むプログラムオブジェクトと考えることができる。
【００２９】
本明細書で説明するように、「畳み込み」は、例えば、事象の特徴量が文字列に畳み込まれるインテリジェントハッシュ、又は事象の特徴量が座標などに畳み込まれるベクトルと考えることができる。一般に、事象の特徴量（以下、「特徴量」と呼ぶ）は、それらに対して数学的及び論理的演算を実行するために畳み込むことができる任意のオブジェクトである。例えば、特徴量の畳み込みは、特徴量を文字列表現、ベクトル表現、又はこれらの複合表現へと任意に変換することである。
【００３０】
本明細書で説明される「事象」は、オペレーティングシステム、サービス又はネットワークの特定の状態の識別された表現であり得る。事象に関する情報は、例えば何が起こったかを示すオペレーティングシステム（又はその一部）等のソフトウェアメッセージに含まれても良い。言い換えれば、オペレーティングシステムからの事象には、プログラムの動作に影響を及ぼす可能性のあるプログラムの「外側」のものが含まれる。このような事象は、プログラムが実行されている間はいつでも、そして殆どの順序で起こり得ることを理解されたい。更に、例示的な態様では、通常、多くの種類及び型を持つ事象がシステム内に存在し得る：例えば、プロセスの起動、モジュールの読み込み、ファイル操作、レジストリ操作、等である。更に、例示的な態様では、事象のコンテキストは、その発生に直接影響を与えるような事象の発生時におけるオペレーティングシステムの状態の全体である。コンテキストの内容例を以下に示す。
【００３１】
更に、一般に「異常」事象は、オペレーティングシステム、サービス又はネットワークの特定の状態の識別された現れであり、これまでに未知の状況が発生したことを示す。特定の例では、異常事象は、情報セキュリティポリシーの違反や防御手段の障害、又はセキュリティに関係する未知の状態の発生を示すようなシステム、サービス、又はネットワークの特定の状態の識別された表示のような、安全事象でもあり得る。
【００３２】
図１は、例示的な態様によるクライアントにインストールされたソフトウェアの実行を監視するシステムのブロック図を示す。図示するように、ソフトウェアエージェント１１０（即ち「エージェント」）がクライアント１００の側にインストールされる。又、クライアント１００のオペレーティングシステムにおいても、エージェント１１０に接続された１つ又は複数のインターセプタ１２０をインストールすることができる。特定の態様では、当業者には知られているように、ウインドウ（「ＥＴＷ」）１２０ａの事象トレースをインターセプタとして使用することができる。インターセプタ１２０は、エージェント１１０へ直接通知を送信することにより、及び／又はエージェント１１０が接続できるような事象のログ（例えば、 図１に示すが、ローカルデータベース１６０に記憶されている）にエントリーすることにより、オペレーティングシステムで発生した事象を検出しこの検出をエージェント１１０へ報告する。
【００３３】
更に、エージェント１１０は、インターセプタ１２０によって検出することができるシステム内のすべての可能性のある事象、又は関心のある種類の事象（プロセスの起動のみ等）について通知を受信することができる。エージェント１１０は、エージェントがインターセプタ１２０によって検出された関心のある事象を登録した後に使用される収集モジュール１３０を含むことができる。収集モジュール１３０は、登録された事象のコンテキストを取得する。特定の例では、事象のコンテキストは、事象の発生に先行するコールスタックと、事象の発生時に実行されたコードを含むメモリセクションのダンプとを含む。コールスタックを使用して、以下のうち１つ又は複数を取得することができる：即ち、特定の瞬間に実行される手続き及び関数のリスト、それらの手続き及び関数を含むモジュールのリスト、そして、例えばモジュールによってエクスポートされた関数の呼び出しの際にモジュールへと転送される全てのパラメータのタイプ及び値である。更に、コンテキストには、少なくとも「ラストブランチレコード」（「ＬＢＲ」）と「ブランチトレースストア」（「ＢＴＳ」）（インテルマイクロアーキテクチャーコードネールハラムパフォーマンスモニタリングユニットプログラミングガイドに記載されており、これらは参照により本明細書に組み込まれる）（メモリバッファとレジスタである）からのジャンプに関する情報を含む。この態様では、ＬＢＲ及びＢＴＳは、プログラム実行に関する情報、即ちジャンプ、実行ブランチ又は（所定のトレースを保持する）その他のアドレスを含む。特定の態様では、事象を検出すると、インターセプタ１２０はそのコンテキストを保存し、そしてそのコンテキストはエージェント１１０の収集モジュール１３０によって取得され（例えば、収集モジュール１３０に転送されるか、収集モジュール１３０によって要求される）、このような場合、収集モジュール１３０は必要なコンテキスト全体又はその一部を独立して受信する必要はない。
【００３４】
例示的な態様によれば、クライアント１１０及びサーバ２００の一方又は両方は、畳み込み形成モジュール１４０を更に含むことができる。この態様では、収集モジュール１３０によって得られたコンテキストは、畳み込み形成モジュール１４０へ送られる。ある瞬間には、これは、クライアント１００に存在する畳み込み形成モジュール１４０へ送信されても良く、別の瞬間には、サーバ２００へ送信されても良い。畳み込み形成モジュール１４０は、受信されたコンテキストから特徴量（特徴量の例を後述する）を抽出し、畳み込みを形成／生成する。同様に、畳み込み形成モジュール１４０は、事象のコンテキストを変換する（下記参照）。前述のように、例示的な態様では、畳み込みは（特徴量が文字列に畳み込まれる）特定のハッシュだけでなく、（特徴が座標に畳み込まれる）ベクトル及びその他に対し最も広い意味として捉えられる。言い換えれば、事象の特徴量がそれらに数学的及び論理的演算を実行するために畳み込まれ得る任意のオブジェクトとして捉えられる。任意に与えられたアルゴリズムに対する事象の畳み込みの形成を使用して、例えばロシア特許公開第２，５８０，０３６号に記載されているように、得られた特徴量からファイルに対しハッシュが形成され、例えば、ロシア特許公開第２，６１４，５５７号又はＨＴＭＬページに記載されているように、ファイルに対しベクトルが形成される。ロシア特許公報第２，５８０，０３６号及びロシア特許公報第２，６１４，５５７号の内容は、その全体が参照により本明細書に組み込まれる。
【００３５】
更に、例示的な態様では、比較モジュール１５０は、サーバ２００及び／又はクライアント１１０のいずれかの上に配置することができる。この比較モジュール１５０は、得られた事象の畳み込みの人気度を判定し、得られた畳み込みを、サーバ２００と同様に相互作用するような、ローカルデータベース１６０又はリモートデータベース１７０に保持されている安全な畳み込みのセットに含まれる畳み込み等の他の畳み込みと比較するように構成される。ローカルデータベース１６０は又、以前に検出された事象のログ及び事象のコンテキスト、特にモジュールをプロセスにロードするような事象を保持する。
【００３６】
上述のシステムは、クライアント１００にインストールされたソフトウェアの実行の監視に使用される。このような監視の結果、クライアント１００にインストールされたソフトウェアの脆弱性が悪用された結果である異常事象がオペレーティングシステム上で検出される。本開示における用語「クライアント」１００は、クライアント・サーバパラダイムとして使用されることに留意されたい。即ち、それはコンピューティングアーキテクチャの要素であり、ネットワークに対するものではない。クライアント１００は、本開示において、サーバ２００のインタフェースによって提供されるサービスを要求するようなネットワーク内の任意の計算機器、そしてサーバ２００によって、クライアント１００の上記エージェント１１０が相互作用するような任意の計算機器を意味し、エージェント１１０から集められたデータを取得しメッセージやコマンドを送付する（それによってクライアント１００にサービスを提供する）。次に、クライアント１００にインストールされたソフトウェアの実行を監視するために開示された方法によって実装され得る方法を説明する。
【００３７】
図２は、例示的な態様による事象の畳み込みの人気度の評価に基づき異常事象を検出する方法のフローチャートを示す。図示するように、ステップ２１０において、クライアント１００側のオペレーティングシステムには、プロセスの実行中にクライアント１００のオペレーティングシステムで発生する事象を登録するエージェント１１０が起動される。次に、ステップ２２０において、クライアント１００のオペレーティングシステムにインストールされ、エージェント１１０に接続されたインターセプタ１２０は、オペレーティングシステムで発生した事象を検出し、エージェント１１０へ報告し、ステップ２３０において発生した事象を登録し、そして収集モジュール１３０を介しその事象のコンテキストを受け取る。
【００３８】
例示的な態様によれば、コンテキストは、例えば、少なくとも事象の発生時の呼び出しスタックを含み、そこでは所与の時点で実行されている一連の手続き及び関数のリスト、これらの一連の手順と関数を含むモジュールのリスト、そしてモジュールに転送されているデータのタイプ及び全てのパラメータ値、のうち１つ以上が呼び出しスタックから取得される。更に、コールスタックは、例えば、事象の発生時に実行されていたコードを含むプロセスのメモリセクション（アドレス空間）のダンプ、 ＬＢＲとＢＴＳのうち少なくとも一方からのジャンプに関する情報、 及び／又は事象の発生に先立ってプロセスにロードされたモジュールのリスト（これに関する情報は、例えばローカルデータベース１６０に保持された事象のログへとアクセス可能である。）のうち少なくとも１つを含んでも良い。
【００３９】
コンテキストを取得すると、ステップ２４０において、畳み込み形成モジュール１４０は、これらの特徴量に基づき事象の畳み込み形成のための特徴量を選択する。特徴量を選択する前に、特定の瞬間に取得されたコンテキストを変換する必要がある。コンテキストの変換は、対処されている問題と分析の目的の観点から、データの表現と形式を最適化するための方法とアルゴリズムの複合である。コンテキストの変換は、コンテキストを含むデータの情報コンテンツを変更するという目標を設定しない。この変換は、データが最も効果的に使用されるような形式でコンテキストを提示するために実行される（変換の例を以下に示す）。
【００４０】
例示的な態様では、畳み込みを実行するためのデータの変換は、例えば、量子化、ソート、マージ（貼り付け）、グループ分け、データセット構成、値の表化、計算可能な値、データのコーディング、正規化（スケーリング）等である。
【００４１】
例えば、コールスタック（以下に例を示すダンプにも当てはまる）は、以下のように変換される：コールスタックに参加するモジュールのデバッグシンボルが取得され、コールスタックはデバッグシンボルの使用によって正規化される。
ダンプの逆アセンブリの結果にデバッグシンボルを適用する前：
【数１】
2019003598.tif 000003
【００４２】
デバッグシンボルを適用した後：
【数２】
2019003598.tif 000004
【００４３】
分解とエミュレーションを介し、取得されたダンプ（間接呼び出しの有無、位置独立コード、自己修正コード等）の一連の特徴量が得られる。変換後、特徴量が選択され、畳み込みが形成される。
示されているように、使用される特徴量は、次のようなものである：（事象のログから取得される）ロードされたモジュールの名前及びロードの順序、特定の瞬間に実装される一連の手順及び関数の名前、（コールスタックから取得した）これらのモジュールによってエクスポートされる一連の手順及び関数の呼び出しに先立つモジュールへ転送されるパラメータ値、ジャンプ（ＬＢＲ、ＢＴＳからのジャンプ）に関する情報、間接呼び出しの有無、位置独立コード、自己変更コード（ダンプ）。畳み込みは、従来技術から知られている任意の方法によって形成することができる。コンテキストの変換は、畳み込みの形成と同様、クライアント１００側又はサーバ２００側のいずれかで行われ（これは、ソフトウェア実行の監視システムによって実行される全ての方法に当てはまる）、サーバ２００側でのこれらの操作の実行のために、（変換のための）コンテキスト及び（畳み込みの形成のための）特徴量が、まずクライアント１００によってサーバ２００へと送られる。ステップ２５０では、特定の瞬間における事象の畳み込みの人気度が決定される。例示的な態様にでは、人気度は、データベース（ローカルデータベース１６０又はリモートデータベース１７０）をポーリングすることにより決定される。
【００４４】
更に、例示的な態様では、特定の方法によって計算されるように、人気度は、畳み込みの人気度が決定されている現在の瞬間における事象の検出総数、 及び／又はクライアント上の検出数に関わらず、現在の瞬間に畳み込み人気度が判定されている所定の事象が検出されたクライアント１００の数であるとみなされ、クライアント上の検出数には無関係である。換言すれば、人気度は、例えば、クライアント機器１００の検出された事象に対応するような検出された複数の事象の頻度に対し、複数の機器のセットにおける事象発生の頻度を判断するのに、考慮されている。現在の瞬間は、所定の時間（例えば、１マイクロ秒、１秒等）に亘って考慮できることを理解されたい。
【００４５】
人気度は、例えば調査された事象が検出されたサブネットワーク内で、大域的（全てのアクセス可能なサブネットワーク内での人気度）又は局所的（特定のサブネットワーク内のみでの人気度）であり得る。したがって、事象の畳み込みの人気度を決定するためにアクセスされるデータベース１６０及び１７０は、特定の場合にはサーバ２００によって計算される、特定の数を保存する。ステップ２６０において、クライアント１００上で検出された事象は、現在の瞬間における検出された事象の畳み込みの人気度が閾値未満である場合、異常であると判断される。この決定は、例えば、クライアント機器１００上のエージェント（例えば比較モジュール１５０）及び／又はサーバ２００上の比較モジュール１５０によって実行され得る。人気度がステップ２６０で決定された閾値よりも大きい場合、ステップ２７０で事象が安全と判定される。そうでなければ、人気が閾値よりも小さい場合、事象はステップ２８０で異常とみなされる。本明細書で更に説明されるように、検出された事象が異常であるかどうかの判断に基づき、クライアント１００により適切な措置が取られ得る。
【００４６】
例示的な態様では、検出された事象が異常であるかどうかの判断に使用されるいくつかの技法が存在し得る。例えば、検出された事象は、次のような場合に事象に異常であると判断され得る。即ち、畳み込みの局所的な人気度が閾値以下である場合、事象の畳み込みの大域的な人気度が閾値以下である場合、及び／又は事象の畳み込みの局所的及び大域的な人気度が閾値以下である場合等である。
【００４７】
事象の畳み込みの大域的な人気度に対する閾値とサブネットワークにおける（局所的な）人気度は独立に割り当てられる。異常であると判断された事象は、後で更に調査され、必要に応じてエージェント１１０によりクライアント１００上でブロックされる。例えば、検出された事象が異常であると判定された場合、クライアント機器１００（及び／又はエージェント１１０）は、例えば、異常事象を実行したソフトウェアプロセスを削除する、そのソフトウェアプロセスを隔離する、及び／又はクライアント機器１１０のユーザに対しソフトウェアプロセスに悪意があると警告する等の修復アクションを実行するように構成されていても良い。
【００４８】
又、ソフトウェアの実行を監視するためのシステムは、安全事象（したがって、このシステムは任意の所与の事象の畳み込みを得るために使用され得る）及び安全事象の畳み込みのセットを形成するためにも使用される。このとき、セットはすでに存在していて、単に手法の実行時に補完されるか、或いは、手法の実行時にセットが作成されておらず、手法の実行のためのプロセスにおいて作成され埋め合わせられ始める場合もある。
【００４９】
図３は、例示的な態様における安全事象の畳み込みのセットを形成する方法のフローチャートを示す。本明細書で使用する「安全事象」は、脆弱性の悪用又は悪意のあるソフトウェアの実行の結果ではない「安全な」事象とみなすことができる。ステップ３００において、安全であることが知られている少なくとも１つのクライアント１００側のオペレーティングシステムにおいて（安全なクライアントとは、悪意のあるソフトウェアを含まないクライアントであり脆弱性の悪用による手法を実装するプロセスにおいて攻撃されることのないものを指す）、 クライアント１００のオペレーティングシステムにおいて発生する少なくとも一種類の事象を登録するようなエージェント１１０（例えば、第１のソフトウェアエージェント）が起動され、ここで、事象の種類は、プロセスの開始、モジュールのローディング、ファイル操作、レジストリ操作のうち１つ又は複数である。
【００５０】
ステップ３１０において、クライアント１００のオペレーティングシステムにインストールされ、エージェント１１０へと接続されたインターセプタ１２０は、オペレーティングシステムで発生する事象を検出する。次に、ステップ３２０において、エージェント１１０は、発生した事象を登録し、エージェント１１０の収集モジュール１３０によって、その事象のコンテキストを取得する。ここで、１つの可能なコンテキストの構成が上記で提示されている。コンテキストから、ステップ３３０において、畳み込み形成モジュール１４０は、特徴量を選択し、選択された特徴量に基づき事象の畳み込みを形成し、次に、ステップ３４０において事象の畳み込みを安全事象の畳み込みのセットへ加える。特定の例では、ステップ３３０〜３４０がサーバ２００上で実行され（ステップ３２０でクライアント１００から得られたコンテキストが「生の」又は既に変換された形式でサーバに中継される）、安全な畳み込みの事象のセットはリモートデータベース１７０に保持され、その後、任意の所与のクライアント１００にロードされ得るか、又はクライアント１００は、セット全体をローカルデータベース１６０にロードすることなく、データベース１７０のポーリングを構成することができる。
【００５１】
安全事象の畳み込みのセットは、クライアント１００上の異常事象を検出するのに使用される。セット自体は、データベース１６０に局所的に格納されても、リモートデータベース１７０に遠隔的に格納されても良く、リモートデータベース１７０はクライアント１００によってアクセスされても良い。
【００５２】
図４は、例示的な態様における安全事象の畳み込みのセットに基づき異常事象を検出する方法のフローチャートを示す。他の全ての方法と同様に、ステップ４００では、クライアント１００側のオペレーティングシステムにおいてクライアント１００のオペレーティングシステムにおいて発生する事象を登録する別のエージェント１１０（例えば、第２のソフトウェアエージェント）が起動され、ステップ４１０では、オペレーティングシステムにインストールされ、エージェント１１０に接続されたインターセプタ１２０が、オペレーティングシステムで発生した事象を検出する。例えば、例示的な態様では、これらの新しい事象は、異常であるか（セキュリティ上）安全であるかが未決定のため、「未分類」と考えられる。次に、ステップ４２０において、エージェント１１０は、発生している未分類事象を登録し、その事象のコンテキストを取得する。ここで、コンテキストの１つの構造な実行が上記に示されている。コンテキストから、ステップ４３０において、特徴量が選択され、選択された特徴量に基づき未分類事象の畳み込みが形成される。取得された未分類事象の畳み込みは、ステップ４４０において、先に記載された方法によって形成されたセットからの（セキュリティ上）安全な事象以前に形成された畳み込みのグループと比較される。次に、ステップ４５０において、未分類事象は、比較の際に、検出された事象に対し形成された畳み込みが、指定された（セキュリティ上）安全な事象のセットにおける事象の畳み込みのグループからの任意の事象の畳み込みと一致しない場合、悪意があると判定される。そうでなければ、未分類の事象は、例えば、ステップ４６０に示すように安全とみなされる。一態様では、未分類の事象が異常であると判定された場合、その未分類の事象に関連付けられたソフトウェアプロセスは、クライアント機器から削除又は隔離され得る。
【００５３】
一般に、本開示では、エージェント１１０によって、インターセプタ１２０、収集モジュール１３０、畳み込み形成モジュール１４０、及び比較モジュール１５０は、例えば、実機器、システム、コンポーネント、集積回路（特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等）のようなハードウェアを使用して、或いは、例えば「マイクロプロセッサシステムとプログラム命令のセット」等のソフトウェアとハードウェアを組合せて、そしてニューロシナプスチップ上に実現されるコンポーネント群、を用いて実装され得る。エージェント１１０、インターセプタ１２０、収集モジュール１３０、畳み込み形成モジュール１４０、及び比較モジュール１５０の機能性は、ハードウェアによってのみ実現されても良く、又、幾つかの機能はソフトウェアにより実現されハードウェアによっても幾つか実現されるといった組み合わせ形式で実現されても良い。他の形態では、エージェント１１０、インターセプタ１２０、収集モジュール１３０、畳み込み形成モジュール１４０、及び比較モジュール１５０の一部は、汎用コンピュータのプロセッサ上に実装されても良く（例えば、図５及び後述参照）、これはクライアント１００及びサーバ２００にも当てはまる。
【００５４】
具体的には、図５は、例示的な態様に従って、開示されたシステム及び方法が実装され得る汎用コンピュータシステム（パーソナルコンピュータ又はサーバであり得る）の例を示す。図示のように、コンピュータシステム２０は、中央処理装置２１、システムメモリ２２、及び中央処理装置２１に関連するメモリを含む様々なシステム構成要素を接続するシステムバス２３を含む。システムバス２３は、他のバスアーキテクチャと相互作用することができるバスメモリ又はバスメモリコントローラ、周辺バス及びローカルバスを含む、従来技術から公知の任意のバス構造のように実現される。システムメモリは、読み出し専用メモリ（ＲＯＭ）２４及びランダムアクセスメモリ（ＲＡＭ）２５を含む。基本入出力システム（ＢＩＯＳ）２６は、パーソナルコンピュータ２０の要素間の情報の転送を保証する基本的な手順、例えばＲＯＭ２４の使用によりオペレーティングシステムをロードするときのものなどを含む。
【００５５】
パーソナルコンピュータ２０は、データを読み書きするためのハードディスク２７と、リムーバブル磁気ディスク２９に読み書きするための磁気ディスクドライブ２８と、リムーバブル光ディスク３１に読み書きするための光学ドライブ３０とを含む。 ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、及び他の光情報媒体として使用することができる。ハードディスク２７、磁気ディスクドライブ２８、及び光ドライブ３０は、それぞれハードディスクインターフェース３２、磁気ディスクインターフェース３３及び光ドライブインターフェース３４を介してシステムバス２３に接続されている。 ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ２０のコンピュータ命令、データ構造、プログラムモジュール及び他のデータを格納するための電力に依存しないモジュールである。
【００５６】
本開示は、ハードディスク２７、リムーバブル磁気ディスク２９及びリムーバブル光ディスク３１を使用するシステムの実装を提供するが、他のタイプのコンピュータ情報媒体５６を使用することも可能であることを理解されたい。 コントローラ５５を介してシステムバス２３に接続されたコンピュータ（ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（ＲＡＭ）など）によって読み取り可能な形式でデータを格納する。
【００５７】
コンピュータ２０は、記録されたオペレーティングシステム３５が保持されるファイルシステム３６と、追加のプログラムアプリケーション３７と、他のプログラムモジュール３８と、プログラムデータ３９とを有する。ユーザは、入力装置（キーボード４０、マウス４２）を使用して、パーソナルコンピュータ２０にコマンド及び情報を入力することができる。マイクロホン、ジョイスティック、ゲームコントローラ、スキャナなどの他の入力装置（図示せず）を使用することができる。このような入力装置は、通常、シリアルポート４６を介してコンピュータシステム２０に接続され、シリアルポート４６は、システムバスに接続されるが、例えば、パラレルポート、ゲームポート又は ユニバーサルシリアルバス（ＵＳＢ）。モニタ４７又は他のタイプの表示装置もまた、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続される。モニタ４７に加えて、パーソナルコンピュータは、スピーカ、プリンタなどの他の周辺出力装置（図示せず）を備えることができる。
【００５８】
パーソナルコンピュータ２０は、１つ又は複数のリモートコンピュータ４９へのネットワーク接続を使用して、ネットワーク環境内で動作することができる。リモートコンピュータ（又は複数のコンピュータ）４９はまた、パーソナルコンピュータ２０の性質を説明する上で、前述の要素の大部分又はすべてを有するパーソナルコンピュータ又はサーバである。ルータ、ネットワークステーション、ピアデバイス又は他のネットワークノードなど、他のデバイスもコンピュータネットワークに存在することができる。
【００５９】
ネットワーク接続は、有線及び／又は無線ネットワーク、広域コンピュータネットワーク（ＷＡＮ）などのローカルエリアコンピュータネットワーク（ＬＡＮ）５０を形成することができる。このようなネットワークは、企業のコンピュータネットワーク及び社内ネットワークで使用され、一般にインターネットにアクセスします。ＬＡＮ又はＷＡＮネットワークでは、パーソナルコンピュータ２０は、ネットワークアダプタ又はネットワークインタフェース５１を介してローカルエリアネットワーク５０に接続される。ネットワークが使用される場合、パーソナルコンピュータ２０は、インターネットなどの広域コンピュータネットワークとの通信を提供するために、モデム５４又は他のモジュールを使用することができる。モデム５４は、内部又は外部の装置であり、シリアルポート４６によってシステムバス２３に接続されている。ネットワーク接続は単なる例であり、ネットワークの正確な構成を示す必要はない、すなわち、実際には、ブルートゥースのような技術通信モジュールによって１つのコンピュータと他のコンピュータとの接続を確立する他の方法がある。
【００６０】
様々な態様において、本明細書に記載のシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実施されてもよい。 ソフトウェアで実施される場合、方法は、非一時的なコンピュータ可読媒体上に１つ以上の命令又はコードとして格納されてもよい。 コンピュータ可読媒体は、データ記憶装置を含む。 限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、又は他のタイプの電気、磁気、又は光学記憶媒体、又は 所望のプログラムコードを命令又はデータ構造の形で運び、格納又は格納することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
【００６１】
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
【００６２】
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
【００６３】
本明細書で開示された様々な側面は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、側面及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【図１】
2019003598.tif 000005
【図２】
2019003598.tif 000006
【図３】
2019003598.tif 000007
【図４】
2019003598.tif 000008
【図５】
2019003598.tif 000009
【外国語明細書】
2019003598000001.pdf